Merge remaining changes from trunk.
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..23bb21a
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,4 @@
+.project
+.classpath
+.settings
+target
\ No newline at end of file
diff --git a/apidocs/pom.xml b/apidocs/pom.xml
new file mode 100644
index 0000000..6094ff7
--- /dev/null
+++ b/apidocs/pom.xml
@@ -0,0 +1,390 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  ~ Licensed to the Apache Software Foundation (ASF) under one
+  ~ or more contributor license agreements. See the NOTICE file
+  ~ distributed with this work for additional information
+  ~ regarding copyright ownership. The ASF licenses this file
+  ~ to you under the Apache License, Version 2.0 (the
+  ~ "License"); you may not use this file except in compliance
+  ~ with the License. You may obtain a copy of the License at
+  ~
+  ~ http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing,
+  ~ software distributed under the License is distributed on an
+  ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  ~ KIND, either express or implied. See the License for the
+  ~ specific language governing permissions and limitations
+  ~ under the License.
+  -->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.apache.axis2</groupId>
+        <artifactId>axis2</artifactId>
+        <version>1.8.0-SNAPSHOT</version>
+    </parent>
+    <artifactId>apidocs</artifactId>
+    <name>Javadoc</name>
+    <packaging>pom</packaging>
+    <dependencies>
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>axis2-adb</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>axis2-adb-codegen</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>addressing</artifactId>
+            <version>${project.version}</version>
+            <classifier>sources</classifier>
+        </dependency>
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>axis2-clustering</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>axis2-codegen</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>axis2-corba</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>axis2-fastinfoset</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>axis2-java2wsdl</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>axis2-jaxbri</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>axis2-jaxws</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>axis2-jaxws-mar</artifactId>
+            <version>${project.version}</version>
+            <classifier>sources</classifier>
+        </dependency>
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>axis2-jibx</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>axis2-json</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>axis2-kernel</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>axis2-metadata</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>mex</artifactId>
+            <version>${project.version}</version>
+            <classifier>sources</classifier>
+        </dependency>
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>axis2-mtompolicy</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>mtompolicy</artifactId>
+            <version>${project.version}</version>
+            <classifier>sources</classifier>
+        </dependency>
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>org.apache.axis2.osgi</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>ping</artifactId>
+            <version>${project.version}</version>
+            <classifier>sources</classifier>
+        </dependency>
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>axis2-saaj</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>scripting</artifactId>
+            <version>${project.version}</version>
+            <classifier>sources</classifier>
+        </dependency>
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>soapmonitor</artifactId>
+            <version>${project.version}</version>
+            <classifier>sources</classifier>
+        </dependency>
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>axis2-soapmonitor-servlet</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>axis2-spring</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>axis2-webapp</artifactId>
+            <version>${project.version}</version>
+            <classifier>sources</classifier>
+        </dependency>
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>axis2-xmlbeans</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>axis2-aar-maven-plugin</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>axis2-ant-plugin</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>axis2.eclipse.codegen.plugin</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>axis2.eclipse.service.plugin</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>axis2-idea-plugin</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>axis2-java2wsdl-maven-plugin</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>axis2-mar-maven-plugin</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>axis2-repo-maven-plugin</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>axis2-wsdl2code-maven-plugin</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>axis2-xsd2java-maven-plugin</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>simple-server-maven-plugin</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>axis2-transport-base</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>axis2-transport-http</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>axis2-transport-jms</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>axis2-transport-local</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>axis2-transport-mail</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>axis2-transport-tcp</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>axis2-transport-testkit</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>axis2-transport-udp</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>axis2-transport-xmpp</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+    </dependencies>
+    <build>
+        <plugins>
+            <!-- https://issues.apache.org/jira/browse/MJAVADOC-469 -->
+            <plugin>
+                <groupId>org.codehaus.mojo</groupId>
+                <artifactId>build-helper-maven-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <id>create-javadoc-compat-out-dir</id>
+                        <phase>pre-site</phase>
+                        <goals>
+                            <goal>regex-property</goal>
+                        </goals>
+                        <configuration>
+                            <name>javadoc-compat-out-dir</name>
+                            <value>${project.build.directory}</value>
+                            <regex>\\</regex>
+                            <replacement>\\\\</replacement>
+                            <failIfNoMatch>false</failIfNoMatch>
+                        </configuration>
+                    </execution>
+                </executions>
+             </plugin>
+            <plugin>
+                <artifactId>maven-javadoc-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <id>extract-resource-info</id>
+                        <phase>pre-site</phase>
+                        <goals>
+                            <goal>javadoc</goal>
+                        </goals>
+                        <configuration>
+                            <docletArtifacts>
+                                <docletArtifact>
+                                    <groupId>${project.groupId}</groupId>
+                                    <artifactId>axis2-transport-testkit</artifactId>
+                                    <version>${project.version}</version>
+                                </docletArtifact>
+                            </docletArtifacts>
+                            <doclet>org.apache.axis2.transport.testkit.doclet.ResourceInfoDoclet</doclet>
+                            <useStandardDocletOptions>false</useStandardDocletOptions>
+                            <show>private</show>
+                            <additionalparam>-out "${javadoc-compat-out-dir}/resource-info.dat"</additionalparam>
+                        </configuration>
+                    </execution>
+                    <execution>
+                        <id>site-javadoc</id>
+                        <phase>site</phase>
+                        <goals>
+                            <goal>javadoc-no-fork</goal>
+                        </goals>
+                        <configuration>
+                            <docletArtifacts>
+                                <docletArtifact>
+                                    <groupId>${project.groupId}</groupId>
+                                    <artifactId>axis2-transport-testkit</artifactId>
+                                    <version>${project.version}</version>
+                                </docletArtifact>
+                            </docletArtifacts>
+                            <doclet>org.apache.axis2.transport.testkit.doclet.TestkitJavadocDoclet</doclet>
+                            <useStandardDocletOptions>true</useStandardDocletOptions>
+                            <additionalparam>
+                                ${javadoc.nolint.param}
+                                -resource-info "${javadoc-compat-out-dir}/resource-info.dat"
+                            </additionalparam>
+                            <reportOutputDirectory>${project.reporting.outputDirectory}</reportOutputDirectory>
+                            <destDir>.</destDir>
+                        </configuration>
+                    </execution>
+                </executions>
+                <configuration>
+                    <additionalJOption>-J-Xmx256m</additionalJOption>
+                    <detectJavaApiLink>false</detectJavaApiLink>
+                    <links>
+                        <link>https://docs.oracle.com/javase/7/docs/api/</link>
+                        <link>http://ws.apache.org/axiom/apidocs/</link>
+                    </links>
+                    <includeDependencySources>true</includeDependencySources>
+                    <dependencySourceIncludes>
+                        <dependencySourceInclude>${project.groupId}:*</dependencySourceInclude>
+                    </dependencySourceIncludes>
+                    <breakiterator>true</breakiterator>
+                    <!-- The notimestamp, windowtitle and bottom parameters are chosen to minimize the number
+                         of changes between releases (to avoid mass changes when committing the site for a new release) -->
+                    <notimestamp>true</notimestamp>
+                    <windowtitle>Apache Axis2</windowtitle>
+                    <bottom><![CDATA[Copyright &copy; {organizationName}. All Rights Reserved.]]></bottom>
+                    <!-- doctitle only appears in the summary and we should include the version there -->
+                    <doctitle>Apache Axis2 ${project.version}</doctitle>
+                </configuration>
+            </plugin>
+            <plugin>
+                <artifactId>maven-deploy-plugin</artifactId>
+                <configuration>
+                    <skip>true</skip>
+                </configuration>
+            </plugin>
+            <plugin>
+                <artifactId>maven-site-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <id>default-site</id>
+                        <phase>site</phase>
+                        <goals>
+                            <goal>site</goal>
+                        </goals>
+                        <configuration>
+                            <skip>true</skip>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
+</project>
diff --git a/databinding-tests/jaxbri-tests/pom.xml b/databinding-tests/jaxbri-tests/pom.xml
new file mode 100644
index 0000000..54e98d7
--- /dev/null
+++ b/databinding-tests/jaxbri-tests/pom.xml
@@ -0,0 +1,282 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  ~ Licensed to the Apache Software Foundation (ASF) under one
+  ~ or more contributor license agreements. See the NOTICE file
+  ~ distributed with this work for additional information
+  ~ regarding copyright ownership. The ASF licenses this file
+  ~ to you under the Apache License, Version 2.0 (the
+  ~ "License"); you may not use this file except in compliance
+  ~ with the License. You may obtain a copy of the License at
+  ~
+  ~ http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing,
+  ~ software distributed under the License is distributed on an
+  ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  ~ KIND, either express or implied. See the License for the
+  ~ specific language governing permissions and limitations
+  ~ under the License.
+  -->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.apache.axis2</groupId>
+        <artifactId>databinding-tests</artifactId>
+        <version>1.8.0-SNAPSHOT</version>
+    </parent>
+
+    <artifactId>jaxbri-tests</artifactId>
+    <url>http://axis.apache.org/axis2/java/core/</url>
+    <dependencies>
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>axis2-jaxbri</artifactId>
+            <version>${project.version}</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>axis2-transport-local</artifactId>
+            <version>${project.version}</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>axis2-transport-http</artifactId>
+            <version>${project.version}</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>xmlunit</groupId>
+            <artifactId>xmlunit</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>axis2-testutils</artifactId>
+            <version>${project.version}</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.ws.commons.axiom</groupId>
+            <artifactId>testutils</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>com.sun.mail</groupId>
+            <artifactId>javax.mail</artifactId>
+            <scope>test</scope>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>${project.groupId}</groupId>
+                <artifactId>axis2-wsdl2code-maven-plugin</artifactId>
+                <version>${project.version}</version>
+                <executions>
+                    <execution>
+                        <id>wsdl2code-Test01</id>
+                        <goals>
+                            <goal>generate-test-sources</goal>
+                        </goals>
+                        <configuration>
+                            <wsdlFile>src/test/wsdl/Test01.wsdl</wsdlFile>
+                            <generateServerSide>true</generateServerSide>
+                            <generateServerSideInterface>true</generateServerSideInterface>
+                            <generateServicesXml>true</generateServicesXml>
+                            <generateAllClasses>true</generateAllClasses>
+                            <outputDirectory>${project.build.directory}/gen/Test01</outputDirectory>
+                        </configuration>
+                    </execution>
+                    <execution>
+                        <id>wsdl2code-processor-service</id>
+                        <goals>
+                            <goal>generate-test-sources</goal>
+                        </goals>
+                        <configuration>
+                            <wsdlFile>src/test/wsdl/processor.wsdl</wsdlFile>
+                            <generateServerSide>true</generateServerSide>
+                            <generateServerSideInterface>true</generateServerSideInterface>
+                            <generateServicesXml>true</generateServicesXml>
+                            <namespaceMappings>
+                                <namespaceMapping>
+                                    <uri>http://www.example.org/data</uri>
+                                    <packageName>org.apache.axis2.jaxbri.processor.data</packageName>
+                                </namespaceMapping>
+                                <namespaceMapping>
+                                    <uri>http://www.example.org/ws</uri>
+                                    <packageName>org.apache.axis2.jaxbri.processor.service</packageName>
+                                </namespaceMapping>
+                            </namespaceMappings>
+                            <outputDirectory>${project.build.directory}/gen/processor</outputDirectory>
+                        </configuration>
+                    </execution>
+                    <execution>
+                        <id>wsdl2code-processor-client</id>
+                        <goals>
+                            <goal>generate-test-sources</goal>
+                        </goals>
+                        <configuration>
+                            <wsdlFile>src/test/wsdl/processor.wsdl</wsdlFile>
+                            <namespaceMappings>
+                                <namespaceMapping>
+                                    <uri>http://www.example.org/data</uri>
+                                    <packageName>org.apache.axis2.jaxbri.processor.data</packageName>
+                                </namespaceMapping>
+                                <namespaceMapping>
+                                    <uri>http://www.example.org/ws</uri>
+                                    <packageName>org.apache.axis2.jaxbri.processor.client</packageName>
+                                </namespaceMapping>
+                            </namespaceMappings>
+                            <outputDirectory>${project.build.directory}/gen/processor</outputDirectory>
+                        </configuration>
+                    </execution>
+                    <execution>
+                        <id>wsdl2code-identityservice1</id>
+                        <goals>
+                            <goal>generate-test-sources</goal>
+                        </goals>
+                        <configuration>
+                            <wsdlFile>src/test/wsdl/identityService.wsdl</wsdlFile>
+                            <generateServerSide>true</generateServerSide>
+                            <generateServerSideInterface>true</generateServerSideInterface>
+                            <generateServicesXml>true</generateServicesXml>
+                            <generateAllClasses>true</generateAllClasses>
+                            <packageName>org.apache.axis2.jaxbri.identityservice</packageName>
+                            <namespaceMappings>
+                                <namespaceMapping>
+                                    <uri>http://www.example.org/identity</uri>
+                                    <packageName>org.apache.axis2.jaxbri.identityservice</packageName>
+                                </namespaceMapping>
+                            </namespaceMappings>
+                            <outputDirectory>${project.build.directory}/gen/identityservice</outputDirectory>
+                        </configuration>
+                    </execution>
+                    <execution>
+                        <id>wsdl2code-mtom</id>
+                        <goals>
+                            <goal>generate-test-sources</goal>
+                        </goals>
+                        <configuration>
+                            <wsdlFile>src/test/wsdl/mtom.wsdl</wsdlFile>
+                            <generateServerSide>true</generateServerSide>
+                            <generateServerSideInterface>true</generateServerSideInterface>
+                            <generateServicesXml>true</generateServicesXml>
+                            <generateAllClasses>true</generateAllClasses>
+                            <packageName>org.apache.axis2.jaxbri.mtom</packageName>
+                            <namespaceMappings>
+                                <namespaceMapping>
+                                    <uri>http://www.example.org/mtom/</uri>
+                                    <packageName>org.apache.axis2.jaxbri.mtom</packageName>
+                                </namespaceMapping>
+                            </namespaceMappings>
+                            <outputDirectory>${project.build.directory}/gen/mtom</outputDirectory>
+                        </configuration>
+                    </execution>
+                </executions>
+                <configuration>
+                    <databindingName>jaxbri</databindingName>
+                    <syncMode>sync</syncMode>
+                    <unpackClasses>true</unpackClasses>
+                </configuration>
+                <dependencies>
+                    <dependency>
+                        <!-- Work around "'file' access is not allowed due to restriction set by
+                             the accessExternalSchema property" error on Java 8. -->
+                        <groupId>xerces</groupId>
+                        <artifactId>xercesImpl</artifactId>
+                        <version>2.11.0</version>
+                    </dependency>
+                </dependencies>
+            </plugin>
+            <plugin>
+                <artifactId>maven-resources-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <id>Test01-repo</id>
+                        <phase>generate-test-resources</phase>
+                        <goals>
+                            <goal>copy-resources</goal>
+                        </goals>
+                        <configuration>
+                            <outputDirectory>${project.build.directory}/repo/Test01</outputDirectory>
+                            <resources>
+                                <resource>
+                                    <directory>src/test/repo</directory>
+                                </resource>
+                                <resource>
+                                    <directory>${project.build.directory}/gen/Test01/resources</directory>
+                                    <targetPath>services/Test01.aar/META-INF</targetPath>
+                                </resource>
+                            </resources>
+                        </configuration>
+                    </execution>
+                    <execution>
+                        <id>processor-repo</id>
+                        <phase>generate-test-resources</phase>
+                        <goals>
+                            <goal>copy-resources</goal>
+                        </goals>
+                        <configuration>
+                            <outputDirectory>${project.build.directory}/repo/processor</outputDirectory>
+                            <resources>
+                                <resource>
+                                    <directory>src/test/repo</directory>
+                                </resource>
+                                <resource>
+                                    <directory>${project.build.directory}/gen/processor/resources</directory>
+                                    <targetPath>services/processor.aar/META-INF</targetPath>
+                                </resource>
+                            </resources>
+                        </configuration>
+                    </execution>
+                    <execution>
+                        <id>identityservice-repo</id>
+                        <phase>generate-test-resources</phase>
+                        <goals>
+                            <goal>copy-resources</goal>
+                        </goals>
+                        <configuration>
+                            <outputDirectory>${project.build.directory}/repo/identityservice</outputDirectory>
+                            <resources>
+                                <resource>
+                                    <directory>src/test/repo</directory>
+                                </resource>
+                                <resource>
+                                    <directory>${project.build.directory}/gen/identityservice/resources</directory>
+                                    <targetPath>services/identityservice.aar/META-INF</targetPath>
+                                </resource>
+                            </resources>
+                        </configuration>
+                    </execution>
+                    <execution>
+                        <id>mtom-repo</id>
+                        <phase>generate-test-resources</phase>
+                        <goals>
+                            <goal>copy-resources</goal>
+                        </goals>
+                        <configuration>
+                            <outputDirectory>${project.build.directory}/repo/mtom</outputDirectory>
+                            <resources>
+                                <resource>
+                                    <directory>src/test/repo</directory>
+                                </resource>
+                                <resource>
+                                    <directory>${project.build.directory}/gen/mtom/resources</directory>
+                                    <targetPath>services/mtom.aar/META-INF</targetPath>
+                                </resource>
+                            </resources>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
+</project>
diff --git a/modules/jaxbri/src/test/java/org/apache/axis2/jaxbri/Test01Impl.java b/databinding-tests/jaxbri-tests/src/test/java/org/apache/axis2/jaxbri/Test01Impl.java
similarity index 100%
rename from modules/jaxbri/src/test/java/org/apache/axis2/jaxbri/Test01Impl.java
rename to databinding-tests/jaxbri-tests/src/test/java/org/apache/axis2/jaxbri/Test01Impl.java
diff --git a/modules/jaxbri/src/test/java/org/apache/axis2/jaxbri/Test01Test.java b/databinding-tests/jaxbri-tests/src/test/java/org/apache/axis2/jaxbri/Test01Test.java
similarity index 100%
rename from modules/jaxbri/src/test/java/org/apache/axis2/jaxbri/Test01Test.java
rename to databinding-tests/jaxbri-tests/src/test/java/org/apache/axis2/jaxbri/Test01Test.java
diff --git a/modules/jaxbri/src/test/java/org/apache/axis2/jaxbri/identityservice/IdentityLinkingServiceImpl.java b/databinding-tests/jaxbri-tests/src/test/java/org/apache/axis2/jaxbri/identityservice/IdentityLinkingServiceImpl.java
similarity index 100%
rename from modules/jaxbri/src/test/java/org/apache/axis2/jaxbri/identityservice/IdentityLinkingServiceImpl.java
rename to databinding-tests/jaxbri-tests/src/test/java/org/apache/axis2/jaxbri/identityservice/IdentityLinkingServiceImpl.java
diff --git a/modules/jaxbri/src/test/java/org/apache/axis2/jaxbri/identityservice/IdentityServiceTest.java b/databinding-tests/jaxbri-tests/src/test/java/org/apache/axis2/jaxbri/identityservice/IdentityServiceTest.java
similarity index 100%
rename from modules/jaxbri/src/test/java/org/apache/axis2/jaxbri/identityservice/IdentityServiceTest.java
rename to databinding-tests/jaxbri-tests/src/test/java/org/apache/axis2/jaxbri/identityservice/IdentityServiceTest.java
diff --git a/modules/jaxbri/src/test/java/org/apache/axis2/jaxbri/mtom/MtomImpl.java b/databinding-tests/jaxbri-tests/src/test/java/org/apache/axis2/jaxbri/mtom/MtomImpl.java
similarity index 69%
rename from modules/jaxbri/src/test/java/org/apache/axis2/jaxbri/mtom/MtomImpl.java
rename to databinding-tests/jaxbri-tests/src/test/java/org/apache/axis2/jaxbri/mtom/MtomImpl.java
index 059a5ba..abc424c 100644
--- a/modules/jaxbri/src/test/java/org/apache/axis2/jaxbri/mtom/MtomImpl.java
+++ b/databinding-tests/jaxbri-tests/src/test/java/org/apache/axis2/jaxbri/mtom/MtomImpl.java
@@ -24,22 +24,18 @@
 import java.util.UUID;
 
 import javax.activation.DataHandler;
-import javax.mail.util.ByteArrayDataSource;
 
-import org.apache.axiom.attachments.lifecycle.DataHandlerExt;
-import org.apache.commons.io.IOUtils;
+import org.apache.axiom.blob.Blob;
+import org.apache.axiom.blob.BlobDataSource;
+import org.apache.axiom.mime.PartDataHandler;
 
 public class MtomImpl implements MtomSkeletonInterface {
-    private final Map<String,byte[]> documents = new HashMap<String,byte[]>();
+    private final Map<String,Blob> documents = new HashMap<String,Blob>();
     
     public UploadDocumentResponse uploadDocument(UploadDocument uploadDocument) {
         String id = UUID.randomUUID().toString();
-        try {
-            // If we don't get a DataHandlerExt here, then we know that we are not using MTOM
-            documents.put(id, IOUtils.toByteArray(((DataHandlerExt)uploadDocument.getContent()).readOnce()));
-        } catch (IOException ex) {
-            throw new RuntimeException(ex);
-        }
+        // If we don't get a PartDataHandler here, then we know that we are not using MTOM
+        documents.put(id, ((PartDataHandler)uploadDocument.getContent()).getPart().getBlob());
         UploadDocumentResponse response = new UploadDocumentResponse();
         response.setId(id);
         return response;
@@ -47,7 +43,7 @@
 
     public RetrieveDocumentResponse retrieveDocument(RetrieveDocument retrieveDocument) {
         RetrieveDocumentResponse response = new RetrieveDocumentResponse();
-        response.setContent(new DataHandler(new ByteArrayDataSource(documents.get(retrieveDocument.getId()), "application/octet-stream")));
+        response.setContent(new DataHandler(new BlobDataSource(documents.get(retrieveDocument.getId()), "application/octet-stream")));
         return response;
     }
 }
diff --git a/modules/jaxbri/src/test/java/org/apache/axis2/jaxbri/mtom/MtomTest.java b/databinding-tests/jaxbri-tests/src/test/java/org/apache/axis2/jaxbri/mtom/MtomTest.java
similarity index 100%
rename from modules/jaxbri/src/test/java/org/apache/axis2/jaxbri/mtom/MtomTest.java
rename to databinding-tests/jaxbri-tests/src/test/java/org/apache/axis2/jaxbri/mtom/MtomTest.java
diff --git a/modules/jaxbri/src/test/java/org/apache/axis2/jaxbri/processor/ProcessorImpl.java b/databinding-tests/jaxbri-tests/src/test/java/org/apache/axis2/jaxbri/processor/ProcessorImpl.java
similarity index 100%
rename from modules/jaxbri/src/test/java/org/apache/axis2/jaxbri/processor/ProcessorImpl.java
rename to databinding-tests/jaxbri-tests/src/test/java/org/apache/axis2/jaxbri/processor/ProcessorImpl.java
diff --git a/modules/jaxbri/src/test/java/org/apache/axis2/jaxbri/processor/ProcessorTest.java b/databinding-tests/jaxbri-tests/src/test/java/org/apache/axis2/jaxbri/processor/ProcessorTest.java
similarity index 100%
rename from modules/jaxbri/src/test/java/org/apache/axis2/jaxbri/processor/ProcessorTest.java
rename to databinding-tests/jaxbri-tests/src/test/java/org/apache/axis2/jaxbri/processor/ProcessorTest.java
diff --git a/modules/jaxbri/src/test/repo/conf/axis2.xml b/databinding-tests/jaxbri-tests/src/test/repo/conf/axis2.xml
similarity index 96%
rename from modules/jaxbri/src/test/repo/conf/axis2.xml
rename to databinding-tests/jaxbri-tests/src/test/repo/conf/axis2.xml
index 9961c26..1684fe8 100644
--- a/modules/jaxbri/src/test/repo/conf/axis2.xml
+++ b/databinding-tests/jaxbri-tests/src/test/repo/conf/axis2.xml
@@ -80,12 +80,12 @@
     <transportSender name="local"
                      class="org.apache.axis2.transport.local.LocalTransportSender"/>
     <transportSender name="http"
-                     class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
+                     class="org.apache.axis2.transport.http.impl.httpclient4.HTTPClient4TransportSender">
         <parameter name="PROTOCOL">HTTP/1.1</parameter>
         <parameter name="Transfer-Encoding">chunked</parameter>
     </transportSender>
     <transportSender name="https"
-                     class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
+                     class="org.apache.axis2.transport.http.impl.httpclient4.HTTPClient4TransportSender">
         <parameter name="PROTOCOL">HTTP/1.1</parameter>
         <parameter name="Transfer-Encoding">chunked</parameter>
     </transportSender>
diff --git a/modules/jaxbri/src/test/resources/org/apache/axis2/jaxbri/processor/request.xml b/databinding-tests/jaxbri-tests/src/test/resources/org/apache/axis2/jaxbri/processor/request.xml
similarity index 100%
rename from modules/jaxbri/src/test/resources/org/apache/axis2/jaxbri/processor/request.xml
rename to databinding-tests/jaxbri-tests/src/test/resources/org/apache/axis2/jaxbri/processor/request.xml
diff --git a/modules/jaxbri/src/test/resources/org/apache/axis2/jaxbri/processor/response.xml b/databinding-tests/jaxbri-tests/src/test/resources/org/apache/axis2/jaxbri/processor/response.xml
similarity index 100%
rename from modules/jaxbri/src/test/resources/org/apache/axis2/jaxbri/processor/response.xml
rename to databinding-tests/jaxbri-tests/src/test/resources/org/apache/axis2/jaxbri/processor/response.xml
diff --git a/databinding-tests/jaxbri-tests/src/test/wsdl/Test01.wsdl b/databinding-tests/jaxbri-tests/src/test/wsdl/Test01.wsdl
new file mode 100644
index 0000000..5cf1224
--- /dev/null
+++ b/databinding-tests/jaxbri-tests/src/test/wsdl/Test01.wsdl
@@ -0,0 +1,64 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  ~ Licensed to the Apache Software Foundation (ASF) under one
+  ~ or more contributor license agreements. See the NOTICE file
+  ~ distributed with this work for additional information
+  ~ regarding copyright ownership. The ASF licenses this file
+  ~ to you under the Apache License, Version 2.0 (the
+  ~ "License"); you may not use this file except in compliance
+  ~ with the License. You may obtain a copy of the License at
+  ~
+  ~ http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing,
+  ~ software distributed under the License is distributed on an
+  ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  ~ KIND, either express or implied. See the License for the
+  ~ specific language governing permissions and limitations
+  ~ under the License.
+  -->
+
+<definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://wsns.foo.com/axis2/test01" xmlns:typ="http://xmlns.foo.com/axis2/test01" xsi:schemaLocation="http://schemas.xmlsoap.org/wsdl/ http://www.foo.com/wsdl.xsd" targetNamespace="http://wsns.foo.com/axis2/test01" name="Test01">
+    <types>
+        <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://xmlns.foo.com/axis2/test01" elementFormDefault="qualified">
+            <xs:element name="Add">
+                <xs:complexType>
+                    <xs:sequence>
+                        <xs:element name="Arg1" type="xs:int"/>
+                        <xs:element name="Arg2" type="xs:int"/>
+                    </xs:sequence>
+                </xs:complexType>
+            </xs:element>
+            <xs:element name="AddReturn" type="xs:int"/>
+        </xs:schema>
+    </types>
+    <message name="Add">
+        <part name="params" element="typ:Add"/>
+    </message>
+    <message name="AddResponse">
+        <part name="result" element="typ:AddReturn"/>
+    </message>
+    <portType name="Test01PortType">
+        <operation name="Add">
+            <input name="Add" message="tns:Add"/>
+            <output name="AddResponse" message="tns:AddResponse"/>
+        </operation>
+    </portType>
+    <binding name="Test01PortBinding" type="tns:Test01PortType">
+        <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
+        <operation name="Add">
+            <soap:operation soapAction="Add" style="document"/>
+            <input>
+                <soap:body use="literal" namespace="http://wsns.foo.com/axis2/test01"/>
+            </input>
+            <output>
+                <soap:body use="literal" namespace="http://wsns.foo.com/axis2/test01"/>
+            </output>
+        </operation>
+    </binding>
+    <service name="Test01">
+        <port name="Axis2SampleDocLitPort" binding="tns:Test01PortBinding">
+            <soap:address location="http://requiem.foo.com:8080/axis2/services/Test01"/>
+        </port>
+    </service>
+</definitions>
diff --git a/modules/jaxbri/src/test/wsdl/identity.xsd b/databinding-tests/jaxbri-tests/src/test/wsdl/identity.xsd
similarity index 100%
rename from modules/jaxbri/src/test/wsdl/identity.xsd
rename to databinding-tests/jaxbri-tests/src/test/wsdl/identity.xsd
diff --git a/modules/jaxbri/src/test/wsdl/identityService.wsdl b/databinding-tests/jaxbri-tests/src/test/wsdl/identityService.wsdl
similarity index 100%
rename from modules/jaxbri/src/test/wsdl/identityService.wsdl
rename to databinding-tests/jaxbri-tests/src/test/wsdl/identityService.wsdl
diff --git a/modules/jaxbri/src/test/wsdl/mtom.wsdl b/databinding-tests/jaxbri-tests/src/test/wsdl/mtom.wsdl
similarity index 100%
rename from modules/jaxbri/src/test/wsdl/mtom.wsdl
rename to databinding-tests/jaxbri-tests/src/test/wsdl/mtom.wsdl
diff --git a/modules/jaxbri/src/test/wsdl/processor.wsdl b/databinding-tests/jaxbri-tests/src/test/wsdl/processor.wsdl
similarity index 100%
rename from modules/jaxbri/src/test/wsdl/processor.wsdl
rename to databinding-tests/jaxbri-tests/src/test/wsdl/processor.wsdl
diff --git a/modules/tool/axis2-java2wsdl-maven-plugin/src/test/test1/pom.xml b/databinding-tests/pom.xml
similarity index 62%
copy from modules/tool/axis2-java2wsdl-maven-plugin/src/test/test1/pom.xml
copy to databinding-tests/pom.xml
index c1cf26d..049c169 100644
--- a/modules/tool/axis2-java2wsdl-maven-plugin/src/test/test1/pom.xml
+++ b/databinding-tests/pom.xml
@@ -1,5 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-
 <!--
   ~ Licensed to the Apache Software Foundation (ASF) under one
   ~ or more contributor license agreements. See the NOTICE file
@@ -18,23 +17,30 @@
   ~ specific language governing permissions and limitations
   ~ under the License.
   -->
-
-<project>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
     <modelVersion>4.0.0</modelVersion>
-    <groupId>org.apache.axis2</groupId>
-    <artifactId>axis2-wsdl2code-maven-plugin-test1</artifactId>
-    <version>SNAPSHOT</version>
-    <name>Test 1 of the axis2-wsdl2code-maven-plugin</name>
+    <parent>
+        <groupId>org.apache.axis2</groupId>
+        <artifactId>axis2</artifactId>
+        <version>1.8.0-SNAPSHOT</version>
+    </parent>
+
+    <artifactId>databinding-tests</artifactId>
+    <packaging>pom</packaging>
+    <url>http://axis.apache.org/axis2/java/core/</url>
+
     <build>
         <plugins>
             <plugin>
-                <groupId>org.apache.axis2</groupId>
-                <artifactId>axis2-java2wsdl-maven-plugin</artifactId>
-                <version>SNAPSHOT</version>
+                <artifactId>maven-deploy-plugin</artifactId>
                 <configuration>
-                    <className>org.apache.axis2.maven2.java2wsdl.test.Adder</className>
+                    <skip>true</skip>
                 </configuration>
             </plugin>
         </plugins>
     </build>
+    
+    <modules>
+        <module>jaxbri-tests</module>
+    </modules>
 </project>
diff --git a/etc/dist.py b/etc/dist.py
new file mode 100644
index 0000000..8236e57
--- /dev/null
+++ b/etc/dist.py
@@ -0,0 +1,51 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+# 
+# http://www.apache.org/licenses/LICENSE-2.0
+# 
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+
+from os import *
+from os.path import *
+from shutil import copyfile
+from shutil import rmtree
+from subprocess import call
+from xml.etree.ElementTree import parse
+
+root_dir = realpath(join(dirname(__file__), ".."))
+pom = parse(join(root_dir, "pom.xml"))
+release = pom.getroot().find("{http://maven.apache.org/POM/4.0.0}version").text
+dist_root = join(root_dir, "target", "dist")
+dist_dir = join(dist_root, release)
+
+if exists(dist_root):
+    rmtree(dist_root)
+call(["svn", "checkout", "https://dist.apache.org/repos/dist/dev/axis/axis2/java/core/", dist_root])
+mkdir(dist_dir)
+for suffix in [ "zip", "zip.asc", "zip.md5", "zip.sha1", "zip.sha512" ]:
+    for classifier in [ "bin", "src", "war" ]:
+        file = "axis2-" + release + "-" + classifier + "." + suffix
+        copyfile(join(root_dir, "modules", "distribution", "target", file), join(dist_dir, file))
+    for tool in [ "codegen", "service" ]:
+        copyfile(join(root_dir, "modules", "tool", "axis2-eclipse-" + tool + "-plugin", "target", "axis2.eclipse." + tool + ".plugin-" + release + "-dist." + suffix),
+                 join(dist_dir, "axis2-eclipse-" + tool + "-plugin-" + release + "." + suffix))
+    file = "axis2-idea-plugin-" + release + "." + suffix
+    copyfile(join(root_dir, "modules", "tool", "axis2-idea-plugin", "target", file), join(dist_dir, file))
+
+call(["svn", "add", dist_dir])
+if release.endswith("-SNAPSHOT"):
+    print "Skipping commit because version is a snapshot."
+else:
+    call(["svn", "commit", dist_dir])
diff --git a/etc/doap_Axis2.rdf b/etc/doap_Axis2.rdf
index ed15eb4..a9506ca 100644
--- a/etc/doap_Axis2.rdf
+++ b/etc/doap_Axis2.rdf
@@ -62,7 +62,17 @@
     <release><Version><name>Apache Axis2</name><created>2011-05-17</created><revision>1.6.0</revision></Version></release>
     <release><Version><name>Apache Axis2</name><created>2011-08-30</created><revision>1.6.1</revision></Version></release>
     <release><Version><name>Apache Axis2</name><created>2012-04-17</created><revision>1.6.2</revision></Version></release>
-    
+    <release><Version><name>Apache Axis2</name><created>2015-06-27</created><revision>1.6.3</revision></Version></release>
+    <release><Version><name>Apache Axis2</name><created>2015-12-28</created><revision>1.6.4</revision></Version></release>
+    <release><Version><name>Apache Axis2</name><created>2016-01-18</created><revision>1.7.0</revision></Version></release>
+    <release><Version><name>Apache Axis2</name><created>2016-02-20</created><revision>1.7.1</revision></Version></release>
+    <release><Version><name>Apache Axis2</name><created>2016-05-02</created><revision>1.7.2</revision></Version></release>
+    <release><Version><name>Apache Axis2</name><created>2016-05-30</created><revision>1.7.3</revision></Version></release>
+    <release><Version><name>Apache Axis2</name><created>2016-10-21</created><revision>1.7.4</revision></Version></release>
+    <release><Version><name>Apache Axis2</name><created>2017-05-06</created><revision>1.7.5</revision></Version></release>
+    <release><Version><name>Apache Axis2</name><created>2017-07-30</created><revision>1.7.6</revision></Version></release>
+    <release><Version><name>Apache Axis2</name><created>2017-11-22</created><revision>1.7.7</revision></Version></release>
+     
     <repository>
       <SVNRepository>
         <location rdf:resource="http://svn.apache.org/repos/asf/axis/axis2/java/core/trunk/"/>
diff --git a/legal/activation-LICENSE.txt b/legal/activation-LICENSE.txt
deleted file mode 100644
index 55ce20a..0000000
--- a/legal/activation-LICENSE.txt
+++ /dev/null
@@ -1,119 +0,0 @@
-COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) Version 1.0
-
-1. Definitions.
-
-1.1. Contributor means each individual or entity that creates or contributes to the creation of Modifications.
-
-1.2. Contributor Version means the combination of the Original Software, prior Modifications used by a Contributor (if any), and the Modifications made by that particular Contributor.
-
-1.3. Covered Software means (a) the Original Software, or (b) Modifications, or (c) the combination of files containing Original Software with files containing Modifications, in each case including portions thereof.
-
-1.4. Executable means the Covered Software in any form other than Source Code.
-
-1.5. Initial Developer means the individual or entity that first makes Original Software available under this License.
-
-1.6. Larger Work means a work which combines Covered Software or portions thereof with code not governed by the terms of this License.
-
-1.7. License means this document.
-
-1.8. Licensable means having the right to grant, to the maximum extent possible, whether at the time of the initial grant or subsequently acquired, any and all of the rights conveyed herein.
-
-1.9. Modifications means the Source Code and Executable form of any of the following:
-
-A. Any file that results from an addition to, deletion from or modification of the contents of a file containing Original Software or previous Modifications;
-
-B. Any new file that contains any part of the Original Software or previous Modification; or
-
-C. Any new file that is contributed or otherwise made available under the terms of this License.
-
-1.10. Original Software means the Source Code and Executable form of computer software code that is originally released under this License.
-
-1.11. Patent Claims means any patent claim(s), now owned or hereafter acquired, including without limitation, method, process, and apparatus claims, in any patent Licensable by grantor.
-
-1.12. Source Code means (a) the common form of computer software code in which modifications are made and (b) associated documentation included in or with such code.
-
-1.13. You (or Your) means an individual or a legal entity exercising rights under, and complying with all of the terms of, this License. For legal entities, You includes any entity which controls, is controlled by, or is under common control with You. For purposes of this definition, control means (a)�the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (b)�ownership of more than fifty percent (50%) of the outstanding shares or beneficial ownership of such entity.
-
-2. License Grants.
-
-2.1. The Initial Developer Grant.
-Conditioned upon Your compliance with Section 3.1 below and subject to third party intellectual property claims, the Initial Developer hereby grants You a world-wide, royalty-free, non-exclusive license:
-(a) under intellectual property rights (other than patent or trademark) Licensable by Initial Developer, to use, reproduce, modify, display, perform, sublicense and distribute the Original Software (or portions thereof), with or without Modifications, and/or as part of a Larger Work; and
-(b) under Patent Claims infringed by the making, using or selling of Original Software, to make, have made, use, practice, sell, and offer for sale, and/or otherwise dispose of the Original Software (or portions thereof).
-(c) The licenses granted in Sections�2.1(a) and (b) are effective on the date Initial Developer first distributes or otherwise makes the Original Software available to a third party under the terms of this License.
-(d) Notwithstanding Section�2.1(b) above, no patent license is granted: (1)�for code that You delete from the Original Software, or (2)�for infringements caused by: (i)�the modification of the Original Software, or (ii)�the combination of the Original Software with other software or devices.
-
-2.2. Contributor Grant.
-Conditioned upon Your compliance with Section 3.1 below and subject to third party intellectual property claims, each Contributor hereby grants You a world-wide, royalty-free, non-exclusive license:
-(a) under intellectual property rights (other than patent or trademark) Licensable by Contributor to use, reproduce, modify, display, perform, sublicense and distribute the Modifications created by such Contributor (or portions thereof), either on an unmodified basis, with other Modifications, as Covered Software and/or as part of a Larger Work; and
-(b) under Patent Claims infringed by the making, using, or selling of Modifications made by that Contributor either alone and/or in combination with its Contributor Version (or portions of such combination), to make, use, sell, offer for sale, have made, and/or otherwise dispose of: (1)�Modifications made by that Contributor (or portions thereof); and (2)�the combination of Modifications made by that Contributor with its Contributor Version (or portions of such combination).
-(c) The licenses granted in Sections�2.2(a) and 2.2(b) are effective on the date Contributor first distributes or otherwise makes the Modifications available to a third party.
-(d) Notwithstanding Section�2.2(b) above, no patent license is granted: (1)�for any code that Contributor has deleted from the Contributor Version; (2)�for infringements caused by: (i)�third party modifications of Contributor Version, or (ii)�the combination of Modifications made by that Contributor with other software (except as part of the Contributor Version) or other devices; or (3)�under Patent Claims infringed by Covered Software in the absence of Modifications made by that Contributor.
-
-3. Distribution Obligations.
-
-3.1. Availability of Source Code.
-
-Any Covered Software that You distribute or otherwise make available in Executable form must also be made available in Source Code form and that Source Code form must be distributed only under the terms of this License. You must include a copy of this License with every copy of the Source Code form of the Covered Software You distribute or otherwise make available. You must inform recipients of any such Covered Software in Executable form as to how they can obtain such Covered Software in Source Code form in a reasonable manner on or through a medium customarily used for software exchange.
-
-3.2. Modifications.
-
-The Modifications that You create or to which You contribute are governed by the terms of this License. You represent that You believe Your Modifications are Your original creation(s) and/or You have sufficient rights to grant the rights conveyed by this License.
-
-3.3. Required Notices.
-You must include a notice in each of Your Modifications that identifies You as the Contributor of the Modification. You may not remove or alter any copyright, patent or trademark notices contained within the Covered Software, or any notices of licensing or any descriptive text giving attribution to any Contributor or the Initial Developer.
-
-3.4. Application of Additional Terms.
-You may not offer or impose any terms on any Covered Software in Source Code form that alters or restricts the applicable version of this License or the recipients rights hereunder. You may choose to offer, and to charge a fee for, warranty, support, indemnity or liability obligations to one or more recipients of Covered Software. However, you may do so only on Your own behalf, and not on behalf of the Initial Developer or any Contributor. You must make it absolutely clear that any such warranty, support, indemnity or liability obligation is offered by You alone, and You hereby agree to indemnify the Initial Developer and every Contributor for any liability incurred by the Initial Developer or such Contributor as a result of warranty, support, indemnity or liability terms You offer.
-
-3.5. Distribution of Executable Versions.
-You may distribute the Executable form of the Covered Software under the terms of this License or under the terms of a license of Your choice, which may contain terms different from this License, provided that You are in compliance with the terms of this License and that the license for the Executable form does not attempt to limit or alter the recipients rights in the Source Code form from the rights set forth in this License. If You distribute the Covered Software in Executable form under a different license, You must make it absolutely clear that any terms which differ from this License are offered by You alone, not by the Initial Developer or Contributor. You hereby agree to indemnify the Initial Developer and every Contributor for any liability incurred by the Initial Developer or such Contributor as a result of any such terms You offer.
-
-3.6. Larger Works.
-You may create a Larger Work by combining Covered Software with other code not governed by the terms of this License and distribute the Larger Work as a single product. In such a case, You must make sure the requirements of this License are fulfilled for the Covered Software.
-
-4. Versions of the License.
-
-4.1. New Versions.
-Sun Microsystems, Inc. is the initial license steward and may publish revised and/or new versions of this License from time to time. Each version will be given a distinguishing version number. Except as provided in Section 4.3, no one other than the license steward has the right to modify this License.
-
-4.2. Effect of New Versions.
-
-You may always continue to use, distribute or otherwise make the Covered Software available under the terms of the version of the License under which You originally received the Covered Software. If the Initial Developer includes a notice in the Original Software prohibiting it from being distributed or otherwise made available under any subsequent version of the License, You must distribute and make the Covered Software available under the terms of the version of the License under which You originally received the Covered Software. Otherwise, You may also choose to use, distribute or otherwise make the Covered Software available under the terms of any subsequent version of the License published by the license steward.
-4.3. Modified Versions.
-
-When You are an Initial Developer and You want to create a new license for Your Original Software, You may create and use a modified version of this License if You: (a)�rename the license and remove any references to the name of the license steward (except to note that the license differs from this License); and (b)�otherwise make it clear that the license contains terms which differ from this License.
-
-5. DISCLAIMER OF WARRANTY.
-
-COVERED SOFTWARE IS PROVIDED UNDER THIS LICENSE ON AN AS IS BASIS, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE COVERED SOFTWARE IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED SOFTWARE IS WITH YOU. SHOULD ANY COVERED SOFTWARE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY COVERED SOFTWARE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER.
-
-6. TERMINATION.
-
-6.1. This License and the rights granted hereunder will terminate automatically if You fail to comply with terms herein and fail to cure such breach within 30 days of becoming aware of the breach. Provisions which, by their nature, must remain in effect beyond the termination of this License shall survive.
-
-6.2. If You assert a patent infringement claim (excluding declaratory judgment actions) against Initial Developer or a Contributor (the Initial Developer or Contributor against whom You assert such claim is referred to as Participant) alleging that the Participant Software (meaning the Contributor Version where the Participant is a Contributor or the Original Software where the Participant is the Initial Developer) directly or indirectly infringes any patent, then any and all rights granted directly or indirectly to You by such Participant, the Initial Developer (if the Initial Developer is not the Participant) and all Contributors under Sections�2.1 and/or 2.2 of this License shall, upon 60 days notice from Participant terminate prospectively and automatically at the expiration of such 60 day notice period, unless if within such 60 day period You withdraw Your claim with respect to the Participant Software against such Participant either unilaterally or pursuant to a written agreement with Participant.
-
-6.3. In the event of termination under Sections�6.1 or 6.2 above, all end user licenses that have been validly granted by You or any distributor hereunder prior to termination (excluding licenses granted to You by any distributor) shall survive termination.
-
-7. LIMITATION OF LIABILITY.
-
-UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED SOFTWARE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOST PROFITS, LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY RESULTING FROM SUCH PARTYS NEGLIGENCE TO THE EXTENT APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU.
-
-8. U.S. GOVERNMENT END USERS.
-
-The Covered Software is a commercial item, as that term is defined in 48�C.F.R.�2.101 (Oct. 1995), consisting of commercial computer software (as that term is defined at 48 C.F.R. �252.227-7014(a)(1)) and commercial computer software documentation as such terms are used in 48�C.F.R.�12.212 (Sept. 1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995), all U.S. Government End Users acquire Covered Software with only those rights set forth herein. This U.S. Government Rights clause is in lieu of, and supersedes, any other FAR, DFAR, or other clause or provision that addresses Government rights in computer software under this License.
-
-9. MISCELLANEOUS.
-
-This License represents the complete agreement concerning subject matter hereof. If any provision of this License is held to be unenforceable, such provision shall be reformed only to the extent necessary to make it enforceable. This License shall be governed by the law of the jurisdiction specified in a notice contained within the Original Software (except to the extent applicable law, if any, provides otherwise), excluding such jurisdictions conflict-of-law provisions. Any litigation relating to this License shall be subject to the jurisdiction of the courts located in the jurisdiction and venue specified in a notice contained within the Original Software, with the losing party responsible for costs, including, without limitation, court costs and reasonable attorneys fees and expenses. The application of the United Nations Convention on Contracts for the International Sale of Goods is expressly excluded. Any law or regulation which provides that the language of a contract shall be construed against the drafter shall not apply to this License. You agree that You alone are responsible for compliance with the United States export administration regulations (and the export control laws and regulation of any other countries) when You use, distribute or otherwise make available any Covered Software.
-
-10. RESPONSIBILITY FOR CLAIMS.
-
-As between Initial Developer and the Contributors, each party is responsible for claims and damages arising, directly or indirectly, out of its utilization of rights under this License and You agree to work with Initial Developer and Contributors to distribute such responsibility on an equitable basis. Nothing herein is intended or shall be deemed to constitute any admission of liability.
-
-NOTICE PURSUANT TO SECTION 9 OF THE COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL)
-The GlassFish code released under the CDDL shall be governed by the laws of the State of California (excluding conflict-of-law provisions). Any litigation relating to this License shall be subject to the jurisdiction of the Federal Courts of the Northern District of California and the state courts of the State of California, with venue lying in Santa Clara County, California. 
-
-
-
diff --git a/legal/axiom-dom-LICENSE.txt b/legal/axiom-LICENSE.txt
similarity index 100%
rename from legal/axiom-dom-LICENSE.txt
rename to legal/axiom-LICENSE.txt
diff --git a/legal/geronimo-stax-api-LICENSE.txt b/legal/geronimo-stax-api-LICENSE.txt
deleted file mode 100644
index 6b0b127..0000000
--- a/legal/geronimo-stax-api-LICENSE.txt
+++ /dev/null
@@ -1,203 +0,0 @@
-
-                                 Apache License
-                           Version 2.0, January 2004
-                        http://www.apache.org/licenses/
-
-   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
-   1. Definitions.
-
-      "License" shall mean the terms and conditions for use, reproduction,
-      and distribution as defined by Sections 1 through 9 of this document.
-
-      "Licensor" shall mean the copyright owner or entity authorized by
-      the copyright owner that is granting the License.
-
-      "Legal Entity" shall mean the union of the acting entity and all
-      other entities that control, are controlled by, or are under common
-      control with that entity. For the purposes of this definition,
-      "control" means (i) the power, direct or indirect, to cause the
-      direction or management of such entity, whether by contract or
-      otherwise, or (ii) ownership of fifty percent (50%) or more of the
-      outstanding shares, or (iii) beneficial ownership of such entity.
-
-      "You" (or "Your") shall mean an individual or Legal Entity
-      exercising permissions granted by this License.
-
-      "Source" form shall mean the preferred form for making modifications,
-      including but not limited to software source code, documentation
-      source, and configuration files.
-
-      "Object" form shall mean any form resulting from mechanical
-      transformation or translation of a Source form, including but
-      not limited to compiled object code, generated documentation,
-      and conversions to other media types.
-
-      "Work" shall mean the work of authorship, whether in Source or
-      Object form, made available under the License, as indicated by a
-      copyright notice that is included in or attached to the work
-      (an example is provided in the Appendix below).
-
-      "Derivative Works" shall mean any work, whether in Source or Object
-      form, that is based on (or derived from) the Work and for which the
-      editorial revisions, annotations, elaborations, or other modifications
-      represent, as a whole, an original work of authorship. For the purposes
-      of this License, Derivative Works shall not include works that remain
-      separable from, or merely link (or bind by name) to the interfaces of,
-      the Work and Derivative Works thereof.
-
-      "Contribution" shall mean any work of authorship, including
-      the original version of the Work and any modifications or additions
-      to that Work or Derivative Works thereof, that is intentionally
-      submitted to Licensor for inclusion in the Work by the copyright owner
-      or by an individual or Legal Entity authorized to submit on behalf of
-      the copyright owner. For the purposes of this definition, "submitted"
-      means any form of electronic, verbal, or written communication sent
-      to the Licensor or its representatives, including but not limited to
-      communication on electronic mailing lists, source code control systems,
-      and issue tracking systems that are managed by, or on behalf of, the
-      Licensor for the purpose of discussing and improving the Work, but
-      excluding communication that is conspicuously marked or otherwise
-      designated in writing by the copyright owner as "Not a Contribution."
-
-      "Contributor" shall mean Licensor and any individual or Legal Entity
-      on behalf of whom a Contribution has been received by Licensor and
-      subsequently incorporated within the Work.
-
-   2. Grant of Copyright License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      copyright license to reproduce, prepare Derivative Works of,
-      publicly display, publicly perform, sublicense, and distribute the
-      Work and such Derivative Works in Source or Object form.
-
-   3. Grant of Patent License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      (except as stated in this section) patent license to make, have made,
-      use, offer to sell, sell, import, and otherwise transfer the Work,
-      where such license applies only to those patent claims licensable
-      by such Contributor that are necessarily infringed by their
-      Contribution(s) alone or by combination of their Contribution(s)
-      with the Work to which such Contribution(s) was submitted. If You
-      institute patent litigation against any entity (including a
-      cross-claim or counterclaim in a lawsuit) alleging that the Work
-      or a Contribution incorporated within the Work constitutes direct
-      or contributory patent infringement, then any patent licenses
-      granted to You under this License for that Work shall terminate
-      as of the date such litigation is filed.
-
-   4. Redistribution. You may reproduce and distribute copies of the
-      Work or Derivative Works thereof in any medium, with or without
-      modifications, and in Source or Object form, provided that You
-      meet the following conditions:
-
-      (a) You must give any other recipients of the Work or
-          Derivative Works a copy of this License; and
-
-      (b) You must cause any modified files to carry prominent notices
-          stating that You changed the files; and
-
-      (c) You must retain, in the Source form of any Derivative Works
-          that You distribute, all copyright, patent, trademark, and
-          attribution notices from the Source form of the Work,
-          excluding those notices that do not pertain to any part of
-          the Derivative Works; and
-
-      (d) If the Work includes a "NOTICE" text file as part of its
-          distribution, then any Derivative Works that You distribute must
-          include a readable copy of the attribution notices contained
-          within such NOTICE file, excluding those notices that do not
-          pertain to any part of the Derivative Works, in at least one
-          of the following places: within a NOTICE text file distributed
-          as part of the Derivative Works; within the Source form or
-          documentation, if provided along with the Derivative Works; or,
-          within a display generated by the Derivative Works, if and
-          wherever such third-party notices normally appear. The contents
-          of the NOTICE file are for informational purposes only and
-          do not modify the License. You may add Your own attribution
-          notices within Derivative Works that You distribute, alongside
-          or as an addendum to the NOTICE text from the Work, provided
-          that such additional attribution notices cannot be construed
-          as modifying the License.
-
-      You may add Your own copyright statement to Your modifications and
-      may provide additional or different license terms and conditions
-      for use, reproduction, or distribution of Your modifications, or
-      for any such Derivative Works as a whole, provided Your use,
-      reproduction, and distribution of the Work otherwise complies with
-      the conditions stated in this License.
-
-   5. Submission of Contributions. Unless You explicitly state otherwise,
-      any Contribution intentionally submitted for inclusion in the Work
-      by You to the Licensor shall be under the terms and conditions of
-      this License, without any additional terms or conditions.
-      Notwithstanding the above, nothing herein shall supersede or modify
-      the terms of any separate license agreement you may have executed
-      with Licensor regarding such Contributions.
-
-   6. Trademarks. This License does not grant permission to use the trade
-      names, trademarks, service marks, or product names of the Licensor,
-      except as required for reasonable and customary use in describing the
-      origin of the Work and reproducing the content of the NOTICE file.
-
-   7. Disclaimer of Warranty. Unless required by applicable law or
-      agreed to in writing, Licensor provides the Work (and each
-      Contributor provides its Contributions) on an "AS IS" BASIS,
-      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-      implied, including, without limitation, any warranties or conditions
-      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
-      PARTICULAR PURPOSE. You are solely responsible for determining the
-      appropriateness of using or redistributing the Work and assume any
-      risks associated with Your exercise of permissions under this License.
-
-   8. Limitation of Liability. In no event and under no legal theory,
-      whether in tort (including negligence), contract, or otherwise,
-      unless required by applicable law (such as deliberate and grossly
-      negligent acts) or agreed to in writing, shall any Contributor be
-      liable to You for damages, including any direct, indirect, special,
-      incidental, or consequential damages of any character arising as a
-      result of this License or out of the use or inability to use the
-      Work (including but not limited to damages for loss of goodwill,
-      work stoppage, computer failure or malfunction, or any and all
-      other commercial damages or losses), even if such Contributor
-      has been advised of the possibility of such damages.
-
-   9. Accepting Warranty or Additional Liability. While redistributing
-      the Work or Derivative Works thereof, You may choose to offer,
-      and charge a fee for, acceptance of support, warranty, indemnity,
-      or other liability obligations and/or rights consistent with this
-      License. However, in accepting such obligations, You may act only
-      on Your own behalf and on Your sole responsibility, not on behalf
-      of any other Contributor, and only if You agree to indemnify,
-      defend, and hold each Contributor harmless for any liability
-      incurred by, or claims asserted against, such Contributor by reason
-      of your accepting any such warranty or additional liability.
-
-   END OF TERMS AND CONDITIONS
-
-   APPENDIX: How to apply the Apache License to your work.
-
-      To apply the Apache License to your work, attach the following
-      boilerplate notice, with the fields enclosed by brackets "[]"
-      replaced with your own identifying information. (Don't include
-      the brackets!)  The text should be enclosed in the appropriate
-      comment syntax for the file format. We also recommend that a
-      file or class name and description of purpose be included on the
-      same "printed page" as the copyright notice for easier
-      identification within third-party archives.
-
-   Copyright [yyyy] [name of copyright owner]
-
-   Licensed under the Apache License, Version 2.0 (the "License");
-   you may not use this file except in compliance with the License.
-   You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
-
diff --git a/legal/axiom-impl-LICENSE.txt b/legal/gson-LICENSE.txt
similarity index 99%
rename from legal/axiom-impl-LICENSE.txt
rename to legal/gson-LICENSE.txt
index fef8c29..d645695 100644
--- a/legal/axiom-impl-LICENSE.txt
+++ b/legal/gson-LICENSE.txt
@@ -1,202 +1,202 @@
-                                 Apache License

-                           Version 2.0, January 2004

-                        http://www.apache.org/licenses/

-

-   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION

-

-   1. Definitions.

-

-      "License" shall mean the terms and conditions for use, reproduction,

-      and distribution as defined by Sections 1 through 9 of this document.

-

-      "Licensor" shall mean the copyright owner or entity authorized by

-      the copyright owner that is granting the License.

-

-      "Legal Entity" shall mean the union of the acting entity and all

-      other entities that control, are controlled by, or are under common

-      control with that entity. For the purposes of this definition,

-      "control" means (i) the power, direct or indirect, to cause the

-      direction or management of such entity, whether by contract or

-      otherwise, or (ii) ownership of fifty percent (50%) or more of the

-      outstanding shares, or (iii) beneficial ownership of such entity.

-

-      "You" (or "Your") shall mean an individual or Legal Entity

-      exercising permissions granted by this License.

-

-      "Source" form shall mean the preferred form for making modifications,

-      including but not limited to software source code, documentation

-      source, and configuration files.

-

-      "Object" form shall mean any form resulting from mechanical

-      transformation or translation of a Source form, including but

-      not limited to compiled object code, generated documentation,

-      and conversions to other media types.

-

-      "Work" shall mean the work of authorship, whether in Source or

-      Object form, made available under the License, as indicated by a

-      copyright notice that is included in or attached to the work

-      (an example is provided in the Appendix below).

-

-      "Derivative Works" shall mean any work, whether in Source or Object

-      form, that is based on (or derived from) the Work and for which the

-      editorial revisions, annotations, elaborations, or other modifications

-      represent, as a whole, an original work of authorship. For the purposes

-      of this License, Derivative Works shall not include works that remain

-      separable from, or merely link (or bind by name) to the interfaces of,

-      the Work and Derivative Works thereof.

-

-      "Contribution" shall mean any work of authorship, including

-      the original version of the Work and any modifications or additions

-      to that Work or Derivative Works thereof, that is intentionally

-      submitted to Licensor for inclusion in the Work by the copyright owner

-      or by an individual or Legal Entity authorized to submit on behalf of

-      the copyright owner. For the purposes of this definition, "submitted"

-      means any form of electronic, verbal, or written communication sent

-      to the Licensor or its representatives, including but not limited to

-      communication on electronic mailing lists, source code control systems,

-      and issue tracking systems that are managed by, or on behalf of, the

-      Licensor for the purpose of discussing and improving the Work, but

-      excluding communication that is conspicuously marked or otherwise

-      designated in writing by the copyright owner as "Not a Contribution."

-

-      "Contributor" shall mean Licensor and any individual or Legal Entity

-      on behalf of whom a Contribution has been received by Licensor and

-      subsequently incorporated within the Work.

-

-   2. Grant of Copyright License. Subject to the terms and conditions of

-      this License, each Contributor hereby grants to You a perpetual,

-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable

-      copyright license to reproduce, prepare Derivative Works of,

-      publicly display, publicly perform, sublicense, and distribute the

-      Work and such Derivative Works in Source or Object form.

-

-   3. Grant of Patent License. Subject to the terms and conditions of

-      this License, each Contributor hereby grants to You a perpetual,

-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable

-      (except as stated in this section) patent license to make, have made,

-      use, offer to sell, sell, import, and otherwise transfer the Work,

-      where such license applies only to those patent claims licensable

-      by such Contributor that are necessarily infringed by their

-      Contribution(s) alone or by combination of their Contribution(s)

-      with the Work to which such Contribution(s) was submitted. If You

-      institute patent litigation against any entity (including a

-      cross-claim or counterclaim in a lawsuit) alleging that the Work

-      or a Contribution incorporated within the Work constitutes direct

-      or contributory patent infringement, then any patent licenses

-      granted to You under this License for that Work shall terminate

-      as of the date such litigation is filed.

-

-   4. Redistribution. You may reproduce and distribute copies of the

-      Work or Derivative Works thereof in any medium, with or without

-      modifications, and in Source or Object form, provided that You

-      meet the following conditions:

-

-      (a) You must give any other recipients of the Work or

-          Derivative Works a copy of this License; and

-

-      (b) You must cause any modified files to carry prominent notices

-          stating that You changed the files; and

-

-      (c) You must retain, in the Source form of any Derivative Works

-          that You distribute, all copyright, patent, trademark, and

-          attribution notices from the Source form of the Work,

-          excluding those notices that do not pertain to any part of

-          the Derivative Works; and

-

-      (d) If the Work includes a "NOTICE" text file as part of its

-          distribution, then any Derivative Works that You distribute must

-          include a readable copy of the attribution notices contained

-          within such NOTICE file, excluding those notices that do not

-          pertain to any part of the Derivative Works, in at least one

-          of the following places: within a NOTICE text file distributed

-          as part of the Derivative Works; within the Source form or

-          documentation, if provided along with the Derivative Works; or,

-          within a display generated by the Derivative Works, if and

-          wherever such third-party notices normally appear. The contents

-          of the NOTICE file are for informational purposes only and

-          do not modify the License. You may add Your own attribution

-          notices within Derivative Works that You distribute, alongside

-          or as an addendum to the NOTICE text from the Work, provided

-          that such additional attribution notices cannot be construed

-          as modifying the License.

-

-      You may add Your own copyright statement to Your modifications and

-      may provide additional or different license terms and conditions

-      for use, reproduction, or distribution of Your modifications, or

-      for any such Derivative Works as a whole, provided Your use,

-      reproduction, and distribution of the Work otherwise complies with

-      the conditions stated in this License.

-

-   5. Submission of Contributions. Unless You explicitly state otherwise,

-      any Contribution intentionally submitted for inclusion in the Work

-      by You to the Licensor shall be under the terms and conditions of

-      this License, without any additional terms or conditions.

-      Notwithstanding the above, nothing herein shall supersede or modify

-      the terms of any separate license agreement you may have executed

-      with Licensor regarding such Contributions.

-

-   6. Trademarks. This License does not grant permission to use the trade

-      names, trademarks, service marks, or product names of the Licensor,

-      except as required for reasonable and customary use in describing the

-      origin of the Work and reproducing the content of the NOTICE file.

-

-   7. Disclaimer of Warranty. Unless required by applicable law or

-      agreed to in writing, Licensor provides the Work (and each

-      Contributor provides its Contributions) on an "AS IS" BASIS,

-      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or

-      implied, including, without limitation, any warranties or conditions

-      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A

-      PARTICULAR PURPOSE. You are solely responsible for determining the

-      appropriateness of using or redistributing the Work and assume any

-      risks associated with Your exercise of permissions under this License.

-

-   8. Limitation of Liability. In no event and under no legal theory,

-      whether in tort (including negligence), contract, or otherwise,

-      unless required by applicable law (such as deliberate and grossly

-      negligent acts) or agreed to in writing, shall any Contributor be

-      liable to You for damages, including any direct, indirect, special,

-      incidental, or consequential damages of any character arising as a

-      result of this License or out of the use or inability to use the

-      Work (including but not limited to damages for loss of goodwill,

-      work stoppage, computer failure or malfunction, or any and all

-      other commercial damages or losses), even if such Contributor

-      has been advised of the possibility of such damages.

-

-   9. Accepting Warranty or Additional Liability. While redistributing

-      the Work or Derivative Works thereof, You may choose to offer,

-      and charge a fee for, acceptance of support, warranty, indemnity,

-      or other liability obligations and/or rights consistent with this

-      License. However, in accepting such obligations, You may act only

-      on Your own behalf and on Your sole responsibility, not on behalf

-      of any other Contributor, and only if You agree to indemnify,

-      defend, and hold each Contributor harmless for any liability

-      incurred by, or claims asserted against, such Contributor by reason

-      of your accepting any such warranty or additional liability.

-

-   END OF TERMS AND CONDITIONS

-

-   APPENDIX: How to apply the Apache License to your work.

-

-      To apply the Apache License to your work, attach the following

-      boilerplate notice, with the fields enclosed by brackets "[]"

-      replaced with your own identifying information. (Don't include

-      the brackets!)  The text should be enclosed in the appropriate

-      comment syntax for the file format. We also recommend that a

-      file or class name and description of purpose be included on the

-      same "printed page" as the copyright notice for easier

-      identification within third-party archives.

-

-   Copyright [yyyy] [name of copyright owner]

-

-   Licensed under the Apache License, Version 2.0 (the "License");

-   you may not use this file except in compliance with the License.

-   You may obtain a copy of the License at

-

-       http://www.apache.org/licenses/LICENSE-2.0

-

-   Unless required by applicable law or agreed to in writing, software

-   distributed under the License is distributed on an "AS IS" BASIS,

-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

-   See the License for the specific language governing permissions and

-   limitations under the License.

-

+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
diff --git a/legal/commons-httpclient-LICENSE.txt b/legal/httpclient-LICENSE.txt
similarity index 100%
rename from legal/commons-httpclient-LICENSE.txt
rename to legal/httpclient-LICENSE.txt
diff --git a/legal/jalopy-LICENSE.txt b/legal/jalopy-LICENSE.txt
deleted file mode 100644
index 6ec7888..0000000
--- a/legal/jalopy-LICENSE.txt
+++ /dev/null
@@ -1,43 +0,0 @@
-<?xml version="1.0"
-      encoding="iso-8859-1" ?>
-
-<!-- $Id$ -->
-
-<title>The Jalopy BSD License</title>
-
-<indexterm><primary>Software License</primary></indexterm>
-<indexterm><primary>Licenses</primary><secondary>BSD</secondary></indexterm>
-
-<para>
-Copyright (c) 2001-2004, Marco Hunsicker. All rights reserved.
-</para>
-
-<para>
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-</para>
-
-<itemizedlist>
-<listitem>
-<para>
-Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
-</para>
-</listitem>
-
-<listitem>
-<para>
-Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
-</para>
-</listitem>
-
-<listitem>
-<para>
-Neither the name of the Jalopy Group nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
-</para>
-</listitem>
-</itemizedlist>
-
-<para>
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-</para> 
\ No newline at end of file
diff --git a/legal/mail-LICENSE.txt b/legal/javax.mail-LICENSE.txt
similarity index 100%
rename from legal/mail-LICENSE.txt
rename to legal/javax.mail-LICENSE.txt
diff --git a/legal/regexp-LICENSE.txt b/legal/regexp-LICENSE.txt
deleted file mode 100644
index fef8c29..0000000
--- a/legal/regexp-LICENSE.txt
+++ /dev/null
@@ -1,202 +0,0 @@
-                                 Apache License

-                           Version 2.0, January 2004

-                        http://www.apache.org/licenses/

-

-   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION

-

-   1. Definitions.

-

-      "License" shall mean the terms and conditions for use, reproduction,

-      and distribution as defined by Sections 1 through 9 of this document.

-

-      "Licensor" shall mean the copyright owner or entity authorized by

-      the copyright owner that is granting the License.

-

-      "Legal Entity" shall mean the union of the acting entity and all

-      other entities that control, are controlled by, or are under common

-      control with that entity. For the purposes of this definition,

-      "control" means (i) the power, direct or indirect, to cause the

-      direction or management of such entity, whether by contract or

-      otherwise, or (ii) ownership of fifty percent (50%) or more of the

-      outstanding shares, or (iii) beneficial ownership of such entity.

-

-      "You" (or "Your") shall mean an individual or Legal Entity

-      exercising permissions granted by this License.

-

-      "Source" form shall mean the preferred form for making modifications,

-      including but not limited to software source code, documentation

-      source, and configuration files.

-

-      "Object" form shall mean any form resulting from mechanical

-      transformation or translation of a Source form, including but

-      not limited to compiled object code, generated documentation,

-      and conversions to other media types.

-

-      "Work" shall mean the work of authorship, whether in Source or

-      Object form, made available under the License, as indicated by a

-      copyright notice that is included in or attached to the work

-      (an example is provided in the Appendix below).

-

-      "Derivative Works" shall mean any work, whether in Source or Object

-      form, that is based on (or derived from) the Work and for which the

-      editorial revisions, annotations, elaborations, or other modifications

-      represent, as a whole, an original work of authorship. For the purposes

-      of this License, Derivative Works shall not include works that remain

-      separable from, or merely link (or bind by name) to the interfaces of,

-      the Work and Derivative Works thereof.

-

-      "Contribution" shall mean any work of authorship, including

-      the original version of the Work and any modifications or additions

-      to that Work or Derivative Works thereof, that is intentionally

-      submitted to Licensor for inclusion in the Work by the copyright owner

-      or by an individual or Legal Entity authorized to submit on behalf of

-      the copyright owner. For the purposes of this definition, "submitted"

-      means any form of electronic, verbal, or written communication sent

-      to the Licensor or its representatives, including but not limited to

-      communication on electronic mailing lists, source code control systems,

-      and issue tracking systems that are managed by, or on behalf of, the

-      Licensor for the purpose of discussing and improving the Work, but

-      excluding communication that is conspicuously marked or otherwise

-      designated in writing by the copyright owner as "Not a Contribution."

-

-      "Contributor" shall mean Licensor and any individual or Legal Entity

-      on behalf of whom a Contribution has been received by Licensor and

-      subsequently incorporated within the Work.

-

-   2. Grant of Copyright License. Subject to the terms and conditions of

-      this License, each Contributor hereby grants to You a perpetual,

-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable

-      copyright license to reproduce, prepare Derivative Works of,

-      publicly display, publicly perform, sublicense, and distribute the

-      Work and such Derivative Works in Source or Object form.

-

-   3. Grant of Patent License. Subject to the terms and conditions of

-      this License, each Contributor hereby grants to You a perpetual,

-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable

-      (except as stated in this section) patent license to make, have made,

-      use, offer to sell, sell, import, and otherwise transfer the Work,

-      where such license applies only to those patent claims licensable

-      by such Contributor that are necessarily infringed by their

-      Contribution(s) alone or by combination of their Contribution(s)

-      with the Work to which such Contribution(s) was submitted. If You

-      institute patent litigation against any entity (including a

-      cross-claim or counterclaim in a lawsuit) alleging that the Work

-      or a Contribution incorporated within the Work constitutes direct

-      or contributory patent infringement, then any patent licenses

-      granted to You under this License for that Work shall terminate

-      as of the date such litigation is filed.

-

-   4. Redistribution. You may reproduce and distribute copies of the

-      Work or Derivative Works thereof in any medium, with or without

-      modifications, and in Source or Object form, provided that You

-      meet the following conditions:

-

-      (a) You must give any other recipients of the Work or

-          Derivative Works a copy of this License; and

-

-      (b) You must cause any modified files to carry prominent notices

-          stating that You changed the files; and

-

-      (c) You must retain, in the Source form of any Derivative Works

-          that You distribute, all copyright, patent, trademark, and

-          attribution notices from the Source form of the Work,

-          excluding those notices that do not pertain to any part of

-          the Derivative Works; and

-

-      (d) If the Work includes a "NOTICE" text file as part of its

-          distribution, then any Derivative Works that You distribute must

-          include a readable copy of the attribution notices contained

-          within such NOTICE file, excluding those notices that do not

-          pertain to any part of the Derivative Works, in at least one

-          of the following places: within a NOTICE text file distributed

-          as part of the Derivative Works; within the Source form or

-          documentation, if provided along with the Derivative Works; or,

-          within a display generated by the Derivative Works, if and

-          wherever such third-party notices normally appear. The contents

-          of the NOTICE file are for informational purposes only and

-          do not modify the License. You may add Your own attribution

-          notices within Derivative Works that You distribute, alongside

-          or as an addendum to the NOTICE text from the Work, provided

-          that such additional attribution notices cannot be construed

-          as modifying the License.

-

-      You may add Your own copyright statement to Your modifications and

-      may provide additional or different license terms and conditions

-      for use, reproduction, or distribution of Your modifications, or

-      for any such Derivative Works as a whole, provided Your use,

-      reproduction, and distribution of the Work otherwise complies with

-      the conditions stated in this License.

-

-   5. Submission of Contributions. Unless You explicitly state otherwise,

-      any Contribution intentionally submitted for inclusion in the Work

-      by You to the Licensor shall be under the terms and conditions of

-      this License, without any additional terms or conditions.

-      Notwithstanding the above, nothing herein shall supersede or modify

-      the terms of any separate license agreement you may have executed

-      with Licensor regarding such Contributions.

-

-   6. Trademarks. This License does not grant permission to use the trade

-      names, trademarks, service marks, or product names of the Licensor,

-      except as required for reasonable and customary use in describing the

-      origin of the Work and reproducing the content of the NOTICE file.

-

-   7. Disclaimer of Warranty. Unless required by applicable law or

-      agreed to in writing, Licensor provides the Work (and each

-      Contributor provides its Contributions) on an "AS IS" BASIS,

-      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or

-      implied, including, without limitation, any warranties or conditions

-      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A

-      PARTICULAR PURPOSE. You are solely responsible for determining the

-      appropriateness of using or redistributing the Work and assume any

-      risks associated with Your exercise of permissions under this License.

-

-   8. Limitation of Liability. In no event and under no legal theory,

-      whether in tort (including negligence), contract, or otherwise,

-      unless required by applicable law (such as deliberate and grossly

-      negligent acts) or agreed to in writing, shall any Contributor be

-      liable to You for damages, including any direct, indirect, special,

-      incidental, or consequential damages of any character arising as a

-      result of this License or out of the use or inability to use the

-      Work (including but not limited to damages for loss of goodwill,

-      work stoppage, computer failure or malfunction, or any and all

-      other commercial damages or losses), even if such Contributor

-      has been advised of the possibility of such damages.

-

-   9. Accepting Warranty or Additional Liability. While redistributing

-      the Work or Derivative Works thereof, You may choose to offer,

-      and charge a fee for, acceptance of support, warranty, indemnity,

-      or other liability obligations and/or rights consistent with this

-      License. However, in accepting such obligations, You may act only

-      on Your own behalf and on Your sole responsibility, not on behalf

-      of any other Contributor, and only if You agree to indemnify,

-      defend, and hold each Contributor harmless for any liability

-      incurred by, or claims asserted against, such Contributor by reason

-      of your accepting any such warranty or additional liability.

-

-   END OF TERMS AND CONDITIONS

-

-   APPENDIX: How to apply the Apache License to your work.

-

-      To apply the Apache License to your work, attach the following

-      boilerplate notice, with the fields enclosed by brackets "[]"

-      replaced with your own identifying information. (Don't include

-      the brackets!)  The text should be enclosed in the appropriate

-      comment syntax for the file format. We also recommend that a

-      file or class name and description of purpose be included on the

-      same "printed page" as the copyright notice for easier

-      identification within third-party archives.

-

-   Copyright [yyyy] [name of copyright owner]

-

-   Licensed under the Apache License, Version 2.0 (the "License");

-   you may not use this file except in compliance with the License.

-   You may obtain a copy of the License at

-

-       http://www.apache.org/licenses/LICENSE-2.0

-

-   Unless required by applicable law or agreed to in writing, software

-   distributed under the License is distributed on an "AS IS" BASIS,

-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

-   See the License for the specific language governing permissions and

-   limitations under the License.

-

diff --git a/legal/stax2-api.LICENSE.txt b/legal/stax2-api.LICENSE.txt
new file mode 100644
index 0000000..b3d4801
--- /dev/null
+++ b/legal/stax2-api.LICENSE.txt
@@ -0,0 +1,26 @@
+Copyright (c) 2004-2010, Woodstox Project (http://woodstox.codehaus.org/)
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+1. Redistributions of source code must retain the above copyright notice,
+   this list of conditions and the following disclaimer.
+2. Redistributions in binary form must reproduce the above copyright notice,
+   this list of conditions and the following disclaimer in the documentation
+   and/or other materials provided with the distribution.
+3. Neither the name of the Woodstox XML Processor nor the names
+   of its contributors may be used to endorse or promote products derived
+   from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
diff --git a/legal/woden-api-LICENSE.txt b/legal/woden-api-LICENSE.txt
deleted file mode 100644
index 57bc88a..0000000
--- a/legal/woden-api-LICENSE.txt
+++ /dev/null
@@ -1,202 +0,0 @@
-                                 Apache License
-                           Version 2.0, January 2004
-                        http://www.apache.org/licenses/
-
-   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
-   1. Definitions.
-
-      "License" shall mean the terms and conditions for use, reproduction,
-      and distribution as defined by Sections 1 through 9 of this document.
-
-      "Licensor" shall mean the copyright owner or entity authorized by
-      the copyright owner that is granting the License.
-
-      "Legal Entity" shall mean the union of the acting entity and all
-      other entities that control, are controlled by, or are under common
-      control with that entity. For the purposes of this definition,
-      "control" means (i) the power, direct or indirect, to cause the
-      direction or management of such entity, whether by contract or
-      otherwise, or (ii) ownership of fifty percent (50%) or more of the
-      outstanding shares, or (iii) beneficial ownership of such entity.
-
-      "You" (or "Your") shall mean an individual or Legal Entity
-      exercising permissions granted by this License.
-
-      "Source" form shall mean the preferred form for making modifications,
-      including but not limited to software source code, documentation
-      source, and configuration files.
-
-      "Object" form shall mean any form resulting from mechanical
-      transformation or translation of a Source form, including but
-      not limited to compiled object code, generated documentation,
-      and conversions to other media types.
-
-      "Work" shall mean the work of authorship, whether in Source or
-      Object form, made available under the License, as indicated by a
-      copyright notice that is included in or attached to the work
-      (an example is provided in the Appendix below).
-
-      "Derivative Works" shall mean any work, whether in Source or Object
-      form, that is based on (or derived from) the Work and for which the
-      editorial revisions, annotations, elaborations, or other modifications
-      represent, as a whole, an original work of authorship. For the purposes
-      of this License, Derivative Works shall not include works that remain
-      separable from, or merely link (or bind by name) to the interfaces of,
-      the Work and Derivative Works thereof.
-
-      "Contribution" shall mean any work of authorship, including
-      the original version of the Work and any modifications or additions
-      to that Work or Derivative Works thereof, that is intentionally
-      submitted to Licensor for inclusion in the Work by the copyright owner
-      or by an individual or Legal Entity authorized to submit on behalf of
-      the copyright owner. For the purposes of this definition, "submitted"
-      means any form of electronic, verbal, or written communication sent
-      to the Licensor or its representatives, including but not limited to
-      communication on electronic mailing lists, source code control systems,
-      and issue tracking systems that are managed by, or on behalf of, the
-      Licensor for the purpose of discussing and improving the Work, but
-      excluding communication that is conspicuously marked or otherwise
-      designated in writing by the copyright owner as "Not a Contribution."
-
-      "Contributor" shall mean Licensor and any individual or Legal Entity
-      on behalf of whom a Contribution has been received by Licensor and
-      subsequently incorporated within the Work.
-
-   2. Grant of Copyright License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      copyright license to reproduce, prepare Derivative Works of,
-      publicly display, publicly perform, sublicense, and distribute the
-      Work and such Derivative Works in Source or Object form.
-
-   3. Grant of Patent License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      (except as stated in this section) patent license to make, have made,
-      use, offer to sell, sell, import, and otherwise transfer the Work,
-      where such license applies only to those patent claims licensable
-      by such Contributor that are necessarily infringed by their
-      Contribution(s) alone or by combination of their Contribution(s)
-      with the Work to which such Contribution(s) was submitted. If You
-      institute patent litigation against any entity (including a
-      cross-claim or counterclaim in a lawsuit) alleging that the Work
-      or a Contribution incorporated within the Work constitutes direct
-      or contributory patent infringement, then any patent licenses
-      granted to You under this License for that Work shall terminate
-      as of the date such litigation is filed.
-
-   4. Redistribution. You may reproduce and distribute copies of the
-      Work or Derivative Works thereof in any medium, with or without
-      modifications, and in Source or Object form, provided that You
-      meet the following conditions:
-
-      (a) You must give any other recipients of the Work or
-          Derivative Works a copy of this License; and
-
-      (b) You must cause any modified files to carry prominent notices
-          stating that You changed the files; and
-
-      (c) You must retain, in the Source form of any Derivative Works
-          that You distribute, all copyright, patent, trademark, and
-          attribution notices from the Source form of the Work,
-          excluding those notices that do not pertain to any part of
-          the Derivative Works; and
-
-      (d) If the Work includes a "NOTICE" text file as part of its
-          distribution, then any Derivative Works that You distribute must
-          include a readable copy of the attribution notices contained
-          within such NOTICE file, excluding those notices that do not
-          pertain to any part of the Derivative Works, in at least one
-          of the following places: within a NOTICE text file distributed
-          as part of the Derivative Works; within the Source form or
-          documentation, if provided along with the Derivative Works; or,
-          within a display generated by the Derivative Works, if and
-          wherever such third-party notices normally appear. The contents
-          of the NOTICE file are for informational purposes only and
-          do not modify the License. You may add Your own attribution
-          notices within Derivative Works that You distribute, alongside
-          or as an addendum to the NOTICE text from the Work, provided
-          that such additional attribution notices cannot be construed
-          as modifying the License.
-
-      You may add Your own copyright statement to Your modifications and
-      may provide additional or different license terms and conditions
-      for use, reproduction, or distribution of Your modifications, or
-      for any such Derivative Works as a whole, provided Your use,
-      reproduction, and distribution of the Work otherwise complies with
-      the conditions stated in this License.
-
-   5. Submission of Contributions. Unless You explicitly state otherwise,
-      any Contribution intentionally submitted for inclusion in the Work
-      by You to the Licensor shall be under the terms and conditions of
-      this License, without any additional terms or conditions.
-      Notwithstanding the above, nothing herein shall supersede or modify
-      the terms of any separate license agreement you may have executed
-      with Licensor regarding such Contributions.
-
-   6. Trademarks. This License does not grant permission to use the trade
-      names, trademarks, service marks, or product names of the Licensor,
-      except as required for reasonable and customary use in describing the
-      origin of the Work and reproducing the content of the NOTICE file.
-
-   7. Disclaimer of Warranty. Unless required by applicable law or
-      agreed to in writing, Licensor provides the Work (and each
-      Contributor provides its Contributions) on an "AS IS" BASIS,
-      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-      implied, including, without limitation, any warranties or conditions
-      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
-      PARTICULAR PURPOSE. You are solely responsible for determining the
-      appropriateness of using or redistributing the Work and assume any
-      risks associated with Your exercise of permissions under this License.
-
-   8. Limitation of Liability. In no event and under no legal theory,
-      whether in tort (including negligence), contract, or otherwise,
-      unless required by applicable law (such as deliberate and grossly
-      negligent acts) or agreed to in writing, shall any Contributor be
-      liable to You for damages, including any direct, indirect, special,
-      incidental, or consequential damages of any character arising as a
-      result of this License or out of the use or inability to use the
-      Work (including but not limited to damages for loss of goodwill,
-      work stoppage, computer failure or malfunction, or any and all
-      other commercial damages or losses), even if such Contributor
-      has been advised of the possibility of such damages.
-
-   9. Accepting Warranty or Additional Liability. While redistributing
-      the Work or Derivative Works thereof, You may choose to offer,
-      and charge a fee for, acceptance of support, warranty, indemnity,
-      or other liability obligations and/or rights consistent with this
-      License. However, in accepting such obligations, You may act only
-      on Your own behalf and on Your sole responsibility, not on behalf
-      of any other Contributor, and only if You agree to indemnify,
-      defend, and hold each Contributor harmless for any liability
-      incurred by, or claims asserted against, such Contributor by reason
-      of your accepting any such warranty or additional liability.
-
-   END OF TERMS AND CONDITIONS
-
-   APPENDIX: How to apply the Apache License to your work.
-
-      To apply the Apache License to your work, attach the following
-      boilerplate notice, with the fields enclosed by brackets "[]"
-      replaced with your own identifying information. (Don't include
-      the brackets!)  The text should be enclosed in the appropriate
-      comment syntax for the file format. We also recommend that a
-      file or class name and description of purpose be included on the
-      same "printed page" as the copyright notice for easier
-      identification within third-party archives.
-
-   Copyright [yyyy] [name of copyright owner]
-
-   Licensed under the Apache License, Version 2.0 (the "License");
-   you may not use this file except in compliance with the License.
-   You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
-
diff --git a/legal/axiom-api-LICENSE.txt b/legal/woden-core-LICENSE.txt
similarity index 100%
rename from legal/axiom-api-LICENSE.txt
rename to legal/woden-core-LICENSE.txt
diff --git a/legal/woden-impl-commons-LICENSE.txt b/legal/woden-impl-commons-LICENSE.txt
deleted file mode 100644
index fef8c29..0000000
--- a/legal/woden-impl-commons-LICENSE.txt
+++ /dev/null
@@ -1,202 +0,0 @@
-                                 Apache License

-                           Version 2.0, January 2004

-                        http://www.apache.org/licenses/

-

-   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION

-

-   1. Definitions.

-

-      "License" shall mean the terms and conditions for use, reproduction,

-      and distribution as defined by Sections 1 through 9 of this document.

-

-      "Licensor" shall mean the copyright owner or entity authorized by

-      the copyright owner that is granting the License.

-

-      "Legal Entity" shall mean the union of the acting entity and all

-      other entities that control, are controlled by, or are under common

-      control with that entity. For the purposes of this definition,

-      "control" means (i) the power, direct or indirect, to cause the

-      direction or management of such entity, whether by contract or

-      otherwise, or (ii) ownership of fifty percent (50%) or more of the

-      outstanding shares, or (iii) beneficial ownership of such entity.

-

-      "You" (or "Your") shall mean an individual or Legal Entity

-      exercising permissions granted by this License.

-

-      "Source" form shall mean the preferred form for making modifications,

-      including but not limited to software source code, documentation

-      source, and configuration files.

-

-      "Object" form shall mean any form resulting from mechanical

-      transformation or translation of a Source form, including but

-      not limited to compiled object code, generated documentation,

-      and conversions to other media types.

-

-      "Work" shall mean the work of authorship, whether in Source or

-      Object form, made available under the License, as indicated by a

-      copyright notice that is included in or attached to the work

-      (an example is provided in the Appendix below).

-

-      "Derivative Works" shall mean any work, whether in Source or Object

-      form, that is based on (or derived from) the Work and for which the

-      editorial revisions, annotations, elaborations, or other modifications

-      represent, as a whole, an original work of authorship. For the purposes

-      of this License, Derivative Works shall not include works that remain

-      separable from, or merely link (or bind by name) to the interfaces of,

-      the Work and Derivative Works thereof.

-

-      "Contribution" shall mean any work of authorship, including

-      the original version of the Work and any modifications or additions

-      to that Work or Derivative Works thereof, that is intentionally

-      submitted to Licensor for inclusion in the Work by the copyright owner

-      or by an individual or Legal Entity authorized to submit on behalf of

-      the copyright owner. For the purposes of this definition, "submitted"

-      means any form of electronic, verbal, or written communication sent

-      to the Licensor or its representatives, including but not limited to

-      communication on electronic mailing lists, source code control systems,

-      and issue tracking systems that are managed by, or on behalf of, the

-      Licensor for the purpose of discussing and improving the Work, but

-      excluding communication that is conspicuously marked or otherwise

-      designated in writing by the copyright owner as "Not a Contribution."

-

-      "Contributor" shall mean Licensor and any individual or Legal Entity

-      on behalf of whom a Contribution has been received by Licensor and

-      subsequently incorporated within the Work.

-

-   2. Grant of Copyright License. Subject to the terms and conditions of

-      this License, each Contributor hereby grants to You a perpetual,

-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable

-      copyright license to reproduce, prepare Derivative Works of,

-      publicly display, publicly perform, sublicense, and distribute the

-      Work and such Derivative Works in Source or Object form.

-

-   3. Grant of Patent License. Subject to the terms and conditions of

-      this License, each Contributor hereby grants to You a perpetual,

-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable

-      (except as stated in this section) patent license to make, have made,

-      use, offer to sell, sell, import, and otherwise transfer the Work,

-      where such license applies only to those patent claims licensable

-      by such Contributor that are necessarily infringed by their

-      Contribution(s) alone or by combination of their Contribution(s)

-      with the Work to which such Contribution(s) was submitted. If You

-      institute patent litigation against any entity (including a

-      cross-claim or counterclaim in a lawsuit) alleging that the Work

-      or a Contribution incorporated within the Work constitutes direct

-      or contributory patent infringement, then any patent licenses

-      granted to You under this License for that Work shall terminate

-      as of the date such litigation is filed.

-

-   4. Redistribution. You may reproduce and distribute copies of the

-      Work or Derivative Works thereof in any medium, with or without

-      modifications, and in Source or Object form, provided that You

-      meet the following conditions:

-

-      (a) You must give any other recipients of the Work or

-          Derivative Works a copy of this License; and

-

-      (b) You must cause any modified files to carry prominent notices

-          stating that You changed the files; and

-

-      (c) You must retain, in the Source form of any Derivative Works

-          that You distribute, all copyright, patent, trademark, and

-          attribution notices from the Source form of the Work,

-          excluding those notices that do not pertain to any part of

-          the Derivative Works; and

-

-      (d) If the Work includes a "NOTICE" text file as part of its

-          distribution, then any Derivative Works that You distribute must

-          include a readable copy of the attribution notices contained

-          within such NOTICE file, excluding those notices that do not

-          pertain to any part of the Derivative Works, in at least one

-          of the following places: within a NOTICE text file distributed

-          as part of the Derivative Works; within the Source form or

-          documentation, if provided along with the Derivative Works; or,

-          within a display generated by the Derivative Works, if and

-          wherever such third-party notices normally appear. The contents

-          of the NOTICE file are for informational purposes only and

-          do not modify the License. You may add Your own attribution

-          notices within Derivative Works that You distribute, alongside

-          or as an addendum to the NOTICE text from the Work, provided

-          that such additional attribution notices cannot be construed

-          as modifying the License.

-

-      You may add Your own copyright statement to Your modifications and

-      may provide additional or different license terms and conditions

-      for use, reproduction, or distribution of Your modifications, or

-      for any such Derivative Works as a whole, provided Your use,

-      reproduction, and distribution of the Work otherwise complies with

-      the conditions stated in this License.

-

-   5. Submission of Contributions. Unless You explicitly state otherwise,

-      any Contribution intentionally submitted for inclusion in the Work

-      by You to the Licensor shall be under the terms and conditions of

-      this License, without any additional terms or conditions.

-      Notwithstanding the above, nothing herein shall supersede or modify

-      the terms of any separate license agreement you may have executed

-      with Licensor regarding such Contributions.

-

-   6. Trademarks. This License does not grant permission to use the trade

-      names, trademarks, service marks, or product names of the Licensor,

-      except as required for reasonable and customary use in describing the

-      origin of the Work and reproducing the content of the NOTICE file.

-

-   7. Disclaimer of Warranty. Unless required by applicable law or

-      agreed to in writing, Licensor provides the Work (and each

-      Contributor provides its Contributions) on an "AS IS" BASIS,

-      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or

-      implied, including, without limitation, any warranties or conditions

-      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A

-      PARTICULAR PURPOSE. You are solely responsible for determining the

-      appropriateness of using or redistributing the Work and assume any

-      risks associated with Your exercise of permissions under this License.

-

-   8. Limitation of Liability. In no event and under no legal theory,

-      whether in tort (including negligence), contract, or otherwise,

-      unless required by applicable law (such as deliberate and grossly

-      negligent acts) or agreed to in writing, shall any Contributor be

-      liable to You for damages, including any direct, indirect, special,

-      incidental, or consequential damages of any character arising as a

-      result of this License or out of the use or inability to use the

-      Work (including but not limited to damages for loss of goodwill,

-      work stoppage, computer failure or malfunction, or any and all

-      other commercial damages or losses), even if such Contributor

-      has been advised of the possibility of such damages.

-

-   9. Accepting Warranty or Additional Liability. While redistributing

-      the Work or Derivative Works thereof, You may choose to offer,

-      and charge a fee for, acceptance of support, warranty, indemnity,

-      or other liability obligations and/or rights consistent with this

-      License. However, in accepting such obligations, You may act only

-      on Your own behalf and on Your sole responsibility, not on behalf

-      of any other Contributor, and only if You agree to indemnify,

-      defend, and hold each Contributor harmless for any liability

-      incurred by, or claims asserted against, such Contributor by reason

-      of your accepting any such warranty or additional liability.

-

-   END OF TERMS AND CONDITIONS

-

-   APPENDIX: How to apply the Apache License to your work.

-

-      To apply the Apache License to your work, attach the following

-      boilerplate notice, with the fields enclosed by brackets "[]"

-      replaced with your own identifying information. (Don't include

-      the brackets!)  The text should be enclosed in the appropriate

-      comment syntax for the file format. We also recommend that a

-      file or class name and description of purpose be included on the

-      same "printed page" as the copyright notice for easier

-      identification within third-party archives.

-

-   Copyright [yyyy] [name of copyright owner]

-

-   Licensed under the Apache License, Version 2.0 (the "License");

-   you may not use this file except in compliance with the License.

-   You may obtain a copy of the License at

-

-       http://www.apache.org/licenses/LICENSE-2.0

-

-   Unless required by applicable law or agreed to in writing, software

-   distributed under the License is distributed on an "AS IS" BASIS,

-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

-   See the License for the specific language governing permissions and

-   limitations under the License.

-

diff --git a/legal/woden-impl-dom-LICENSE.txt b/legal/woden-impl-dom-LICENSE.txt
deleted file mode 100644
index 57bc88a..0000000
--- a/legal/woden-impl-dom-LICENSE.txt
+++ /dev/null
@@ -1,202 +0,0 @@
-                                 Apache License
-                           Version 2.0, January 2004
-                        http://www.apache.org/licenses/
-
-   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
-   1. Definitions.
-
-      "License" shall mean the terms and conditions for use, reproduction,
-      and distribution as defined by Sections 1 through 9 of this document.
-
-      "Licensor" shall mean the copyright owner or entity authorized by
-      the copyright owner that is granting the License.
-
-      "Legal Entity" shall mean the union of the acting entity and all
-      other entities that control, are controlled by, or are under common
-      control with that entity. For the purposes of this definition,
-      "control" means (i) the power, direct or indirect, to cause the
-      direction or management of such entity, whether by contract or
-      otherwise, or (ii) ownership of fifty percent (50%) or more of the
-      outstanding shares, or (iii) beneficial ownership of such entity.
-
-      "You" (or "Your") shall mean an individual or Legal Entity
-      exercising permissions granted by this License.
-
-      "Source" form shall mean the preferred form for making modifications,
-      including but not limited to software source code, documentation
-      source, and configuration files.
-
-      "Object" form shall mean any form resulting from mechanical
-      transformation or translation of a Source form, including but
-      not limited to compiled object code, generated documentation,
-      and conversions to other media types.
-
-      "Work" shall mean the work of authorship, whether in Source or
-      Object form, made available under the License, as indicated by a
-      copyright notice that is included in or attached to the work
-      (an example is provided in the Appendix below).
-
-      "Derivative Works" shall mean any work, whether in Source or Object
-      form, that is based on (or derived from) the Work and for which the
-      editorial revisions, annotations, elaborations, or other modifications
-      represent, as a whole, an original work of authorship. For the purposes
-      of this License, Derivative Works shall not include works that remain
-      separable from, or merely link (or bind by name) to the interfaces of,
-      the Work and Derivative Works thereof.
-
-      "Contribution" shall mean any work of authorship, including
-      the original version of the Work and any modifications or additions
-      to that Work or Derivative Works thereof, that is intentionally
-      submitted to Licensor for inclusion in the Work by the copyright owner
-      or by an individual or Legal Entity authorized to submit on behalf of
-      the copyright owner. For the purposes of this definition, "submitted"
-      means any form of electronic, verbal, or written communication sent
-      to the Licensor or its representatives, including but not limited to
-      communication on electronic mailing lists, source code control systems,
-      and issue tracking systems that are managed by, or on behalf of, the
-      Licensor for the purpose of discussing and improving the Work, but
-      excluding communication that is conspicuously marked or otherwise
-      designated in writing by the copyright owner as "Not a Contribution."
-
-      "Contributor" shall mean Licensor and any individual or Legal Entity
-      on behalf of whom a Contribution has been received by Licensor and
-      subsequently incorporated within the Work.
-
-   2. Grant of Copyright License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      copyright license to reproduce, prepare Derivative Works of,
-      publicly display, publicly perform, sublicense, and distribute the
-      Work and such Derivative Works in Source or Object form.
-
-   3. Grant of Patent License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      (except as stated in this section) patent license to make, have made,
-      use, offer to sell, sell, import, and otherwise transfer the Work,
-      where such license applies only to those patent claims licensable
-      by such Contributor that are necessarily infringed by their
-      Contribution(s) alone or by combination of their Contribution(s)
-      with the Work to which such Contribution(s) was submitted. If You
-      institute patent litigation against any entity (including a
-      cross-claim or counterclaim in a lawsuit) alleging that the Work
-      or a Contribution incorporated within the Work constitutes direct
-      or contributory patent infringement, then any patent licenses
-      granted to You under this License for that Work shall terminate
-      as of the date such litigation is filed.
-
-   4. Redistribution. You may reproduce and distribute copies of the
-      Work or Derivative Works thereof in any medium, with or without
-      modifications, and in Source or Object form, provided that You
-      meet the following conditions:
-
-      (a) You must give any other recipients of the Work or
-          Derivative Works a copy of this License; and
-
-      (b) You must cause any modified files to carry prominent notices
-          stating that You changed the files; and
-
-      (c) You must retain, in the Source form of any Derivative Works
-          that You distribute, all copyright, patent, trademark, and
-          attribution notices from the Source form of the Work,
-          excluding those notices that do not pertain to any part of
-          the Derivative Works; and
-
-      (d) If the Work includes a "NOTICE" text file as part of its
-          distribution, then any Derivative Works that You distribute must
-          include a readable copy of the attribution notices contained
-          within such NOTICE file, excluding those notices that do not
-          pertain to any part of the Derivative Works, in at least one
-          of the following places: within a NOTICE text file distributed
-          as part of the Derivative Works; within the Source form or
-          documentation, if provided along with the Derivative Works; or,
-          within a display generated by the Derivative Works, if and
-          wherever such third-party notices normally appear. The contents
-          of the NOTICE file are for informational purposes only and
-          do not modify the License. You may add Your own attribution
-          notices within Derivative Works that You distribute, alongside
-          or as an addendum to the NOTICE text from the Work, provided
-          that such additional attribution notices cannot be construed
-          as modifying the License.
-
-      You may add Your own copyright statement to Your modifications and
-      may provide additional or different license terms and conditions
-      for use, reproduction, or distribution of Your modifications, or
-      for any such Derivative Works as a whole, provided Your use,
-      reproduction, and distribution of the Work otherwise complies with
-      the conditions stated in this License.
-
-   5. Submission of Contributions. Unless You explicitly state otherwise,
-      any Contribution intentionally submitted for inclusion in the Work
-      by You to the Licensor shall be under the terms and conditions of
-      this License, without any additional terms or conditions.
-      Notwithstanding the above, nothing herein shall supersede or modify
-      the terms of any separate license agreement you may have executed
-      with Licensor regarding such Contributions.
-
-   6. Trademarks. This License does not grant permission to use the trade
-      names, trademarks, service marks, or product names of the Licensor,
-      except as required for reasonable and customary use in describing the
-      origin of the Work and reproducing the content of the NOTICE file.
-
-   7. Disclaimer of Warranty. Unless required by applicable law or
-      agreed to in writing, Licensor provides the Work (and each
-      Contributor provides its Contributions) on an "AS IS" BASIS,
-      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-      implied, including, without limitation, any warranties or conditions
-      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
-      PARTICULAR PURPOSE. You are solely responsible for determining the
-      appropriateness of using or redistributing the Work and assume any
-      risks associated with Your exercise of permissions under this License.
-
-   8. Limitation of Liability. In no event and under no legal theory,
-      whether in tort (including negligence), contract, or otherwise,
-      unless required by applicable law (such as deliberate and grossly
-      negligent acts) or agreed to in writing, shall any Contributor be
-      liable to You for damages, including any direct, indirect, special,
-      incidental, or consequential damages of any character arising as a
-      result of this License or out of the use or inability to use the
-      Work (including but not limited to damages for loss of goodwill,
-      work stoppage, computer failure or malfunction, or any and all
-      other commercial damages or losses), even if such Contributor
-      has been advised of the possibility of such damages.
-
-   9. Accepting Warranty or Additional Liability. While redistributing
-      the Work or Derivative Works thereof, You may choose to offer,
-      and charge a fee for, acceptance of support, warranty, indemnity,
-      or other liability obligations and/or rights consistent with this
-      License. However, in accepting such obligations, You may act only
-      on Your own behalf and on Your sole responsibility, not on behalf
-      of any other Contributor, and only if You agree to indemnify,
-      defend, and hold each Contributor harmless for any liability
-      incurred by, or claims asserted against, such Contributor by reason
-      of your accepting any such warranty or additional liability.
-
-   END OF TERMS AND CONDITIONS
-
-   APPENDIX: How to apply the Apache License to your work.
-
-      To apply the Apache License to your work, attach the following
-      boilerplate notice, with the fields enclosed by brackets "[]"
-      replaced with your own identifying information. (Don't include
-      the brackets!)  The text should be enclosed in the appropriate
-      comment syntax for the file format. We also recommend that a
-      file or class name and description of purpose be included on the
-      same "printed page" as the copyright notice for easier
-      identification within third-party archives.
-
-   Copyright [yyyy] [name of copyright owner]
-
-   Licensed under the Apache License, Version 2.0 (the "License");
-   you may not use this file except in compliance with the License.
-   You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
-
diff --git a/legal/geronimo-saaj-LICENSE.txt b/legal/woodstox-core-asl-LICENSE.txt
similarity index 100%
rename from legal/geronimo-saaj-LICENSE.txt
rename to legal/woodstox-core-asl-LICENSE.txt
diff --git a/legal/wstx-LICENSE.txt b/legal/wstx-LICENSE.txt
deleted file mode 100644
index 6b0b127..0000000
--- a/legal/wstx-LICENSE.txt
+++ /dev/null
@@ -1,203 +0,0 @@
-
-                                 Apache License
-                           Version 2.0, January 2004
-                        http://www.apache.org/licenses/
-
-   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
-   1. Definitions.
-
-      "License" shall mean the terms and conditions for use, reproduction,
-      and distribution as defined by Sections 1 through 9 of this document.
-
-      "Licensor" shall mean the copyright owner or entity authorized by
-      the copyright owner that is granting the License.
-
-      "Legal Entity" shall mean the union of the acting entity and all
-      other entities that control, are controlled by, or are under common
-      control with that entity. For the purposes of this definition,
-      "control" means (i) the power, direct or indirect, to cause the
-      direction or management of such entity, whether by contract or
-      otherwise, or (ii) ownership of fifty percent (50%) or more of the
-      outstanding shares, or (iii) beneficial ownership of such entity.
-
-      "You" (or "Your") shall mean an individual or Legal Entity
-      exercising permissions granted by this License.
-
-      "Source" form shall mean the preferred form for making modifications,
-      including but not limited to software source code, documentation
-      source, and configuration files.
-
-      "Object" form shall mean any form resulting from mechanical
-      transformation or translation of a Source form, including but
-      not limited to compiled object code, generated documentation,
-      and conversions to other media types.
-
-      "Work" shall mean the work of authorship, whether in Source or
-      Object form, made available under the License, as indicated by a
-      copyright notice that is included in or attached to the work
-      (an example is provided in the Appendix below).
-
-      "Derivative Works" shall mean any work, whether in Source or Object
-      form, that is based on (or derived from) the Work and for which the
-      editorial revisions, annotations, elaborations, or other modifications
-      represent, as a whole, an original work of authorship. For the purposes
-      of this License, Derivative Works shall not include works that remain
-      separable from, or merely link (or bind by name) to the interfaces of,
-      the Work and Derivative Works thereof.
-
-      "Contribution" shall mean any work of authorship, including
-      the original version of the Work and any modifications or additions
-      to that Work or Derivative Works thereof, that is intentionally
-      submitted to Licensor for inclusion in the Work by the copyright owner
-      or by an individual or Legal Entity authorized to submit on behalf of
-      the copyright owner. For the purposes of this definition, "submitted"
-      means any form of electronic, verbal, or written communication sent
-      to the Licensor or its representatives, including but not limited to
-      communication on electronic mailing lists, source code control systems,
-      and issue tracking systems that are managed by, or on behalf of, the
-      Licensor for the purpose of discussing and improving the Work, but
-      excluding communication that is conspicuously marked or otherwise
-      designated in writing by the copyright owner as "Not a Contribution."
-
-      "Contributor" shall mean Licensor and any individual or Legal Entity
-      on behalf of whom a Contribution has been received by Licensor and
-      subsequently incorporated within the Work.
-
-   2. Grant of Copyright License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      copyright license to reproduce, prepare Derivative Works of,
-      publicly display, publicly perform, sublicense, and distribute the
-      Work and such Derivative Works in Source or Object form.
-
-   3. Grant of Patent License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      (except as stated in this section) patent license to make, have made,
-      use, offer to sell, sell, import, and otherwise transfer the Work,
-      where such license applies only to those patent claims licensable
-      by such Contributor that are necessarily infringed by their
-      Contribution(s) alone or by combination of their Contribution(s)
-      with the Work to which such Contribution(s) was submitted. If You
-      institute patent litigation against any entity (including a
-      cross-claim or counterclaim in a lawsuit) alleging that the Work
-      or a Contribution incorporated within the Work constitutes direct
-      or contributory patent infringement, then any patent licenses
-      granted to You under this License for that Work shall terminate
-      as of the date such litigation is filed.
-
-   4. Redistribution. You may reproduce and distribute copies of the
-      Work or Derivative Works thereof in any medium, with or without
-      modifications, and in Source or Object form, provided that You
-      meet the following conditions:
-
-      (a) You must give any other recipients of the Work or
-          Derivative Works a copy of this License; and
-
-      (b) You must cause any modified files to carry prominent notices
-          stating that You changed the files; and
-
-      (c) You must retain, in the Source form of any Derivative Works
-          that You distribute, all copyright, patent, trademark, and
-          attribution notices from the Source form of the Work,
-          excluding those notices that do not pertain to any part of
-          the Derivative Works; and
-
-      (d) If the Work includes a "NOTICE" text file as part of its
-          distribution, then any Derivative Works that You distribute must
-          include a readable copy of the attribution notices contained
-          within such NOTICE file, excluding those notices that do not
-          pertain to any part of the Derivative Works, in at least one
-          of the following places: within a NOTICE text file distributed
-          as part of the Derivative Works; within the Source form or
-          documentation, if provided along with the Derivative Works; or,
-          within a display generated by the Derivative Works, if and
-          wherever such third-party notices normally appear. The contents
-          of the NOTICE file are for informational purposes only and
-          do not modify the License. You may add Your own attribution
-          notices within Derivative Works that You distribute, alongside
-          or as an addendum to the NOTICE text from the Work, provided
-          that such additional attribution notices cannot be construed
-          as modifying the License.
-
-      You may add Your own copyright statement to Your modifications and
-      may provide additional or different license terms and conditions
-      for use, reproduction, or distribution of Your modifications, or
-      for any such Derivative Works as a whole, provided Your use,
-      reproduction, and distribution of the Work otherwise complies with
-      the conditions stated in this License.
-
-   5. Submission of Contributions. Unless You explicitly state otherwise,
-      any Contribution intentionally submitted for inclusion in the Work
-      by You to the Licensor shall be under the terms and conditions of
-      this License, without any additional terms or conditions.
-      Notwithstanding the above, nothing herein shall supersede or modify
-      the terms of any separate license agreement you may have executed
-      with Licensor regarding such Contributions.
-
-   6. Trademarks. This License does not grant permission to use the trade
-      names, trademarks, service marks, or product names of the Licensor,
-      except as required for reasonable and customary use in describing the
-      origin of the Work and reproducing the content of the NOTICE file.
-
-   7. Disclaimer of Warranty. Unless required by applicable law or
-      agreed to in writing, Licensor provides the Work (and each
-      Contributor provides its Contributions) on an "AS IS" BASIS,
-      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-      implied, including, without limitation, any warranties or conditions
-      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
-      PARTICULAR PURPOSE. You are solely responsible for determining the
-      appropriateness of using or redistributing the Work and assume any
-      risks associated with Your exercise of permissions under this License.
-
-   8. Limitation of Liability. In no event and under no legal theory,
-      whether in tort (including negligence), contract, or otherwise,
-      unless required by applicable law (such as deliberate and grossly
-      negligent acts) or agreed to in writing, shall any Contributor be
-      liable to You for damages, including any direct, indirect, special,
-      incidental, or consequential damages of any character arising as a
-      result of this License or out of the use or inability to use the
-      Work (including but not limited to damages for loss of goodwill,
-      work stoppage, computer failure or malfunction, or any and all
-      other commercial damages or losses), even if such Contributor
-      has been advised of the possibility of such damages.
-
-   9. Accepting Warranty or Additional Liability. While redistributing
-      the Work or Derivative Works thereof, You may choose to offer,
-      and charge a fee for, acceptance of support, warranty, indemnity,
-      or other liability obligations and/or rights consistent with this
-      License. However, in accepting such obligations, You may act only
-      on Your own behalf and on Your sole responsibility, not on behalf
-      of any other Contributor, and only if You agree to indemnify,
-      defend, and hold each Contributor harmless for any liability
-      incurred by, or claims asserted against, such Contributor by reason
-      of your accepting any such warranty or additional liability.
-
-   END OF TERMS AND CONDITIONS
-
-   APPENDIX: How to apply the Apache License to your work.
-
-      To apply the Apache License to your work, attach the following
-      boilerplate notice, with the fields enclosed by brackets "[]"
-      replaced with your own identifying information. (Don't include
-      the brackets!)  The text should be enclosed in the appropriate
-      comment syntax for the file format. We also recommend that a
-      file or class name and description of purpose be included on the
-      same "printed page" as the copyright notice for easier
-      identification within third-party archives.
-
-   Copyright [yyyy] [name of copyright owner]
-
-   Licensed under the Apache License, Version 2.0 (the "License");
-   you may not use this file except in compliance with the License.
-   You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
-
diff --git a/legal/XmlSchema-LICENSE.txt b/legal/xmlschema-core-LICENSE.txt
similarity index 100%
rename from legal/XmlSchema-LICENSE.txt
rename to legal/xmlschema-core-LICENSE.txt
diff --git a/modules/adb-codegen/pom.xml b/modules/adb-codegen/pom.xml
index 7dd716d..6934e07 100644
--- a/modules/adb-codegen/pom.xml
+++ b/modules/adb-codegen/pom.xml
@@ -23,9 +23,9 @@
     <modelVersion>4.0.0</modelVersion>
     <parent>
         <groupId>org.apache.axis2</groupId>
-        <artifactId>axis2-parent</artifactId>
-        <version>1.7.0-SNAPSHOT</version>
-        <relativePath>../parent/pom.xml</relativePath>
+        <artifactId>axis2</artifactId>
+        <version>1.8.0-SNAPSHOT</version>
+        <relativePath>../../pom.xml</relativePath>
     </parent>
     <artifactId>axis2-adb-codegen</artifactId>
     <name>Apache Axis2 - ADB Codegen</name>
@@ -64,11 +64,6 @@
             <artifactId>xmlunit</artifactId>
             <scope>test</scope>
         </dependency>
-        <dependency>
-            <groupId>org.apache.geronimo.specs</groupId>
-            <artifactId>geronimo-javamail_1.4_spec</artifactId>
-            <scope>test</scope>
-        </dependency>
     </dependencies>
     <url>http://axis.apache.org/axis2/java/core/</url>
     <scm>
@@ -115,29 +110,10 @@
                 <inherited>true</inherited>
                 <configuration>
                     <excludes>
-                        <exclude>**/*Abstract*.java</exclude>
-                        <exclude>**/*Util*.java</exclude>
-                        <exclude>**/*PhaseResolvingTest.java</exclude>
-                        <exclude>**/*UnionQNameTest.java</exclude>
-                        <exclude>**/*UnqualifiedTest.java</exclude>
+                        <exclude>org/apache/axis2/schema/ExtensionUtilityTest.java</exclude>
                     </excludes>
-                    <includes>
-                        <include>**/*Test.java</include>
-                    </includes>
                 </configuration>
             </plugin>
-	        <plugin>
-	            <groupId>org.apache.maven.plugins</groupId>
-	            <artifactId>maven-compiler-plugin</artifactId>
-	            <configuration>
-	                <fork>true</fork>
-	                <meminitial>128m</meminitial>
-	                <maxmem>256m</maxmem>
-                    <testExcludes>
-                        <exclude>helper/org/apache/axis2/schema/testsuite/TestAnyType*Helper.java</exclude>
-                    </testExcludes>
-	            </configuration>
-	        </plugin>
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-antrun-plugin</artifactId>
@@ -163,47 +139,6 @@
                             <goal>run</goal>
                         </goals>
                     </execution>
-                    <execution>
-                        <id>generate-test-sources</id>
-                        <phase>generate-test-sources</phase>
-                        <configuration>
-                            <tasks unless="maven.test.skip">
-                                <property name="maven.junit.jvmargs" value="" />
-                                <path id="maven.dependency.classpath">
-                                    <path refid="maven.compile.classpath" />
-                                </path>
-                                <property name="compiled.classes.dir" value="target/classes" />
-                                <!-- Theres got to be a better way to do this -->
-                                <property name="schema.source.dir" value="test-resources/xsd" />
-                                <property name="testsuite.source.dir" value="test-resources/testsuite" />
-                                <property name="schema.output.base.dir" value="target/schema" />
-                                <property name="schema.generated.src.dir" value="${schema.output.base.dir}/src" />
-                                <property name="schema.generated.classes.dir" value="${schema.output.base.dir}/classes" />
-                                <ant antfile="sub-build.xml" inheritall="true" inheritrefs="true" dir="." target="main" />
-                            </tasks>
-                        </configuration>
-                        <goals>
-                            <goal>run</goal>
-                        </goals>
-                    </execution>
-                </executions>
-            </plugin>
-            <plugin>
-                <groupId>org.codehaus.mojo</groupId>
-                <artifactId>build-helper-maven-plugin</artifactId>
-                <executions>
-                    <execution>
-                        <id>add-test-source</id>
-                        <phase>process-test-resources</phase>
-                        <goals>
-                            <goal>add-test-source</goal>
-                        </goals>
-                        <configuration>
-                            <sources>
-                                <source>${basedir}/target/schema/src</source>
-                            </sources>
-                        </configuration>
-                    </execution>
                 </executions>
             </plugin>
         </plugins>
diff --git a/modules/adb-codegen/src/org/apache/axis2/schema/BeanWriterMetaInfoHolder.java b/modules/adb-codegen/src/org/apache/axis2/schema/BeanWriterMetaInfoHolder.java
index d2a9809..a3a2246 100644
--- a/modules/adb-codegen/src/org/apache/axis2/schema/BeanWriterMetaInfoHolder.java
+++ b/modules/adb-codegen/src/org/apache/axis2/schema/BeanWriterMetaInfoHolder.java
@@ -80,13 +80,13 @@
     protected String itemTypeClassName;
     protected boolean isUnion;
     protected boolean isList;
-    protected boolean fixed = false;
 
     protected boolean isParticleClass;
     // keep whether this class has a partical class type variable
     protected boolean hasParticleType;
 
     protected List<QName> nillableQNameList = new ArrayList<QName>();
+    protected List<QName> fixedQNameList = new ArrayList<QName>();
 
     //the parent metainfo holder, useful in handling extensions and
     //restrictions
@@ -316,6 +316,25 @@
     }
 
     /**
+     * Registers a Qname as fixed
+     * The qName better be of an element
+     *
+     * @param eltQName
+     */
+    public void registerFixedQName(QName eltQName) {
+        fixedQNameList.add(eltQName);
+    }
+
+    /**
+     * Returns whether a QName is fixed or not
+     *
+     * @param eltQName
+     */
+    public boolean isFixed(QName eltQName) {
+        return fixedQNameList.contains(eltQName);
+    }
+
+    /**
      * Registers a mapping.
      *
      * @param qName
@@ -944,14 +963,6 @@
         return restrictionBaseType;
     }    
 
-    public boolean isFixed() {
-        return fixed;
-    }
-
-    public void setFixed(boolean fixed) {
-        this.fixed = fixed;
-    }
-
     @Override
     public String toString() {
         return "BeanWriterMetaInfoHolder [anonymous=" + anonymous + ", choice=" + choice
@@ -975,7 +986,7 @@
                 + restrictionBaseType + ", restrictionClassName=" + restrictionClassName
                 + ", simple=" + simple + ", specialTypeFlagMap=" + specialTypeFlagMap
                 + ", totalDigitsFacet=" + totalDigitsFacet + ", xmlNameJavaNameMap="
-                + xmlNameJavaNameMap + ", xmlNameJavaNameMap=" + fixed + "]";
+                + xmlNameJavaNameMap + ", fixedQNameList=" + fixedQNameList + "]";
     }
     
 }
diff --git a/modules/adb-codegen/src/org/apache/axis2/schema/SchemaCompiler.java b/modules/adb-codegen/src/org/apache/axis2/schema/SchemaCompiler.java
index 17f41b7..6bc9172 100644
--- a/modules/adb-codegen/src/org/apache/axis2/schema/SchemaCompiler.java
+++ b/modules/adb-codegen/src/org/apache/axis2/schema/SchemaCompiler.java
@@ -29,60 +29,15 @@
 import org.apache.axis2.util.URLProcessor;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.apache.ws.commons.schema.XmlSchema;
-import org.apache.ws.commons.schema.XmlSchemaAll;
-import org.apache.ws.commons.schema.XmlSchemaAny;
-import org.apache.ws.commons.schema.XmlSchemaAnyAttribute;
-import org.apache.ws.commons.schema.XmlSchemaAttribute;
-import org.apache.ws.commons.schema.XmlSchemaAttributeGroup;
-import org.apache.ws.commons.schema.XmlSchemaAttributeGroupMember;
-import org.apache.ws.commons.schema.XmlSchemaAttributeGroupRef;
-import org.apache.ws.commons.schema.XmlSchemaAttributeOrGroupRef;
-import org.apache.ws.commons.schema.XmlSchemaChoice;
-import org.apache.ws.commons.schema.XmlSchemaCollection;
-import org.apache.ws.commons.schema.XmlSchemaComplexContent;
-import org.apache.ws.commons.schema.XmlSchemaComplexContentExtension;
-import org.apache.ws.commons.schema.XmlSchemaComplexContentRestriction;
-import org.apache.ws.commons.schema.XmlSchemaComplexType;
-import org.apache.ws.commons.schema.XmlSchemaContent;
-import org.apache.ws.commons.schema.XmlSchemaContentModel;
-import org.apache.ws.commons.schema.XmlSchemaElement;
-import org.apache.ws.commons.schema.XmlSchemaEnumerationFacet;
-import org.apache.ws.commons.schema.XmlSchemaExternal;
-import org.apache.ws.commons.schema.XmlSchemaFacet;
-import org.apache.ws.commons.schema.XmlSchemaGroup;
-import org.apache.ws.commons.schema.XmlSchemaGroupParticle;
-import org.apache.ws.commons.schema.XmlSchemaGroupRef;
-import org.apache.ws.commons.schema.XmlSchemaImport;
-import org.apache.ws.commons.schema.XmlSchemaInclude;
-import org.apache.ws.commons.schema.XmlSchemaLengthFacet;
-import org.apache.ws.commons.schema.XmlSchemaMaxExclusiveFacet;
-import org.apache.ws.commons.schema.XmlSchemaMaxInclusiveFacet;
-import org.apache.ws.commons.schema.XmlSchemaMaxLengthFacet;
-import org.apache.ws.commons.schema.XmlSchemaMinExclusiveFacet;
-import org.apache.ws.commons.schema.XmlSchemaMinInclusiveFacet;
-import org.apache.ws.commons.schema.XmlSchemaMinLengthFacet;
-import org.apache.ws.commons.schema.XmlSchemaObject;
-import org.apache.ws.commons.schema.XmlSchemaParticle;
-import org.apache.ws.commons.schema.XmlSchemaPatternFacet;
-import org.apache.ws.commons.schema.XmlSchemaSequence;
-import org.apache.ws.commons.schema.XmlSchemaSequenceMember;
-import org.apache.ws.commons.schema.XmlSchemaSimpleContent;
-import org.apache.ws.commons.schema.XmlSchemaSimpleContentExtension;
-import org.apache.ws.commons.schema.XmlSchemaSimpleContentRestriction;
-import org.apache.ws.commons.schema.XmlSchemaSimpleType;
-import org.apache.ws.commons.schema.XmlSchemaSimpleTypeContent;
-import org.apache.ws.commons.schema.XmlSchemaSimpleTypeList;
-import org.apache.ws.commons.schema.XmlSchemaSimpleTypeRestriction;
-import org.apache.ws.commons.schema.XmlSchemaSimpleTypeUnion;
-import org.apache.ws.commons.schema.XmlSchemaTotalDigitsFacet;
-import org.apache.ws.commons.schema.XmlSchemaType;
+import org.apache.ws.commons.schema.*;
+import org.apache.ws.commons.schema.utils.XmlSchemaObjectBase;
 import org.xml.sax.InputSource;
 
 import javax.xml.namespace.QName;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.HashSet;
+import java.util.IdentityHashMap;
 import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.Map;
@@ -111,7 +66,9 @@
     //the list of processedElements for the outer elements
     private HashMap<QName, String> processedElementMap;
 
-    private HashMap<XmlSchemaElement, BeanWriterMetaInfoHolder> processedAnonymousComplexTypesMap;
+    //need to use IdentityHashMap to store processedAnonymousComplexTypes
+    //because the key used with the map, XmlSchemaElement, is not immutable
+    private IdentityHashMap<XmlSchemaElement, BeanWriterMetaInfoHolder> processedAnonymousComplexTypesMap;
 
     //we need this map to keep the referenced elements. these elements need to be kept seperate
     //to avoid conflicts
@@ -211,7 +168,7 @@
         processedElementMap = new HashMap<QName, String>();
         simpleTypesMap = new HashMap<QName, String>();
         processedElementList = new ArrayList<QName>();
-        processedAnonymousComplexTypesMap = new HashMap<XmlSchemaElement, BeanWriterMetaInfoHolder>();
+        processedAnonymousComplexTypesMap = new IdentityHashMap<XmlSchemaElement, BeanWriterMetaInfoHolder>();
         changedTypeMap = new HashMap<QName, QName>();
         processedTypeMetaInfoMap = new HashMap<QName, BeanWriterMetaInfoHolder>();
         processedElementRefMap = new HashMap<QName, String>();
@@ -227,10 +184,6 @@
 
         //load the base types
         baseSchemaTypeMap = SchemaPropertyLoader.getTypeMapperInstance().getTypeMap();
-        // adding all the soap encoding schema classes
-        processedTypemap.putAll(SchemaPropertyLoader.getTypeMapperInstance().getSoapEncodingTypesMap());
-
-
     }
 
     /**
@@ -546,7 +499,7 @@
             // register the fixed value if present
             if (xsElt.getFixedValue() != null) {
                 metainf.registerDefaultValue(xsElt.getQName(), xsElt.getFixedValue());
-                metainf.setFixed(true);
+                metainf.registerFixedQName(xsElt.getQName());
             }
 
             if (isBinary(xsElt)) {
@@ -662,7 +615,7 @@
                     String className = findClassName(schemaType.getQName(),
                                                      isArray(xsElt));
 
-                    innerElementMap.put(xsElt.getQName(), className);
+                    innerElementMap.put(xsElt.getWireName(), className);
 
                     // always store the class name in the element meta Info itself
                     // this details only needed by the unwrappig to set the complex type
@@ -685,7 +638,7 @@
                     //the anon map. we've to write it just like we treat a referenced type(giving due
                     //care that this is meant to be an attribute in some class)
 
-                    QName generatedTypeName = generateTypeQName(xsElt.getQName(), parentSchema);
+                    QName generatedTypeName = generateTypeQName(xsElt.getWireName(), parentSchema);
 
                     if (schemaType instanceof XmlSchemaComplexType) {
                         //set a name
@@ -707,7 +660,7 @@
                         processedAnonymousComplexTypesMap.remove(xsElt);
                         String className = findClassName(schemaType.getQName(), isArray(xsElt));
                         innerElementMap.put(
-                                xsElt.getQName(),
+                                xsElt.getWireName(),
                                 className);
 
                         //store in the schema map to retrive in the unwrapping
@@ -734,7 +687,7 @@
                         processedAnonymousComplexTypesMap.remove(xsElt);
                         String className = findClassName(schemaType.getQName(), isArray(xsElt));
                         innerElementMap.put(
-                                xsElt.getQName(),
+                                xsElt.getWireName(),
                                 className);
 
                         //store in the schema map
@@ -875,7 +828,7 @@
                 if (!isOuter) {
                     String className = findClassName(schemaTypeName, isArray(xsElt));
                     //since this is a inner element we should add it to the inner element map
-                    innerElementMap.put(xsElt.getQName(), className);
+                    innerElementMap.put(xsElt.getWireName(), className);
                     // set the class name to be used in unwrapping
                     xsElt.addMetaInfo(SchemaConstants.SchemaCompilerInfoHolder.CLASSNAME_KEY,
                                       className);
@@ -886,7 +839,7 @@
                 //this type is not found at all. we'll just register it with whatever the class name we can comeup with
                 if (!isOuter) {
                     String className = findClassName(schemaTypeName, isArray(xsElt));
-                    innerElementMap.put(xsElt.getQName(), className);
+                    innerElementMap.put(xsElt.getWireName(), className);
                     // set the class name to be used in unwrapping
                     xsElt.addMetaInfo(SchemaConstants.SchemaCompilerInfoHolder.CLASSNAME_KEY,
                                       className);
@@ -901,7 +854,7 @@
             if (isOuter) {
                 this.nillableElementList.add(xsElt.getQName());
             } else {
-                localNillableList.add(xsElt.getQName());
+                localNillableList.add(xsElt.getWireName());
             }
         }
 
@@ -1880,17 +1833,17 @@
 
         QName schemaTypeName = att.getSchemaTypeName();
         if (schemaTypeName != null) {
-            if (att.getQName() != null) {
+            if (att.getWireName() != null) {
                 if (baseSchemaTypeMap.containsKey(schemaTypeName)) {
 
-                    metainf.registerMapping(att.getQName(), schemaTypeName,
+                    metainf.registerMapping(att.getWireName(), schemaTypeName,
                                             baseSchemaTypeMap.get(schemaTypeName).toString(),
                                             SchemaConstants.ATTRIBUTE_TYPE);
 
                     // add optional attribute status if set
                     String use = att.getUse().toString();
                     if (USE_NONE.equals(use) || USE_OPTIONAL.equals(use)) {
-                        metainf.addtStatus(att.getQName(), SchemaConstants.OPTIONAL_TYPE);
+                        metainf.addtStatus(att.getWireName(), SchemaConstants.OPTIONAL_TYPE);
                     }
 
                     String className = findClassName(schemaTypeName, false);
@@ -1900,11 +1853,11 @@
                             className);
                     // set the default value
                     if (att.getDefaultValue() != null) {
-                        metainf.registerDefaultValue(att.getQName(), att.getDefaultValue());
+                        metainf.registerDefaultValue(att.getWireName(), att.getDefaultValue());
                     }
                     if (att.getFixedValue() != null) {
-                        metainf.registerDefaultValue(att.getQName(), att.getFixedValue());
-                        metainf.setFixed(true);
+                        metainf.registerDefaultValue(att.getWireName(), att.getFixedValue());
+                        metainf.registerFixedQName(att.getWireName());
                     }
                     // after
                 } else {
@@ -1925,14 +1878,14 @@
                                     //process simple type
                                     processSimpleSchemaType(simpleType, null, resolvedSchema, null);
                                 }
-                                metainf.registerMapping(att.getQName(),
+                                metainf.registerMapping(att.getWireName(),
                                                         schemaTypeName,
                                                         processedTypemap.get(schemaTypeName).toString(),
                                                         SchemaConstants.ATTRIBUTE_TYPE);
                                 // add optional attribute status if set
                                 String use = att.getUse().toString();
                                 if (USE_NONE.equals(use) || USE_OPTIONAL.equals(use)) {
-                                    metainf.addtStatus(att.getQName(), SchemaConstants.OPTIONAL_TYPE);
+                                    metainf.addtStatus(att.getWireName(), SchemaConstants.OPTIONAL_TYPE);
                                 }
                             }
 
@@ -1967,7 +1920,7 @@
         } else {
             // this attribute refers to a custom type, probably one of the extended simple types.
             // with the inline schema definition
-            QName attributeQName = att.getQName();
+            QName attributeQName = att.getWireName();
             if (attributeQName != null) {
                 XmlSchemaSimpleType attributeSimpleType = att.getSchemaType();
                 XmlSchema resolvedSchema = parentSchema;
@@ -2007,14 +1960,14 @@
                         processSimpleSchemaType(attributeSimpleType, null, resolvedSchema,
                                                 schemaTypeQName);
                     }
-                    metainf.registerMapping(att.getQName(),
+                    metainf.registerMapping(att.getWireName(),
                                             schemaTypeQName,
                                             processedTypemap.get(schemaTypeQName).toString(),
                                             SchemaConstants.ATTRIBUTE_TYPE);
                     // add optional attribute status if set
                     String use = att.getUse().toString();
                     if (USE_NONE.equals(use) || USE_OPTIONAL.equals(use)) {
-                        metainf.addtStatus(att.getQName(), SchemaConstants.OPTIONAL_TYPE);
+                        metainf.addtStatus(att.getWireName(), SchemaConstants.OPTIONAL_TYPE);
                     }
                 } else {
                     // TODO: handle the case when no attribute type specifed
@@ -2080,11 +2033,11 @@
             }
 
         } else if (particle instanceof XmlSchemaAll) {
-            List<XmlSchemaElement> items = ((XmlSchemaAll) particle).getItems();
+            List<XmlSchemaAllMember> items = ((XmlSchemaAll) particle).getItems();
             processSchemaAllItems(parentElementQName, items, metainfHolder, false, parentSchema);
         } else if (particle instanceof XmlSchemaChoice) {
             XmlSchemaChoice xmlSchemaChoice = (XmlSchemaChoice) particle;
-            List<XmlSchemaObject> items = ((XmlSchemaChoice) particle).getItems();
+            List<XmlSchemaChoiceMember> items = ((XmlSchemaChoice) particle).getItems();
 
             if ((xmlSchemaChoice.getMaxOccurs() > 1)) {
                 // we have to process many sequence types
@@ -2173,18 +2126,18 @@
                          boolean order,
                          XmlSchema parentSchema) throws SchemaCompilationException {
 
-        Map<XmlSchemaObject, Boolean> processedElementArrayStatusMap =
-                new LinkedHashMap<XmlSchemaObject, Boolean>();
+        Map<XmlSchemaObjectBase, Boolean> processedElementArrayStatusMap =
+                new LinkedHashMap<XmlSchemaObjectBase, Boolean>();
         Map processedElementTypeMap = new LinkedHashMap(); // TODO: not sure what is the correct generic type here
         List<QName> localNillableList = new ArrayList<QName>();
 
-        Map<XmlSchemaObject, QName> particleQNameMap = new HashMap<XmlSchemaObject, QName>();
+        Map<XmlSchemaObjectBase, QName> particleQNameMap = new HashMap<XmlSchemaObjectBase, QName>();
 
         // this list is used to keep the details of the
         // elements within a choice withing sequence
         List<QName> innerChoiceElementList = new ArrayList<QName>();
 
-        Map<XmlSchemaObject, Integer> elementOrderMap = new HashMap<XmlSchemaObject, Integer>();
+        Map<XmlSchemaObjectBase, Integer> elementOrderMap = new HashMap<XmlSchemaObjectBase, Integer>();
 
         int sequenceCounter = 0;
         for (XmlSchemaSequenceMember member : items) {
@@ -2202,26 +2155,26 @@
     }
 
     private void processChoiceItems(QName parentElementQName,
-                                    List<XmlSchemaObject> items,
+                                    List<XmlSchemaChoiceMember> items,
                                     BeanWriterMetaInfoHolder metainfHolder,
                                     boolean order,
                                     XmlSchema parentSchema) throws SchemaCompilationException {
 
-        Map<XmlSchemaObject, Boolean> processedElementArrayStatusMap =
-                new LinkedHashMap<XmlSchemaObject, Boolean>();
+        Map<XmlSchemaObjectBase, Boolean> processedElementArrayStatusMap =
+                new LinkedHashMap<XmlSchemaObjectBase, Boolean>();
         Map processedElementTypeMap = new LinkedHashMap(); // TODO: not sure what is the correct generic type here
         List<QName> localNillableList = new ArrayList<QName>();
 
-        Map<XmlSchemaObject, QName> particleQNameMap = new HashMap<XmlSchemaObject, QName>();
+        Map<XmlSchemaObjectBase, QName> particleQNameMap = new HashMap<XmlSchemaObjectBase, QName>();
 
         // this list is used to keep the details of the
         // elements within a choice withing sequence
         List<QName> innerChoiceElementList = new ArrayList<QName>();
 
-        Map<XmlSchemaObject, Integer> elementOrderMap = new HashMap<XmlSchemaObject, Integer>();
+        Map<XmlSchemaObjectBase, Integer> elementOrderMap = new HashMap<XmlSchemaObjectBase, Integer>();
 
         int sequenceCounter = 0;
-        for (XmlSchemaObject item : items) {
+        for (XmlSchemaChoiceMember item : items) {
             //recursively process the element
             processElements(parentElementQName, item, processedElementArrayStatusMap,
                             processedElementTypeMap, elementOrderMap, localNillableList,
@@ -2236,26 +2189,26 @@
 
 
     private void processSchemaAllItems(QName parentElementQName,
-                                       List<XmlSchemaElement> items,
+                                       List<XmlSchemaAllMember> items,
                                        BeanWriterMetaInfoHolder metainfHolder,
                                        boolean order,
                                        XmlSchema parentSchema) throws SchemaCompilationException {
 
-        Map<XmlSchemaObject, Boolean> processedElementArrayStatusMap =
-                new LinkedHashMap<XmlSchemaObject, Boolean>();
+        Map<XmlSchemaObjectBase, Boolean> processedElementArrayStatusMap =
+                new LinkedHashMap<XmlSchemaObjectBase, Boolean>();
         Map processedElementTypeMap = new LinkedHashMap(); // TODO: not sure what is the correct generic type here
         List<QName> localNillableList = new ArrayList<QName>();
 
-        Map<XmlSchemaObject, QName> particleQNameMap = new HashMap<XmlSchemaObject, QName>();
+        Map<XmlSchemaObjectBase, QName> particleQNameMap = new HashMap<XmlSchemaObjectBase, QName>();
 
         // this list is used to keep the details of the
         // elements within a choice withing sequence
         List<QName> innerChoiceElementList = new ArrayList<QName>();
 
-        Map<XmlSchemaObject, Integer> elementOrderMap = new HashMap<XmlSchemaObject, Integer>();
+        Map<XmlSchemaObjectBase, Integer> elementOrderMap = new HashMap<XmlSchemaObjectBase, Integer>();
 
         int sequenceCounter = 0;
-        for (XmlSchemaObject item : items) {
+        for (XmlSchemaAllMember item : items) {
             //recursively process the element
             processElements(parentElementQName, item, processedElementArrayStatusMap,
                             processedElementTypeMap, elementOrderMap, localNillableList,
@@ -2270,31 +2223,31 @@
 
 
     private void addProcessedItemsToMetaInfoHolder(
-            Map<XmlSchemaObject, Boolean> processedElementArrayStatusMap,
+            Map<XmlSchemaObjectBase, Boolean> processedElementArrayStatusMap,
             Map processedElementTypeMap,
             List<QName> innerChoiceElementList,
-            Map<XmlSchemaObject, Integer> elementOrderMap,
+            Map<XmlSchemaObjectBase, Integer> elementOrderMap,
             List<QName> localNillableList,
-            Map<XmlSchemaObject, QName> particleQNameMap,
+            Map<XmlSchemaObjectBase, QName> particleQNameMap,
             BeanWriterMetaInfoHolder metainfHolder,
             boolean order,
             XmlSchema parentSchema) throws SchemaCompilationException {
 
         // loop through the processed items and add them to the matainf object
         int startingItemNumberOrder = metainfHolder.getOrderStartPoint();
-        for (XmlSchemaObject child : processedElementArrayStatusMap.keySet()) {
+        for (XmlSchemaObjectBase child : processedElementArrayStatusMap.keySet()) {
 
             // process the XmlSchemaElement
             if (child instanceof XmlSchemaElement) {
                 XmlSchemaElement elt = (XmlSchemaElement) child;
                 QName referencedQName = null;
 
-                if (elt.getQName() != null) {
-                    referencedQName = elt.getQName();
+                if (elt.getWireName() != null) {
+                    referencedQName = elt.getWireName();
                     QName schemaTypeQName = elt.getSchemaType() != null ?
                                             elt.getSchemaType().getQName() : elt.getSchemaTypeName();
                     if (schemaTypeQName != null) {
-                        String clazzName = (String) processedElementTypeMap.get(elt.getQName());
+                        String clazzName = (String) processedElementTypeMap.get(elt.getWireName());
                         metainfHolder.registerMapping(referencedQName,
                                                       schemaTypeQName,
                                                       clazzName,
@@ -2312,7 +2265,7 @@
                         // register the default value as well
                         if (elt.getFixedValue() != null) {
                             metainfHolder.registerDefaultValue(referencedQName, elt.getFixedValue());
-                            metainfHolder.setFixed(true);
+                            metainfHolder.registerFixedQName(referencedQName);
                         }
                     }
                 }
@@ -2380,13 +2333,13 @@
                 }
 
                 //get the nillable state and register that on the metainf holder
-                if (localNillableList.contains(elt.getQName())) {
-                    metainfHolder.registerNillableQName(elt.getQName());
+                if (localNillableList.contains(elt.getWireName())) {
+                    metainfHolder.registerNillableQName(elt.getWireName());
                 }
 
                 //get the binary state and add that to the status map
                 if (isBinary(elt)) {
-                    metainfHolder.addtStatus(elt.getQName(),
+                    metainfHolder.addtStatus(elt.getWireName(),
                                              SchemaConstants.BINARY_TYPE);
                 }
                 // process the XMLSchemaAny
@@ -2500,12 +2453,12 @@
 
     }
 
-    private void processElements(QName parentElementQName, XmlSchemaObject item,
-                                 Map<XmlSchemaObject, Boolean> processedElementArrayStatusMap,
+    private void processElements(QName parentElementQName, XmlSchemaObjectBase item,
+                                 Map<XmlSchemaObjectBase, Boolean> processedElementArrayStatusMap,
                                  Map processedElementTypeMap,
-                                 Map<XmlSchemaObject, Integer> elementOrderMap,
+                                 Map<XmlSchemaObjectBase, Integer> elementOrderMap,
                                  List<QName> localNillableList,
-                                 Map<XmlSchemaObject, QName> particleQNameMap,
+                                 Map<XmlSchemaObjectBase, QName> particleQNameMap,
                                  boolean order, int sequenceCounter,
                                  XmlSchema parentSchema) throws SchemaCompilationException {
 
diff --git a/modules/adb-codegen/src/org/apache/axis2/schema/template/ADBBeanTemplate-bean.xsl b/modules/adb-codegen/src/org/apache/axis2/schema/template/ADBBeanTemplate-bean.xsl
index 61d4263..77d8074 100644
--- a/modules/adb-codegen/src/org/apache/axis2/schema/template/ADBBeanTemplate-bean.xsl
+++ b/modules/adb-codegen/src/org/apache/axis2/schema/template/ADBBeanTemplate-bean.xsl
@@ -1811,16 +1811,17 @@
                        </xsl:choose>
 
                     // handle unexpected enumeration values properly
-                    <xsl:if test="$ignoreunexpected">
-                        log.warn("Unexpected value " + value + " for enumeration <xsl:value-of select="$name"/>");
-                        return enumeration;
-                    </xsl:if>
-                    <xsl:if test="not($ignoreunexpected)">
-                        if (enumeration == null  <xsl:if test="$propertyType='string'">&amp;&amp; !((value == null) || (value.equals("")))</xsl:if>) {
-                            throw new java.lang.IllegalArgumentException();
-                        }
-                        return enumeration;
-                    </xsl:if>
+                    if (enumeration == null  <xsl:if test="$propertyType='string'">&amp;&amp; !((value == null) || (value.equals("")))</xsl:if>) {
+                        <xsl:choose>
+                            <xsl:when test="$ignoreunexpected">
+                                log.warn("Unexpected value " + value + " for enumeration <xsl:value-of select="$name"/>");
+                            </xsl:when>
+                            <xsl:otherwise>
+                                throw new java.lang.IllegalArgumentException();
+                            </xsl:otherwise>
+                        </xsl:choose>
+                    }
+                    return enumeration;
                 }
                 public static <xsl:value-of select="$name"/> fromString(java.lang.String value,java.lang.String namespaceURI)
                       throws java.lang.IllegalArgumentException {
@@ -2155,14 +2156,12 @@
                             <xsl:variable name="loopBoolName">loopDone<xsl:value-of select="position()"/></xsl:variable>
                             <xsl:variable name="startQname">startQname<xsl:value-of select="position()"/></xsl:variable>
                             <xsl:variable name="stateMachineName">stateMachine<xsl:value-of select="position()"/></xsl:variable>
-                            <xsl:variable name="builderName">builder<xsl:value-of select="position()"/></xsl:variable>
                             <xsl:variable name="basePropertyType"><xsl:value-of select="@arrayBaseType"/></xsl:variable>
                             <xsl:variable name="namespace"><xsl:value-of select="@nsuri"/></xsl:variable>
                             <xsl:variable name="min"><xsl:value-of select="@minOccurs"/></xsl:variable>
                             <xsl:variable name="particleClassType" select="@particleClassType"></xsl:variable>
 
                             <xsl:variable name="propQName">new javax.xml.namespace.QName("<xsl:value-of select="$namespace"/>","<xsl:value-of select="$propertyName"/>")</xsl:variable>
-                            <xsl:variable name="propQName2">new javax.xml.namespace.QName("","<xsl:value-of select="$propertyName"/>")</xsl:variable>
 
                            <xsl:choose>
                                 <xsl:when test="$unordered and not($choice and $hasParticleType)">  <!-- One property per iteration if unordered -->
@@ -2187,7 +2186,7 @@
                                          we have to sollow an excpetions : todo find a better solsution-->
                                          try{
                                     </xsl:if>
-                                    if (reader.isStartElement() <xsl:if test="$simple"> || reader.hasText()</xsl:if> <xsl:if test="not($simple) and not($particleClassType)">&amp;&amp; <xsl:value-of select="$propQName"/>.equals(reader.getName()) || <xsl:value-of select="$propQName2"/>.equals(reader.getName()) </xsl:if>){
+                                    if (reader.isStartElement() <xsl:if test="$simple"> || reader.hasText()</xsl:if> <xsl:if test="not($simple) and not($particleClassType)">&amp;&amp; <xsl:value-of select="$propQName"/>.equals(reader.getName())</xsl:if>){
                                 </xsl:otherwise>
                             </xsl:choose>
 
@@ -2310,14 +2309,7 @@
                                              while (!<xsl:value-of select="$loopBoolName"/>){
                                                  event = reader.getEventType();
                                                  if (javax.xml.stream.XMLStreamConstants.START_ELEMENT == event){
-
-                                                      // We need to wrap the reader so that it produces a fake START_DOCUEMENT event
-                                                      org.apache.axis2.databinding.utils.NamedStaxOMBuilder <xsl:value-of select="$builderName"/>
-                                                         = new org.apache.axis2.databinding.utils.NamedStaxOMBuilder(
-                                                              new org.apache.axis2.util.StreamWrapper(reader), reader.getName());
-
-                                                       <xsl:value-of select="$listName"/>.add(<xsl:value-of select="$builderName"/>.getOMElement());
-                                                        reader.next();
+                                                       <xsl:value-of select="$listName"/>.add(org.apache.axis2.databinding.utils.FactoryUtil.extractElement(reader, true));
                                                         if (reader.isEndElement()) {
                                                             // we have two countinuos end elements
                                                            <xsl:value-of select="$loopBoolName"/> = true;
@@ -2474,12 +2466,7 @@
                                                           }else{
                                                       </xsl:if>
 
-                                                      // We need to wrap the reader so that it produces a fake START_DOCUEMENT event
-                                                      org.apache.axis2.databinding.utils.NamedStaxOMBuilder <xsl:value-of select="$builderName"/>
-                                                         = new org.apache.axis2.databinding.utils.NamedStaxOMBuilder(
-                                                              new org.apache.axis2.util.StreamWrapper(reader), <xsl:value-of select="$startQname"/>);
-
-                                                       <xsl:value-of select="$listName"/>.add(<xsl:value-of select="$builderName"/>.getOMElement().getFirstElement());
+                                                       <xsl:value-of select="$listName"/>.add(org.apache.axis2.databinding.utils.FactoryUtil.extractElement(reader, false).getFirstElement());
                                                        <xsl:if test="@nillable">}</xsl:if>
                                                  } else if (javax.xml.stream.XMLStreamConstants.START_ELEMENT == event &amp;&amp;
                                                             !<xsl:value-of select="$startQname"/>.equals(reader.getName())){
@@ -2643,16 +2630,8 @@
                                 <xsl:when test="@any">
                                     <!--No concerns of being nillable here. if it's ours and if the nillable attribute was present
                                         we would have outputted a null already-->
-                                     <!--This can be any element and we may not know the name. so we pick the name of the element from the parser-->
-                                     //use the QName from the parser as the name for the builder
-                                     javax.xml.namespace.QName <xsl:value-of select="$startQname"/> = reader.getName();
 
-                                     // We need to wrap the reader so that it produces a fake START_DOCUMENT event
-                                     // this is needed by the builder classes
-                                     org.apache.axis2.databinding.utils.NamedStaxOMBuilder <xsl:value-of select="$builderName"/> =
-                                         new org.apache.axis2.databinding.utils.NamedStaxOMBuilder(
-                                             new org.apache.axis2.util.StreamWrapper(reader),<xsl:value-of select="$startQname"/>);
-                                     object.set<xsl:value-of select="$javaName"/>(<xsl:value-of select="$builderName"/>.getOMElement());
+                                     object.set<xsl:value-of select="$javaName"/>(org.apache.axis2.databinding.utils.FactoryUtil.extractElement(reader, false));
                                      <xsl:if test="$isType or $anon">  <!-- This is a subelement property to be consumed -->
                                          reader.next();
                                      </xsl:if>
diff --git a/modules/adb-codegen/src/org/apache/axis2/schema/template/ADBBeanTemplate-helpermode.xsl b/modules/adb-codegen/src/org/apache/axis2/schema/template/ADBBeanTemplate-helpermode.xsl
index cf31d7e..4ad6b5d 100644
--- a/modules/adb-codegen/src/org/apache/axis2/schema/template/ADBBeanTemplate-helpermode.xsl
+++ b/modules/adb-codegen/src/org/apache/axis2/schema/template/ADBBeanTemplate-helpermode.xsl
@@ -1269,7 +1269,6 @@
                             <xsl:variable name="loopBoolName">loopDone<xsl:value-of select="position()"/></xsl:variable>
                             <xsl:variable name="startQname">startQname<xsl:value-of select="position()"/></xsl:variable>
                             <xsl:variable name="stateMachineName">stateMachine<xsl:value-of select="position()"/></xsl:variable>
-                            <xsl:variable name="builderName">builder<xsl:value-of select="position()"/></xsl:variable>
                             <xsl:variable name="basePropertyType"><xsl:value-of select="@arrayBaseType"/></xsl:variable>
                             <xsl:variable name="namespace"><xsl:value-of select="@nsuri"/></xsl:variable>
                             <xsl:variable name="min"><xsl:value-of select="@minOccurs"/></xsl:variable>
@@ -1370,13 +1369,7 @@
                                                  event = reader.getEventType();
                                                  if (javax.xml.stream.XMLStreamConstants.START_ELEMENT == event){
 
-                                                      // We need to wrap the reader so that it produces a fake START_DOCUEMENT event
-                                                      org.apache.axis2.databinding.utils.NamedStaxOMBuilder <xsl:value-of select="$builderName"/>
-                                                         = new org.apache.axis2.databinding.utils.NamedStaxOMBuilder(
-                                                              new org.apache.axis2.util.StreamWrapper(reader), reader.getName());
-
-                                                       <xsl:value-of select="$listName"/>.add(<xsl:value-of select="$builderName"/>.getOMElement());
-                                                        reader.next();
+                                                       <xsl:value-of select="$listName"/>.add(org.apache.axis2.databinding.utils.FactoryUtil.extractElement(reader, true));
                                                         if (reader.isEndElement()) {
                                                             // we have two countinuos end elements
                                                            <xsl:value-of select="$loopBoolName"/> = true;
@@ -1424,13 +1417,7 @@
                                                               reader.next();
                                                           }else{
                                                       </xsl:if>
-                                                            // we parse it as an omElement
-                                                            // We need to wrap the reader so that it produces a fake START_DOCUEMENT event
-                                                            // this is needed by the builder classes
-                                                             org.apache.axis2.databinding.utils.NamedStaxOMBuilder <xsl:value-of select="$builderName"/> =
-                                                                 new org.apache.axis2.databinding.utils.NamedStaxOMBuilder(
-                                                                     new org.apache.axis2.util.StreamWrapper(reader),<xsl:value-of select="$startQname"/>);
-                                                             <xsl:value-of select="$listName"/>.add(<xsl:value-of select="$builderName"/>.getOMElement().getFirstElement());
+                                                             <xsl:value-of select="$listName"/>.add(org.apache.axis2.databinding.utils.FactoryUtil.extractElement(reader, false).getFirstElement());
                                                        <xsl:if test="@nillable">}</xsl:if>
                                                  } else if (javax.xml.stream.XMLStreamConstants.START_ELEMENT == event &amp;&amp;
                                                             !<xsl:value-of select="$startQname"/>.equals(reader.getName())){
@@ -1540,12 +1527,7 @@
                                                           }else{
                                                       </xsl:if>
 
-                                                      // We need to wrap the reader so that it produces a fake START_DOCUEMENT event
-                                                      org.apache.axis2.databinding.utils.NamedStaxOMBuilder <xsl:value-of select="$builderName"/>
-                                                         = new org.apache.axis2.databinding.utils.NamedStaxOMBuilder(
-                                                              new org.apache.axis2.util.StreamWrapper(reader), <xsl:value-of select="$startQname"/>);
-
-                                                       <xsl:value-of select="$listName"/>.add(<xsl:value-of select="$builderName"/>.getOMElement().getFirstElement());
+                                                       <xsl:value-of select="$listName"/>.add(org.apache.axis2.databinding.utils.FactoryUtil.extractElement(reader, false).getFirstElement());
                                                        <xsl:if test="@nillable">}</xsl:if>
                                                  } else if (javax.xml.stream.XMLStreamConstants.START_ELEMENT == event &amp;&amp;
                                                             !<xsl:value-of select="$startQname"/>.equals(reader.getName())){
@@ -1654,16 +1636,8 @@
                                 <xsl:when test="@any">
                                     <!--No concerns of being nillable here. if it's ours and if the nillable attribute was present
                                         we would have outputted a null already-->
-                                     <!--This can be any element and we may not know the name. so we pick the name of the element from the parser-->
-                                     //use the QName from the parser as the name for the builder
-                                     javax.xml.namespace.QName <xsl:value-of select="$startQname"/> = reader.getName();
 
-                                     // We need to wrap the reader so that it produces a fake START_DOCUMENT event
-                                     // this is needed by the builder classes
-                                     org.apache.axis2.databinding.utils.NamedStaxOMBuilder <xsl:value-of select="$builderName"/> =
-                                         new org.apache.axis2.databinding.utils.NamedStaxOMBuilder(
-                                             new org.apache.axis2.util.StreamWrapper(reader),<xsl:value-of select="$startQname"/>);
-                                     object.set<xsl:value-of select="$javaName"/>(<xsl:value-of select="$builderName"/>.getOMElement());
+                                     object.set<xsl:value-of select="$javaName"/>(org.apache.axis2.databinding.utils.FactoryUtil.extractElement(reader, false));
                                      <xsl:if test="$isType or $anon">  <!-- This is a subelement property to be consumed -->
                                          reader.next();
                                      </xsl:if>
@@ -1684,13 +1658,7 @@
                                          }
                                      }
 
-                                     <!-- todo  put the code here for nillable -->
-                                     // We need to wrap the reader so that it produces a fake START_DOCUEMENT event
-                                     // this is needed by the builder classes
-                                     org.apache.axis2.databinding.utils.NamedStaxOMBuilder <xsl:value-of select="$builderName"/> =
-                                         new org.apache.axis2.databinding.utils.NamedStaxOMBuilder(
-                                             new org.apache.axis2.util.StreamWrapper(reader),<xsl:value-of select="$startQname"/>);
-                                     object.set<xsl:value-of select="$javaName"/>(<xsl:value-of select="$builderName"/>.getOMElement().getFirstElement());
+                                     object.set<xsl:value-of select="$javaName"/>(org.apache.axis2.databinding.utils.FactoryUtil.extractElement(reader, false).getFirstElement());
                                      <xsl:if test="$isType or $anon">  <!-- This is a subelement property to be consumed -->
                                          reader.next();
                                      </xsl:if>
diff --git a/modules/adb-codegen/src/org/apache/axis2/schema/template/ADBDatabindingTemplate.xsl b/modules/adb-codegen/src/org/apache/axis2/schema/template/ADBDatabindingTemplate.xsl
index fc1e6cb..f45054f 100644
--- a/modules/adb-codegen/src/org/apache/axis2/schema/template/ADBDatabindingTemplate.xsl
+++ b/modules/adb-codegen/src/org/apache/axis2/schema/template/ADBDatabindingTemplate.xsl
@@ -405,14 +405,18 @@
             <xsl:if test="not(@type=preceding-sibling::param/@type)">

                 if (<xsl:value-of select="@type"/>.class.equals(type)){

                 <xsl:choose>

-                    <xsl:when test="$helpermode">

-                        return <xsl:value-of select="@type"/>Helper.INSTANCE.parse(param.getXMLStreamReaderWithoutCaching());

-                    </xsl:when>

                     <xsl:when test="@type = 'org.apache.axiom.om.OMElement'">

                         return param;

                     </xsl:when>

                     <xsl:otherwise>

-                        return <xsl:value-of select="@type"/>.Factory.parse(param.getXMLStreamReaderWithoutCaching());

+                        javax.xml.stream.XMLStreamReader reader = param.getXMLStreamReaderWithoutCaching();

+                        java.lang.Object result =

+                        <xsl:choose>

+                            <xsl:when test="$helpermode"><xsl:value-of select="@type"/>Helper.INSTANCE.parse(reader);</xsl:when>

+                            <xsl:otherwise><xsl:value-of select="@type"/>.Factory.parse(reader);</xsl:otherwise>

+                        </xsl:choose>

+                        reader.close();

+                        return result;

                     </xsl:otherwise>

                 </xsl:choose>

 

diff --git a/modules/adb-codegen/src/org/apache/axis2/schema/typemap/CTypeMap.java b/modules/adb-codegen/src/org/apache/axis2/schema/typemap/CTypeMap.java
index aed5f99..5a8f1f2 100644
--- a/modules/adb-codegen/src/org/apache/axis2/schema/typemap/CTypeMap.java
+++ b/modules/adb-codegen/src/org/apache/axis2/schema/typemap/CTypeMap.java
@@ -171,105 +171,4 @@
     private static void addTypemapping(QName name, String str) {
         CTypeMap.typeMap.put(name, str);
     }
-
-    // Type map for the soap encoding types
-    public Map getSoapEncodingTypesMap() {
-        return soapEncodingTypeMap;
-    }
-
-    private static Map soapEncodingTypeMap = new HashMap();
-
-    static {
-        // populate the soapEncodingTypeMap
-        addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_ARRAY,
-                "axutil_array_list_t*");
-        addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_STRUCT,
-                "axiom_node_t*");
-        addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_BASE64,
-                "axutil_base64_binary_t*");
-        addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_DURATION,
-                "axutil_duration_t*");
-        addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_DATETIME,
-                "axutil_date_time_t*");
-        addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_NOTATION,
-                "axiom_node_t*");
-        addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_TIME,
-                "axutil_date_time_t*");
-        addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_DATE,
-                "axutil_date_time_t*");
-        addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_GYEARMONTH,
-                "axutil_date_time_t*");
-        addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_GYEAR,
-                "int");
-        addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_GMONTHDAY,
-                "axutil_date_time_t*");
-        addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_GDAY,
-                "int");
-        addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_GMONTH,
-                "int");
-        addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_BOOLEAN,
-                "axis2_bool_t");
-        addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_BASE64BINARY,
-                "axutil_base64_binary_t*");
-        addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_HEXBINARY,
-                "axiom_node_t*");
-        addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_FLOAT,
-                "float");
-        addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_DOUBLE,
-                "double");
-        addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_ANYURI,
-                "axutil_uri_t*");
-        addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_QNAME,
-                "axutil_qname_t*");
-        addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_STRING,
-                "axis2_char_t*");
-        addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_NORMALIZEDSTRING,
-                "axis2_char_t*");
-        addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_TOKEN,
-                "axis2_char_t*");
-        addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_LANGUAGE,
-                "axis2_char_t*");
-        addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_NAME,
-                "axis2_char_t*");
-        addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_NMTOKEN,
-                "axis2_char_t*");
-        addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_NCNAME,
-                "axis2_char_t*");
-        addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_ID,
-                "axis2_char_t*");
-        addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_IDREF,
-                "axis2_char_t*");
-        addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_ENTITY,
-                "axis2_char_t*");
-        addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_IDREFS,
-                "axis2_char_t*");
-        addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_ENTITIES,
-                "axis2_char_t*");
-        addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_DECIMAL,
-                "double");
-        addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_INTEGER,
-                "int");
-        addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_NONPOSITIVEINTEGER,
-                "int");
-        addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_NEGATIVEINTEGER,
-                "int");
-        addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_LONG,
-                "int64_t");
-        addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_INT,
-                "int");
-        addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_SHORT,
-                "short");
-        addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_BYTE,
-                "axis2_byte_t");
-        addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_NONNEGATIVEINTEGER,
-                "unsigned int");
-        addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_UNSIGNEDLONG,
-                "uint64_t");
-        addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_UNSIGNEDINT,
-                "unsigned int");
-    }
-
-    private static void addSoapEncodingTypeMapping(QName name, String className) {
-        soapEncodingTypeMap.put(name, className);
-    }
 }
diff --git a/modules/adb-codegen/src/org/apache/axis2/schema/typemap/JavaTypeMap.java b/modules/adb-codegen/src/org/apache/axis2/schema/typemap/JavaTypeMap.java
index 30ed9d1..868bf30 100644
--- a/modules/adb-codegen/src/org/apache/axis2/schema/typemap/JavaTypeMap.java
+++ b/modules/adb-codegen/src/org/apache/axis2/schema/typemap/JavaTypeMap.java
@@ -215,114 +215,4 @@
     private static void addTypemapping(QName name, String str) {
         typeMap.put(name, str);
     }
-
-    public Map getSoapEncodingTypesMap() {
-        return soapEncodingTypeMap;
-    }
-
-    private static Map soapEncodingTypeMap = new HashMap();
-
-    static {
-        // populate the soapEncodingTypeMap
-        addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_ARRAY,
-                org.apache.axis2.databinding.types.soapencoding.Array.class.getName());
-        addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_STRUCT,
-                org.apache.axis2.databinding.types.soapencoding.Struct.class.getName());
-        addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_BASE64,
-                org.apache.axis2.databinding.types.soapencoding.Base64.class.getName());
-        addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_DURATION,
-                org.apache.axis2.databinding.types.soapencoding.Duration.class.getName());
-        addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_DATETIME,
-                org.apache.axis2.databinding.types.soapencoding.DateTime.class.getName());
-        addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_NOTATION,
-                org.apache.axis2.databinding.types.soapencoding.NOTATION.class.getName());
-        addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_TIME,
-                org.apache.axis2.databinding.types.soapencoding.Time.class.getName());
-        addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_DATE,
-                org.apache.axis2.databinding.types.soapencoding.Date.class.getName());
-        addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_GYEARMONTH,
-                org.apache.axis2.databinding.types.soapencoding.GYearMonth.class.getName());
-        addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_GYEAR,
-                org.apache.axis2.databinding.types.soapencoding.GYear.class.getName());
-        addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_GMONTHDAY,
-                org.apache.axis2.databinding.types.soapencoding.GMonthDay.class.getName());
-        addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_GDAY,
-                org.apache.axis2.databinding.types.soapencoding.GDay.class.getName());
-        addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_GMONTH,
-                org.apache.axis2.databinding.types.soapencoding.GMonth.class.getName());
-        addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_BOOLEAN,
-                org.apache.axis2.databinding.types.soapencoding._boolean.class.getName());
-        addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_BASE64BINARY,
-                org.apache.axis2.databinding.types.soapencoding.Base64Binary.class.getName());
-        addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_HEXBINARY,
-                org.apache.axis2.databinding.types.soapencoding.HexBinary.class.getName());
-        addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_FLOAT,
-                org.apache.axis2.databinding.types.soapencoding._float.class.getName());
-        addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_DOUBLE,
-                org.apache.axis2.databinding.types.soapencoding._double.class.getName());
-        addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_ANYURI,
-                org.apache.axis2.databinding.types.soapencoding.AnyURI.class.getName());
-        addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_QNAME,
-                org.apache.axis2.databinding.types.soapencoding.QName.class.getName());
-        addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_STRING,
-                org.apache.axis2.databinding.types.soapencoding.String.class.getName());
-        addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_NORMALIZEDSTRING,
-                org.apache.axis2.databinding.types.soapencoding.NormalizedString.class.getName());
-        addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_TOKEN,
-                org.apache.axis2.databinding.types.soapencoding.Token.class.getName());
-        addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_LANGUAGE,
-                org.apache.axis2.databinding.types.soapencoding.Language.class.getName());
-        addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_NAME,
-                org.apache.axis2.databinding.types.soapencoding.Name.class.getName());
-        addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_NMTOKEN,
-                org.apache.axis2.databinding.types.soapencoding.NMTOKEN.class.getName());
-        addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_NCNAME,
-                org.apache.axis2.databinding.types.soapencoding.NCName.class.getName());
-        addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_NMTOKENS,
-                org.apache.axis2.databinding.types.soapencoding.NMTOKENS.class.getName());
-        addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_ID,
-                org.apache.axis2.databinding.types.soapencoding.ID.class.getName());
-        addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_IDREF,
-                org.apache.axis2.databinding.types.soapencoding.IDREF.class.getName());
-        addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_ENTITY,
-                org.apache.axis2.databinding.types.soapencoding.ENTITY.class.getName());
-        addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_IDREFS,
-                org.apache.axis2.databinding.types.soapencoding.IDREFS.class.getName());
-        addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_ENTITIES,
-                org.apache.axis2.databinding.types.soapencoding.ENTITIES.class.getName());
-        addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_DECIMAL,
-                org.apache.axis2.databinding.types.soapencoding.Decimal.class.getName());
-        addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_INTEGER,
-                org.apache.axis2.databinding.types.soapencoding.Integer.class.getName());
-        addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_NONPOSITIVEINTEGER,
-                org.apache.axis2.databinding.types.soapencoding.NonPositiveInteger.class.getName());
-        addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_NEGATIVEINTEGER,
-                org.apache.axis2.databinding.types.soapencoding.NegativeInteger.class.getName());
-        addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_LONG,
-                org.apache.axis2.databinding.types.soapencoding._long.class.getName());
-        addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_INT,
-                org.apache.axis2.databinding.types.soapencoding._int.class.getName());
-        addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_SHORT,
-                org.apache.axis2.databinding.types.soapencoding._short.class.getName());
-        addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_BYTE,
-                org.apache.axis2.databinding.types.soapencoding._byte.class.getName());
-        addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_NONNEGATIVEINTEGER,
-                org.apache.axis2.databinding.types.soapencoding.NonNegativeInteger.class.getName());
-        addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_UNSIGNEDLONG,
-                org.apache.axis2.databinding.types.soapencoding.UnsignedLong.class.getName());
-        addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_UNSIGNEDINT,
-                org.apache.axis2.databinding.types.soapencoding.UnsignedInt.class.getName());
-        addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_UNSIGNEDSHORT,
-                org.apache.axis2.databinding.types.soapencoding.UnsignedShort.class.getName());
-        addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_UNSIGNEDBYTE,
-                org.apache.axis2.databinding.types.soapencoding.UnsignedByte.class.getName());
-        addSoapEncodingTypeMapping(SchemaConstants.SOAP_ENCODING_POSITIVEINTEGER,
-                org.apache.axis2.databinding.types.soapencoding.PositiveInteger.class.getName());
-    }
-
-    private static void addSoapEncodingTypeMapping(QName name, String className) {
-        soapEncodingTypeMap.put(name, className);
-    }
-
-
 }
diff --git a/modules/adb-codegen/src/org/apache/axis2/schema/typemap/TypeMap.java b/modules/adb-codegen/src/org/apache/axis2/schema/typemap/TypeMap.java
index 22cc7fe..2cc5fee 100644
--- a/modules/adb-codegen/src/org/apache/axis2/schema/typemap/TypeMap.java
+++ b/modules/adb-codegen/src/org/apache/axis2/schema/typemap/TypeMap.java
@@ -27,7 +27,5 @@
 public interface TypeMap {
 
     public Map getTypeMap();
-
-    public Map getSoapEncodingTypesMap();
     
 }
diff --git a/modules/adb-codegen/src/org/apache/axis2/schema/writer/JavaBeanWriter.java b/modules/adb-codegen/src/org/apache/axis2/schema/writer/JavaBeanWriter.java
index 4856dc2..a2f4a19 100644
--- a/modules/adb-codegen/src/org/apache/axis2/schema/writer/JavaBeanWriter.java
+++ b/modules/adb-codegen/src/org/apache/axis2/schema/writer/JavaBeanWriter.java
@@ -882,12 +882,6 @@
                 XSLTUtils.addAttribute(model, "innerchoice", "yes", property);
             }
             
-            if (metainf.isFixed()){
-                XSLTUtils.addAttribute(model, "fixed", "yes", property);
-            }
-
-
-
             if ((parentMetaInf != null) && metainf.isRestriction() && missingQNames.contains(name)) {
                 // this element details should be there with the parent meta Inf
                 addAttributesToProperty(
@@ -937,6 +931,10 @@
             XSLTUtils.addAttribute(model, "nillable", "yes", property);
         }
 
+        if (metainf.isFixed(name)){
+            XSLTUtils.addAttribute(model, "fixed", "yes", property);
+        }
+
         if (metainf.getOptionalAttributeStatusForQName(name)) {
             XSLTUtils.addAttribute(model, "optional", "yes", property);
         }
diff --git a/modules/adb-codegen/sub-build.xml b/modules/adb-codegen/sub-build.xml
deleted file mode 100644
index 8abc186..0000000
--- a/modules/adb-codegen/sub-build.xml
+++ /dev/null
@@ -1,127 +0,0 @@
-<?xml version="1.0"?>
-
-<!--
-  ~ Licensed to the Apache Software Foundation (ASF) under one
-  ~ or more contributor license agreements. See the NOTICE file
-  ~ distributed with this work for additional information
-  ~ regarding copyright ownership. The ASF licenses this file
-  ~ to you under the Apache License, Version 2.0 (the
-  ~ "License"); you may not use this file except in compliance
-  ~ with the License. You may obtain a copy of the License at
-  ~
-  ~ http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing,
-  ~ software distributed under the License is distributed on an
-  ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  ~ KIND, either express or implied. See the License for the
-  ~ specific language governing permissions and limitations
-  ~ under the License.
-  -->
-
-<project name="adb-codegen-test-source-generate" default="main" basedir=".">
-	<description>
-        Generate source code for tests...
-    </description>
-
-	<target name="main">
-
-		<property name="compiled.classes.dir" value="target/classes"/>
-		<!-- Theres got to be a better way to do this -->
-		<property name="schema.source.dir" value="test-resources/xsd"/>
-		<property name="testsuite.source.dir" value="test-resources/testsuite"/>
-		<property name="schema.output.base.dir" value="target/schema"/>
-		<property name="schema.generated.src.dir" value="${schema.output.base.dir}/src"/>
-		<property name="schema.generated.classes.dir" value="${schema.output.base.dir}/classes"/>
-		<!-- make the dirs -->
-		<mkdir dir="${schema.output.base.dir}"/>
-		<mkdir dir="${schema.generated.src.dir}"/>
-		<mkdir dir="${schema.generated.classes.dir}"/>
-		<!-- Run schema compiler with designated schemas -->
-		<java classname="org.apache.axis2.schema.XSD2Java" fork="true" failonerror="true">
-			<jvmarg line="${maven.junit.jvmargs}"/>
-			<classpath refid="maven.dependency.classpath"/>
-			<classpath location="${compiled.classes.dir}"/>
-			<arg file="${schema.source.dir}/simple_maxOccurs2.xsd"/>
-			<arg file="${schema.source.dir}/anonymous_complexType.xsd"/>
-			<arg file="${schema.source.dir}/simple_choice.xsd"/>
-			<arg file="${schema.source.dir}/simple_particle_all.xsd"/>
-			<arg file="${schema.source.dir}/simple_maxOccurs.xsd"/>
-			<arg file="${schema.source.dir}/simple_anytype.xsd"/>
-			<arg file="${schema.source.dir}/simple-minoccurs0.xsd"/>
-			<arg file="${schema.source.dir}/complex-minoccurs0.xsd"/>
-			<arg file="${schema.source.dir}/simple-recursive-datatypes.xsd"/>
-			<arg file="${schema.source.dir}/mixed_minoccus0.xsd"/>
-			<arg file="${schema.source.dir}/simple/simpleType-All.xsd"/>
-			<arg file="${schema.source.dir}/derived/derivedType-All.xsd"/>
-			<arg file="${testsuite.source.dir}/testsuite.xsd"/>
-			<arg file="${testsuite.source.dir}/extensions.xsd"/>
-			<arg file="${testsuite.source.dir}/union.xsd"/>
-			<arg file="${testsuite.source.dir}/all.xsd"/>
-			<arg file="${testsuite.source.dir}/enumeration.xsd"/>
-			<arg file="${testsuite.source.dir}/restrictions.xsd"/>
-			<arg file="${testsuite.source.dir}/choice.xsd"/>
-			<arg file="${testsuite.source.dir}/list.xsd"/>
-			<arg file="${testsuite.source.dir}/references.xsd"/>
-			<arg file="${testsuite.source.dir}/innerchoice.xsd"/>
-			<arg file="${testsuite.source.dir}/attribute.xsd"/>
-			<arg file="${testsuite.source.dir}/boolean.xsd"/>
-			<arg file="${testsuite.source.dir}/particlemaxoccurs.xsd"/>
-			<arg file="${testsuite.source.dir}/innerParticles.xsd"/>
-			<arg file="${testsuite.source.dir}/default_namespaces.xsd"/>
-			<arg file="${testsuite.source.dir}/groups.xsd"/>
-			<arg file="${testsuite.source.dir}/base64binary.xsd"/>
-			<arg file="${testsuite.source.dir}/abstract.xsd"/>
-			<arg file="${testsuite.source.dir}/decimal.xsd"/>
-			<arg file="${testsuite.source.dir}/anytype.xsd"/>
-			<arg file="${testsuite.source.dir}/innerParticleExtension.xsd"/>
-			<arg file="${testsuite.source.dir}/union2.xsd"/>
-			<arg file="${testsuite.source.dir}/default_value.xsd"/>
-			<arg file="${testsuite.source.dir}/complexExtension.xsd"/>
-			<arg file="${testsuite.source.dir}/soapencoding.xsd"/>
-			<arg file="${testsuite.source.dir}/chameleon.xsd"/>
-			<arg file="${testsuite.source.dir}/nonamespace.xsd"/> <!-- compile only; no tests -->
-			<arg file="${testsuite.source.dir}/unqualified.xsd"/>
-			<arg file="${testsuite.source.dir}/unqualified/companyservice.xsd"/>
-			<arg file="${testsuite.source.dir}/names.xsd"/> <!-- compile only; no tests -->
-			<arg file="${testsuite.source.dir}/std-schemas.xsd"/> <!-- compile only; no tests -->
-			<arg file="${schema.source.dir}/fixed_value.xsd"/>
-			<arg file="${schema.generated.src.dir}"/>
-		</java>
-		<java classname="org.apache.axis2.schema.XSD2Java" fork="true" failonerror="true">
-			<jvmarg line="${maven.junit.jvmargs}"/>
-			<classpath refid="maven.dependency.classpath"/>
-			<classpath location="${compiled.classes.dir}"/>
-			<arg value="-dp"/>
-			<arg value="org.apache.axis2.schema.nonamespace"/>
-			<arg value="-mp"/>
-			<arg value="org.apache.axis2.schema.nonamespace"/>
-			<arg file="${testsuite.source.dir}/nonamespace.xsd"/>
-			<arg file="${schema.generated.src.dir}"/>
-		</java>
-		<java classname="org.apache.axis2.schema.XSD2Java" fork="true" failonerror="true">
-			<jvmarg line="${maven.junit.jvmargs}"/>
-			<classpath refid="maven.dependency.classpath"/>
-			<classpath location="${compiled.classes.dir}"/>
-			<arg value="-p"/>
-			<arg value="helper."/>
-			<arg value="-h"/>
-			<arg file="${testsuite.source.dir}/testsuite.xsd"/>
-			<arg file="${testsuite.source.dir}/all.xsd"/>
-			<arg file="${testsuite.source.dir}/boolean.xsd"/>
-			<arg file="${testsuite.source.dir}/chameleon.xsd"/>
-			<arg file="${testsuite.source.dir}/choice.xsd"/>
-			<arg file="${testsuite.source.dir}/decimal.xsd"/>
-			<arg file="${testsuite.source.dir}/default_value.xsd"/>
-			<arg file="${testsuite.source.dir}/enumeration.xsd"/>
-			<arg file="${testsuite.source.dir}/groups.xsd"/>
-			<arg file="${testsuite.source.dir}/innerchoice.xsd"/>
-			<arg file="${testsuite.source.dir}/innerParticleExtension.xsd"/>
-			<arg file="${testsuite.source.dir}/unqualified.xsd"/>
-			<arg file="${testsuite.source.dir}/unqualified/companyservice.xsd"/>
-			<arg file="${testsuite.source.dir}/names.xsd"/> <!-- compile only; no tests -->
-			<arg file="${schema.generated.src.dir}"/>
-		</java>
-    </target>
-
-</project>
diff --git a/modules/adb-codegen/test-resources/testsuite/base64binary.xsd b/modules/adb-codegen/test-resources/testsuite/base64binary.xsd
index 8b8cd67..e7d1040 100644
--- a/modules/adb-codegen/test-resources/testsuite/base64binary.xsd
+++ b/modules/adb-codegen/test-resources/testsuite/base64binary.xsd
@@ -36,7 +36,7 @@
             </xs:complexType>
         </xs:element>
 
-        <xs:element name="TestBase64BinaryOnbounded">
+        <xs:element name="TestBase64BinaryUnbounded">
             <xs:complexType>
                 <xs:sequence>
                     <xs:element name="param" type="xs:base64Binary" maxOccurs="unbounded"/>
diff --git a/modules/adb-codegen/test-resources/testsuite/soapencoding.xsd b/modules/adb-codegen/test-resources/testsuite/soapencoding.xsd
deleted file mode 100644
index ca1a742..0000000
--- a/modules/adb-codegen/test-resources/testsuite/soapencoding.xsd
+++ /dev/null
@@ -1,43 +0,0 @@
-<!--
-  ~ Licensed to the Apache Software Foundation (ASF) under one
-  ~ or more contributor license agreements. See the NOTICE file
-  ~ distributed with this work for additional information
-  ~ regarding copyright ownership. The ASF licenses this file
-  ~ to you under the Apache License, Version 2.0 (the
-  ~ "License"); you may not use this file except in compliance
-  ~ with the License. You may obtain a copy of the License at
-  ~
-  ~ http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing,
-  ~ software distributed under the License is distributed on an
-  ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  ~ KIND, either express or implied. See the License for the
-  ~ specific language governing permissions and limitations
-  ~ under the License.
-  -->
-
-<s:schema elementFormDefault="qualified"
-          xmlns:s="http://www.w3.org/2001/XMLSchema"
-          xmlns:xsd="http://www.w3.org/2001/XMLSchema"
-          xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
-          xmlns:s0="http://apache.org/axis2/schema/soapencoding"
-          targetNamespace="http://apache.org/axis2/schema/soapencoding">
-
-    <s:element name="TestSoapElement1" type="soapenc:Array"/>
-    <s:element name="TestSoapElement2">
-        <s:complexType>
-            <s:sequence>
-                <s:element name="param1" type="s:string"/>
-                <s:element name="param2" type="soapenc:Array"/>
-            </s:sequence>
-        </s:complexType>
-    </s:element>
-    <s:complexType name="TestComplexType">
-        <s:sequence>
-            <s:element name="param1" type="s:string"/>
-            <s:element name="param2" type="s:int"/>
-        </s:sequence>
-    </s:complexType>
-
-</s:schema>
\ No newline at end of file
diff --git a/modules/adb-codegen/test/org/apache/axis2/schema/ExtensionUtilityTest.java b/modules/adb-codegen/test/org/apache/axis2/schema/ExtensionUtilityTest.java
index 09007b6..a59d5ca 100644
--- a/modules/adb-codegen/test/org/apache/axis2/schema/ExtensionUtilityTest.java
+++ b/modules/adb-codegen/test/org/apache/axis2/schema/ExtensionUtilityTest.java
@@ -23,12 +23,10 @@
 
 import java.io.ByteArrayOutputStream;
 import java.util.ArrayList;
-import java.util.HashMap;
 
 import javax.xml.namespace.QName;
 
 import org.apache.axis2.description.AxisService;
-import org.apache.axis2.util.CommandLineOption;
 import org.apache.axis2.wsdl.codegen.CodeGenConfiguration;
 import org.apache.axis2.wsdl.databinding.TypeMapper;
 import org.apache.ws.commons.schema.XmlSchema;
@@ -44,7 +42,7 @@
         loadSampleSchemaFile(schemas);
         AxisService service=new AxisService();
         service.addSchema(schemas);
-        CodeGenConfiguration configuration=new CodeGenConfiguration(new HashMap<String, CommandLineOption>());
+        CodeGenConfiguration configuration=new CodeGenConfiguration();
         configuration.addAxisService(service);
         ExtensionUtility.invoke(configuration);
         TypeMapper mapper=configuration.getTypeMapper();
diff --git a/modules/adb-codegen/test/org/apache/axis2/schema/compile/AbstractSchemaCompilerTester.java b/modules/adb-codegen/test/org/apache/axis2/schema/compile/AbstractSchemaCompilerTester.java
index 0764c5d..4365e24 100644
--- a/modules/adb-codegen/test/org/apache/axis2/schema/compile/AbstractSchemaCompilerTester.java
+++ b/modules/adb-codegen/test/org/apache/axis2/schema/compile/AbstractSchemaCompilerTester.java
@@ -41,7 +41,7 @@
     protected  XmlSchema currentSchema;
     protected File outputFolder = null;
 
-    private static String TEMP_OUT_FOLDER="temp_compile";
+    private static String TEMP_OUT_FOLDER="target/temp_compile";
 
     protected void setUp() throws Exception {
         //load the current Schema through a file
diff --git a/modules/adb-codegen/test/org/apache/axis2/schema/defaultnamespaces/DefaultNamespacesTest.java b/modules/adb-codegen/test/org/apache/axis2/schema/defaultnamespaces/DefaultNamespacesTest.java
deleted file mode 100644
index 2fa1dc8..0000000
--- a/modules/adb-codegen/test/org/apache/axis2/schema/defaultnamespaces/DefaultNamespacesTest.java
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.axis2.schema.defaultnamespaces;
-
-import junit.framework.TestCase;
-import org.apache.axiom.om.util.StAXUtils;
-
-import javax.xml.namespace.QName;
-import javax.xml.stream.XMLStreamException;
-import javax.xml.stream.XMLStreamReader;
-import javax.xml.stream.XMLStreamWriter;
-import java.io.ByteArrayInputStream;
-import java.io.StringWriter;
-
-public class DefaultNamespacesTest extends TestCase {
-    private static final String NS_URI = TestElement1.MY_QNAME.getNamespaceURI();
-
-    public void testTestElement1() {
-
-        TestElement1 testElement1 = new TestElement1();
-
-        TestChildType testChildType = new TestChildType();
-        testChildType.setParam1(new QName(NS_URI, "param1"));
-        testChildType.setParam2("Param2");
-        testChildType.setParam3(new QName(NS_URI, "param3"));
-        testChildType.setParam4("Param4");
-
-        TestSimpleUnion testSimpleUnion1 = new TestSimpleUnion();
-        testSimpleUnion1.setObject(new QName(NS_URI, "param5"));
-
-        testChildType.setParam5(testSimpleUnion1);
-
-        testChildType.setAttribute1("attribute1");
-        testChildType.setAttribute2(new QName(NS_URI, "attribute2"));
-
-        TestSimpleUnion testSimpleUnion2 = new TestSimpleUnion();
-        testSimpleUnion2.setObject(new QName(NS_URI, "attribute3"));
-
-
-        testElement1.setTestElement1(testChildType);
-        StringWriter stringWriter = new StringWriter();
-
-        try {
-
-            XMLStreamWriter xmlStreamWriter = StAXUtils.createXMLStreamWriter(stringWriter);
-            testElement1.getTestElement1().serialize(new QName(NS_URI, "TestElement1", "ns1"),
-                    xmlStreamWriter);
-            xmlStreamWriter.flush();
-            xmlStreamWriter.close();
-            String omElementString = stringWriter.toString();
-            System.out.println("OM String ==> " + omElementString);
-            XMLStreamReader xmlReader = StAXUtils.createXMLStreamReader(new ByteArrayInputStream(omElementString.getBytes()));
-            TestElement1 result = TestElement1.Factory.parse(xmlReader);
-            assertTrue(result.getTestElement1() instanceof TestChildType);
-            TestChildType resultType = (TestChildType) result.getTestElement1();
-            assertEquals(resultType.getParam1(), new QName(NS_URI, "param1"));
-            assertEquals(resultType.getParam2(), "Param2");
-            assertEquals(resultType.getParam3(), new QName(NS_URI, "param3"));
-            assertEquals(resultType.getParam4(), "Param4");
-            assertEquals(resultType.getAttribute1(), "attribute1");
-            assertEquals(resultType.getAttribute2(), new QName(NS_URI, "attribute2"));
-        } catch (XMLStreamException e) {
-            fail();
-        } catch (Exception e) {
-            e.printStackTrace();
-            fail();
-        }
-
-    }
-}
diff --git a/modules/adb-codegen/test/org/apache/axis2/schema/populate/other/ADBInOutTest.java b/modules/adb-codegen/test/org/apache/axis2/schema/populate/other/ADBInOutTest.java
deleted file mode 100644
index 5c9b39a..0000000
--- a/modules/adb-codegen/test/org/apache/axis2/schema/populate/other/ADBInOutTest.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.axis2.schema.populate.other;
-
-import junit.framework.TestCase;
-import org.apache.axiom.om.OMAbstractFactory;
-import org.apache.axiom.om.OMElement;
-import org.apache.axiom.om.impl.builder.StAXOMBuilder;
-import org.apache.axiom.soap.SOAPEnvelope;
-import org.apache.axiom.soap.SOAPFactory;
-
-import javax.xml.stream.XMLInputFactory;
-import javax.xml.stream.XMLStreamReader;
-import java.io.ByteArrayInputStream;
-
-public class ADBInOutTest extends TestCase {
-
-    private String xmlString = "<tempElt xmlns=\"http://soapinterop.org1/types\">" +
-            "hello" +
-            "</tempElt>";
-    private String xmlString2 = "<header1 xmlns=\"http://soapinterop.org1/types\">" +
-            "<varString>Hello</varString>" +
-            "<varInt>5</varInt>" +
-            "<varFloat>3.3</varFloat>" +
-            "</header1>";
-
-    public void testPopulate() throws Exception{
-
-        XMLStreamReader reader = XMLInputFactory.newInstance().createXMLStreamReader(new ByteArrayInputStream(xmlString.getBytes()));
-        SOAPEnvelope defaultEnvelope = OMAbstractFactory.getSOAP11Factory().getDefaultEnvelope();
-        OMElement documentElement = new StAXOMBuilder(reader).getDocumentElement();
-        defaultEnvelope.getBody().addChild(documentElement);
-        XMLStreamReader xmlStreamReader = defaultEnvelope.getBody().getFirstElement().getXMLStreamReader();
-        while(xmlStreamReader.hasNext()){
-            System.out.println("event " + xmlStreamReader.next());
-            System.out.println("text " +  (xmlStreamReader.hasText()?xmlStreamReader.getText():""));
-            System.out.println("localName " + (xmlStreamReader.hasName()?xmlStreamReader.getLocalName():""));
-        }
-    }
-
-    public void testPopulate2() throws Exception{
-
-        XMLStreamReader reader = XMLInputFactory.newInstance().createXMLStreamReader(new ByteArrayInputStream(xmlString.getBytes()));
-        XMLStreamReader reader2 = XMLInputFactory.newInstance().createXMLStreamReader(new ByteArrayInputStream(xmlString2.getBytes()));
-
-        SOAPFactory soap11Factory = OMAbstractFactory.getSOAP11Factory();
-
-        SOAPEnvelope defaultEnvelope = soap11Factory.getDefaultEnvelope();
-        OMElement documentElement = new StAXOMBuilder(reader).getDocumentElement();
-        defaultEnvelope.getBody().addChild(documentElement);
-
-        OMElement documentElement2 = new StAXOMBuilder(reader2).getDocumentElement();
-        defaultEnvelope.getHeader().addChild(documentElement2);
-
-        XMLStreamReader xmlStreamReader = defaultEnvelope.getBody().getFirstElement().getXMLStreamReader();
-        while(xmlStreamReader.hasNext()){
-            System.out.println("event " + xmlStreamReader.next());
-            System.out.println("text " +  (xmlStreamReader.hasText()?xmlStreamReader.getText():""));
-            System.out.println("localName " + (xmlStreamReader.hasName()?xmlStreamReader.getLocalName():""));
-        }
-    }
-}
diff --git a/modules/adb-codegen/test/org/apache/axis2/schema/soapencoding/SoapEncodingTest.java b/modules/adb-codegen/test/org/apache/axis2/schema/soapencoding/SoapEncodingTest.java
deleted file mode 100644
index 6679377..0000000
--- a/modules/adb-codegen/test/org/apache/axis2/schema/soapencoding/SoapEncodingTest.java
+++ /dev/null
@@ -1,261 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.axis2.schema.soapencoding;
-
-import junit.framework.TestCase;
-import org.apache.axiom.om.OMAbstractFactory;
-import org.apache.axiom.om.OMElement;
-import org.apache.axiom.om.util.StAXUtils;
-import org.apache.axis2.databinding.ADBException;
-import org.apache.axis2.databinding.types.soapencoding.Array;
-import org.apache.axis2.databinding.types.soapencoding._double;
-
-import javax.xml.namespace.QName;
-import javax.xml.stream.XMLStreamException;
-import javax.xml.stream.XMLStreamReader;
-import java.io.ByteArrayInputStream;
-import java.util.List;
-
-public class SoapEncodingTest extends TestCase {
-
-    public void testSoapElement11() {
-
-        Array array = new Array();
-        array.setArrayTypeQName(new QName("http://schemas.xmlsoap.org/soap/encoding/", "double"));
-        _double testDouble;
-        for (int i = 0; i < 10; i++) {
-            testDouble = new _double();
-            testDouble.set_double(23.45);
-            array.addObject(testDouble);
-        }
-        testSoapElement11(array);
-        testSoapElement21(array);
-    }
-
-    public void testSoapElement12() {
-
-        Array array = new Array();
-        _double testDouble;
-        for (int i = 0; i < 10; i++) {
-            testDouble = new _double();
-            testDouble.set_double(23.45);
-            array.addObject(testDouble);
-        }
-        testSoapElement11(array);
-        testSoapElement21(array);
-    }
-
-    public void testSoapElement13() {
-
-        Array array = new Array();
-        array.setArrayTypeQName(new QName("http://www.w3.org/2001/XMLSchema", "double"));
-        org.apache.axis2.databinding.types.xsd._double testDouble;
-        for (int i = 0; i < 10; i++) {
-            testDouble = new org.apache.axis2.databinding.types.xsd._double();
-            testDouble.set_double(23.45);
-            array.addObject(testDouble);
-        }
-        testSoapElement12(array);
-        testSoapElement22(array);
-    }
-
-    public void testSoapElement14() {
-
-        Array array = new Array();
-        org.apache.axis2.databinding.types.xsd._double testDouble;
-        for (int i = 0; i < 10; i++) {
-            testDouble = new org.apache.axis2.databinding.types.xsd._double();
-            testDouble.set_double(23.45);
-            array.addObject(testDouble);
-        }
-        testSoapElement12(array);
-        testSoapElement22(array);
-    }
-
-    public void testSoapElement15() {
-
-        Array array = new Array();
-        array.setArrayTypeQName(new QName("http://apache.org/axis2/schema/soapencoding", "TestComplexType"));
-        TestComplexType testComplexType;
-        for (int i = 0; i < 10; i++) {
-            testComplexType = new TestComplexType();
-            testComplexType.setParam1("Param1");
-            testComplexType.setParam2(2);
-            array.addObject(testComplexType);
-        }
-        testSoapElement31(array);
-    }
-
-    public void testSoapElement16() {
-
-        Array array = new Array();
-        TestComplexType testComplexType;
-        for (int i = 0; i < 10; i++) {
-            testComplexType = new TestComplexType();
-            testComplexType.setParam1("Param1");
-            testComplexType.setParam2(2);
-            array.addObject(testComplexType);
-        }
-        testSoapElement31(array);
-    }
-
-    private void testSoapElement11(Array array) {
-        TestSoapElement1 testSoapElement1 = new TestSoapElement1();
-        testSoapElement1.setTestSoapElement1(array);
-
-        try {
-            OMElement omElement = testSoapElement1.getOMElement(
-                    TestSoapElement1.MY_QNAME, OMAbstractFactory.getOMFactory());
-            String omElementString = omElement.toStringWithConsume();
-            System.out.println("OM String ==>" + omElementString);
-            XMLStreamReader xmlReader = StAXUtils.createXMLStreamReader(
-                    new ByteArrayInputStream(omElementString.getBytes()));
-            TestSoapElement1 result = TestSoapElement1.Factory.parse(xmlReader);
-            List resultList = result.getTestSoapElement1().getObjectList();
-            for (int i = 0; i < array.getObjectList().size(); i++) {
-                assertEquals(((_double) resultList.get(i)).get_double(),
-                        ((_double) array.getObjectList().get(i)).get_double(),0.001);
-            }
-        } catch (ADBException e) {
-            fail();
-        } catch (XMLStreamException e) {
-            fail();
-        } catch (Exception e) {
-            e.printStackTrace();
-            fail();
-        }
-    }
-
-     private void testSoapElement21(Array array) {
-        TestSoapElement2 testSoapElement2 = new TestSoapElement2();
-        testSoapElement2.setParam1("test param");
-        testSoapElement2.setParam2(array);
-
-        try {
-            OMElement omElement = testSoapElement2.getOMElement(
-                    TestSoapElement1.MY_QNAME, OMAbstractFactory.getOMFactory());
-            String omElementString = omElement.toStringWithConsume();
-            System.out.println("OM String ==>" + omElementString);
-            XMLStreamReader xmlReader = StAXUtils.createXMLStreamReader(
-                    new ByteArrayInputStream(omElementString.getBytes()));
-            TestSoapElement2 result = TestSoapElement2.Factory.parse(xmlReader);
-            assertEquals(result.getParam1(),"test param");
-            List resultList = result.getParam2().getObjectList();
-            for (int i = 0; i < array.getObjectList().size(); i++) {
-                assertEquals(((_double) resultList.get(i)).get_double(),
-                        ((_double) array.getObjectList().get(i)).get_double(),0.001);
-            }
-        } catch (ADBException e) {
-            fail();
-        } catch (XMLStreamException e) {
-            fail();
-        } catch (Exception e) {
-            e.printStackTrace();
-            fail();
-        }
-    }
-
-    private void testSoapElement12(Array array) {
-        TestSoapElement1 testSoapElement1 = new TestSoapElement1();
-        testSoapElement1.setTestSoapElement1(array);
-
-        try {
-            OMElement omElement = testSoapElement1.getOMElement(
-                    TestSoapElement1.MY_QNAME, OMAbstractFactory.getOMFactory());
-            String omElementString = omElement.toStringWithConsume();
-            System.out.println("OM String ==>" + omElementString);
-            XMLStreamReader xmlReader = StAXUtils.createXMLStreamReader(
-                    new ByteArrayInputStream(omElementString.getBytes()));
-            TestSoapElement1 result = TestSoapElement1.Factory.parse(xmlReader);
-            List resultList = result.getTestSoapElement1().getObjectList();
-            for (int i = 0; i < array.getObjectList().size(); i++) {
-                assertEquals(((org.apache.axis2.databinding.types.xsd._double) resultList.get(i)).get_double(),
-                        ((org.apache.axis2.databinding.types.xsd._double) array.getObjectList().get(i)).get_double(),0.001);
-            }
-        } catch (ADBException e) {
-            fail();
-        } catch (XMLStreamException e) {
-            fail();
-        } catch (Exception e) {
-            e.printStackTrace();
-            fail();
-        }
-    }
-
-    private void testSoapElement22(Array array) {
-        TestSoapElement2 testSoapElement2 = new TestSoapElement2();
-        testSoapElement2.setParam1("test param");
-        testSoapElement2.setParam2(array);
-
-        try {
-            OMElement omElement = testSoapElement2.getOMElement(
-                    TestSoapElement1.MY_QNAME, OMAbstractFactory.getOMFactory());
-            String omElementString = omElement.toStringWithConsume();
-            System.out.println("OM String ==>" + omElementString);
-            XMLStreamReader xmlReader = StAXUtils.createXMLStreamReader(
-                    new ByteArrayInputStream(omElementString.getBytes()));
-            TestSoapElement2 result = TestSoapElement2.Factory.parse(xmlReader);
-            assertEquals(result.getParam1(),"test param");
-            List resultList = result.getParam2().getObjectList();
-            for (int i = 0; i < array.getObjectList().size(); i++) {
-                assertEquals(((org.apache.axis2.databinding.types.xsd._double) resultList.get(i)).get_double(),
-                        ((org.apache.axis2.databinding.types.xsd._double) array.getObjectList().get(i)).get_double(),0.001);
-            }
-        } catch (ADBException e) {
-            fail();
-        } catch (XMLStreamException e) {
-            fail();
-        } catch (Exception e) {
-            e.printStackTrace();
-            fail();
-        }
-    }
-
-    private void testSoapElement31(Array array) {
-        TestSoapElement1 testSoapElement1 = new TestSoapElement1();
-        testSoapElement1.setTestSoapElement1(array);
-
-        try {
-            OMElement omElement = testSoapElement1.getOMElement(
-                    TestSoapElement1.MY_QNAME, OMAbstractFactory.getOMFactory());
-            String omElementString = omElement.toStringWithConsume();
-            System.out.println("OM String ==>" + omElementString);
-            XMLStreamReader xmlReader = StAXUtils.createXMLStreamReader(
-                    new ByteArrayInputStream(omElementString.getBytes()));
-            TestSoapElement1 result = TestSoapElement1.Factory.parse(xmlReader);
-            List resultList = result.getTestSoapElement1().getObjectList();
-            TestComplexType testComplexType = null;
-            for (int i = 0; i < resultList.size(); i++) {
-                testComplexType = (TestComplexType) resultList.get(i);
-                assertEquals(testComplexType.getParam1(),"Param1");
-                assertEquals(testComplexType.getParam2(),2);
-            }
-        } catch (ADBException e) {
-            fail();
-        } catch (XMLStreamException e) {
-            fail();
-        } catch (Exception e) {
-            e.printStackTrace();
-            fail();
-        }
-    }
-
-
-}
diff --git a/modules/adb-tests/pom.xml b/modules/adb-tests/pom.xml
new file mode 100644
index 0000000..34ce561
--- /dev/null
+++ b/modules/adb-tests/pom.xml
@@ -0,0 +1,520 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  ~ Licensed to the Apache Software Foundation (ASF) under one
+  ~ or more contributor license agreements. See the NOTICE file
+  ~ distributed with this work for additional information
+  ~ regarding copyright ownership. The ASF licenses this file
+  ~ to you under the Apache License, Version 2.0 (the
+  ~ "License"); you may not use this file except in compliance
+  ~ with the License. You may obtain a copy of the License at
+  ~
+  ~ http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing,
+  ~ software distributed under the License is distributed on an
+  ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  ~ KIND, either express or implied. See the License for the
+  ~ specific language governing permissions and limitations
+  ~ under the License.
+  -->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.apache.axis2</groupId>
+        <artifactId>axis2</artifactId>
+        <version>1.8.0-SNAPSHOT</version>
+        <relativePath>../../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>axis2-adb-tests</artifactId>
+    <name>Apache Axis2 - ADB Tests</name>
+    <description>ADB Tests</description>
+    <url>http://axis.apache.org/axis2/java/core/</url>
+    <scm>
+        <connection>scm:svn:http://svn.apache.org/repos/asf/axis/axis2/java/core/trunk/modules/adb-tests</connection>
+        <developerConnection>scm:svn:https://svn.apache.org/repos/asf/axis/axis2/java/core/trunk/modules/adb-tests</developerConnection>
+        <url>http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/adb-tests</url>
+    </scm>
+    <dependencies>
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>axis2-adb</artifactId>
+            <version>${project.version}</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>axis2-transport-local</artifactId>
+            <version>${project.version}</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>axis2-transport-http</artifactId>
+            <version>${project.version}</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>xmlunit</groupId>
+            <artifactId>xmlunit</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.ws.commons.axiom</groupId>
+            <artifactId>testutils</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>axis2-testutils</artifactId>
+            <version>${project.version}</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>com.sun.xml.ws</groupId>
+            <artifactId>jaxws-rt</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.mockito</groupId>
+            <artifactId>mockito-core</artifactId>
+            <scope>test</scope>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>${project.groupId}</groupId>
+                <artifactId>axis2-xsd2java-maven-plugin</artifactId>
+                <version>${project.version}</version>
+                <executions>
+                    <execution>
+                        <id>xsd2java</id>
+                        <goals>
+                            <goal>generate-test-sources</goal>
+                        </goals>
+                        <configuration>
+                            <xsdFiles>
+                                <xsdFile>../adb-codegen/test-resources/xsd/simple_maxOccurs2.xsd</xsdFile>
+                                <xsdFile>../adb-codegen/test-resources/xsd/anonymous_complexType.xsd</xsdFile>
+                                <xsdFile>../adb-codegen/test-resources/xsd/simple_choice.xsd</xsdFile>
+                                <xsdFile>../adb-codegen/test-resources/xsd/simple_particle_all.xsd</xsdFile>
+                                <xsdFile>../adb-codegen/test-resources/xsd/simple_maxOccurs.xsd</xsdFile>
+                                <xsdFile>../adb-codegen/test-resources/xsd/simple_anytype.xsd</xsdFile>
+                                <xsdFile>../adb-codegen/test-resources/xsd/simple-minoccurs0.xsd</xsdFile>
+                                <xsdFile>../adb-codegen/test-resources/xsd/complex-minoccurs0.xsd</xsdFile>
+                                <xsdFile>../adb-codegen/test-resources/xsd/simple-recursive-datatypes.xsd</xsdFile>
+                                <xsdFile>../adb-codegen/test-resources/xsd/mixed_minoccus0.xsd</xsdFile>
+                                <xsdFile>../adb-codegen/test-resources/xsd/simple/simpleType-All.xsd</xsdFile>
+                                <xsdFile>../adb-codegen/test-resources/xsd/derived/derivedType-All.xsd</xsdFile>
+                                <xsdFile>../adb-codegen/test-resources/testsuite/testsuite.xsd</xsdFile>
+                                <xsdFile>../adb-codegen/test-resources/testsuite/extensions.xsd</xsdFile>
+                                <xsdFile>../adb-codegen/test-resources/testsuite/union.xsd</xsdFile>
+                                <xsdFile>../adb-codegen/test-resources/testsuite/all.xsd</xsdFile>
+                                <xsdFile>../adb-codegen/test-resources/testsuite/enumeration.xsd</xsdFile>
+                                <xsdFile>../adb-codegen/test-resources/testsuite/restrictions.xsd</xsdFile>
+                                <xsdFile>../adb-codegen/test-resources/testsuite/choice.xsd</xsdFile>
+                                <xsdFile>../adb-codegen/test-resources/testsuite/list.xsd</xsdFile>
+                                <xsdFile>../adb-codegen/test-resources/testsuite/references.xsd</xsdFile>
+                                <xsdFile>../adb-codegen/test-resources/testsuite/innerchoice.xsd</xsdFile>
+                                <xsdFile>../adb-codegen/test-resources/testsuite/attribute.xsd</xsdFile>
+                                <xsdFile>../adb-codegen/test-resources/testsuite/boolean.xsd</xsdFile>
+                                <xsdFile>../adb-codegen/test-resources/testsuite/particlemaxoccurs.xsd</xsdFile>
+                                <xsdFile>../adb-codegen/test-resources/testsuite/innerParticles.xsd</xsdFile>
+                                <xsdFile>../adb-codegen/test-resources/testsuite/default_namespaces.xsd</xsdFile>
+                                <xsdFile>../adb-codegen/test-resources/testsuite/groups.xsd</xsdFile>
+                                <xsdFile>../adb-codegen/test-resources/testsuite/base64binary.xsd</xsdFile>
+                                <xsdFile>../adb-codegen/test-resources/testsuite/abstract.xsd</xsdFile>
+                                <xsdFile>../adb-codegen/test-resources/testsuite/decimal.xsd</xsdFile>
+                                <xsdFile>../adb-codegen/test-resources/testsuite/anytype.xsd</xsdFile>
+                                <xsdFile>../adb-codegen/test-resources/testsuite/innerParticleExtension.xsd</xsdFile>
+                                <xsdFile>../adb-codegen/test-resources/testsuite/union2.xsd</xsdFile>
+                                <xsdFile>../adb-codegen/test-resources/testsuite/default_value.xsd</xsdFile>
+                                <xsdFile>../adb-codegen/test-resources/testsuite/complexExtension.xsd</xsdFile>
+                                <xsdFile>../adb-codegen/test-resources/testsuite/chameleon.xsd</xsdFile>
+                                <xsdFile>../adb-codegen/test-resources/testsuite/nonamespace.xsd</xsdFile> <!-- compile only; no tests -->
+                                <xsdFile>../adb-codegen/test-resources/testsuite/unqualified.xsd</xsdFile>
+                                <xsdFile>../adb-codegen/test-resources/testsuite/unqualified/companyservice.xsd</xsdFile>
+                                <xsdFile>../adb-codegen/test-resources/testsuite/names.xsd</xsdFile> <!-- compile only; no tests -->
+                                <xsdFile>../adb-codegen/test-resources/testsuite/std-schemas.xsd</xsdFile> <!-- compile only; no tests -->
+                                <xsdFile>../adb-codegen/test-resources/xsd/fixed_value.xsd</xsdFile>
+                            </xsdFiles>
+                        </configuration>
+                    </execution>
+                    <execution>
+                        <id>xsd2java-nonamespace</id>
+                        <goals>
+                            <goal>generate-test-sources</goal>
+                        </goals>
+                        <configuration>
+                            <xsdFiles>
+                                <xsdFile>../adb-codegen/test-resources/testsuite/nonamespace.xsd</xsdFile>
+                            </xsdFiles>
+                            <noNamespacePackageName>org.apache.axis2.schema.nonamespace</noNamespacePackageName>
+                            <mapperClassPackage>org.apache.axis2.schema.nonamespace</mapperClassPackage>
+                        </configuration>
+                    </execution>
+                    <execution>
+                        <id>xsd2java-helper-mode</id>
+                        <goals>
+                            <goal>generate-test-sources</goal>
+                        </goals>
+                        <configuration>
+                            <xsdFiles>
+                                <xsdFile>../adb-codegen/test-resources/testsuite/testsuite.xsd</xsdFile>
+                                <xsdFile>../adb-codegen/test-resources/testsuite/all.xsd</xsdFile>
+                                <xsdFile>../adb-codegen/test-resources/testsuite/boolean.xsd</xsdFile>
+                                <xsdFile>../adb-codegen/test-resources/testsuite/chameleon.xsd</xsdFile>
+                                <xsdFile>../adb-codegen/test-resources/testsuite/choice.xsd</xsdFile>
+                                <xsdFile>../adb-codegen/test-resources/testsuite/decimal.xsd</xsdFile>
+                                <xsdFile>../adb-codegen/test-resources/testsuite/default_value.xsd</xsdFile>
+                                <xsdFile>../adb-codegen/test-resources/testsuite/enumeration.xsd</xsdFile>
+                                <xsdFile>../adb-codegen/test-resources/testsuite/groups.xsd</xsdFile>
+                                <xsdFile>../adb-codegen/test-resources/testsuite/innerchoice.xsd</xsdFile>
+                                <xsdFile>../adb-codegen/test-resources/testsuite/innerParticleExtension.xsd</xsdFile>
+                                <xsdFile>../adb-codegen/test-resources/testsuite/unqualified.xsd</xsdFile>
+                                <xsdFile>../adb-codegen/test-resources/testsuite/unqualified/companyservice.xsd</xsdFile>
+                                <xsdFile>../adb-codegen/test-resources/testsuite/names.xsd</xsdFile> <!-- compile only; no tests -->
+                            </xsdFiles>
+                            <helperMode>true</helperMode>
+                            <packageName>helper.</packageName>
+                        </configuration>
+                    </execution>
+                    <execution>
+                        <id>xsd2java-axis2-5771</id>
+                        <goals>
+                            <goal>generate-test-sources</goal>
+                        </goals>
+                        <configuration>
+                            <xsdFiles>
+                                <xsdFile>src/test/xsd/AXIS2-5771.xsd</xsdFile>
+                            </xsdFiles>
+                            <ignoreUnexpected>true</ignoreUnexpected>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+            <plugin>
+                <groupId>${project.groupId}</groupId>
+                <artifactId>axis2-wsdl2code-maven-plugin</artifactId>
+                <version>${project.version}</version>
+                <executions>
+                    <execution>
+                        <id>wsdl2code-mtom</id>
+                        <goals>
+                            <goal>generate-test-sources</goal>
+                        </goals>
+                        <configuration>
+                            <wsdlFile>src/test/wsdl/MTOMService.wsdl</wsdlFile>
+                            <syncMode>sync</syncMode>
+                            <packageName>org.apache.axis2.databinding.mtom.client</packageName>
+                            <outputDirectory>${project.build.directory}/wsdl2code/mtom</outputDirectory>
+                        </configuration>
+                    </execution>
+                    <execution>
+                        <id>wsdl2code-axis2-5741</id>
+                        <goals>
+                            <goal>generate-test-sources</goal>
+                        </goals>
+                        <configuration>
+                            <wsdlFile>src/test/wsdl/AXIS2-5741.wsdl</wsdlFile>
+                            <packageName>org.apache.axis2.databinding.axis2_5741.service</packageName>
+                            <generateServerSide>true</generateServerSide>
+                            <generateServicesXml>true</generateServicesXml>
+                            <outputDirectory>${project.build.directory}/wsdl2code/AXIS2-5741</outputDirectory>
+                        </configuration>
+                    </execution>
+                    <execution>
+                        <id>wsdl2code-axis2-5749</id>
+                        <goals>
+                            <goal>generate-test-sources</goal>
+                        </goals>
+                        <configuration>
+                            <wsdlFile>src/test/wsdl/AXIS2-5749.wsdl</wsdlFile>
+                            <packageName>org.apache.axis2.databinding.axis2_5749.service</packageName>
+                            <generateServerSide>true</generateServerSide>
+                            <generateServicesXml>true</generateServicesXml>
+                            <outputDirectory>${project.build.directory}/wsdl2code/AXIS2-5749</outputDirectory>
+                        </configuration>
+                    </execution>
+                    <execution>
+                        <id>wsdl2code-axis2-5750</id>
+                        <goals>
+                            <goal>generate-test-sources</goal>
+                        </goals>
+                        <configuration>
+                            <wsdlFile>src/test/wsdl/AXIS2-5750.wsdl</wsdlFile>
+                            <syncMode>sync</syncMode>
+                            <unpackClasses>true</unpackClasses>
+                            <namespaceMappings>
+                                <namespaceMapping>
+                                    <uri>http://ise-online.com/FixedValueService/</uri>
+                                    <packageName>org.apache.axis2.databinding.axis2_5750.client</packageName>
+                                </namespaceMapping>
+                            </namespaceMappings>
+                            <packageName>org.apache.axis2.databinding.axis2_5750.client</packageName>
+                            <outputDirectory>${project.build.directory}/wsdl2code/AXIS2-5750</outputDirectory>
+                        </configuration>
+                    </execution>
+                    <execution>
+                        <id>wsdl2code-axis2-5758</id>
+                        <goals>
+                            <goal>generate-test-sources</goal>
+                        </goals>
+                        <configuration>
+                            <wsdlFile>src/test/wsdl/AXIS2-5758.wsdl</wsdlFile>
+                            <syncMode>sync</syncMode>
+                            <unpackClasses>true</unpackClasses>
+                            <namespaceMappings>
+                                <namespaceMapping>
+                                    <uri>http://example.com/stockquote.xsd</uri>
+                                    <packageName>org.apache.axis2.databinding.axis2_5758.client</packageName>
+                                </namespaceMapping>
+                            </namespaceMappings>
+                            <packageName>org.apache.axis2.databinding.axis2_5758.client</packageName>
+                            <outputDirectory>${project.build.directory}/wsdl2code/AXIS2-5758</outputDirectory>
+                        </configuration>
+                    </execution>
+                    <execution>
+                        <id>wsdl2code-axis2-5799</id>
+                        <goals>
+                            <goal>generate-test-sources</goal>
+                        </goals>
+                        <configuration>
+                            <wsdlFile>src/test/wsdl/AXIS2-5799.wsdl</wsdlFile>
+                            <syncMode>sync</syncMode>
+                            <unpackClasses>true</unpackClasses>
+                            <namespaceMappings>
+                                <namespaceMapping>
+                                    <uri>urn:echo</uri>
+                                    <packageName>org.apache.axis2.databinding.axis2_5799.client</packageName>
+                                </namespaceMapping>
+                            </namespaceMappings>
+                            <packageName>org.apache.axis2.databinding.axis2_5799.client</packageName>
+                            <outputDirectory>${project.build.directory}/wsdl2code/AXIS2-5799</outputDirectory>
+                        </configuration>
+                    </execution>
+                    <execution>
+                        <id>wsdl2code-axis2-5809</id>
+                        <goals>
+                            <goal>generate-test-sources</goal>
+                        </goals>
+                        <configuration>
+                            <wsdlFile>src/test/wsdl/AXIS2-5809.wsdl</wsdlFile>
+                            <syncMode>sync</syncMode>
+                            <unpackClasses>true</unpackClasses>
+                            <namespaceMappings>
+                                <namespaceMapping>
+                                    <uri>http://apache.org/axis2/echo</uri>
+                                    <packageName>org.apache.axis2.databinding.axis2_5809</packageName>
+                                </namespaceMapping>
+                            </namespaceMappings>
+                            <packageName>org.apache.axis2.databinding.axis2_5809</packageName>
+                            <generateServerSide>true</generateServerSide>
+                            <generateAllClasses>true</generateAllClasses>
+                            <generateServicesXml>true</generateServicesXml>
+                            <outputDirectory>${project.build.directory}/wsdl2code/AXIS2-5809</outputDirectory>
+                        </configuration>
+                    </execution>
+                    <execution>
+                        <id>wsdl2code-axis2-5887</id>
+                        <goals>
+                            <goal>generate-test-sources</goal>
+                        </goals>
+                        <configuration>
+                            <wsdlFile>src/test/wsdl/AXIS2-5887.wsdl</wsdlFile>
+                            <syncMode>sync</syncMode>
+                            <unpackClasses>true</unpackClasses>
+                            <namespaceMappings>
+                                <namespaceMapping>
+                                    <uri>webservice/xtc/plugins/Speed4Trade/com</uri>
+                                    <packageName>org.apache.axis2.databinding.axis2_5887.client</packageName>
+                                </namespaceMapping>
+                            </namespaceMappings>
+                            <packageName>org.apache.axis2.databinding.axis2_5887.client</packageName>
+                            <outputDirectory>${project.build.directory}/wsdl2code/AXIS2-5887</outputDirectory>
+                        </configuration>
+                    </execution>
+                </executions>
+                <configuration>
+                    <databindingName>adb</databindingName>
+                </configuration>
+            </plugin>
+            <plugin>
+                <artifactId>maven-resources-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <phase>generate-test-resources</phase>
+                        <goals>
+                            <goal>copy-resources</goal>
+                        </goals>
+                        <configuration>
+                            <outputDirectory>${project.build.directory}/repo</outputDirectory>
+                            <resources>
+                                <resource>
+                                    <directory>src/test/repo</directory>
+                                    <filtering>false</filtering>
+                                </resource>
+                            </resources>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+            <plugin>
+                <groupId>org.codehaus.mojo</groupId>
+                <artifactId>xml-maven-plugin</artifactId>
+                <version>1.0.1</version>
+                <executions>
+                    <execution>
+                        <phase>generate-test-resources</phase>
+                        <goals>
+                            <goal>transform</goal>
+                        </goals>
+                        <configuration>
+                            <transformationSets>
+                                <transformationSet>
+                                    <dir>${project.build.directory}/wsdl2code/AXIS2-5741/resources</dir>
+                                    <includes>
+                                        <include>services.xml</include>
+                                    </includes>
+                                    <stylesheet>src/test/xslt/AXIS2-5741.xsl</stylesheet>
+                                    <outputDir>${project.build.directory}/repo/AXIS2-5741/services/FiverxLinkService/META-INF</outputDir>
+                                </transformationSet>
+                                <transformationSet>
+                                    <dir>${project.build.directory}/wsdl2code/AXIS2-5749/resources</dir>
+                                    <includes>
+                                        <include>services.xml</include>
+                                    </includes>
+                                    <stylesheet>src/test/xslt/AXIS2-5749.xsl</stylesheet>
+                                    <outputDir>${project.build.directory}/repo/AXIS2-5749/services/ColorService/META-INF</outputDir>
+                                </transformationSet>
+                                <transformationSet>
+                                    <dir>${project.build.directory}/wsdl2code/AXIS2-5809/resources</dir>
+                                    <includes>
+                                        <include>services.xml</include>
+                                    </includes>
+                                    <stylesheet>src/test/xslt/AXIS2-5809.xsl</stylesheet>
+                                    <outputDir>${project.build.directory}/repo/AXIS2-5809/services/EchoService/META-INF</outputDir>
+                                </transformationSet>
+                            </transformationSets>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+            <plugin>
+                <groupId>org.codehaus.mojo</groupId>
+                <artifactId>jaxws-maven-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <id>wsimport-mtom</id>
+                        <goals>
+                            <goal>wsimport-test</goal>
+                        </goals>
+                        <configuration>
+                            <wsdlFiles>
+                                <wsdlFile>${basedir}/src/test/wsdl/MTOMService.wsdl</wsdlFile>
+                            </wsdlFiles>
+                            <packageName>org.apache.axis2.databinding.mtom.service</packageName>
+                        </configuration>
+                    </execution>
+                    <execution>
+                        <id>wsimport-axis2-5741</id>
+                        <goals>
+                            <goal>wsimport-test</goal>
+                        </goals>
+                        <configuration>
+                            <wsdlFiles>
+                                <wsdlFile>${basedir}/src/test/wsdl/AXIS2-5741.wsdl</wsdlFile>
+                            </wsdlFiles>
+                            <packageName>org.apache.axis2.databinding.axis2_5741.client</packageName>
+                        </configuration>
+                    </execution>
+                    <execution>
+                        <id>wsimport-axis2-5749</id>
+                        <goals>
+                            <goal>wsimport-test</goal>
+                        </goals>
+                        <configuration>
+                            <wsdlFiles>
+                                <wsdlFile>${basedir}/src/test/wsdl/AXIS2-5749.wsdl</wsdlFile>
+                            </wsdlFiles>
+                            <packageName>org.apache.axis2.databinding.axis2_5749.client</packageName>
+                        </configuration>
+                    </execution>
+                    <execution>
+                        <id>wsimport-axis2-5750</id>
+                        <goals>
+                            <goal>wsimport-test</goal>
+                        </goals>
+                        <configuration>
+                            <wsdlFiles>
+                                <wsdlFile>${basedir}/src/test/wsdl/AXIS2-5750.wsdl</wsdlFile>
+                            </wsdlFiles>
+                            <packageName>org.apache.axis2.databinding.axis2_5750.service</packageName>
+                        </configuration>
+                    </execution>
+                    <execution>
+                        <id>wsimport-axis2-5758</id>
+                        <goals>
+                            <goal>wsimport-test</goal>
+                        </goals>
+                        <configuration>
+                            <wsdlFiles>
+                                <wsdlFile>${basedir}/src/test/wsdl/AXIS2-5758.wsdl</wsdlFile>
+                            </wsdlFiles>
+                            <packageName>org.apache.axis2.databinding.axis2_5758.service</packageName>
+                        </configuration>
+                    </execution>
+                    <execution>
+                        <id>wsimport-axis2-5799</id>
+                        <goals>
+                            <goal>wsimport-test</goal>
+                        </goals>
+                        <configuration>
+                            <wsdlFiles>
+                                <wsdlFile>${basedir}/src/test/wsdl/AXIS2-5799.wsdl</wsdlFile>
+                            </wsdlFiles>
+                            <packageName>org.apache.axis2.databinding.axis2_5799.service</packageName>
+                        </configuration>
+                    </execution>
+                </executions>
+                <dependencies>
+                    <dependency>
+                        <groupId>com.sun.xml.ws</groupId>
+                        <artifactId>jaxws-tools</artifactId>
+                        <version>${jaxws.tools.version}</version>
+                    </dependency>
+                </dependencies>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-compiler-plugin</artifactId>
+                <configuration>
+                    <testExcludes>
+                        <exclude>helper/org/apache/axis2/schema/testsuite/TestAnyType*Helper.java</exclude>
+                    </testExcludes>
+                </configuration>
+            </plugin>
+            <plugin>
+                <artifactId>maven-surefire-plugin</artifactId>
+                <inherited>true</inherited>
+                <configuration>
+                    <excludes>
+                        <exclude>org/apache/axis2/schema/innerparticleextension/TestInnerParticleExtension.java</exclude>
+                    </excludes>
+                </configuration>
+            </plugin>
+            <plugin>
+                <artifactId>maven-deploy-plugin</artifactId>
+                <configuration>
+                    <skip>true</skip>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+</project>
diff --git a/modules/adb-codegen/test/helper/org/apache/axis2/schema/testsuite/TrackerTest.java b/modules/adb-tests/src/test/java/helper/org/apache/axis2/schema/testsuite/TrackerTest.java
similarity index 100%
rename from modules/adb-codegen/test/helper/org/apache/axis2/schema/testsuite/TrackerTest.java
rename to modules/adb-tests/src/test/java/helper/org/apache/axis2/schema/testsuite/TrackerTest.java
diff --git a/modules/adb-tests/src/test/java/org/apache/axis2/databinding/axis2_5741/ServiceTest.java b/modules/adb-tests/src/test/java/org/apache/axis2/databinding/axis2_5741/ServiceTest.java
new file mode 100644
index 0000000..387b29c
--- /dev/null
+++ b/modules/adb-tests/src/test/java/org/apache/axis2/databinding/axis2_5741/ServiceTest.java
@@ -0,0 +1,43 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.axis2.databinding.axis2_5741;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import javax.xml.ws.BindingProvider;
+
+import org.apache.axis2.databinding.axis2_5741.client.FiverxLinkService;
+import org.apache.axis2.databinding.axis2_5741.client.FiverxLinkService_Service;
+import org.apache.axis2.testutils.Axis2Server;
+import org.junit.ClassRule;
+import org.junit.Test;
+
+public class ServiceTest {
+    @ClassRule
+    public static Axis2Server server = new Axis2Server("target/repo/AXIS2-5741");
+    
+    @Test
+    public void test() throws Exception {
+        FiverxLinkService client = new FiverxLinkService_Service().getFiverxLinkServicePort();
+        ((BindingProvider)client).getRequestContext().put(
+                BindingProvider.ENDPOINT_ADDRESS_PROPERTY,
+                server.getEndpoint("FiverxLinkService"));
+        assertThat(client.ladeRzVersion("test")).isEqualTo("test result");
+    }
+}
diff --git a/modules/adb-tests/src/test/java/org/apache/axis2/databinding/axis2_5741/service/FiverxLinkServiceImpl.java b/modules/adb-tests/src/test/java/org/apache/axis2/databinding/axis2_5741/service/FiverxLinkServiceImpl.java
new file mode 100644
index 0000000..3d3057a
--- /dev/null
+++ b/modules/adb-tests/src/test/java/org/apache/axis2/databinding/axis2_5741/service/FiverxLinkServiceImpl.java
@@ -0,0 +1,34 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.axis2.databinding.axis2_5741.service;
+
+import de.fiverx.spec.abrechnungsservice.types.LadeRzVersionE;
+import de.fiverx.spec.abrechnungsservice.types.LadeRzVersionResponse;
+import de.fiverx.spec.abrechnungsservice.types.LadeRzVersionResponseE;
+
+public class FiverxLinkServiceImpl extends FiverxLinkServiceSkeleton {
+    @Override
+    public LadeRzVersionResponseE ladeRzVersion(LadeRzVersionE ladeRzVersion) {
+        LadeRzVersionResponseE ladeRzVersionResponseE = new LadeRzVersionResponseE();
+        LadeRzVersionResponse ladeRzVersionResponse = new LadeRzVersionResponse();
+        ladeRzVersionResponseE.setLadeRzVersionResponse(ladeRzVersionResponse);
+        ladeRzVersionResponse.setResult("test result");
+        return ladeRzVersionResponseE;
+    }
+}
diff --git a/modules/adb-tests/src/test/java/org/apache/axis2/databinding/axis2_5749/ServiceTest.java b/modules/adb-tests/src/test/java/org/apache/axis2/databinding/axis2_5749/ServiceTest.java
new file mode 100644
index 0000000..305c605
--- /dev/null
+++ b/modules/adb-tests/src/test/java/org/apache/axis2/databinding/axis2_5749/ServiceTest.java
@@ -0,0 +1,46 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.axis2.databinding.axis2_5749;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import javax.xml.ws.BindingProvider;
+
+import org.apache.axis2.databinding.axis2_5749.client.Color;
+import org.apache.axis2.databinding.axis2_5749.client.ColorService;
+import org.apache.axis2.databinding.axis2_5749.client.ColorService_Service;
+import org.apache.axis2.testutils.Axis2Server;
+import org.junit.ClassRule;
+import org.junit.Test;
+
+public class ServiceTest {
+    @ClassRule
+    public static Axis2Server server = new Axis2Server("target/repo/AXIS2-5749");
+    
+    @Test
+    public void test() throws Exception {
+        ColorService client = new ColorService_Service().getColorServiceSOAP();
+        ((BindingProvider)client).getRequestContext().put(
+                BindingProvider.ENDPOINT_ADDRESS_PROPERTY,
+                server.getEndpoint("ColorService"));
+        Color color = new Color();
+        color.setIn("RED");
+        assertThat(client.test(color).getOut()).isEqualTo("Red is good!");
+    }
+}
diff --git a/modules/adb-tests/src/test/java/org/apache/axis2/databinding/axis2_5749/service/ColorServiceImpl.java b/modules/adb-tests/src/test/java/org/apache/axis2/databinding/axis2_5749/service/ColorServiceImpl.java
new file mode 100644
index 0000000..6e736c3
--- /dev/null
+++ b/modules/adb-tests/src/test/java/org/apache/axis2/databinding/axis2_5749/service/ColorServiceImpl.java
@@ -0,0 +1,36 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.axis2.databinding.axis2_5749.service;
+
+import com.ise_online.colorservice.Color;
+import com.ise_online.colorservice.ColorResponse;
+import com.ise_online.colorservice.In_type1;
+
+public class ColorServiceImpl extends ColorServiceSkeleton {
+    @Override
+    public ColorResponse test(Color color) {
+        ColorResponse response = new ColorResponse();
+        if (color.getIn() == In_type1.RED) {
+            response.setOut("Red is good!");
+        } else {
+            response.setOut("Don't like that color...");
+        }
+        return response;
+    }
+}
diff --git a/modules/adb-tests/src/test/java/org/apache/axis2/databinding/axis2_5750/ServiceTest.java b/modules/adb-tests/src/test/java/org/apache/axis2/databinding/axis2_5750/ServiceTest.java
new file mode 100644
index 0000000..e882207
--- /dev/null
+++ b/modules/adb-tests/src/test/java/org/apache/axis2/databinding/axis2_5750/ServiceTest.java
@@ -0,0 +1,49 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.axis2.databinding.axis2_5750;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import javax.xml.ws.Endpoint;
+
+import org.apache.axiom.testutils.PortAllocator;
+import org.apache.axis2.databinding.axis2_5750.client.FixedValue;
+import org.apache.axis2.databinding.axis2_5750.client.FixedValueServiceStub;
+import org.apache.axis2.databinding.axis2_5750.client.NonFixedValue_type1;
+import org.apache.axis2.databinding.axis2_5750.service.FixedValueServiceImpl;
+import org.junit.Test;
+
+public class ServiceTest {
+    @Test
+    public void test() throws Exception {
+        int port = PortAllocator.allocatePort();
+        String address = "http://localhost:" + port + "/service";
+        Endpoint endpoint = Endpoint.publish(address, new FixedValueServiceImpl());
+        try {
+            FixedValue fixedValue = new FixedValue();
+            NonFixedValue_type1 nonFixedValue_type1 = new NonFixedValue_type1();
+            nonFixedValue_type1.setNonFixedValue_type0("SomeId");
+            fixedValue.setNonFixedValue(nonFixedValue_type1);
+            FixedValueServiceStub stub = new FixedValueServiceStub(address);
+            assertThat(stub.test(fixedValue).getOut()).isEqualTo("OK");
+        } finally {
+            endpoint.stop();
+        }
+    }
+}
diff --git a/modules/adb-tests/src/test/java/org/apache/axis2/databinding/axis2_5750/service/FixedValueServiceImpl.java b/modules/adb-tests/src/test/java/org/apache/axis2/databinding/axis2_5750/service/FixedValueServiceImpl.java
new file mode 100644
index 0000000..b63ef8c
--- /dev/null
+++ b/modules/adb-tests/src/test/java/org/apache/axis2/databinding/axis2_5750/service/FixedValueServiceImpl.java
@@ -0,0 +1,35 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.axis2.databinding.axis2_5750.service;
+
+import javax.jws.WebService;
+
+@WebService(endpointInterface="org.apache.axis2.databinding.axis2_5750.service.FixedValueService")
+public class FixedValueServiceImpl implements FixedValueService {
+    @Override
+    public FixedValueResponse test(FixedValue parameters) {
+        FixedValueResponse response = new FixedValueResponse();
+        if (parameters.getFixedValue().equals("strict") && parameters.getNonFixedValue().equals("SomeId")) {
+            response.setOut("OK");
+        } else {
+            response.setOut("NOK");
+        }
+        return response;
+    }
+}
diff --git a/modules/adb-tests/src/test/java/org/apache/axis2/databinding/axis2_5758/ServiceTest.java b/modules/adb-tests/src/test/java/org/apache/axis2/databinding/axis2_5758/ServiceTest.java
new file mode 100644
index 0000000..c2bd476
--- /dev/null
+++ b/modules/adb-tests/src/test/java/org/apache/axis2/databinding/axis2_5758/ServiceTest.java
@@ -0,0 +1,48 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.axis2.databinding.axis2_5758;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import javax.xml.ws.Endpoint;
+
+import org.apache.axiom.testutils.PortAllocator;
+import org.apache.axis2.databinding.axis2_5758.client.StockQuoteServiceStub;
+import org.apache.axis2.databinding.axis2_5758.client.TradePriceRequest;
+import org.apache.axis2.databinding.axis2_5758.service.StockQuoteServiceImpl;
+import org.junit.Test;
+
+public class ServiceTest {
+    @Test
+    public void test() throws Exception {
+        int port = PortAllocator.allocatePort();
+        String address = "http://localhost:" + port + "/service";
+        Endpoint endpoint = Endpoint.publish(address, new StockQuoteServiceImpl());
+        try {
+            StockQuoteServiceStub stub = new StockQuoteServiceStub(address);
+            TradePriceRequest request = new TradePriceRequest();
+            request.setTickerSymbol(null);
+            assertThat(stub.getLastTradePrice(request).getPrice()).isNaN();
+            request.setTickerSymbol("GOOG");
+            assertThat(stub.getLastTradePrice(request).getPrice()).isWithin(0.001f).of(100.0f);
+        } finally {
+            endpoint.stop();
+        }
+    }
+}
diff --git a/modules/kernel/src/org/apache/axis2/classloader/JarStreamHandlerFactory.java b/modules/adb-tests/src/test/java/org/apache/axis2/databinding/axis2_5758/service/StockQuoteServiceImpl.java
similarity index 62%
copy from modules/kernel/src/org/apache/axis2/classloader/JarStreamHandlerFactory.java
copy to modules/adb-tests/src/test/java/org/apache/axis2/databinding/axis2_5758/service/StockQuoteServiceImpl.java
index e32813e..11265a6 100644
--- a/modules/kernel/src/org/apache/axis2/classloader/JarStreamHandlerFactory.java
+++ b/modules/adb-tests/src/test/java/org/apache/axis2/databinding/axis2_5758/service/StockQuoteServiceImpl.java
@@ -16,17 +16,18 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+package org.apache.axis2.databinding.axis2_5758.service;
 
-package org.apache.axis2.classloader;
+import javax.jws.WebService;
 
-import java.net.URLStreamHandler;
-import java.net.URLStreamHandlerFactory;
-
-public class JarStreamHandlerFactory implements URLStreamHandlerFactory {
-    public URLStreamHandler createURLStreamHandler(String protocol) {
-        if("jar".equalsIgnoreCase(protocol)){
-            return new JarFileUrlStreamHandler();
+@WebService(endpointInterface="org.apache.axis2.databinding.axis2_5758.service.StockQuotePortType")
+public class StockQuoteServiceImpl implements StockQuotePortType {
+    @Override
+    public TradePrice getLastTradePrice(TradePriceRequest body) {
+        TradePrice price = new TradePrice();
+        if (body.getTickerSymbol() != null) {
+            price.setPrice(100.0f);
         }
-        return null;
+        return price;
     }
 }
diff --git a/modules/adb-tests/src/test/java/org/apache/axis2/databinding/axis2_5799/ServiceTest.java b/modules/adb-tests/src/test/java/org/apache/axis2/databinding/axis2_5799/ServiceTest.java
new file mode 100644
index 0000000..c629f2d
--- /dev/null
+++ b/modules/adb-tests/src/test/java/org/apache/axis2/databinding/axis2_5799/ServiceTest.java
@@ -0,0 +1,46 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.axis2.databinding.axis2_5799;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import javax.xml.ws.Endpoint;
+
+import org.apache.axiom.testutils.PortAllocator;
+import org.apache.axis2.databinding.axis2_5799.client.ComplexTypeWithAttribute;
+import org.apache.axis2.databinding.axis2_5799.client.EchoServiceStub;
+import org.apache.axis2.databinding.axis2_5799.service.EchoImpl;
+import org.junit.Test;
+
+public class ServiceTest {
+    @Test
+    public void test() throws Exception {
+        int port = PortAllocator.allocatePort();
+        String address = "http://localhost:" + port + "/service";
+        Endpoint endpoint = Endpoint.publish(address, new EchoImpl());
+        try {
+            EchoServiceStub stub = new EchoServiceStub(address);
+            ComplexTypeWithAttribute request = new ComplexTypeWithAttribute();
+            request.setAttr("value");
+            assertThat(stub.echo(request).getAttr()).isEqualTo("value");
+        } finally {
+            endpoint.stop();
+        }
+    }
+}
diff --git a/modules/transport/local/src/org/apache/axis2/transport/local/NonBlockingLocalTransportSender.java b/modules/adb-tests/src/test/java/org/apache/axis2/databinding/axis2_5799/service/EchoImpl.java
similarity index 70%
copy from modules/transport/local/src/org/apache/axis2/transport/local/NonBlockingLocalTransportSender.java
copy to modules/adb-tests/src/test/java/org/apache/axis2/databinding/axis2_5799/service/EchoImpl.java
index 1576c00..7a71d32 100644
--- a/modules/transport/local/src/org/apache/axis2/transport/local/NonBlockingLocalTransportSender.java
+++ b/modules/adb-tests/src/test/java/org/apache/axis2/databinding/axis2_5799/service/EchoImpl.java
@@ -16,13 +16,14 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+package org.apache.axis2.databinding.axis2_5799.service;
 
-package org.apache.axis2.transport.local;
+import javax.jws.WebService;
+import javax.xml.ws.Holder;
 
-public class NonBlockingLocalTransportSender extends LocalTransportSender {
-
-    protected boolean isNonBlocking() {
-        return true;
+@WebService(endpointInterface="org.apache.axis2.databinding.axis2_5799.service.EchoPortType")
+public class EchoImpl implements EchoPortType {
+    @Override
+    public void echo(Holder<ComplexTypeWithAttribute> body) {
     }
-
 }
diff --git a/modules/kernel/src/org/apache/axis2/classloader/JarStreamHandlerFactory.java b/modules/adb-tests/src/test/java/org/apache/axis2/databinding/axis2_5809/EchoServiceImpl.java
similarity index 66%
rename from modules/kernel/src/org/apache/axis2/classloader/JarStreamHandlerFactory.java
rename to modules/adb-tests/src/test/java/org/apache/axis2/databinding/axis2_5809/EchoServiceImpl.java
index e32813e..3aeaaca 100644
--- a/modules/kernel/src/org/apache/axis2/classloader/JarStreamHandlerFactory.java
+++ b/modules/adb-tests/src/test/java/org/apache/axis2/databinding/axis2_5809/EchoServiceImpl.java
@@ -16,17 +16,17 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+package org.apache.axis2.databinding.axis2_5809;
 
-package org.apache.axis2.classloader;
-
-import java.net.URLStreamHandler;
-import java.net.URLStreamHandlerFactory;
-
-public class JarStreamHandlerFactory implements URLStreamHandlerFactory {
-    public URLStreamHandler createURLStreamHandler(String protocol) {
-        if("jar".equalsIgnoreCase(protocol)){
-            return new JarFileUrlStreamHandler();
+public class EchoServiceImpl extends EchoServiceSkeleton {
+    @Override
+    public EchoResponse echo(Echo echo) {
+        String content = echo.getContent();
+        if (content.isEmpty()) {
+            throw new RuntimeException();
         }
-        return null;
+        EchoResponse response = new EchoResponse();
+        response.setContent(echo.getContent());
+        return response;
     }
 }
diff --git a/modules/adb-tests/src/test/java/org/apache/axis2/databinding/axis2_5809/ServiceTest.java b/modules/adb-tests/src/test/java/org/apache/axis2/databinding/axis2_5809/ServiceTest.java
new file mode 100644
index 0000000..0aab151
--- /dev/null
+++ b/modules/adb-tests/src/test/java/org/apache/axis2/databinding/axis2_5809/ServiceTest.java
@@ -0,0 +1,61 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.axis2.databinding.axis2_5809;
+
+import static com.google.common.truth.Truth.assertThat;
+import static org.junit.Assert.fail;
+
+import org.apache.axis2.AxisFault;
+import org.apache.axis2.testutils.Axis2Server;
+import org.apache.axis2.testutils.ClientHelper;
+import org.junit.ClassRule;
+import org.junit.Test;
+
+public class ServiceTest {
+    @ClassRule
+    public static Axis2Server server = new Axis2Server("target/repo/AXIS2-5809");
+    
+    @ClassRule
+    public static ClientHelper clientHelper = new ClientHelper(server);
+    
+    @Test
+    public void testWithNormalResponse() throws Exception {
+        EchoServiceStub stub = clientHelper.createStub(EchoServiceStub.class, "EchoService");
+        for (int i=0; i<500; i++) {
+            Echo request = new Echo();
+            request.setContent("test");
+            assertThat(stub.echo(request).getContent()).isEqualTo("test");
+        }
+    }
+    
+    @Test
+    public void testWithFault() throws Exception {
+        EchoServiceStub stub = clientHelper.createStub(EchoServiceStub.class, "EchoService");
+        for (int i=0; i<500; i++) {
+            Echo request = new Echo();
+            request.setContent("");
+            try {
+                stub.echo(request);
+                fail("Expected AxisFault");
+            } catch (AxisFault ex) {
+                // Expected
+            }
+        }
+    }
+}
diff --git a/modules/adb-tests/src/test/java/org/apache/axis2/databinding/axis2_5887/ParseTest.java b/modules/adb-tests/src/test/java/org/apache/axis2/databinding/axis2_5887/ParseTest.java
new file mode 100644
index 0000000..79f771a
--- /dev/null
+++ b/modules/adb-tests/src/test/java/org/apache/axis2/databinding/axis2_5887/ParseTest.java
@@ -0,0 +1,45 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.axis2.databinding.axis2_5887;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import java.io.InputStream;
+
+import org.apache.axiom.om.OMXMLBuilderFactory;
+import org.apache.axiom.soap.SOAPEnvelope;
+import org.apache.axis2.databinding.axis2_5887.client.GetOrdersByStatusResponse;
+import org.junit.Test;
+
+public class ParseTest {
+    @Test
+    public void test() throws Exception {
+        GetOrdersByStatusResponse response;
+        InputStream in = ParseTest.class.getResourceAsStream("getOrdersByStatus_response.xml");
+        try {
+            SOAPEnvelope envelope = OMXMLBuilderFactory.createSOAPModelBuilder(in, null).getSOAPEnvelope();
+            response = GetOrdersByStatusResponse.Factory.parse(
+                    envelope.getBody().getFirstElement().getXMLStreamReader(false));
+        } finally {
+            in.close();
+        }
+        assertThat(response.getOrders()).isNotNull();
+        assertThat(response.getOrders().getOrders()).isNull();
+    }
+}
diff --git a/modules/adb-tests/src/test/java/org/apache/axis2/databinding/mtom/MTOMTest.java b/modules/adb-tests/src/test/java/org/apache/axis2/databinding/mtom/MTOMTest.java
new file mode 100644
index 0000000..aa254f0
--- /dev/null
+++ b/modules/adb-tests/src/test/java/org/apache/axis2/databinding/mtom/MTOMTest.java
@@ -0,0 +1,51 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.axis2.databinding.mtom;
+
+import javax.activation.DataHandler;
+import javax.xml.ws.Endpoint;
+
+import org.apache.axiom.testutils.PortAllocator;
+import org.apache.axiom.testutils.activation.RandomDataSource;
+import org.apache.axiom.testutils.io.IOTestUtils;
+import org.apache.axis2.Constants;
+import org.apache.axis2.databinding.mtom.client.MTOMServiceStub;
+import org.apache.axis2.databinding.mtom.client.MTOMServiceStub.GetContent;
+import org.apache.axis2.databinding.mtom.service.MTOMServiceImpl;
+import org.junit.Test;
+
+public class MTOMTest {
+    @Test
+    public void test() throws Exception {
+        int port = PortAllocator.allocatePort();
+        String address = "http://localhost:" + port + "/mtom";
+        Endpoint endpoint = Endpoint.publish(address, new MTOMServiceImpl());
+        try {
+            MTOMServiceStub stub = new MTOMServiceStub(address);
+            // JAX-WS only produces an MTOM response if the request uses MTOM
+            stub._getServiceClient().getOptions().setProperty(Constants.Configuration.ENABLE_MTOM, Constants.VALUE_TRUE);
+            DataHandler content = stub.getContent(new GetContent()).getContent();
+            IOTestUtils.compareStreams(
+                    new RandomDataSource(654321L, 1000000).getInputStream(), "expected",
+                    content.getInputStream(), "actual");
+        } finally {
+            endpoint.stop();
+        }
+    }
+}
diff --git a/modules/transport/http/test/org/apache/axis2/transport/http/HTTPClient3TransportSenderTest.java b/modules/adb-tests/src/test/java/org/apache/axis2/databinding/mtom/service/MTOMServiceImpl.java
similarity index 63%
copy from modules/transport/http/test/org/apache/axis2/transport/http/HTTPClient3TransportSenderTest.java
copy to modules/adb-tests/src/test/java/org/apache/axis2/databinding/mtom/service/MTOMServiceImpl.java
index 058b62b..c843d30 100644
--- a/modules/transport/http/test/org/apache/axis2/transport/http/HTTPClient3TransportSenderTest.java
+++ b/modules/adb-tests/src/test/java/org/apache/axis2/databinding/mtom/service/MTOMServiceImpl.java
@@ -16,17 +16,19 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+package org.apache.axis2.databinding.mtom.service;
 
-package org.apache.axis2.transport.http;
+import javax.activation.DataHandler;
+import javax.jws.WebService;
+import javax.xml.ws.soap.MTOM;
 
-import org.apache.axis2.transport.TransportSender;
-import org.apache.axis2.transport.http.impl.httpclient3.HTTPClient3TransportSender;
+import org.apache.axiom.testutils.activation.RandomDataSource;
 
-public class HTTPClient3TransportSenderTest extends CommonsHTTPTransportSenderTest {
-
+@WebService(endpointInterface="org.apache.axis2.databinding.mtom.service.MTOMService")
+@MTOM
+public class MTOMServiceImpl implements MTOMService {
     @Override
-    protected TransportSender getTransportSender() {
-        return new HTTPClient3TransportSender();
+    public DataHandler getContent() {
+        return new DataHandler(new RandomDataSource(654321L, 1000000));
     }
-
 }
diff --git a/modules/adb-codegen/test/org/apache/axis2/schema/ADBBeanUtil.java b/modules/adb-tests/src/test/java/org/apache/axis2/schema/ADBBeanUtil.java
similarity index 100%
rename from modules/adb-codegen/test/org/apache/axis2/schema/ADBBeanUtil.java
rename to modules/adb-tests/src/test/java/org/apache/axis2/schema/ADBBeanUtil.java
diff --git a/modules/adb-codegen/test/org/apache/axis2/schema/AbstractTestCase.java b/modules/adb-tests/src/test/java/org/apache/axis2/schema/AbstractTestCase.java
similarity index 91%
rename from modules/adb-codegen/test/org/apache/axis2/schema/AbstractTestCase.java
rename to modules/adb-tests/src/test/java/org/apache/axis2/schema/AbstractTestCase.java
index da4d24e..14324ef 100644
--- a/modules/adb-codegen/test/org/apache/axis2/schema/AbstractTestCase.java
+++ b/modules/adb-tests/src/test/java/org/apache/axis2/schema/AbstractTestCase.java
@@ -25,8 +25,6 @@
 import java.beans.PropertyDescriptor;
 import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
 import java.io.OutputStream;
 import java.io.StringReader;
 import java.io.StringWriter;
@@ -44,19 +42,21 @@
 
 import javax.activation.DataHandler;
 import javax.xml.namespace.QName;
+import javax.xml.stream.XMLStreamException;
 import javax.xml.stream.XMLStreamReader;
 import javax.xml.stream.XMLStreamWriter;
 
 import org.apache.axiom.attachments.Attachments;
-import org.apache.axiom.mime.MultipartWriter;
-import org.apache.axiom.mime.impl.axiom.AxiomMultipartWriterFactory;
+import org.apache.axiom.mime.MultipartBodyWriter;
 import org.apache.axiom.om.OMAbstractFactory;
 import org.apache.axiom.om.OMElement;
 import org.apache.axiom.om.OMOutputFormat;
 import org.apache.axiom.om.OMXMLBuilderFactory;
+import org.apache.axiom.om.ds.AbstractPushOMDataSource;
 import org.apache.axiom.om.util.StAXUtils;
 import org.apache.axiom.soap.SOAPEnvelope;
-import org.apache.axiom.soap.impl.builder.MTOMStAXSOAPModelBuilder;
+import org.apache.axiom.soap.SOAPModelBuilder;
+import org.apache.axiom.testutils.io.IOTestUtils;
 import org.apache.axis2.databinding.ADBBean;
 import org.apache.axis2.databinding.ADBException;
 import org.apache.axis2.databinding.types.HexBinary;
@@ -104,7 +104,7 @@
      * @param expected
      * @param actual
      */
-    public static void assertBeanEquals(Object expected, Object actual) {
+    public static void assertBeanEquals(Object expected, Object actual) throws Exception {
         if (expected == null) {
             assertNull(actual);
             return;
@@ -128,7 +128,7 @@
         }
     }
     
-    private static void assertPropertyValueEquals(String message, Object expected, Object actual) {
+    private static void assertPropertyValueEquals(String message, Object expected, Object actual) throws Exception {
         if (expected == null) {
             assertNull(message, actual);
         } else {
@@ -144,7 +144,9 @@
             } else if (simpleJavaTypes.contains(type)) {
                 assertEquals("value for " + message, expected, actual);
             } else if (DataHandler.class.isAssignableFrom(type)) {
-                assertDataHandlerEquals((DataHandler)expected, (DataHandler)actual);
+                IOTestUtils.compareStreams(
+                        ((DataHandler)expected).getInputStream(), "expected",
+                        ((DataHandler)actual).getInputStream(), "actual");
             } else if (OMElement.class.isAssignableFrom(type)) {
                 assertTrue(isOMElementsEqual((OMElement)expected, (OMElement)actual));
             } else if (isADBBean(type)) {
@@ -196,20 +198,6 @@
         return count;
     }
     
-    private static void assertDataHandlerEquals(DataHandler expected, DataHandler actual) {
-        try {
-            InputStream in1 = expected.getInputStream();
-            InputStream in2 = actual.getInputStream();
-            int b;
-            do {
-                b = in1.read();
-                assertEquals(b, in2.read());
-            } while (b != -1);
-        } catch (IOException ex) {
-            fail("Failed to read data handler");
-        }
-    }
-    
     public static Object toHelperModeBean(ADBBean bean) throws Exception {
         Class<?> beanClass = bean.getClass();
         Object helperModeBean = null;
@@ -338,14 +326,26 @@
     // Approach 3: Serialize the bean as the child of an element that declares a default namespace.
     // If ADB behaves correctly, this should not have any impact. A failure here may be an indication
     // of an incorrect usage of XMLStreamWriter#writeStartElement(String).
-    private static void testSerializeDeserializeWrapped(Object bean, Object expectedResult) throws Exception {
+    private static void testSerializeDeserializeWrapped(final Object bean, Object expectedResult) throws Exception {
         StringWriter sw = new StringWriter();
-        XMLStreamWriter writer = StAXUtils.createXMLStreamWriter(sw);
-        writer.writeStartElement("", "root", "urn:test");
-        writer.writeDefaultNamespace("urn:test");
-        ADBBeanUtil.serialize(bean, writer);
-        writer.writeEndElement();
-        writer.flush();
+        OMAbstractFactory.getOMFactory().createOMElement(new AbstractPushOMDataSource() {
+            @Override
+            public boolean isDestructiveWrite() {
+                return false;
+            }
+            
+            @Override
+            public void serialize(XMLStreamWriter writer) throws XMLStreamException {
+                writer.writeStartElement("", "root", "urn:test");
+                writer.writeDefaultNamespace("urn:test");
+                try {
+                    ADBBeanUtil.serialize(bean, writer);
+                } catch (Exception ex) {
+                    throw new XMLStreamException(ex);
+                }
+                writer.writeEndElement();
+            }
+        }).serialize(sw);
         OMElement omElement3 = OMXMLBuilderFactory.createOMBuilder(new StringReader(sw.toString())).getDocumentElement();
         assertBeanEquals(expectedResult, ADBBeanUtil.parse(bean.getClass(), omElement3.getFirstElement().getXMLStreamReader()));
     }
@@ -361,7 +361,7 @@
         String contentType = format.getContentTypeForMTOM("text/xml");
         Attachments attachments = new Attachments(new ByteArrayInputStream(buffer.toByteArray()), contentType);
         assertEquals(countDataHandlers(bean) + 1, attachments.getAllContentIDs().length);
-        MTOMStAXSOAPModelBuilder builder = new MTOMStAXSOAPModelBuilder(StAXUtils.createXMLStreamReader(attachments.getRootPartInputStream()), attachments);
+        SOAPModelBuilder builder = OMXMLBuilderFactory.createSOAPModelBuilder(attachments);
         OMElement bodyElement = builder.getSOAPEnvelope().getBody().getFirstElement();
         assertBeanEquals(expectedResult, ADBBeanUtil.parse(bean.getClass(), cache ? bodyElement.getXMLStreamReader() : bodyElement.getXMLStreamReaderWithoutCaching()));
     }
@@ -373,15 +373,15 @@
         envelope.getBody().addChild(ADBBeanUtil.getOMElement(bean));
         ByteArrayOutputStream buffer = new ByteArrayOutputStream();
         OMOutputFormat format = new OMOutputFormat();
-        MultipartWriter mpWriter = AxiomMultipartWriterFactory.INSTANCE.createMultipartWriter(buffer, format.getMimeBoundary());
-        OutputStream rootPartWriter = mpWriter.writePart("application/xop+xml; charset=UTF-8; type=\"text/xml\"", "binary", format.getRootContentId());
+        MultipartBodyWriter mpWriter = new MultipartBodyWriter(buffer, format.getMimeBoundary());
+        OutputStream rootPartWriter = mpWriter.writePart("application/xop+xml; charset=UTF-8; type=\"text/xml\"", "binary", format.getRootContentId(), null);
         envelope.serialize(rootPartWriter, format);
         rootPartWriter.close();
         mpWriter.complete();
 //        System.out.write(buffer.toByteArray());
         String contentType = format.getContentTypeForMTOM("text/xml");
         Attachments attachments = new Attachments(new ByteArrayInputStream(buffer.toByteArray()), contentType);
-        MTOMStAXSOAPModelBuilder builder = new MTOMStAXSOAPModelBuilder(StAXUtils.createXMLStreamReader(attachments.getRootPartInputStream()), attachments);
+        SOAPModelBuilder builder = OMXMLBuilderFactory.createSOAPModelBuilder(attachments);
         OMElement bodyElement = builder.getSOAPEnvelope().getBody().getFirstElement();
         assertBeanEquals(expectedResult, ADBBeanUtil.parse(bean.getClass(), bodyElement.getXMLStreamReaderWithoutCaching()));
     }
diff --git a/modules/adb-codegen/test/org/apache/axis2/schema/all/AllTest.java b/modules/adb-tests/src/test/java/org/apache/axis2/schema/all/AllTest.java
similarity index 100%
rename from modules/adb-codegen/test/org/apache/axis2/schema/all/AllTest.java
rename to modules/adb-tests/src/test/java/org/apache/axis2/schema/all/AllTest.java
diff --git a/modules/adb-codegen/test/org/apache/axis2/schema/anytype/AnyTypeTest.java b/modules/adb-tests/src/test/java/org/apache/axis2/schema/anytype/AnyTypeTest.java
similarity index 100%
rename from modules/adb-codegen/test/org/apache/axis2/schema/anytype/AnyTypeTest.java
rename to modules/adb-tests/src/test/java/org/apache/axis2/schema/anytype/AnyTypeTest.java
diff --git a/modules/adb-codegen/test/org/apache/axis2/schema/attribute/AttributeTest.java b/modules/adb-tests/src/test/java/org/apache/axis2/schema/attribute/AttributeTest.java
similarity index 100%
rename from modules/adb-codegen/test/org/apache/axis2/schema/attribute/AttributeTest.java
rename to modules/adb-tests/src/test/java/org/apache/axis2/schema/attribute/AttributeTest.java
diff --git a/modules/adb-tests/src/test/java/org/apache/axis2/schema/axis2_5771/IgnoreUnexpectedTest.java b/modules/adb-tests/src/test/java/org/apache/axis2/schema/axis2_5771/IgnoreUnexpectedTest.java
new file mode 100644
index 0000000..82f70a3
--- /dev/null
+++ b/modules/adb-tests/src/test/java/org/apache/axis2/schema/axis2_5771/IgnoreUnexpectedTest.java
@@ -0,0 +1,59 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.axis2.schema.axis2_5771;
+
+import static com.google.common.truth.Truth.assertThat;
+import static org.mockito.Mockito.any;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.verifyZeroInteractions;
+
+import java.util.logging.Handler;
+import java.util.logging.LogRecord;
+import java.util.logging.Logger;
+
+import org.junit.Test;
+
+public class IgnoreUnexpectedTest {
+    private void testValue(String value, CabinType expected) {
+        Logger logger = Logger.getLogger(CabinType.Factory.class.getName());
+        Handler handler = mock(Handler.class);
+        logger.addHandler(handler);
+        try {
+            assertThat(CabinType.Factory.fromValue(value)).isSameAs(expected);
+            if (expected == null) {
+                verify(handler).publish(any(LogRecord.class));
+            } else {
+                verifyZeroInteractions(handler);
+            }
+        } finally {
+            logger.removeHandler(handler);
+        }
+    }
+
+    @Test
+    public void testUnexpectedValue() {
+        testValue("A", null);
+    }
+
+    @Test
+    public void testExpectedValue() {
+        testValue("C", CabinType.C);
+    }
+}
diff --git a/modules/adb-codegen/test/org/apache/axis2/schema/base64binary/Base64BinaryTest.java b/modules/adb-tests/src/test/java/org/apache/axis2/schema/base64binary/Base64BinaryTest.java
similarity index 89%
rename from modules/adb-codegen/test/org/apache/axis2/schema/base64binary/Base64BinaryTest.java
rename to modules/adb-tests/src/test/java/org/apache/axis2/schema/base64binary/Base64BinaryTest.java
index 041c4a4..bb76044 100644
--- a/modules/adb-codegen/test/org/apache/axis2/schema/base64binary/Base64BinaryTest.java
+++ b/modules/adb-tests/src/test/java/org/apache/axis2/schema/base64binary/Base64BinaryTest.java
@@ -20,6 +20,7 @@
 package org.apache.axis2.schema.base64binary;
 
 import org.apache.axiom.attachments.ByteArrayDataSource;
+import org.apache.axiom.testutils.activation.RandomDataSource;
 import org.apache.axis2.schema.AbstractTestCase;
 import org.w3.www._2005._05.xmlmime.*;
 
@@ -78,12 +79,12 @@
         testSerializeDeserialize(testBase64MultiElement);
     }
     
-    public void testBase64BinaryOnbounded() throws Exception {
-        TestBase64BinaryOnbounded bean = new TestBase64BinaryOnbounded();
+    public void testBase64BinaryUnbounded() throws Exception {
+        TestBase64BinaryUnbounded bean = new TestBase64BinaryUnbounded();
         bean.setParam(new DataHandler[] {
-                new DataHandler("DataHandler 1", "text/plain"),
-                new DataHandler("DataHandler 2", "text/plain"),
-                new DataHandler("DataHandler 3", "text/plain")
+                new DataHandler(new RandomDataSource(1024)),
+                new DataHandler(new RandomDataSource(1024)),
+                new DataHandler(new RandomDataSource(1024))
         });
         testSerializeDeserialize(bean);
     }
diff --git a/modules/adb-codegen/test/org/apache/axis2/schema/booleantest/BooleanTest.java b/modules/adb-tests/src/test/java/org/apache/axis2/schema/booleantest/BooleanTest.java
similarity index 100%
rename from modules/adb-codegen/test/org/apache/axis2/schema/booleantest/BooleanTest.java
rename to modules/adb-tests/src/test/java/org/apache/axis2/schema/booleantest/BooleanTest.java
diff --git a/modules/adb-codegen/test/org/apache/axis2/schema/chameleon/ChameleonTest.java b/modules/adb-tests/src/test/java/org/apache/axis2/schema/chameleon/ChameleonTest.java
similarity index 100%
rename from modules/adb-codegen/test/org/apache/axis2/schema/chameleon/ChameleonTest.java
rename to modules/adb-tests/src/test/java/org/apache/axis2/schema/chameleon/ChameleonTest.java
diff --git a/modules/adb-codegen/test/org/apache/axis2/schema/choice/ChoiceTest.java b/modules/adb-tests/src/test/java/org/apache/axis2/schema/choice/ChoiceTest.java
similarity index 100%
rename from modules/adb-codegen/test/org/apache/axis2/schema/choice/ChoiceTest.java
rename to modules/adb-tests/src/test/java/org/apache/axis2/schema/choice/ChoiceTest.java
diff --git a/modules/adb-codegen/test/org/apache/axis2/schema/decimal/DecimalTest.java b/modules/adb-tests/src/test/java/org/apache/axis2/schema/decimal/DecimalTest.java
similarity index 100%
rename from modules/adb-codegen/test/org/apache/axis2/schema/decimal/DecimalTest.java
rename to modules/adb-tests/src/test/java/org/apache/axis2/schema/decimal/DecimalTest.java
diff --git a/modules/adb-tests/src/test/java/org/apache/axis2/schema/defaultnamespaces/DefaultNamespacesTest.java b/modules/adb-tests/src/test/java/org/apache/axis2/schema/defaultnamespaces/DefaultNamespacesTest.java
new file mode 100644
index 0000000..a8241cc
--- /dev/null
+++ b/modules/adb-tests/src/test/java/org/apache/axis2/schema/defaultnamespaces/DefaultNamespacesTest.java
@@ -0,0 +1,68 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.axis2.schema.defaultnamespaces;
+
+import junit.framework.TestCase;
+
+import org.apache.axiom.om.OMAbstractFactory;
+import org.apache.axiom.om.OMElement;
+
+import javax.xml.namespace.QName;
+
+public class DefaultNamespacesTest extends TestCase {
+    private static final String NS_URI = TestElement1.MY_QNAME.getNamespaceURI();
+
+    public void testTestElement1() throws Exception {
+
+        TestElement1 testElement1 = new TestElement1();
+
+        TestChildType testChildType = new TestChildType();
+        testChildType.setParam1(new QName(NS_URI, "param1"));
+        testChildType.setParam2("Param2");
+        testChildType.setParam3(new QName(NS_URI, "param3"));
+        testChildType.setParam4("Param4");
+
+        TestSimpleUnion testSimpleUnion1 = new TestSimpleUnion();
+        testSimpleUnion1.setObject(new QName(NS_URI, "param5"));
+
+        testChildType.setParam5(testSimpleUnion1);
+
+        testChildType.setAttribute1("attribute1");
+        testChildType.setAttribute2(new QName(NS_URI, "attribute2"));
+
+        TestSimpleUnion testSimpleUnion2 = new TestSimpleUnion();
+        testSimpleUnion2.setObject(new QName(NS_URI, "attribute3"));
+
+
+        testElement1.setTestElement1(testChildType);
+
+        OMElement omElement = testElement1.getTestElement1().getOMElement(new QName(NS_URI, "TestElement1", "ns1"),
+                OMAbstractFactory.getOMFactory());
+        TestElement1 result = TestElement1.Factory.parse(omElement.getXMLStreamReader());
+        assertTrue(result.getTestElement1() instanceof TestChildType);
+        TestChildType resultType = (TestChildType) result.getTestElement1();
+        assertEquals(resultType.getParam1(), new QName(NS_URI, "param1"));
+        assertEquals(resultType.getParam2(), "Param2");
+        assertEquals(resultType.getParam3(), new QName(NS_URI, "param3"));
+        assertEquals(resultType.getParam4(), "Param4");
+        assertEquals(resultType.getAttribute1(), "attribute1");
+        assertEquals(resultType.getAttribute2(), new QName(NS_URI, "attribute2"));
+    }
+}
diff --git a/modules/adb-codegen/test/org/apache/axis2/schema/defaultvalue/DefaultValueTest.java b/modules/adb-tests/src/test/java/org/apache/axis2/schema/defaultvalue/DefaultValueTest.java
similarity index 100%
rename from modules/adb-codegen/test/org/apache/axis2/schema/defaultvalue/DefaultValueTest.java
rename to modules/adb-tests/src/test/java/org/apache/axis2/schema/defaultvalue/DefaultValueTest.java
diff --git a/modules/adb-codegen/test/org/apache/axis2/schema/enumeration/EnumerationTest.java b/modules/adb-tests/src/test/java/org/apache/axis2/schema/enumeration/EnumerationTest.java
similarity index 100%
rename from modules/adb-codegen/test/org/apache/axis2/schema/enumeration/EnumerationTest.java
rename to modules/adb-tests/src/test/java/org/apache/axis2/schema/enumeration/EnumerationTest.java
diff --git a/modules/adb-codegen/test/org/apache/axis2/schema/extension/ComplexExtenstionTest.java b/modules/adb-tests/src/test/java/org/apache/axis2/schema/extension/ComplexExtenstionTest.java
similarity index 100%
rename from modules/adb-codegen/test/org/apache/axis2/schema/extension/ComplexExtenstionTest.java
rename to modules/adb-tests/src/test/java/org/apache/axis2/schema/extension/ComplexExtenstionTest.java
diff --git a/modules/adb-codegen/test/org/apache/axis2/schema/extension/SimpleExtensionTest.java b/modules/adb-tests/src/test/java/org/apache/axis2/schema/extension/SimpleExtensionTest.java
similarity index 94%
rename from modules/adb-codegen/test/org/apache/axis2/schema/extension/SimpleExtensionTest.java
rename to modules/adb-tests/src/test/java/org/apache/axis2/schema/extension/SimpleExtensionTest.java
index 892e0dd..f06d54c 100644
--- a/modules/adb-codegen/test/org/apache/axis2/schema/extension/SimpleExtensionTest.java
+++ b/modules/adb-tests/src/test/java/org/apache/axis2/schema/extension/SimpleExtensionTest.java
@@ -58,8 +58,7 @@
         OMFactory factory = OMAbstractFactory.getOMFactory();
         OMElement element = factory.createOMElement(new QName(
                 "http://apache.org/axis2/schema/extension", "SimpleAmmountElement"));
-        element.addAttribute("currency", "SLR",
-                             factory.createOMNamespace("http://apache.org/axis2/schema/extension", null));
+        element.addAttribute("currency", "SLR", null);
         element.setText("1000");
         SimpleAmmountElement ammountElement = SimpleAmmountElement.Factory.parse(element
                 .getXMLStreamReader());
@@ -82,8 +81,7 @@
         OMFactory factory = OMAbstractFactory.getOMFactory();
         OMElement element = factory.createOMElement(new QName(
                 "http://apache.org/axis2/schema/extension", "PaymentAmountElement"));
-        element.addAttribute("currency", "SLR",
-                             factory.createOMNamespace("http://apache.org/axis2/schema/extension", null));
+        element.addAttribute("currency", "SLR", null);
         element.setText("2000");
         PaymentAmountElement ammountElement = PaymentAmountElement.Factory.parse(element
                 .getXMLStreamReader());
@@ -156,8 +154,7 @@
         OMFactory factory = OMAbstractFactory.getOMFactory();
         OMElement element = factory.createOMElement(new QName(
                 "http://apache.org/axis2/schema/extension", "ReproStringTypeElement"));
-        element.addAttribute("lang", "EN",
-                             factory.createOMNamespace("http://apache.org/axis2/schema/extension", null));
+        element.addAttribute("lang", "EN", null);
         element.setText("Value");
        
         ReproStringTypeElement reproStringTypeElement = ReproStringTypeElement.Factory.parse(element
diff --git a/modules/adb-codegen/test/org/apache/axis2/schema/fix/DefaultValueTest.java b/modules/adb-tests/src/test/java/org/apache/axis2/schema/fix/DefaultValueTest.java
similarity index 100%
rename from modules/adb-codegen/test/org/apache/axis2/schema/fix/DefaultValueTest.java
rename to modules/adb-tests/src/test/java/org/apache/axis2/schema/fix/DefaultValueTest.java
diff --git a/modules/adb-codegen/test/org/apache/axis2/schema/fix/FixedValueTest.java b/modules/adb-tests/src/test/java/org/apache/axis2/schema/fix/FixedValueTest.java
similarity index 100%
rename from modules/adb-codegen/test/org/apache/axis2/schema/fix/FixedValueTest.java
rename to modules/adb-tests/src/test/java/org/apache/axis2/schema/fix/FixedValueTest.java
diff --git a/modules/adb-codegen/test/org/apache/axis2/schema/group/GroupTest.java b/modules/adb-tests/src/test/java/org/apache/axis2/schema/group/GroupTest.java
similarity index 100%
rename from modules/adb-codegen/test/org/apache/axis2/schema/group/GroupTest.java
rename to modules/adb-tests/src/test/java/org/apache/axis2/schema/group/GroupTest.java
diff --git a/modules/adb-codegen/test/org/apache/axis2/schema/innerchoice/InnerChoiceTest.java b/modules/adb-tests/src/test/java/org/apache/axis2/schema/innerchoice/InnerChoiceTest.java
similarity index 100%
rename from modules/adb-codegen/test/org/apache/axis2/schema/innerchoice/InnerChoiceTest.java
rename to modules/adb-tests/src/test/java/org/apache/axis2/schema/innerchoice/InnerChoiceTest.java
diff --git a/modules/adb-codegen/test/org/apache/axis2/schema/innerparticleextension/TestInnerParticleExtension.java b/modules/adb-tests/src/test/java/org/apache/axis2/schema/innerparticleextension/TestInnerParticleExtension.java
similarity index 100%
rename from modules/adb-codegen/test/org/apache/axis2/schema/innerparticleextension/TestInnerParticleExtension.java
rename to modules/adb-tests/src/test/java/org/apache/axis2/schema/innerparticleextension/TestInnerParticleExtension.java
diff --git a/modules/adb-codegen/test/org/apache/axis2/schema/innerparticles/InnerParticlesTest.java b/modules/adb-tests/src/test/java/org/apache/axis2/schema/innerparticles/InnerParticlesTest.java
similarity index 100%
rename from modules/adb-codegen/test/org/apache/axis2/schema/innerparticles/InnerParticlesTest.java
rename to modules/adb-tests/src/test/java/org/apache/axis2/schema/innerparticles/InnerParticlesTest.java
diff --git a/modules/adb-codegen/test/org/apache/axis2/schema/list/ListTest.java b/modules/adb-tests/src/test/java/org/apache/axis2/schema/list/ListTest.java
similarity index 100%
rename from modules/adb-codegen/test/org/apache/axis2/schema/list/ListTest.java
rename to modules/adb-tests/src/test/java/org/apache/axis2/schema/list/ListTest.java
diff --git a/modules/adb-codegen/test/org/apache/axis2/schema/nonamespace/NoNamespaceTest.java b/modules/adb-tests/src/test/java/org/apache/axis2/schema/nonamespace/NoNamespaceTest.java
similarity index 100%
rename from modules/adb-codegen/test/org/apache/axis2/schema/nonamespace/NoNamespaceTest.java
rename to modules/adb-tests/src/test/java/org/apache/axis2/schema/nonamespace/NoNamespaceTest.java
diff --git a/modules/adb-codegen/test/org/apache/axis2/schema/particlemaxoccurs/ParticleMaxOccursTest.java b/modules/adb-tests/src/test/java/org/apache/axis2/schema/particlemaxoccurs/ParticleMaxOccursTest.java
similarity index 100%
rename from modules/adb-codegen/test/org/apache/axis2/schema/particlemaxoccurs/ParticleMaxOccursTest.java
rename to modules/adb-tests/src/test/java/org/apache/axis2/schema/particlemaxoccurs/ParticleMaxOccursTest.java
diff --git a/modules/adb-codegen/test/org/apache/axis2/schema/populate/Util.java b/modules/adb-tests/src/test/java/org/apache/axis2/schema/populate/Util.java
similarity index 100%
rename from modules/adb-codegen/test/org/apache/axis2/schema/populate/Util.java
rename to modules/adb-tests/src/test/java/org/apache/axis2/schema/populate/Util.java
diff --git a/modules/adb-codegen/test/org/apache/axis2/schema/populate/derived/AbstractDerivedPopulater.java b/modules/adb-tests/src/test/java/org/apache/axis2/schema/populate/derived/AbstractDerivedPopulater.java
similarity index 100%
rename from modules/adb-codegen/test/org/apache/axis2/schema/populate/derived/AbstractDerivedPopulater.java
rename to modules/adb-tests/src/test/java/org/apache/axis2/schema/populate/derived/AbstractDerivedPopulater.java
diff --git a/modules/adb-codegen/test/org/apache/axis2/schema/populate/derived/DerivedTypeBytePopulateTest.java b/modules/adb-tests/src/test/java/org/apache/axis2/schema/populate/derived/DerivedTypeBytePopulateTest.java
similarity index 100%
rename from modules/adb-codegen/test/org/apache/axis2/schema/populate/derived/DerivedTypeBytePopulateTest.java
rename to modules/adb-tests/src/test/java/org/apache/axis2/schema/populate/derived/DerivedTypeBytePopulateTest.java
diff --git a/modules/adb-codegen/test/org/apache/axis2/schema/populate/derived/DerivedTypeIntPopulateTest.java b/modules/adb-tests/src/test/java/org/apache/axis2/schema/populate/derived/DerivedTypeIntPopulateTest.java
similarity index 100%
rename from modules/adb-codegen/test/org/apache/axis2/schema/populate/derived/DerivedTypeIntPopulateTest.java
rename to modules/adb-tests/src/test/java/org/apache/axis2/schema/populate/derived/DerivedTypeIntPopulateTest.java
diff --git a/modules/adb-codegen/test/org/apache/axis2/schema/populate/derived/DerivedTypeIntegerPopulateTest.java b/modules/adb-tests/src/test/java/org/apache/axis2/schema/populate/derived/DerivedTypeIntegerPopulateTest.java
similarity index 100%
rename from modules/adb-codegen/test/org/apache/axis2/schema/populate/derived/DerivedTypeIntegerPopulateTest.java
rename to modules/adb-tests/src/test/java/org/apache/axis2/schema/populate/derived/DerivedTypeIntegerPopulateTest.java
diff --git a/modules/adb-codegen/test/org/apache/axis2/schema/populate/derived/DerivedTypeLongPopulateTest.java b/modules/adb-tests/src/test/java/org/apache/axis2/schema/populate/derived/DerivedTypeLongPopulateTest.java
similarity index 100%
rename from modules/adb-codegen/test/org/apache/axis2/schema/populate/derived/DerivedTypeLongPopulateTest.java
rename to modules/adb-tests/src/test/java/org/apache/axis2/schema/populate/derived/DerivedTypeLongPopulateTest.java
diff --git a/modules/adb-codegen/test/org/apache/axis2/schema/populate/derived/DerivedTypeNegativeIntegerPopulateTest.java b/modules/adb-tests/src/test/java/org/apache/axis2/schema/populate/derived/DerivedTypeNegativeIntegerPopulateTest.java
similarity index 100%
rename from modules/adb-codegen/test/org/apache/axis2/schema/populate/derived/DerivedTypeNegativeIntegerPopulateTest.java
rename to modules/adb-tests/src/test/java/org/apache/axis2/schema/populate/derived/DerivedTypeNegativeIntegerPopulateTest.java
diff --git a/modules/adb-codegen/test/org/apache/axis2/schema/populate/derived/DerivedTypeNonNegativeIntegerPopulateTest.java b/modules/adb-tests/src/test/java/org/apache/axis2/schema/populate/derived/DerivedTypeNonNegativeIntegerPopulateTest.java
similarity index 100%
rename from modules/adb-codegen/test/org/apache/axis2/schema/populate/derived/DerivedTypeNonNegativeIntegerPopulateTest.java
rename to modules/adb-tests/src/test/java/org/apache/axis2/schema/populate/derived/DerivedTypeNonNegativeIntegerPopulateTest.java
diff --git a/modules/adb-codegen/test/org/apache/axis2/schema/populate/derived/DerivedTypeNonPositiveIntegerPopulateTest.java b/modules/adb-tests/src/test/java/org/apache/axis2/schema/populate/derived/DerivedTypeNonPositiveIntegerPopulateTest.java
similarity index 100%
rename from modules/adb-codegen/test/org/apache/axis2/schema/populate/derived/DerivedTypeNonPositiveIntegerPopulateTest.java
rename to modules/adb-tests/src/test/java/org/apache/axis2/schema/populate/derived/DerivedTypeNonPositiveIntegerPopulateTest.java
diff --git a/modules/adb-codegen/test/org/apache/axis2/schema/populate/derived/DerivedTypePositveIntegerPopulateTest.java b/modules/adb-tests/src/test/java/org/apache/axis2/schema/populate/derived/DerivedTypePositveIntegerPopulateTest.java
similarity index 100%
rename from modules/adb-codegen/test/org/apache/axis2/schema/populate/derived/DerivedTypePositveIntegerPopulateTest.java
rename to modules/adb-tests/src/test/java/org/apache/axis2/schema/populate/derived/DerivedTypePositveIntegerPopulateTest.java
diff --git a/modules/adb-codegen/test/org/apache/axis2/schema/populate/derived/DerivedTypeShortPopulateTest.java b/modules/adb-tests/src/test/java/org/apache/axis2/schema/populate/derived/DerivedTypeShortPopulateTest.java
similarity index 100%
rename from modules/adb-codegen/test/org/apache/axis2/schema/populate/derived/DerivedTypeShortPopulateTest.java
rename to modules/adb-tests/src/test/java/org/apache/axis2/schema/populate/derived/DerivedTypeShortPopulateTest.java
diff --git a/modules/adb-codegen/test/org/apache/axis2/schema/populate/derived/DerivedTypeUnsignedBytePopulateTest.java b/modules/adb-tests/src/test/java/org/apache/axis2/schema/populate/derived/DerivedTypeUnsignedBytePopulateTest.java
similarity index 100%
rename from modules/adb-codegen/test/org/apache/axis2/schema/populate/derived/DerivedTypeUnsignedBytePopulateTest.java
rename to modules/adb-tests/src/test/java/org/apache/axis2/schema/populate/derived/DerivedTypeUnsignedBytePopulateTest.java
diff --git a/modules/adb-codegen/test/org/apache/axis2/schema/populate/derived/DerivedTypeUnsignedIntPopulateTest.java b/modules/adb-tests/src/test/java/org/apache/axis2/schema/populate/derived/DerivedTypeUnsignedIntPopulateTest.java
similarity index 100%
rename from modules/adb-codegen/test/org/apache/axis2/schema/populate/derived/DerivedTypeUnsignedIntPopulateTest.java
rename to modules/adb-tests/src/test/java/org/apache/axis2/schema/populate/derived/DerivedTypeUnsignedIntPopulateTest.java
diff --git a/modules/adb-codegen/test/org/apache/axis2/schema/populate/derived/DerivedTypeUnsignedLongPopulateTest.java b/modules/adb-tests/src/test/java/org/apache/axis2/schema/populate/derived/DerivedTypeUnsignedLongPopulateTest.java
similarity index 100%
rename from modules/adb-codegen/test/org/apache/axis2/schema/populate/derived/DerivedTypeUnsignedLongPopulateTest.java
rename to modules/adb-tests/src/test/java/org/apache/axis2/schema/populate/derived/DerivedTypeUnsignedLongPopulateTest.java
diff --git a/modules/adb-codegen/test/org/apache/axis2/schema/populate/derived/DerivedTypeUnsignedShortPopulateTest.java b/modules/adb-tests/src/test/java/org/apache/axis2/schema/populate/derived/DerivedTypeUnsignedShortPopulateTest.java
similarity index 100%
rename from modules/adb-codegen/test/org/apache/axis2/schema/populate/derived/DerivedTypeUnsignedShortPopulateTest.java
rename to modules/adb-tests/src/test/java/org/apache/axis2/schema/populate/derived/DerivedTypeUnsignedShortPopulateTest.java
diff --git a/modules/adb-codegen/test/org/apache/axis2/schema/populate/other/PopulateAnonComplexTypeTest.java b/modules/adb-tests/src/test/java/org/apache/axis2/schema/populate/other/PopulateAnonComplexTypeTest.java
similarity index 100%
rename from modules/adb-codegen/test/org/apache/axis2/schema/populate/other/PopulateAnonComplexTypeTest.java
rename to modules/adb-tests/src/test/java/org/apache/axis2/schema/populate/other/PopulateAnonComplexTypeTest.java
diff --git a/modules/adb-codegen/test/org/apache/axis2/schema/populate/other/PopulateAnyTypeTest.java b/modules/adb-tests/src/test/java/org/apache/axis2/schema/populate/other/PopulateAnyTypeTest.java
similarity index 100%
rename from modules/adb-codegen/test/org/apache/axis2/schema/populate/other/PopulateAnyTypeTest.java
rename to modules/adb-tests/src/test/java/org/apache/axis2/schema/populate/other/PopulateAnyTypeTest.java
diff --git a/modules/adb-codegen/test/org/apache/axis2/schema/populate/other/PopulateArrayInArrayTest.java b/modules/adb-tests/src/test/java/org/apache/axis2/schema/populate/other/PopulateArrayInArrayTest.java
similarity index 100%
rename from modules/adb-codegen/test/org/apache/axis2/schema/populate/other/PopulateArrayInArrayTest.java
rename to modules/adb-tests/src/test/java/org/apache/axis2/schema/populate/other/PopulateArrayInArrayTest.java
diff --git a/modules/adb-codegen/test/org/apache/axis2/schema/populate/other/PopulateArrayTest.java b/modules/adb-tests/src/test/java/org/apache/axis2/schema/populate/other/PopulateArrayTest.java
similarity index 100%
rename from modules/adb-codegen/test/org/apache/axis2/schema/populate/other/PopulateArrayTest.java
rename to modules/adb-tests/src/test/java/org/apache/axis2/schema/populate/other/PopulateArrayTest.java
diff --git a/modules/adb-codegen/test/org/apache/axis2/schema/populate/other/PopulateChoiceTest.java b/modules/adb-tests/src/test/java/org/apache/axis2/schema/populate/other/PopulateChoiceTest.java
similarity index 100%
rename from modules/adb-codegen/test/org/apache/axis2/schema/populate/other/PopulateChoiceTest.java
rename to modules/adb-tests/src/test/java/org/apache/axis2/schema/populate/other/PopulateChoiceTest.java
diff --git a/modules/adb-codegen/test/org/apache/axis2/schema/populate/other/PopulateComplexMinOccurs0Test.java b/modules/adb-tests/src/test/java/org/apache/axis2/schema/populate/other/PopulateComplexMinOccurs0Test.java
similarity index 100%
rename from modules/adb-codegen/test/org/apache/axis2/schema/populate/other/PopulateComplexMinOccurs0Test.java
rename to modules/adb-tests/src/test/java/org/apache/axis2/schema/populate/other/PopulateComplexMinOccurs0Test.java
diff --git a/modules/adb-codegen/test/org/apache/axis2/schema/populate/other/PopulateMinOccurs0Test.java b/modules/adb-tests/src/test/java/org/apache/axis2/schema/populate/other/PopulateMinOccurs0Test.java
similarity index 100%
rename from modules/adb-codegen/test/org/apache/axis2/schema/populate/other/PopulateMinOccurs0Test.java
rename to modules/adb-tests/src/test/java/org/apache/axis2/schema/populate/other/PopulateMinOccurs0Test.java
diff --git a/modules/adb-codegen/test/org/apache/axis2/schema/populate/other/PopulateMixedMinoccurs0Test.java b/modules/adb-tests/src/test/java/org/apache/axis2/schema/populate/other/PopulateMixedMinoccurs0Test.java
similarity index 100%
rename from modules/adb-codegen/test/org/apache/axis2/schema/populate/other/PopulateMixedMinoccurs0Test.java
rename to modules/adb-tests/src/test/java/org/apache/axis2/schema/populate/other/PopulateMixedMinoccurs0Test.java
diff --git a/modules/adb-codegen/test/org/apache/axis2/schema/populate/other/PopulateParticleAllTest.java b/modules/adb-tests/src/test/java/org/apache/axis2/schema/populate/other/PopulateParticleAllTest.java
similarity index 100%
rename from modules/adb-codegen/test/org/apache/axis2/schema/populate/other/PopulateParticleAllTest.java
rename to modules/adb-tests/src/test/java/org/apache/axis2/schema/populate/other/PopulateParticleAllTest.java
diff --git a/modules/adb-codegen/test/org/apache/axis2/schema/populate/other/PopulateRecursiveTest.java b/modules/adb-tests/src/test/java/org/apache/axis2/schema/populate/other/PopulateRecursiveTest.java
similarity index 100%
rename from modules/adb-codegen/test/org/apache/axis2/schema/populate/other/PopulateRecursiveTest.java
rename to modules/adb-tests/src/test/java/org/apache/axis2/schema/populate/other/PopulateRecursiveTest.java
diff --git a/modules/adb-codegen/test/org/apache/axis2/schema/populate/simple/AbstractSimplePopulater.java b/modules/adb-tests/src/test/java/org/apache/axis2/schema/populate/simple/AbstractSimplePopulater.java
similarity index 100%
rename from modules/adb-codegen/test/org/apache/axis2/schema/populate/simple/AbstractSimplePopulater.java
rename to modules/adb-tests/src/test/java/org/apache/axis2/schema/populate/simple/AbstractSimplePopulater.java
diff --git a/modules/adb-codegen/test/org/apache/axis2/schema/populate/simple/SimpleTypeAnyURIPopulateTest.java b/modules/adb-tests/src/test/java/org/apache/axis2/schema/populate/simple/SimpleTypeAnyURIPopulateTest.java
similarity index 100%
rename from modules/adb-codegen/test/org/apache/axis2/schema/populate/simple/SimpleTypeAnyURIPopulateTest.java
rename to modules/adb-tests/src/test/java/org/apache/axis2/schema/populate/simple/SimpleTypeAnyURIPopulateTest.java
diff --git a/modules/adb-codegen/test/org/apache/axis2/schema/populate/simple/SimpleTypeBase64BinPopulateTest.java b/modules/adb-tests/src/test/java/org/apache/axis2/schema/populate/simple/SimpleTypeBase64BinPopulateTest.java
similarity index 100%
rename from modules/adb-codegen/test/org/apache/axis2/schema/populate/simple/SimpleTypeBase64BinPopulateTest.java
rename to modules/adb-tests/src/test/java/org/apache/axis2/schema/populate/simple/SimpleTypeBase64BinPopulateTest.java
diff --git a/modules/adb-codegen/test/org/apache/axis2/schema/populate/simple/SimpleTypeBooleanPopulateTest.java b/modules/adb-tests/src/test/java/org/apache/axis2/schema/populate/simple/SimpleTypeBooleanPopulateTest.java
similarity index 100%
rename from modules/adb-codegen/test/org/apache/axis2/schema/populate/simple/SimpleTypeBooleanPopulateTest.java
rename to modules/adb-tests/src/test/java/org/apache/axis2/schema/populate/simple/SimpleTypeBooleanPopulateTest.java
diff --git a/modules/adb-codegen/test/org/apache/axis2/schema/populate/simple/SimpleTypeDatePopulateTest.java b/modules/adb-tests/src/test/java/org/apache/axis2/schema/populate/simple/SimpleTypeDatePopulateTest.java
similarity index 100%
rename from modules/adb-codegen/test/org/apache/axis2/schema/populate/simple/SimpleTypeDatePopulateTest.java
rename to modules/adb-tests/src/test/java/org/apache/axis2/schema/populate/simple/SimpleTypeDatePopulateTest.java
diff --git a/modules/adb-codegen/test/org/apache/axis2/schema/populate/simple/SimpleTypeDateTimePopulateTest.java b/modules/adb-tests/src/test/java/org/apache/axis2/schema/populate/simple/SimpleTypeDateTimePopulateTest.java
similarity index 100%
rename from modules/adb-codegen/test/org/apache/axis2/schema/populate/simple/SimpleTypeDateTimePopulateTest.java
rename to modules/adb-tests/src/test/java/org/apache/axis2/schema/populate/simple/SimpleTypeDateTimePopulateTest.java
diff --git a/modules/adb-codegen/test/org/apache/axis2/schema/populate/simple/SimpleTypeDayPopulateTest.java b/modules/adb-tests/src/test/java/org/apache/axis2/schema/populate/simple/SimpleTypeDayPopulateTest.java
similarity index 100%
rename from modules/adb-codegen/test/org/apache/axis2/schema/populate/simple/SimpleTypeDayPopulateTest.java
rename to modules/adb-tests/src/test/java/org/apache/axis2/schema/populate/simple/SimpleTypeDayPopulateTest.java
diff --git a/modules/adb-codegen/test/org/apache/axis2/schema/populate/simple/SimpleTypeDoublePopulateTest.java b/modules/adb-tests/src/test/java/org/apache/axis2/schema/populate/simple/SimpleTypeDoublePopulateTest.java
similarity index 100%
rename from modules/adb-codegen/test/org/apache/axis2/schema/populate/simple/SimpleTypeDoublePopulateTest.java
rename to modules/adb-tests/src/test/java/org/apache/axis2/schema/populate/simple/SimpleTypeDoublePopulateTest.java
diff --git a/modules/adb-codegen/test/org/apache/axis2/schema/populate/simple/SimpleTypeDurationPopulateTest.java b/modules/adb-tests/src/test/java/org/apache/axis2/schema/populate/simple/SimpleTypeDurationPopulateTest.java
similarity index 100%
rename from modules/adb-codegen/test/org/apache/axis2/schema/populate/simple/SimpleTypeDurationPopulateTest.java
rename to modules/adb-tests/src/test/java/org/apache/axis2/schema/populate/simple/SimpleTypeDurationPopulateTest.java
diff --git a/modules/adb-codegen/test/org/apache/axis2/schema/populate/simple/SimpleTypeFloatPopulateTest.java b/modules/adb-tests/src/test/java/org/apache/axis2/schema/populate/simple/SimpleTypeFloatPopulateTest.java
similarity index 100%
rename from modules/adb-codegen/test/org/apache/axis2/schema/populate/simple/SimpleTypeFloatPopulateTest.java
rename to modules/adb-tests/src/test/java/org/apache/axis2/schema/populate/simple/SimpleTypeFloatPopulateTest.java
diff --git a/modules/adb-codegen/test/org/apache/axis2/schema/populate/simple/SimpleTypeHexBinaryPopulateTest.java b/modules/adb-tests/src/test/java/org/apache/axis2/schema/populate/simple/SimpleTypeHexBinaryPopulateTest.java
similarity index 100%
rename from modules/adb-codegen/test/org/apache/axis2/schema/populate/simple/SimpleTypeHexBinaryPopulateTest.java
rename to modules/adb-tests/src/test/java/org/apache/axis2/schema/populate/simple/SimpleTypeHexBinaryPopulateTest.java
diff --git a/modules/adb-codegen/test/org/apache/axis2/schema/populate/simple/SimpleTypeMonthDayPopulateTest.java b/modules/adb-tests/src/test/java/org/apache/axis2/schema/populate/simple/SimpleTypeMonthDayPopulateTest.java
similarity index 100%
rename from modules/adb-codegen/test/org/apache/axis2/schema/populate/simple/SimpleTypeMonthDayPopulateTest.java
rename to modules/adb-tests/src/test/java/org/apache/axis2/schema/populate/simple/SimpleTypeMonthDayPopulateTest.java
diff --git a/modules/adb-codegen/test/org/apache/axis2/schema/populate/simple/SimpleTypeQNamePopulateTest.java b/modules/adb-tests/src/test/java/org/apache/axis2/schema/populate/simple/SimpleTypeQNamePopulateTest.java
similarity index 100%
rename from modules/adb-codegen/test/org/apache/axis2/schema/populate/simple/SimpleTypeQNamePopulateTest.java
rename to modules/adb-tests/src/test/java/org/apache/axis2/schema/populate/simple/SimpleTypeQNamePopulateTest.java
diff --git a/modules/adb-codegen/test/org/apache/axis2/schema/populate/simple/SimpleTypeTimePopulateTest.java b/modules/adb-tests/src/test/java/org/apache/axis2/schema/populate/simple/SimpleTypeTimePopulateTest.java
similarity index 100%
rename from modules/adb-codegen/test/org/apache/axis2/schema/populate/simple/SimpleTypeTimePopulateTest.java
rename to modules/adb-tests/src/test/java/org/apache/axis2/schema/populate/simple/SimpleTypeTimePopulateTest.java
diff --git a/modules/adb-codegen/test/org/apache/axis2/schema/populate/simple/SimpleTypegMonthPopulateTest.java b/modules/adb-tests/src/test/java/org/apache/axis2/schema/populate/simple/SimpleTypegMonthPopulateTest.java
similarity index 100%
rename from modules/adb-codegen/test/org/apache/axis2/schema/populate/simple/SimpleTypegMonthPopulateTest.java
rename to modules/adb-tests/src/test/java/org/apache/axis2/schema/populate/simple/SimpleTypegMonthPopulateTest.java
diff --git a/modules/adb-codegen/test/org/apache/axis2/schema/populate/simple/SimpleTypegYearMonthPopulateTest.java b/modules/adb-tests/src/test/java/org/apache/axis2/schema/populate/simple/SimpleTypegYearMonthPopulateTest.java
similarity index 100%
rename from modules/adb-codegen/test/org/apache/axis2/schema/populate/simple/SimpleTypegYearMonthPopulateTest.java
rename to modules/adb-tests/src/test/java/org/apache/axis2/schema/populate/simple/SimpleTypegYearMonthPopulateTest.java
diff --git a/modules/adb-codegen/test/org/apache/axis2/schema/populate/simple/SimpleTypegYearPopulateTest.java b/modules/adb-tests/src/test/java/org/apache/axis2/schema/populate/simple/SimpleTypegYearPopulateTest.java
similarity index 100%
rename from modules/adb-codegen/test/org/apache/axis2/schema/populate/simple/SimpleTypegYearPopulateTest.java
rename to modules/adb-tests/src/test/java/org/apache/axis2/schema/populate/simple/SimpleTypegYearPopulateTest.java
diff --git a/modules/adb-codegen/test/org/apache/axis2/schema/populate/simple/package.html b/modules/adb-tests/src/test/java/org/apache/axis2/schema/populate/simple/package.html
similarity index 100%
rename from modules/adb-codegen/test/org/apache/axis2/schema/populate/simple/package.html
rename to modules/adb-tests/src/test/java/org/apache/axis2/schema/populate/simple/package.html
diff --git a/modules/adb-codegen/test/org/apache/axis2/schema/references/ReferenceTest.java b/modules/adb-tests/src/test/java/org/apache/axis2/schema/references/ReferenceTest.java
similarity index 100%
rename from modules/adb-codegen/test/org/apache/axis2/schema/references/ReferenceTest.java
rename to modules/adb-tests/src/test/java/org/apache/axis2/schema/references/ReferenceTest.java
diff --git a/modules/adb-codegen/test/org/apache/axis2/schema/restriction/ComplexRestrictionTest.java b/modules/adb-tests/src/test/java/org/apache/axis2/schema/restriction/ComplexRestrictionTest.java
similarity index 100%
rename from modules/adb-codegen/test/org/apache/axis2/schema/restriction/ComplexRestrictionTest.java
rename to modules/adb-tests/src/test/java/org/apache/axis2/schema/restriction/ComplexRestrictionTest.java
diff --git a/modules/adb-codegen/test/org/apache/axis2/schema/restriction/SchemaRestrictionTest.java b/modules/adb-tests/src/test/java/org/apache/axis2/schema/restriction/SchemaRestrictionTest.java
similarity index 100%
rename from modules/adb-codegen/test/org/apache/axis2/schema/restriction/SchemaRestrictionTest.java
rename to modules/adb-tests/src/test/java/org/apache/axis2/schema/restriction/SchemaRestrictionTest.java
diff --git a/modules/adb-codegen/test/org/apache/axis2/schema/restriction/SimpleRestrictionTest.java b/modules/adb-tests/src/test/java/org/apache/axis2/schema/restriction/SimpleRestrictionTest.java
similarity index 100%
rename from modules/adb-codegen/test/org/apache/axis2/schema/restriction/SimpleRestrictionTest.java
rename to modules/adb-tests/src/test/java/org/apache/axis2/schema/restriction/SimpleRestrictionTest.java
diff --git a/modules/adb-codegen/test/org/apache/axis2/schema/testsuite/AbstractTest.java b/modules/adb-tests/src/test/java/org/apache/axis2/schema/testsuite/AbstractTest.java
similarity index 100%
rename from modules/adb-codegen/test/org/apache/axis2/schema/testsuite/AbstractTest.java
rename to modules/adb-tests/src/test/java/org/apache/axis2/schema/testsuite/AbstractTest.java
diff --git a/modules/adb-codegen/test/org/apache/axis2/schema/testsuite/AnyElementsTest.java b/modules/adb-tests/src/test/java/org/apache/axis2/schema/testsuite/AnyElementsTest.java
similarity index 100%
rename from modules/adb-codegen/test/org/apache/axis2/schema/testsuite/AnyElementsTest.java
rename to modules/adb-tests/src/test/java/org/apache/axis2/schema/testsuite/AnyElementsTest.java
diff --git a/modules/adb-codegen/test/org/apache/axis2/schema/testsuite/CustomElementsTest.java b/modules/adb-tests/src/test/java/org/apache/axis2/schema/testsuite/CustomElementsTest.java
similarity index 100%
rename from modules/adb-codegen/test/org/apache/axis2/schema/testsuite/CustomElementsTest.java
rename to modules/adb-tests/src/test/java/org/apache/axis2/schema/testsuite/CustomElementsTest.java
diff --git a/modules/adb-codegen/test/org/apache/axis2/schema/testsuite/IntElementsTest.java b/modules/adb-tests/src/test/java/org/apache/axis2/schema/testsuite/IntElementsTest.java
similarity index 100%
rename from modules/adb-codegen/test/org/apache/axis2/schema/testsuite/IntElementsTest.java
rename to modules/adb-tests/src/test/java/org/apache/axis2/schema/testsuite/IntElementsTest.java
diff --git a/modules/adb-codegen/test/org/apache/axis2/schema/testsuite/OuterElementsTest.java b/modules/adb-tests/src/test/java/org/apache/axis2/schema/testsuite/OuterElementsTest.java
similarity index 100%
rename from modules/adb-codegen/test/org/apache/axis2/schema/testsuite/OuterElementsTest.java
rename to modules/adb-tests/src/test/java/org/apache/axis2/schema/testsuite/OuterElementsTest.java
diff --git a/modules/adb-codegen/test/org/apache/axis2/schema/testsuite/StringElementsTest.java b/modules/adb-tests/src/test/java/org/apache/axis2/schema/testsuite/StringElementsTest.java
similarity index 100%
rename from modules/adb-codegen/test/org/apache/axis2/schema/testsuite/StringElementsTest.java
rename to modules/adb-tests/src/test/java/org/apache/axis2/schema/testsuite/StringElementsTest.java
diff --git a/modules/adb-codegen/test/org/apache/axis2/schema/testsuite/TrackerTest.java b/modules/adb-tests/src/test/java/org/apache/axis2/schema/testsuite/TrackerTest.java
similarity index 100%
rename from modules/adb-codegen/test/org/apache/axis2/schema/testsuite/TrackerTest.java
rename to modules/adb-tests/src/test/java/org/apache/axis2/schema/testsuite/TrackerTest.java
diff --git a/modules/adb-codegen/test/org/apache/axis2/schema/testsuite/XsdAnyElementsTest.java b/modules/adb-tests/src/test/java/org/apache/axis2/schema/testsuite/XsdAnyElementsTest.java
similarity index 100%
rename from modules/adb-codegen/test/org/apache/axis2/schema/testsuite/XsdAnyElementsTest.java
rename to modules/adb-tests/src/test/java/org/apache/axis2/schema/testsuite/XsdAnyElementsTest.java
diff --git a/modules/adb-codegen/test/org/apache/axis2/schema/union/UnionTest.java b/modules/adb-tests/src/test/java/org/apache/axis2/schema/union/UnionTest.java
similarity index 100%
rename from modules/adb-codegen/test/org/apache/axis2/schema/union/UnionTest.java
rename to modules/adb-tests/src/test/java/org/apache/axis2/schema/union/UnionTest.java
diff --git a/modules/adb-codegen/test/org/apache/axis2/schema/union2/Union2Test.java b/modules/adb-tests/src/test/java/org/apache/axis2/schema/union2/Union2Test.java
similarity index 100%
rename from modules/adb-codegen/test/org/apache/axis2/schema/union2/Union2Test.java
rename to modules/adb-tests/src/test/java/org/apache/axis2/schema/union2/Union2Test.java
diff --git a/modules/adb-codegen/test/org/apache/axis2/schema/unqualified/UnqualifiedTest.java b/modules/adb-tests/src/test/java/org/apache/axis2/schema/unqualified/UnqualifiedTest.java
similarity index 100%
rename from modules/adb-codegen/test/org/apache/axis2/schema/unqualified/UnqualifiedTest.java
rename to modules/adb-tests/src/test/java/org/apache/axis2/schema/unqualified/UnqualifiedTest.java
diff --git a/modules/transport/testkit/src/main/resources/org/apache/axis2/transport/axis2.xml b/modules/adb-tests/src/test/repo/AXIS2-5809/axis2.xml
similarity index 74%
rename from modules/transport/testkit/src/main/resources/org/apache/axis2/transport/axis2.xml
rename to modules/adb-tests/src/test/repo/AXIS2-5809/axis2.xml
index e0a4699..aded6cf 100644
--- a/modules/transport/testkit/src/main/resources/org/apache/axis2/transport/axis2.xml
+++ b/modules/adb-tests/src/test/repo/AXIS2-5809/axis2.xml
@@ -77,6 +77,7 @@
 
     <!--POJO deployer , this will alow users to drop .class file and make that into a service-->
     <deployer extension=".class" directory="pojo" class="org.apache.axis2.deployment.POJODeployer"/>
+
     <deployer extension=".jar" directory="transports" class="org.apache.axis2.deployment.TransportDeployer"/>
 
     <!-- Following parameter will set the host name for the epr-->
@@ -90,14 +91,12 @@
     <!--any operation -->
     <!--Note : You can override this for particular service by adding the same element with your requirement-->
     <messageReceivers>
-        <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-only"
-                         class="org.apache.axis2.receivers.RawXMLINOnlyMessageReceiver"/>
-        <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out"
-                         class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/>
-        <messageReceiver mep="http://www.w3.org/2006/01/wsdl/in-only"
-                         class="org.apache.axis2.receivers.RawXMLINOnlyMessageReceiver"/>
-        <messageReceiver mep="http://www.w3.org/2006/01/wsdl/in-out"
-                         class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/>
+        <messageReceiver mep="http://www.w3.org/ns/wsdl/in-only"
+                         class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver"/>
+        <messageReceiver mep="http://www.w3.org/ns/wsdl/robust-in-only"
+                         class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver"/>
+        <messageReceiver mep="http://www.w3.org/ns/wsdl/in-out"
+                         class="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/>
     </messageReceivers>
 
     <!-- ================================================= -->
@@ -107,19 +106,15 @@
     <!--format  serialization in Axis2. These message formats are expected to be resolved based on the content type. -->
     <messageFormatters>
         <messageFormatter contentType="application/x-www-form-urlencoded"
-                         class="org.apache.axis2.transport.http.XFormURLEncodedFormatter"/>
+                          class="org.apache.axis2.transport.http.XFormURLEncodedFormatter"/>
         <messageFormatter contentType="multipart/form-data"
-                         class="org.apache.axis2.transport.http.MultipartFormDataFormatter"/>
+                          class="org.apache.axis2.transport.http.MultipartFormDataFormatter"/>
         <messageFormatter contentType="application/xml"
-                         class="org.apache.axis2.transport.http.ApplicationXMLFormatter"/>
+                          class="org.apache.axis2.transport.http.ApplicationXMLFormatter"/>
         <messageFormatter contentType="text/xml"
-                         class="org.apache.axis2.transport.http.SOAPMessageFormatter"/>
+                          class="org.apache.axis2.transport.http.SOAPMessageFormatter"/>
         <messageFormatter contentType="application/soap+xml"
-                         class="org.apache.axis2.transport.http.SOAPMessageFormatter"/>
-        <messageFormatter contentType="text/plain"
-                         class="org.apache.axis2.format.PlainTextFormatter"/>
-        <messageFormatter contentType="application/octet-stream"
-                         class="org.apache.axis2.format.BinaryFormatter"/>
+                          class="org.apache.axis2.transport.http.SOAPMessageFormatter"/>
     </messageFormatters>
 
     <!-- ================================================= -->
@@ -129,17 +124,13 @@
     <!--formats in Axis2. These message formats are expected to be resolved based on the content type. -->
     <messageBuilders>
         <messageBuilder contentType="application/xml"
-                         class="org.apache.axis2.builder.ApplicationXMLBuilder"/>
+                        class="org.apache.axis2.builder.ApplicationXMLBuilder"/>
         <messageBuilder contentType="application/x-www-form-urlencoded"
-                         class="org.apache.axis2.builder.XFormURLEncodedBuilder"/>
-        <messageBuilder contentType="text/plain"
-                         class="org.apache.axis2.format.PlainTextBuilder"/>
-        <messageBuilder contentType="application/octet-stream"
-                         class="org.apache.axis2.format.BinaryBuilder"/>
+                        class="org.apache.axis2.builder.XFormURLEncodedBuilder"/>
         <!--Left commented because it adds the depandancy of servlet-api to other modules.
         Please uncomment to Receive messages in multipart/form-data format-->
         <!--<messageBuilder contentType="multipart/form-data"-->
-                         <!--class="org.apache.axis2.builder.MultipartFormDataBuilder"/>-->
+        <!--class="org.apache.axis2.builder.MultipartFormDataBuilder"/>-->
     </messageBuilders>
 
     <!-- ================================================= -->
@@ -154,11 +145,53 @@
 
 
     <!-- ================================================= -->
+    <!-- Transport Ins -->
+    <!-- ================================================= -->
+    <transportReceiver name="http"
+                       class="org.apache.axis2.transport.http.SimpleHTTPServer">
+        <parameter name="port">6060</parameter>
+        <!--If you want to give your own host address for EPR generation-->
+        <!--uncomment following parameter , and set as you required.-->
+        <!--<parameter name="hostname">http://myApp.com/ws</parameter>-->
+    </transportReceiver>
+
+    <!--Uncomment if you want to have TCP transport support-->
+    <!--<transportReceiver name="tcp"
+                       class="org.apache.axis2.transport.tcp.TCPServer">
+        <parameter name="port">6061</parameter>-->
+    <!--If you want to give your own host address for EPR generation-->
+    <!--uncomment following parameter , and set as you required.-->
+    <!--<parameter name="hostname">tcp://myApp.com/ws</parameter>-->
+    <!--</transportReceiver>-->
+    <!--<transportSender name="tcp"-->
+    <!--class="org.apache.axis2.transport.tcp.TCPTransportSender"/>-->
+
+    <!-- ================================================= -->
+    <!-- Transport Outs -->
+    <!-- ================================================= -->
+
+    <transportSender name="local"
+                     class="org.apache.axis2.transport.local.LocalTransportSender"/>
+    <transportSender name="http"
+                     class="org.apache.axis2.transport.http.impl.httpclient4.HTTPClient4TransportSender">
+        <parameter name="PROTOCOL">HTTP/1.1</parameter>
+        <parameter name="Transfer-Encoding">chunked</parameter>
+    </transportSender>
+    <transportSender name="https"
+                     class="org.apache.axis2.transport.http.impl.httpclient4.HTTPClient4TransportSender">
+        <parameter name="PROTOCOL">HTTP/1.1</parameter>
+        <parameter name="Transfer-Encoding">chunked</parameter>
+    </transportSender>
+    <!--<transportSender name="java"-->
+    <!--class="org.apache.axis2.transport.java.JavaTransportSender"/>-->
+
+
+    <!-- ================================================= -->
     <!--  SOAP Role Configuration                          -->
     <!-- ================================================= -->
     <!-- Use the following pattern to configure this axis2
          instance to act in particular roles. Note that in
-         the absence of any configuration, Axis2 will act 
+         the absence of any configuration, Axis2 will act
          only in the ultimate receiver role -->
     <!--
     <SOAPRoleConfiguration isUltimateReceiver="true">
@@ -171,7 +204,7 @@
     <!-- ================================================= -->
     <phaseOrder type="InFlow">
         <!--  System pre-defined phases       -->
-         <phase name="Transport">
+        <phase name="Transport">
             <handler name="RequestURIBasedDispatcher"
                      class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher">
                 <order phase="Transport"/>
@@ -180,7 +213,56 @@
                      class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher">
                 <order phase="Transport"/>
             </handler>
-         </phase>
+        </phase>
+        <phase name="Addressing">
+            <handler name="AddressingBasedDispatcher"
+                     class="org.apache.axis2.dispatchers.AddressingBasedDispatcher">
+                <order phase="Addressing"/>
+            </handler>
+        </phase>
+        <phase name="Security"/>
+        <phase name="PreDispatch"/>
+        <phase name="Dispatch" class="org.apache.axis2.engine.DispatchPhase">
+            <handler name="RequestURIBasedDispatcher"
+                     class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher"/>
+            <handler name="SOAPActionBasedDispatcher"
+                     class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher"/>
+            <handler name="RequestURIOperationDispatcher"
+                     class="org.apache.axis2.dispatchers.RequestURIOperationDispatcher"/>
+            <handler name="SOAPMessageBodyBasedDispatcher"
+                     class="org.apache.axis2.dispatchers.SOAPMessageBodyBasedDispatcher"/>
+
+            <handler name="HTTPLocationBasedDispatcher"
+                     class="org.apache.axis2.dispatchers.HTTPLocationBasedDispatcher"/>
+        </phase>
+        <!--  System pre defined phases       -->
+        <phase name="RMPhase"/>
+        <phase name="OpPhase"/>
+        <!--   After Postdispatch phase module author or or service author can add any phase he want      -->
+        <phase name="OperationInPhase"/>
+    </phaseOrder>
+    <phaseOrder type="OutFlow">
+        <phase name="RMPhase"/>
+        <phase name="OpPhase"/>
+        <!--      user can add his own phases to this area  -->
+        <phase name="OperationOutPhase"/>
+        <!--system predefined phase-->
+        <!--these phase will run irrespective of the service-->
+        <phase name="PolicyDetermination"/>
+        <phase name="MessageOut"/>
+        <phase name="Security"/>
+    </phaseOrder>
+    <phaseOrder type="InFaultFlow">
+        <phase name="Transport">
+            <handler name="RequestURIBasedDispatcher"
+                     class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher">
+                <order phase="Transport"/>
+            </handler>
+            <handler name="SOAPActionBasedDispatcher"
+                     class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher">
+                <order phase="Transport"/>
+            </handler>
+        </phase>
         <phase name="Addressing">
             <handler name="AddressingBasedDispatcher"
                      class="org.apache.axis2.dispatchers.AddressingBasedDispatcher">
@@ -203,43 +285,7 @@
                      class="org.apache.axis2.dispatchers.HTTPLocationBasedDispatcher"/>
         </phase>
         <phase name="RMPhase"/>
-        <!--  System pre defined phases       -->
-        <!--   After Postdispatch phase module author or or service author can add any phase he want      -->
-        <phase name="OperationInPhase"/>
-    </phaseOrder>
-    <phaseOrder type="OutFlow">
-        <!--      user can add his own phases to this area  -->
-        <phase name="OperationOutPhase"/>
-        <!--system predefined phase-->
-        <!--these phase will run irrespective of the service-->
-        <phase name="RMPhase"/>
-        <phase name="PolicyDetermination"/>
-        <phase name="MessageOut"/>
-        <phase name="Security"/>
-    </phaseOrder>
-    <phaseOrder type="InFaultFlow">
-        <phase name="Addressing">
-             <handler name="AddressingBasedDispatcher"
-                     class="org.apache.axis2.dispatchers.AddressingBasedDispatcher">
-                 <order phase="Addressing"/>
-            </handler>
-        </phase>
-        <phase name="Security"/>
-        <phase name="PreDispatch"/>
-        <phase name="Dispatch" class="org.apache.axis2.engine.DispatchPhase">
-            <handler name="RequestURIBasedDispatcher"
-                     class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher"/>
-            <handler name="SOAPActionBasedDispatcher"
-                     class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher"/>
-            <handler name="RequestURIOperationDispatcher"
-                     class="org.apache.axis2.dispatchers.RequestURIOperationDispatcher"/>
-            <handler name="SOAPMessageBodyBasedDispatcher"
-                     class="org.apache.axis2.dispatchers.SOAPMessageBodyBasedDispatcher"/>
-
-            <handler name="HTTPLocationBasedDispatcher"
-                     class="org.apache.axis2.dispatchers.HTTPLocationBasedDispatcher"/>
-        </phase>
-        <phase name="RMPhase"/>
+        <phase name="OpPhase"/>
         <!--      user can add his own phases to this area  -->
         <phase name="OperationInFaultPhase"/>
     </phaseOrder>
@@ -251,4 +297,4 @@
         <phase name="MessageOut"/>
         <phase name="Security"/>
     </phaseOrder>
-</axisconfig>
\ No newline at end of file
+</axisconfig>
diff --git a/modules/adb-tests/src/test/resources/org/apache/axis2/databinding/axis2_5887/getOrdersByStatus_response.xml b/modules/adb-tests/src/test/resources/org/apache/axis2/databinding/axis2_5887/getOrdersByStatus_response.xml
new file mode 100644
index 0000000..db0003a
--- /dev/null
+++ b/modules/adb-tests/src/test/resources/org/apache/axis2/databinding/axis2_5887/getOrdersByStatus_response.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="webservice/xtc/plugins/Speed4Trade/com">
+	<SOAP-ENV:Body>
+		<ns1:getOrdersByStatusResponse>
+			<orders/>
+		</ns1:getOrdersByStatusResponse>
+	</SOAP-ENV:Body>
+</SOAP-ENV:Envelope>
diff --git a/modules/adb-tests/src/test/wsdl/AXIS2-5741.wsdl b/modules/adb-tests/src/test/wsdl/AXIS2-5741.wsdl
new file mode 100644
index 0000000..c370258
--- /dev/null
+++ b/modules/adb-tests/src/test/wsdl/AXIS2-5741.wsdl
@@ -0,0 +1,309 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<definitions name="FiverxLinkService" targetNamespace="http://fiverx.de/spec/abrechnungsservice"

+             xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:ns1="http://fiverx.de/spec/abrechnungsservice/types"

+             xmlns:tns="http://fiverx.de/spec/abrechnungsservice" xmlns:xsd="http://www.w3.org/2001/XMLSchema"

+             xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/">

+    <types>

+        <schema targetNamespace="http://fiverx.de/spec/abrechnungsservice/types"

+                xmlns="http://www.w3.org/2001/XMLSchema" xmlns:soap11-enc="http://schemas.xmlsoap.org/soap/encoding/"

+                xmlns:tns="http://fiverx.de/spec/abrechnungsservice/types"

+                xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

+            <complexType name="ladeRezepte">

+                <sequence>

+                    <element name="rzeParamLaden" nillable="true" type="string"/>

+                    <element name="rzeParamVersion" nillable="true" type="string"/>

+                </sequence>

+            </complexType>

+            <complexType name="ladeRezepteResponse">

+                <sequence>

+                    <element name="result" nillable="true" type="string"/>

+                </sequence>

+            </complexType>

+            <complexType name="ladeRueckweisungen">

+                <sequence>

+                    <element name="rzeParamVersion" nillable="true" type="string"/>

+                </sequence>

+            </complexType>

+            <complexType name="ladeRueckweisungenResponse">

+                <sequence>

+                    <element name="result" nillable="true" type="string"/>

+                </sequence>

+            </complexType>

+            <complexType name="ladeRzDienste">

+                <sequence>

+                    <element name="rzeParamDienste" nillable="true" type="string"/>

+                    <element name="rzeParamVersion" nillable="true" type="string"/>

+                </sequence>

+            </complexType>

+            <complexType name="ladeRzDiensteResponse">

+                <sequence>

+                    <element name="result" nillable="true" type="string"/>

+                </sequence>

+            </complexType>

+            <complexType name="ladeRzVersion">

+                <sequence>

+                    <element name="rzeParamLadeVersion" nillable="true" type="string"/>

+                </sequence>

+            </complexType>

+            <complexType name="ladeRzVersionResponse">

+                <sequence>

+                    <element name="result" nillable="true" type="string"/>

+                </sequence>

+            </complexType>

+            <complexType name="ladeStatusRezept">

+                <sequence>

+                    <element name="rzeParamStatus" nillable="true" type="string"/>

+                    <element name="rzeParamVersion" nillable="true" type="string"/>

+                </sequence>

+            </complexType>

+            <complexType name="ladeStatusRezeptResponse">

+                <sequence>

+                    <element name="result" nillable="true" type="string"/>

+                </sequence>

+            </complexType>

+            <complexType name="pruefeRezept">

+                <sequence>

+                    <element name="rzePruefung" nillable="true" type="string"/>

+                    <element name="rzeParamVersion" nillable="true" type="string"/>

+                </sequence>

+            </complexType>

+            <complexType name="pruefeRezeptResponse">

+                <sequence>

+                    <element name="result" nillable="true" type="string"/>

+                </sequence>

+            </complexType>

+            <complexType name="sendeRezepte">

+                <sequence>

+                    <element name="rzeLeistung" nillable="true" type="string"/>

+                    <element name="rzeParamVersion" nillable="true" type="string"/>

+                </sequence>

+            </complexType>

+            <complexType name="sendeRezepteResponse">

+                <sequence>

+                    <element name="result" nillable="true" type="string"/>

+                </sequence>

+            </complexType>

+            <complexType name="storniereRezept">

+                <sequence>

+                    <element name="rzeParamStorno" nillable="true" type="string"/>

+                    <element name="rzeParamVersion" nillable="true" type="string"/>

+                </sequence>

+            </complexType>

+            <complexType name="storniereRezeptResponse">

+                <sequence>

+                    <element name="result" nillable="true" type="string"/>

+                </sequence>

+            </complexType>

+            <element name="ladeRezepte" type="tns:ladeRezepte"/>

+            <element name="ladeRezepteResponse" type="tns:ladeRezepteResponse"/>

+            <element name="ladeRueckweisungen" type="tns:ladeRueckweisungen"/>

+            <element name="ladeRueckweisungenResponse" type="tns:ladeRueckweisungenResponse"/>

+            <element name="ladeRzDienste" type="tns:ladeRzDienste"/>

+            <element name="ladeRzDiensteResponse" type="tns:ladeRzDiensteResponse"/>

+            <element name="ladeRzVersion" type="tns:ladeRzVersion"/>

+            <element name="ladeRzVersionResponse" type="tns:ladeRzVersionResponse"/>

+            <element name="ladeStatusRezept" type="tns:ladeStatusRezept"/>

+            <element name="ladeStatusRezeptResponse" type="tns:ladeStatusRezeptResponse"/>

+            <element name="pruefeRezept" type="tns:pruefeRezept"/>

+            <element name="pruefeRezeptResponse" type="tns:pruefeRezeptResponse"/>

+            <element name="sendeRezepte" type="tns:sendeRezepte"/>

+            <element name="sendeRezepteResponse" type="tns:sendeRezepteResponse"/>

+            <element name="storniereRezept" type="tns:storniereRezept"/>

+            <element name="storniereRezeptResponse" type="tns:storniereRezeptResponse"/>

+        </schema>

+    </types>

+    <message name="FiverxLinkService_ladeRzDiensteResponse">

+        <part name="result" element="ns1:ladeRzDiensteResponse">

+        </part>

+    </message>

+    <message name="FiverxLinkService_ladeRzVersionResponse">

+        <part name="result" element="ns1:ladeRzVersionResponse">

+        </part>

+    </message>

+    <message name="FiverxLinkService_storniereRezeptResponse">

+        <part name="result" element="ns1:storniereRezeptResponse">

+        </part>

+    </message>

+    <message name="FiverxLinkService_ladeRezepte">

+        <part name="parameters" element="ns1:ladeRezepte">

+        </part>

+    </message>

+    <message name="FiverxLinkService_ladeRezepteResponse">

+        <part name="result" element="ns1:ladeRezepteResponse">

+        </part>

+    </message>

+    <message name="FiverxLinkService_sendeRezepteResponse">

+        <part name="result" element="ns1:sendeRezepteResponse">

+        </part>

+    </message>

+    <message name="FiverxLinkService_pruefeRezept">

+        <part name="parameters" element="ns1:pruefeRezept">

+        </part>

+    </message>

+    <message name="FiverxLinkService_pruefeRezeptResponse">

+        <part name="result" element="ns1:pruefeRezeptResponse">

+        </part>

+    </message>

+    <message name="FiverxLinkService_storniereRezept">

+        <part name="parameters" element="ns1:storniereRezept">

+        </part>

+    </message>

+    <message name="FiverxLinkService_ladeRueckweisungen">

+        <part name="parameters" element="ns1:ladeRueckweisungen">

+        </part>

+    </message>

+    <message name="FiverxLinkService_ladeStatusRezeptResponse">

+        <part name="result" element="ns1:ladeStatusRezeptResponse">

+        </part>

+    </message>

+    <message name="FiverxLinkService_sendeRezepte">

+        <part name="parameters" element="ns1:sendeRezepte">

+        </part>

+    </message>

+    <message name="FiverxLinkService_ladeStatusRezept">

+        <part name="parameters" element="ns1:ladeStatusRezept">

+        </part>

+    </message>

+    <message name="FiverxLinkService_ladeRueckweisungenResponse">

+        <part name="result" element="ns1:ladeRueckweisungenResponse">

+        </part>

+    </message>

+    <message name="FiverxLinkService_ladeRzVersion">

+        <part name="parameters" element="ns1:ladeRzVersion">

+        </part>

+    </message>

+    <message name="FiverxLinkService_ladeRzDienste">

+        <part name="parameters" element="ns1:ladeRzDienste">

+        </part>

+    </message>

+    <portType name="FiverxLinkService">

+        <operation name="ladeRezepte">

+            <input message="tns:FiverxLinkService_ladeRezepte">

+            </input>

+            <output message="tns:FiverxLinkService_ladeRezepteResponse">

+            </output>

+        </operation>

+        <operation name="ladeRueckweisungen">

+            <input message="tns:FiverxLinkService_ladeRueckweisungen">

+            </input>

+            <output message="tns:FiverxLinkService_ladeRueckweisungenResponse">

+            </output>

+        </operation>

+        <operation name="ladeRzDienste">

+            <input message="tns:FiverxLinkService_ladeRzDienste">

+            </input>

+            <output message="tns:FiverxLinkService_ladeRzDiensteResponse">

+            </output>

+        </operation>

+        <operation name="ladeRzVersion">

+            <input message="tns:FiverxLinkService_ladeRzVersion">

+            </input>

+            <output message="tns:FiverxLinkService_ladeRzVersionResponse">

+            </output>

+        </operation>

+        <operation name="ladeStatusRezept">

+            <input message="tns:FiverxLinkService_ladeStatusRezept">

+            </input>

+            <output message="tns:FiverxLinkService_ladeStatusRezeptResponse">

+            </output>

+        </operation>

+        <operation name="pruefeRezept">

+            <input message="tns:FiverxLinkService_pruefeRezept">

+            </input>

+            <output message="tns:FiverxLinkService_pruefeRezeptResponse">

+            </output>

+        </operation>

+        <operation name="sendeRezepte">

+            <input message="tns:FiverxLinkService_sendeRezepte">

+            </input>

+            <output message="tns:FiverxLinkService_sendeRezepteResponse">

+            </output>

+        </operation>

+        <operation name="storniereRezept">

+            <input message="tns:FiverxLinkService_storniereRezept">

+            </input>

+            <output message="tns:FiverxLinkService_storniereRezeptResponse">

+            </output>

+        </operation>

+    </portType>

+    <binding name="FiverxLinkServiceBinding" type="tns:FiverxLinkService">

+        <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>

+        <operation name="ladeRezepte">

+            <soap:operation soapAction=""/>

+            <input>

+                <soap:body use="literal"/>

+            </input>

+            <output>

+                <soap:body use="literal"/>

+            </output>

+        </operation>

+        <operation name="ladeRueckweisungen">

+            <soap:operation soapAction=""/>

+            <input>

+                <soap:body use="literal"/>

+            </input>

+            <output>

+                <soap:body use="literal"/>

+            </output>

+        </operation>

+        <operation name="ladeRzDienste">

+            <soap:operation soapAction=""/>

+            <input>

+                <soap:body use="literal"/>

+            </input>

+            <output>

+                <soap:body use="literal"/>

+            </output>

+        </operation>

+        <operation name="ladeRzVersion">

+            <soap:operation soapAction=""/>

+            <input>

+                <soap:body use="literal"/>

+            </input>

+            <output>

+                <soap:body use="literal"/>

+            </output>

+        </operation>

+        <operation name="ladeStatusRezept">

+            <soap:operation soapAction=""/>

+            <input>

+                <soap:body use="literal"/>

+            </input>

+            <output>

+                <soap:body use="literal"/>

+            </output>

+        </operation>

+        <operation name="pruefeRezept">

+            <soap:operation soapAction=""/>

+            <input>

+                <soap:body use="literal"/>

+            </input>

+            <output>

+                <soap:body use="literal"/>

+            </output>

+        </operation>

+        <operation name="sendeRezepte">

+            <soap:operation soapAction=""/>

+            <input>

+                <soap:body use="literal"/>

+            </input>

+            <output>

+                <soap:body use="literal"/>

+            </output>

+        </operation>

+        <operation name="storniereRezept">

+            <soap:operation soapAction=""/>

+            <input>

+                <soap:body use="literal"/>

+            </input>

+            <output>

+                <soap:body use="literal"/>

+            </output>

+        </operation>

+    </binding>

+    <service name="FiverxLinkService">

+        <port name="FiverxLinkServicePort" binding="tns:FiverxLinkServiceBinding">

+            <soap:address location="REPLACE_WITH_ACTUAL_URL"/>

+        </port>

+    </service>

+</definitions>

diff --git a/modules/adb-tests/src/test/wsdl/AXIS2-5749.wsdl b/modules/adb-tests/src/test/wsdl/AXIS2-5749.wsdl
new file mode 100644
index 0000000..719fdd2
--- /dev/null
+++ b/modules/adb-tests/src/test/wsdl/AXIS2-5749.wsdl
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<wsdl:definitions name="ColorService" targetNamespace="http://ise-online.com/ColorService/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:tns="http://ise-online.com/ColorService/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/">
+  <wsdl:types>
+    <xsd:schema targetNamespace="http://ise-online.com/ColorService/">
+      <xsd:element name="Color">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="in">
+               <xsd:simpleType>
+                  <xsd:restriction base="xsd:string">
+                     <xsd:enumeration value="RED"/>
+                     <xsd:enumeration value="GREEN"/>
+                     <xsd:enumeration value="BLUE"/>
+                  </xsd:restriction>
+               </xsd:simpleType>
+            </xsd:element>
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+      <xsd:element name="ColorResponse">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="out" type="xsd:string"/>
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+    </xsd:schema>
+  </wsdl:types>
+  <wsdl:message name="TestRequest">
+    <wsdl:part name="parameters" element="tns:Color">
+    </wsdl:part>
+  </wsdl:message>
+  <wsdl:message name="TestResponse">
+    <wsdl:part name="parameters" element="tns:ColorResponse">
+    </wsdl:part>
+  </wsdl:message>
+  <wsdl:portType name="ColorService">
+    <wsdl:operation name="Test">
+      <wsdl:input message="tns:TestRequest">
+    </wsdl:input>
+      <wsdl:output message="tns:TestResponse">
+    </wsdl:output>
+    </wsdl:operation>
+  </wsdl:portType>
+  <wsdl:binding name="ColorServiceSOAP" type="tns:ColorService">
+    <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
+    <wsdl:operation name="Test">
+      <soap:operation soapAction="http://ise-online.com/ColorService/Test"/>
+      <wsdl:input>
+        <soap:body use="literal"/>
+      </wsdl:input>
+      <wsdl:output>
+        <soap:body use="literal"/>
+      </wsdl:output>
+    </wsdl:operation>
+  </wsdl:binding>
+  <wsdl:service name="ColorService">
+    <wsdl:port name="ColorServiceSOAP" binding="tns:ColorServiceSOAP">
+      <soap:address location="http://www.example.org/"/>
+    </wsdl:port>
+  </wsdl:service>
+</wsdl:definitions>
diff --git a/modules/adb-tests/src/test/wsdl/AXIS2-5750.wsdl b/modules/adb-tests/src/test/wsdl/AXIS2-5750.wsdl
new file mode 100644
index 0000000..f6d668e
--- /dev/null
+++ b/modules/adb-tests/src/test/wsdl/AXIS2-5750.wsdl
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<wsdl:definitions name="FixedValueService" targetNamespace="http://ise-online.com/FixedValueService/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:tns="http://ise-online.com/FixedValueService/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/">
+  <wsdl:types>
+    <xsd:schema targetNamespace="http://ise-online.com/FixedValueService/">
+      <xsd:element name="FixedValue">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="nonFixedValue" minOccurs="0">
+              <xsd:simpleType>
+                <xsd:restriction base="xsd:string">
+                  <xsd:maxLength value="10"/>
+                </xsd:restriction>
+              </xsd:simpleType>
+            </xsd:element>
+          </xsd:sequence>
+          <xsd:attribute name="fixedValue" fixed="strict" type="xsd:string" use="required"/>
+        </xsd:complexType>
+      </xsd:element>
+      <xsd:element name="FixedValueResponse">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="out" type="xsd:string"/>
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+    </xsd:schema>
+  </wsdl:types>
+  <wsdl:message name="TestRequest">
+    <wsdl:part name="parameters" element="tns:FixedValue">
+    </wsdl:part>
+  </wsdl:message>
+  <wsdl:message name="TestResponse">
+    <wsdl:part name="parameters" element="tns:FixedValueResponse">
+    </wsdl:part>
+  </wsdl:message>
+  <wsdl:portType name="FixedValueService">
+    <wsdl:operation name="Test">
+      <wsdl:input message="tns:TestRequest">
+      </wsdl:input>
+      <wsdl:output message="tns:TestResponse">
+      </wsdl:output>
+    </wsdl:operation>
+  </wsdl:portType>
+  <wsdl:binding name="FixedValueServiceSOAP" type="tns:FixedValueService">
+    <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
+    <wsdl:operation name="Test">
+      <soap:operation soapAction="http://ise-online.com/FixedValueService/Test"/>
+      <wsdl:input>
+        <soap:body use="literal"/>
+      </wsdl:input>
+      <wsdl:output>
+        <soap:body use="literal"/>
+      </wsdl:output>
+    </wsdl:operation>
+  </wsdl:binding>
+  <wsdl:service name="FixedValueService">
+    <wsdl:port name="FixedValueServiceSOAP" binding="tns:FixedValueServiceSOAP">
+      <soap:address location="http://www.example.org/"/>
+    </wsdl:port>
+  </wsdl:service>
+</wsdl:definitions>
diff --git a/modules/adb-tests/src/test/wsdl/AXIS2-5758.wsdl b/modules/adb-tests/src/test/wsdl/AXIS2-5758.wsdl
new file mode 100644
index 0000000..75c1ea5
--- /dev/null
+++ b/modules/adb-tests/src/test/wsdl/AXIS2-5758.wsdl
@@ -0,0 +1,63 @@
+<definitions name="StockQuote" 
+          targetNamespace="http://example.com/stockquote.wsdl"
+          xmlns:tns="http://example.com/stockquote.wsdl"
+          xmlns:xsd1="http://example.com/stockquote.xsd"
+          xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+          xmlns="http://schemas.xmlsoap.org/wsdl/">
+
+    <types>
+       <schema targetNamespace="http://example.com/stockquote.xsd"
+              xmlns="http://www.w3.org/2001/XMLSchema">
+           <element name="TradePriceRequest">
+              <complexType>
+                  <all>
+                      <element name="tickerSymbol" nillable="true" type="string"/>
+                  </all>
+              </complexType>
+           </element>
+           <element name="TradePrice">
+              <complexType>
+                  <all>
+                      <element name="price" nillable="true" type="float"/>
+                  </all>
+              </complexType>
+           </element>
+       </schema>
+    </types>
+
+    <message name="GetLastTradePriceInput">
+        <part name="body" element="xsd1:TradePriceRequest"/>
+    </message>
+
+    <message name="GetLastTradePriceOutput">
+        <part name="body" element="xsd1:TradePrice"/>
+    </message>
+
+    <portType name="StockQuotePortType">
+        <operation name="GetLastTradePrice">
+           <input message="tns:GetLastTradePriceInput"/>
+           <output message="tns:GetLastTradePriceOutput"/>
+        </operation>
+    </portType>
+
+    <binding name="StockQuoteSoapBinding" type="tns:StockQuotePortType">
+        <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
+        <operation name="GetLastTradePrice">
+           <soap:operation soapAction="http://example.com/GetLastTradePrice"/>
+           <input>
+               <soap:body use="literal"/>
+           </input>
+           <output>
+               <soap:body use="literal"/>
+           </output>
+        </operation>
+    </binding>
+
+    <service name="StockQuoteService">
+        <documentation>My first service</documentation>
+        <port name="StockQuotePort" binding="tns:StockQuoteSoapBinding">
+           <soap:address location="http://example.com/stockquote"/>
+        </port>
+    </service>
+
+</definitions>
diff --git a/modules/adb-tests/src/test/wsdl/AXIS2-5799.wsdl b/modules/adb-tests/src/test/wsdl/AXIS2-5799.wsdl
new file mode 100644
index 0000000..3c28264
--- /dev/null
+++ b/modules/adb-tests/src/test/wsdl/AXIS2-5799.wsdl
@@ -0,0 +1,47 @@
+<?xml version="1.0"?>
+<definitions name="Echo"
+          targetNamespace="urn:echo"
+          xmlns:tns="urn:echo"
+          xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+          xmlns="http://schemas.xmlsoap.org/wsdl/">
+
+    <types>
+        <schema targetNamespace="urn:echo" xmlns="http://www.w3.org/2001/XMLSchema">
+            <element name="ComplexTypeWithAttribute">
+                <complexType>
+                    <attribute name="attr" type="string" use="required"/>
+                </complexType>
+            </element>
+        </schema>
+    </types>
+
+    <message name="Echo">
+        <part name="body" element="tns:ComplexTypeWithAttribute"/>
+    </message>
+
+    <portType name="EchoPortType">
+        <operation name="Echo">
+           <input message="tns:Echo"/>
+           <output message="tns:Echo"/>
+        </operation>
+    </portType>
+
+    <binding name="EchoSoapBinding" type="tns:EchoPortType">
+        <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
+        <operation name="Echo">
+           <soap:operation soapAction="urn:echo:Echo"/>
+           <input>
+               <soap:body use="literal"/>
+           </input>
+           <output>
+               <soap:body use="literal"/>
+           </output>
+        </operation>
+    </binding>
+
+    <service name="EchoService">
+        <port name="EchoPort" binding="tns:EchoSoapBinding">
+           <soap:address location="REPLACE_WITH_ACTUAL_URL"/>
+        </port>
+    </service>
+</definitions>
diff --git a/modules/adb-tests/src/test/wsdl/AXIS2-5809.wsdl b/modules/adb-tests/src/test/wsdl/AXIS2-5809.wsdl
new file mode 100644
index 0000000..d94a574
--- /dev/null
+++ b/modules/adb-tests/src/test/wsdl/AXIS2-5809.wsdl
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://apache.org/axis2/echo" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="EchoService" targetNamespace="http://apache.org/axis2/echo">
+  <wsdl:types>
+    <xsd:schema targetNamespace="http://apache.org/axis2/echo" xmlns:xmime="http://www.w3.org/2005/05/xmlmime">
+      <xsd:element name="Echo">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="content" type="xsd:string"/>
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+      <xsd:element name="EchoResponse">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="content" type="xsd:string"/>
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+    </xsd:schema>
+  </wsdl:types>
+  <wsdl:message name="EchoRequest">
+    <wsdl:part element="tns:Echo" name="parameters"/>
+  </wsdl:message>
+  <wsdl:message name="EchoResponse">
+    <wsdl:part element="tns:EchoResponse" name="parameters"/>
+  </wsdl:message>
+  <wsdl:portType name="EchoService">
+    <wsdl:operation name="Echo">
+      <wsdl:input message="tns:EchoRequest"/>
+      <wsdl:output message="tns:EchoResponse"/>
+    </wsdl:operation>
+  </wsdl:portType>
+  <wsdl:binding name="EchoServiceSOAP" type="tns:EchoService">
+    <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
+    <wsdl:operation name="Echo">
+      <soap:operation soapAction="http://apache.org/axis2/echo/Echo"/>
+      <wsdl:input>
+        <soap:body use="literal"/>
+      </wsdl:input>
+      <wsdl:output>
+        <soap:body use="literal"/>
+      </wsdl:output>
+    </wsdl:operation>
+  </wsdl:binding>
+  <wsdl:service name="EchoService">
+    <wsdl:port binding="tns:EchoServiceSOAP" name="EchoServiceSOAP">
+      <soap:address location="http://localhost:8080/echo"/>
+    </wsdl:port>
+  </wsdl:service>
+</wsdl:definitions>
diff --git a/modules/adb-tests/src/test/wsdl/AXIS2-5887.wsdl b/modules/adb-tests/src/test/wsdl/AXIS2-5887.wsdl
new file mode 100644
index 0000000..8b33dbe
--- /dev/null
+++ b/modules/adb-tests/src/test/wsdl/AXIS2-5887.wsdl
Binary files differ
diff --git a/modules/adb-tests/src/test/wsdl/MTOMService.wsdl b/modules/adb-tests/src/test/wsdl/MTOMService.wsdl
new file mode 100644
index 0000000..c7b1613
--- /dev/null
+++ b/modules/adb-tests/src/test/wsdl/MTOMService.wsdl
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://apache.org/axis2/mtom" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="MTOMService" targetNamespace="http://apache.org/axis2/mtom">
+  <wsdl:types>
+    <xsd:schema targetNamespace="http://apache.org/axis2/mtom" xmlns:xmime="http://www.w3.org/2005/05/xmlmime">
+      <xsd:element name="GetContent">
+        <xsd:complexType>
+          <xsd:sequence/>
+        </xsd:complexType>
+      </xsd:element>
+      <xsd:element name="GetContentResponse">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="content" type="xsd:base64Binary" xmime:expectedContentTypes="application/octet-stream"/>
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+    </xsd:schema>
+  </wsdl:types>
+  <wsdl:message name="GetContentRequest">
+    <wsdl:part element="tns:GetContent" name="parameters"/>
+  </wsdl:message>
+  <wsdl:message name="GetContentResponse">
+    <wsdl:part element="tns:GetContentResponse" name="parameters"/>
+  </wsdl:message>
+  <wsdl:portType name="MTOMService">
+    <wsdl:operation name="GetContent">
+      <wsdl:input message="tns:GetContentRequest"/>
+      <wsdl:output message="tns:GetContentResponse"/>
+    </wsdl:operation>
+  </wsdl:portType>
+  <wsdl:binding name="MTOMServiceSOAP" type="tns:MTOMService">
+    <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
+    <wsdl:operation name="GetContent">
+      <soap:operation soapAction="http://apache.org/axis2/mtom/GetContent"/>
+      <wsdl:input>
+        <soap:body use="literal"/>
+      </wsdl:input>
+      <wsdl:output>
+        <soap:body use="literal"/>
+      </wsdl:output>
+    </wsdl:operation>
+  </wsdl:binding>
+  <wsdl:service name="MTOMService">
+    <wsdl:port binding="tns:MTOMServiceSOAP" name="MTOMServiceSOAP">
+      <soap:address location="http://localhost:8080/mtom"/>
+    </wsdl:port>
+  </wsdl:service>
+</wsdl:definitions>
diff --git a/modules/tool/axis2-aar-maven-plugin/src/test/resources/aar-plugin-config-1.xml b/modules/adb-tests/src/test/xsd/AXIS2-5771.xsd
similarity index 60%
copy from modules/tool/axis2-aar-maven-plugin/src/test/resources/aar-plugin-config-1.xml
copy to modules/adb-tests/src/test/xsd/AXIS2-5771.xsd
index d4dea4b..4ada1e9 100644
--- a/modules/tool/axis2-aar-maven-plugin/src/test/resources/aar-plugin-config-1.xml
+++ b/modules/adb-tests/src/test/xsd/AXIS2-5771.xsd
@@ -1,5 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-
 <!--
   ~ Licensed to the Apache Software Foundation (ASF) under one
   ~ or more contributor license agreements. See the NOTICE file
@@ -18,21 +17,16 @@
   ~ specific language governing permissions and limitations
   ~ under the License.
   -->
-
-<project>
-    <modelVersion>4.0.0</modelVersion>
-    <groupId>org.apache.axis2</groupId>
-    <artifactId>axis2-aar-plugin-basic-test1</artifactId>
-    <version>SNAPSHOT</version>
-    <name>Test 1 of the axis2-wsdl2code-maven-plugin</name>
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.axis2</groupId>
-               	<artifactId>axis2-aar-maven-plugin</artifactId>
-                <version>SNAPSHOT</version>
-                <configuration/>
-            </plugin>
-        </plugins>
-    </build>
-</project>
\ No newline at end of file
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://apache.org/axis2/schema/axis2_5771">
+    <xs:simpleType name="CabinType">
+        <xs:restriction base="xs:string">
+            <xs:enumeration value="Default"/>
+            <xs:enumeration value="Y"/>
+            <xs:enumeration value="S"/>
+            <xs:enumeration value="C"/>
+            <xs:enumeration value="J"/>
+            <xs:enumeration value="F"/>
+            <xs:enumeration value="P"/>
+        </xs:restriction>
+    </xs:simpleType>
+</xs:schema>
\ No newline at end of file
diff --git a/modules/adb-tests/src/test/xslt/AXIS2-5741.xsl b/modules/adb-tests/src/test/xslt/AXIS2-5741.xsl
new file mode 100644
index 0000000..4801e07
--- /dev/null
+++ b/modules/adb-tests/src/test/xslt/AXIS2-5741.xsl
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+    <xsl:template match="/serviceGroup/service[@name='FiverxLinkService']/parameter[@name='ServiceClass']/text()">
+        org.apache.axis2.databinding.axis2_5741.service.FiverxLinkServiceImpl
+    </xsl:template>
+    <xsl:template match="@*|node()">
+        <xsl:copy>
+            <xsl:apply-templates select="@*|node()"/>
+        </xsl:copy>
+    </xsl:template>
+</xsl:stylesheet>
diff --git a/modules/adb-tests/src/test/xslt/AXIS2-5749.xsl b/modules/adb-tests/src/test/xslt/AXIS2-5749.xsl
new file mode 100644
index 0000000..4fae41e
--- /dev/null
+++ b/modules/adb-tests/src/test/xslt/AXIS2-5749.xsl
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+    <xsl:template match="/serviceGroup/service[@name='ColorService']/parameter[@name='ServiceClass']/text()">
+        org.apache.axis2.databinding.axis2_5749.service.ColorServiceImpl
+    </xsl:template>
+    <xsl:template match="@*|node()">
+        <xsl:copy>
+            <xsl:apply-templates select="@*|node()"/>
+        </xsl:copy>
+    </xsl:template>
+</xsl:stylesheet>
diff --git a/modules/adb-tests/src/test/xslt/AXIS2-5809.xsl b/modules/adb-tests/src/test/xslt/AXIS2-5809.xsl
new file mode 100644
index 0000000..03064e6
--- /dev/null
+++ b/modules/adb-tests/src/test/xslt/AXIS2-5809.xsl
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+    <xsl:template match="/serviceGroup/service[@name='EchoService']/parameter[@name='ServiceClass']/text()">
+        org.apache.axis2.databinding.axis2_5809.EchoServiceImpl
+    </xsl:template>
+    <xsl:template match="@*|node()">
+        <xsl:copy>
+            <xsl:apply-templates select="@*|node()"/>
+        </xsl:copy>
+    </xsl:template>
+</xsl:stylesheet>
diff --git a/modules/adb/pom.xml b/modules/adb/pom.xml
index 8dd44ab..171b778 100644
--- a/modules/adb/pom.xml
+++ b/modules/adb/pom.xml
@@ -23,9 +23,9 @@
     <modelVersion>4.0.0</modelVersion>
     <parent>
         <groupId>org.apache.axis2</groupId>
-        <artifactId>axis2-parent</artifactId>
-        <version>1.7.0-SNAPSHOT</version>
-        <relativePath>../parent/pom.xml</relativePath>
+        <artifactId>axis2</artifactId>
+        <version>1.8.0-SNAPSHOT</version>
+        <relativePath>../../pom.xml</relativePath>
     </parent>
 
     <artifactId>axis2-adb</artifactId>
@@ -49,10 +49,6 @@
             <scope>runtime</scope>
         </dependency>
         <dependency>
-            <groupId>org.apache.geronimo.specs</groupId>
-            <artifactId>geronimo-activation_1.1_spec</artifactId>
-        </dependency>
-        <dependency>
             <groupId>junit</groupId>
             <artifactId>junit</artifactId>
             <scope>test</scope>
@@ -61,10 +57,15 @@
             <groupId>xmlunit</groupId>
             <artifactId>xmlunit</artifactId>
             <scope>test</scope>
-        </dependency>       
+        </dependency>
         <dependency>
-            <groupId>org.apache.geronimo.specs</groupId>
-            <artifactId>geronimo-javamail_1.4_spec</artifactId>
+            <groupId>org.apache.ws.commons.axiom</groupId>
+            <artifactId>xml-truth</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>com.sun.mail</groupId>
+            <artifactId>javax.mail</artifactId>
             <scope>test</scope>
         </dependency>
     </dependencies>
diff --git a/modules/adb/src/org/apache/axis2/databinding/typemapping/SimpleTypeMapper.java b/modules/adb/src/org/apache/axis2/databinding/typemapping/SimpleTypeMapper.java
index 9d0d394..a10858b 100644
--- a/modules/adb/src/org/apache/axis2/databinding/typemapping/SimpleTypeMapper.java
+++ b/modules/adb/src/org/apache/axis2/databinding/typemapping/SimpleTypeMapper.java
@@ -20,10 +20,10 @@
 package org.apache.axis2.databinding.typemapping;
 
 import org.apache.axiom.attachments.ByteArrayDataSource;
-import org.apache.axiom.attachments.utils.DataHandlerUtils;
 import org.apache.axiom.om.OMElement;
 import org.apache.axiom.om.OMNode;
 import org.apache.axiom.om.OMText;
+import org.apache.axiom.util.base64.Base64Utils;
 import org.apache.axis2.databinding.types.HexBinary;
 import org.apache.axis2.databinding.utils.ConverterUtil;
 import org.apache.axis2.context.MessageContext;
@@ -33,6 +33,7 @@
 import javax.activation.DataHandler;
 import javax.xml.datatype.XMLGregorianCalendar;
 import javax.xml.namespace.QName;
+
 import java.text.DateFormat;
 import java.text.SimpleDateFormat;
 import java.util.*;
@@ -172,7 +173,7 @@
     }
 
     public static ArrayList getArrayList(OMElement element, String localName) {
-        Iterator childitr = element.getChildrenWithName(new QName(localName));
+        Iterator<OMElement> childitr = element.getChildrenWithName(new QName(localName));
         ArrayList list = new ArrayList();
         while (childitr.hasNext()) {
             Object o = childitr.next();
@@ -182,10 +183,10 @@
     }
 
     public static HashSet getHashSet(OMElement element, String localName) {
-        Iterator childitr = element.getChildrenWithName(new QName(localName));
+        Iterator<OMElement> childitr = element.getChildrenWithName(new QName(localName));
         final HashSet list = new HashSet();
         while (childitr.hasNext()) {
-            OMElement o = (OMElement) childitr.next();
+            OMElement o = childitr.next();
             list.add(o.getText());
         }
         return list;
@@ -200,7 +201,7 @@
             if (txt.isOptimized()) {
                 return (DataHandler)txt.getDataHandler();
             } else {
-                return (DataHandler)DataHandlerUtils.getDataHandlerFromText(txt.getText(), null);
+                return new DataHandler(new ByteArrayDataSource(Base64Utils.decode(txt.getText())));
             }
         }
         return null;
diff --git a/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/AnyType.java b/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/AnyType.java
deleted file mode 100644
index 887004d..0000000
--- a/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/AnyType.java
+++ /dev/null
@@ -1,413 +0,0 @@
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/**
- * AnyType.java
- *
- * This file was auto-generated from WSDL
- * by the Apache Axis2 version: SNAPSHOT  Built on : Dec 21, 2007 (04:03:30 LKT)
- */
-            
-                package org.apache.axis2.databinding.types.soapencoding;
-
-import javax.xml.stream.XMLStreamWriter;
-            
-
-            /**
-            *  AnyType bean class
-            */
-        
-        public  class AnyType
-        implements org.apache.axis2.databinding.ADBBean{
-        
-                public static final javax.xml.namespace.QName MY_QNAME = new javax.xml.namespace.QName(
-                "http://schemas.xmlsoap.org/soap/encoding/",
-                "anyType",
-                "SOAP-ENC");
-
-            
-
-        private static java.lang.String generatePrefix(java.lang.String namespace) {
-            if(namespace.equals("http://schemas.xmlsoap.org/soap/encoding/")){
-                return "SOAP-ENC";
-            }
-            return org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-        }
-
-        
-
-                        /**
-                        * field for AnyType
-                        */
-
-                        
-                                    protected org.apache.axiom.om.OMElement localAnyType ;
-                                
-
-                           /**
-                           * Auto generated getter method
-                           * @return org.apache.axiom.om.OMElement
-                           */
-                           public  org.apache.axiom.om.OMElement getAnyType(){
-                               return localAnyType;
-                           }
-
-                           
-                        
-                            /**
-                               * Auto generated setter method
-                               * @param param AnyType
-                               */
-                               public void setAnyType(org.apache.axiom.om.OMElement param){
-                            
-                                            this.localAnyType=param;
-                                    
-
-                               }
-                            
-
-     /**
-     * isReaderMTOMAware
-     * @return true if the reader supports MTOM
-     */
-   public static boolean isReaderMTOMAware(javax.xml.stream.XMLStreamReader reader) {
-        boolean isReaderMTOMAware = false;
-        
-        try{
-          isReaderMTOMAware = java.lang.Boolean.TRUE.equals(reader.getProperty(org.apache.axiom.om.OMConstants.IS_DATA_HANDLERS_AWARE));
-        }catch(java.lang.IllegalArgumentException e){
-          isReaderMTOMAware = false;
-        }
-        return isReaderMTOMAware;
-   }
-     
-     
-        /**
-        *
-        * @param parentQName
-        * @param factory
-        * @return org.apache.axiom.om.OMElement
-        */
-       public org.apache.axiom.om.OMElement getOMElement (
-               final javax.xml.namespace.QName parentQName,
-               final org.apache.axiom.om.OMFactory factory) throws org.apache.axis2.databinding.ADBException{
-
-
-        
-                org.apache.axiom.om.OMDataSource dataSource =
-                       new org.apache.axis2.databinding.ADBDataSource(this,MY_QNAME);
-                return factory.createOMElement(dataSource,MY_QNAME);
-            
-       }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                                       XMLStreamWriter xmlWriter)
-                                throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-                           serialize(parentQName,xmlWriter,false);
-         }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                               XMLStreamWriter xmlWriter,
-                               boolean serializeType)
-            throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-            
-                
-                //We can safely assume an element has only one type associated with it
-                
-                            java.lang.String namespace = "http://schemas.xmlsoap.org/soap/encoding/";
-                            java.lang.String localName = "anyType";
-                        
-                            if (! namespace.equals("")) {
-                                java.lang.String prefix = xmlWriter.getPrefix(namespace);
-
-                                if (prefix == null) {
-                                    prefix = generatePrefix(namespace);
-
-                                    xmlWriter.writeStartElement(prefix, localName, namespace);
-                                    xmlWriter.writeNamespace(prefix, namespace);
-                                    xmlWriter.setPrefix(prefix, namespace);
-
-                                } else {
-                                    xmlWriter.writeStartElement(namespace, localName);
-                                }
-
-                            } else {
-                                xmlWriter.writeStartElement(localName);
-                            }
-
-                            // add the type details if this is used in a simple type
-                               if (serializeType){
-                                   java.lang.String namespacePrefix = registerPrefix(xmlWriter,"http://schemas.xmlsoap.org/soap/encoding/");
-                                   if ((namespacePrefix != null) && (namespacePrefix.trim().length() > 0)){
-                                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                                           namespacePrefix+":anyType",
-                                           xmlWriter);
-                                   } else {
-                                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                                           "anyType",
-                                           xmlWriter);
-                                   }
-                               }
-                            
-                                          if (localAnyType==null){
-                                            
-                                                     throw new org.apache.axis2.databinding.ADBException("Value cannot be null !!");
-                                                
-                                         }else{
-                                        localAnyType.serialize(xmlWriter);
-                                            
-                                         }
-                                    
-                            xmlWriter.writeEndElement();
-
-                    
-
-        }
-
-         /**
-          * Util method to write an attribute with the ns prefix
-          */
-          private void writeAttribute(java.lang.String prefix,java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-              if (xmlWriter.getPrefix(namespace) == null) {
-                       xmlWriter.writeNamespace(prefix, namespace);
-                       xmlWriter.setPrefix(prefix, namespace);
-
-              }
-
-              xmlWriter.writeAttribute(namespace,attName,attValue);
-
-         }
-
-        /**
-          * Util method to write an attribute without the ns prefix
-          */
-          private void writeAttribute(java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-                if (namespace.equals(""))
-              {
-                  xmlWriter.writeAttribute(attName,attValue);
-              }
-              else
-              {
-                  registerPrefix(xmlWriter, namespace);
-                  xmlWriter.writeAttribute(namespace,attName,attValue);
-              }
-          }
-
-
-           /**
-             * Util method to write an attribute without the ns prefix
-             */
-            private void writeQNameAttribute(java.lang.String namespace, java.lang.String attName,
-                                             javax.xml.namespace.QName qname, javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-                java.lang.String attributeNamespace = qname.getNamespaceURI();
-                java.lang.String attributePrefix = xmlWriter.getPrefix(attributeNamespace);
-                if (attributePrefix == null) {
-                    attributePrefix = registerPrefix(xmlWriter, attributeNamespace);
-                }
-                java.lang.String attributeValue;
-                if (attributePrefix.trim().length() > 0) {
-                    attributeValue = attributePrefix + ":" + qname.getLocalPart();
-                } else {
-                    attributeValue = qname.getLocalPart();
-                }
-
-                if (namespace.equals("")) {
-                    xmlWriter.writeAttribute(attName, attributeValue);
-                } else {
-                    registerPrefix(xmlWriter, namespace);
-                    xmlWriter.writeAttribute(namespace, attName, attributeValue);
-                }
-            }
-        /**
-         *  method to handle Qnames
-         */
-
-        private void writeQName(javax.xml.namespace.QName qname,
-                                javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-            java.lang.String namespaceURI = qname.getNamespaceURI();
-            if (namespaceURI != null) {
-                java.lang.String prefix = xmlWriter.getPrefix(namespaceURI);
-                if (prefix == null) {
-                    prefix = generatePrefix(namespaceURI);
-                    xmlWriter.writeNamespace(prefix, namespaceURI);
-                    xmlWriter.setPrefix(prefix,namespaceURI);
-                }
-
-                if (prefix.trim().length() > 0){
-                    xmlWriter.writeCharacters(prefix + ":" + org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                } else {
-                    // i.e this is the default namespace
-                    xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                }
-
-            } else {
-                xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-            }
-        }
-
-        private void writeQNames(javax.xml.namespace.QName[] qnames,
-                                 javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-            if (qnames != null) {
-                // we have to store this data until last moment since it is not possible to write any
-                // namespace data after writing the charactor data
-                java.lang.StringBuffer stringToWrite = new java.lang.StringBuffer();
-                java.lang.String namespaceURI = null;
-                java.lang.String prefix = null;
-
-                for (int i = 0; i < qnames.length; i++) {
-                    if (i > 0) {
-                        stringToWrite.append(" ");
-                    }
-                    namespaceURI = qnames[i].getNamespaceURI();
-                    if (namespaceURI != null) {
-                        prefix = xmlWriter.getPrefix(namespaceURI);
-                        if ((prefix == null) || (prefix.length() == 0)) {
-                            prefix = generatePrefix(namespaceURI);
-                            xmlWriter.writeNamespace(prefix, namespaceURI);
-                            xmlWriter.setPrefix(prefix,namespaceURI);
-                        }
-
-                        if (prefix.trim().length() > 0){
-                            stringToWrite.append(prefix).append(":").append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        } else {
-                            stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        }
-                    } else {
-                        stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                    }
-                }
-                xmlWriter.writeCharacters(stringToWrite.toString());
-            }
-
-        }
-
-
-         /**
-         * Register a namespace prefix
-         */
-         private java.lang.String registerPrefix(javax.xml.stream.XMLStreamWriter xmlWriter, java.lang.String namespace) throws javax.xml.stream.XMLStreamException {
-                java.lang.String prefix = xmlWriter.getPrefix(namespace);
-
-                if (prefix == null) {
-                    prefix = generatePrefix(namespace);
-                    javax.xml.namespace.NamespaceContext nsContext = xmlWriter.getNamespaceContext();
-                    while (true) {
-                        java.lang.String uri = nsContext.getNamespaceURI(prefix);
-                        if (uri == null || uri.length() == 0) {
-                            break;
-                        }
-                        prefix = org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-                    }
-                    xmlWriter.writeNamespace(prefix, namespace);
-                    xmlWriter.setPrefix(prefix, namespace);
-                }
-
-                return prefix;
-            }
-
-
-  
-     /**
-      *  Factory class that keeps the parse method
-      */
-    public static class Factory{
-
-        
-        
-
-        /**
-        * static method to create the object
-        * Precondition:  If this object is an element, the current or next start element starts this object and any intervening reader events are ignorable
-        *                If this object is not an element, it is a complex type and the reader is at the event just after the outer start element
-        * Postcondition: If this object is an element, the reader is positioned at its end element
-        *                If this object is a complex type, the reader is positioned at the end element of its outer element
-        */
-        public static AnyType parse(javax.xml.stream.XMLStreamReader reader) throws java.lang.Exception{
-            AnyType object =
-                new AnyType();
-
-            int event;
-            java.lang.String nillableValue = null;
-            java.lang.String prefix ="";
-            java.lang.String namespaceuri ="";
-            try {
-                
-                while (!reader.isStartElement() && !reader.isEndElement())
-                    reader.next();
-
-                
-
-                
-                // Note all attributes that were handled. Used to differ normal attributes
-                // from anyAttributes.
-                java.util.Vector handledAttributes = new java.util.Vector();
-                
-
-                    
-                while(!reader.isEndElement()) {
-                    if (reader.isStartElement() ){
-                
-                                   if (reader.isStartElement()){
-                                
-                                    
-                                     
-                                     //use the QName from the parser as the name for the builder
-                                     javax.xml.namespace.QName startQname1 = reader.getName();
-
-                                     // We need to wrap the reader so that it produces a fake START_DOCUMENT event
-                                     // this is needed by the builder classes
-                                     org.apache.axis2.databinding.utils.NamedStaxOMBuilder builder1 =
-                                         new org.apache.axis2.databinding.utils.NamedStaxOMBuilder(
-                                             new org.apache.axis2.util.StreamWrapper(reader),startQname1);
-                                     object.setAnyType(builder1.getOMElement());
-                                     
-                              }  // End of if for expected property start element
-                                
-                             else{
-                                        // A start element we are not expecting indicates an invalid parameter was passed
-                                        throw new org.apache.axis2.databinding.ADBException("Unexpected subelement " + reader.getLocalName());
-                             }
-                          
-                             } else {
-                                reader.next();
-                             }  
-                           }  // end of while loop
-                        
-
-
-
-            } catch (javax.xml.stream.XMLStreamException e) {
-                throw new java.lang.Exception(e);
-            }
-
-            return object;
-        }
-
-        }//end of factory class
-
-        
-
-        }
-           
-          
\ No newline at end of file
diff --git a/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/AnyURI.java b/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/AnyURI.java
deleted file mode 100644
index f75bad9..0000000
--- a/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/AnyURI.java
+++ /dev/null
@@ -1,469 +0,0 @@
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/**
- * AnyURI.java
- *
- * This file was auto-generated from WSDL
- * by the Apache Axis2 version: SNAPSHOT  Built on : Dec 21, 2007 (04:03:30 LKT)
- */
-            
-                package org.apache.axis2.databinding.types.soapencoding;
-
-import javax.xml.stream.XMLStreamWriter;
-            
-
-            /**
-            *  AnyURI bean class
-            */
-        
-        public  class AnyURI
-        implements org.apache.axis2.databinding.ADBBean{
-        /* This type was generated from the piece of schema that had
-                name = anyURI
-                Namespace URI = http://schemas.xmlsoap.org/soap/encoding/
-                Namespace Prefix = ns1
-                */
-            
-
-        private static java.lang.String generatePrefix(java.lang.String namespace) {
-            if(namespace.equals("http://schemas.xmlsoap.org/soap/encoding/")){
-                return "SOAP-ENC";
-            }
-            return org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-        }
-
-        
-
-                        /**
-                        * field for AnyURI
-                        */
-
-                        
-                                    protected org.apache.axis2.databinding.types.URI localAnyURI ;
-                                
-
-                           /**
-                           * Auto generated getter method
-                           * @return org.apache.axis2.databinding.types.URI
-                           */
-                           public  org.apache.axis2.databinding.types.URI getAnyURI(){
-                               return localAnyURI;
-                           }
-
-                           
-                        
-                            /**
-                               * Auto generated setter method
-                               * @param param AnyURI
-                               */
-                               public void setAnyURI(org.apache.axis2.databinding.types.URI param){
-                            
-                                            this.localAnyURI=param;
-                                    
-
-                               }
-                            
-
-                            public java.lang.String toString(){
-                                
-                                        return localAnyURI.toString();
-                                    
-                            }
-                        
-
-     /**
-     * isReaderMTOMAware
-     * @return true if the reader supports MTOM
-     */
-   public static boolean isReaderMTOMAware(javax.xml.stream.XMLStreamReader reader) {
-        boolean isReaderMTOMAware = false;
-        
-        try{
-          isReaderMTOMAware = java.lang.Boolean.TRUE.equals(reader.getProperty(org.apache.axiom.om.OMConstants.IS_DATA_HANDLERS_AWARE));
-        }catch(java.lang.IllegalArgumentException e){
-          isReaderMTOMAware = false;
-        }
-        return isReaderMTOMAware;
-   }
-     
-     
-        /**
-        *
-        * @param parentQName
-        * @param factory
-        * @return org.apache.axiom.om.OMElement
-        */
-       public org.apache.axiom.om.OMElement getOMElement (
-               final javax.xml.namespace.QName parentQName,
-               final org.apache.axiom.om.OMFactory factory) throws org.apache.axis2.databinding.ADBException{
-
-
-        
-               org.apache.axiom.om.OMDataSource dataSource =
-                       new org.apache.axis2.databinding.ADBDataSource(this,parentQName);
-               return factory.createOMElement(dataSource,parentQName);
-            
-       }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                                       XMLStreamWriter xmlWriter)
-                                throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-                           serialize(parentQName,xmlWriter,false);
-         }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                               XMLStreamWriter xmlWriter,
-                               boolean serializeType)
-            throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-            
-                
-
-
-                java.lang.String prefix = null;
-                java.lang.String namespace = null;
-                
-
-                    prefix = parentQName.getPrefix();
-                    namespace = parentQName.getNamespaceURI();
-
-                    if ((namespace != null) && (namespace.trim().length() > 0)) {
-                        java.lang.String writerPrefix = xmlWriter.getPrefix(namespace);
-                        if (writerPrefix != null) {
-                            xmlWriter.writeStartElement(namespace, parentQName.getLocalPart());
-                        } else {
-                            if (prefix == null) {
-                                prefix = generatePrefix(namespace);
-                            }
-
-                            xmlWriter.writeStartElement(prefix, parentQName.getLocalPart(), namespace);
-                            xmlWriter.writeNamespace(prefix, namespace);
-                            xmlWriter.setPrefix(prefix, namespace);
-                        }
-                    } else {
-                        xmlWriter.writeStartElement(parentQName.getLocalPart());
-                    }
-                
-                  if (serializeType){
-               
-                   java.lang.String namespacePrefix = registerPrefix(xmlWriter,"http://schemas.xmlsoap.org/soap/encoding/");
-                   if ((namespacePrefix != null) && (namespacePrefix.trim().length() > 0)){
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           namespacePrefix+":anyURI",
-                           xmlWriter);
-                   } else {
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           "anyURI",
-                           xmlWriter);
-                   }
-
-               
-                   }
-               
-
-                                          if (localAnyURI==null){
-                                              // write the nil attribute
-                                              
-                                                     throw new org.apache.axis2.databinding.ADBException("anyURI cannot be null!!");
-                                                  
-                                          }else{
-
-                                        
-                                                   xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(localAnyURI));
-                                            
-                                          }
-                                    
-                    xmlWriter.writeEndElement();
-               
-
-        }
-
-         /**
-          * Util method to write an attribute with the ns prefix
-          */
-          private void writeAttribute(java.lang.String prefix,java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-              if (xmlWriter.getPrefix(namespace) == null) {
-                       xmlWriter.writeNamespace(prefix, namespace);
-                       xmlWriter.setPrefix(prefix, namespace);
-
-              }
-
-              xmlWriter.writeAttribute(namespace,attName,attValue);
-
-         }
-
-        /**
-          * Util method to write an attribute without the ns prefix
-          */
-          private void writeAttribute(java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-                if (namespace.equals(""))
-              {
-                  xmlWriter.writeAttribute(attName,attValue);
-              }
-              else
-              {
-                  registerPrefix(xmlWriter, namespace);
-                  xmlWriter.writeAttribute(namespace,attName,attValue);
-              }
-          }
-
-
-           /**
-             * Util method to write an attribute without the ns prefix
-             */
-            private void writeQNameAttribute(java.lang.String namespace, java.lang.String attName,
-                                             javax.xml.namespace.QName qname, javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-                java.lang.String attributeNamespace = qname.getNamespaceURI();
-                java.lang.String attributePrefix = xmlWriter.getPrefix(attributeNamespace);
-                if (attributePrefix == null) {
-                    attributePrefix = registerPrefix(xmlWriter, attributeNamespace);
-                }
-                java.lang.String attributeValue;
-                if (attributePrefix.trim().length() > 0) {
-                    attributeValue = attributePrefix + ":" + qname.getLocalPart();
-                } else {
-                    attributeValue = qname.getLocalPart();
-                }
-
-                if (namespace.equals("")) {
-                    xmlWriter.writeAttribute(attName, attributeValue);
-                } else {
-                    registerPrefix(xmlWriter, namespace);
-                    xmlWriter.writeAttribute(namespace, attName, attributeValue);
-                }
-            }
-        /**
-         *  method to handle Qnames
-         */
-
-        private void writeQName(javax.xml.namespace.QName qname,
-                                javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-            java.lang.String namespaceURI = qname.getNamespaceURI();
-            if (namespaceURI != null) {
-                java.lang.String prefix = xmlWriter.getPrefix(namespaceURI);
-                if (prefix == null) {
-                    prefix = generatePrefix(namespaceURI);
-                    xmlWriter.writeNamespace(prefix, namespaceURI);
-                    xmlWriter.setPrefix(prefix,namespaceURI);
-                }
-
-                if (prefix.trim().length() > 0){
-                    xmlWriter.writeCharacters(prefix + ":" + org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                } else {
-                    // i.e this is the default namespace
-                    xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                }
-
-            } else {
-                xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-            }
-        }
-
-        private void writeQNames(javax.xml.namespace.QName[] qnames,
-                                 javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-            if (qnames != null) {
-                // we have to store this data until last moment since it is not possible to write any
-                // namespace data after writing the charactor data
-                java.lang.StringBuffer stringToWrite = new java.lang.StringBuffer();
-                java.lang.String namespaceURI = null;
-                java.lang.String prefix = null;
-
-                for (int i = 0; i < qnames.length; i++) {
-                    if (i > 0) {
-                        stringToWrite.append(" ");
-                    }
-                    namespaceURI = qnames[i].getNamespaceURI();
-                    if (namespaceURI != null) {
-                        prefix = xmlWriter.getPrefix(namespaceURI);
-                        if ((prefix == null) || (prefix.length() == 0)) {
-                            prefix = generatePrefix(namespaceURI);
-                            xmlWriter.writeNamespace(prefix, namespaceURI);
-                            xmlWriter.setPrefix(prefix,namespaceURI);
-                        }
-
-                        if (prefix.trim().length() > 0){
-                            stringToWrite.append(prefix).append(":").append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        } else {
-                            stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        }
-                    } else {
-                        stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                    }
-                }
-                xmlWriter.writeCharacters(stringToWrite.toString());
-            }
-
-        }
-
-
-         /**
-         * Register a namespace prefix
-         */
-         private java.lang.String registerPrefix(javax.xml.stream.XMLStreamWriter xmlWriter, java.lang.String namespace) throws javax.xml.stream.XMLStreamException {
-                java.lang.String prefix = xmlWriter.getPrefix(namespace);
-
-                if (prefix == null) {
-                    prefix = generatePrefix(namespace);
-                    javax.xml.namespace.NamespaceContext nsContext = xmlWriter.getNamespaceContext();
-                    while (true) {
-                        java.lang.String uri = nsContext.getNamespaceURI(prefix);
-                        if (uri == null || uri.length() == 0) {
-                            break;
-                        }
-                        prefix = org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-                    }
-                    xmlWriter.writeNamespace(prefix, namespace);
-                    xmlWriter.setPrefix(prefix, namespace);
-                }
-
-                return prefix;
-            }
-
-
-  
-     /**
-      *  Factory class that keeps the parse method
-      */
-    public static class Factory{
-
-        
-        
-                public static AnyURI fromString(java.lang.String value,
-                                                    java.lang.String namespaceURI){
-                    AnyURI returnValue = new  AnyURI();
-                    
-                            returnValue.setAnyURI(
-                                org.apache.axis2.databinding.utils.ConverterUtil.convertToAnyURI(value));
-                        
-
-                    return returnValue;
-                }
-
-                public static AnyURI fromString(javax.xml.stream.XMLStreamReader xmlStreamReader,
-                                                                    java.lang.String content) {
-                    if (content.indexOf(":") > -1){
-                        java.lang.String prefix = content.substring(0,content.indexOf(":"));
-                        java.lang.String namespaceUri = xmlStreamReader.getNamespaceContext().getNamespaceURI(prefix);
-                        return AnyURI.Factory.fromString(content,namespaceUri);
-                    } else {
-                       return AnyURI.Factory.fromString(content,"");
-                    }
-                }
-
-            
-
-        /**
-        * static method to create the object
-        * Precondition:  If this object is an element, the current or next start element starts this object and any intervening reader events are ignorable
-        *                If this object is not an element, it is a complex type and the reader is at the event just after the outer start element
-        * Postcondition: If this object is an element, the reader is positioned at its end element
-        *                If this object is a complex type, the reader is positioned at the end element of its outer element
-        */
-        public static AnyURI parse(javax.xml.stream.XMLStreamReader reader) throws java.lang.Exception{
-            AnyURI object =
-                new AnyURI();
-
-            int event;
-            java.lang.String nillableValue = null;
-            java.lang.String prefix ="";
-            java.lang.String namespaceuri ="";
-            try {
-                
-                while (!reader.isStartElement() && !reader.isEndElement())
-                    reader.next();
-
-                
-                if (reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance","type")!=null){
-                  java.lang.String fullTypeName = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance",
-                        "type");
-                  if (fullTypeName!=null){
-                    java.lang.String nsPrefix = null;
-                    if (fullTypeName.indexOf(":") > -1){
-                        nsPrefix = fullTypeName.substring(0,fullTypeName.indexOf(":"));
-                    }
-                    nsPrefix = nsPrefix==null?"":nsPrefix;
-
-                    java.lang.String type = fullTypeName.substring(fullTypeName.indexOf(":")+1);
-                    
-                            if (!"anyURI".equals(type)){
-                                //find namespace for the prefix
-                                java.lang.String nsUri = reader.getNamespaceContext().getNamespaceURI(nsPrefix);
-                                return (AnyURI)org.apache.axis2.databinding.types.soapencoding.ExtensionMapper.getTypeObject(
-                                     nsUri,type,reader);
-                              }
-                        
-
-                  }
-                
-
-                }
-
-                
-
-                
-                // Note all attributes that were handled. Used to differ normal attributes
-                // from anyAttributes.
-                java.util.Vector handledAttributes = new java.util.Vector();
-                
-
-                    
-                while(!reader.isEndElement()) {
-                    if (reader.isStartElement()  || reader.hasText()){
-                
-                                    if (reader.isStartElement()  || reader.hasText()){
-                                
-                                    java.lang.String content = reader.getElementText();
-                                    
-                                              object.setAnyURI(
-                                                    org.apache.axis2.databinding.utils.ConverterUtil.convertToAnyURI(content));
-                                            
-                              }  // End of if for expected property start element
-                                
-                             else{
-                                        // A start element we are not expecting indicates an invalid parameter was passed
-                                        throw new org.apache.axis2.databinding.ADBException("Unexpected subelement " + reader.getLocalName());
-                             }
-                          
-                             } else {
-                                reader.next();
-                             }  
-                           }  // end of while loop
-                        
-
-
-
-            } catch (javax.xml.stream.XMLStreamException e) {
-                throw new java.lang.Exception(e);
-            }
-
-            return object;
-        }
-
-        }//end of factory class
-
-        
-
-        }
-           
-          
\ No newline at end of file
diff --git a/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/Array.java b/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/Array.java
deleted file mode 100644
index 7628011..0000000
--- a/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/Array.java
+++ /dev/null
@@ -1,710 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/**
- * Array.java
- *
- * This file was auto-generated from WSDL
- * by the Apache Axis2 version: SNAPSHOT  Built on : Dec 21, 2007 (04:03:30 LKT)
- */
-
-package org.apache.axis2.databinding.types.soapencoding;
-
-import org.apache.axiom.om.OMDataSource;
-import org.apache.axiom.om.OMElement;
-import org.apache.axiom.om.OMFactory;
-import org.apache.axis2.databinding.ADBBean;
-import org.apache.axis2.databinding.ADBDataSource;
-import org.apache.axis2.databinding.ADBException;
-import org.apache.axis2.databinding.utils.BeanUtil;
-import org.apache.axis2.databinding.utils.ConverterUtil;
-
-import javax.xml.stream.XMLStreamException;
-import javax.xml.stream.XMLStreamReader;
-import javax.xml.stream.XMLStreamWriter;
-
-import java.lang.reflect.Method;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-
-/**
- * Array bean class
- */
-
-public class Array implements ADBBean {
-
-    public static final java.lang.String CHILD_LOCAL_NAME = "item";
-    public static final java.lang.String SOAP_NAMESPACE_PREFIX = "SOAP-ENC";
-
-    public Array() {
-        this.objectList = new ArrayList();
-    }
-
-    private static java.lang.String generatePrefix(java.lang.String namespace) {
-        if (namespace.equals("http://schemas.xmlsoap.org/soap/encoding/")) {
-            return "SOAP-ENC";
-        }
-        return BeanUtil.getUniquePrefix();
-    }
-
-
-    protected List objectList;
-
-    public List getObjectList() {
-        return objectList;
-    }
-
-    public void setObjectList(List objectList) {
-        this.objectList = objectList;
-    }
-
-
-    public void addObject(Object object) {
-        this.objectList.add(object);
-    }
-
-    protected javax.xml.namespace.QName arrayTypeQName;
-
-    public void setArrayTypeQName(javax.xml.namespace.QName qname){
-        arrayTypeQName = qname;
-    }
-
-    public javax.xml.namespace.QName getArrayTypeQName(){
-        return arrayTypeQName;
-    }
-
-    /**
-     * field for ArrayType
-     * This was an Attribute!
-     */
-
-
-    protected java.lang.String localArrayType;
-
-
-    /**
-     * Auto generated getter method
-     *
-     * @return java.lang.String
-     */
-    public java.lang.String getArrayType() {
-        return localArrayType;
-    }
-
-
-    /**
-     * Auto generated setter method
-     *
-     * @param param ArrayType
-     */
-    public void setArrayType(java.lang.String param) {
-
-        this.localArrayType = param;
-
-
-    }
-
-
-    /**
-     * field for Offset
-     * This was an Attribute!
-     */
-
-
-    protected java.lang.String localOffset;
-
-
-    /**
-     * Auto generated getter method
-     *
-     * @return java.lang.String
-     */
-    public java.lang.String getOffset() {
-        return localOffset;
-    }
-
-
-    /**
-     * Auto generated setter method
-     *
-     * @param param Offset
-     */
-    public void setOffset(java.lang.String param) {
-
-        this.localOffset = param;
-
-
-    }
-
-
-    /**
-     * field for Id
-     * This was an Attribute!
-     */
-
-
-    protected org.apache.axis2.databinding.types.Id localId;
-
-
-    /**
-     * Auto generated getter method
-     *
-     * @return org.apache.axis2.databinding.types.Id
-     */
-    public org.apache.axis2.databinding.types.Id getId() {
-        return localId;
-    }
-
-
-    /**
-     * Auto generated setter method
-     *
-     * @param param Id
-     */
-    public void setId(org.apache.axis2.databinding.types.Id param) {
-
-        this.localId = param;
-
-
-    }
-
-
-    /**
-     * field for Href
-     * This was an Attribute!
-     */
-
-
-    protected org.apache.axis2.databinding.types.URI localHref;
-
-
-    /**
-     * Auto generated getter method
-     *
-     * @return org.apache.axis2.databinding.types.URI
-     */
-    public org.apache.axis2.databinding.types.URI getHref() {
-        return localHref;
-    }
-
-
-    /**
-     * Auto generated setter method
-     *
-     * @param param Href
-     */
-    public void setHref(org.apache.axis2.databinding.types.URI param) {
-
-        this.localHref = param;
-
-
-    }
-
-
-    /**
-     * isReaderMTOMAware
-     *
-     * @return true if the reader supports MTOM
-     */
-    public static boolean isReaderMTOMAware(javax.xml.stream.XMLStreamReader reader) {
-        boolean isReaderMTOMAware = false;
-
-        try {
-            isReaderMTOMAware = java.lang.Boolean.TRUE.equals(reader.getProperty(org.apache.axiom.om.OMConstants.IS_DATA_HANDLERS_AWARE));
-        } catch (java.lang.IllegalArgumentException e) {
-            isReaderMTOMAware = false;
-        }
-        return isReaderMTOMAware;
-    }
-
-
-    /**
-     * @param parentQName
-     * @param factory
-     * @return org.apache.axiom.om.OMElement
-     */
-    public OMElement getOMElement(
-            final javax.xml.namespace.QName parentQName,
-            final OMFactory factory) throws ADBException {
-
-
-        OMDataSource dataSource = new ADBDataSource(this, parentQName);
-        return factory.createOMElement(dataSource,parentQName);
-
-    }
-
-    public void serialize(final javax.xml.namespace.QName parentQName,
-                          XMLStreamWriter xmlWriter) throws XMLStreamException, ADBException {
-        serialize(parentQName, xmlWriter, false);
-    }
-
-    public void serialize(final javax.xml.namespace.QName parentQName,
-                          XMLStreamWriter xmlWriter,
-                          boolean serializeType) throws XMLStreamException, ADBException {
-
-
-        java.lang.String prefix = parentQName.getPrefix();
-        java.lang.String namespace = parentQName.getNamespaceURI();
-
-
-        writeStartElement(namespace, parentQName.getLocalPart(), prefix, xmlWriter);
-
-        if (serializeType) {
-
-            java.lang.String namespacePrefix = registerPrefix(xmlWriter, "http://schemas.xmlsoap.org/soap/encoding/");
-            if ((namespacePrefix != null) && (namespacePrefix.trim().length() > 0)) {
-                writeAttribute("xsi", "http://www.w3.org/2001/XMLSchema-instance", "type",
-                        namespacePrefix + ":Array",
-                        xmlWriter);
-            } else {
-                writeAttribute("xsi", "http://www.w3.org/2001/XMLSchema-instance", "type",
-                        "Array",
-                        xmlWriter);
-            }
-        }
-
-        java.lang.String arrayTypePrefix = null;
-        java.lang.String arrayType = null;
-        if (arrayTypeQName != null){
-            arrayTypePrefix = registerPrefix(xmlWriter, arrayTypeQName.getNamespaceURI());
-            arrayType = arrayTypeQName.getLocalPart() + "[" + objectList.size() + "]";
-        } else {
-            // write it as ur-type
-            arrayTypePrefix = registerPrefix(xmlWriter, "http://www.w3.org/2001/XMLSchema");
-            arrayType =  "ur-type[" + objectList.size() + "]";
-        }
-
-        if ((arrayTypePrefix != null) && (arrayTypePrefix.trim().length() > 0)) {
-            arrayType = arrayTypePrefix + ":" + arrayType;
-        }
-
-        writeAttribute(registerPrefix(xmlWriter, "http://schemas.xmlsoap.org/soap/encoding/"),
-                "http://schemas.xmlsoap.org/soap/encoding/",
-                "arrayType", arrayType, xmlWriter);
-
-        if (localOffset != null) {
-            writeAttribute("http://schemas.xmlsoap.org/soap/encoding/",
-                    "offset", ConverterUtil.convertToString(localOffset), xmlWriter);
-        }
-
-        if (localId != null) {
-            writeAttribute("", "id", ConverterUtil.convertToString(localId), xmlWriter);
-        }
-
-        if (localHref != null) {
-            writeAttribute("", "href", ConverterUtil.convertToString(localHref), xmlWriter);
-        }
-
-        // serialize the object array
-        // since soap encoding does not enforce the name of the children items
-        // here we use item as the child name.
-
-        // all the list objects must be ADBBeans for basic schema types such as
-        // int,float corresponding soapencoding class must be used
-        ADBBean adbBean;
-        for (Iterator iter = objectList.iterator(); iter.hasNext();) {
-            adbBean = (ADBBean) iter.next();
-            if (adbBean != null) {
-                if (arrayTypeQName != null) {
-                    // if the array Type is given then each element does not have to
-                    // write the type
-                    adbBean.serialize(new javax.xml.namespace.QName("", CHILD_LOCAL_NAME), xmlWriter);
-                } else {
-                    adbBean.serialize(new javax.xml.namespace.QName("", CHILD_LOCAL_NAME), xmlWriter, true);
-                }
-
-            } else {
-                //write the null attribute
-                writeStartElement("", CHILD_LOCAL_NAME, null, xmlWriter);
-                writeAttribute("xsi", "http://www.w3.org/2001/XMLSchema-instance", "nil", "1", xmlWriter);
-                xmlWriter.writeEndElement();
-            }
-        }
-
-
-        xmlWriter.writeEndElement();
-
-
-    }
-
-    private void writeStartElement(java.lang.String namespace,
-                                   java.lang.String localPart,
-                                   java.lang.String prefix,
-                                   XMLStreamWriter xmlWriter) throws XMLStreamException {
-        if ((namespace != null) && (namespace.trim().length() > 0)) {
-            java.lang.String writerPrefix = xmlWriter.getPrefix(namespace);
-            if (writerPrefix != null) {
-                xmlWriter.writeStartElement(namespace, localPart);
-            } else {
-                if (prefix == null) {
-                    prefix = generatePrefix(namespace);
-                }
-
-                xmlWriter.writeStartElement(prefix, localPart, namespace);
-                xmlWriter.writeNamespace(prefix, namespace);
-                xmlWriter.setPrefix(prefix, namespace);
-            }
-        } else {
-            xmlWriter.writeStartElement(localPart);
-        }
-    }
-
-    /**
-     * Util method to write an attribute with the ns prefix
-     */
-    private void writeAttribute(java.lang.String prefix, java.lang.String namespace, java.lang.String attName,
-                                java.lang.String attValue, javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-        if (xmlWriter.getPrefix(namespace) == null) {
-            xmlWriter.writeNamespace(prefix, namespace);
-            xmlWriter.setPrefix(prefix, namespace);
-
-        }
-
-        xmlWriter.writeAttribute(namespace, attName, attValue);
-
-    }
-
-    /**
-     * Util method to write an attribute without the ns prefix
-     */
-    private void writeAttribute(java.lang.String namespace, java.lang.String attName,
-                                java.lang.String attValue, javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-        if (namespace.equals("")) {
-            xmlWriter.writeAttribute(attName, attValue);
-        } else {
-            registerPrefix(xmlWriter, namespace);
-            xmlWriter.writeAttribute(namespace, attName, attValue);
-        }
-    }
-
-
-    /**
-     * Util method to write an attribute without the ns prefix
-     */
-    private void writeQNameAttribute(java.lang.String namespace, java.lang.String attName,
-                                     javax.xml.namespace.QName qname, javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-        java.lang.String attributeNamespace = qname.getNamespaceURI();
-        java.lang.String attributePrefix = xmlWriter.getPrefix(attributeNamespace);
-        if (attributePrefix == null) {
-            attributePrefix = registerPrefix(xmlWriter, attributeNamespace);
-        }
-        java.lang.String attributeValue;
-        if (attributePrefix.trim().length() > 0) {
-            attributeValue = attributePrefix + ":" + qname.getLocalPart();
-        } else {
-            attributeValue = qname.getLocalPart();
-        }
-
-        if (namespace.equals("")) {
-            xmlWriter.writeAttribute(attName, attributeValue);
-        } else {
-            registerPrefix(xmlWriter, namespace);
-            xmlWriter.writeAttribute(namespace, attName, attributeValue);
-        }
-    }
-
-    /**
-     * method to handle Qnames
-     */
-
-    private void writeQName(javax.xml.namespace.QName qname,
-                            javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-        java.lang.String namespaceURI = qname.getNamespaceURI();
-        if (namespaceURI != null) {
-            java.lang.String prefix = xmlWriter.getPrefix(namespaceURI);
-            if (prefix == null) {
-                prefix = generatePrefix(namespaceURI);
-                xmlWriter.writeNamespace(prefix, namespaceURI);
-                xmlWriter.setPrefix(prefix, namespaceURI);
-            }
-
-            if (prefix.trim().length() > 0) {
-                xmlWriter.writeCharacters(prefix + ":" + org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-            } else {
-                // i.e this is the default namespace
-                xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-            }
-
-        } else {
-            xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-        }
-    }
-
-    private void writeQNames(javax.xml.namespace.QName[] qnames,
-                             javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-        if (qnames != null) {
-            // we have to store this data until last moment since it is not possible to write any
-            // namespace data after writing the charactor data
-            java.lang.StringBuffer stringToWrite = new java.lang.StringBuffer();
-            java.lang.String namespaceURI = null;
-            java.lang.String prefix = null;
-
-            for (int i = 0; i < qnames.length; i++) {
-                if (i > 0) {
-                    stringToWrite.append(" ");
-                }
-                namespaceURI = qnames[i].getNamespaceURI();
-                if (namespaceURI != null) {
-                    prefix = xmlWriter.getPrefix(namespaceURI);
-                    if ((prefix == null) || (prefix.length() == 0)) {
-                        prefix = generatePrefix(namespaceURI);
-                        xmlWriter.writeNamespace(prefix, namespaceURI);
-                        xmlWriter.setPrefix(prefix, namespaceURI);
-                    }
-
-                    if (prefix.trim().length() > 0) {
-                        stringToWrite.append(prefix).append(":").append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                    } else {
-                        stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                    }
-                } else {
-                    stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                }
-            }
-            xmlWriter.writeCharacters(stringToWrite.toString());
-        }
-
-    }
-
-
-    /**
-     * Register a namespace prefix
-     */
-    private java.lang.String registerPrefix(javax.xml.stream.XMLStreamWriter xmlWriter, java.lang.String namespace) throws javax.xml.stream.XMLStreamException {
-        java.lang.String prefix = xmlWriter.getPrefix(namespace);
-
-        if (prefix == null) {
-            prefix = generatePrefix(namespace);
-            javax.xml.namespace.NamespaceContext nsContext = xmlWriter.getNamespaceContext();
-            while (true) {
-                java.lang.String uri = nsContext.getNamespaceURI(prefix);
-                if (uri == null || uri.length() == 0) {
-                    break;
-                }
-                prefix = org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-            }
-            xmlWriter.writeNamespace(prefix, namespace);
-            xmlWriter.setPrefix(prefix, namespace);
-        }
-
-        return prefix;
-    }
-
-
-    /**
-     * Factory class that keeps the parse method
-     */
-    public static class Factory {
-
-
-        /**
-         * static method to create the object
-         * Precondition:  If this object is an element, the current or next start element starts this object and any intervening reader events are ignorable
-         * If this object is not an element, it is a complex type and the reader is at the event just after the outer start element
-         * Postcondition: If this object is an element, the reader is positioned at its end element
-         * If this object is a complex type, the reader is positioned at the end element of its outer element
-         */
-        public static Array parse(XMLStreamReader reader, Class mapperClass) throws Exception {
-            Array object = new Array();
-
-            int event;
-            java.lang.String nillableValue = null;
-            java.lang.String prefix = "";
-            java.lang.String namespaceuri = "";
-            try {
-
-                while (!reader.isStartElement() && !reader.isEndElement())
-                    reader.next();
-
-//                if (reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance", "type") != null) {
-//                    java.lang.String fullTypeName = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance",
-//                            "type");
-//                    if (fullTypeName != null) {
-//                        java.lang.String nsPrefix = null;
-//                        if (fullTypeName.indexOf(":") > -1) {
-//                            nsPrefix = fullTypeName.substring(0, fullTypeName.indexOf(":"));
-//                        }
-//                        nsPrefix = nsPrefix == null ? "" : nsPrefix;
-//
-//                        java.lang.String type = fullTypeName.substring(fullTypeName.indexOf(":") + 1);
-//
-//                        if (!"Array".equals(type)) {
-//                            //find namespace for the prefix
-//                            java.lang.String nsUri = reader.getNamespaceContext().getNamespaceURI(nsPrefix);
-//                            return (Array) ExtensionMapper.getTypeObject(nsUri, type, reader);
-//                        }
-//                    }
-//                }
-
-                // Note all attributes that were handled. Used to differ normal attributes
-                // from anyAttributes.
-                java.util.Vector handledAttributes = new java.util.Vector();
-
-                // handle attribute "arrayType"
-                java.lang.String attributeType =
-                        reader.getAttributeValue("http://schemas.xmlsoap.org/soap/encoding/", "arrayType");
-                object.setArrayType(ConverterUtil.convertToString(attributeType));
-
-                handledAttributes.add("arrayType");
-
-                // handle attribute "offset"
-                java.lang.String offset =
-                        reader.getAttributeValue("http://schemas.xmlsoap.org/soap/encoding/", "offset");
-                object.setOffset(ConverterUtil.convertToString(offset));
-
-                handledAttributes.add("offset");
-
-                // handle attribute "id"
-                java.lang.String id = reader.getAttributeValue(null, "id");
-                object.setId(ConverterUtil.convertToID(id));
-                handledAttributes.add("id");
-
-                // handle attribute "href"
-                java.lang.String href = reader.getAttributeValue(null, "href");
-                object.setHref(ConverterUtil.convertToAnyURI(href));
-                handledAttributes.add("href");
-
-                // at the starting point of the child elements
-                reader.next();
-
-                while (!reader.isStartElement() && !reader.isEndElement()) reader.next();
-                javax.xml.namespace.QName arrayElementQName = getInnerElementsQName(attributeType, reader);
-                object.setArrayTypeQName(arrayElementQName);
-                if (reader.isStartElement()) {
-
-                    boolean loopDone = false;
-
-                    while (!loopDone) {
-
-                        if (reader.isStartElement()) {
-                            // check whether is object is null or not
-                            nillableValue = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance","nil");
-                            if ("true".equals(nillableValue) || "1".equals(nillableValue)) {
-                                // move the cursor to the end element
-                                while (!reader.isEndElement()) reader.next();
-                                object.addObject(null);
-                            } else if (arrayElementQName != null){
-                                // i.e this array has same attribute type
-                                object.addObject(getObject(arrayElementQName,reader,mapperClass));
-                            } else {
-                                // arrayElementQName null means this does not have an arry level
-                                // type declaration we have to check for each and every element
-                                javax.xml.namespace.QName typeQName = getTypeQName(reader);
-                                if (typeQName == null){
-                                    typeQName = reader.getName();
-                                }
-                                object.addObject(getObject(typeQName,reader,mapperClass));
-                            }
-                            while (!reader.isStartElement() && !reader.isEndElement()) reader.next();
-                            reader.next();
-                        } else if (reader.isEndElement()) {
-                            loopDone = true;
-                        } else {
-                            reader.next();
-                        }
-
-                    }
-
-                }
-
-                while (!reader.isStartElement() && !reader.isEndElement())
-                    reader.next();
-
-                if (reader.isStartElement()){
-                      // A start element we are not expecting indicates a trailing invalid property
-                    throw new ADBException("Unexpected subelement " + reader.getLocalName());
-                }
-
-            } catch (XMLStreamException e) {
-                throw new Exception("Exception while parsing array",e);
-            }
-
-            return object;
-        }
-
-         private static Object getObject(javax.xml.namespace.QName qName,
-                                         XMLStreamReader reader,
-                                         Class mapperClass) throws Exception {
-            Object returnObject = null;
-            if (qName.getNamespaceURI().equals("http://schemas.xmlsoap.org/soap/encoding/")){
-              returnObject = ExtensionMapper.getTypeObject(
-                       qName.getNamespaceURI(),
-                       qName.getLocalPart(),
-                       reader);
-            } else if (qName.getNamespaceURI().equals("http://www.w3.org/2001/XMLSchema")){
-                returnObject = org.apache.axis2.databinding.types.xsd.ExtensionMapper.getTypeObject(
-                       qName.getNamespaceURI(),
-                       qName.getLocalPart(),
-                       reader);
-            } else {
-                // this could be a general one of have to call for the system Extension mapper
-                // invoking the mapperclass using reflection
-                Method getObjectMethod = mapperClass.getMethod("getTypeObject",
-                        new Class[]{java.lang.String.class, java.lang.String.class, XMLStreamReader.class});
-                returnObject = getObjectMethod.invoke(null,
-                        new Object[]{qName.getNamespaceURI(), qName.getLocalPart(), reader});
-            }
-            return returnObject;
-        }
-
-        private static javax.xml.namespace.QName getInnerElementsQName(
-                    java.lang.String attributeType, XMLStreamReader reader){
-               // attribute type is similar to xsd:ur-type[4]
-               javax.xml.namespace.QName typeQName = null;
-               java.lang.String prefix = "";
-               java.lang.String type = attributeType;
-                if (attributeType.indexOf(":") > -1){
-                    prefix = attributeType.substring(0,attributeType.indexOf(":"));
-                    type = attributeType.substring(attributeType.indexOf(":") + 1);
-                }
-                java.lang.String namespace = reader.getNamespaceURI(prefix);
-                type = type.substring(0,type.indexOf("["));
-                if (!type.equals("ur-type")){
-                    typeQName = new javax.xml.namespace.QName(namespace,type);
-                }
-                return typeQName;
-            }
-
-            private static javax.xml.namespace.QName getTypeQName(XMLStreamReader reader) {
-                javax.xml.namespace.QName typeQName = null;
-                if (reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance", "type") != null) {
-                    java.lang.String fullTypeName = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance",
-                            "type");
-                    if (fullTypeName != null) {
-                        java.lang.String nsPrefix = null;
-                        if (fullTypeName.indexOf(":") > -1) {
-                            nsPrefix = fullTypeName.substring(0, fullTypeName.indexOf(":"));
-                        }
-                        nsPrefix = nsPrefix == null ? "" : nsPrefix;
-                        java.lang.String type = fullTypeName.substring(fullTypeName.indexOf(":") + 1);
-                        typeQName = new javax.xml.namespace.QName(reader.getNamespaceURI(nsPrefix), type);
-                    }
-                }
-                return typeQName;
-            }
-
-    }
-
-}
-           
-          
\ No newline at end of file
diff --git a/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/ArrayCoordinate.java b/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/ArrayCoordinate.java
deleted file mode 100644
index de558fc..0000000
--- a/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/ArrayCoordinate.java
+++ /dev/null
@@ -1,437 +0,0 @@
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/**
- * ArrayCoordinate.java
- *
- * This file was auto-generated from WSDL
- * by the Apache Axis2 version: SNAPSHOT  Built on : Dec 21, 2007 (04:03:30 LKT)
- */
-            
-                package org.apache.axis2.databinding.types.soapencoding;
-
-import javax.xml.stream.XMLStreamWriter;
-            
-
-            /**
-            *  ArrayCoordinate bean class
-            */
-        
-        public  class ArrayCoordinate
-        implements org.apache.axis2.databinding.ADBBean{
-        
-                public static final javax.xml.namespace.QName MY_QNAME = new javax.xml.namespace.QName(
-                "http://schemas.xmlsoap.org/soap/encoding/",
-                "arrayCoordinate",
-                "ns1");
-
-            
-
-        private static java.lang.String generatePrefix(java.lang.String namespace) {
-            if(namespace.equals("http://schemas.xmlsoap.org/soap/encoding/")){
-                return "SOAP-ENC";
-            }
-            return org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-        }
-
-        
-
-                        /**
-                        * field for ArrayCoordinate
-                        */
-
-                        
-                                    protected java.lang.String localArrayCoordinate ;
-                                
-
-                           /**
-                           * Auto generated getter method
-                           * @return java.lang.String
-                           */
-                           public  java.lang.String getArrayCoordinate(){
-                               return localArrayCoordinate;
-                           }
-
-                           
-                        
-                            /**
-                               * Auto generated setter method
-                               * @param param ArrayCoordinate
-                               */
-                               public void setArrayCoordinate(java.lang.String param){
-                            
-                                             this.localArrayCoordinate=param;
-                                        
-
-                               }
-                            
-
-                            public java.lang.String toString(){
-                                
-                                        return localArrayCoordinate.toString();
-                                    
-                            }
-                        
-
-     /**
-     * isReaderMTOMAware
-     * @return true if the reader supports MTOM
-     */
-   public static boolean isReaderMTOMAware(javax.xml.stream.XMLStreamReader reader) {
-        boolean isReaderMTOMAware = false;
-        
-        try{
-          isReaderMTOMAware = java.lang.Boolean.TRUE.equals(reader.getProperty(org.apache.axiom.om.OMConstants.IS_DATA_HANDLERS_AWARE));
-        }catch(java.lang.IllegalArgumentException e){
-          isReaderMTOMAware = false;
-        }
-        return isReaderMTOMAware;
-   }
-     
-     
-        /**
-        *
-        * @param parentQName
-        * @param factory
-        * @return org.apache.axiom.om.OMElement
-        */
-       public org.apache.axiom.om.OMElement getOMElement (
-               final javax.xml.namespace.QName parentQName,
-               final org.apache.axiom.om.OMFactory factory) throws org.apache.axis2.databinding.ADBException{
-
-
-        
-                org.apache.axiom.om.OMDataSource dataSource =
-                       new org.apache.axis2.databinding.ADBDataSource(this,MY_QNAME);
-                return factory.createOMElement(dataSource,MY_QNAME);
-            
-       }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                                       XMLStreamWriter xmlWriter)
-                                throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-                           serialize(parentQName,xmlWriter,false);
-         }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                               XMLStreamWriter xmlWriter,
-                               boolean serializeType)
-            throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-            
-                
-                //We can safely assume an element has only one type associated with it
-                
-                            java.lang.String namespace = parentQName.getNamespaceURI();
-                            java.lang.String localName = parentQName.getLocalPart();
-                        
-                            if (! namespace.equals("")) {
-                                java.lang.String prefix = xmlWriter.getPrefix(namespace);
-
-                                if (prefix == null) {
-                                    prefix = generatePrefix(namespace);
-
-                                    xmlWriter.writeStartElement(prefix, localName, namespace);
-                                    xmlWriter.writeNamespace(prefix, namespace);
-                                    xmlWriter.setPrefix(prefix, namespace);
-
-                                } else {
-                                    xmlWriter.writeStartElement(namespace, localName);
-                                }
-
-                            } else {
-                                xmlWriter.writeStartElement(localName);
-                            }
-
-                            // add the type details if this is used in a simple type
-                               if (serializeType){
-                                   java.lang.String namespacePrefix = registerPrefix(xmlWriter,"http://schemas.xmlsoap.org/soap/encoding/");
-                                   if ((namespacePrefix != null) && (namespacePrefix.trim().length() > 0)){
-                                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                                           namespacePrefix+":arrayCoordinate",
-                                           xmlWriter);
-                                   } else {
-                                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                                           "arrayCoordinate",
-                                           xmlWriter);
-                                   }
-                               }
-                            
-                                          if (localArrayCoordinate==null){
-                                            
-                                                     throw new org.apache.axis2.databinding.ADBException("Value cannot be null !!");
-                                                
-                                         }else{
-                                        
-                                                       xmlWriter.writeCharacters(localArrayCoordinate);
-                                            
-                                         }
-                                    
-                            xmlWriter.writeEndElement();
-
-                    
-
-        }
-
-         /**
-          * Util method to write an attribute with the ns prefix
-          */
-          private void writeAttribute(java.lang.String prefix,java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-              if (xmlWriter.getPrefix(namespace) == null) {
-                       xmlWriter.writeNamespace(prefix, namespace);
-                       xmlWriter.setPrefix(prefix, namespace);
-
-              }
-
-              xmlWriter.writeAttribute(namespace,attName,attValue);
-
-         }
-
-        /**
-          * Util method to write an attribute without the ns prefix
-          */
-          private void writeAttribute(java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-                if (namespace.equals(""))
-              {
-                  xmlWriter.writeAttribute(attName,attValue);
-              }
-              else
-              {
-                  registerPrefix(xmlWriter, namespace);
-                  xmlWriter.writeAttribute(namespace,attName,attValue);
-              }
-          }
-
-
-           /**
-             * Util method to write an attribute without the ns prefix
-             */
-            private void writeQNameAttribute(java.lang.String namespace, java.lang.String attName,
-                                             javax.xml.namespace.QName qname, javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-                java.lang.String attributeNamespace = qname.getNamespaceURI();
-                java.lang.String attributePrefix = xmlWriter.getPrefix(attributeNamespace);
-                if (attributePrefix == null) {
-                    attributePrefix = registerPrefix(xmlWriter, attributeNamespace);
-                }
-                java.lang.String attributeValue;
-                if (attributePrefix.trim().length() > 0) {
-                    attributeValue = attributePrefix + ":" + qname.getLocalPart();
-                } else {
-                    attributeValue = qname.getLocalPart();
-                }
-
-                if (namespace.equals("")) {
-                    xmlWriter.writeAttribute(attName, attributeValue);
-                } else {
-                    registerPrefix(xmlWriter, namespace);
-                    xmlWriter.writeAttribute(namespace, attName, attributeValue);
-                }
-            }
-        /**
-         *  method to handle Qnames
-         */
-
-        private void writeQName(javax.xml.namespace.QName qname,
-                                javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-            java.lang.String namespaceURI = qname.getNamespaceURI();
-            if (namespaceURI != null) {
-                java.lang.String prefix = xmlWriter.getPrefix(namespaceURI);
-                if (prefix == null) {
-                    prefix = generatePrefix(namespaceURI);
-                    xmlWriter.writeNamespace(prefix, namespaceURI);
-                    xmlWriter.setPrefix(prefix,namespaceURI);
-                }
-
-                if (prefix.trim().length() > 0){
-                    xmlWriter.writeCharacters(prefix + ":" + org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                } else {
-                    // i.e this is the default namespace
-                    xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                }
-
-            } else {
-                xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-            }
-        }
-
-        private void writeQNames(javax.xml.namespace.QName[] qnames,
-                                 javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-            if (qnames != null) {
-                // we have to store this data until last moment since it is not possible to write any
-                // namespace data after writing the charactor data
-                java.lang.StringBuffer stringToWrite = new java.lang.StringBuffer();
-                java.lang.String namespaceURI = null;
-                java.lang.String prefix = null;
-
-                for (int i = 0; i < qnames.length; i++) {
-                    if (i > 0) {
-                        stringToWrite.append(" ");
-                    }
-                    namespaceURI = qnames[i].getNamespaceURI();
-                    if (namespaceURI != null) {
-                        prefix = xmlWriter.getPrefix(namespaceURI);
-                        if ((prefix == null) || (prefix.length() == 0)) {
-                            prefix = generatePrefix(namespaceURI);
-                            xmlWriter.writeNamespace(prefix, namespaceURI);
-                            xmlWriter.setPrefix(prefix,namespaceURI);
-                        }
-
-                        if (prefix.trim().length() > 0){
-                            stringToWrite.append(prefix).append(":").append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        } else {
-                            stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        }
-                    } else {
-                        stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                    }
-                }
-                xmlWriter.writeCharacters(stringToWrite.toString());
-            }
-
-        }
-
-
-         /**
-         * Register a namespace prefix
-         */
-         private java.lang.String registerPrefix(javax.xml.stream.XMLStreamWriter xmlWriter, java.lang.String namespace) throws javax.xml.stream.XMLStreamException {
-                java.lang.String prefix = xmlWriter.getPrefix(namespace);
-
-                if (prefix == null) {
-                    prefix = generatePrefix(namespace);
-                    javax.xml.namespace.NamespaceContext nsContext = xmlWriter.getNamespaceContext();
-                    while (true) {
-                        java.lang.String uri = nsContext.getNamespaceURI(prefix);
-                        if (uri == null || uri.length() == 0) {
-                            break;
-                        }
-                        prefix = org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-                    }
-                    xmlWriter.writeNamespace(prefix, namespace);
-                    xmlWriter.setPrefix(prefix, namespace);
-                }
-
-                return prefix;
-            }
-
-
-  
-     /**
-      *  Factory class that keeps the parse method
-      */
-    public static class Factory{
-
-        
-        
-                public static ArrayCoordinate fromString(java.lang.String value,
-                                                    java.lang.String namespaceURI){
-                    ArrayCoordinate returnValue = new  ArrayCoordinate();
-                    
-                            returnValue.setArrayCoordinate(
-                                org.apache.axis2.databinding.utils.ConverterUtil.convertToString(value));
-                        
-
-                    return returnValue;
-                }
-
-                public static ArrayCoordinate fromString(javax.xml.stream.XMLStreamReader xmlStreamReader,
-                                                                    java.lang.String content) {
-                    if (content.indexOf(":") > -1){
-                        java.lang.String prefix = content.substring(0,content.indexOf(":"));
-                        java.lang.String namespaceUri = xmlStreamReader.getNamespaceContext().getNamespaceURI(prefix);
-                        return ArrayCoordinate.Factory.fromString(content,namespaceUri);
-                    } else {
-                       return ArrayCoordinate.Factory.fromString(content,"");
-                    }
-                }
-
-            
-
-        /**
-        * static method to create the object
-        * Precondition:  If this object is an element, the current or next start element starts this object and any intervening reader events are ignorable
-        *                If this object is not an element, it is a complex type and the reader is at the event just after the outer start element
-        * Postcondition: If this object is an element, the reader is positioned at its end element
-        *                If this object is a complex type, the reader is positioned at the end element of its outer element
-        */
-        public static ArrayCoordinate parse(javax.xml.stream.XMLStreamReader reader) throws java.lang.Exception{
-            ArrayCoordinate object =
-                new ArrayCoordinate();
-
-            int event;
-            java.lang.String nillableValue = null;
-            java.lang.String prefix ="";
-            java.lang.String namespaceuri ="";
-            try {
-                
-                while (!reader.isStartElement() && !reader.isEndElement())
-                    reader.next();
-
-                
-
-                
-                // Note all attributes that were handled. Used to differ normal attributes
-                // from anyAttributes.
-                java.util.Vector handledAttributes = new java.util.Vector();
-                
-
-                    
-                while(!reader.isEndElement()) {
-                    if (reader.isStartElement()  || reader.hasText()){
-                
-                                    if (reader.isStartElement()  || reader.hasText()){
-                                
-                                    java.lang.String content = reader.getElementText();
-                                    
-                                              object.setArrayCoordinate(
-                                                    org.apache.axis2.databinding.utils.ConverterUtil.convertToString(content));
-                                            
-                              }  // End of if for expected property start element
-                                
-                             else{
-                                        // A start element we are not expecting indicates an invalid parameter was passed
-                                        throw new org.apache.axis2.databinding.ADBException("Unexpected subelement " + reader.getLocalName());
-                             }
-                          
-                             } else {
-                                reader.next();
-                             }  
-                           }  // end of while loop
-                        
-
-
-
-            } catch (javax.xml.stream.XMLStreamException e) {
-                throw new java.lang.Exception(e);
-            }
-
-            return object;
-        }
-
-        }//end of factory class
-
-        
-
-        }
-           
-          
\ No newline at end of file
diff --git a/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/ArrayE.java b/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/ArrayE.java
deleted file mode 100644
index 37253fa..0000000
--- a/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/ArrayE.java
+++ /dev/null
@@ -1,361 +0,0 @@
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/**
- * ArrayE.java
- *
- * This file was auto-generated from WSDL
- * by the Apache Axis2 version: SNAPSHOT  Built on : Dec 21, 2007 (04:03:30 LKT)
- */
-            
-                package org.apache.axis2.databinding.types.soapencoding;
-
-import javax.xml.stream.XMLStreamWriter;
-            
-
-            /**
-            *  ArrayE bean class
-            */
-        
-        public  class ArrayE
-        implements org.apache.axis2.databinding.ADBBean{
-        
-                public static final javax.xml.namespace.QName MY_QNAME = new javax.xml.namespace.QName(
-                "http://schemas.xmlsoap.org/soap/encoding/",
-                "Array",
-                "SOAP-ENC");
-
-            
-
-        private static java.lang.String generatePrefix(java.lang.String namespace) {
-            if(namespace.equals("http://schemas.xmlsoap.org/soap/encoding/")){
-                return "SOAP-ENC";
-            }
-            return org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-        }
-
-        
-
-                        /**
-                        * field for Array
-                        */
-
-                        
-                                    protected org.apache.axis2.databinding.types.soapencoding.Array localArray ;
-                                
-
-                           /**
-                           * Auto generated getter method
-                           * @return org.apache.axis2.databinding.types.soapencoding.Array
-                           */
-                           public  org.apache.axis2.databinding.types.soapencoding.Array getArray(){
-                               return localArray;
-                           }
-
-                           
-                        
-                            /**
-                               * Auto generated setter method
-                               * @param param Array
-                               */
-                               public void setArray(org.apache.axis2.databinding.types.soapencoding.Array param){
-                            
-                                            this.localArray=param;
-                                    
-
-                               }
-                            
-
-     /**
-     * isReaderMTOMAware
-     * @return true if the reader supports MTOM
-     */
-   public static boolean isReaderMTOMAware(javax.xml.stream.XMLStreamReader reader) {
-        boolean isReaderMTOMAware = false;
-        
-        try{
-          isReaderMTOMAware = java.lang.Boolean.TRUE.equals(reader.getProperty(org.apache.axiom.om.OMConstants.IS_DATA_HANDLERS_AWARE));
-        }catch(java.lang.IllegalArgumentException e){
-          isReaderMTOMAware = false;
-        }
-        return isReaderMTOMAware;
-   }
-     
-     
-        /**
-        *
-        * @param parentQName
-        * @param factory
-        * @return org.apache.axiom.om.OMElement
-        */
-       public org.apache.axiom.om.OMElement getOMElement (
-               final javax.xml.namespace.QName parentQName,
-               final org.apache.axiom.om.OMFactory factory) throws org.apache.axis2.databinding.ADBException{
-
-
-        
-                org.apache.axiom.om.OMDataSource dataSource =
-                       new org.apache.axis2.databinding.ADBDataSource(this,MY_QNAME);
-               return factory.createOMElement(dataSource,MY_QNAME);
-            
-       }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                                       XMLStreamWriter xmlWriter)
-                                throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-                           serialize(parentQName,xmlWriter,false);
-         }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                               XMLStreamWriter xmlWriter,
-                               boolean serializeType)
-            throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-            
-                
-                //We can safely assume an element has only one type associated with it
-                
-                                 if (localArray==null){
-                                   throw new org.apache.axis2.databinding.ADBException("Property cannot be null!");
-                                 }
-                                 localArray.serialize(MY_QNAME,xmlWriter);
-                            
-
-        }
-
-         /**
-          * Util method to write an attribute with the ns prefix
-          */
-          private void writeAttribute(java.lang.String prefix,java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-              if (xmlWriter.getPrefix(namespace) == null) {
-                       xmlWriter.writeNamespace(prefix, namespace);
-                       xmlWriter.setPrefix(prefix, namespace);
-
-              }
-
-              xmlWriter.writeAttribute(namespace,attName,attValue);
-
-         }
-
-        /**
-          * Util method to write an attribute without the ns prefix
-          */
-          private void writeAttribute(java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-                if (namespace.equals(""))
-              {
-                  xmlWriter.writeAttribute(attName,attValue);
-              }
-              else
-              {
-                  registerPrefix(xmlWriter, namespace);
-                  xmlWriter.writeAttribute(namespace,attName,attValue);
-              }
-          }
-
-
-           /**
-             * Util method to write an attribute without the ns prefix
-             */
-            private void writeQNameAttribute(java.lang.String namespace, java.lang.String attName,
-                                             javax.xml.namespace.QName qname, javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-                java.lang.String attributeNamespace = qname.getNamespaceURI();
-                java.lang.String attributePrefix = xmlWriter.getPrefix(attributeNamespace);
-                if (attributePrefix == null) {
-                    attributePrefix = registerPrefix(xmlWriter, attributeNamespace);
-                }
-                java.lang.String attributeValue;
-                if (attributePrefix.trim().length() > 0) {
-                    attributeValue = attributePrefix + ":" + qname.getLocalPart();
-                } else {
-                    attributeValue = qname.getLocalPart();
-                }
-
-                if (namespace.equals("")) {
-                    xmlWriter.writeAttribute(attName, attributeValue);
-                } else {
-                    registerPrefix(xmlWriter, namespace);
-                    xmlWriter.writeAttribute(namespace, attName, attributeValue);
-                }
-            }
-        /**
-         *  method to handle Qnames
-         */
-
-        private void writeQName(javax.xml.namespace.QName qname,
-                                javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-            java.lang.String namespaceURI = qname.getNamespaceURI();
-            if (namespaceURI != null) {
-                java.lang.String prefix = xmlWriter.getPrefix(namespaceURI);
-                if (prefix == null) {
-                    prefix = generatePrefix(namespaceURI);
-                    xmlWriter.writeNamespace(prefix, namespaceURI);
-                    xmlWriter.setPrefix(prefix,namespaceURI);
-                }
-
-                if (prefix.trim().length() > 0){
-                    xmlWriter.writeCharacters(prefix + ":" + org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                } else {
-                    // i.e this is the default namespace
-                    xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                }
-
-            } else {
-                xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-            }
-        }
-
-        private void writeQNames(javax.xml.namespace.QName[] qnames,
-                                 javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-            if (qnames != null) {
-                // we have to store this data until last moment since it is not possible to write any
-                // namespace data after writing the charactor data
-                java.lang.StringBuffer stringToWrite = new java.lang.StringBuffer();
-                java.lang.String namespaceURI = null;
-                java.lang.String prefix = null;
-
-                for (int i = 0; i < qnames.length; i++) {
-                    if (i > 0) {
-                        stringToWrite.append(" ");
-                    }
-                    namespaceURI = qnames[i].getNamespaceURI();
-                    if (namespaceURI != null) {
-                        prefix = xmlWriter.getPrefix(namespaceURI);
-                        if ((prefix == null) || (prefix.length() == 0)) {
-                            prefix = generatePrefix(namespaceURI);
-                            xmlWriter.writeNamespace(prefix, namespaceURI);
-                            xmlWriter.setPrefix(prefix,namespaceURI);
-                        }
-
-                        if (prefix.trim().length() > 0){
-                            stringToWrite.append(prefix).append(":").append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        } else {
-                            stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        }
-                    } else {
-                        stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                    }
-                }
-                xmlWriter.writeCharacters(stringToWrite.toString());
-            }
-
-        }
-
-
-         /**
-         * Register a namespace prefix
-         */
-         private java.lang.String registerPrefix(javax.xml.stream.XMLStreamWriter xmlWriter, java.lang.String namespace) throws javax.xml.stream.XMLStreamException {
-                java.lang.String prefix = xmlWriter.getPrefix(namespace);
-
-                if (prefix == null) {
-                    prefix = generatePrefix(namespace);
-                    javax.xml.namespace.NamespaceContext nsContext = xmlWriter.getNamespaceContext();
-                    while (true) {
-                        java.lang.String uri = nsContext.getNamespaceURI(prefix);
-                        if (uri == null || uri.length() == 0) {
-                            break;
-                        }
-                        prefix = org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-                    }
-                    xmlWriter.writeNamespace(prefix, namespace);
-                    xmlWriter.setPrefix(prefix, namespace);
-                }
-
-                return prefix;
-            }
-
-
-  
-     /**
-      *  Factory class that keeps the parse method
-      */
-    public static class Factory{
-
-        
-        
-
-        /**
-        * static method to create the object
-        * Precondition:  If this object is an element, the current or next start element starts this object and any intervening reader events are ignorable
-        *                If this object is not an element, it is a complex type and the reader is at the event just after the outer start element
-        * Postcondition: If this object is an element, the reader is positioned at its end element
-        *                If this object is a complex type, the reader is positioned at the end element of its outer element
-        */
-        public static ArrayE parse(javax.xml.stream.XMLStreamReader reader) throws java.lang.Exception{
-            ArrayE object =
-                new ArrayE();
-
-            int event;
-            java.lang.String nillableValue = null;
-            java.lang.String prefix ="";
-            java.lang.String namespaceuri ="";
-            try {
-                
-                while (!reader.isStartElement() && !reader.isEndElement())
-                    reader.next();
-
-                
-
-                
-                // Note all attributes that were handled. Used to differ normal attributes
-                // from anyAttributes.
-                java.util.Vector handledAttributes = new java.util.Vector();
-                
-
-                    
-                while(!reader.isEndElement()) {
-                    if (reader.isStartElement() ){
-                
-                                    if (reader.isStartElement() && new javax.xml.namespace.QName("http://schemas.xmlsoap.org/soap/encoding/","Array").equals(reader.getName())){
-                                
-                                        object.setArray(org.apache.axis2.databinding.types.soapencoding.Array.Factory.parse(reader, ExtensionMapper.class));
-                                    
-                              }  // End of if for expected property start element
-                                
-                             else{
-                                        // A start element we are not expecting indicates an invalid parameter was passed
-                                        throw new org.apache.axis2.databinding.ADBException("Unexpected subelement " + reader.getLocalName());
-                             }
-                          
-                             } else {
-                                reader.next();
-                             }  
-                           }  // end of while loop
-                        
-
-
-
-            } catch (javax.xml.stream.XMLStreamException e) {
-                throw new java.lang.Exception(e);
-            }
-
-            return object;
-        }
-
-        }//end of factory class
-
-        
-
-        }
-           
-          
\ No newline at end of file
diff --git a/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/Base64.java b/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/Base64.java
deleted file mode 100644
index 4f5dcd3..0000000
--- a/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/Base64.java
+++ /dev/null
@@ -1,437 +0,0 @@
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/**
- * Base64.java
- *
- * This file was auto-generated from WSDL
- * by the Apache Axis2 version: SNAPSHOT  Built on : Dec 21, 2007 (04:03:30 LKT)
- */
-            
-                package org.apache.axis2.databinding.types.soapencoding;
-
-import javax.xml.stream.XMLStreamWriter;
-            
-
-            /**
-            *  Base64 bean class
-            */
-        
-        public  class Base64
-        implements org.apache.axis2.databinding.ADBBean{
-        
-                public static final javax.xml.namespace.QName MY_QNAME = new javax.xml.namespace.QName(
-                "http://schemas.xmlsoap.org/soap/encoding/",
-                "base64",
-                "SOAP-ENC");
-
-            
-
-        private static java.lang.String generatePrefix(java.lang.String namespace) {
-            if(namespace.equals("http://schemas.xmlsoap.org/soap/encoding/")){
-                return "SOAP-ENC";
-            }
-            return org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-        }
-
-        
-
-                        /**
-                        * field for Base64
-                        */
-
-                        
-                                    protected javax.activation.DataHandler localBase64 ;
-                                
-
-                           /**
-                           * Auto generated getter method
-                           * @return javax.activation.DataHandler
-                           */
-                           public  javax.activation.DataHandler getBase64(){
-                               return localBase64;
-                           }
-
-                           
-                        
-                            /**
-                               * Auto generated setter method
-                               * @param param Base64
-                               */
-                               public void setBase64(javax.activation.DataHandler param){
-                            
-                                             this.localBase64=param;
-                                        
-
-                               }
-                            
-
-                            public java.lang.String toString(){
-                                
-                                        return localBase64.toString();
-                                    
-                            }
-                        
-
-     /**
-     * isReaderMTOMAware
-     * @return true if the reader supports MTOM
-     */
-   public static boolean isReaderMTOMAware(javax.xml.stream.XMLStreamReader reader) {
-        boolean isReaderMTOMAware = false;
-        
-        try{
-          isReaderMTOMAware = java.lang.Boolean.TRUE.equals(reader.getProperty(org.apache.axiom.om.OMConstants.IS_DATA_HANDLERS_AWARE));
-        }catch(java.lang.IllegalArgumentException e){
-          isReaderMTOMAware = false;
-        }
-        return isReaderMTOMAware;
-   }
-     
-     
-        /**
-        *
-        * @param parentQName
-        * @param factory
-        * @return org.apache.axiom.om.OMElement
-        */
-       public org.apache.axiom.om.OMElement getOMElement (
-               final javax.xml.namespace.QName parentQName,
-               final org.apache.axiom.om.OMFactory factory) throws org.apache.axis2.databinding.ADBException{
-
-
-        
-                org.apache.axiom.om.OMDataSource dataSource =
-                       new org.apache.axis2.databinding.ADBDataSource(this,MY_QNAME);
-               return factory.createOMElement(dataSource,MY_QNAME);
-            
-       }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                                       XMLStreamWriter xmlWriter)
-                                throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-                           serialize(parentQName,xmlWriter,false);
-         }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                               XMLStreamWriter xmlWriter,
-                               boolean serializeType)
-            throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-            
-                
-                //We can safely assume an element has only one type associated with it
-                
-                            java.lang.String namespace = parentQName.getNamespaceURI();
-                            java.lang.String localName = parentQName.getLocalPart();
-                        
-                            if (! namespace.equals("")) {
-                                java.lang.String prefix = xmlWriter.getPrefix(namespace);
-
-                                if (prefix == null) {
-                                    prefix = generatePrefix(namespace);
-
-                                    xmlWriter.writeStartElement(prefix, localName, namespace);
-                                    xmlWriter.writeNamespace(prefix, namespace);
-                                    xmlWriter.setPrefix(prefix, namespace);
-
-                                } else {
-                                    xmlWriter.writeStartElement(namespace, localName);
-                                }
-
-                            } else {
-                                xmlWriter.writeStartElement(localName);
-                            }
-
-                            // add the type details if this is used in a simple type
-                               if (serializeType){
-                                   java.lang.String namespacePrefix = registerPrefix(xmlWriter,"http://schemas.xmlsoap.org/soap/encoding/");
-                                   if ((namespacePrefix != null) && (namespacePrefix.trim().length() > 0)){
-                                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                                           namespacePrefix+":base64",
-                                           xmlWriter);
-                                   } else {
-                                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                                           "base64",
-                                           xmlWriter);
-                                   }
-                               }
-                            
-                                          if (localBase64==null){
-                                            
-                                                     throw new org.apache.axis2.databinding.ADBException("Value cannot be null !!");
-                                                
-                                         }else{
-                                        
-                                                       xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(localBase64));
-                                            
-                                         }
-                                    
-                            xmlWriter.writeEndElement();
-
-                    
-
-        }
-
-         /**
-          * Util method to write an attribute with the ns prefix
-          */
-          private void writeAttribute(java.lang.String prefix,java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-              if (xmlWriter.getPrefix(namespace) == null) {
-                       xmlWriter.writeNamespace(prefix, namespace);
-                       xmlWriter.setPrefix(prefix, namespace);
-
-              }
-
-              xmlWriter.writeAttribute(namespace,attName,attValue);
-
-         }
-
-        /**
-          * Util method to write an attribute without the ns prefix
-          */
-          private void writeAttribute(java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-                if (namespace.equals(""))
-              {
-                  xmlWriter.writeAttribute(attName,attValue);
-              }
-              else
-              {
-                  registerPrefix(xmlWriter, namespace);
-                  xmlWriter.writeAttribute(namespace,attName,attValue);
-              }
-          }
-
-
-           /**
-             * Util method to write an attribute without the ns prefix
-             */
-            private void writeQNameAttribute(java.lang.String namespace, java.lang.String attName,
-                                             javax.xml.namespace.QName qname, javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-                java.lang.String attributeNamespace = qname.getNamespaceURI();
-                java.lang.String attributePrefix = xmlWriter.getPrefix(attributeNamespace);
-                if (attributePrefix == null) {
-                    attributePrefix = registerPrefix(xmlWriter, attributeNamespace);
-                }
-                java.lang.String attributeValue;
-                if (attributePrefix.trim().length() > 0) {
-                    attributeValue = attributePrefix + ":" + qname.getLocalPart();
-                } else {
-                    attributeValue = qname.getLocalPart();
-                }
-
-                if (namespace.equals("")) {
-                    xmlWriter.writeAttribute(attName, attributeValue);
-                } else {
-                    registerPrefix(xmlWriter, namespace);
-                    xmlWriter.writeAttribute(namespace, attName, attributeValue);
-                }
-            }
-        /**
-         *  method to handle Qnames
-         */
-
-        private void writeQName(javax.xml.namespace.QName qname,
-                                javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-            java.lang.String namespaceURI = qname.getNamespaceURI();
-            if (namespaceURI != null) {
-                java.lang.String prefix = xmlWriter.getPrefix(namespaceURI);
-                if (prefix == null) {
-                    prefix = generatePrefix(namespaceURI);
-                    xmlWriter.writeNamespace(prefix, namespaceURI);
-                    xmlWriter.setPrefix(prefix,namespaceURI);
-                }
-
-                if (prefix.trim().length() > 0){
-                    xmlWriter.writeCharacters(prefix + ":" + org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                } else {
-                    // i.e this is the default namespace
-                    xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                }
-
-            } else {
-                xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-            }
-        }
-
-        private void writeQNames(javax.xml.namespace.QName[] qnames,
-                                 javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-            if (qnames != null) {
-                // we have to store this data until last moment since it is not possible to write any
-                // namespace data after writing the charactor data
-                java.lang.StringBuffer stringToWrite = new java.lang.StringBuffer();
-                java.lang.String namespaceURI = null;
-                java.lang.String prefix = null;
-
-                for (int i = 0; i < qnames.length; i++) {
-                    if (i > 0) {
-                        stringToWrite.append(" ");
-                    }
-                    namespaceURI = qnames[i].getNamespaceURI();
-                    if (namespaceURI != null) {
-                        prefix = xmlWriter.getPrefix(namespaceURI);
-                        if ((prefix == null) || (prefix.length() == 0)) {
-                            prefix = generatePrefix(namespaceURI);
-                            xmlWriter.writeNamespace(prefix, namespaceURI);
-                            xmlWriter.setPrefix(prefix,namespaceURI);
-                        }
-
-                        if (prefix.trim().length() > 0){
-                            stringToWrite.append(prefix).append(":").append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        } else {
-                            stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        }
-                    } else {
-                        stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                    }
-                }
-                xmlWriter.writeCharacters(stringToWrite.toString());
-            }
-
-        }
-
-
-         /**
-         * Register a namespace prefix
-         */
-         private java.lang.String registerPrefix(javax.xml.stream.XMLStreamWriter xmlWriter, java.lang.String namespace) throws javax.xml.stream.XMLStreamException {
-                java.lang.String prefix = xmlWriter.getPrefix(namespace);
-
-                if (prefix == null) {
-                    prefix = generatePrefix(namespace);
-                    javax.xml.namespace.NamespaceContext nsContext = xmlWriter.getNamespaceContext();
-                    while (true) {
-                        java.lang.String uri = nsContext.getNamespaceURI(prefix);
-                        if (uri == null || uri.length() == 0) {
-                            break;
-                        }
-                        prefix = org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-                    }
-                    xmlWriter.writeNamespace(prefix, namespace);
-                    xmlWriter.setPrefix(prefix, namespace);
-                }
-
-                return prefix;
-            }
-
-
-  
-     /**
-      *  Factory class that keeps the parse method
-      */
-    public static class Factory{
-
-        
-        
-                public static Base64 fromString(java.lang.String value,
-                                                    java.lang.String namespaceURI){
-                    Base64 returnValue = new  Base64();
-                    
-                            returnValue.setBase64(
-                                org.apache.axis2.databinding.utils.ConverterUtil.convertToBase64Binary(value));
-                        
-
-                    return returnValue;
-                }
-
-                public static Base64 fromString(javax.xml.stream.XMLStreamReader xmlStreamReader,
-                                                                    java.lang.String content) {
-                    if (content.indexOf(":") > -1){
-                        java.lang.String prefix = content.substring(0,content.indexOf(":"));
-                        java.lang.String namespaceUri = xmlStreamReader.getNamespaceContext().getNamespaceURI(prefix);
-                        return Base64.Factory.fromString(content,namespaceUri);
-                    } else {
-                       return Base64.Factory.fromString(content,"");
-                    }
-                }
-
-            
-
-        /**
-        * static method to create the object
-        * Precondition:  If this object is an element, the current or next start element starts this object and any intervening reader events are ignorable
-        *                If this object is not an element, it is a complex type and the reader is at the event just after the outer start element
-        * Postcondition: If this object is an element, the reader is positioned at its end element
-        *                If this object is a complex type, the reader is positioned at the end element of its outer element
-        */
-        public static Base64 parse(javax.xml.stream.XMLStreamReader reader) throws java.lang.Exception{
-            Base64 object =
-                new Base64();
-
-            int event;
-            java.lang.String nillableValue = null;
-            java.lang.String prefix ="";
-            java.lang.String namespaceuri ="";
-            try {
-                
-                while (!reader.isStartElement() && !reader.isEndElement())
-                    reader.next();
-
-                
-
-                
-                // Note all attributes that were handled. Used to differ normal attributes
-                // from anyAttributes.
-                java.util.Vector handledAttributes = new java.util.Vector();
-                
-
-                    
-                while(!reader.isEndElement()) {
-                    if (reader.isStartElement()  || reader.hasText()){
-                
-                                    if (reader.isStartElement()  || reader.hasText()){
-                                
-                                    java.lang.String content = reader.getElementText();
-                                    
-                                              object.setBase64(
-                                                    org.apache.axis2.databinding.utils.ConverterUtil.convertToBase64Binary(content));
-                                            
-                              }  // End of if for expected property start element
-                                
-                             else{
-                                        // A start element we are not expecting indicates an invalid parameter was passed
-                                        throw new org.apache.axis2.databinding.ADBException("Unexpected subelement " + reader.getLocalName());
-                             }
-                          
-                             } else {
-                                reader.next();
-                             }  
-                           }  // end of while loop
-                        
-
-
-
-            } catch (javax.xml.stream.XMLStreamException e) {
-                throw new java.lang.Exception(e);
-            }
-
-            return object;
-        }
-
-        }//end of factory class
-
-        
-
-        }
-           
-          
\ No newline at end of file
diff --git a/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/Base64Binary.java b/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/Base64Binary.java
deleted file mode 100644
index c9865f9..0000000
--- a/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/Base64Binary.java
+++ /dev/null
@@ -1,452 +0,0 @@
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/**
- * Base64Binary.java
- *
- * This file was auto-generated from WSDL
- * by the Apache Axis2 version: SNAPSHOT  Built on : Dec 21, 2007 (04:03:30 LKT)
- */
-            
-                package org.apache.axis2.databinding.types.soapencoding;
-
-import java.io.IOException;
-
-import javax.xml.stream.XMLStreamException;
-import javax.xml.stream.XMLStreamWriter;
-
-import org.apache.axiom.util.stax.XMLStreamWriterUtils;
-            
-
-            /**
-            *  Base64Binary bean class
-            */
-        
-        public  class Base64Binary
-        implements org.apache.axis2.databinding.ADBBean{
-        /* This type was generated from the piece of schema that had
-                name = base64Binary
-                Namespace URI = http://schemas.xmlsoap.org/soap/encoding/
-                Namespace Prefix = ns1
-                */
-            
-
-        private static java.lang.String generatePrefix(java.lang.String namespace) {
-            if(namespace.equals("http://schemas.xmlsoap.org/soap/encoding/")){
-                return "SOAP-ENC";
-            }
-            return org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-        }
-
-        
-
-                        /**
-                        * field for Base64Binary
-                        */
-
-                        
-                                    protected javax.activation.DataHandler localBase64Binary ;
-                                
-
-                           /**
-                           * Auto generated getter method
-                           * @return javax.activation.DataHandler
-                           */
-                           public  javax.activation.DataHandler getBase64Binary(){
-                               return localBase64Binary;
-                           }
-
-                           
-                        
-                            /**
-                               * Auto generated setter method
-                               * @param param Base64Binary
-                               */
-                               public void setBase64Binary(javax.activation.DataHandler param){
-                            
-                                            this.localBase64Binary=param;
-                                    
-
-                               }
-                            
-
-                            public java.lang.String toString(){
-                                
-                                        return localBase64Binary.toString();
-                                    
-                            }
-                        
-
-        /**
-        *
-        * @param parentQName
-        * @param factory
-        * @return org.apache.axiom.om.OMElement
-        */
-       public org.apache.axiom.om.OMElement getOMElement (
-               final javax.xml.namespace.QName parentQName,
-               final org.apache.axiom.om.OMFactory factory) throws org.apache.axis2.databinding.ADBException{
-
-
-        
-               org.apache.axiom.om.OMDataSource dataSource =
-                       new org.apache.axis2.databinding.ADBDataSource(this,parentQName);
-               return factory.createOMElement(dataSource,parentQName);
-            
-       }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                                       XMLStreamWriter xmlWriter)
-                                throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-                           serialize(parentQName,xmlWriter,false);
-         }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                               XMLStreamWriter xmlWriter,
-                               boolean serializeType)
-            throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-            
-                
-
-
-                java.lang.String prefix = null;
-                java.lang.String namespace = null;
-                
-
-                    prefix = parentQName.getPrefix();
-                    namespace = parentQName.getNamespaceURI();
-
-                    if ((namespace != null) && (namespace.trim().length() > 0)) {
-                        java.lang.String writerPrefix = xmlWriter.getPrefix(namespace);
-                        if (writerPrefix != null) {
-                            xmlWriter.writeStartElement(namespace, parentQName.getLocalPart());
-                        } else {
-                            if (prefix == null) {
-                                prefix = generatePrefix(namespace);
-                            }
-
-                            xmlWriter.writeStartElement(prefix, parentQName.getLocalPart(), namespace);
-                            xmlWriter.writeNamespace(prefix, namespace);
-                            xmlWriter.setPrefix(prefix, namespace);
-                        }
-                    } else {
-                        xmlWriter.writeStartElement(parentQName.getLocalPart());
-                    }
-                
-                  if (serializeType){
-               
-                   java.lang.String namespacePrefix = registerPrefix(xmlWriter,"http://schemas.xmlsoap.org/soap/encoding/");
-                   if ((namespacePrefix != null) && (namespacePrefix.trim().length() > 0)){
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           namespacePrefix+":base64Binary",
-                           xmlWriter);
-                   } else {
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           "base64Binary",
-                           xmlWriter);
-                   }
-
-               
-                   }
-               
-                                        
-                                    if (localBase64Binary!=null)
-                                    {
-                                        try {
-                                            XMLStreamWriterUtils.writeDataHandler(xmlWriter, localBase64Binary, null, true);
-                                        } catch (IOException ex) {
-                                            throw new XMLStreamException(ex);
-                                        }
-                                    }
-                                 
-                    xmlWriter.writeEndElement();
-               
-
-        }
-
-         /**
-          * Util method to write an attribute with the ns prefix
-          */
-          private void writeAttribute(java.lang.String prefix,java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-              if (xmlWriter.getPrefix(namespace) == null) {
-                       xmlWriter.writeNamespace(prefix, namespace);
-                       xmlWriter.setPrefix(prefix, namespace);
-
-              }
-
-              xmlWriter.writeAttribute(namespace,attName,attValue);
-
-         }
-
-        /**
-          * Util method to write an attribute without the ns prefix
-          */
-          private void writeAttribute(java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-                if (namespace.equals(""))
-              {
-                  xmlWriter.writeAttribute(attName,attValue);
-              }
-              else
-              {
-                  registerPrefix(xmlWriter, namespace);
-                  xmlWriter.writeAttribute(namespace,attName,attValue);
-              }
-          }
-
-
-           /**
-             * Util method to write an attribute without the ns prefix
-             */
-            private void writeQNameAttribute(java.lang.String namespace, java.lang.String attName,
-                                             javax.xml.namespace.QName qname, javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-                java.lang.String attributeNamespace = qname.getNamespaceURI();
-                java.lang.String attributePrefix = xmlWriter.getPrefix(attributeNamespace);
-                if (attributePrefix == null) {
-                    attributePrefix = registerPrefix(xmlWriter, attributeNamespace);
-                }
-                java.lang.String attributeValue;
-                if (attributePrefix.trim().length() > 0) {
-                    attributeValue = attributePrefix + ":" + qname.getLocalPart();
-                } else {
-                    attributeValue = qname.getLocalPart();
-                }
-
-                if (namespace.equals("")) {
-                    xmlWriter.writeAttribute(attName, attributeValue);
-                } else {
-                    registerPrefix(xmlWriter, namespace);
-                    xmlWriter.writeAttribute(namespace, attName, attributeValue);
-                }
-            }
-        /**
-         *  method to handle Qnames
-         */
-
-        private void writeQName(javax.xml.namespace.QName qname,
-                                javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-            java.lang.String namespaceURI = qname.getNamespaceURI();
-            if (namespaceURI != null) {
-                java.lang.String prefix = xmlWriter.getPrefix(namespaceURI);
-                if (prefix == null) {
-                    prefix = generatePrefix(namespaceURI);
-                    xmlWriter.writeNamespace(prefix, namespaceURI);
-                    xmlWriter.setPrefix(prefix,namespaceURI);
-                }
-
-                if (prefix.trim().length() > 0){
-                    xmlWriter.writeCharacters(prefix + ":" + org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                } else {
-                    // i.e this is the default namespace
-                    xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                }
-
-            } else {
-                xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-            }
-        }
-
-        private void writeQNames(javax.xml.namespace.QName[] qnames,
-                                 javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-            if (qnames != null) {
-                // we have to store this data until last moment since it is not possible to write any
-                // namespace data after writing the charactor data
-                java.lang.StringBuffer stringToWrite = new java.lang.StringBuffer();
-                java.lang.String namespaceURI = null;
-                java.lang.String prefix = null;
-
-                for (int i = 0; i < qnames.length; i++) {
-                    if (i > 0) {
-                        stringToWrite.append(" ");
-                    }
-                    namespaceURI = qnames[i].getNamespaceURI();
-                    if (namespaceURI != null) {
-                        prefix = xmlWriter.getPrefix(namespaceURI);
-                        if ((prefix == null) || (prefix.length() == 0)) {
-                            prefix = generatePrefix(namespaceURI);
-                            xmlWriter.writeNamespace(prefix, namespaceURI);
-                            xmlWriter.setPrefix(prefix,namespaceURI);
-                        }
-
-                        if (prefix.trim().length() > 0){
-                            stringToWrite.append(prefix).append(":").append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        } else {
-                            stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        }
-                    } else {
-                        stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                    }
-                }
-                xmlWriter.writeCharacters(stringToWrite.toString());
-            }
-
-        }
-
-
-         /**
-         * Register a namespace prefix
-         */
-         private java.lang.String registerPrefix(javax.xml.stream.XMLStreamWriter xmlWriter, java.lang.String namespace) throws javax.xml.stream.XMLStreamException {
-                java.lang.String prefix = xmlWriter.getPrefix(namespace);
-
-                if (prefix == null) {
-                    prefix = generatePrefix(namespace);
-                    javax.xml.namespace.NamespaceContext nsContext = xmlWriter.getNamespaceContext();
-                    while (true) {
-                        java.lang.String uri = nsContext.getNamespaceURI(prefix);
-                        if (uri == null || uri.length() == 0) {
-                            break;
-                        }
-                        prefix = org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-                    }
-                    xmlWriter.writeNamespace(prefix, namespace);
-                    xmlWriter.setPrefix(prefix, namespace);
-                }
-
-                return prefix;
-            }
-
-
-  
-     /**
-      *  Factory class that keeps the parse method
-      */
-    public static class Factory{
-
-        
-        
-                public static Base64Binary fromString(java.lang.String value,
-                                                    java.lang.String namespaceURI){
-                    Base64Binary returnValue = new  Base64Binary();
-                    
-                            returnValue.setBase64Binary(
-                                org.apache.axis2.databinding.utils.ConverterUtil.convertToBase64Binary(value));
-                        
-
-                    return returnValue;
-                }
-
-                public static Base64Binary fromString(javax.xml.stream.XMLStreamReader xmlStreamReader,
-                                                                    java.lang.String content) {
-                    if (content.indexOf(":") > -1){
-                        java.lang.String prefix = content.substring(0,content.indexOf(":"));
-                        java.lang.String namespaceUri = xmlStreamReader.getNamespaceContext().getNamespaceURI(prefix);
-                        return Base64Binary.Factory.fromString(content,namespaceUri);
-                    } else {
-                       return Base64Binary.Factory.fromString(content,"");
-                    }
-                }
-
-            
-
-        /**
-        * static method to create the object
-        * Precondition:  If this object is an element, the current or next start element starts this object and any intervening reader events are ignorable
-        *                If this object is not an element, it is a complex type and the reader is at the event just after the outer start element
-        * Postcondition: If this object is an element, the reader is positioned at its end element
-        *                If this object is a complex type, the reader is positioned at the end element of its outer element
-        */
-        public static Base64Binary parse(javax.xml.stream.XMLStreamReader reader) throws java.lang.Exception{
-            Base64Binary object =
-                new Base64Binary();
-
-            int event;
-            java.lang.String nillableValue = null;
-            java.lang.String prefix ="";
-            java.lang.String namespaceuri ="";
-            try {
-                
-                while (!reader.isStartElement() && !reader.isEndElement())
-                    reader.next();
-
-                
-                if (reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance","type")!=null){
-                  java.lang.String fullTypeName = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance",
-                        "type");
-                  if (fullTypeName!=null){
-                    java.lang.String nsPrefix = null;
-                    if (fullTypeName.indexOf(":") > -1){
-                        nsPrefix = fullTypeName.substring(0,fullTypeName.indexOf(":"));
-                    }
-                    nsPrefix = nsPrefix==null?"":nsPrefix;
-
-                    java.lang.String type = fullTypeName.substring(fullTypeName.indexOf(":")+1);
-                    
-                            if (!"base64Binary".equals(type)){
-                                //find namespace for the prefix
-                                java.lang.String nsUri = reader.getNamespaceContext().getNamespaceURI(nsPrefix);
-                                return (Base64Binary)org.apache.axis2.databinding.types.soapencoding.ExtensionMapper.getTypeObject(
-                                     nsUri,type,reader);
-                              }
-                        
-
-                  }
-                
-
-                }
-
-                
-
-                
-                // Note all attributes that were handled. Used to differ normal attributes
-                // from anyAttributes.
-                java.util.Vector handledAttributes = new java.util.Vector();
-                
-
-                    
-                while(!reader.isEndElement()) {
-                    if (reader.isStartElement()  || reader.hasText()){
-                
-                                    if (reader.isStartElement()  || reader.hasText()){
-                                
-                                            object.setBase64Binary(org.apache.axiom.util.stax.XMLStreamReaderUtils.getDataHandlerFromElement(reader));
-                                    
-                              }  // End of if for expected property start element
-                                
-                             else{
-                                        // A start element we are not expecting indicates an invalid parameter was passed
-                                        throw new org.apache.axis2.databinding.ADBException("Unexpected subelement " + reader.getLocalName());
-                             }
-                          
-                             } else {
-                                reader.next();
-                             }  
-                           }  // end of while loop
-                        
-
-
-
-            } catch (javax.xml.stream.XMLStreamException e) {
-                throw new java.lang.Exception(e);
-            }
-
-            return object;
-        }
-
-        }//end of factory class
-
-        
-
-        }
-           
-          
\ No newline at end of file
diff --git a/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/Date.java b/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/Date.java
deleted file mode 100644
index 827849e..0000000
--- a/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/Date.java
+++ /dev/null
@@ -1,469 +0,0 @@
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/**
- * Date.java
- *
- * This file was auto-generated from WSDL
- * by the Apache Axis2 version: SNAPSHOT  Built on : Dec 21, 2007 (04:03:30 LKT)
- */
-            
-                package org.apache.axis2.databinding.types.soapencoding;
-
-import javax.xml.stream.XMLStreamWriter;
-            
-
-            /**
-            *  Date bean class
-            */
-        
-        public  class Date
-        implements org.apache.axis2.databinding.ADBBean{
-        /* This type was generated from the piece of schema that had
-                name = date
-                Namespace URI = http://schemas.xmlsoap.org/soap/encoding/
-                Namespace Prefix = ns1
-                */
-            
-
-        private static java.lang.String generatePrefix(java.lang.String namespace) {
-            if(namespace.equals("http://schemas.xmlsoap.org/soap/encoding/")){
-                return "SOAP-ENC";
-            }
-            return org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-        }
-
-        
-
-                        /**
-                        * field for Date
-                        */
-
-                        
-                                    protected java.util.Date localDate ;
-                                
-
-                           /**
-                           * Auto generated getter method
-                           * @return java.util.Date
-                           */
-                           public  java.util.Date getDate(){
-                               return localDate;
-                           }
-
-                           
-                        
-                            /**
-                               * Auto generated setter method
-                               * @param param Date
-                               */
-                               public void setDate(java.util.Date param){
-                            
-                                            this.localDate=param;
-                                    
-
-                               }
-                            
-
-                            public java.lang.String toString(){
-                                
-                                        return localDate.toString();
-                                    
-                            }
-                        
-
-     /**
-     * isReaderMTOMAware
-     * @return true if the reader supports MTOM
-     */
-   public static boolean isReaderMTOMAware(javax.xml.stream.XMLStreamReader reader) {
-        boolean isReaderMTOMAware = false;
-        
-        try{
-          isReaderMTOMAware = java.lang.Boolean.TRUE.equals(reader.getProperty(org.apache.axiom.om.OMConstants.IS_DATA_HANDLERS_AWARE));
-        }catch(java.lang.IllegalArgumentException e){
-          isReaderMTOMAware = false;
-        }
-        return isReaderMTOMAware;
-   }
-     
-     
-        /**
-        *
-        * @param parentQName
-        * @param factory
-        * @return org.apache.axiom.om.OMElement
-        */
-       public org.apache.axiom.om.OMElement getOMElement (
-               final javax.xml.namespace.QName parentQName,
-               final org.apache.axiom.om.OMFactory factory) throws org.apache.axis2.databinding.ADBException{
-
-
-        
-               org.apache.axiom.om.OMDataSource dataSource =
-                       new org.apache.axis2.databinding.ADBDataSource(this,parentQName);
-               return factory.createOMElement(dataSource,parentQName);
-            
-       }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                                       XMLStreamWriter xmlWriter)
-                                throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-                           serialize(parentQName,xmlWriter,false);
-         }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                               XMLStreamWriter xmlWriter,
-                               boolean serializeType)
-            throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-            
-                
-
-
-                java.lang.String prefix = null;
-                java.lang.String namespace = null;
-                
-
-                    prefix = parentQName.getPrefix();
-                    namespace = parentQName.getNamespaceURI();
-
-                    if ((namespace != null) && (namespace.trim().length() > 0)) {
-                        java.lang.String writerPrefix = xmlWriter.getPrefix(namespace);
-                        if (writerPrefix != null) {
-                            xmlWriter.writeStartElement(namespace, parentQName.getLocalPart());
-                        } else {
-                            if (prefix == null) {
-                                prefix = generatePrefix(namespace);
-                            }
-
-                            xmlWriter.writeStartElement(prefix, parentQName.getLocalPart(), namespace);
-                            xmlWriter.writeNamespace(prefix, namespace);
-                            xmlWriter.setPrefix(prefix, namespace);
-                        }
-                    } else {
-                        xmlWriter.writeStartElement(parentQName.getLocalPart());
-                    }
-                
-                  if (serializeType){
-               
-                   java.lang.String namespacePrefix = registerPrefix(xmlWriter,"http://schemas.xmlsoap.org/soap/encoding/");
-                   if ((namespacePrefix != null) && (namespacePrefix.trim().length() > 0)){
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           namespacePrefix+":date",
-                           xmlWriter);
-                   } else {
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           "date",
-                           xmlWriter);
-                   }
-
-               
-                   }
-               
-
-                                          if (localDate==null){
-                                              // write the nil attribute
-                                              
-                                                     throw new org.apache.axis2.databinding.ADBException("date cannot be null!!");
-                                                  
-                                          }else{
-
-                                        
-                                                   xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(localDate));
-                                            
-                                          }
-                                    
-                    xmlWriter.writeEndElement();
-               
-
-        }
-
-         /**
-          * Util method to write an attribute with the ns prefix
-          */
-          private void writeAttribute(java.lang.String prefix,java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-              if (xmlWriter.getPrefix(namespace) == null) {
-                       xmlWriter.writeNamespace(prefix, namespace);
-                       xmlWriter.setPrefix(prefix, namespace);
-
-              }
-
-              xmlWriter.writeAttribute(namespace,attName,attValue);
-
-         }
-
-        /**
-          * Util method to write an attribute without the ns prefix
-          */
-          private void writeAttribute(java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-                if (namespace.equals(""))
-              {
-                  xmlWriter.writeAttribute(attName,attValue);
-              }
-              else
-              {
-                  registerPrefix(xmlWriter, namespace);
-                  xmlWriter.writeAttribute(namespace,attName,attValue);
-              }
-          }
-
-
-           /**
-             * Util method to write an attribute without the ns prefix
-             */
-            private void writeQNameAttribute(java.lang.String namespace, java.lang.String attName,
-                                             javax.xml.namespace.QName qname, javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-                java.lang.String attributeNamespace = qname.getNamespaceURI();
-                java.lang.String attributePrefix = xmlWriter.getPrefix(attributeNamespace);
-                if (attributePrefix == null) {
-                    attributePrefix = registerPrefix(xmlWriter, attributeNamespace);
-                }
-                java.lang.String attributeValue;
-                if (attributePrefix.trim().length() > 0) {
-                    attributeValue = attributePrefix + ":" + qname.getLocalPart();
-                } else {
-                    attributeValue = qname.getLocalPart();
-                }
-
-                if (namespace.equals("")) {
-                    xmlWriter.writeAttribute(attName, attributeValue);
-                } else {
-                    registerPrefix(xmlWriter, namespace);
-                    xmlWriter.writeAttribute(namespace, attName, attributeValue);
-                }
-            }
-        /**
-         *  method to handle Qnames
-         */
-
-        private void writeQName(javax.xml.namespace.QName qname,
-                                javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-            java.lang.String namespaceURI = qname.getNamespaceURI();
-            if (namespaceURI != null) {
-                java.lang.String prefix = xmlWriter.getPrefix(namespaceURI);
-                if (prefix == null) {
-                    prefix = generatePrefix(namespaceURI);
-                    xmlWriter.writeNamespace(prefix, namespaceURI);
-                    xmlWriter.setPrefix(prefix,namespaceURI);
-                }
-
-                if (prefix.trim().length() > 0){
-                    xmlWriter.writeCharacters(prefix + ":" + org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                } else {
-                    // i.e this is the default namespace
-                    xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                }
-
-            } else {
-                xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-            }
-        }
-
-        private void writeQNames(javax.xml.namespace.QName[] qnames,
-                                 javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-            if (qnames != null) {
-                // we have to store this data until last moment since it is not possible to write any
-                // namespace data after writing the charactor data
-                java.lang.StringBuffer stringToWrite = new java.lang.StringBuffer();
-                java.lang.String namespaceURI = null;
-                java.lang.String prefix = null;
-
-                for (int i = 0; i < qnames.length; i++) {
-                    if (i > 0) {
-                        stringToWrite.append(" ");
-                    }
-                    namespaceURI = qnames[i].getNamespaceURI();
-                    if (namespaceURI != null) {
-                        prefix = xmlWriter.getPrefix(namespaceURI);
-                        if ((prefix == null) || (prefix.length() == 0)) {
-                            prefix = generatePrefix(namespaceURI);
-                            xmlWriter.writeNamespace(prefix, namespaceURI);
-                            xmlWriter.setPrefix(prefix,namespaceURI);
-                        }
-
-                        if (prefix.trim().length() > 0){
-                            stringToWrite.append(prefix).append(":").append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        } else {
-                            stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        }
-                    } else {
-                        stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                    }
-                }
-                xmlWriter.writeCharacters(stringToWrite.toString());
-            }
-
-        }
-
-
-         /**
-         * Register a namespace prefix
-         */
-         private java.lang.String registerPrefix(javax.xml.stream.XMLStreamWriter xmlWriter, java.lang.String namespace) throws javax.xml.stream.XMLStreamException {
-                java.lang.String prefix = xmlWriter.getPrefix(namespace);
-
-                if (prefix == null) {
-                    prefix = generatePrefix(namespace);
-                    javax.xml.namespace.NamespaceContext nsContext = xmlWriter.getNamespaceContext();
-                    while (true) {
-                        java.lang.String uri = nsContext.getNamespaceURI(prefix);
-                        if (uri == null || uri.length() == 0) {
-                            break;
-                        }
-                        prefix = org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-                    }
-                    xmlWriter.writeNamespace(prefix, namespace);
-                    xmlWriter.setPrefix(prefix, namespace);
-                }
-
-                return prefix;
-            }
-
-
-  
-     /**
-      *  Factory class that keeps the parse method
-      */
-    public static class Factory{
-
-        
-        
-                public static Date fromString(java.lang.String value,
-                                                    java.lang.String namespaceURI){
-                    Date returnValue = new  Date();
-                    
-                            returnValue.setDate(
-                                org.apache.axis2.databinding.utils.ConverterUtil.convertToDate(value));
-                        
-
-                    return returnValue;
-                }
-
-                public static Date fromString(javax.xml.stream.XMLStreamReader xmlStreamReader,
-                                                                    java.lang.String content) {
-                    if (content.indexOf(":") > -1){
-                        java.lang.String prefix = content.substring(0,content.indexOf(":"));
-                        java.lang.String namespaceUri = xmlStreamReader.getNamespaceContext().getNamespaceURI(prefix);
-                        return Date.Factory.fromString(content,namespaceUri);
-                    } else {
-                       return Date.Factory.fromString(content,"");
-                    }
-                }
-
-            
-
-        /**
-        * static method to create the object
-        * Precondition:  If this object is an element, the current or next start element starts this object and any intervening reader events are ignorable
-        *                If this object is not an element, it is a complex type and the reader is at the event just after the outer start element
-        * Postcondition: If this object is an element, the reader is positioned at its end element
-        *                If this object is a complex type, the reader is positioned at the end element of its outer element
-        */
-        public static Date parse(javax.xml.stream.XMLStreamReader reader) throws java.lang.Exception{
-            Date object =
-                new Date();
-
-            int event;
-            java.lang.String nillableValue = null;
-            java.lang.String prefix ="";
-            java.lang.String namespaceuri ="";
-            try {
-                
-                while (!reader.isStartElement() && !reader.isEndElement())
-                    reader.next();
-
-                
-                if (reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance","type")!=null){
-                  java.lang.String fullTypeName = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance",
-                        "type");
-                  if (fullTypeName!=null){
-                    java.lang.String nsPrefix = null;
-                    if (fullTypeName.indexOf(":") > -1){
-                        nsPrefix = fullTypeName.substring(0,fullTypeName.indexOf(":"));
-                    }
-                    nsPrefix = nsPrefix==null?"":nsPrefix;
-
-                    java.lang.String type = fullTypeName.substring(fullTypeName.indexOf(":")+1);
-                    
-                            if (!"date".equals(type)){
-                                //find namespace for the prefix
-                                java.lang.String nsUri = reader.getNamespaceContext().getNamespaceURI(nsPrefix);
-                                return (Date)org.apache.axis2.databinding.types.soapencoding.ExtensionMapper.getTypeObject(
-                                     nsUri,type,reader);
-                              }
-                        
-
-                  }
-                
-
-                }
-
-                
-
-                
-                // Note all attributes that were handled. Used to differ normal attributes
-                // from anyAttributes.
-                java.util.Vector handledAttributes = new java.util.Vector();
-                
-
-                    
-                while(!reader.isEndElement()) {
-                    if (reader.isStartElement()  || reader.hasText()){
-                
-                                    if (reader.isStartElement()  || reader.hasText()){
-                                
-                                    java.lang.String content = reader.getElementText();
-                                    
-                                              object.setDate(
-                                                    org.apache.axis2.databinding.utils.ConverterUtil.convertToDate(content));
-                                            
-                              }  // End of if for expected property start element
-                                
-                             else{
-                                        // A start element we are not expecting indicates an invalid parameter was passed
-                                        throw new org.apache.axis2.databinding.ADBException("Unexpected subelement " + reader.getLocalName());
-                             }
-                          
-                             } else {
-                                reader.next();
-                             }  
-                           }  // end of while loop
-                        
-
-
-
-            } catch (javax.xml.stream.XMLStreamException e) {
-                throw new java.lang.Exception(e);
-            }
-
-            return object;
-        }
-
-        }//end of factory class
-
-        
-
-        }
-           
-          
\ No newline at end of file
diff --git a/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/DateTime.java b/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/DateTime.java
deleted file mode 100644
index 778c8e1..0000000
--- a/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/DateTime.java
+++ /dev/null
@@ -1,469 +0,0 @@
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/**
- * DateTime.java
- *
- * This file was auto-generated from WSDL
- * by the Apache Axis2 version: SNAPSHOT  Built on : Dec 21, 2007 (04:03:30 LKT)
- */
-            
-                package org.apache.axis2.databinding.types.soapencoding;
-
-import javax.xml.stream.XMLStreamWriter;
-            
-
-            /**
-            *  DateTime bean class
-            */
-        
-        public  class DateTime
-        implements org.apache.axis2.databinding.ADBBean{
-        /* This type was generated from the piece of schema that had
-                name = dateTime
-                Namespace URI = http://schemas.xmlsoap.org/soap/encoding/
-                Namespace Prefix = ns1
-                */
-            
-
-        private static java.lang.String generatePrefix(java.lang.String namespace) {
-            if(namespace.equals("http://schemas.xmlsoap.org/soap/encoding/")){
-                return "SOAP-ENC";
-            }
-            return org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-        }
-
-        
-
-                        /**
-                        * field for DateTime
-                        */
-
-                        
-                                    protected java.util.Calendar localDateTime ;
-                                
-
-                           /**
-                           * Auto generated getter method
-                           * @return java.util.Calendar
-                           */
-                           public  java.util.Calendar getDateTime(){
-                               return localDateTime;
-                           }
-
-                           
-                        
-                            /**
-                               * Auto generated setter method
-                               * @param param DateTime
-                               */
-                               public void setDateTime(java.util.Calendar param){
-                            
-                                            this.localDateTime=param;
-                                    
-
-                               }
-                            
-
-                            public java.lang.String toString(){
-                                
-                                        return localDateTime.toString();
-                                    
-                            }
-                        
-
-     /**
-     * isReaderMTOMAware
-     * @return true if the reader supports MTOM
-     */
-   public static boolean isReaderMTOMAware(javax.xml.stream.XMLStreamReader reader) {
-        boolean isReaderMTOMAware = false;
-        
-        try{
-          isReaderMTOMAware = java.lang.Boolean.TRUE.equals(reader.getProperty(org.apache.axiom.om.OMConstants.IS_DATA_HANDLERS_AWARE));
-        }catch(java.lang.IllegalArgumentException e){
-          isReaderMTOMAware = false;
-        }
-        return isReaderMTOMAware;
-   }
-     
-     
-        /**
-        *
-        * @param parentQName
-        * @param factory
-        * @return org.apache.axiom.om.OMElement
-        */
-       public org.apache.axiom.om.OMElement getOMElement (
-               final javax.xml.namespace.QName parentQName,
-               final org.apache.axiom.om.OMFactory factory) throws org.apache.axis2.databinding.ADBException{
-
-
-        
-               org.apache.axiom.om.OMDataSource dataSource =
-                       new org.apache.axis2.databinding.ADBDataSource(this,parentQName);
-               return factory.createOMElement(dataSource,parentQName);
-            
-       }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                                       XMLStreamWriter xmlWriter)
-                                throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-                           serialize(parentQName,xmlWriter,false);
-         }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                               XMLStreamWriter xmlWriter,
-                               boolean serializeType)
-            throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-            
-                
-
-
-                java.lang.String prefix = null;
-                java.lang.String namespace = null;
-                
-
-                    prefix = parentQName.getPrefix();
-                    namespace = parentQName.getNamespaceURI();
-
-                    if ((namespace != null) && (namespace.trim().length() > 0)) {
-                        java.lang.String writerPrefix = xmlWriter.getPrefix(namespace);
-                        if (writerPrefix != null) {
-                            xmlWriter.writeStartElement(namespace, parentQName.getLocalPart());
-                        } else {
-                            if (prefix == null) {
-                                prefix = generatePrefix(namespace);
-                            }
-
-                            xmlWriter.writeStartElement(prefix, parentQName.getLocalPart(), namespace);
-                            xmlWriter.writeNamespace(prefix, namespace);
-                            xmlWriter.setPrefix(prefix, namespace);
-                        }
-                    } else {
-                        xmlWriter.writeStartElement(parentQName.getLocalPart());
-                    }
-                
-                  if (serializeType){
-               
-                   java.lang.String namespacePrefix = registerPrefix(xmlWriter,"http://schemas.xmlsoap.org/soap/encoding/");
-                   if ((namespacePrefix != null) && (namespacePrefix.trim().length() > 0)){
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           namespacePrefix+":dateTime",
-                           xmlWriter);
-                   } else {
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           "dateTime",
-                           xmlWriter);
-                   }
-
-               
-                   }
-               
-
-                                          if (localDateTime==null){
-                                              // write the nil attribute
-                                              
-                                                     throw new org.apache.axis2.databinding.ADBException("dateTime cannot be null!!");
-                                                  
-                                          }else{
-
-                                        
-                                                   xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(localDateTime));
-                                            
-                                          }
-                                    
-                    xmlWriter.writeEndElement();
-               
-
-        }
-
-         /**
-          * Util method to write an attribute with the ns prefix
-          */
-          private void writeAttribute(java.lang.String prefix,java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-              if (xmlWriter.getPrefix(namespace) == null) {
-                       xmlWriter.writeNamespace(prefix, namespace);
-                       xmlWriter.setPrefix(prefix, namespace);
-
-              }
-
-              xmlWriter.writeAttribute(namespace,attName,attValue);
-
-         }
-
-        /**
-          * Util method to write an attribute without the ns prefix
-          */
-          private void writeAttribute(java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-                if (namespace.equals(""))
-              {
-                  xmlWriter.writeAttribute(attName,attValue);
-              }
-              else
-              {
-                  registerPrefix(xmlWriter, namespace);
-                  xmlWriter.writeAttribute(namespace,attName,attValue);
-              }
-          }
-
-
-           /**
-             * Util method to write an attribute without the ns prefix
-             */
-            private void writeQNameAttribute(java.lang.String namespace, java.lang.String attName,
-                                             javax.xml.namespace.QName qname, javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-                java.lang.String attributeNamespace = qname.getNamespaceURI();
-                java.lang.String attributePrefix = xmlWriter.getPrefix(attributeNamespace);
-                if (attributePrefix == null) {
-                    attributePrefix = registerPrefix(xmlWriter, attributeNamespace);
-                }
-                java.lang.String attributeValue;
-                if (attributePrefix.trim().length() > 0) {
-                    attributeValue = attributePrefix + ":" + qname.getLocalPart();
-                } else {
-                    attributeValue = qname.getLocalPart();
-                }
-
-                if (namespace.equals("")) {
-                    xmlWriter.writeAttribute(attName, attributeValue);
-                } else {
-                    registerPrefix(xmlWriter, namespace);
-                    xmlWriter.writeAttribute(namespace, attName, attributeValue);
-                }
-            }
-        /**
-         *  method to handle Qnames
-         */
-
-        private void writeQName(javax.xml.namespace.QName qname,
-                                javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-            java.lang.String namespaceURI = qname.getNamespaceURI();
-            if (namespaceURI != null) {
-                java.lang.String prefix = xmlWriter.getPrefix(namespaceURI);
-                if (prefix == null) {
-                    prefix = generatePrefix(namespaceURI);
-                    xmlWriter.writeNamespace(prefix, namespaceURI);
-                    xmlWriter.setPrefix(prefix,namespaceURI);
-                }
-
-                if (prefix.trim().length() > 0){
-                    xmlWriter.writeCharacters(prefix + ":" + org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                } else {
-                    // i.e this is the default namespace
-                    xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                }
-
-            } else {
-                xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-            }
-        }
-
-        private void writeQNames(javax.xml.namespace.QName[] qnames,
-                                 javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-            if (qnames != null) {
-                // we have to store this data until last moment since it is not possible to write any
-                // namespace data after writing the charactor data
-                java.lang.StringBuffer stringToWrite = new java.lang.StringBuffer();
-                java.lang.String namespaceURI = null;
-                java.lang.String prefix = null;
-
-                for (int i = 0; i < qnames.length; i++) {
-                    if (i > 0) {
-                        stringToWrite.append(" ");
-                    }
-                    namespaceURI = qnames[i].getNamespaceURI();
-                    if (namespaceURI != null) {
-                        prefix = xmlWriter.getPrefix(namespaceURI);
-                        if ((prefix == null) || (prefix.length() == 0)) {
-                            prefix = generatePrefix(namespaceURI);
-                            xmlWriter.writeNamespace(prefix, namespaceURI);
-                            xmlWriter.setPrefix(prefix,namespaceURI);
-                        }
-
-                        if (prefix.trim().length() > 0){
-                            stringToWrite.append(prefix).append(":").append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        } else {
-                            stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        }
-                    } else {
-                        stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                    }
-                }
-                xmlWriter.writeCharacters(stringToWrite.toString());
-            }
-
-        }
-
-
-         /**
-         * Register a namespace prefix
-         */
-         private java.lang.String registerPrefix(javax.xml.stream.XMLStreamWriter xmlWriter, java.lang.String namespace) throws javax.xml.stream.XMLStreamException {
-                java.lang.String prefix = xmlWriter.getPrefix(namespace);
-
-                if (prefix == null) {
-                    prefix = generatePrefix(namespace);
-                    javax.xml.namespace.NamespaceContext nsContext = xmlWriter.getNamespaceContext();
-                    while (true) {
-                        java.lang.String uri = nsContext.getNamespaceURI(prefix);
-                        if (uri == null || uri.length() == 0) {
-                            break;
-                        }
-                        prefix = org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-                    }
-                    xmlWriter.writeNamespace(prefix, namespace);
-                    xmlWriter.setPrefix(prefix, namespace);
-                }
-
-                return prefix;
-            }
-
-
-  
-     /**
-      *  Factory class that keeps the parse method
-      */
-    public static class Factory{
-
-        
-        
-                public static DateTime fromString(java.lang.String value,
-                                                    java.lang.String namespaceURI){
-                    DateTime returnValue = new  DateTime();
-                    
-                            returnValue.setDateTime(
-                                org.apache.axis2.databinding.utils.ConverterUtil.convertToDateTime(value));
-                        
-
-                    return returnValue;
-                }
-
-                public static DateTime fromString(javax.xml.stream.XMLStreamReader xmlStreamReader,
-                                                                    java.lang.String content) {
-                    if (content.indexOf(":") > -1){
-                        java.lang.String prefix = content.substring(0,content.indexOf(":"));
-                        java.lang.String namespaceUri = xmlStreamReader.getNamespaceContext().getNamespaceURI(prefix);
-                        return DateTime.Factory.fromString(content,namespaceUri);
-                    } else {
-                       return DateTime.Factory.fromString(content,"");
-                    }
-                }
-
-            
-
-        /**
-        * static method to create the object
-        * Precondition:  If this object is an element, the current or next start element starts this object and any intervening reader events are ignorable
-        *                If this object is not an element, it is a complex type and the reader is at the event just after the outer start element
-        * Postcondition: If this object is an element, the reader is positioned at its end element
-        *                If this object is a complex type, the reader is positioned at the end element of its outer element
-        */
-        public static DateTime parse(javax.xml.stream.XMLStreamReader reader) throws java.lang.Exception{
-            DateTime object =
-                new DateTime();
-
-            int event;
-            java.lang.String nillableValue = null;
-            java.lang.String prefix ="";
-            java.lang.String namespaceuri ="";
-            try {
-                
-                while (!reader.isStartElement() && !reader.isEndElement())
-                    reader.next();
-
-                
-                if (reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance","type")!=null){
-                  java.lang.String fullTypeName = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance",
-                        "type");
-                  if (fullTypeName!=null){
-                    java.lang.String nsPrefix = null;
-                    if (fullTypeName.indexOf(":") > -1){
-                        nsPrefix = fullTypeName.substring(0,fullTypeName.indexOf(":"));
-                    }
-                    nsPrefix = nsPrefix==null?"":nsPrefix;
-
-                    java.lang.String type = fullTypeName.substring(fullTypeName.indexOf(":")+1);
-                    
-                            if (!"dateTime".equals(type)){
-                                //find namespace for the prefix
-                                java.lang.String nsUri = reader.getNamespaceContext().getNamespaceURI(nsPrefix);
-                                return (DateTime)org.apache.axis2.databinding.types.soapencoding.ExtensionMapper.getTypeObject(
-                                     nsUri,type,reader);
-                              }
-                        
-
-                  }
-                
-
-                }
-
-                
-
-                
-                // Note all attributes that were handled. Used to differ normal attributes
-                // from anyAttributes.
-                java.util.Vector handledAttributes = new java.util.Vector();
-                
-
-                    
-                while(!reader.isEndElement()) {
-                    if (reader.isStartElement()  || reader.hasText()){
-                
-                                    if (reader.isStartElement()  || reader.hasText()){
-                                
-                                    java.lang.String content = reader.getElementText();
-                                    
-                                              object.setDateTime(
-                                                    org.apache.axis2.databinding.utils.ConverterUtil.convertToDateTime(content));
-                                            
-                              }  // End of if for expected property start element
-                                
-                             else{
-                                        // A start element we are not expecting indicates an invalid parameter was passed
-                                        throw new org.apache.axis2.databinding.ADBException("Unexpected subelement " + reader.getLocalName());
-                             }
-                          
-                             } else {
-                                reader.next();
-                             }  
-                           }  // end of while loop
-                        
-
-
-
-            } catch (javax.xml.stream.XMLStreamException e) {
-                throw new java.lang.Exception(e);
-            }
-
-            return object;
-        }
-
-        }//end of factory class
-
-        
-
-        }
-           
-          
\ No newline at end of file
diff --git a/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/Decimal.java b/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/Decimal.java
deleted file mode 100644
index b38ad17..0000000
--- a/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/Decimal.java
+++ /dev/null
@@ -1,469 +0,0 @@
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/**
- * Decimal.java
- *
- * This file was auto-generated from WSDL
- * by the Apache Axis2 version: SNAPSHOT  Built on : Dec 21, 2007 (04:03:30 LKT)
- */
-            
-                package org.apache.axis2.databinding.types.soapencoding;
-
-import javax.xml.stream.XMLStreamWriter;
-            
-
-            /**
-            *  Decimal bean class
-            */
-        
-        public  class Decimal
-        implements org.apache.axis2.databinding.ADBBean{
-        /* This type was generated from the piece of schema that had
-                name = decimal
-                Namespace URI = http://schemas.xmlsoap.org/soap/encoding/
-                Namespace Prefix = ns1
-                */
-            
-
-        private static java.lang.String generatePrefix(java.lang.String namespace) {
-            if(namespace.equals("http://schemas.xmlsoap.org/soap/encoding/")){
-                return "SOAP-ENC";
-            }
-            return org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-        }
-
-        
-
-                        /**
-                        * field for Decimal
-                        */
-
-                        
-                                    protected java.math.BigDecimal localDecimal ;
-                                
-
-                           /**
-                           * Auto generated getter method
-                           * @return java.math.BigDecimal
-                           */
-                           public  java.math.BigDecimal getDecimal(){
-                               return localDecimal;
-                           }
-
-                           
-                        
-                            /**
-                               * Auto generated setter method
-                               * @param param Decimal
-                               */
-                               public void setDecimal(java.math.BigDecimal param){
-                            
-                                            this.localDecimal=param;
-                                    
-
-                               }
-                            
-
-                            public java.lang.String toString(){
-                                
-                                        return localDecimal.toString();
-                                    
-                            }
-                        
-
-     /**
-     * isReaderMTOMAware
-     * @return true if the reader supports MTOM
-     */
-   public static boolean isReaderMTOMAware(javax.xml.stream.XMLStreamReader reader) {
-        boolean isReaderMTOMAware = false;
-        
-        try{
-          isReaderMTOMAware = java.lang.Boolean.TRUE.equals(reader.getProperty(org.apache.axiom.om.OMConstants.IS_DATA_HANDLERS_AWARE));
-        }catch(java.lang.IllegalArgumentException e){
-          isReaderMTOMAware = false;
-        }
-        return isReaderMTOMAware;
-   }
-     
-     
-        /**
-        *
-        * @param parentQName
-        * @param factory
-        * @return org.apache.axiom.om.OMElement
-        */
-       public org.apache.axiom.om.OMElement getOMElement (
-               final javax.xml.namespace.QName parentQName,
-               final org.apache.axiom.om.OMFactory factory) throws org.apache.axis2.databinding.ADBException{
-
-
-        
-               org.apache.axiom.om.OMDataSource dataSource =
-                       new org.apache.axis2.databinding.ADBDataSource(this,parentQName);
-               return factory.createOMElement(dataSource,parentQName);
-            
-       }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                                       XMLStreamWriter xmlWriter)
-                                throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-                           serialize(parentQName,xmlWriter,false);
-         }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                               XMLStreamWriter xmlWriter,
-                               boolean serializeType)
-            throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-            
-                
-
-
-                java.lang.String prefix = null;
-                java.lang.String namespace = null;
-                
-
-                    prefix = parentQName.getPrefix();
-                    namespace = parentQName.getNamespaceURI();
-
-                    if ((namespace != null) && (namespace.trim().length() > 0)) {
-                        java.lang.String writerPrefix = xmlWriter.getPrefix(namespace);
-                        if (writerPrefix != null) {
-                            xmlWriter.writeStartElement(namespace, parentQName.getLocalPart());
-                        } else {
-                            if (prefix == null) {
-                                prefix = generatePrefix(namespace);
-                            }
-
-                            xmlWriter.writeStartElement(prefix, parentQName.getLocalPart(), namespace);
-                            xmlWriter.writeNamespace(prefix, namespace);
-                            xmlWriter.setPrefix(prefix, namespace);
-                        }
-                    } else {
-                        xmlWriter.writeStartElement(parentQName.getLocalPart());
-                    }
-                
-                  if (serializeType){
-               
-                   java.lang.String namespacePrefix = registerPrefix(xmlWriter,"http://schemas.xmlsoap.org/soap/encoding/");
-                   if ((namespacePrefix != null) && (namespacePrefix.trim().length() > 0)){
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           namespacePrefix+":decimal",
-                           xmlWriter);
-                   } else {
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           "decimal",
-                           xmlWriter);
-                   }
-
-               
-                   }
-               
-
-                                          if (localDecimal==null){
-                                              // write the nil attribute
-                                              
-                                                     throw new org.apache.axis2.databinding.ADBException("decimal cannot be null!!");
-                                                  
-                                          }else{
-
-                                        
-                                                   xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(localDecimal));
-                                            
-                                          }
-                                    
-                    xmlWriter.writeEndElement();
-               
-
-        }
-
-         /**
-          * Util method to write an attribute with the ns prefix
-          */
-          private void writeAttribute(java.lang.String prefix,java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-              if (xmlWriter.getPrefix(namespace) == null) {
-                       xmlWriter.writeNamespace(prefix, namespace);
-                       xmlWriter.setPrefix(prefix, namespace);
-
-              }
-
-              xmlWriter.writeAttribute(namespace,attName,attValue);
-
-         }
-
-        /**
-          * Util method to write an attribute without the ns prefix
-          */
-          private void writeAttribute(java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-                if (namespace.equals(""))
-              {
-                  xmlWriter.writeAttribute(attName,attValue);
-              }
-              else
-              {
-                  registerPrefix(xmlWriter, namespace);
-                  xmlWriter.writeAttribute(namespace,attName,attValue);
-              }
-          }
-
-
-           /**
-             * Util method to write an attribute without the ns prefix
-             */
-            private void writeQNameAttribute(java.lang.String namespace, java.lang.String attName,
-                                             javax.xml.namespace.QName qname, javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-                java.lang.String attributeNamespace = qname.getNamespaceURI();
-                java.lang.String attributePrefix = xmlWriter.getPrefix(attributeNamespace);
-                if (attributePrefix == null) {
-                    attributePrefix = registerPrefix(xmlWriter, attributeNamespace);
-                }
-                java.lang.String attributeValue;
-                if (attributePrefix.trim().length() > 0) {
-                    attributeValue = attributePrefix + ":" + qname.getLocalPart();
-                } else {
-                    attributeValue = qname.getLocalPart();
-                }
-
-                if (namespace.equals("")) {
-                    xmlWriter.writeAttribute(attName, attributeValue);
-                } else {
-                    registerPrefix(xmlWriter, namespace);
-                    xmlWriter.writeAttribute(namespace, attName, attributeValue);
-                }
-            }
-        /**
-         *  method to handle Qnames
-         */
-
-        private void writeQName(javax.xml.namespace.QName qname,
-                                javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-            java.lang.String namespaceURI = qname.getNamespaceURI();
-            if (namespaceURI != null) {
-                java.lang.String prefix = xmlWriter.getPrefix(namespaceURI);
-                if (prefix == null) {
-                    prefix = generatePrefix(namespaceURI);
-                    xmlWriter.writeNamespace(prefix, namespaceURI);
-                    xmlWriter.setPrefix(prefix,namespaceURI);
-                }
-
-                if (prefix.trim().length() > 0){
-                    xmlWriter.writeCharacters(prefix + ":" + org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                } else {
-                    // i.e this is the default namespace
-                    xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                }
-
-            } else {
-                xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-            }
-        }
-
-        private void writeQNames(javax.xml.namespace.QName[] qnames,
-                                 javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-            if (qnames != null) {
-                // we have to store this data until last moment since it is not possible to write any
-                // namespace data after writing the charactor data
-                java.lang.StringBuffer stringToWrite = new java.lang.StringBuffer();
-                java.lang.String namespaceURI = null;
-                java.lang.String prefix = null;
-
-                for (int i = 0; i < qnames.length; i++) {
-                    if (i > 0) {
-                        stringToWrite.append(" ");
-                    }
-                    namespaceURI = qnames[i].getNamespaceURI();
-                    if (namespaceURI != null) {
-                        prefix = xmlWriter.getPrefix(namespaceURI);
-                        if ((prefix == null) || (prefix.length() == 0)) {
-                            prefix = generatePrefix(namespaceURI);
-                            xmlWriter.writeNamespace(prefix, namespaceURI);
-                            xmlWriter.setPrefix(prefix,namespaceURI);
-                        }
-
-                        if (prefix.trim().length() > 0){
-                            stringToWrite.append(prefix).append(":").append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        } else {
-                            stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        }
-                    } else {
-                        stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                    }
-                }
-                xmlWriter.writeCharacters(stringToWrite.toString());
-            }
-
-        }
-
-
-         /**
-         * Register a namespace prefix
-         */
-         private java.lang.String registerPrefix(javax.xml.stream.XMLStreamWriter xmlWriter, java.lang.String namespace) throws javax.xml.stream.XMLStreamException {
-                java.lang.String prefix = xmlWriter.getPrefix(namespace);
-
-                if (prefix == null) {
-                    prefix = generatePrefix(namespace);
-                    javax.xml.namespace.NamespaceContext nsContext = xmlWriter.getNamespaceContext();
-                    while (true) {
-                        java.lang.String uri = nsContext.getNamespaceURI(prefix);
-                        if (uri == null || uri.length() == 0) {
-                            break;
-                        }
-                        prefix = org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-                    }
-                    xmlWriter.writeNamespace(prefix, namespace);
-                    xmlWriter.setPrefix(prefix, namespace);
-                }
-
-                return prefix;
-            }
-
-
-  
-     /**
-      *  Factory class that keeps the parse method
-      */
-    public static class Factory{
-
-        
-        
-                public static Decimal fromString(java.lang.String value,
-                                                    java.lang.String namespaceURI){
-                    Decimal returnValue = new  Decimal();
-                    
-                            returnValue.setDecimal(
-                                org.apache.axis2.databinding.utils.ConverterUtil.convertToDecimal(value));
-                        
-
-                    return returnValue;
-                }
-
-                public static Decimal fromString(javax.xml.stream.XMLStreamReader xmlStreamReader,
-                                                                    java.lang.String content) {
-                    if (content.indexOf(":") > -1){
-                        java.lang.String prefix = content.substring(0,content.indexOf(":"));
-                        java.lang.String namespaceUri = xmlStreamReader.getNamespaceContext().getNamespaceURI(prefix);
-                        return Decimal.Factory.fromString(content,namespaceUri);
-                    } else {
-                       return Decimal.Factory.fromString(content,"");
-                    }
-                }
-
-            
-
-        /**
-        * static method to create the object
-        * Precondition:  If this object is an element, the current or next start element starts this object and any intervening reader events are ignorable
-        *                If this object is not an element, it is a complex type and the reader is at the event just after the outer start element
-        * Postcondition: If this object is an element, the reader is positioned at its end element
-        *                If this object is a complex type, the reader is positioned at the end element of its outer element
-        */
-        public static Decimal parse(javax.xml.stream.XMLStreamReader reader) throws java.lang.Exception{
-            Decimal object =
-                new Decimal();
-
-            int event;
-            java.lang.String nillableValue = null;
-            java.lang.String prefix ="";
-            java.lang.String namespaceuri ="";
-            try {
-                
-                while (!reader.isStartElement() && !reader.isEndElement())
-                    reader.next();
-
-                
-                if (reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance","type")!=null){
-                  java.lang.String fullTypeName = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance",
-                        "type");
-                  if (fullTypeName!=null){
-                    java.lang.String nsPrefix = null;
-                    if (fullTypeName.indexOf(":") > -1){
-                        nsPrefix = fullTypeName.substring(0,fullTypeName.indexOf(":"));
-                    }
-                    nsPrefix = nsPrefix==null?"":nsPrefix;
-
-                    java.lang.String type = fullTypeName.substring(fullTypeName.indexOf(":")+1);
-                    
-                            if (!"decimal".equals(type)){
-                                //find namespace for the prefix
-                                java.lang.String nsUri = reader.getNamespaceContext().getNamespaceURI(nsPrefix);
-                                return (Decimal)org.apache.axis2.databinding.types.soapencoding.ExtensionMapper.getTypeObject(
-                                     nsUri,type,reader);
-                              }
-                        
-
-                  }
-                
-
-                }
-
-                
-
-                
-                // Note all attributes that were handled. Used to differ normal attributes
-                // from anyAttributes.
-                java.util.Vector handledAttributes = new java.util.Vector();
-                
-
-                    
-                while(!reader.isEndElement()) {
-                    if (reader.isStartElement()  || reader.hasText()){
-                
-                                    if (reader.isStartElement()  || reader.hasText()){
-                                
-                                    java.lang.String content = reader.getElementText();
-                                    
-                                              object.setDecimal(
-                                                    org.apache.axis2.databinding.utils.ConverterUtil.convertToDecimal(content));
-                                            
-                              }  // End of if for expected property start element
-                                
-                             else{
-                                        // A start element we are not expecting indicates an invalid parameter was passed
-                                        throw new org.apache.axis2.databinding.ADBException("Unexpected subelement " + reader.getLocalName());
-                             }
-                          
-                             } else {
-                                reader.next();
-                             }  
-                           }  // end of while loop
-                        
-
-
-
-            } catch (javax.xml.stream.XMLStreamException e) {
-                throw new java.lang.Exception(e);
-            }
-
-            return object;
-        }
-
-        }//end of factory class
-
-        
-
-        }
-           
-          
\ No newline at end of file
diff --git a/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/Duration.java b/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/Duration.java
deleted file mode 100644
index e9f78b6..0000000
--- a/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/Duration.java
+++ /dev/null
@@ -1,469 +0,0 @@
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/**
- * Duration.java
- *
- * This file was auto-generated from WSDL
- * by the Apache Axis2 version: SNAPSHOT  Built on : Dec 21, 2007 (04:03:30 LKT)
- */
-            
-                package org.apache.axis2.databinding.types.soapencoding;
-
-import javax.xml.stream.XMLStreamWriter;
-            
-
-            /**
-            *  Duration bean class
-            */
-        
-        public  class Duration
-        implements org.apache.axis2.databinding.ADBBean{
-        /* This type was generated from the piece of schema that had
-                name = duration
-                Namespace URI = http://schemas.xmlsoap.org/soap/encoding/
-                Namespace Prefix = ns1
-                */
-            
-
-        private static java.lang.String generatePrefix(java.lang.String namespace) {
-            if(namespace.equals("http://schemas.xmlsoap.org/soap/encoding/")){
-                return "SOAP-ENC";
-            }
-            return org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-        }
-
-        
-
-                        /**
-                        * field for Duration
-                        */
-
-                        
-                                    protected org.apache.axis2.databinding.types.Duration localDuration ;
-                                
-
-                           /**
-                           * Auto generated getter method
-                           * @return org.apache.axis2.databinding.types.Duration
-                           */
-                           public  org.apache.axis2.databinding.types.Duration getDuration(){
-                               return localDuration;
-                           }
-
-                           
-                        
-                            /**
-                               * Auto generated setter method
-                               * @param param Duration
-                               */
-                               public void setDuration(org.apache.axis2.databinding.types.Duration param){
-                            
-                                            this.localDuration=param;
-                                    
-
-                               }
-                            
-
-                            public java.lang.String toString(){
-                                
-                                        return localDuration.toString();
-                                    
-                            }
-                        
-
-     /**
-     * isReaderMTOMAware
-     * @return true if the reader supports MTOM
-     */
-   public static boolean isReaderMTOMAware(javax.xml.stream.XMLStreamReader reader) {
-        boolean isReaderMTOMAware = false;
-        
-        try{
-          isReaderMTOMAware = java.lang.Boolean.TRUE.equals(reader.getProperty(org.apache.axiom.om.OMConstants.IS_DATA_HANDLERS_AWARE));
-        }catch(java.lang.IllegalArgumentException e){
-          isReaderMTOMAware = false;
-        }
-        return isReaderMTOMAware;
-   }
-     
-     
-        /**
-        *
-        * @param parentQName
-        * @param factory
-        * @return org.apache.axiom.om.OMElement
-        */
-       public org.apache.axiom.om.OMElement getOMElement (
-               final javax.xml.namespace.QName parentQName,
-               final org.apache.axiom.om.OMFactory factory) throws org.apache.axis2.databinding.ADBException{
-
-
-        
-               org.apache.axiom.om.OMDataSource dataSource =
-                       new org.apache.axis2.databinding.ADBDataSource(this,parentQName);
-               return factory.createOMElement(dataSource,parentQName);
-            
-       }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                                       XMLStreamWriter xmlWriter)
-                                throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-                           serialize(parentQName,xmlWriter,false);
-         }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                               XMLStreamWriter xmlWriter,
-                               boolean serializeType)
-            throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-            
-                
-
-
-                java.lang.String prefix = null;
-                java.lang.String namespace = null;
-                
-
-                    prefix = parentQName.getPrefix();
-                    namespace = parentQName.getNamespaceURI();
-
-                    if ((namespace != null) && (namespace.trim().length() > 0)) {
-                        java.lang.String writerPrefix = xmlWriter.getPrefix(namespace);
-                        if (writerPrefix != null) {
-                            xmlWriter.writeStartElement(namespace, parentQName.getLocalPart());
-                        } else {
-                            if (prefix == null) {
-                                prefix = generatePrefix(namespace);
-                            }
-
-                            xmlWriter.writeStartElement(prefix, parentQName.getLocalPart(), namespace);
-                            xmlWriter.writeNamespace(prefix, namespace);
-                            xmlWriter.setPrefix(prefix, namespace);
-                        }
-                    } else {
-                        xmlWriter.writeStartElement(parentQName.getLocalPart());
-                    }
-                
-                  if (serializeType){
-               
-                   java.lang.String namespacePrefix = registerPrefix(xmlWriter,"http://schemas.xmlsoap.org/soap/encoding/");
-                   if ((namespacePrefix != null) && (namespacePrefix.trim().length() > 0)){
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           namespacePrefix+":duration",
-                           xmlWriter);
-                   } else {
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           "duration",
-                           xmlWriter);
-                   }
-
-               
-                   }
-               
-
-                                          if (localDuration==null){
-                                              // write the nil attribute
-                                              
-                                                     throw new org.apache.axis2.databinding.ADBException("duration cannot be null!!");
-                                                  
-                                          }else{
-
-                                        
-                                                   xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(localDuration));
-                                            
-                                          }
-                                    
-                    xmlWriter.writeEndElement();
-               
-
-        }
-
-         /**
-          * Util method to write an attribute with the ns prefix
-          */
-          private void writeAttribute(java.lang.String prefix,java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-              if (xmlWriter.getPrefix(namespace) == null) {
-                       xmlWriter.writeNamespace(prefix, namespace);
-                       xmlWriter.setPrefix(prefix, namespace);
-
-              }
-
-              xmlWriter.writeAttribute(namespace,attName,attValue);
-
-         }
-
-        /**
-          * Util method to write an attribute without the ns prefix
-          */
-          private void writeAttribute(java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-                if (namespace.equals(""))
-              {
-                  xmlWriter.writeAttribute(attName,attValue);
-              }
-              else
-              {
-                  registerPrefix(xmlWriter, namespace);
-                  xmlWriter.writeAttribute(namespace,attName,attValue);
-              }
-          }
-
-
-           /**
-             * Util method to write an attribute without the ns prefix
-             */
-            private void writeQNameAttribute(java.lang.String namespace, java.lang.String attName,
-                                             javax.xml.namespace.QName qname, javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-                java.lang.String attributeNamespace = qname.getNamespaceURI();
-                java.lang.String attributePrefix = xmlWriter.getPrefix(attributeNamespace);
-                if (attributePrefix == null) {
-                    attributePrefix = registerPrefix(xmlWriter, attributeNamespace);
-                }
-                java.lang.String attributeValue;
-                if (attributePrefix.trim().length() > 0) {
-                    attributeValue = attributePrefix + ":" + qname.getLocalPart();
-                } else {
-                    attributeValue = qname.getLocalPart();
-                }
-
-                if (namespace.equals("")) {
-                    xmlWriter.writeAttribute(attName, attributeValue);
-                } else {
-                    registerPrefix(xmlWriter, namespace);
-                    xmlWriter.writeAttribute(namespace, attName, attributeValue);
-                }
-            }
-        /**
-         *  method to handle Qnames
-         */
-
-        private void writeQName(javax.xml.namespace.QName qname,
-                                javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-            java.lang.String namespaceURI = qname.getNamespaceURI();
-            if (namespaceURI != null) {
-                java.lang.String prefix = xmlWriter.getPrefix(namespaceURI);
-                if (prefix == null) {
-                    prefix = generatePrefix(namespaceURI);
-                    xmlWriter.writeNamespace(prefix, namespaceURI);
-                    xmlWriter.setPrefix(prefix,namespaceURI);
-                }
-
-                if (prefix.trim().length() > 0){
-                    xmlWriter.writeCharacters(prefix + ":" + org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                } else {
-                    // i.e this is the default namespace
-                    xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                }
-
-            } else {
-                xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-            }
-        }
-
-        private void writeQNames(javax.xml.namespace.QName[] qnames,
-                                 javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-            if (qnames != null) {
-                // we have to store this data until last moment since it is not possible to write any
-                // namespace data after writing the charactor data
-                java.lang.StringBuffer stringToWrite = new java.lang.StringBuffer();
-                java.lang.String namespaceURI = null;
-                java.lang.String prefix = null;
-
-                for (int i = 0; i < qnames.length; i++) {
-                    if (i > 0) {
-                        stringToWrite.append(" ");
-                    }
-                    namespaceURI = qnames[i].getNamespaceURI();
-                    if (namespaceURI != null) {
-                        prefix = xmlWriter.getPrefix(namespaceURI);
-                        if ((prefix == null) || (prefix.length() == 0)) {
-                            prefix = generatePrefix(namespaceURI);
-                            xmlWriter.writeNamespace(prefix, namespaceURI);
-                            xmlWriter.setPrefix(prefix,namespaceURI);
-                        }
-
-                        if (prefix.trim().length() > 0){
-                            stringToWrite.append(prefix).append(":").append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        } else {
-                            stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        }
-                    } else {
-                        stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                    }
-                }
-                xmlWriter.writeCharacters(stringToWrite.toString());
-            }
-
-        }
-
-
-         /**
-         * Register a namespace prefix
-         */
-         private java.lang.String registerPrefix(javax.xml.stream.XMLStreamWriter xmlWriter, java.lang.String namespace) throws javax.xml.stream.XMLStreamException {
-                java.lang.String prefix = xmlWriter.getPrefix(namespace);
-
-                if (prefix == null) {
-                    prefix = generatePrefix(namespace);
-                    javax.xml.namespace.NamespaceContext nsContext = xmlWriter.getNamespaceContext();
-                    while (true) {
-                        java.lang.String uri = nsContext.getNamespaceURI(prefix);
-                        if (uri == null || uri.length() == 0) {
-                            break;
-                        }
-                        prefix = org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-                    }
-                    xmlWriter.writeNamespace(prefix, namespace);
-                    xmlWriter.setPrefix(prefix, namespace);
-                }
-
-                return prefix;
-            }
-
-
-  
-     /**
-      *  Factory class that keeps the parse method
-      */
-    public static class Factory{
-
-        
-        
-                public static Duration fromString(java.lang.String value,
-                                                    java.lang.String namespaceURI){
-                    Duration returnValue = new  Duration();
-                    
-                            returnValue.setDuration(
-                                org.apache.axis2.databinding.utils.ConverterUtil.convertToDuration(value));
-                        
-
-                    return returnValue;
-                }
-
-                public static Duration fromString(javax.xml.stream.XMLStreamReader xmlStreamReader,
-                                                                    java.lang.String content) {
-                    if (content.indexOf(":") > -1){
-                        java.lang.String prefix = content.substring(0,content.indexOf(":"));
-                        java.lang.String namespaceUri = xmlStreamReader.getNamespaceContext().getNamespaceURI(prefix);
-                        return Duration.Factory.fromString(content,namespaceUri);
-                    } else {
-                       return Duration.Factory.fromString(content,"");
-                    }
-                }
-
-            
-
-        /**
-        * static method to create the object
-        * Precondition:  If this object is an element, the current or next start element starts this object and any intervening reader events are ignorable
-        *                If this object is not an element, it is a complex type and the reader is at the event just after the outer start element
-        * Postcondition: If this object is an element, the reader is positioned at its end element
-        *                If this object is a complex type, the reader is positioned at the end element of its outer element
-        */
-        public static Duration parse(javax.xml.stream.XMLStreamReader reader) throws java.lang.Exception{
-            Duration object =
-                new Duration();
-
-            int event;
-            java.lang.String nillableValue = null;
-            java.lang.String prefix ="";
-            java.lang.String namespaceuri ="";
-            try {
-                
-                while (!reader.isStartElement() && !reader.isEndElement())
-                    reader.next();
-
-                
-                if (reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance","type")!=null){
-                  java.lang.String fullTypeName = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance",
-                        "type");
-                  if (fullTypeName!=null){
-                    java.lang.String nsPrefix = null;
-                    if (fullTypeName.indexOf(":") > -1){
-                        nsPrefix = fullTypeName.substring(0,fullTypeName.indexOf(":"));
-                    }
-                    nsPrefix = nsPrefix==null?"":nsPrefix;
-
-                    java.lang.String type = fullTypeName.substring(fullTypeName.indexOf(":")+1);
-                    
-                            if (!"duration".equals(type)){
-                                //find namespace for the prefix
-                                java.lang.String nsUri = reader.getNamespaceContext().getNamespaceURI(nsPrefix);
-                                return (Duration)org.apache.axis2.databinding.types.soapencoding.ExtensionMapper.getTypeObject(
-                                     nsUri,type,reader);
-                              }
-                        
-
-                  }
-                
-
-                }
-
-                
-
-                
-                // Note all attributes that were handled. Used to differ normal attributes
-                // from anyAttributes.
-                java.util.Vector handledAttributes = new java.util.Vector();
-                
-
-                    
-                while(!reader.isEndElement()) {
-                    if (reader.isStartElement()  || reader.hasText()){
-                
-                                    if (reader.isStartElement()  || reader.hasText()){
-                                
-                                    java.lang.String content = reader.getElementText();
-                                    
-                                              object.setDuration(
-                                                    org.apache.axis2.databinding.utils.ConverterUtil.convertToDuration(content));
-                                            
-                              }  // End of if for expected property start element
-                                
-                             else{
-                                        // A start element we are not expecting indicates an invalid parameter was passed
-                                        throw new org.apache.axis2.databinding.ADBException("Unexpected subelement " + reader.getLocalName());
-                             }
-                          
-                             } else {
-                                reader.next();
-                             }  
-                           }  // end of while loop
-                        
-
-
-
-            } catch (javax.xml.stream.XMLStreamException e) {
-                throw new java.lang.Exception(e);
-            }
-
-            return object;
-        }
-
-        }//end of factory class
-
-        
-
-        }
-           
-          
\ No newline at end of file
diff --git a/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/ENTITIES.java b/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/ENTITIES.java
deleted file mode 100644
index f2f1808..0000000
--- a/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/ENTITIES.java
+++ /dev/null
@@ -1,469 +0,0 @@
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/**
- * ENTITIES.java
- *
- * This file was auto-generated from WSDL
- * by the Apache Axis2 version: SNAPSHOT  Built on : Dec 21, 2007 (04:03:30 LKT)
- */
-            
-                package org.apache.axis2.databinding.types.soapencoding;
-
-import javax.xml.stream.XMLStreamWriter;
-            
-
-            /**
-            *  ENTITIES bean class
-            */
-        
-        public  class ENTITIES
-        implements org.apache.axis2.databinding.ADBBean{
-        /* This type was generated from the piece of schema that had
-                name = ENTITIES
-                Namespace URI = http://schemas.xmlsoap.org/soap/encoding/
-                Namespace Prefix = ns1
-                */
-            
-
-        private static java.lang.String generatePrefix(java.lang.String namespace) {
-            if(namespace.equals("http://schemas.xmlsoap.org/soap/encoding/")){
-                return "SOAP-ENC";
-            }
-            return org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-        }
-
-        
-
-                        /**
-                        * field for ENTITIES
-                        */
-
-                        
-                                    protected org.apache.axis2.databinding.types.Entities localENTITIES ;
-                                
-
-                           /**
-                           * Auto generated getter method
-                           * @return org.apache.axis2.databinding.types.Entities
-                           */
-                           public  org.apache.axis2.databinding.types.Entities getENTITIES(){
-                               return localENTITIES;
-                           }
-
-                           
-                        
-                            /**
-                               * Auto generated setter method
-                               * @param param ENTITIES
-                               */
-                               public void setENTITIES(org.apache.axis2.databinding.types.Entities param){
-                            
-                                            this.localENTITIES=param;
-                                    
-
-                               }
-                            
-
-                            public java.lang.String toString(){
-                                
-                                        return localENTITIES.toString();
-                                    
-                            }
-                        
-
-     /**
-     * isReaderMTOMAware
-     * @return true if the reader supports MTOM
-     */
-   public static boolean isReaderMTOMAware(javax.xml.stream.XMLStreamReader reader) {
-        boolean isReaderMTOMAware = false;
-        
-        try{
-          isReaderMTOMAware = java.lang.Boolean.TRUE.equals(reader.getProperty(org.apache.axiom.om.OMConstants.IS_DATA_HANDLERS_AWARE));
-        }catch(java.lang.IllegalArgumentException e){
-          isReaderMTOMAware = false;
-        }
-        return isReaderMTOMAware;
-   }
-     
-     
-        /**
-        *
-        * @param parentQName
-        * @param factory
-        * @return org.apache.axiom.om.OMElement
-        */
-       public org.apache.axiom.om.OMElement getOMElement (
-               final javax.xml.namespace.QName parentQName,
-               final org.apache.axiom.om.OMFactory factory) throws org.apache.axis2.databinding.ADBException{
-
-
-        
-               org.apache.axiom.om.OMDataSource dataSource =
-                       new org.apache.axis2.databinding.ADBDataSource(this,parentQName);
-               return factory.createOMElement(dataSource,parentQName);
-            
-       }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                                       XMLStreamWriter xmlWriter)
-                                throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-                           serialize(parentQName,xmlWriter,false);
-         }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                               XMLStreamWriter xmlWriter,
-                               boolean serializeType)
-            throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-            
-                
-
-
-                java.lang.String prefix = null;
-                java.lang.String namespace = null;
-                
-
-                    prefix = parentQName.getPrefix();
-                    namespace = parentQName.getNamespaceURI();
-
-                    if ((namespace != null) && (namespace.trim().length() > 0)) {
-                        java.lang.String writerPrefix = xmlWriter.getPrefix(namespace);
-                        if (writerPrefix != null) {
-                            xmlWriter.writeStartElement(namespace, parentQName.getLocalPart());
-                        } else {
-                            if (prefix == null) {
-                                prefix = generatePrefix(namespace);
-                            }
-
-                            xmlWriter.writeStartElement(prefix, parentQName.getLocalPart(), namespace);
-                            xmlWriter.writeNamespace(prefix, namespace);
-                            xmlWriter.setPrefix(prefix, namespace);
-                        }
-                    } else {
-                        xmlWriter.writeStartElement(parentQName.getLocalPart());
-                    }
-                
-                  if (serializeType){
-               
-                   java.lang.String namespacePrefix = registerPrefix(xmlWriter,"http://schemas.xmlsoap.org/soap/encoding/");
-                   if ((namespacePrefix != null) && (namespacePrefix.trim().length() > 0)){
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           namespacePrefix+":ENTITIES",
-                           xmlWriter);
-                   } else {
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           "ENTITIES",
-                           xmlWriter);
-                   }
-
-               
-                   }
-               
-
-                                          if (localENTITIES==null){
-                                              // write the nil attribute
-                                              
-                                                     throw new org.apache.axis2.databinding.ADBException("ENTITIES cannot be null!!");
-                                                  
-                                          }else{
-
-                                        
-                                                   xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(localENTITIES));
-                                            
-                                          }
-                                    
-                    xmlWriter.writeEndElement();
-               
-
-        }
-
-         /**
-          * Util method to write an attribute with the ns prefix
-          */
-          private void writeAttribute(java.lang.String prefix,java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-              if (xmlWriter.getPrefix(namespace) == null) {
-                       xmlWriter.writeNamespace(prefix, namespace);
-                       xmlWriter.setPrefix(prefix, namespace);
-
-              }
-
-              xmlWriter.writeAttribute(namespace,attName,attValue);
-
-         }
-
-        /**
-          * Util method to write an attribute without the ns prefix
-          */
-          private void writeAttribute(java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-                if (namespace.equals(""))
-              {
-                  xmlWriter.writeAttribute(attName,attValue);
-              }
-              else
-              {
-                  registerPrefix(xmlWriter, namespace);
-                  xmlWriter.writeAttribute(namespace,attName,attValue);
-              }
-          }
-
-
-           /**
-             * Util method to write an attribute without the ns prefix
-             */
-            private void writeQNameAttribute(java.lang.String namespace, java.lang.String attName,
-                                             javax.xml.namespace.QName qname, javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-                java.lang.String attributeNamespace = qname.getNamespaceURI();
-                java.lang.String attributePrefix = xmlWriter.getPrefix(attributeNamespace);
-                if (attributePrefix == null) {
-                    attributePrefix = registerPrefix(xmlWriter, attributeNamespace);
-                }
-                java.lang.String attributeValue;
-                if (attributePrefix.trim().length() > 0) {
-                    attributeValue = attributePrefix + ":" + qname.getLocalPart();
-                } else {
-                    attributeValue = qname.getLocalPart();
-                }
-
-                if (namespace.equals("")) {
-                    xmlWriter.writeAttribute(attName, attributeValue);
-                } else {
-                    registerPrefix(xmlWriter, namespace);
-                    xmlWriter.writeAttribute(namespace, attName, attributeValue);
-                }
-            }
-        /**
-         *  method to handle Qnames
-         */
-
-        private void writeQName(javax.xml.namespace.QName qname,
-                                javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-            java.lang.String namespaceURI = qname.getNamespaceURI();
-            if (namespaceURI != null) {
-                java.lang.String prefix = xmlWriter.getPrefix(namespaceURI);
-                if (prefix == null) {
-                    prefix = generatePrefix(namespaceURI);
-                    xmlWriter.writeNamespace(prefix, namespaceURI);
-                    xmlWriter.setPrefix(prefix,namespaceURI);
-                }
-
-                if (prefix.trim().length() > 0){
-                    xmlWriter.writeCharacters(prefix + ":" + org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                } else {
-                    // i.e this is the default namespace
-                    xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                }
-
-            } else {
-                xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-            }
-        }
-
-        private void writeQNames(javax.xml.namespace.QName[] qnames,
-                                 javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-            if (qnames != null) {
-                // we have to store this data until last moment since it is not possible to write any
-                // namespace data after writing the charactor data
-                java.lang.StringBuffer stringToWrite = new java.lang.StringBuffer();
-                java.lang.String namespaceURI = null;
-                java.lang.String prefix = null;
-
-                for (int i = 0; i < qnames.length; i++) {
-                    if (i > 0) {
-                        stringToWrite.append(" ");
-                    }
-                    namespaceURI = qnames[i].getNamespaceURI();
-                    if (namespaceURI != null) {
-                        prefix = xmlWriter.getPrefix(namespaceURI);
-                        if ((prefix == null) || (prefix.length() == 0)) {
-                            prefix = generatePrefix(namespaceURI);
-                            xmlWriter.writeNamespace(prefix, namespaceURI);
-                            xmlWriter.setPrefix(prefix,namespaceURI);
-                        }
-
-                        if (prefix.trim().length() > 0){
-                            stringToWrite.append(prefix).append(":").append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        } else {
-                            stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        }
-                    } else {
-                        stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                    }
-                }
-                xmlWriter.writeCharacters(stringToWrite.toString());
-            }
-
-        }
-
-
-         /**
-         * Register a namespace prefix
-         */
-         private java.lang.String registerPrefix(javax.xml.stream.XMLStreamWriter xmlWriter, java.lang.String namespace) throws javax.xml.stream.XMLStreamException {
-                java.lang.String prefix = xmlWriter.getPrefix(namespace);
-
-                if (prefix == null) {
-                    prefix = generatePrefix(namespace);
-                    javax.xml.namespace.NamespaceContext nsContext = xmlWriter.getNamespaceContext();
-                    while (true) {
-                        java.lang.String uri = nsContext.getNamespaceURI(prefix);
-                        if (uri == null || uri.length() == 0) {
-                            break;
-                        }
-                        prefix = org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-                    }
-                    xmlWriter.writeNamespace(prefix, namespace);
-                    xmlWriter.setPrefix(prefix, namespace);
-                }
-
-                return prefix;
-            }
-
-
-  
-     /**
-      *  Factory class that keeps the parse method
-      */
-    public static class Factory{
-
-        
-        
-                public static ENTITIES fromString(java.lang.String value,
-                                                    java.lang.String namespaceURI){
-                    ENTITIES returnValue = new  ENTITIES();
-                    
-                            returnValue.setENTITIES(
-                                org.apache.axis2.databinding.utils.ConverterUtil.convertToENTITIES(value));
-                        
-
-                    return returnValue;
-                }
-
-                public static ENTITIES fromString(javax.xml.stream.XMLStreamReader xmlStreamReader,
-                                                                    java.lang.String content) {
-                    if (content.indexOf(":") > -1){
-                        java.lang.String prefix = content.substring(0,content.indexOf(":"));
-                        java.lang.String namespaceUri = xmlStreamReader.getNamespaceContext().getNamespaceURI(prefix);
-                        return ENTITIES.Factory.fromString(content,namespaceUri);
-                    } else {
-                       return ENTITIES.Factory.fromString(content,"");
-                    }
-                }
-
-            
-
-        /**
-        * static method to create the object
-        * Precondition:  If this object is an element, the current or next start element starts this object and any intervening reader events are ignorable
-        *                If this object is not an element, it is a complex type and the reader is at the event just after the outer start element
-        * Postcondition: If this object is an element, the reader is positioned at its end element
-        *                If this object is a complex type, the reader is positioned at the end element of its outer element
-        */
-        public static ENTITIES parse(javax.xml.stream.XMLStreamReader reader) throws java.lang.Exception{
-            ENTITIES object =
-                new ENTITIES();
-
-            int event;
-            java.lang.String nillableValue = null;
-            java.lang.String prefix ="";
-            java.lang.String namespaceuri ="";
-            try {
-                
-                while (!reader.isStartElement() && !reader.isEndElement())
-                    reader.next();
-
-                
-                if (reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance","type")!=null){
-                  java.lang.String fullTypeName = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance",
-                        "type");
-                  if (fullTypeName!=null){
-                    java.lang.String nsPrefix = null;
-                    if (fullTypeName.indexOf(":") > -1){
-                        nsPrefix = fullTypeName.substring(0,fullTypeName.indexOf(":"));
-                    }
-                    nsPrefix = nsPrefix==null?"":nsPrefix;
-
-                    java.lang.String type = fullTypeName.substring(fullTypeName.indexOf(":")+1);
-                    
-                            if (!"ENTITIES".equals(type)){
-                                //find namespace for the prefix
-                                java.lang.String nsUri = reader.getNamespaceContext().getNamespaceURI(nsPrefix);
-                                return (ENTITIES)org.apache.axis2.databinding.types.soapencoding.ExtensionMapper.getTypeObject(
-                                     nsUri,type,reader);
-                              }
-                        
-
-                  }
-                
-
-                }
-
-                
-
-                
-                // Note all attributes that were handled. Used to differ normal attributes
-                // from anyAttributes.
-                java.util.Vector handledAttributes = new java.util.Vector();
-                
-
-                    
-                while(!reader.isEndElement()) {
-                    if (reader.isStartElement()  || reader.hasText()){
-                
-                                    if (reader.isStartElement()  || reader.hasText()){
-                                
-                                    java.lang.String content = reader.getElementText();
-                                    
-                                              object.setENTITIES(
-                                                    org.apache.axis2.databinding.utils.ConverterUtil.convertToENTITIES(content));
-                                            
-                              }  // End of if for expected property start element
-                                
-                             else{
-                                        // A start element we are not expecting indicates an invalid parameter was passed
-                                        throw new org.apache.axis2.databinding.ADBException("Unexpected subelement " + reader.getLocalName());
-                             }
-                          
-                             } else {
-                                reader.next();
-                             }  
-                           }  // end of while loop
-                        
-
-
-
-            } catch (javax.xml.stream.XMLStreamException e) {
-                throw new java.lang.Exception(e);
-            }
-
-            return object;
-        }
-
-        }//end of factory class
-
-        
-
-        }
-           
-          
\ No newline at end of file
diff --git a/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/ENTITY.java b/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/ENTITY.java
deleted file mode 100644
index b8b6839..0000000
--- a/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/ENTITY.java
+++ /dev/null
@@ -1,469 +0,0 @@
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/**
- * ENTITY.java
- *
- * This file was auto-generated from WSDL
- * by the Apache Axis2 version: SNAPSHOT  Built on : Dec 21, 2007 (04:03:30 LKT)
- */
-            
-                package org.apache.axis2.databinding.types.soapencoding;
-
-import javax.xml.stream.XMLStreamWriter;
-            
-
-            /**
-            *  ENTITY bean class
-            */
-        
-        public  class ENTITY
-        implements org.apache.axis2.databinding.ADBBean{
-        /* This type was generated from the piece of schema that had
-                name = ENTITY
-                Namespace URI = http://schemas.xmlsoap.org/soap/encoding/
-                Namespace Prefix = ns1
-                */
-            
-
-        private static java.lang.String generatePrefix(java.lang.String namespace) {
-            if(namespace.equals("http://schemas.xmlsoap.org/soap/encoding/")){
-                return "SOAP-ENC";
-            }
-            return org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-        }
-
-        
-
-                        /**
-                        * field for ENTITY
-                        */
-
-                        
-                                    protected org.apache.axis2.databinding.types.Entity localENTITY ;
-                                
-
-                           /**
-                           * Auto generated getter method
-                           * @return org.apache.axis2.databinding.types.Entity
-                           */
-                           public  org.apache.axis2.databinding.types.Entity getENTITY(){
-                               return localENTITY;
-                           }
-
-                           
-                        
-                            /**
-                               * Auto generated setter method
-                               * @param param ENTITY
-                               */
-                               public void setENTITY(org.apache.axis2.databinding.types.Entity param){
-                            
-                                            this.localENTITY=param;
-                                    
-
-                               }
-                            
-
-                            public java.lang.String toString(){
-                                
-                                        return localENTITY.toString();
-                                    
-                            }
-                        
-
-     /**
-     * isReaderMTOMAware
-     * @return true if the reader supports MTOM
-     */
-   public static boolean isReaderMTOMAware(javax.xml.stream.XMLStreamReader reader) {
-        boolean isReaderMTOMAware = false;
-        
-        try{
-          isReaderMTOMAware = java.lang.Boolean.TRUE.equals(reader.getProperty(org.apache.axiom.om.OMConstants.IS_DATA_HANDLERS_AWARE));
-        }catch(java.lang.IllegalArgumentException e){
-          isReaderMTOMAware = false;
-        }
-        return isReaderMTOMAware;
-   }
-     
-     
-        /**
-        *
-        * @param parentQName
-        * @param factory
-        * @return org.apache.axiom.om.OMElement
-        */
-       public org.apache.axiom.om.OMElement getOMElement (
-               final javax.xml.namespace.QName parentQName,
-               final org.apache.axiom.om.OMFactory factory) throws org.apache.axis2.databinding.ADBException{
-
-
-        
-               org.apache.axiom.om.OMDataSource dataSource =
-                       new org.apache.axis2.databinding.ADBDataSource(this,parentQName);
-               return factory.createOMElement(dataSource,parentQName);
-            
-       }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                                       XMLStreamWriter xmlWriter)
-                                throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-                           serialize(parentQName,xmlWriter,false);
-         }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                               XMLStreamWriter xmlWriter,
-                               boolean serializeType)
-            throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-            
-                
-
-
-                java.lang.String prefix = null;
-                java.lang.String namespace = null;
-                
-
-                    prefix = parentQName.getPrefix();
-                    namespace = parentQName.getNamespaceURI();
-
-                    if ((namespace != null) && (namespace.trim().length() > 0)) {
-                        java.lang.String writerPrefix = xmlWriter.getPrefix(namespace);
-                        if (writerPrefix != null) {
-                            xmlWriter.writeStartElement(namespace, parentQName.getLocalPart());
-                        } else {
-                            if (prefix == null) {
-                                prefix = generatePrefix(namespace);
-                            }
-
-                            xmlWriter.writeStartElement(prefix, parentQName.getLocalPart(), namespace);
-                            xmlWriter.writeNamespace(prefix, namespace);
-                            xmlWriter.setPrefix(prefix, namespace);
-                        }
-                    } else {
-                        xmlWriter.writeStartElement(parentQName.getLocalPart());
-                    }
-                
-                  if (serializeType){
-               
-                   java.lang.String namespacePrefix = registerPrefix(xmlWriter,"http://schemas.xmlsoap.org/soap/encoding/");
-                   if ((namespacePrefix != null) && (namespacePrefix.trim().length() > 0)){
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           namespacePrefix+":ENTITY",
-                           xmlWriter);
-                   } else {
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           "ENTITY",
-                           xmlWriter);
-                   }
-
-               
-                   }
-               
-
-                                          if (localENTITY==null){
-                                              // write the nil attribute
-                                              
-                                                     throw new org.apache.axis2.databinding.ADBException("ENTITY cannot be null!!");
-                                                  
-                                          }else{
-
-                                        
-                                                   xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(localENTITY));
-                                            
-                                          }
-                                    
-                    xmlWriter.writeEndElement();
-               
-
-        }
-
-         /**
-          * Util method to write an attribute with the ns prefix
-          */
-          private void writeAttribute(java.lang.String prefix,java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-              if (xmlWriter.getPrefix(namespace) == null) {
-                       xmlWriter.writeNamespace(prefix, namespace);
-                       xmlWriter.setPrefix(prefix, namespace);
-
-              }
-
-              xmlWriter.writeAttribute(namespace,attName,attValue);
-
-         }
-
-        /**
-          * Util method to write an attribute without the ns prefix
-          */
-          private void writeAttribute(java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-                if (namespace.equals(""))
-              {
-                  xmlWriter.writeAttribute(attName,attValue);
-              }
-              else
-              {
-                  registerPrefix(xmlWriter, namespace);
-                  xmlWriter.writeAttribute(namespace,attName,attValue);
-              }
-          }
-
-
-           /**
-             * Util method to write an attribute without the ns prefix
-             */
-            private void writeQNameAttribute(java.lang.String namespace, java.lang.String attName,
-                                             javax.xml.namespace.QName qname, javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-                java.lang.String attributeNamespace = qname.getNamespaceURI();
-                java.lang.String attributePrefix = xmlWriter.getPrefix(attributeNamespace);
-                if (attributePrefix == null) {
-                    attributePrefix = registerPrefix(xmlWriter, attributeNamespace);
-                }
-                java.lang.String attributeValue;
-                if (attributePrefix.trim().length() > 0) {
-                    attributeValue = attributePrefix + ":" + qname.getLocalPart();
-                } else {
-                    attributeValue = qname.getLocalPart();
-                }
-
-                if (namespace.equals("")) {
-                    xmlWriter.writeAttribute(attName, attributeValue);
-                } else {
-                    registerPrefix(xmlWriter, namespace);
-                    xmlWriter.writeAttribute(namespace, attName, attributeValue);
-                }
-            }
-        /**
-         *  method to handle Qnames
-         */
-
-        private void writeQName(javax.xml.namespace.QName qname,
-                                javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-            java.lang.String namespaceURI = qname.getNamespaceURI();
-            if (namespaceURI != null) {
-                java.lang.String prefix = xmlWriter.getPrefix(namespaceURI);
-                if (prefix == null) {
-                    prefix = generatePrefix(namespaceURI);
-                    xmlWriter.writeNamespace(prefix, namespaceURI);
-                    xmlWriter.setPrefix(prefix,namespaceURI);
-                }
-
-                if (prefix.trim().length() > 0){
-                    xmlWriter.writeCharacters(prefix + ":" + org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                } else {
-                    // i.e this is the default namespace
-                    xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                }
-
-            } else {
-                xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-            }
-        }
-
-        private void writeQNames(javax.xml.namespace.QName[] qnames,
-                                 javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-            if (qnames != null) {
-                // we have to store this data until last moment since it is not possible to write any
-                // namespace data after writing the charactor data
-                java.lang.StringBuffer stringToWrite = new java.lang.StringBuffer();
-                java.lang.String namespaceURI = null;
-                java.lang.String prefix = null;
-
-                for (int i = 0; i < qnames.length; i++) {
-                    if (i > 0) {
-                        stringToWrite.append(" ");
-                    }
-                    namespaceURI = qnames[i].getNamespaceURI();
-                    if (namespaceURI != null) {
-                        prefix = xmlWriter.getPrefix(namespaceURI);
-                        if ((prefix == null) || (prefix.length() == 0)) {
-                            prefix = generatePrefix(namespaceURI);
-                            xmlWriter.writeNamespace(prefix, namespaceURI);
-                            xmlWriter.setPrefix(prefix,namespaceURI);
-                        }
-
-                        if (prefix.trim().length() > 0){
-                            stringToWrite.append(prefix).append(":").append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        } else {
-                            stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        }
-                    } else {
-                        stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                    }
-                }
-                xmlWriter.writeCharacters(stringToWrite.toString());
-            }
-
-        }
-
-
-         /**
-         * Register a namespace prefix
-         */
-         private java.lang.String registerPrefix(javax.xml.stream.XMLStreamWriter xmlWriter, java.lang.String namespace) throws javax.xml.stream.XMLStreamException {
-                java.lang.String prefix = xmlWriter.getPrefix(namespace);
-
-                if (prefix == null) {
-                    prefix = generatePrefix(namespace);
-                    javax.xml.namespace.NamespaceContext nsContext = xmlWriter.getNamespaceContext();
-                    while (true) {
-                        java.lang.String uri = nsContext.getNamespaceURI(prefix);
-                        if (uri == null || uri.length() == 0) {
-                            break;
-                        }
-                        prefix = org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-                    }
-                    xmlWriter.writeNamespace(prefix, namespace);
-                    xmlWriter.setPrefix(prefix, namespace);
-                }
-
-                return prefix;
-            }
-
-
-  
-     /**
-      *  Factory class that keeps the parse method
-      */
-    public static class Factory{
-
-        
-        
-                public static ENTITY fromString(java.lang.String value,
-                                                    java.lang.String namespaceURI){
-                    ENTITY returnValue = new  ENTITY();
-                    
-                            returnValue.setENTITY(
-                                org.apache.axis2.databinding.utils.ConverterUtil.convertToENTITY(value));
-                        
-
-                    return returnValue;
-                }
-
-                public static ENTITY fromString(javax.xml.stream.XMLStreamReader xmlStreamReader,
-                                                                    java.lang.String content) {
-                    if (content.indexOf(":") > -1){
-                        java.lang.String prefix = content.substring(0,content.indexOf(":"));
-                        java.lang.String namespaceUri = xmlStreamReader.getNamespaceContext().getNamespaceURI(prefix);
-                        return ENTITY.Factory.fromString(content,namespaceUri);
-                    } else {
-                       return ENTITY.Factory.fromString(content,"");
-                    }
-                }
-
-            
-
-        /**
-        * static method to create the object
-        * Precondition:  If this object is an element, the current or next start element starts this object and any intervening reader events are ignorable
-        *                If this object is not an element, it is a complex type and the reader is at the event just after the outer start element
-        * Postcondition: If this object is an element, the reader is positioned at its end element
-        *                If this object is a complex type, the reader is positioned at the end element of its outer element
-        */
-        public static ENTITY parse(javax.xml.stream.XMLStreamReader reader) throws java.lang.Exception{
-            ENTITY object =
-                new ENTITY();
-
-            int event;
-            java.lang.String nillableValue = null;
-            java.lang.String prefix ="";
-            java.lang.String namespaceuri ="";
-            try {
-                
-                while (!reader.isStartElement() && !reader.isEndElement())
-                    reader.next();
-
-                
-                if (reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance","type")!=null){
-                  java.lang.String fullTypeName = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance",
-                        "type");
-                  if (fullTypeName!=null){
-                    java.lang.String nsPrefix = null;
-                    if (fullTypeName.indexOf(":") > -1){
-                        nsPrefix = fullTypeName.substring(0,fullTypeName.indexOf(":"));
-                    }
-                    nsPrefix = nsPrefix==null?"":nsPrefix;
-
-                    java.lang.String type = fullTypeName.substring(fullTypeName.indexOf(":")+1);
-                    
-                            if (!"ENTITY".equals(type)){
-                                //find namespace for the prefix
-                                java.lang.String nsUri = reader.getNamespaceContext().getNamespaceURI(nsPrefix);
-                                return (ENTITY)org.apache.axis2.databinding.types.soapencoding.ExtensionMapper.getTypeObject(
-                                     nsUri,type,reader);
-                              }
-                        
-
-                  }
-                
-
-                }
-
-                
-
-                
-                // Note all attributes that were handled. Used to differ normal attributes
-                // from anyAttributes.
-                java.util.Vector handledAttributes = new java.util.Vector();
-                
-
-                    
-                while(!reader.isEndElement()) {
-                    if (reader.isStartElement()  || reader.hasText()){
-                
-                                    if (reader.isStartElement()  || reader.hasText()){
-                                
-                                    java.lang.String content = reader.getElementText();
-                                    
-                                              object.setENTITY(
-                                                    org.apache.axis2.databinding.utils.ConverterUtil.convertToENTITY(content));
-                                            
-                              }  // End of if for expected property start element
-                                
-                             else{
-                                        // A start element we are not expecting indicates an invalid parameter was passed
-                                        throw new org.apache.axis2.databinding.ADBException("Unexpected subelement " + reader.getLocalName());
-                             }
-                          
-                             } else {
-                                reader.next();
-                             }  
-                           }  // end of while loop
-                        
-
-
-
-            } catch (javax.xml.stream.XMLStreamException e) {
-                throw new java.lang.Exception(e);
-            }
-
-            return object;
-        }
-
-        }//end of factory class
-
-        
-
-        }
-           
-          
\ No newline at end of file
diff --git a/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/ExtensionMapper.java b/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/ExtensionMapper.java
deleted file mode 100644
index 0d545c6..0000000
--- a/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/ExtensionMapper.java
+++ /dev/null
@@ -1,513 +0,0 @@
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/**
- * ExtensionMapper.java
- *
- * This file was auto-generated from WSDL
- * by the Apache Axis2 version: SNAPSHOT  Built on : Dec 21, 2007 (04:03:30 LKT)
- */
-
-            package org.apache.axis2.databinding.types.soapencoding;
-            /**
-            *  ExtensionMapper class
-            */
-        
-        public  class ExtensionMapper{
-
-          public static java.lang.Object getTypeObject(java.lang.String namespaceURI,
-                                                       java.lang.String typeName,
-                                                       javax.xml.stream.XMLStreamReader reader) throws java.lang.Exception{
-
-              
-                  if (
-                  "http://schemas.xmlsoap.org/soap/encoding/".equals(namespaceURI) &&
-                  "arrayCoordinate".equals(typeName)){
-                   
-                            return  org.apache.axis2.databinding.types.soapencoding.ArrayCoordinate.Factory.parse(reader);
-                        
-
-                  }
-
-              
-                  if (
-                  "http://schemas.xmlsoap.org/soap/encoding/".equals(namespaceURI) &&
-                  "nonPositiveInteger".equals(typeName)){
-                   
-                            return  org.apache.axis2.databinding.types.soapencoding.NonPositiveInteger.Factory.parse(reader);
-                        
-
-                  }
-
-              
-                  if (
-                  "http://schemas.xmlsoap.org/soap/encoding/".equals(namespaceURI) &&
-                  "int".equals(typeName)){
-                   
-                            return  org.apache.axis2.databinding.types.soapencoding._int.Factory.parse(reader);
-                        
-
-                  }
-
-              
-                  if (
-                  "http://schemas.xmlsoap.org/soap/encoding/".equals(namespaceURI) &&
-                  "NMTOKEN".equals(typeName)){
-                   
-                            return  org.apache.axis2.databinding.types.soapencoding.NMTOKEN.Factory.parse(reader);
-                        
-
-                  }
-
-              
-                  if (
-                  "http://schemas.xmlsoap.org/soap/encoding/".equals(namespaceURI) &&
-                  "unsignedInt".equals(typeName)){
-                   
-                            return  org.apache.axis2.databinding.types.soapencoding.UnsignedInt.Factory.parse(reader);
-                        
-
-                  }
-
-              
-                  if (
-                  "http://schemas.xmlsoap.org/soap/encoding/".equals(namespaceURI) &&
-                  "IDREFS".equals(typeName)){
-                   
-                            return  org.apache.axis2.databinding.types.soapencoding.IDREFS.Factory.parse(reader);
-                        
-
-                  }
-
-              
-                  if (
-                  "http://schemas.xmlsoap.org/soap/encoding/".equals(namespaceURI) &&
-                  "short".equals(typeName)){
-                   
-                            return  org.apache.axis2.databinding.types.soapencoding._short.Factory.parse(reader);
-                        
-
-                  }
-
-              
-                  if (
-                  "http://schemas.xmlsoap.org/soap/encoding/".equals(namespaceURI) &&
-                  "negativeInteger".equals(typeName)){
-                   
-                            return  org.apache.axis2.databinding.types.soapencoding.NegativeInteger.Factory.parse(reader);
-                        
-
-                  }
-
-              
-                  if (
-                  "http://schemas.xmlsoap.org/soap/encoding/".equals(namespaceURI) &&
-                  "normalizedString".equals(typeName)){
-                   
-                            return  org.apache.axis2.databinding.types.soapencoding.NormalizedString.Factory.parse(reader);
-                        
-
-                  }
-
-              
-                  if (
-                  "http://schemas.xmlsoap.org/soap/encoding/".equals(namespaceURI) &&
-                  "boolean".equals(typeName)){
-                   
-                            return  org.apache.axis2.databinding.types.soapencoding._boolean.Factory.parse(reader);
-                        
-
-                  }
-
-              
-                  if (
-                  "http://schemas.xmlsoap.org/soap/encoding/".equals(namespaceURI) &&
-                  "unsignedLong".equals(typeName)){
-                   
-                            return  org.apache.axis2.databinding.types.soapencoding.UnsignedLong.Factory.parse(reader);
-                        
-
-                  }
-
-              
-                  if (
-                  "http://schemas.xmlsoap.org/soap/encoding/".equals(namespaceURI) &&
-                  "IDREF".equals(typeName)){
-                   
-                            return  org.apache.axis2.databinding.types.soapencoding.IDREF.Factory.parse(reader);
-                        
-
-                  }
-
-              
-                  if (
-                  "http://schemas.xmlsoap.org/soap/encoding/".equals(namespaceURI) &&
-                  "base64Binary".equals(typeName)){
-                   
-                            return  org.apache.axis2.databinding.types.soapencoding.Base64Binary.Factory.parse(reader);
-                        
-
-                  }
-
-              
-                  if (
-                  "http://schemas.xmlsoap.org/soap/encoding/".equals(namespaceURI) &&
-                  "ID".equals(typeName)){
-                   
-                            return  org.apache.axis2.databinding.types.soapencoding.ID.Factory.parse(reader);
-                        
-
-                  }
-
-              
-                  if (
-                  "http://schemas.xmlsoap.org/soap/encoding/".equals(namespaceURI) &&
-                  "double".equals(typeName)){
-                   
-                            return  org.apache.axis2.databinding.types.soapencoding._double.Factory.parse(reader);
-                        
-
-                  }
-
-              
-                  if (
-                  "http://schemas.xmlsoap.org/soap/encoding/".equals(namespaceURI) &&
-                  "anyURI".equals(typeName)){
-                   
-                            return  org.apache.axis2.databinding.types.soapencoding.AnyURI.Factory.parse(reader);
-                        
-
-                  }
-
-              
-                  if (
-                  "http://schemas.xmlsoap.org/soap/encoding/".equals(namespaceURI) &&
-                  "language".equals(typeName)){
-                   
-                            return  org.apache.axis2.databinding.types.soapencoding.Language.Factory.parse(reader);
-                        
-
-                  }
-
-              
-                  if (
-                  "http://schemas.xmlsoap.org/soap/encoding/".equals(namespaceURI) &&
-                  "ENTITY".equals(typeName)){
-                   
-                            return  org.apache.axis2.databinding.types.soapencoding.ENTITY.Factory.parse(reader);
-                        
-
-                  }
-
-              
-                  if (
-                  "http://schemas.xmlsoap.org/soap/encoding/".equals(namespaceURI) &&
-                  "unsignedShort".equals(typeName)){
-                   
-                            return  org.apache.axis2.databinding.types.soapencoding.UnsignedShort.Factory.parse(reader);
-                        
-
-                  }
-
-              
-                  if (
-                  "http://schemas.xmlsoap.org/soap/encoding/".equals(namespaceURI) &&
-                  "NMTOKENS".equals(typeName)){
-                   
-                            return  org.apache.axis2.databinding.types.soapencoding.NMTOKENS.Factory.parse(reader);
-                        
-
-                  }
-
-              
-                  if (
-                  "http://schemas.xmlsoap.org/soap/encoding/".equals(namespaceURI) &&
-                  "NCName".equals(typeName)){
-                   
-                            return  org.apache.axis2.databinding.types.soapencoding.NCName.Factory.parse(reader);
-                        
-
-                  }
-
-              
-                  if (
-                  "http://schemas.xmlsoap.org/soap/encoding/".equals(namespaceURI) &&
-                  "gMonthDay".equals(typeName)){
-                   
-                            return  org.apache.axis2.databinding.types.soapencoding.GMonthDay.Factory.parse(reader);
-                        
-
-                  }
-
-              
-                  if (
-                  "http://schemas.xmlsoap.org/soap/encoding/".equals(namespaceURI) &&
-                  "time".equals(typeName)){
-                   
-                            return  org.apache.axis2.databinding.types.soapencoding.Time.Factory.parse(reader);
-                        
-
-                  }
-
-              
-                  if (
-                  "http://schemas.xmlsoap.org/soap/encoding/".equals(namespaceURI) &&
-                  "token".equals(typeName)){
-                   
-                            return  org.apache.axis2.databinding.types.soapencoding.Token.Factory.parse(reader);
-                        
-
-                  }
-
-              
-                  if (
-                  "http://schemas.xmlsoap.org/soap/encoding/".equals(namespaceURI) &&
-                  "unsignedByte".equals(typeName)){
-                   
-                            return  org.apache.axis2.databinding.types.soapencoding.UnsignedByte.Factory.parse(reader);
-                        
-
-                  }
-
-              
-                  if (
-                  "http://schemas.xmlsoap.org/soap/encoding/".equals(namespaceURI) &&
-                  "nonNegativeInteger".equals(typeName)){
-                   
-                            return  org.apache.axis2.databinding.types.soapencoding.NonNegativeInteger.Factory.parse(reader);
-                        
-
-                  }
-
-              
-                  if (
-                  "http://schemas.xmlsoap.org/soap/encoding/".equals(namespaceURI) &&
-                  "base64".equals(typeName)){
-                   
-                            return  org.apache.axis2.databinding.types.soapencoding.Base64.Factory.parse(reader);
-                        
-
-                  }
-
-              
-                  if (
-                  "http://schemas.xmlsoap.org/soap/encoding/".equals(namespaceURI) &&
-                  "string".equals(typeName)){
-                   
-                            return  org.apache.axis2.databinding.types.soapencoding.String.Factory.parse(reader);
-                        
-
-                  }
-
-              
-                  if (
-                  "http://schemas.xmlsoap.org/soap/encoding/".equals(namespaceURI) &&
-                  "hexBinary".equals(typeName)){
-                   
-                            return  org.apache.axis2.databinding.types.soapencoding.HexBinary.Factory.parse(reader);
-                        
-
-                  }
-
-              
-                  if (
-                  "http://schemas.xmlsoap.org/soap/encoding/".equals(namespaceURI) &&
-                  "NOTATION".equals(typeName)){
-                   
-                            return  org.apache.axis2.databinding.types.soapencoding.NOTATION.Factory.parse(reader);
-                        
-
-                  }
-
-              
-                  if (
-                  "http://schemas.xmlsoap.org/soap/encoding/".equals(namespaceURI) &&
-                  "date".equals(typeName)){
-                   
-                            return  org.apache.axis2.databinding.types.soapencoding.Date.Factory.parse(reader);
-                        
-
-                  }
-
-              
-                  if (
-                  "http://schemas.xmlsoap.org/soap/encoding/".equals(namespaceURI) &&
-                  "positiveInteger".equals(typeName)){
-                   
-                            return  org.apache.axis2.databinding.types.soapencoding.PositiveInteger.Factory.parse(reader);
-                        
-
-                  }
-
-              
-                  if (
-                  "http://schemas.xmlsoap.org/soap/encoding/".equals(namespaceURI) &&
-                  "Name".equals(typeName)){
-                   
-                            return  org.apache.axis2.databinding.types.soapencoding.Name.Factory.parse(reader);
-                        
-
-                  }
-
-              
-                  if (
-                  "http://schemas.xmlsoap.org/soap/encoding/".equals(namespaceURI) &&
-                  "decimal".equals(typeName)){
-                   
-                            return  org.apache.axis2.databinding.types.soapencoding.Decimal.Factory.parse(reader);
-                        
-
-                  }
-
-              
-                  if (
-                  "http://schemas.xmlsoap.org/soap/encoding/".equals(namespaceURI) &&
-                  "QName".equals(typeName)){
-                   
-                            return  org.apache.axis2.databinding.types.soapencoding.QName.Factory.parse(reader);
-                        
-
-                  }
-              
-                  if (
-                  "http://schemas.xmlsoap.org/soap/encoding/".equals(namespaceURI) &&
-                  "duration".equals(typeName)){
-                   
-                            return  org.apache.axis2.databinding.types.soapencoding.Duration.Factory.parse(reader);
-                        
-
-                  }
-
-              
-                  if (
-                  "http://schemas.xmlsoap.org/soap/encoding/".equals(namespaceURI) &&
-                  "Struct".equals(typeName)){
-                   
-                            return  org.apache.axis2.databinding.types.soapencoding.Struct.Factory.parse(reader);
-                        
-
-                  }
-
-              
-                  if (
-                  "http://schemas.xmlsoap.org/soap/encoding/".equals(namespaceURI) &&
-                  "gYearMonth".equals(typeName)){
-                   
-                            return  org.apache.axis2.databinding.types.soapencoding.GYearMonth.Factory.parse(reader);
-                        
-
-                  }
-
-              
-                  if (
-                  "http://schemas.xmlsoap.org/soap/encoding/".equals(namespaceURI) &&
-                  "gMonth".equals(typeName)){
-                   
-                            return  org.apache.axis2.databinding.types.soapencoding.GMonth.Factory.parse(reader);
-                        
-
-                  }
-
-              
-                  if (
-                  "http://schemas.xmlsoap.org/soap/encoding/".equals(namespaceURI) &&
-                  "long".equals(typeName)){
-                   
-                            return  org.apache.axis2.databinding.types.soapencoding._long.Factory.parse(reader);
-                        
-
-                  }
-
-              
-                  if (
-                  "http://schemas.xmlsoap.org/soap/encoding/".equals(namespaceURI) &&
-                  "gYear".equals(typeName)){
-                   
-                            return  org.apache.axis2.databinding.types.soapencoding.GYear.Factory.parse(reader);
-                        
-
-                  }
-
-              
-                  if (
-                  "http://schemas.xmlsoap.org/soap/encoding/".equals(namespaceURI) &&
-                  "integer".equals(typeName)){
-                   
-                            return  org.apache.axis2.databinding.types.soapencoding.Integer.Factory.parse(reader);
-                        
-
-                  }
-
-              
-                  if (
-                  "http://schemas.xmlsoap.org/soap/encoding/".equals(namespaceURI) &&
-                  "gDay".equals(typeName)){
-                   
-                            return  org.apache.axis2.databinding.types.soapencoding.GDay.Factory.parse(reader);
-                        
-
-                  }
-
-              
-                  if (
-                  "http://schemas.xmlsoap.org/soap/encoding/".equals(namespaceURI) &&
-                  "float".equals(typeName)){
-                   
-                            return  org.apache.axis2.databinding.types.soapencoding._float.Factory.parse(reader);
-                        
-
-                  }
-
-              
-                  if (
-                  "http://schemas.xmlsoap.org/soap/encoding/".equals(namespaceURI) &&
-                  "ENTITIES".equals(typeName)){
-                   
-                            return  org.apache.axis2.databinding.types.soapencoding.ENTITIES.Factory.parse(reader);
-                        
-
-                  }
-
-              
-                  if (
-                  "http://schemas.xmlsoap.org/soap/encoding/".equals(namespaceURI) &&
-                  "dateTime".equals(typeName)){
-                   
-                            return  org.apache.axis2.databinding.types.soapencoding.DateTime.Factory.parse(reader);
-                        
-
-                  }
-
-              
-                  if (
-                  "http://schemas.xmlsoap.org/soap/encoding/".equals(namespaceURI) &&
-                  "byte".equals(typeName)){
-                   
-                            return  org.apache.axis2.databinding.types.soapencoding._byte.Factory.parse(reader);
-                        
-
-                  }
-
-              
-             throw new org.apache.axis2.databinding.ADBException("Unsupported type " + namespaceURI + " " + typeName);
-          }
-
-        }
-    
\ No newline at end of file
diff --git a/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/GDay.java b/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/GDay.java
deleted file mode 100644
index 0e5b426..0000000
--- a/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/GDay.java
+++ /dev/null
@@ -1,469 +0,0 @@
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/**
- * GDay.java
- *
- * This file was auto-generated from WSDL
- * by the Apache Axis2 version: SNAPSHOT  Built on : Dec 21, 2007 (04:03:30 LKT)
- */
-            
-                package org.apache.axis2.databinding.types.soapencoding;
-
-import javax.xml.stream.XMLStreamWriter;
-            
-
-            /**
-            *  GDay bean class
-            */
-        
-        public  class GDay
-        implements org.apache.axis2.databinding.ADBBean{
-        /* This type was generated from the piece of schema that had
-                name = gDay
-                Namespace URI = http://schemas.xmlsoap.org/soap/encoding/
-                Namespace Prefix = ns1
-                */
-            
-
-        private static java.lang.String generatePrefix(java.lang.String namespace) {
-            if(namespace.equals("http://schemas.xmlsoap.org/soap/encoding/")){
-                return "SOAP-ENC";
-            }
-            return org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-        }
-
-        
-
-                        /**
-                        * field for GDay
-                        */
-
-                        
-                                    protected org.apache.axis2.databinding.types.Day localGDay ;
-                                
-
-                           /**
-                           * Auto generated getter method
-                           * @return org.apache.axis2.databinding.types.Day
-                           */
-                           public  org.apache.axis2.databinding.types.Day getGDay(){
-                               return localGDay;
-                           }
-
-                           
-                        
-                            /**
-                               * Auto generated setter method
-                               * @param param GDay
-                               */
-                               public void setGDay(org.apache.axis2.databinding.types.Day param){
-                            
-                                            this.localGDay=param;
-                                    
-
-                               }
-                            
-
-                            public java.lang.String toString(){
-                                
-                                        return localGDay.toString();
-                                    
-                            }
-                        
-
-     /**
-     * isReaderMTOMAware
-     * @return true if the reader supports MTOM
-     */
-   public static boolean isReaderMTOMAware(javax.xml.stream.XMLStreamReader reader) {
-        boolean isReaderMTOMAware = false;
-        
-        try{
-          isReaderMTOMAware = java.lang.Boolean.TRUE.equals(reader.getProperty(org.apache.axiom.om.OMConstants.IS_DATA_HANDLERS_AWARE));
-        }catch(java.lang.IllegalArgumentException e){
-          isReaderMTOMAware = false;
-        }
-        return isReaderMTOMAware;
-   }
-     
-     
-        /**
-        *
-        * @param parentQName
-        * @param factory
-        * @return org.apache.axiom.om.OMElement
-        */
-       public org.apache.axiom.om.OMElement getOMElement (
-               final javax.xml.namespace.QName parentQName,
-               final org.apache.axiom.om.OMFactory factory) throws org.apache.axis2.databinding.ADBException{
-
-
-        
-               org.apache.axiom.om.OMDataSource dataSource =
-                       new org.apache.axis2.databinding.ADBDataSource(this,parentQName);
-               return factory.createOMElement(dataSource,parentQName);
-            
-       }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                                       XMLStreamWriter xmlWriter)
-                                throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-                           serialize(parentQName,xmlWriter,false);
-         }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                               XMLStreamWriter xmlWriter,
-                               boolean serializeType)
-            throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-            
-                
-
-
-                java.lang.String prefix = null;
-                java.lang.String namespace = null;
-                
-
-                    prefix = parentQName.getPrefix();
-                    namespace = parentQName.getNamespaceURI();
-
-                    if ((namespace != null) && (namespace.trim().length() > 0)) {
-                        java.lang.String writerPrefix = xmlWriter.getPrefix(namespace);
-                        if (writerPrefix != null) {
-                            xmlWriter.writeStartElement(namespace, parentQName.getLocalPart());
-                        } else {
-                            if (prefix == null) {
-                                prefix = generatePrefix(namespace);
-                            }
-
-                            xmlWriter.writeStartElement(prefix, parentQName.getLocalPart(), namespace);
-                            xmlWriter.writeNamespace(prefix, namespace);
-                            xmlWriter.setPrefix(prefix, namespace);
-                        }
-                    } else {
-                        xmlWriter.writeStartElement(parentQName.getLocalPart());
-                    }
-                
-                  if (serializeType){
-               
-                   java.lang.String namespacePrefix = registerPrefix(xmlWriter,"http://schemas.xmlsoap.org/soap/encoding/");
-                   if ((namespacePrefix != null) && (namespacePrefix.trim().length() > 0)){
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           namespacePrefix+":gDay",
-                           xmlWriter);
-                   } else {
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           "gDay",
-                           xmlWriter);
-                   }
-
-               
-                   }
-               
-
-                                          if (localGDay==null){
-                                              // write the nil attribute
-                                              
-                                                     throw new org.apache.axis2.databinding.ADBException("gDay cannot be null!!");
-                                                  
-                                          }else{
-
-                                        
-                                                   xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(localGDay));
-                                            
-                                          }
-                                    
-                    xmlWriter.writeEndElement();
-               
-
-        }
-
-         /**
-          * Util method to write an attribute with the ns prefix
-          */
-          private void writeAttribute(java.lang.String prefix,java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-              if (xmlWriter.getPrefix(namespace) == null) {
-                       xmlWriter.writeNamespace(prefix, namespace);
-                       xmlWriter.setPrefix(prefix, namespace);
-
-              }
-
-              xmlWriter.writeAttribute(namespace,attName,attValue);
-
-         }
-
-        /**
-          * Util method to write an attribute without the ns prefix
-          */
-          private void writeAttribute(java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-                if (namespace.equals(""))
-              {
-                  xmlWriter.writeAttribute(attName,attValue);
-              }
-              else
-              {
-                  registerPrefix(xmlWriter, namespace);
-                  xmlWriter.writeAttribute(namespace,attName,attValue);
-              }
-          }
-
-
-           /**
-             * Util method to write an attribute without the ns prefix
-             */
-            private void writeQNameAttribute(java.lang.String namespace, java.lang.String attName,
-                                             javax.xml.namespace.QName qname, javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-                java.lang.String attributeNamespace = qname.getNamespaceURI();
-                java.lang.String attributePrefix = xmlWriter.getPrefix(attributeNamespace);
-                if (attributePrefix == null) {
-                    attributePrefix = registerPrefix(xmlWriter, attributeNamespace);
-                }
-                java.lang.String attributeValue;
-                if (attributePrefix.trim().length() > 0) {
-                    attributeValue = attributePrefix + ":" + qname.getLocalPart();
-                } else {
-                    attributeValue = qname.getLocalPart();
-                }
-
-                if (namespace.equals("")) {
-                    xmlWriter.writeAttribute(attName, attributeValue);
-                } else {
-                    registerPrefix(xmlWriter, namespace);
-                    xmlWriter.writeAttribute(namespace, attName, attributeValue);
-                }
-            }
-        /**
-         *  method to handle Qnames
-         */
-
-        private void writeQName(javax.xml.namespace.QName qname,
-                                javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-            java.lang.String namespaceURI = qname.getNamespaceURI();
-            if (namespaceURI != null) {
-                java.lang.String prefix = xmlWriter.getPrefix(namespaceURI);
-                if (prefix == null) {
-                    prefix = generatePrefix(namespaceURI);
-                    xmlWriter.writeNamespace(prefix, namespaceURI);
-                    xmlWriter.setPrefix(prefix,namespaceURI);
-                }
-
-                if (prefix.trim().length() > 0){
-                    xmlWriter.writeCharacters(prefix + ":" + org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                } else {
-                    // i.e this is the default namespace
-                    xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                }
-
-            } else {
-                xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-            }
-        }
-
-        private void writeQNames(javax.xml.namespace.QName[] qnames,
-                                 javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-            if (qnames != null) {
-                // we have to store this data until last moment since it is not possible to write any
-                // namespace data after writing the charactor data
-                java.lang.StringBuffer stringToWrite = new java.lang.StringBuffer();
-                java.lang.String namespaceURI = null;
-                java.lang.String prefix = null;
-
-                for (int i = 0; i < qnames.length; i++) {
-                    if (i > 0) {
-                        stringToWrite.append(" ");
-                    }
-                    namespaceURI = qnames[i].getNamespaceURI();
-                    if (namespaceURI != null) {
-                        prefix = xmlWriter.getPrefix(namespaceURI);
-                        if ((prefix == null) || (prefix.length() == 0)) {
-                            prefix = generatePrefix(namespaceURI);
-                            xmlWriter.writeNamespace(prefix, namespaceURI);
-                            xmlWriter.setPrefix(prefix,namespaceURI);
-                        }
-
-                        if (prefix.trim().length() > 0){
-                            stringToWrite.append(prefix).append(":").append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        } else {
-                            stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        }
-                    } else {
-                        stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                    }
-                }
-                xmlWriter.writeCharacters(stringToWrite.toString());
-            }
-
-        }
-
-
-         /**
-         * Register a namespace prefix
-         */
-         private java.lang.String registerPrefix(javax.xml.stream.XMLStreamWriter xmlWriter, java.lang.String namespace) throws javax.xml.stream.XMLStreamException {
-                java.lang.String prefix = xmlWriter.getPrefix(namespace);
-
-                if (prefix == null) {
-                    prefix = generatePrefix(namespace);
-                    javax.xml.namespace.NamespaceContext nsContext = xmlWriter.getNamespaceContext();
-                    while (true) {
-                        java.lang.String uri = nsContext.getNamespaceURI(prefix);
-                        if (uri == null || uri.length() == 0) {
-                            break;
-                        }
-                        prefix = org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-                    }
-                    xmlWriter.writeNamespace(prefix, namespace);
-                    xmlWriter.setPrefix(prefix, namespace);
-                }
-
-                return prefix;
-            }
-
-
-  
-     /**
-      *  Factory class that keeps the parse method
-      */
-    public static class Factory{
-
-        
-        
-                public static GDay fromString(java.lang.String value,
-                                                    java.lang.String namespaceURI){
-                    GDay returnValue = new  GDay();
-                    
-                            returnValue.setGDay(
-                                org.apache.axis2.databinding.utils.ConverterUtil.convertToGDay(value));
-                        
-
-                    return returnValue;
-                }
-
-                public static GDay fromString(javax.xml.stream.XMLStreamReader xmlStreamReader,
-                                                                    java.lang.String content) {
-                    if (content.indexOf(":") > -1){
-                        java.lang.String prefix = content.substring(0,content.indexOf(":"));
-                        java.lang.String namespaceUri = xmlStreamReader.getNamespaceContext().getNamespaceURI(prefix);
-                        return GDay.Factory.fromString(content,namespaceUri);
-                    } else {
-                       return GDay.Factory.fromString(content,"");
-                    }
-                }
-
-            
-
-        /**
-        * static method to create the object
-        * Precondition:  If this object is an element, the current or next start element starts this object and any intervening reader events are ignorable
-        *                If this object is not an element, it is a complex type and the reader is at the event just after the outer start element
-        * Postcondition: If this object is an element, the reader is positioned at its end element
-        *                If this object is a complex type, the reader is positioned at the end element of its outer element
-        */
-        public static GDay parse(javax.xml.stream.XMLStreamReader reader) throws java.lang.Exception{
-            GDay object =
-                new GDay();
-
-            int event;
-            java.lang.String nillableValue = null;
-            java.lang.String prefix ="";
-            java.lang.String namespaceuri ="";
-            try {
-                
-                while (!reader.isStartElement() && !reader.isEndElement())
-                    reader.next();
-
-                
-                if (reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance","type")!=null){
-                  java.lang.String fullTypeName = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance",
-                        "type");
-                  if (fullTypeName!=null){
-                    java.lang.String nsPrefix = null;
-                    if (fullTypeName.indexOf(":") > -1){
-                        nsPrefix = fullTypeName.substring(0,fullTypeName.indexOf(":"));
-                    }
-                    nsPrefix = nsPrefix==null?"":nsPrefix;
-
-                    java.lang.String type = fullTypeName.substring(fullTypeName.indexOf(":")+1);
-                    
-                            if (!"gDay".equals(type)){
-                                //find namespace for the prefix
-                                java.lang.String nsUri = reader.getNamespaceContext().getNamespaceURI(nsPrefix);
-                                return (GDay)org.apache.axis2.databinding.types.soapencoding.ExtensionMapper.getTypeObject(
-                                     nsUri,type,reader);
-                              }
-                        
-
-                  }
-                
-
-                }
-
-                
-
-                
-                // Note all attributes that were handled. Used to differ normal attributes
-                // from anyAttributes.
-                java.util.Vector handledAttributes = new java.util.Vector();
-                
-
-                    
-                while(!reader.isEndElement()) {
-                    if (reader.isStartElement()  || reader.hasText()){
-                
-                                    if (reader.isStartElement()  || reader.hasText()){
-                                
-                                    java.lang.String content = reader.getElementText();
-                                    
-                                              object.setGDay(
-                                                    org.apache.axis2.databinding.utils.ConverterUtil.convertToGDay(content));
-                                            
-                              }  // End of if for expected property start element
-                                
-                             else{
-                                        // A start element we are not expecting indicates an invalid parameter was passed
-                                        throw new org.apache.axis2.databinding.ADBException("Unexpected subelement " + reader.getLocalName());
-                             }
-                          
-                             } else {
-                                reader.next();
-                             }  
-                           }  // end of while loop
-                        
-
-
-
-            } catch (javax.xml.stream.XMLStreamException e) {
-                throw new java.lang.Exception(e);
-            }
-
-            return object;
-        }
-
-        }//end of factory class
-
-        
-
-        }
-           
-          
\ No newline at end of file
diff --git a/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/GMonth.java b/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/GMonth.java
deleted file mode 100644
index f916609..0000000
--- a/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/GMonth.java
+++ /dev/null
@@ -1,469 +0,0 @@
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/**
- * GMonth.java
- *
- * This file was auto-generated from WSDL
- * by the Apache Axis2 version: SNAPSHOT  Built on : Dec 21, 2007 (04:03:30 LKT)
- */
-            
-                package org.apache.axis2.databinding.types.soapencoding;
-
-import javax.xml.stream.XMLStreamWriter;
-            
-
-            /**
-            *  GMonth bean class
-            */
-        
-        public  class GMonth
-        implements org.apache.axis2.databinding.ADBBean{
-        /* This type was generated from the piece of schema that had
-                name = gMonth
-                Namespace URI = http://schemas.xmlsoap.org/soap/encoding/
-                Namespace Prefix = ns1
-                */
-            
-
-        private static java.lang.String generatePrefix(java.lang.String namespace) {
-            if(namespace.equals("http://schemas.xmlsoap.org/soap/encoding/")){
-                return "SOAP-ENC";
-            }
-            return org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-        }
-
-        
-
-                        /**
-                        * field for GMonth
-                        */
-
-                        
-                                    protected org.apache.axis2.databinding.types.Month localGMonth ;
-                                
-
-                           /**
-                           * Auto generated getter method
-                           * @return org.apache.axis2.databinding.types.Month
-                           */
-                           public  org.apache.axis2.databinding.types.Month getGMonth(){
-                               return localGMonth;
-                           }
-
-                           
-                        
-                            /**
-                               * Auto generated setter method
-                               * @param param GMonth
-                               */
-                               public void setGMonth(org.apache.axis2.databinding.types.Month param){
-                            
-                                            this.localGMonth=param;
-                                    
-
-                               }
-                            
-
-                            public java.lang.String toString(){
-                                
-                                        return localGMonth.toString();
-                                    
-                            }
-                        
-
-     /**
-     * isReaderMTOMAware
-     * @return true if the reader supports MTOM
-     */
-   public static boolean isReaderMTOMAware(javax.xml.stream.XMLStreamReader reader) {
-        boolean isReaderMTOMAware = false;
-        
-        try{
-          isReaderMTOMAware = java.lang.Boolean.TRUE.equals(reader.getProperty(org.apache.axiom.om.OMConstants.IS_DATA_HANDLERS_AWARE));
-        }catch(java.lang.IllegalArgumentException e){
-          isReaderMTOMAware = false;
-        }
-        return isReaderMTOMAware;
-   }
-     
-     
-        /**
-        *
-        * @param parentQName
-        * @param factory
-        * @return org.apache.axiom.om.OMElement
-        */
-       public org.apache.axiom.om.OMElement getOMElement (
-               final javax.xml.namespace.QName parentQName,
-               final org.apache.axiom.om.OMFactory factory) throws org.apache.axis2.databinding.ADBException{
-
-
-        
-               org.apache.axiom.om.OMDataSource dataSource =
-                       new org.apache.axis2.databinding.ADBDataSource(this,parentQName);
-               return factory.createOMElement(dataSource,parentQName);
-            
-       }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                                       XMLStreamWriter xmlWriter)
-                                throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-                           serialize(parentQName,xmlWriter,false);
-         }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                               XMLStreamWriter xmlWriter,
-                               boolean serializeType)
-            throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-            
-                
-
-
-                java.lang.String prefix = null;
-                java.lang.String namespace = null;
-                
-
-                    prefix = parentQName.getPrefix();
-                    namespace = parentQName.getNamespaceURI();
-
-                    if ((namespace != null) && (namespace.trim().length() > 0)) {
-                        java.lang.String writerPrefix = xmlWriter.getPrefix(namespace);
-                        if (writerPrefix != null) {
-                            xmlWriter.writeStartElement(namespace, parentQName.getLocalPart());
-                        } else {
-                            if (prefix == null) {
-                                prefix = generatePrefix(namespace);
-                            }
-
-                            xmlWriter.writeStartElement(prefix, parentQName.getLocalPart(), namespace);
-                            xmlWriter.writeNamespace(prefix, namespace);
-                            xmlWriter.setPrefix(prefix, namespace);
-                        }
-                    } else {
-                        xmlWriter.writeStartElement(parentQName.getLocalPart());
-                    }
-                
-                  if (serializeType){
-               
-                   java.lang.String namespacePrefix = registerPrefix(xmlWriter,"http://schemas.xmlsoap.org/soap/encoding/");
-                   if ((namespacePrefix != null) && (namespacePrefix.trim().length() > 0)){
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           namespacePrefix+":gMonth",
-                           xmlWriter);
-                   } else {
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           "gMonth",
-                           xmlWriter);
-                   }
-
-               
-                   }
-               
-
-                                          if (localGMonth==null){
-                                              // write the nil attribute
-                                              
-                                                     throw new org.apache.axis2.databinding.ADBException("gMonth cannot be null!!");
-                                                  
-                                          }else{
-
-                                        
-                                                   xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(localGMonth));
-                                            
-                                          }
-                                    
-                    xmlWriter.writeEndElement();
-               
-
-        }
-
-         /**
-          * Util method to write an attribute with the ns prefix
-          */
-          private void writeAttribute(java.lang.String prefix,java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-              if (xmlWriter.getPrefix(namespace) == null) {
-                       xmlWriter.writeNamespace(prefix, namespace);
-                       xmlWriter.setPrefix(prefix, namespace);
-
-              }
-
-              xmlWriter.writeAttribute(namespace,attName,attValue);
-
-         }
-
-        /**
-          * Util method to write an attribute without the ns prefix
-          */
-          private void writeAttribute(java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-                if (namespace.equals(""))
-              {
-                  xmlWriter.writeAttribute(attName,attValue);
-              }
-              else
-              {
-                  registerPrefix(xmlWriter, namespace);
-                  xmlWriter.writeAttribute(namespace,attName,attValue);
-              }
-          }
-
-
-           /**
-             * Util method to write an attribute without the ns prefix
-             */
-            private void writeQNameAttribute(java.lang.String namespace, java.lang.String attName,
-                                             javax.xml.namespace.QName qname, javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-                java.lang.String attributeNamespace = qname.getNamespaceURI();
-                java.lang.String attributePrefix = xmlWriter.getPrefix(attributeNamespace);
-                if (attributePrefix == null) {
-                    attributePrefix = registerPrefix(xmlWriter, attributeNamespace);
-                }
-                java.lang.String attributeValue;
-                if (attributePrefix.trim().length() > 0) {
-                    attributeValue = attributePrefix + ":" + qname.getLocalPart();
-                } else {
-                    attributeValue = qname.getLocalPart();
-                }
-
-                if (namespace.equals("")) {
-                    xmlWriter.writeAttribute(attName, attributeValue);
-                } else {
-                    registerPrefix(xmlWriter, namespace);
-                    xmlWriter.writeAttribute(namespace, attName, attributeValue);
-                }
-            }
-        /**
-         *  method to handle Qnames
-         */
-
-        private void writeQName(javax.xml.namespace.QName qname,
-                                javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-            java.lang.String namespaceURI = qname.getNamespaceURI();
-            if (namespaceURI != null) {
-                java.lang.String prefix = xmlWriter.getPrefix(namespaceURI);
-                if (prefix == null) {
-                    prefix = generatePrefix(namespaceURI);
-                    xmlWriter.writeNamespace(prefix, namespaceURI);
-                    xmlWriter.setPrefix(prefix,namespaceURI);
-                }
-
-                if (prefix.trim().length() > 0){
-                    xmlWriter.writeCharacters(prefix + ":" + org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                } else {
-                    // i.e this is the default namespace
-                    xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                }
-
-            } else {
-                xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-            }
-        }
-
-        private void writeQNames(javax.xml.namespace.QName[] qnames,
-                                 javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-            if (qnames != null) {
-                // we have to store this data until last moment since it is not possible to write any
-                // namespace data after writing the charactor data
-                java.lang.StringBuffer stringToWrite = new java.lang.StringBuffer();
-                java.lang.String namespaceURI = null;
-                java.lang.String prefix = null;
-
-                for (int i = 0; i < qnames.length; i++) {
-                    if (i > 0) {
-                        stringToWrite.append(" ");
-                    }
-                    namespaceURI = qnames[i].getNamespaceURI();
-                    if (namespaceURI != null) {
-                        prefix = xmlWriter.getPrefix(namespaceURI);
-                        if ((prefix == null) || (prefix.length() == 0)) {
-                            prefix = generatePrefix(namespaceURI);
-                            xmlWriter.writeNamespace(prefix, namespaceURI);
-                            xmlWriter.setPrefix(prefix,namespaceURI);
-                        }
-
-                        if (prefix.trim().length() > 0){
-                            stringToWrite.append(prefix).append(":").append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        } else {
-                            stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        }
-                    } else {
-                        stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                    }
-                }
-                xmlWriter.writeCharacters(stringToWrite.toString());
-            }
-
-        }
-
-
-         /**
-         * Register a namespace prefix
-         */
-         private java.lang.String registerPrefix(javax.xml.stream.XMLStreamWriter xmlWriter, java.lang.String namespace) throws javax.xml.stream.XMLStreamException {
-                java.lang.String prefix = xmlWriter.getPrefix(namespace);
-
-                if (prefix == null) {
-                    prefix = generatePrefix(namespace);
-                    javax.xml.namespace.NamespaceContext nsContext = xmlWriter.getNamespaceContext();
-                    while (true) {
-                        java.lang.String uri = nsContext.getNamespaceURI(prefix);
-                        if (uri == null || uri.length() == 0) {
-                            break;
-                        }
-                        prefix = org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-                    }
-                    xmlWriter.writeNamespace(prefix, namespace);
-                    xmlWriter.setPrefix(prefix, namespace);
-                }
-
-                return prefix;
-            }
-
-
-  
-     /**
-      *  Factory class that keeps the parse method
-      */
-    public static class Factory{
-
-        
-        
-                public static GMonth fromString(java.lang.String value,
-                                                    java.lang.String namespaceURI){
-                    GMonth returnValue = new  GMonth();
-                    
-                            returnValue.setGMonth(
-                                org.apache.axis2.databinding.utils.ConverterUtil.convertToGMonth(value));
-                        
-
-                    return returnValue;
-                }
-
-                public static GMonth fromString(javax.xml.stream.XMLStreamReader xmlStreamReader,
-                                                                    java.lang.String content) {
-                    if (content.indexOf(":") > -1){
-                        java.lang.String prefix = content.substring(0,content.indexOf(":"));
-                        java.lang.String namespaceUri = xmlStreamReader.getNamespaceContext().getNamespaceURI(prefix);
-                        return GMonth.Factory.fromString(content,namespaceUri);
-                    } else {
-                       return GMonth.Factory.fromString(content,"");
-                    }
-                }
-
-            
-
-        /**
-        * static method to create the object
-        * Precondition:  If this object is an element, the current or next start element starts this object and any intervening reader events are ignorable
-        *                If this object is not an element, it is a complex type and the reader is at the event just after the outer start element
-        * Postcondition: If this object is an element, the reader is positioned at its end element
-        *                If this object is a complex type, the reader is positioned at the end element of its outer element
-        */
-        public static GMonth parse(javax.xml.stream.XMLStreamReader reader) throws java.lang.Exception{
-            GMonth object =
-                new GMonth();
-
-            int event;
-            java.lang.String nillableValue = null;
-            java.lang.String prefix ="";
-            java.lang.String namespaceuri ="";
-            try {
-                
-                while (!reader.isStartElement() && !reader.isEndElement())
-                    reader.next();
-
-                
-                if (reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance","type")!=null){
-                  java.lang.String fullTypeName = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance",
-                        "type");
-                  if (fullTypeName!=null){
-                    java.lang.String nsPrefix = null;
-                    if (fullTypeName.indexOf(":") > -1){
-                        nsPrefix = fullTypeName.substring(0,fullTypeName.indexOf(":"));
-                    }
-                    nsPrefix = nsPrefix==null?"":nsPrefix;
-
-                    java.lang.String type = fullTypeName.substring(fullTypeName.indexOf(":")+1);
-                    
-                            if (!"gMonth".equals(type)){
-                                //find namespace for the prefix
-                                java.lang.String nsUri = reader.getNamespaceContext().getNamespaceURI(nsPrefix);
-                                return (GMonth)org.apache.axis2.databinding.types.soapencoding.ExtensionMapper.getTypeObject(
-                                     nsUri,type,reader);
-                              }
-                        
-
-                  }
-                
-
-                }
-
-                
-
-                
-                // Note all attributes that were handled. Used to differ normal attributes
-                // from anyAttributes.
-                java.util.Vector handledAttributes = new java.util.Vector();
-                
-
-                    
-                while(!reader.isEndElement()) {
-                    if (reader.isStartElement()  || reader.hasText()){
-                
-                                    if (reader.isStartElement()  || reader.hasText()){
-                                
-                                    java.lang.String content = reader.getElementText();
-                                    
-                                              object.setGMonth(
-                                                    org.apache.axis2.databinding.utils.ConverterUtil.convertToGMonth(content));
-                                            
-                              }  // End of if for expected property start element
-                                
-                             else{
-                                        // A start element we are not expecting indicates an invalid parameter was passed
-                                        throw new org.apache.axis2.databinding.ADBException("Unexpected subelement " + reader.getLocalName());
-                             }
-                          
-                             } else {
-                                reader.next();
-                             }  
-                           }  // end of while loop
-                        
-
-
-
-            } catch (javax.xml.stream.XMLStreamException e) {
-                throw new java.lang.Exception(e);
-            }
-
-            return object;
-        }
-
-        }//end of factory class
-
-        
-
-        }
-           
-          
\ No newline at end of file
diff --git a/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/GMonthDay.java b/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/GMonthDay.java
deleted file mode 100644
index 162fa6b..0000000
--- a/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/GMonthDay.java
+++ /dev/null
@@ -1,469 +0,0 @@
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/**
- * GMonthDay.java
- *
- * This file was auto-generated from WSDL
- * by the Apache Axis2 version: SNAPSHOT  Built on : Dec 21, 2007 (04:03:30 LKT)
- */
-            
-                package org.apache.axis2.databinding.types.soapencoding;
-
-import javax.xml.stream.XMLStreamWriter;
-            
-
-            /**
-            *  GMonthDay bean class
-            */
-        
-        public  class GMonthDay
-        implements org.apache.axis2.databinding.ADBBean{
-        /* This type was generated from the piece of schema that had
-                name = gMonthDay
-                Namespace URI = http://schemas.xmlsoap.org/soap/encoding/
-                Namespace Prefix = ns1
-                */
-            
-
-        private static java.lang.String generatePrefix(java.lang.String namespace) {
-            if(namespace.equals("http://schemas.xmlsoap.org/soap/encoding/")){
-                return "SOAP-ENC";
-            }
-            return org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-        }
-
-        
-
-                        /**
-                        * field for GMonthDay
-                        */
-
-                        
-                                    protected org.apache.axis2.databinding.types.MonthDay localGMonthDay ;
-                                
-
-                           /**
-                           * Auto generated getter method
-                           * @return org.apache.axis2.databinding.types.MonthDay
-                           */
-                           public  org.apache.axis2.databinding.types.MonthDay getGMonthDay(){
-                               return localGMonthDay;
-                           }
-
-                           
-                        
-                            /**
-                               * Auto generated setter method
-                               * @param param GMonthDay
-                               */
-                               public void setGMonthDay(org.apache.axis2.databinding.types.MonthDay param){
-                            
-                                            this.localGMonthDay=param;
-                                    
-
-                               }
-                            
-
-                            public java.lang.String toString(){
-                                
-                                        return localGMonthDay.toString();
-                                    
-                            }
-                        
-
-     /**
-     * isReaderMTOMAware
-     * @return true if the reader supports MTOM
-     */
-   public static boolean isReaderMTOMAware(javax.xml.stream.XMLStreamReader reader) {
-        boolean isReaderMTOMAware = false;
-        
-        try{
-          isReaderMTOMAware = java.lang.Boolean.TRUE.equals(reader.getProperty(org.apache.axiom.om.OMConstants.IS_DATA_HANDLERS_AWARE));
-        }catch(java.lang.IllegalArgumentException e){
-          isReaderMTOMAware = false;
-        }
-        return isReaderMTOMAware;
-   }
-     
-     
-        /**
-        *
-        * @param parentQName
-        * @param factory
-        * @return org.apache.axiom.om.OMElement
-        */
-       public org.apache.axiom.om.OMElement getOMElement (
-               final javax.xml.namespace.QName parentQName,
-               final org.apache.axiom.om.OMFactory factory) throws org.apache.axis2.databinding.ADBException{
-
-
-        
-               org.apache.axiom.om.OMDataSource dataSource =
-                       new org.apache.axis2.databinding.ADBDataSource(this,parentQName);
-               return factory.createOMElement(dataSource,parentQName);
-            
-       }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                                       XMLStreamWriter xmlWriter)
-                                throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-                           serialize(parentQName,xmlWriter,false);
-         }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                               XMLStreamWriter xmlWriter,
-                               boolean serializeType)
-            throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-            
-                
-
-
-                java.lang.String prefix = null;
-                java.lang.String namespace = null;
-                
-
-                    prefix = parentQName.getPrefix();
-                    namespace = parentQName.getNamespaceURI();
-
-                    if ((namespace != null) && (namespace.trim().length() > 0)) {
-                        java.lang.String writerPrefix = xmlWriter.getPrefix(namespace);
-                        if (writerPrefix != null) {
-                            xmlWriter.writeStartElement(namespace, parentQName.getLocalPart());
-                        } else {
-                            if (prefix == null) {
-                                prefix = generatePrefix(namespace);
-                            }
-
-                            xmlWriter.writeStartElement(prefix, parentQName.getLocalPart(), namespace);
-                            xmlWriter.writeNamespace(prefix, namespace);
-                            xmlWriter.setPrefix(prefix, namespace);
-                        }
-                    } else {
-                        xmlWriter.writeStartElement(parentQName.getLocalPart());
-                    }
-                
-                  if (serializeType){
-               
-                   java.lang.String namespacePrefix = registerPrefix(xmlWriter,"http://schemas.xmlsoap.org/soap/encoding/");
-                   if ((namespacePrefix != null) && (namespacePrefix.trim().length() > 0)){
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           namespacePrefix+":gMonthDay",
-                           xmlWriter);
-                   } else {
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           "gMonthDay",
-                           xmlWriter);
-                   }
-
-               
-                   }
-               
-
-                                          if (localGMonthDay==null){
-                                              // write the nil attribute
-                                              
-                                                     throw new org.apache.axis2.databinding.ADBException("gMonthDay cannot be null!!");
-                                                  
-                                          }else{
-
-                                        
-                                                   xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(localGMonthDay));
-                                            
-                                          }
-                                    
-                    xmlWriter.writeEndElement();
-               
-
-        }
-
-         /**
-          * Util method to write an attribute with the ns prefix
-          */
-          private void writeAttribute(java.lang.String prefix,java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-              if (xmlWriter.getPrefix(namespace) == null) {
-                       xmlWriter.writeNamespace(prefix, namespace);
-                       xmlWriter.setPrefix(prefix, namespace);
-
-              }
-
-              xmlWriter.writeAttribute(namespace,attName,attValue);
-
-         }
-
-        /**
-          * Util method to write an attribute without the ns prefix
-          */
-          private void writeAttribute(java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-                if (namespace.equals(""))
-              {
-                  xmlWriter.writeAttribute(attName,attValue);
-              }
-              else
-              {
-                  registerPrefix(xmlWriter, namespace);
-                  xmlWriter.writeAttribute(namespace,attName,attValue);
-              }
-          }
-
-
-           /**
-             * Util method to write an attribute without the ns prefix
-             */
-            private void writeQNameAttribute(java.lang.String namespace, java.lang.String attName,
-                                             javax.xml.namespace.QName qname, javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-                java.lang.String attributeNamespace = qname.getNamespaceURI();
-                java.lang.String attributePrefix = xmlWriter.getPrefix(attributeNamespace);
-                if (attributePrefix == null) {
-                    attributePrefix = registerPrefix(xmlWriter, attributeNamespace);
-                }
-                java.lang.String attributeValue;
-                if (attributePrefix.trim().length() > 0) {
-                    attributeValue = attributePrefix + ":" + qname.getLocalPart();
-                } else {
-                    attributeValue = qname.getLocalPart();
-                }
-
-                if (namespace.equals("")) {
-                    xmlWriter.writeAttribute(attName, attributeValue);
-                } else {
-                    registerPrefix(xmlWriter, namespace);
-                    xmlWriter.writeAttribute(namespace, attName, attributeValue);
-                }
-            }
-        /**
-         *  method to handle Qnames
-         */
-
-        private void writeQName(javax.xml.namespace.QName qname,
-                                javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-            java.lang.String namespaceURI = qname.getNamespaceURI();
-            if (namespaceURI != null) {
-                java.lang.String prefix = xmlWriter.getPrefix(namespaceURI);
-                if (prefix == null) {
-                    prefix = generatePrefix(namespaceURI);
-                    xmlWriter.writeNamespace(prefix, namespaceURI);
-                    xmlWriter.setPrefix(prefix,namespaceURI);
-                }
-
-                if (prefix.trim().length() > 0){
-                    xmlWriter.writeCharacters(prefix + ":" + org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                } else {
-                    // i.e this is the default namespace
-                    xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                }
-
-            } else {
-                xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-            }
-        }
-
-        private void writeQNames(javax.xml.namespace.QName[] qnames,
-                                 javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-            if (qnames != null) {
-                // we have to store this data until last moment since it is not possible to write any
-                // namespace data after writing the charactor data
-                java.lang.StringBuffer stringToWrite = new java.lang.StringBuffer();
-                java.lang.String namespaceURI = null;
-                java.lang.String prefix = null;
-
-                for (int i = 0; i < qnames.length; i++) {
-                    if (i > 0) {
-                        stringToWrite.append(" ");
-                    }
-                    namespaceURI = qnames[i].getNamespaceURI();
-                    if (namespaceURI != null) {
-                        prefix = xmlWriter.getPrefix(namespaceURI);
-                        if ((prefix == null) || (prefix.length() == 0)) {
-                            prefix = generatePrefix(namespaceURI);
-                            xmlWriter.writeNamespace(prefix, namespaceURI);
-                            xmlWriter.setPrefix(prefix,namespaceURI);
-                        }
-
-                        if (prefix.trim().length() > 0){
-                            stringToWrite.append(prefix).append(":").append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        } else {
-                            stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        }
-                    } else {
-                        stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                    }
-                }
-                xmlWriter.writeCharacters(stringToWrite.toString());
-            }
-
-        }
-
-
-         /**
-         * Register a namespace prefix
-         */
-         private java.lang.String registerPrefix(javax.xml.stream.XMLStreamWriter xmlWriter, java.lang.String namespace) throws javax.xml.stream.XMLStreamException {
-                java.lang.String prefix = xmlWriter.getPrefix(namespace);
-
-                if (prefix == null) {
-                    prefix = generatePrefix(namespace);
-                    javax.xml.namespace.NamespaceContext nsContext = xmlWriter.getNamespaceContext();
-                    while (true) {
-                        java.lang.String uri = nsContext.getNamespaceURI(prefix);
-                        if (uri == null || uri.length() == 0) {
-                            break;
-                        }
-                        prefix = org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-                    }
-                    xmlWriter.writeNamespace(prefix, namespace);
-                    xmlWriter.setPrefix(prefix, namespace);
-                }
-
-                return prefix;
-            }
-
-
-  
-     /**
-      *  Factory class that keeps the parse method
-      */
-    public static class Factory{
-
-        
-        
-                public static GMonthDay fromString(java.lang.String value,
-                                                    java.lang.String namespaceURI){
-                    GMonthDay returnValue = new  GMonthDay();
-                    
-                            returnValue.setGMonthDay(
-                                org.apache.axis2.databinding.utils.ConverterUtil.convertToGMonthDay(value));
-                        
-
-                    return returnValue;
-                }
-
-                public static GMonthDay fromString(javax.xml.stream.XMLStreamReader xmlStreamReader,
-                                                                    java.lang.String content) {
-                    if (content.indexOf(":") > -1){
-                        java.lang.String prefix = content.substring(0,content.indexOf(":"));
-                        java.lang.String namespaceUri = xmlStreamReader.getNamespaceContext().getNamespaceURI(prefix);
-                        return GMonthDay.Factory.fromString(content,namespaceUri);
-                    } else {
-                       return GMonthDay.Factory.fromString(content,"");
-                    }
-                }
-
-            
-
-        /**
-        * static method to create the object
-        * Precondition:  If this object is an element, the current or next start element starts this object and any intervening reader events are ignorable
-        *                If this object is not an element, it is a complex type and the reader is at the event just after the outer start element
-        * Postcondition: If this object is an element, the reader is positioned at its end element
-        *                If this object is a complex type, the reader is positioned at the end element of its outer element
-        */
-        public static GMonthDay parse(javax.xml.stream.XMLStreamReader reader) throws java.lang.Exception{
-            GMonthDay object =
-                new GMonthDay();
-
-            int event;
-            java.lang.String nillableValue = null;
-            java.lang.String prefix ="";
-            java.lang.String namespaceuri ="";
-            try {
-                
-                while (!reader.isStartElement() && !reader.isEndElement())
-                    reader.next();
-
-                
-                if (reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance","type")!=null){
-                  java.lang.String fullTypeName = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance",
-                        "type");
-                  if (fullTypeName!=null){
-                    java.lang.String nsPrefix = null;
-                    if (fullTypeName.indexOf(":") > -1){
-                        nsPrefix = fullTypeName.substring(0,fullTypeName.indexOf(":"));
-                    }
-                    nsPrefix = nsPrefix==null?"":nsPrefix;
-
-                    java.lang.String type = fullTypeName.substring(fullTypeName.indexOf(":")+1);
-                    
-                            if (!"gMonthDay".equals(type)){
-                                //find namespace for the prefix
-                                java.lang.String nsUri = reader.getNamespaceContext().getNamespaceURI(nsPrefix);
-                                return (GMonthDay)org.apache.axis2.databinding.types.soapencoding.ExtensionMapper.getTypeObject(
-                                     nsUri,type,reader);
-                              }
-                        
-
-                  }
-                
-
-                }
-
-                
-
-                
-                // Note all attributes that were handled. Used to differ normal attributes
-                // from anyAttributes.
-                java.util.Vector handledAttributes = new java.util.Vector();
-                
-
-                    
-                while(!reader.isEndElement()) {
-                    if (reader.isStartElement()  || reader.hasText()){
-                
-                                    if (reader.isStartElement()  || reader.hasText()){
-                                
-                                    java.lang.String content = reader.getElementText();
-                                    
-                                              object.setGMonthDay(
-                                                    org.apache.axis2.databinding.utils.ConverterUtil.convertToGMonthDay(content));
-                                            
-                              }  // End of if for expected property start element
-                                
-                             else{
-                                        // A start element we are not expecting indicates an invalid parameter was passed
-                                        throw new org.apache.axis2.databinding.ADBException("Unexpected subelement " + reader.getLocalName());
-                             }
-                          
-                             } else {
-                                reader.next();
-                             }  
-                           }  // end of while loop
-                        
-
-
-
-            } catch (javax.xml.stream.XMLStreamException e) {
-                throw new java.lang.Exception(e);
-            }
-
-            return object;
-        }
-
-        }//end of factory class
-
-        
-
-        }
-           
-          
\ No newline at end of file
diff --git a/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/GYear.java b/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/GYear.java
deleted file mode 100644
index e50eb9e..0000000
--- a/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/GYear.java
+++ /dev/null
@@ -1,469 +0,0 @@
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/**
- * GYear.java
- *
- * This file was auto-generated from WSDL
- * by the Apache Axis2 version: SNAPSHOT  Built on : Dec 21, 2007 (04:03:30 LKT)
- */
-            
-                package org.apache.axis2.databinding.types.soapencoding;
-
-import javax.xml.stream.XMLStreamWriter;
-            
-
-            /**
-            *  GYear bean class
-            */
-        
-        public  class GYear
-        implements org.apache.axis2.databinding.ADBBean{
-        /* This type was generated from the piece of schema that had
-                name = gYear
-                Namespace URI = http://schemas.xmlsoap.org/soap/encoding/
-                Namespace Prefix = ns1
-                */
-            
-
-        private static java.lang.String generatePrefix(java.lang.String namespace) {
-            if(namespace.equals("http://schemas.xmlsoap.org/soap/encoding/")){
-                return "SOAP-ENC";
-            }
-            return org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-        }
-
-        
-
-                        /**
-                        * field for GYear
-                        */
-
-                        
-                                    protected org.apache.axis2.databinding.types.Year localGYear ;
-                                
-
-                           /**
-                           * Auto generated getter method
-                           * @return org.apache.axis2.databinding.types.Year
-                           */
-                           public  org.apache.axis2.databinding.types.Year getGYear(){
-                               return localGYear;
-                           }
-
-                           
-                        
-                            /**
-                               * Auto generated setter method
-                               * @param param GYear
-                               */
-                               public void setGYear(org.apache.axis2.databinding.types.Year param){
-                            
-                                            this.localGYear=param;
-                                    
-
-                               }
-                            
-
-                            public java.lang.String toString(){
-                                
-                                        return localGYear.toString();
-                                    
-                            }
-                        
-
-     /**
-     * isReaderMTOMAware
-     * @return true if the reader supports MTOM
-     */
-   public static boolean isReaderMTOMAware(javax.xml.stream.XMLStreamReader reader) {
-        boolean isReaderMTOMAware = false;
-        
-        try{
-          isReaderMTOMAware = java.lang.Boolean.TRUE.equals(reader.getProperty(org.apache.axiom.om.OMConstants.IS_DATA_HANDLERS_AWARE));
-        }catch(java.lang.IllegalArgumentException e){
-          isReaderMTOMAware = false;
-        }
-        return isReaderMTOMAware;
-   }
-     
-     
-        /**
-        *
-        * @param parentQName
-        * @param factory
-        * @return org.apache.axiom.om.OMElement
-        */
-       public org.apache.axiom.om.OMElement getOMElement (
-               final javax.xml.namespace.QName parentQName,
-               final org.apache.axiom.om.OMFactory factory) throws org.apache.axis2.databinding.ADBException{
-
-
-        
-               org.apache.axiom.om.OMDataSource dataSource =
-                       new org.apache.axis2.databinding.ADBDataSource(this,parentQName);
-               return factory.createOMElement(dataSource,parentQName);
-            
-       }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                                       XMLStreamWriter xmlWriter)
-                                throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-                           serialize(parentQName,xmlWriter,false);
-         }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                               XMLStreamWriter xmlWriter,
-                               boolean serializeType)
-            throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-            
-                
-
-
-                java.lang.String prefix = null;
-                java.lang.String namespace = null;
-                
-
-                    prefix = parentQName.getPrefix();
-                    namespace = parentQName.getNamespaceURI();
-
-                    if ((namespace != null) && (namespace.trim().length() > 0)) {
-                        java.lang.String writerPrefix = xmlWriter.getPrefix(namespace);
-                        if (writerPrefix != null) {
-                            xmlWriter.writeStartElement(namespace, parentQName.getLocalPart());
-                        } else {
-                            if (prefix == null) {
-                                prefix = generatePrefix(namespace);
-                            }
-
-                            xmlWriter.writeStartElement(prefix, parentQName.getLocalPart(), namespace);
-                            xmlWriter.writeNamespace(prefix, namespace);
-                            xmlWriter.setPrefix(prefix, namespace);
-                        }
-                    } else {
-                        xmlWriter.writeStartElement(parentQName.getLocalPart());
-                    }
-                
-                  if (serializeType){
-               
-                   java.lang.String namespacePrefix = registerPrefix(xmlWriter,"http://schemas.xmlsoap.org/soap/encoding/");
-                   if ((namespacePrefix != null) && (namespacePrefix.trim().length() > 0)){
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           namespacePrefix+":gYear",
-                           xmlWriter);
-                   } else {
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           "gYear",
-                           xmlWriter);
-                   }
-
-               
-                   }
-               
-
-                                          if (localGYear==null){
-                                              // write the nil attribute
-                                              
-                                                     throw new org.apache.axis2.databinding.ADBException("gYear cannot be null!!");
-                                                  
-                                          }else{
-
-                                        
-                                                   xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(localGYear));
-                                            
-                                          }
-                                    
-                    xmlWriter.writeEndElement();
-               
-
-        }
-
-         /**
-          * Util method to write an attribute with the ns prefix
-          */
-          private void writeAttribute(java.lang.String prefix,java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-              if (xmlWriter.getPrefix(namespace) == null) {
-                       xmlWriter.writeNamespace(prefix, namespace);
-                       xmlWriter.setPrefix(prefix, namespace);
-
-              }
-
-              xmlWriter.writeAttribute(namespace,attName,attValue);
-
-         }
-
-        /**
-          * Util method to write an attribute without the ns prefix
-          */
-          private void writeAttribute(java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-                if (namespace.equals(""))
-              {
-                  xmlWriter.writeAttribute(attName,attValue);
-              }
-              else
-              {
-                  registerPrefix(xmlWriter, namespace);
-                  xmlWriter.writeAttribute(namespace,attName,attValue);
-              }
-          }
-
-
-           /**
-             * Util method to write an attribute without the ns prefix
-             */
-            private void writeQNameAttribute(java.lang.String namespace, java.lang.String attName,
-                                             javax.xml.namespace.QName qname, javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-                java.lang.String attributeNamespace = qname.getNamespaceURI();
-                java.lang.String attributePrefix = xmlWriter.getPrefix(attributeNamespace);
-                if (attributePrefix == null) {
-                    attributePrefix = registerPrefix(xmlWriter, attributeNamespace);
-                }
-                java.lang.String attributeValue;
-                if (attributePrefix.trim().length() > 0) {
-                    attributeValue = attributePrefix + ":" + qname.getLocalPart();
-                } else {
-                    attributeValue = qname.getLocalPart();
-                }
-
-                if (namespace.equals("")) {
-                    xmlWriter.writeAttribute(attName, attributeValue);
-                } else {
-                    registerPrefix(xmlWriter, namespace);
-                    xmlWriter.writeAttribute(namespace, attName, attributeValue);
-                }
-            }
-        /**
-         *  method to handle Qnames
-         */
-
-        private void writeQName(javax.xml.namespace.QName qname,
-                                javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-            java.lang.String namespaceURI = qname.getNamespaceURI();
-            if (namespaceURI != null) {
-                java.lang.String prefix = xmlWriter.getPrefix(namespaceURI);
-                if (prefix == null) {
-                    prefix = generatePrefix(namespaceURI);
-                    xmlWriter.writeNamespace(prefix, namespaceURI);
-                    xmlWriter.setPrefix(prefix,namespaceURI);
-                }
-
-                if (prefix.trim().length() > 0){
-                    xmlWriter.writeCharacters(prefix + ":" + org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                } else {
-                    // i.e this is the default namespace
-                    xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                }
-
-            } else {
-                xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-            }
-        }
-
-        private void writeQNames(javax.xml.namespace.QName[] qnames,
-                                 javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-            if (qnames != null) {
-                // we have to store this data until last moment since it is not possible to write any
-                // namespace data after writing the charactor data
-                java.lang.StringBuffer stringToWrite = new java.lang.StringBuffer();
-                java.lang.String namespaceURI = null;
-                java.lang.String prefix = null;
-
-                for (int i = 0; i < qnames.length; i++) {
-                    if (i > 0) {
-                        stringToWrite.append(" ");
-                    }
-                    namespaceURI = qnames[i].getNamespaceURI();
-                    if (namespaceURI != null) {
-                        prefix = xmlWriter.getPrefix(namespaceURI);
-                        if ((prefix == null) || (prefix.length() == 0)) {
-                            prefix = generatePrefix(namespaceURI);
-                            xmlWriter.writeNamespace(prefix, namespaceURI);
-                            xmlWriter.setPrefix(prefix,namespaceURI);
-                        }
-
-                        if (prefix.trim().length() > 0){
-                            stringToWrite.append(prefix).append(":").append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        } else {
-                            stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        }
-                    } else {
-                        stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                    }
-                }
-                xmlWriter.writeCharacters(stringToWrite.toString());
-            }
-
-        }
-
-
-         /**
-         * Register a namespace prefix
-         */
-         private java.lang.String registerPrefix(javax.xml.stream.XMLStreamWriter xmlWriter, java.lang.String namespace) throws javax.xml.stream.XMLStreamException {
-                java.lang.String prefix = xmlWriter.getPrefix(namespace);
-
-                if (prefix == null) {
-                    prefix = generatePrefix(namespace);
-                    javax.xml.namespace.NamespaceContext nsContext = xmlWriter.getNamespaceContext();
-                    while (true) {
-                        java.lang.String uri = nsContext.getNamespaceURI(prefix);
-                        if (uri == null || uri.length() == 0) {
-                            break;
-                        }
-                        prefix = org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-                    }
-                    xmlWriter.writeNamespace(prefix, namespace);
-                    xmlWriter.setPrefix(prefix, namespace);
-                }
-
-                return prefix;
-            }
-
-
-  
-     /**
-      *  Factory class that keeps the parse method
-      */
-    public static class Factory{
-
-        
-        
-                public static GYear fromString(java.lang.String value,
-                                                    java.lang.String namespaceURI){
-                    GYear returnValue = new  GYear();
-                    
-                            returnValue.setGYear(
-                                org.apache.axis2.databinding.utils.ConverterUtil.convertToGYear(value));
-                        
-
-                    return returnValue;
-                }
-
-                public static GYear fromString(javax.xml.stream.XMLStreamReader xmlStreamReader,
-                                                                    java.lang.String content) {
-                    if (content.indexOf(":") > -1){
-                        java.lang.String prefix = content.substring(0,content.indexOf(":"));
-                        java.lang.String namespaceUri = xmlStreamReader.getNamespaceContext().getNamespaceURI(prefix);
-                        return GYear.Factory.fromString(content,namespaceUri);
-                    } else {
-                       return GYear.Factory.fromString(content,"");
-                    }
-                }
-
-            
-
-        /**
-        * static method to create the object
-        * Precondition:  If this object is an element, the current or next start element starts this object and any intervening reader events are ignorable
-        *                If this object is not an element, it is a complex type and the reader is at the event just after the outer start element
-        * Postcondition: If this object is an element, the reader is positioned at its end element
-        *                If this object is a complex type, the reader is positioned at the end element of its outer element
-        */
-        public static GYear parse(javax.xml.stream.XMLStreamReader reader) throws java.lang.Exception{
-            GYear object =
-                new GYear();
-
-            int event;
-            java.lang.String nillableValue = null;
-            java.lang.String prefix ="";
-            java.lang.String namespaceuri ="";
-            try {
-                
-                while (!reader.isStartElement() && !reader.isEndElement())
-                    reader.next();
-
-                
-                if (reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance","type")!=null){
-                  java.lang.String fullTypeName = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance",
-                        "type");
-                  if (fullTypeName!=null){
-                    java.lang.String nsPrefix = null;
-                    if (fullTypeName.indexOf(":") > -1){
-                        nsPrefix = fullTypeName.substring(0,fullTypeName.indexOf(":"));
-                    }
-                    nsPrefix = nsPrefix==null?"":nsPrefix;
-
-                    java.lang.String type = fullTypeName.substring(fullTypeName.indexOf(":")+1);
-                    
-                            if (!"gYear".equals(type)){
-                                //find namespace for the prefix
-                                java.lang.String nsUri = reader.getNamespaceContext().getNamespaceURI(nsPrefix);
-                                return (GYear)org.apache.axis2.databinding.types.soapencoding.ExtensionMapper.getTypeObject(
-                                     nsUri,type,reader);
-                              }
-                        
-
-                  }
-                
-
-                }
-
-                
-
-                
-                // Note all attributes that were handled. Used to differ normal attributes
-                // from anyAttributes.
-                java.util.Vector handledAttributes = new java.util.Vector();
-                
-
-                    
-                while(!reader.isEndElement()) {
-                    if (reader.isStartElement()  || reader.hasText()){
-                
-                                    if (reader.isStartElement()  || reader.hasText()){
-                                
-                                    java.lang.String content = reader.getElementText();
-                                    
-                                              object.setGYear(
-                                                    org.apache.axis2.databinding.utils.ConverterUtil.convertToGYear(content));
-                                            
-                              }  // End of if for expected property start element
-                                
-                             else{
-                                        // A start element we are not expecting indicates an invalid parameter was passed
-                                        throw new org.apache.axis2.databinding.ADBException("Unexpected subelement " + reader.getLocalName());
-                             }
-                          
-                             } else {
-                                reader.next();
-                             }  
-                           }  // end of while loop
-                        
-
-
-
-            } catch (javax.xml.stream.XMLStreamException e) {
-                throw new java.lang.Exception(e);
-            }
-
-            return object;
-        }
-
-        }//end of factory class
-
-        
-
-        }
-           
-          
\ No newline at end of file
diff --git a/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/GYearMonth.java b/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/GYearMonth.java
deleted file mode 100644
index b21ad5a..0000000
--- a/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/GYearMonth.java
+++ /dev/null
@@ -1,469 +0,0 @@
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/**
- * GYearMonth.java
- *
- * This file was auto-generated from WSDL
- * by the Apache Axis2 version: SNAPSHOT  Built on : Dec 21, 2007 (04:03:30 LKT)
- */
-            
-                package org.apache.axis2.databinding.types.soapencoding;
-
-import javax.xml.stream.XMLStreamWriter;
-            
-
-            /**
-            *  GYearMonth bean class
-            */
-        
-        public  class GYearMonth
-        implements org.apache.axis2.databinding.ADBBean{
-        /* This type was generated from the piece of schema that had
-                name = gYearMonth
-                Namespace URI = http://schemas.xmlsoap.org/soap/encoding/
-                Namespace Prefix = ns1
-                */
-            
-
-        private static java.lang.String generatePrefix(java.lang.String namespace) {
-            if(namespace.equals("http://schemas.xmlsoap.org/soap/encoding/")){
-                return "SOAP-ENC";
-            }
-            return org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-        }
-
-        
-
-                        /**
-                        * field for GYearMonth
-                        */
-
-                        
-                                    protected org.apache.axis2.databinding.types.YearMonth localGYearMonth ;
-                                
-
-                           /**
-                           * Auto generated getter method
-                           * @return org.apache.axis2.databinding.types.YearMonth
-                           */
-                           public  org.apache.axis2.databinding.types.YearMonth getGYearMonth(){
-                               return localGYearMonth;
-                           }
-
-                           
-                        
-                            /**
-                               * Auto generated setter method
-                               * @param param GYearMonth
-                               */
-                               public void setGYearMonth(org.apache.axis2.databinding.types.YearMonth param){
-                            
-                                            this.localGYearMonth=param;
-                                    
-
-                               }
-                            
-
-                            public java.lang.String toString(){
-                                
-                                        return localGYearMonth.toString();
-                                    
-                            }
-                        
-
-     /**
-     * isReaderMTOMAware
-     * @return true if the reader supports MTOM
-     */
-   public static boolean isReaderMTOMAware(javax.xml.stream.XMLStreamReader reader) {
-        boolean isReaderMTOMAware = false;
-        
-        try{
-          isReaderMTOMAware = java.lang.Boolean.TRUE.equals(reader.getProperty(org.apache.axiom.om.OMConstants.IS_DATA_HANDLERS_AWARE));
-        }catch(java.lang.IllegalArgumentException e){
-          isReaderMTOMAware = false;
-        }
-        return isReaderMTOMAware;
-   }
-     
-     
-        /**
-        *
-        * @param parentQName
-        * @param factory
-        * @return org.apache.axiom.om.OMElement
-        */
-       public org.apache.axiom.om.OMElement getOMElement (
-               final javax.xml.namespace.QName parentQName,
-               final org.apache.axiom.om.OMFactory factory) throws org.apache.axis2.databinding.ADBException{
-
-
-        
-               org.apache.axiom.om.OMDataSource dataSource =
-                       new org.apache.axis2.databinding.ADBDataSource(this,parentQName);
-               return factory.createOMElement(dataSource,parentQName);
-            
-       }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                                       XMLStreamWriter xmlWriter)
-                                throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-                           serialize(parentQName,xmlWriter,false);
-         }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                               XMLStreamWriter xmlWriter,
-                               boolean serializeType)
-            throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-            
-                
-
-
-                java.lang.String prefix = null;
-                java.lang.String namespace = null;
-                
-
-                    prefix = parentQName.getPrefix();
-                    namespace = parentQName.getNamespaceURI();
-
-                    if ((namespace != null) && (namespace.trim().length() > 0)) {
-                        java.lang.String writerPrefix = xmlWriter.getPrefix(namespace);
-                        if (writerPrefix != null) {
-                            xmlWriter.writeStartElement(namespace, parentQName.getLocalPart());
-                        } else {
-                            if (prefix == null) {
-                                prefix = generatePrefix(namespace);
-                            }
-
-                            xmlWriter.writeStartElement(prefix, parentQName.getLocalPart(), namespace);
-                            xmlWriter.writeNamespace(prefix, namespace);
-                            xmlWriter.setPrefix(prefix, namespace);
-                        }
-                    } else {
-                        xmlWriter.writeStartElement(parentQName.getLocalPart());
-                    }
-                
-                  if (serializeType){
-               
-                   java.lang.String namespacePrefix = registerPrefix(xmlWriter,"http://schemas.xmlsoap.org/soap/encoding/");
-                   if ((namespacePrefix != null) && (namespacePrefix.trim().length() > 0)){
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           namespacePrefix+":gYearMonth",
-                           xmlWriter);
-                   } else {
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           "gYearMonth",
-                           xmlWriter);
-                   }
-
-               
-                   }
-               
-
-                                          if (localGYearMonth==null){
-                                              // write the nil attribute
-                                              
-                                                     throw new org.apache.axis2.databinding.ADBException("gYearMonth cannot be null!!");
-                                                  
-                                          }else{
-
-                                        
-                                                   xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(localGYearMonth));
-                                            
-                                          }
-                                    
-                    xmlWriter.writeEndElement();
-               
-
-        }
-
-         /**
-          * Util method to write an attribute with the ns prefix
-          */
-          private void writeAttribute(java.lang.String prefix,java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-              if (xmlWriter.getPrefix(namespace) == null) {
-                       xmlWriter.writeNamespace(prefix, namespace);
-                       xmlWriter.setPrefix(prefix, namespace);
-
-              }
-
-              xmlWriter.writeAttribute(namespace,attName,attValue);
-
-         }
-
-        /**
-          * Util method to write an attribute without the ns prefix
-          */
-          private void writeAttribute(java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-                if (namespace.equals(""))
-              {
-                  xmlWriter.writeAttribute(attName,attValue);
-              }
-              else
-              {
-                  registerPrefix(xmlWriter, namespace);
-                  xmlWriter.writeAttribute(namespace,attName,attValue);
-              }
-          }
-
-
-           /**
-             * Util method to write an attribute without the ns prefix
-             */
-            private void writeQNameAttribute(java.lang.String namespace, java.lang.String attName,
-                                             javax.xml.namespace.QName qname, javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-                java.lang.String attributeNamespace = qname.getNamespaceURI();
-                java.lang.String attributePrefix = xmlWriter.getPrefix(attributeNamespace);
-                if (attributePrefix == null) {
-                    attributePrefix = registerPrefix(xmlWriter, attributeNamespace);
-                }
-                java.lang.String attributeValue;
-                if (attributePrefix.trim().length() > 0) {
-                    attributeValue = attributePrefix + ":" + qname.getLocalPart();
-                } else {
-                    attributeValue = qname.getLocalPart();
-                }
-
-                if (namespace.equals("")) {
-                    xmlWriter.writeAttribute(attName, attributeValue);
-                } else {
-                    registerPrefix(xmlWriter, namespace);
-                    xmlWriter.writeAttribute(namespace, attName, attributeValue);
-                }
-            }
-        /**
-         *  method to handle Qnames
-         */
-
-        private void writeQName(javax.xml.namespace.QName qname,
-                                javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-            java.lang.String namespaceURI = qname.getNamespaceURI();
-            if (namespaceURI != null) {
-                java.lang.String prefix = xmlWriter.getPrefix(namespaceURI);
-                if (prefix == null) {
-                    prefix = generatePrefix(namespaceURI);
-                    xmlWriter.writeNamespace(prefix, namespaceURI);
-                    xmlWriter.setPrefix(prefix,namespaceURI);
-                }
-
-                if (prefix.trim().length() > 0){
-                    xmlWriter.writeCharacters(prefix + ":" + org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                } else {
-                    // i.e this is the default namespace
-                    xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                }
-
-            } else {
-                xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-            }
-        }
-
-        private void writeQNames(javax.xml.namespace.QName[] qnames,
-                                 javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-            if (qnames != null) {
-                // we have to store this data until last moment since it is not possible to write any
-                // namespace data after writing the charactor data
-                java.lang.StringBuffer stringToWrite = new java.lang.StringBuffer();
-                java.lang.String namespaceURI = null;
-                java.lang.String prefix = null;
-
-                for (int i = 0; i < qnames.length; i++) {
-                    if (i > 0) {
-                        stringToWrite.append(" ");
-                    }
-                    namespaceURI = qnames[i].getNamespaceURI();
-                    if (namespaceURI != null) {
-                        prefix = xmlWriter.getPrefix(namespaceURI);
-                        if ((prefix == null) || (prefix.length() == 0)) {
-                            prefix = generatePrefix(namespaceURI);
-                            xmlWriter.writeNamespace(prefix, namespaceURI);
-                            xmlWriter.setPrefix(prefix,namespaceURI);
-                        }
-
-                        if (prefix.trim().length() > 0){
-                            stringToWrite.append(prefix).append(":").append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        } else {
-                            stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        }
-                    } else {
-                        stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                    }
-                }
-                xmlWriter.writeCharacters(stringToWrite.toString());
-            }
-
-        }
-
-
-         /**
-         * Register a namespace prefix
-         */
-         private java.lang.String registerPrefix(javax.xml.stream.XMLStreamWriter xmlWriter, java.lang.String namespace) throws javax.xml.stream.XMLStreamException {
-                java.lang.String prefix = xmlWriter.getPrefix(namespace);
-
-                if (prefix == null) {
-                    prefix = generatePrefix(namespace);
-                    javax.xml.namespace.NamespaceContext nsContext = xmlWriter.getNamespaceContext();
-                    while (true) {
-                        java.lang.String uri = nsContext.getNamespaceURI(prefix);
-                        if (uri == null || uri.length() == 0) {
-                            break;
-                        }
-                        prefix = org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-                    }
-                    xmlWriter.writeNamespace(prefix, namespace);
-                    xmlWriter.setPrefix(prefix, namespace);
-                }
-
-                return prefix;
-            }
-
-
-  
-     /**
-      *  Factory class that keeps the parse method
-      */
-    public static class Factory{
-
-        
-        
-                public static GYearMonth fromString(java.lang.String value,
-                                                    java.lang.String namespaceURI){
-                    GYearMonth returnValue = new  GYearMonth();
-                    
-                            returnValue.setGYearMonth(
-                                org.apache.axis2.databinding.utils.ConverterUtil.convertToGYearMonth(value));
-                        
-
-                    return returnValue;
-                }
-
-                public static GYearMonth fromString(javax.xml.stream.XMLStreamReader xmlStreamReader,
-                                                                    java.lang.String content) {
-                    if (content.indexOf(":") > -1){
-                        java.lang.String prefix = content.substring(0,content.indexOf(":"));
-                        java.lang.String namespaceUri = xmlStreamReader.getNamespaceContext().getNamespaceURI(prefix);
-                        return GYearMonth.Factory.fromString(content,namespaceUri);
-                    } else {
-                       return GYearMonth.Factory.fromString(content,"");
-                    }
-                }
-
-            
-
-        /**
-        * static method to create the object
-        * Precondition:  If this object is an element, the current or next start element starts this object and any intervening reader events are ignorable
-        *                If this object is not an element, it is a complex type and the reader is at the event just after the outer start element
-        * Postcondition: If this object is an element, the reader is positioned at its end element
-        *                If this object is a complex type, the reader is positioned at the end element of its outer element
-        */
-        public static GYearMonth parse(javax.xml.stream.XMLStreamReader reader) throws java.lang.Exception{
-            GYearMonth object =
-                new GYearMonth();
-
-            int event;
-            java.lang.String nillableValue = null;
-            java.lang.String prefix ="";
-            java.lang.String namespaceuri ="";
-            try {
-                
-                while (!reader.isStartElement() && !reader.isEndElement())
-                    reader.next();
-
-                
-                if (reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance","type")!=null){
-                  java.lang.String fullTypeName = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance",
-                        "type");
-                  if (fullTypeName!=null){
-                    java.lang.String nsPrefix = null;
-                    if (fullTypeName.indexOf(":") > -1){
-                        nsPrefix = fullTypeName.substring(0,fullTypeName.indexOf(":"));
-                    }
-                    nsPrefix = nsPrefix==null?"":nsPrefix;
-
-                    java.lang.String type = fullTypeName.substring(fullTypeName.indexOf(":")+1);
-                    
-                            if (!"gYearMonth".equals(type)){
-                                //find namespace for the prefix
-                                java.lang.String nsUri = reader.getNamespaceContext().getNamespaceURI(nsPrefix);
-                                return (GYearMonth)org.apache.axis2.databinding.types.soapencoding.ExtensionMapper.getTypeObject(
-                                     nsUri,type,reader);
-                              }
-                        
-
-                  }
-                
-
-                }
-
-                
-
-                
-                // Note all attributes that were handled. Used to differ normal attributes
-                // from anyAttributes.
-                java.util.Vector handledAttributes = new java.util.Vector();
-                
-
-                    
-                while(!reader.isEndElement()) {
-                    if (reader.isStartElement()  || reader.hasText()){
-                
-                                    if (reader.isStartElement()  || reader.hasText()){
-                                
-                                    java.lang.String content = reader.getElementText();
-                                    
-                                              object.setGYearMonth(
-                                                    org.apache.axis2.databinding.utils.ConverterUtil.convertToGYearMonth(content));
-                                            
-                              }  // End of if for expected property start element
-                                
-                             else{
-                                        // A start element we are not expecting indicates an invalid parameter was passed
-                                        throw new org.apache.axis2.databinding.ADBException("Unexpected subelement " + reader.getLocalName());
-                             }
-                          
-                             } else {
-                                reader.next();
-                             }  
-                           }  // end of while loop
-                        
-
-
-
-            } catch (javax.xml.stream.XMLStreamException e) {
-                throw new java.lang.Exception(e);
-            }
-
-            return object;
-        }
-
-        }//end of factory class
-
-        
-
-        }
-           
-          
\ No newline at end of file
diff --git a/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/HexBinary.java b/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/HexBinary.java
deleted file mode 100644
index 6d9057f..0000000
--- a/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/HexBinary.java
+++ /dev/null
@@ -1,469 +0,0 @@
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/**
- * HexBinary.java
- *
- * This file was auto-generated from WSDL
- * by the Apache Axis2 version: SNAPSHOT  Built on : Dec 21, 2007 (04:03:30 LKT)
- */
-            
-                package org.apache.axis2.databinding.types.soapencoding;
-
-import javax.xml.stream.XMLStreamWriter;
-            
-
-            /**
-            *  HexBinary bean class
-            */
-        
-        public  class HexBinary
-        implements org.apache.axis2.databinding.ADBBean{
-        /* This type was generated from the piece of schema that had
-                name = hexBinary
-                Namespace URI = http://schemas.xmlsoap.org/soap/encoding/
-                Namespace Prefix = ns1
-                */
-            
-
-        private static java.lang.String generatePrefix(java.lang.String namespace) {
-            if(namespace.equals("http://schemas.xmlsoap.org/soap/encoding/")){
-                return "SOAP-ENC";
-            }
-            return org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-        }
-
-        
-
-                        /**
-                        * field for HexBinary
-                        */
-
-                        
-                                    protected org.apache.axis2.databinding.types.HexBinary localHexBinary ;
-                                
-
-                           /**
-                           * Auto generated getter method
-                           * @return org.apache.axis2.databinding.types.HexBinary
-                           */
-                           public  org.apache.axis2.databinding.types.HexBinary getHexBinary(){
-                               return localHexBinary;
-                           }
-
-                           
-                        
-                            /**
-                               * Auto generated setter method
-                               * @param param HexBinary
-                               */
-                               public void setHexBinary(org.apache.axis2.databinding.types.HexBinary param){
-                            
-                                            this.localHexBinary=param;
-                                    
-
-                               }
-                            
-
-                            public java.lang.String toString(){
-                                
-                                        return localHexBinary.toString();
-                                    
-                            }
-                        
-
-     /**
-     * isReaderMTOMAware
-     * @return true if the reader supports MTOM
-     */
-   public static boolean isReaderMTOMAware(javax.xml.stream.XMLStreamReader reader) {
-        boolean isReaderMTOMAware = false;
-        
-        try{
-          isReaderMTOMAware = java.lang.Boolean.TRUE.equals(reader.getProperty(org.apache.axiom.om.OMConstants.IS_DATA_HANDLERS_AWARE));
-        }catch(java.lang.IllegalArgumentException e){
-          isReaderMTOMAware = false;
-        }
-        return isReaderMTOMAware;
-   }
-     
-     
-        /**
-        *
-        * @param parentQName
-        * @param factory
-        * @return org.apache.axiom.om.OMElement
-        */
-       public org.apache.axiom.om.OMElement getOMElement (
-               final javax.xml.namespace.QName parentQName,
-               final org.apache.axiom.om.OMFactory factory) throws org.apache.axis2.databinding.ADBException{
-
-
-        
-               org.apache.axiom.om.OMDataSource dataSource =
-                       new org.apache.axis2.databinding.ADBDataSource(this,parentQName);
-               return factory.createOMElement(dataSource,parentQName);
-            
-       }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                                       XMLStreamWriter xmlWriter)
-                                throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-                           serialize(parentQName,xmlWriter,false);
-         }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                               XMLStreamWriter xmlWriter,
-                               boolean serializeType)
-            throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-            
-                
-
-
-                java.lang.String prefix = null;
-                java.lang.String namespace = null;
-                
-
-                    prefix = parentQName.getPrefix();
-                    namespace = parentQName.getNamespaceURI();
-
-                    if ((namespace != null) && (namespace.trim().length() > 0)) {
-                        java.lang.String writerPrefix = xmlWriter.getPrefix(namespace);
-                        if (writerPrefix != null) {
-                            xmlWriter.writeStartElement(namespace, parentQName.getLocalPart());
-                        } else {
-                            if (prefix == null) {
-                                prefix = generatePrefix(namespace);
-                            }
-
-                            xmlWriter.writeStartElement(prefix, parentQName.getLocalPart(), namespace);
-                            xmlWriter.writeNamespace(prefix, namespace);
-                            xmlWriter.setPrefix(prefix, namespace);
-                        }
-                    } else {
-                        xmlWriter.writeStartElement(parentQName.getLocalPart());
-                    }
-                
-                  if (serializeType){
-               
-                   java.lang.String namespacePrefix = registerPrefix(xmlWriter,"http://schemas.xmlsoap.org/soap/encoding/");
-                   if ((namespacePrefix != null) && (namespacePrefix.trim().length() > 0)){
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           namespacePrefix+":hexBinary",
-                           xmlWriter);
-                   } else {
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           "hexBinary",
-                           xmlWriter);
-                   }
-
-               
-                   }
-               
-
-                                          if (localHexBinary==null){
-                                              // write the nil attribute
-                                              
-                                                     throw new org.apache.axis2.databinding.ADBException("hexBinary cannot be null!!");
-                                                  
-                                          }else{
-
-                                        
-                                                   xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(localHexBinary));
-                                            
-                                          }
-                                    
-                    xmlWriter.writeEndElement();
-               
-
-        }
-
-         /**
-          * Util method to write an attribute with the ns prefix
-          */
-          private void writeAttribute(java.lang.String prefix,java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-              if (xmlWriter.getPrefix(namespace) == null) {
-                       xmlWriter.writeNamespace(prefix, namespace);
-                       xmlWriter.setPrefix(prefix, namespace);
-
-              }
-
-              xmlWriter.writeAttribute(namespace,attName,attValue);
-
-         }
-
-        /**
-          * Util method to write an attribute without the ns prefix
-          */
-          private void writeAttribute(java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-                if (namespace.equals(""))
-              {
-                  xmlWriter.writeAttribute(attName,attValue);
-              }
-              else
-              {
-                  registerPrefix(xmlWriter, namespace);
-                  xmlWriter.writeAttribute(namespace,attName,attValue);
-              }
-          }
-
-
-           /**
-             * Util method to write an attribute without the ns prefix
-             */
-            private void writeQNameAttribute(java.lang.String namespace, java.lang.String attName,
-                                             javax.xml.namespace.QName qname, javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-                java.lang.String attributeNamespace = qname.getNamespaceURI();
-                java.lang.String attributePrefix = xmlWriter.getPrefix(attributeNamespace);
-                if (attributePrefix == null) {
-                    attributePrefix = registerPrefix(xmlWriter, attributeNamespace);
-                }
-                java.lang.String attributeValue;
-                if (attributePrefix.trim().length() > 0) {
-                    attributeValue = attributePrefix + ":" + qname.getLocalPart();
-                } else {
-                    attributeValue = qname.getLocalPart();
-                }
-
-                if (namespace.equals("")) {
-                    xmlWriter.writeAttribute(attName, attributeValue);
-                } else {
-                    registerPrefix(xmlWriter, namespace);
-                    xmlWriter.writeAttribute(namespace, attName, attributeValue);
-                }
-            }
-        /**
-         *  method to handle Qnames
-         */
-
-        private void writeQName(javax.xml.namespace.QName qname,
-                                javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-            java.lang.String namespaceURI = qname.getNamespaceURI();
-            if (namespaceURI != null) {
-                java.lang.String prefix = xmlWriter.getPrefix(namespaceURI);
-                if (prefix == null) {
-                    prefix = generatePrefix(namespaceURI);
-                    xmlWriter.writeNamespace(prefix, namespaceURI);
-                    xmlWriter.setPrefix(prefix,namespaceURI);
-                }
-
-                if (prefix.trim().length() > 0){
-                    xmlWriter.writeCharacters(prefix + ":" + org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                } else {
-                    // i.e this is the default namespace
-                    xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                }
-
-            } else {
-                xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-            }
-        }
-
-        private void writeQNames(javax.xml.namespace.QName[] qnames,
-                                 javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-            if (qnames != null) {
-                // we have to store this data until last moment since it is not possible to write any
-                // namespace data after writing the charactor data
-                java.lang.StringBuffer stringToWrite = new java.lang.StringBuffer();
-                java.lang.String namespaceURI = null;
-                java.lang.String prefix = null;
-
-                for (int i = 0; i < qnames.length; i++) {
-                    if (i > 0) {
-                        stringToWrite.append(" ");
-                    }
-                    namespaceURI = qnames[i].getNamespaceURI();
-                    if (namespaceURI != null) {
-                        prefix = xmlWriter.getPrefix(namespaceURI);
-                        if ((prefix == null) || (prefix.length() == 0)) {
-                            prefix = generatePrefix(namespaceURI);
-                            xmlWriter.writeNamespace(prefix, namespaceURI);
-                            xmlWriter.setPrefix(prefix,namespaceURI);
-                        }
-
-                        if (prefix.trim().length() > 0){
-                            stringToWrite.append(prefix).append(":").append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        } else {
-                            stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        }
-                    } else {
-                        stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                    }
-                }
-                xmlWriter.writeCharacters(stringToWrite.toString());
-            }
-
-        }
-
-
-         /**
-         * Register a namespace prefix
-         */
-         private java.lang.String registerPrefix(javax.xml.stream.XMLStreamWriter xmlWriter, java.lang.String namespace) throws javax.xml.stream.XMLStreamException {
-                java.lang.String prefix = xmlWriter.getPrefix(namespace);
-
-                if (prefix == null) {
-                    prefix = generatePrefix(namespace);
-                    javax.xml.namespace.NamespaceContext nsContext = xmlWriter.getNamespaceContext();
-                    while (true) {
-                        java.lang.String uri = nsContext.getNamespaceURI(prefix);
-                        if (uri == null || uri.length() == 0) {
-                            break;
-                        }
-                        prefix = org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-                    }
-                    xmlWriter.writeNamespace(prefix, namespace);
-                    xmlWriter.setPrefix(prefix, namespace);
-                }
-
-                return prefix;
-            }
-
-
-  
-     /**
-      *  Factory class that keeps the parse method
-      */
-    public static class Factory{
-
-        
-        
-                public static HexBinary fromString(java.lang.String value,
-                                                    java.lang.String namespaceURI){
-                    HexBinary returnValue = new  HexBinary();
-                    
-                            returnValue.setHexBinary(
-                                org.apache.axis2.databinding.utils.ConverterUtil.convertToHexBinary(value));
-                        
-
-                    return returnValue;
-                }
-
-                public static HexBinary fromString(javax.xml.stream.XMLStreamReader xmlStreamReader,
-                                                                    java.lang.String content) {
-                    if (content.indexOf(":") > -1){
-                        java.lang.String prefix = content.substring(0,content.indexOf(":"));
-                        java.lang.String namespaceUri = xmlStreamReader.getNamespaceContext().getNamespaceURI(prefix);
-                        return HexBinary.Factory.fromString(content,namespaceUri);
-                    } else {
-                       return HexBinary.Factory.fromString(content,"");
-                    }
-                }
-
-            
-
-        /**
-        * static method to create the object
-        * Precondition:  If this object is an element, the current or next start element starts this object and any intervening reader events are ignorable
-        *                If this object is not an element, it is a complex type and the reader is at the event just after the outer start element
-        * Postcondition: If this object is an element, the reader is positioned at its end element
-        *                If this object is a complex type, the reader is positioned at the end element of its outer element
-        */
-        public static HexBinary parse(javax.xml.stream.XMLStreamReader reader) throws java.lang.Exception{
-            HexBinary object =
-                new HexBinary();
-
-            int event;
-            java.lang.String nillableValue = null;
-            java.lang.String prefix ="";
-            java.lang.String namespaceuri ="";
-            try {
-                
-                while (!reader.isStartElement() && !reader.isEndElement())
-                    reader.next();
-
-                
-                if (reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance","type")!=null){
-                  java.lang.String fullTypeName = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance",
-                        "type");
-                  if (fullTypeName!=null){
-                    java.lang.String nsPrefix = null;
-                    if (fullTypeName.indexOf(":") > -1){
-                        nsPrefix = fullTypeName.substring(0,fullTypeName.indexOf(":"));
-                    }
-                    nsPrefix = nsPrefix==null?"":nsPrefix;
-
-                    java.lang.String type = fullTypeName.substring(fullTypeName.indexOf(":")+1);
-                    
-                            if (!"hexBinary".equals(type)){
-                                //find namespace for the prefix
-                                java.lang.String nsUri = reader.getNamespaceContext().getNamespaceURI(nsPrefix);
-                                return (HexBinary)org.apache.axis2.databinding.types.soapencoding.ExtensionMapper.getTypeObject(
-                                     nsUri,type,reader);
-                              }
-                        
-
-                  }
-                
-
-                }
-
-                
-
-                
-                // Note all attributes that were handled. Used to differ normal attributes
-                // from anyAttributes.
-                java.util.Vector handledAttributes = new java.util.Vector();
-                
-
-                    
-                while(!reader.isEndElement()) {
-                    if (reader.isStartElement()  || reader.hasText()){
-                
-                                    if (reader.isStartElement()  || reader.hasText()){
-                                
-                                    java.lang.String content = reader.getElementText();
-                                    
-                                              object.setHexBinary(
-                                                    org.apache.axis2.databinding.utils.ConverterUtil.convertToHexBinary(content));
-                                            
-                              }  // End of if for expected property start element
-                                
-                             else{
-                                        // A start element we are not expecting indicates an invalid parameter was passed
-                                        throw new org.apache.axis2.databinding.ADBException("Unexpected subelement " + reader.getLocalName());
-                             }
-                          
-                             } else {
-                                reader.next();
-                             }  
-                           }  // end of while loop
-                        
-
-
-
-            } catch (javax.xml.stream.XMLStreamException e) {
-                throw new java.lang.Exception(e);
-            }
-
-            return object;
-        }
-
-        }//end of factory class
-
-        
-
-        }
-           
-          
\ No newline at end of file
diff --git a/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/ID.java b/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/ID.java
deleted file mode 100644
index 512276a..0000000
--- a/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/ID.java
+++ /dev/null
@@ -1,469 +0,0 @@
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/**
- * ID.java
- *
- * This file was auto-generated from WSDL
- * by the Apache Axis2 version: SNAPSHOT  Built on : Dec 21, 2007 (04:03:30 LKT)
- */
-            
-                package org.apache.axis2.databinding.types.soapencoding;
-
-import javax.xml.stream.XMLStreamWriter;
-            
-
-            /**
-            *  ID bean class
-            */
-        
-        public  class ID
-        implements org.apache.axis2.databinding.ADBBean{
-        /* This type was generated from the piece of schema that had
-                name = ID
-                Namespace URI = http://schemas.xmlsoap.org/soap/encoding/
-                Namespace Prefix = ns1
-                */
-            
-
-        private static java.lang.String generatePrefix(java.lang.String namespace) {
-            if(namespace.equals("http://schemas.xmlsoap.org/soap/encoding/")){
-                return "SOAP-ENC";
-            }
-            return org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-        }
-
-        
-
-                        /**
-                        * field for ID
-                        */
-
-                        
-                                    protected org.apache.axis2.databinding.types.Id localID ;
-                                
-
-                           /**
-                           * Auto generated getter method
-                           * @return org.apache.axis2.databinding.types.Id
-                           */
-                           public  org.apache.axis2.databinding.types.Id getID(){
-                               return localID;
-                           }
-
-                           
-                        
-                            /**
-                               * Auto generated setter method
-                               * @param param ID
-                               */
-                               public void setID(org.apache.axis2.databinding.types.Id param){
-                            
-                                            this.localID=param;
-                                    
-
-                               }
-                            
-
-                            public java.lang.String toString(){
-                                
-                                        return localID.toString();
-                                    
-                            }
-                        
-
-     /**
-     * isReaderMTOMAware
-     * @return true if the reader supports MTOM
-     */
-   public static boolean isReaderMTOMAware(javax.xml.stream.XMLStreamReader reader) {
-        boolean isReaderMTOMAware = false;
-        
-        try{
-          isReaderMTOMAware = java.lang.Boolean.TRUE.equals(reader.getProperty(org.apache.axiom.om.OMConstants.IS_DATA_HANDLERS_AWARE));
-        }catch(java.lang.IllegalArgumentException e){
-          isReaderMTOMAware = false;
-        }
-        return isReaderMTOMAware;
-   }
-     
-     
-        /**
-        *
-        * @param parentQName
-        * @param factory
-        * @return org.apache.axiom.om.OMElement
-        */
-       public org.apache.axiom.om.OMElement getOMElement (
-               final javax.xml.namespace.QName parentQName,
-               final org.apache.axiom.om.OMFactory factory) throws org.apache.axis2.databinding.ADBException{
-
-
-        
-               org.apache.axiom.om.OMDataSource dataSource =
-                       new org.apache.axis2.databinding.ADBDataSource(this,parentQName);
-               return factory.createOMElement(dataSource,parentQName);
-            
-       }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                                       XMLStreamWriter xmlWriter)
-                                throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-                           serialize(parentQName,xmlWriter,false);
-         }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                               XMLStreamWriter xmlWriter,
-                               boolean serializeType)
-            throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-            
-                
-
-
-                java.lang.String prefix = null;
-                java.lang.String namespace = null;
-                
-
-                    prefix = parentQName.getPrefix();
-                    namespace = parentQName.getNamespaceURI();
-
-                    if ((namespace != null) && (namespace.trim().length() > 0)) {
-                        java.lang.String writerPrefix = xmlWriter.getPrefix(namespace);
-                        if (writerPrefix != null) {
-                            xmlWriter.writeStartElement(namespace, parentQName.getLocalPart());
-                        } else {
-                            if (prefix == null) {
-                                prefix = generatePrefix(namespace);
-                            }
-
-                            xmlWriter.writeStartElement(prefix, parentQName.getLocalPart(), namespace);
-                            xmlWriter.writeNamespace(prefix, namespace);
-                            xmlWriter.setPrefix(prefix, namespace);
-                        }
-                    } else {
-                        xmlWriter.writeStartElement(parentQName.getLocalPart());
-                    }
-                
-                  if (serializeType){
-               
-                   java.lang.String namespacePrefix = registerPrefix(xmlWriter,"http://schemas.xmlsoap.org/soap/encoding/");
-                   if ((namespacePrefix != null) && (namespacePrefix.trim().length() > 0)){
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           namespacePrefix+":ID",
-                           xmlWriter);
-                   } else {
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           "ID",
-                           xmlWriter);
-                   }
-
-               
-                   }
-               
-
-                                          if (localID==null){
-                                              // write the nil attribute
-                                              
-                                                     throw new org.apache.axis2.databinding.ADBException("ID cannot be null!!");
-                                                  
-                                          }else{
-
-                                        
-                                                   xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(localID));
-                                            
-                                          }
-                                    
-                    xmlWriter.writeEndElement();
-               
-
-        }
-
-         /**
-          * Util method to write an attribute with the ns prefix
-          */
-          private void writeAttribute(java.lang.String prefix,java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-              if (xmlWriter.getPrefix(namespace) == null) {
-                       xmlWriter.writeNamespace(prefix, namespace);
-                       xmlWriter.setPrefix(prefix, namespace);
-
-              }
-
-              xmlWriter.writeAttribute(namespace,attName,attValue);
-
-         }
-
-        /**
-          * Util method to write an attribute without the ns prefix
-          */
-          private void writeAttribute(java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-                if (namespace.equals(""))
-              {
-                  xmlWriter.writeAttribute(attName,attValue);
-              }
-              else
-              {
-                  registerPrefix(xmlWriter, namespace);
-                  xmlWriter.writeAttribute(namespace,attName,attValue);
-              }
-          }
-
-
-           /**
-             * Util method to write an attribute without the ns prefix
-             */
-            private void writeQNameAttribute(java.lang.String namespace, java.lang.String attName,
-                                             javax.xml.namespace.QName qname, javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-                java.lang.String attributeNamespace = qname.getNamespaceURI();
-                java.lang.String attributePrefix = xmlWriter.getPrefix(attributeNamespace);
-                if (attributePrefix == null) {
-                    attributePrefix = registerPrefix(xmlWriter, attributeNamespace);
-                }
-                java.lang.String attributeValue;
-                if (attributePrefix.trim().length() > 0) {
-                    attributeValue = attributePrefix + ":" + qname.getLocalPart();
-                } else {
-                    attributeValue = qname.getLocalPart();
-                }
-
-                if (namespace.equals("")) {
-                    xmlWriter.writeAttribute(attName, attributeValue);
-                } else {
-                    registerPrefix(xmlWriter, namespace);
-                    xmlWriter.writeAttribute(namespace, attName, attributeValue);
-                }
-            }
-        /**
-         *  method to handle Qnames
-         */
-
-        private void writeQName(javax.xml.namespace.QName qname,
-                                javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-            java.lang.String namespaceURI = qname.getNamespaceURI();
-            if (namespaceURI != null) {
-                java.lang.String prefix = xmlWriter.getPrefix(namespaceURI);
-                if (prefix == null) {
-                    prefix = generatePrefix(namespaceURI);
-                    xmlWriter.writeNamespace(prefix, namespaceURI);
-                    xmlWriter.setPrefix(prefix,namespaceURI);
-                }
-
-                if (prefix.trim().length() > 0){
-                    xmlWriter.writeCharacters(prefix + ":" + org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                } else {
-                    // i.e this is the default namespace
-                    xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                }
-
-            } else {
-                xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-            }
-        }
-
-        private void writeQNames(javax.xml.namespace.QName[] qnames,
-                                 javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-            if (qnames != null) {
-                // we have to store this data until last moment since it is not possible to write any
-                // namespace data after writing the charactor data
-                java.lang.StringBuffer stringToWrite = new java.lang.StringBuffer();
-                java.lang.String namespaceURI = null;
-                java.lang.String prefix = null;
-
-                for (int i = 0; i < qnames.length; i++) {
-                    if (i > 0) {
-                        stringToWrite.append(" ");
-                    }
-                    namespaceURI = qnames[i].getNamespaceURI();
-                    if (namespaceURI != null) {
-                        prefix = xmlWriter.getPrefix(namespaceURI);
-                        if ((prefix == null) || (prefix.length() == 0)) {
-                            prefix = generatePrefix(namespaceURI);
-                            xmlWriter.writeNamespace(prefix, namespaceURI);
-                            xmlWriter.setPrefix(prefix,namespaceURI);
-                        }
-
-                        if (prefix.trim().length() > 0){
-                            stringToWrite.append(prefix).append(":").append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        } else {
-                            stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        }
-                    } else {
-                        stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                    }
-                }
-                xmlWriter.writeCharacters(stringToWrite.toString());
-            }
-
-        }
-
-
-         /**
-         * Register a namespace prefix
-         */
-         private java.lang.String registerPrefix(javax.xml.stream.XMLStreamWriter xmlWriter, java.lang.String namespace) throws javax.xml.stream.XMLStreamException {
-                java.lang.String prefix = xmlWriter.getPrefix(namespace);
-
-                if (prefix == null) {
-                    prefix = generatePrefix(namespace);
-                    javax.xml.namespace.NamespaceContext nsContext = xmlWriter.getNamespaceContext();
-                    while (true) {
-                        java.lang.String uri = nsContext.getNamespaceURI(prefix);
-                        if (uri == null || uri.length() == 0) {
-                            break;
-                        }
-                        prefix = org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-                    }
-                    xmlWriter.writeNamespace(prefix, namespace);
-                    xmlWriter.setPrefix(prefix, namespace);
-                }
-
-                return prefix;
-            }
-
-
-  
-     /**
-      *  Factory class that keeps the parse method
-      */
-    public static class Factory{
-
-        
-        
-                public static ID fromString(java.lang.String value,
-                                                    java.lang.String namespaceURI){
-                    ID returnValue = new  ID();
-                    
-                            returnValue.setID(
-                                org.apache.axis2.databinding.utils.ConverterUtil.convertToID(value));
-                        
-
-                    return returnValue;
-                }
-
-                public static ID fromString(javax.xml.stream.XMLStreamReader xmlStreamReader,
-                                                                    java.lang.String content) {
-                    if (content.indexOf(":") > -1){
-                        java.lang.String prefix = content.substring(0,content.indexOf(":"));
-                        java.lang.String namespaceUri = xmlStreamReader.getNamespaceContext().getNamespaceURI(prefix);
-                        return ID.Factory.fromString(content,namespaceUri);
-                    } else {
-                       return ID.Factory.fromString(content,"");
-                    }
-                }
-
-            
-
-        /**
-        * static method to create the object
-        * Precondition:  If this object is an element, the current or next start element starts this object and any intervening reader events are ignorable
-        *                If this object is not an element, it is a complex type and the reader is at the event just after the outer start element
-        * Postcondition: If this object is an element, the reader is positioned at its end element
-        *                If this object is a complex type, the reader is positioned at the end element of its outer element
-        */
-        public static ID parse(javax.xml.stream.XMLStreamReader reader) throws java.lang.Exception{
-            ID object =
-                new ID();
-
-            int event;
-            java.lang.String nillableValue = null;
-            java.lang.String prefix ="";
-            java.lang.String namespaceuri ="";
-            try {
-                
-                while (!reader.isStartElement() && !reader.isEndElement())
-                    reader.next();
-
-                
-                if (reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance","type")!=null){
-                  java.lang.String fullTypeName = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance",
-                        "type");
-                  if (fullTypeName!=null){
-                    java.lang.String nsPrefix = null;
-                    if (fullTypeName.indexOf(":") > -1){
-                        nsPrefix = fullTypeName.substring(0,fullTypeName.indexOf(":"));
-                    }
-                    nsPrefix = nsPrefix==null?"":nsPrefix;
-
-                    java.lang.String type = fullTypeName.substring(fullTypeName.indexOf(":")+1);
-                    
-                            if (!"ID".equals(type)){
-                                //find namespace for the prefix
-                                java.lang.String nsUri = reader.getNamespaceContext().getNamespaceURI(nsPrefix);
-                                return (ID)org.apache.axis2.databinding.types.soapencoding.ExtensionMapper.getTypeObject(
-                                     nsUri,type,reader);
-                              }
-                        
-
-                  }
-                
-
-                }
-
-                
-
-                
-                // Note all attributes that were handled. Used to differ normal attributes
-                // from anyAttributes.
-                java.util.Vector handledAttributes = new java.util.Vector();
-                
-
-                    
-                while(!reader.isEndElement()) {
-                    if (reader.isStartElement()  || reader.hasText()){
-                
-                                    if (reader.isStartElement()  || reader.hasText()){
-                                
-                                    java.lang.String content = reader.getElementText();
-                                    
-                                              object.setID(
-                                                    org.apache.axis2.databinding.utils.ConverterUtil.convertToID(content));
-                                            
-                              }  // End of if for expected property start element
-                                
-                             else{
-                                        // A start element we are not expecting indicates an invalid parameter was passed
-                                        throw new org.apache.axis2.databinding.ADBException("Unexpected subelement " + reader.getLocalName());
-                             }
-                          
-                             } else {
-                                reader.next();
-                             }  
-                           }  // end of while loop
-                        
-
-
-
-            } catch (javax.xml.stream.XMLStreamException e) {
-                throw new java.lang.Exception(e);
-            }
-
-            return object;
-        }
-
-        }//end of factory class
-
-        
-
-        }
-           
-          
\ No newline at end of file
diff --git a/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/IDREF.java b/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/IDREF.java
deleted file mode 100644
index 59e7b40..0000000
--- a/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/IDREF.java
+++ /dev/null
@@ -1,469 +0,0 @@
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/**
- * IDREF.java
- *
- * This file was auto-generated from WSDL
- * by the Apache Axis2 version: SNAPSHOT  Built on : Dec 21, 2007 (04:03:30 LKT)
- */
-            
-                package org.apache.axis2.databinding.types.soapencoding;
-
-import javax.xml.stream.XMLStreamWriter;
-            
-
-            /**
-            *  IDREF bean class
-            */
-        
-        public  class IDREF
-        implements org.apache.axis2.databinding.ADBBean{
-        /* This type was generated from the piece of schema that had
-                name = IDREF
-                Namespace URI = http://schemas.xmlsoap.org/soap/encoding/
-                Namespace Prefix = ns1
-                */
-            
-
-        private static java.lang.String generatePrefix(java.lang.String namespace) {
-            if(namespace.equals("http://schemas.xmlsoap.org/soap/encoding/")){
-                return "SOAP-ENC";
-            }
-            return org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-        }
-
-        
-
-                        /**
-                        * field for IDREF
-                        */
-
-                        
-                                    protected org.apache.axis2.databinding.types.IDRef localIDREF ;
-                                
-
-                           /**
-                           * Auto generated getter method
-                           * @return org.apache.axis2.databinding.types.IDRef
-                           */
-                           public  org.apache.axis2.databinding.types.IDRef getIDREF(){
-                               return localIDREF;
-                           }
-
-                           
-                        
-                            /**
-                               * Auto generated setter method
-                               * @param param IDREF
-                               */
-                               public void setIDREF(org.apache.axis2.databinding.types.IDRef param){
-                            
-                                            this.localIDREF=param;
-                                    
-
-                               }
-                            
-
-                            public java.lang.String toString(){
-                                
-                                        return localIDREF.toString();
-                                    
-                            }
-                        
-
-     /**
-     * isReaderMTOMAware
-     * @return true if the reader supports MTOM
-     */
-   public static boolean isReaderMTOMAware(javax.xml.stream.XMLStreamReader reader) {
-        boolean isReaderMTOMAware = false;
-        
-        try{
-          isReaderMTOMAware = java.lang.Boolean.TRUE.equals(reader.getProperty(org.apache.axiom.om.OMConstants.IS_DATA_HANDLERS_AWARE));
-        }catch(java.lang.IllegalArgumentException e){
-          isReaderMTOMAware = false;
-        }
-        return isReaderMTOMAware;
-   }
-     
-     
-        /**
-        *
-        * @param parentQName
-        * @param factory
-        * @return org.apache.axiom.om.OMElement
-        */
-       public org.apache.axiom.om.OMElement getOMElement (
-               final javax.xml.namespace.QName parentQName,
-               final org.apache.axiom.om.OMFactory factory) throws org.apache.axis2.databinding.ADBException{
-
-
-        
-               org.apache.axiom.om.OMDataSource dataSource =
-                       new org.apache.axis2.databinding.ADBDataSource(this,parentQName);
-               return factory.createOMElement(dataSource,parentQName);
-            
-       }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                                       XMLStreamWriter xmlWriter)
-                                throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-                           serialize(parentQName,xmlWriter,false);
-         }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                               XMLStreamWriter xmlWriter,
-                               boolean serializeType)
-            throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-            
-                
-
-
-                java.lang.String prefix = null;
-                java.lang.String namespace = null;
-                
-
-                    prefix = parentQName.getPrefix();
-                    namespace = parentQName.getNamespaceURI();
-
-                    if ((namespace != null) && (namespace.trim().length() > 0)) {
-                        java.lang.String writerPrefix = xmlWriter.getPrefix(namespace);
-                        if (writerPrefix != null) {
-                            xmlWriter.writeStartElement(namespace, parentQName.getLocalPart());
-                        } else {
-                            if (prefix == null) {
-                                prefix = generatePrefix(namespace);
-                            }
-
-                            xmlWriter.writeStartElement(prefix, parentQName.getLocalPart(), namespace);
-                            xmlWriter.writeNamespace(prefix, namespace);
-                            xmlWriter.setPrefix(prefix, namespace);
-                        }
-                    } else {
-                        xmlWriter.writeStartElement(parentQName.getLocalPart());
-                    }
-                
-                  if (serializeType){
-               
-                   java.lang.String namespacePrefix = registerPrefix(xmlWriter,"http://schemas.xmlsoap.org/soap/encoding/");
-                   if ((namespacePrefix != null) && (namespacePrefix.trim().length() > 0)){
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           namespacePrefix+":IDREF",
-                           xmlWriter);
-                   } else {
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           "IDREF",
-                           xmlWriter);
-                   }
-
-               
-                   }
-               
-
-                                          if (localIDREF==null){
-                                              // write the nil attribute
-                                              
-                                                     throw new org.apache.axis2.databinding.ADBException("IDREF cannot be null!!");
-                                                  
-                                          }else{
-
-                                        
-                                                   xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(localIDREF));
-                                            
-                                          }
-                                    
-                    xmlWriter.writeEndElement();
-               
-
-        }
-
-         /**
-          * Util method to write an attribute with the ns prefix
-          */
-          private void writeAttribute(java.lang.String prefix,java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-              if (xmlWriter.getPrefix(namespace) == null) {
-                       xmlWriter.writeNamespace(prefix, namespace);
-                       xmlWriter.setPrefix(prefix, namespace);
-
-              }
-
-              xmlWriter.writeAttribute(namespace,attName,attValue);
-
-         }
-
-        /**
-          * Util method to write an attribute without the ns prefix
-          */
-          private void writeAttribute(java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-                if (namespace.equals(""))
-              {
-                  xmlWriter.writeAttribute(attName,attValue);
-              }
-              else
-              {
-                  registerPrefix(xmlWriter, namespace);
-                  xmlWriter.writeAttribute(namespace,attName,attValue);
-              }
-          }
-
-
-           /**
-             * Util method to write an attribute without the ns prefix
-             */
-            private void writeQNameAttribute(java.lang.String namespace, java.lang.String attName,
-                                             javax.xml.namespace.QName qname, javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-                java.lang.String attributeNamespace = qname.getNamespaceURI();
-                java.lang.String attributePrefix = xmlWriter.getPrefix(attributeNamespace);
-                if (attributePrefix == null) {
-                    attributePrefix = registerPrefix(xmlWriter, attributeNamespace);
-                }
-                java.lang.String attributeValue;
-                if (attributePrefix.trim().length() > 0) {
-                    attributeValue = attributePrefix + ":" + qname.getLocalPart();
-                } else {
-                    attributeValue = qname.getLocalPart();
-                }
-
-                if (namespace.equals("")) {
-                    xmlWriter.writeAttribute(attName, attributeValue);
-                } else {
-                    registerPrefix(xmlWriter, namespace);
-                    xmlWriter.writeAttribute(namespace, attName, attributeValue);
-                }
-            }
-        /**
-         *  method to handle Qnames
-         */
-
-        private void writeQName(javax.xml.namespace.QName qname,
-                                javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-            java.lang.String namespaceURI = qname.getNamespaceURI();
-            if (namespaceURI != null) {
-                java.lang.String prefix = xmlWriter.getPrefix(namespaceURI);
-                if (prefix == null) {
-                    prefix = generatePrefix(namespaceURI);
-                    xmlWriter.writeNamespace(prefix, namespaceURI);
-                    xmlWriter.setPrefix(prefix,namespaceURI);
-                }
-
-                if (prefix.trim().length() > 0){
-                    xmlWriter.writeCharacters(prefix + ":" + org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                } else {
-                    // i.e this is the default namespace
-                    xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                }
-
-            } else {
-                xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-            }
-        }
-
-        private void writeQNames(javax.xml.namespace.QName[] qnames,
-                                 javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-            if (qnames != null) {
-                // we have to store this data until last moment since it is not possible to write any
-                // namespace data after writing the charactor data
-                java.lang.StringBuffer stringToWrite = new java.lang.StringBuffer();
-                java.lang.String namespaceURI = null;
-                java.lang.String prefix = null;
-
-                for (int i = 0; i < qnames.length; i++) {
-                    if (i > 0) {
-                        stringToWrite.append(" ");
-                    }
-                    namespaceURI = qnames[i].getNamespaceURI();
-                    if (namespaceURI != null) {
-                        prefix = xmlWriter.getPrefix(namespaceURI);
-                        if ((prefix == null) || (prefix.length() == 0)) {
-                            prefix = generatePrefix(namespaceURI);
-                            xmlWriter.writeNamespace(prefix, namespaceURI);
-                            xmlWriter.setPrefix(prefix,namespaceURI);
-                        }
-
-                        if (prefix.trim().length() > 0){
-                            stringToWrite.append(prefix).append(":").append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        } else {
-                            stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        }
-                    } else {
-                        stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                    }
-                }
-                xmlWriter.writeCharacters(stringToWrite.toString());
-            }
-
-        }
-
-
-         /**
-         * Register a namespace prefix
-         */
-         private java.lang.String registerPrefix(javax.xml.stream.XMLStreamWriter xmlWriter, java.lang.String namespace) throws javax.xml.stream.XMLStreamException {
-                java.lang.String prefix = xmlWriter.getPrefix(namespace);
-
-                if (prefix == null) {
-                    prefix = generatePrefix(namespace);
-                    javax.xml.namespace.NamespaceContext nsContext = xmlWriter.getNamespaceContext();
-                    while (true) {
-                        java.lang.String uri = nsContext.getNamespaceURI(prefix);
-                        if (uri == null || uri.length() == 0) {
-                            break;
-                        }
-                        prefix = org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-                    }
-                    xmlWriter.writeNamespace(prefix, namespace);
-                    xmlWriter.setPrefix(prefix, namespace);
-                }
-
-                return prefix;
-            }
-
-
-  
-     /**
-      *  Factory class that keeps the parse method
-      */
-    public static class Factory{
-
-        
-        
-                public static IDREF fromString(java.lang.String value,
-                                                    java.lang.String namespaceURI){
-                    IDREF returnValue = new  IDREF();
-                    
-                            returnValue.setIDREF(
-                                org.apache.axis2.databinding.utils.ConverterUtil.convertToIDREF(value));
-                        
-
-                    return returnValue;
-                }
-
-                public static IDREF fromString(javax.xml.stream.XMLStreamReader xmlStreamReader,
-                                                                    java.lang.String content) {
-                    if (content.indexOf(":") > -1){
-                        java.lang.String prefix = content.substring(0,content.indexOf(":"));
-                        java.lang.String namespaceUri = xmlStreamReader.getNamespaceContext().getNamespaceURI(prefix);
-                        return IDREF.Factory.fromString(content,namespaceUri);
-                    } else {
-                       return IDREF.Factory.fromString(content,"");
-                    }
-                }
-
-            
-
-        /**
-        * static method to create the object
-        * Precondition:  If this object is an element, the current or next start element starts this object and any intervening reader events are ignorable
-        *                If this object is not an element, it is a complex type and the reader is at the event just after the outer start element
-        * Postcondition: If this object is an element, the reader is positioned at its end element
-        *                If this object is a complex type, the reader is positioned at the end element of its outer element
-        */
-        public static IDREF parse(javax.xml.stream.XMLStreamReader reader) throws java.lang.Exception{
-            IDREF object =
-                new IDREF();
-
-            int event;
-            java.lang.String nillableValue = null;
-            java.lang.String prefix ="";
-            java.lang.String namespaceuri ="";
-            try {
-                
-                while (!reader.isStartElement() && !reader.isEndElement())
-                    reader.next();
-
-                
-                if (reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance","type")!=null){
-                  java.lang.String fullTypeName = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance",
-                        "type");
-                  if (fullTypeName!=null){
-                    java.lang.String nsPrefix = null;
-                    if (fullTypeName.indexOf(":") > -1){
-                        nsPrefix = fullTypeName.substring(0,fullTypeName.indexOf(":"));
-                    }
-                    nsPrefix = nsPrefix==null?"":nsPrefix;
-
-                    java.lang.String type = fullTypeName.substring(fullTypeName.indexOf(":")+1);
-                    
-                            if (!"IDREF".equals(type)){
-                                //find namespace for the prefix
-                                java.lang.String nsUri = reader.getNamespaceContext().getNamespaceURI(nsPrefix);
-                                return (IDREF)org.apache.axis2.databinding.types.soapencoding.ExtensionMapper.getTypeObject(
-                                     nsUri,type,reader);
-                              }
-                        
-
-                  }
-                
-
-                }
-
-                
-
-                
-                // Note all attributes that were handled. Used to differ normal attributes
-                // from anyAttributes.
-                java.util.Vector handledAttributes = new java.util.Vector();
-                
-
-                    
-                while(!reader.isEndElement()) {
-                    if (reader.isStartElement()  || reader.hasText()){
-                
-                                    if (reader.isStartElement()  || reader.hasText()){
-                                
-                                    java.lang.String content = reader.getElementText();
-                                    
-                                              object.setIDREF(
-                                                    org.apache.axis2.databinding.utils.ConverterUtil.convertToIDREF(content));
-                                            
-                              }  // End of if for expected property start element
-                                
-                             else{
-                                        // A start element we are not expecting indicates an invalid parameter was passed
-                                        throw new org.apache.axis2.databinding.ADBException("Unexpected subelement " + reader.getLocalName());
-                             }
-                          
-                             } else {
-                                reader.next();
-                             }  
-                           }  // end of while loop
-                        
-
-
-
-            } catch (javax.xml.stream.XMLStreamException e) {
-                throw new java.lang.Exception(e);
-            }
-
-            return object;
-        }
-
-        }//end of factory class
-
-        
-
-        }
-           
-          
\ No newline at end of file
diff --git a/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/IDREFS.java b/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/IDREFS.java
deleted file mode 100644
index 34b1010..0000000
--- a/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/IDREFS.java
+++ /dev/null
@@ -1,469 +0,0 @@
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/**
- * IDREFS.java
- *
- * This file was auto-generated from WSDL
- * by the Apache Axis2 version: SNAPSHOT  Built on : Dec 21, 2007 (04:03:30 LKT)
- */
-            
-                package org.apache.axis2.databinding.types.soapencoding;
-
-import javax.xml.stream.XMLStreamWriter;
-            
-
-            /**
-            *  IDREFS bean class
-            */
-        
-        public  class IDREFS
-        implements org.apache.axis2.databinding.ADBBean{
-        /* This type was generated from the piece of schema that had
-                name = IDREFS
-                Namespace URI = http://schemas.xmlsoap.org/soap/encoding/
-                Namespace Prefix = ns1
-                */
-            
-
-        private static java.lang.String generatePrefix(java.lang.String namespace) {
-            if(namespace.equals("http://schemas.xmlsoap.org/soap/encoding/")){
-                return "SOAP-ENC";
-            }
-            return org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-        }
-
-        
-
-                        /**
-                        * field for IDREFS
-                        */
-
-                        
-                                    protected org.apache.axis2.databinding.types.IDRefs localIDREFS ;
-                                
-
-                           /**
-                           * Auto generated getter method
-                           * @return org.apache.axis2.databinding.types.IDRefs
-                           */
-                           public  org.apache.axis2.databinding.types.IDRefs getIDREFS(){
-                               return localIDREFS;
-                           }
-
-                           
-                        
-                            /**
-                               * Auto generated setter method
-                               * @param param IDREFS
-                               */
-                               public void setIDREFS(org.apache.axis2.databinding.types.IDRefs param){
-                            
-                                            this.localIDREFS=param;
-                                    
-
-                               }
-                            
-
-                            public java.lang.String toString(){
-                                
-                                        return localIDREFS.toString();
-                                    
-                            }
-                        
-
-     /**
-     * isReaderMTOMAware
-     * @return true if the reader supports MTOM
-     */
-   public static boolean isReaderMTOMAware(javax.xml.stream.XMLStreamReader reader) {
-        boolean isReaderMTOMAware = false;
-        
-        try{
-          isReaderMTOMAware = java.lang.Boolean.TRUE.equals(reader.getProperty(org.apache.axiom.om.OMConstants.IS_DATA_HANDLERS_AWARE));
-        }catch(java.lang.IllegalArgumentException e){
-          isReaderMTOMAware = false;
-        }
-        return isReaderMTOMAware;
-   }
-     
-     
-        /**
-        *
-        * @param parentQName
-        * @param factory
-        * @return org.apache.axiom.om.OMElement
-        */
-       public org.apache.axiom.om.OMElement getOMElement (
-               final javax.xml.namespace.QName parentQName,
-               final org.apache.axiom.om.OMFactory factory) throws org.apache.axis2.databinding.ADBException{
-
-
-        
-               org.apache.axiom.om.OMDataSource dataSource =
-                       new org.apache.axis2.databinding.ADBDataSource(this,parentQName);
-               return factory.createOMElement(dataSource,parentQName);
-            
-       }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                                       XMLStreamWriter xmlWriter)
-                                throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-                           serialize(parentQName,xmlWriter,false);
-         }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                               XMLStreamWriter xmlWriter,
-                               boolean serializeType)
-            throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-            
-                
-
-
-                java.lang.String prefix = null;
-                java.lang.String namespace = null;
-                
-
-                    prefix = parentQName.getPrefix();
-                    namespace = parentQName.getNamespaceURI();
-
-                    if ((namespace != null) && (namespace.trim().length() > 0)) {
-                        java.lang.String writerPrefix = xmlWriter.getPrefix(namespace);
-                        if (writerPrefix != null) {
-                            xmlWriter.writeStartElement(namespace, parentQName.getLocalPart());
-                        } else {
-                            if (prefix == null) {
-                                prefix = generatePrefix(namespace);
-                            }
-
-                            xmlWriter.writeStartElement(prefix, parentQName.getLocalPart(), namespace);
-                            xmlWriter.writeNamespace(prefix, namespace);
-                            xmlWriter.setPrefix(prefix, namespace);
-                        }
-                    } else {
-                        xmlWriter.writeStartElement(parentQName.getLocalPart());
-                    }
-                
-                  if (serializeType){
-               
-                   java.lang.String namespacePrefix = registerPrefix(xmlWriter,"http://schemas.xmlsoap.org/soap/encoding/");
-                   if ((namespacePrefix != null) && (namespacePrefix.trim().length() > 0)){
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           namespacePrefix+":IDREFS",
-                           xmlWriter);
-                   } else {
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           "IDREFS",
-                           xmlWriter);
-                   }
-
-               
-                   }
-               
-
-                                          if (localIDREFS==null){
-                                              // write the nil attribute
-                                              
-                                                     throw new org.apache.axis2.databinding.ADBException("IDREFS cannot be null!!");
-                                                  
-                                          }else{
-
-                                        
-                                                   xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(localIDREFS));
-                                            
-                                          }
-                                    
-                    xmlWriter.writeEndElement();
-               
-
-        }
-
-         /**
-          * Util method to write an attribute with the ns prefix
-          */
-          private void writeAttribute(java.lang.String prefix,java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-              if (xmlWriter.getPrefix(namespace) == null) {
-                       xmlWriter.writeNamespace(prefix, namespace);
-                       xmlWriter.setPrefix(prefix, namespace);
-
-              }
-
-              xmlWriter.writeAttribute(namespace,attName,attValue);
-
-         }
-
-        /**
-          * Util method to write an attribute without the ns prefix
-          */
-          private void writeAttribute(java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-                if (namespace.equals(""))
-              {
-                  xmlWriter.writeAttribute(attName,attValue);
-              }
-              else
-              {
-                  registerPrefix(xmlWriter, namespace);
-                  xmlWriter.writeAttribute(namespace,attName,attValue);
-              }
-          }
-
-
-           /**
-             * Util method to write an attribute without the ns prefix
-             */
-            private void writeQNameAttribute(java.lang.String namespace, java.lang.String attName,
-                                             javax.xml.namespace.QName qname, javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-                java.lang.String attributeNamespace = qname.getNamespaceURI();
-                java.lang.String attributePrefix = xmlWriter.getPrefix(attributeNamespace);
-                if (attributePrefix == null) {
-                    attributePrefix = registerPrefix(xmlWriter, attributeNamespace);
-                }
-                java.lang.String attributeValue;
-                if (attributePrefix.trim().length() > 0) {
-                    attributeValue = attributePrefix + ":" + qname.getLocalPart();
-                } else {
-                    attributeValue = qname.getLocalPart();
-                }
-
-                if (namespace.equals("")) {
-                    xmlWriter.writeAttribute(attName, attributeValue);
-                } else {
-                    registerPrefix(xmlWriter, namespace);
-                    xmlWriter.writeAttribute(namespace, attName, attributeValue);
-                }
-            }
-        /**
-         *  method to handle Qnames
-         */
-
-        private void writeQName(javax.xml.namespace.QName qname,
-                                javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-            java.lang.String namespaceURI = qname.getNamespaceURI();
-            if (namespaceURI != null) {
-                java.lang.String prefix = xmlWriter.getPrefix(namespaceURI);
-                if (prefix == null) {
-                    prefix = generatePrefix(namespaceURI);
-                    xmlWriter.writeNamespace(prefix, namespaceURI);
-                    xmlWriter.setPrefix(prefix,namespaceURI);
-                }
-
-                if (prefix.trim().length() > 0){
-                    xmlWriter.writeCharacters(prefix + ":" + org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                } else {
-                    // i.e this is the default namespace
-                    xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                }
-
-            } else {
-                xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-            }
-        }
-
-        private void writeQNames(javax.xml.namespace.QName[] qnames,
-                                 javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-            if (qnames != null) {
-                // we have to store this data until last moment since it is not possible to write any
-                // namespace data after writing the charactor data
-                java.lang.StringBuffer stringToWrite = new java.lang.StringBuffer();
-                java.lang.String namespaceURI = null;
-                java.lang.String prefix = null;
-
-                for (int i = 0; i < qnames.length; i++) {
-                    if (i > 0) {
-                        stringToWrite.append(" ");
-                    }
-                    namespaceURI = qnames[i].getNamespaceURI();
-                    if (namespaceURI != null) {
-                        prefix = xmlWriter.getPrefix(namespaceURI);
-                        if ((prefix == null) || (prefix.length() == 0)) {
-                            prefix = generatePrefix(namespaceURI);
-                            xmlWriter.writeNamespace(prefix, namespaceURI);
-                            xmlWriter.setPrefix(prefix,namespaceURI);
-                        }
-
-                        if (prefix.trim().length() > 0){
-                            stringToWrite.append(prefix).append(":").append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        } else {
-                            stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        }
-                    } else {
-                        stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                    }
-                }
-                xmlWriter.writeCharacters(stringToWrite.toString());
-            }
-
-        }
-
-
-         /**
-         * Register a namespace prefix
-         */
-         private java.lang.String registerPrefix(javax.xml.stream.XMLStreamWriter xmlWriter, java.lang.String namespace) throws javax.xml.stream.XMLStreamException {
-                java.lang.String prefix = xmlWriter.getPrefix(namespace);
-
-                if (prefix == null) {
-                    prefix = generatePrefix(namespace);
-                    javax.xml.namespace.NamespaceContext nsContext = xmlWriter.getNamespaceContext();
-                    while (true) {
-                        java.lang.String uri = nsContext.getNamespaceURI(prefix);
-                        if (uri == null || uri.length() == 0) {
-                            break;
-                        }
-                        prefix = org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-                    }
-                    xmlWriter.writeNamespace(prefix, namespace);
-                    xmlWriter.setPrefix(prefix, namespace);
-                }
-
-                return prefix;
-            }
-
-
-  
-     /**
-      *  Factory class that keeps the parse method
-      */
-    public static class Factory{
-
-        
-        
-                public static IDREFS fromString(java.lang.String value,
-                                                    java.lang.String namespaceURI){
-                    IDREFS returnValue = new  IDREFS();
-                    
-                            returnValue.setIDREFS(
-                                org.apache.axis2.databinding.utils.ConverterUtil.convertToIDREFS(value));
-                        
-
-                    return returnValue;
-                }
-
-                public static IDREFS fromString(javax.xml.stream.XMLStreamReader xmlStreamReader,
-                                                                    java.lang.String content) {
-                    if (content.indexOf(":") > -1){
-                        java.lang.String prefix = content.substring(0,content.indexOf(":"));
-                        java.lang.String namespaceUri = xmlStreamReader.getNamespaceContext().getNamespaceURI(prefix);
-                        return IDREFS.Factory.fromString(content,namespaceUri);
-                    } else {
-                       return IDREFS.Factory.fromString(content,"");
-                    }
-                }
-
-            
-
-        /**
-        * static method to create the object
-        * Precondition:  If this object is an element, the current or next start element starts this object and any intervening reader events are ignorable
-        *                If this object is not an element, it is a complex type and the reader is at the event just after the outer start element
-        * Postcondition: If this object is an element, the reader is positioned at its end element
-        *                If this object is a complex type, the reader is positioned at the end element of its outer element
-        */
-        public static IDREFS parse(javax.xml.stream.XMLStreamReader reader) throws java.lang.Exception{
-            IDREFS object =
-                new IDREFS();
-
-            int event;
-            java.lang.String nillableValue = null;
-            java.lang.String prefix ="";
-            java.lang.String namespaceuri ="";
-            try {
-                
-                while (!reader.isStartElement() && !reader.isEndElement())
-                    reader.next();
-
-                
-                if (reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance","type")!=null){
-                  java.lang.String fullTypeName = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance",
-                        "type");
-                  if (fullTypeName!=null){
-                    java.lang.String nsPrefix = null;
-                    if (fullTypeName.indexOf(":") > -1){
-                        nsPrefix = fullTypeName.substring(0,fullTypeName.indexOf(":"));
-                    }
-                    nsPrefix = nsPrefix==null?"":nsPrefix;
-
-                    java.lang.String type = fullTypeName.substring(fullTypeName.indexOf(":")+1);
-                    
-                            if (!"IDREFS".equals(type)){
-                                //find namespace for the prefix
-                                java.lang.String nsUri = reader.getNamespaceContext().getNamespaceURI(nsPrefix);
-                                return (IDREFS)org.apache.axis2.databinding.types.soapencoding.ExtensionMapper.getTypeObject(
-                                     nsUri,type,reader);
-                              }
-                        
-
-                  }
-                
-
-                }
-
-                
-
-                
-                // Note all attributes that were handled. Used to differ normal attributes
-                // from anyAttributes.
-                java.util.Vector handledAttributes = new java.util.Vector();
-                
-
-                    
-                while(!reader.isEndElement()) {
-                    if (reader.isStartElement()  || reader.hasText()){
-                
-                                    if (reader.isStartElement()  || reader.hasText()){
-                                
-                                    java.lang.String content = reader.getElementText();
-                                    
-                                              object.setIDREFS(
-                                                    org.apache.axis2.databinding.utils.ConverterUtil.convertToIDREFS(content));
-                                            
-                              }  // End of if for expected property start element
-                                
-                             else{
-                                        // A start element we are not expecting indicates an invalid parameter was passed
-                                        throw new org.apache.axis2.databinding.ADBException("Unexpected subelement " + reader.getLocalName());
-                             }
-                          
-                             } else {
-                                reader.next();
-                             }  
-                           }  // end of while loop
-                        
-
-
-
-            } catch (javax.xml.stream.XMLStreamException e) {
-                throw new java.lang.Exception(e);
-            }
-
-            return object;
-        }
-
-        }//end of factory class
-
-        
-
-        }
-           
-          
\ No newline at end of file
diff --git a/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/Integer.java b/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/Integer.java
deleted file mode 100644
index ad9c316..0000000
--- a/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/Integer.java
+++ /dev/null
@@ -1,469 +0,0 @@
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/**
- * Integer.java
- *
- * This file was auto-generated from WSDL
- * by the Apache Axis2 version: SNAPSHOT  Built on : Dec 21, 2007 (04:03:30 LKT)
- */
-            
-                package org.apache.axis2.databinding.types.soapencoding;
-
-import javax.xml.stream.XMLStreamWriter;
-            
-
-            /**
-            *  Integer bean class
-            */
-        
-        public  class Integer
-        implements org.apache.axis2.databinding.ADBBean{
-        /* This type was generated from the piece of schema that had
-                name = integer
-                Namespace URI = http://schemas.xmlsoap.org/soap/encoding/
-                Namespace Prefix = ns1
-                */
-            
-
-        private static java.lang.String generatePrefix(java.lang.String namespace) {
-            if(namespace.equals("http://schemas.xmlsoap.org/soap/encoding/")){
-                return "SOAP-ENC";
-            }
-            return org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-        }
-
-        
-
-                        /**
-                        * field for Integer
-                        */
-
-                        
-                                    protected java.math.BigInteger localInteger ;
-                                
-
-                           /**
-                           * Auto generated getter method
-                           * @return java.math.BigInteger
-                           */
-                           public  java.math.BigInteger getInteger(){
-                               return localInteger;
-                           }
-
-                           
-                        
-                            /**
-                               * Auto generated setter method
-                               * @param param Integer
-                               */
-                               public void setInteger(java.math.BigInteger param){
-                            
-                                            this.localInteger=param;
-                                    
-
-                               }
-                            
-
-                            public java.lang.String toString(){
-                                
-                                        return localInteger.toString();
-                                    
-                            }
-                        
-
-     /**
-     * isReaderMTOMAware
-     * @return true if the reader supports MTOM
-     */
-   public static boolean isReaderMTOMAware(javax.xml.stream.XMLStreamReader reader) {
-        boolean isReaderMTOMAware = false;
-        
-        try{
-          isReaderMTOMAware = java.lang.Boolean.TRUE.equals(reader.getProperty(org.apache.axiom.om.OMConstants.IS_DATA_HANDLERS_AWARE));
-        }catch(java.lang.IllegalArgumentException e){
-          isReaderMTOMAware = false;
-        }
-        return isReaderMTOMAware;
-   }
-     
-     
-        /**
-        *
-        * @param parentQName
-        * @param factory
-        * @return org.apache.axiom.om.OMElement
-        */
-       public org.apache.axiom.om.OMElement getOMElement (
-               final javax.xml.namespace.QName parentQName,
-               final org.apache.axiom.om.OMFactory factory) throws org.apache.axis2.databinding.ADBException{
-
-
-        
-               org.apache.axiom.om.OMDataSource dataSource =
-                       new org.apache.axis2.databinding.ADBDataSource(this,parentQName);
-               return factory.createOMElement(dataSource,parentQName);
-            
-       }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                                       XMLStreamWriter xmlWriter)
-                                throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-                           serialize(parentQName,xmlWriter,false);
-         }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                               XMLStreamWriter xmlWriter,
-                               boolean serializeType)
-            throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-            
-                
-
-
-                java.lang.String prefix = null;
-                java.lang.String namespace = null;
-                
-
-                    prefix = parentQName.getPrefix();
-                    namespace = parentQName.getNamespaceURI();
-
-                    if ((namespace != null) && (namespace.trim().length() > 0)) {
-                        java.lang.String writerPrefix = xmlWriter.getPrefix(namespace);
-                        if (writerPrefix != null) {
-                            xmlWriter.writeStartElement(namespace, parentQName.getLocalPart());
-                        } else {
-                            if (prefix == null) {
-                                prefix = generatePrefix(namespace);
-                            }
-
-                            xmlWriter.writeStartElement(prefix, parentQName.getLocalPart(), namespace);
-                            xmlWriter.writeNamespace(prefix, namespace);
-                            xmlWriter.setPrefix(prefix, namespace);
-                        }
-                    } else {
-                        xmlWriter.writeStartElement(parentQName.getLocalPart());
-                    }
-                
-                  if (serializeType){
-               
-                   java.lang.String namespacePrefix = registerPrefix(xmlWriter,"http://schemas.xmlsoap.org/soap/encoding/");
-                   if ((namespacePrefix != null) && (namespacePrefix.trim().length() > 0)){
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           namespacePrefix+":integer",
-                           xmlWriter);
-                   } else {
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           "integer",
-                           xmlWriter);
-                   }
-
-               
-                   }
-               
-
-                                          if (localInteger==null){
-                                              // write the nil attribute
-                                              
-                                                     throw new org.apache.axis2.databinding.ADBException("integer cannot be null!!");
-                                                  
-                                          }else{
-
-                                        
-                                                   xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(localInteger));
-                                            
-                                          }
-                                    
-                    xmlWriter.writeEndElement();
-               
-
-        }
-
-         /**
-          * Util method to write an attribute with the ns prefix
-          */
-          private void writeAttribute(java.lang.String prefix,java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-              if (xmlWriter.getPrefix(namespace) == null) {
-                       xmlWriter.writeNamespace(prefix, namespace);
-                       xmlWriter.setPrefix(prefix, namespace);
-
-              }
-
-              xmlWriter.writeAttribute(namespace,attName,attValue);
-
-         }
-
-        /**
-          * Util method to write an attribute without the ns prefix
-          */
-          private void writeAttribute(java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-                if (namespace.equals(""))
-              {
-                  xmlWriter.writeAttribute(attName,attValue);
-              }
-              else
-              {
-                  registerPrefix(xmlWriter, namespace);
-                  xmlWriter.writeAttribute(namespace,attName,attValue);
-              }
-          }
-
-
-           /**
-             * Util method to write an attribute without the ns prefix
-             */
-            private void writeQNameAttribute(java.lang.String namespace, java.lang.String attName,
-                                             javax.xml.namespace.QName qname, javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-                java.lang.String attributeNamespace = qname.getNamespaceURI();
-                java.lang.String attributePrefix = xmlWriter.getPrefix(attributeNamespace);
-                if (attributePrefix == null) {
-                    attributePrefix = registerPrefix(xmlWriter, attributeNamespace);
-                }
-                java.lang.String attributeValue;
-                if (attributePrefix.trim().length() > 0) {
-                    attributeValue = attributePrefix + ":" + qname.getLocalPart();
-                } else {
-                    attributeValue = qname.getLocalPart();
-                }
-
-                if (namespace.equals("")) {
-                    xmlWriter.writeAttribute(attName, attributeValue);
-                } else {
-                    registerPrefix(xmlWriter, namespace);
-                    xmlWriter.writeAttribute(namespace, attName, attributeValue);
-                }
-            }
-        /**
-         *  method to handle Qnames
-         */
-
-        private void writeQName(javax.xml.namespace.QName qname,
-                                javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-            java.lang.String namespaceURI = qname.getNamespaceURI();
-            if (namespaceURI != null) {
-                java.lang.String prefix = xmlWriter.getPrefix(namespaceURI);
-                if (prefix == null) {
-                    prefix = generatePrefix(namespaceURI);
-                    xmlWriter.writeNamespace(prefix, namespaceURI);
-                    xmlWriter.setPrefix(prefix,namespaceURI);
-                }
-
-                if (prefix.trim().length() > 0){
-                    xmlWriter.writeCharacters(prefix + ":" + org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                } else {
-                    // i.e this is the default namespace
-                    xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                }
-
-            } else {
-                xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-            }
-        }
-
-        private void writeQNames(javax.xml.namespace.QName[] qnames,
-                                 javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-            if (qnames != null) {
-                // we have to store this data until last moment since it is not possible to write any
-                // namespace data after writing the charactor data
-                java.lang.StringBuffer stringToWrite = new java.lang.StringBuffer();
-                java.lang.String namespaceURI = null;
-                java.lang.String prefix = null;
-
-                for (int i = 0; i < qnames.length; i++) {
-                    if (i > 0) {
-                        stringToWrite.append(" ");
-                    }
-                    namespaceURI = qnames[i].getNamespaceURI();
-                    if (namespaceURI != null) {
-                        prefix = xmlWriter.getPrefix(namespaceURI);
-                        if ((prefix == null) || (prefix.length() == 0)) {
-                            prefix = generatePrefix(namespaceURI);
-                            xmlWriter.writeNamespace(prefix, namespaceURI);
-                            xmlWriter.setPrefix(prefix,namespaceURI);
-                        }
-
-                        if (prefix.trim().length() > 0){
-                            stringToWrite.append(prefix).append(":").append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        } else {
-                            stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        }
-                    } else {
-                        stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                    }
-                }
-                xmlWriter.writeCharacters(stringToWrite.toString());
-            }
-
-        }
-
-
-         /**
-         * Register a namespace prefix
-         */
-         private java.lang.String registerPrefix(javax.xml.stream.XMLStreamWriter xmlWriter, java.lang.String namespace) throws javax.xml.stream.XMLStreamException {
-                java.lang.String prefix = xmlWriter.getPrefix(namespace);
-
-                if (prefix == null) {
-                    prefix = generatePrefix(namespace);
-                    javax.xml.namespace.NamespaceContext nsContext = xmlWriter.getNamespaceContext();
-                    while (true) {
-                        java.lang.String uri = nsContext.getNamespaceURI(prefix);
-                        if (uri == null || uri.length() == 0) {
-                            break;
-                        }
-                        prefix = org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-                    }
-                    xmlWriter.writeNamespace(prefix, namespace);
-                    xmlWriter.setPrefix(prefix, namespace);
-                }
-
-                return prefix;
-            }
-
-
-  
-     /**
-      *  Factory class that keeps the parse method
-      */
-    public static class Factory{
-
-        
-        
-                public static Integer fromString(java.lang.String value,
-                                                    java.lang.String namespaceURI){
-                    Integer returnValue = new  Integer();
-                    
-                            returnValue.setInteger(
-                                org.apache.axis2.databinding.utils.ConverterUtil.convertToInteger(value));
-                        
-
-                    return returnValue;
-                }
-
-                public static Integer fromString(javax.xml.stream.XMLStreamReader xmlStreamReader,
-                                                                    java.lang.String content) {
-                    if (content.indexOf(":") > -1){
-                        java.lang.String prefix = content.substring(0,content.indexOf(":"));
-                        java.lang.String namespaceUri = xmlStreamReader.getNamespaceContext().getNamespaceURI(prefix);
-                        return Integer.Factory.fromString(content,namespaceUri);
-                    } else {
-                       return Integer.Factory.fromString(content,"");
-                    }
-                }
-
-            
-
-        /**
-        * static method to create the object
-        * Precondition:  If this object is an element, the current or next start element starts this object and any intervening reader events are ignorable
-        *                If this object is not an element, it is a complex type and the reader is at the event just after the outer start element
-        * Postcondition: If this object is an element, the reader is positioned at its end element
-        *                If this object is a complex type, the reader is positioned at the end element of its outer element
-        */
-        public static Integer parse(javax.xml.stream.XMLStreamReader reader) throws java.lang.Exception{
-            Integer object =
-                new Integer();
-
-            int event;
-            java.lang.String nillableValue = null;
-            java.lang.String prefix ="";
-            java.lang.String namespaceuri ="";
-            try {
-                
-                while (!reader.isStartElement() && !reader.isEndElement())
-                    reader.next();
-
-                
-                if (reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance","type")!=null){
-                  java.lang.String fullTypeName = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance",
-                        "type");
-                  if (fullTypeName!=null){
-                    java.lang.String nsPrefix = null;
-                    if (fullTypeName.indexOf(":") > -1){
-                        nsPrefix = fullTypeName.substring(0,fullTypeName.indexOf(":"));
-                    }
-                    nsPrefix = nsPrefix==null?"":nsPrefix;
-
-                    java.lang.String type = fullTypeName.substring(fullTypeName.indexOf(":")+1);
-                    
-                            if (!"integer".equals(type)){
-                                //find namespace for the prefix
-                                java.lang.String nsUri = reader.getNamespaceContext().getNamespaceURI(nsPrefix);
-                                return (Integer)org.apache.axis2.databinding.types.soapencoding.ExtensionMapper.getTypeObject(
-                                     nsUri,type,reader);
-                              }
-                        
-
-                  }
-                
-
-                }
-
-                
-
-                
-                // Note all attributes that were handled. Used to differ normal attributes
-                // from anyAttributes.
-                java.util.Vector handledAttributes = new java.util.Vector();
-                
-
-                    
-                while(!reader.isEndElement()) {
-                    if (reader.isStartElement()  || reader.hasText()){
-                
-                                    if (reader.isStartElement()  || reader.hasText()){
-                                
-                                    java.lang.String content = reader.getElementText();
-                                    
-                                              object.setInteger(
-                                                    org.apache.axis2.databinding.utils.ConverterUtil.convertToInteger(content));
-                                            
-                              }  // End of if for expected property start element
-                                
-                             else{
-                                        // A start element we are not expecting indicates an invalid parameter was passed
-                                        throw new org.apache.axis2.databinding.ADBException("Unexpected subelement " + reader.getLocalName());
-                             }
-                          
-                             } else {
-                                reader.next();
-                             }  
-                           }  // end of while loop
-                        
-
-
-
-            } catch (javax.xml.stream.XMLStreamException e) {
-                throw new java.lang.Exception(e);
-            }
-
-            return object;
-        }
-
-        }//end of factory class
-
-        
-
-        }
-           
-          
\ No newline at end of file
diff --git a/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/Language.java b/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/Language.java
deleted file mode 100644
index 3d41a6d..0000000
--- a/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/Language.java
+++ /dev/null
@@ -1,469 +0,0 @@
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/**
- * Language.java
- *
- * This file was auto-generated from WSDL
- * by the Apache Axis2 version: SNAPSHOT  Built on : Dec 21, 2007 (04:03:30 LKT)
- */
-            
-                package org.apache.axis2.databinding.types.soapencoding;
-
-import javax.xml.stream.XMLStreamWriter;
-            
-
-            /**
-            *  Language bean class
-            */
-        
-        public  class Language
-        implements org.apache.axis2.databinding.ADBBean{
-        /* This type was generated from the piece of schema that had
-                name = language
-                Namespace URI = http://schemas.xmlsoap.org/soap/encoding/
-                Namespace Prefix = ns1
-                */
-            
-
-        private static java.lang.String generatePrefix(java.lang.String namespace) {
-            if(namespace.equals("http://schemas.xmlsoap.org/soap/encoding/")){
-                return "SOAP-ENC";
-            }
-            return org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-        }
-
-        
-
-                        /**
-                        * field for Language
-                        */
-
-                        
-                                    protected org.apache.axis2.databinding.types.Language localLanguage ;
-                                
-
-                           /**
-                           * Auto generated getter method
-                           * @return org.apache.axis2.databinding.types.Language
-                           */
-                           public  org.apache.axis2.databinding.types.Language getLanguage(){
-                               return localLanguage;
-                           }
-
-                           
-                        
-                            /**
-                               * Auto generated setter method
-                               * @param param Language
-                               */
-                               public void setLanguage(org.apache.axis2.databinding.types.Language param){
-                            
-                                            this.localLanguage=param;
-                                    
-
-                               }
-                            
-
-                            public java.lang.String toString(){
-                                
-                                        return localLanguage.toString();
-                                    
-                            }
-                        
-
-     /**
-     * isReaderMTOMAware
-     * @return true if the reader supports MTOM
-     */
-   public static boolean isReaderMTOMAware(javax.xml.stream.XMLStreamReader reader) {
-        boolean isReaderMTOMAware = false;
-        
-        try{
-          isReaderMTOMAware = java.lang.Boolean.TRUE.equals(reader.getProperty(org.apache.axiom.om.OMConstants.IS_DATA_HANDLERS_AWARE));
-        }catch(java.lang.IllegalArgumentException e){
-          isReaderMTOMAware = false;
-        }
-        return isReaderMTOMAware;
-   }
-     
-     
-        /**
-        *
-        * @param parentQName
-        * @param factory
-        * @return org.apache.axiom.om.OMElement
-        */
-       public org.apache.axiom.om.OMElement getOMElement (
-               final javax.xml.namespace.QName parentQName,
-               final org.apache.axiom.om.OMFactory factory) throws org.apache.axis2.databinding.ADBException{
-
-
-        
-               org.apache.axiom.om.OMDataSource dataSource =
-                       new org.apache.axis2.databinding.ADBDataSource(this,parentQName);
-               return factory.createOMElement(dataSource,parentQName);
-            
-       }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                                       XMLStreamWriter xmlWriter)
-                                throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-                           serialize(parentQName,xmlWriter,false);
-         }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                               XMLStreamWriter xmlWriter,
-                               boolean serializeType)
-            throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-            
-                
-
-
-                java.lang.String prefix = null;
-                java.lang.String namespace = null;
-                
-
-                    prefix = parentQName.getPrefix();
-                    namespace = parentQName.getNamespaceURI();
-
-                    if ((namespace != null) && (namespace.trim().length() > 0)) {
-                        java.lang.String writerPrefix = xmlWriter.getPrefix(namespace);
-                        if (writerPrefix != null) {
-                            xmlWriter.writeStartElement(namespace, parentQName.getLocalPart());
-                        } else {
-                            if (prefix == null) {
-                                prefix = generatePrefix(namespace);
-                            }
-
-                            xmlWriter.writeStartElement(prefix, parentQName.getLocalPart(), namespace);
-                            xmlWriter.writeNamespace(prefix, namespace);
-                            xmlWriter.setPrefix(prefix, namespace);
-                        }
-                    } else {
-                        xmlWriter.writeStartElement(parentQName.getLocalPart());
-                    }
-                
-                  if (serializeType){
-               
-                   java.lang.String namespacePrefix = registerPrefix(xmlWriter,"http://schemas.xmlsoap.org/soap/encoding/");
-                   if ((namespacePrefix != null) && (namespacePrefix.trim().length() > 0)){
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           namespacePrefix+":language",
-                           xmlWriter);
-                   } else {
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           "language",
-                           xmlWriter);
-                   }
-
-               
-                   }
-               
-
-                                          if (localLanguage==null){
-                                              // write the nil attribute
-                                              
-                                                     throw new org.apache.axis2.databinding.ADBException("language cannot be null!!");
-                                                  
-                                          }else{
-
-                                        
-                                                   xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(localLanguage));
-                                            
-                                          }
-                                    
-                    xmlWriter.writeEndElement();
-               
-
-        }
-
-         /**
-          * Util method to write an attribute with the ns prefix
-          */
-          private void writeAttribute(java.lang.String prefix,java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-              if (xmlWriter.getPrefix(namespace) == null) {
-                       xmlWriter.writeNamespace(prefix, namespace);
-                       xmlWriter.setPrefix(prefix, namespace);
-
-              }
-
-              xmlWriter.writeAttribute(namespace,attName,attValue);
-
-         }
-
-        /**
-          * Util method to write an attribute without the ns prefix
-          */
-          private void writeAttribute(java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-                if (namespace.equals(""))
-              {
-                  xmlWriter.writeAttribute(attName,attValue);
-              }
-              else
-              {
-                  registerPrefix(xmlWriter, namespace);
-                  xmlWriter.writeAttribute(namespace,attName,attValue);
-              }
-          }
-
-
-           /**
-             * Util method to write an attribute without the ns prefix
-             */
-            private void writeQNameAttribute(java.lang.String namespace, java.lang.String attName,
-                                             javax.xml.namespace.QName qname, javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-                java.lang.String attributeNamespace = qname.getNamespaceURI();
-                java.lang.String attributePrefix = xmlWriter.getPrefix(attributeNamespace);
-                if (attributePrefix == null) {
-                    attributePrefix = registerPrefix(xmlWriter, attributeNamespace);
-                }
-                java.lang.String attributeValue;
-                if (attributePrefix.trim().length() > 0) {
-                    attributeValue = attributePrefix + ":" + qname.getLocalPart();
-                } else {
-                    attributeValue = qname.getLocalPart();
-                }
-
-                if (namespace.equals("")) {
-                    xmlWriter.writeAttribute(attName, attributeValue);
-                } else {
-                    registerPrefix(xmlWriter, namespace);
-                    xmlWriter.writeAttribute(namespace, attName, attributeValue);
-                }
-            }
-        /**
-         *  method to handle Qnames
-         */
-
-        private void writeQName(javax.xml.namespace.QName qname,
-                                javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-            java.lang.String namespaceURI = qname.getNamespaceURI();
-            if (namespaceURI != null) {
-                java.lang.String prefix = xmlWriter.getPrefix(namespaceURI);
-                if (prefix == null) {
-                    prefix = generatePrefix(namespaceURI);
-                    xmlWriter.writeNamespace(prefix, namespaceURI);
-                    xmlWriter.setPrefix(prefix,namespaceURI);
-                }
-
-                if (prefix.trim().length() > 0){
-                    xmlWriter.writeCharacters(prefix + ":" + org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                } else {
-                    // i.e this is the default namespace
-                    xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                }
-
-            } else {
-                xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-            }
-        }
-
-        private void writeQNames(javax.xml.namespace.QName[] qnames,
-                                 javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-            if (qnames != null) {
-                // we have to store this data until last moment since it is not possible to write any
-                // namespace data after writing the charactor data
-                java.lang.StringBuffer stringToWrite = new java.lang.StringBuffer();
-                java.lang.String namespaceURI = null;
-                java.lang.String prefix = null;
-
-                for (int i = 0; i < qnames.length; i++) {
-                    if (i > 0) {
-                        stringToWrite.append(" ");
-                    }
-                    namespaceURI = qnames[i].getNamespaceURI();
-                    if (namespaceURI != null) {
-                        prefix = xmlWriter.getPrefix(namespaceURI);
-                        if ((prefix == null) || (prefix.length() == 0)) {
-                            prefix = generatePrefix(namespaceURI);
-                            xmlWriter.writeNamespace(prefix, namespaceURI);
-                            xmlWriter.setPrefix(prefix,namespaceURI);
-                        }
-
-                        if (prefix.trim().length() > 0){
-                            stringToWrite.append(prefix).append(":").append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        } else {
-                            stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        }
-                    } else {
-                        stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                    }
-                }
-                xmlWriter.writeCharacters(stringToWrite.toString());
-            }
-
-        }
-
-
-         /**
-         * Register a namespace prefix
-         */
-         private java.lang.String registerPrefix(javax.xml.stream.XMLStreamWriter xmlWriter, java.lang.String namespace) throws javax.xml.stream.XMLStreamException {
-                java.lang.String prefix = xmlWriter.getPrefix(namespace);
-
-                if (prefix == null) {
-                    prefix = generatePrefix(namespace);
-                    javax.xml.namespace.NamespaceContext nsContext = xmlWriter.getNamespaceContext();
-                    while (true) {
-                        java.lang.String uri = nsContext.getNamespaceURI(prefix);
-                        if (uri == null || uri.length() == 0) {
-                            break;
-                        }
-                        prefix = org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-                    }
-                    xmlWriter.writeNamespace(prefix, namespace);
-                    xmlWriter.setPrefix(prefix, namespace);
-                }
-
-                return prefix;
-            }
-
-
-  
-     /**
-      *  Factory class that keeps the parse method
-      */
-    public static class Factory{
-
-        
-        
-                public static Language fromString(java.lang.String value,
-                                                    java.lang.String namespaceURI){
-                    Language returnValue = new  Language();
-                    
-                            returnValue.setLanguage(
-                                org.apache.axis2.databinding.utils.ConverterUtil.convertToLanguage(value));
-                        
-
-                    return returnValue;
-                }
-
-                public static Language fromString(javax.xml.stream.XMLStreamReader xmlStreamReader,
-                                                                    java.lang.String content) {
-                    if (content.indexOf(":") > -1){
-                        java.lang.String prefix = content.substring(0,content.indexOf(":"));
-                        java.lang.String namespaceUri = xmlStreamReader.getNamespaceContext().getNamespaceURI(prefix);
-                        return Language.Factory.fromString(content,namespaceUri);
-                    } else {
-                       return Language.Factory.fromString(content,"");
-                    }
-                }
-
-            
-
-        /**
-        * static method to create the object
-        * Precondition:  If this object is an element, the current or next start element starts this object and any intervening reader events are ignorable
-        *                If this object is not an element, it is a complex type and the reader is at the event just after the outer start element
-        * Postcondition: If this object is an element, the reader is positioned at its end element
-        *                If this object is a complex type, the reader is positioned at the end element of its outer element
-        */
-        public static Language parse(javax.xml.stream.XMLStreamReader reader) throws java.lang.Exception{
-            Language object =
-                new Language();
-
-            int event;
-            java.lang.String nillableValue = null;
-            java.lang.String prefix ="";
-            java.lang.String namespaceuri ="";
-            try {
-                
-                while (!reader.isStartElement() && !reader.isEndElement())
-                    reader.next();
-
-                
-                if (reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance","type")!=null){
-                  java.lang.String fullTypeName = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance",
-                        "type");
-                  if (fullTypeName!=null){
-                    java.lang.String nsPrefix = null;
-                    if (fullTypeName.indexOf(":") > -1){
-                        nsPrefix = fullTypeName.substring(0,fullTypeName.indexOf(":"));
-                    }
-                    nsPrefix = nsPrefix==null?"":nsPrefix;
-
-                    java.lang.String type = fullTypeName.substring(fullTypeName.indexOf(":")+1);
-                    
-                            if (!"language".equals(type)){
-                                //find namespace for the prefix
-                                java.lang.String nsUri = reader.getNamespaceContext().getNamespaceURI(nsPrefix);
-                                return (Language)org.apache.axis2.databinding.types.soapencoding.ExtensionMapper.getTypeObject(
-                                     nsUri,type,reader);
-                              }
-                        
-
-                  }
-                
-
-                }
-
-                
-
-                
-                // Note all attributes that were handled. Used to differ normal attributes
-                // from anyAttributes.
-                java.util.Vector handledAttributes = new java.util.Vector();
-                
-
-                    
-                while(!reader.isEndElement()) {
-                    if (reader.isStartElement()  || reader.hasText()){
-                
-                                    if (reader.isStartElement()  || reader.hasText()){
-                                
-                                    java.lang.String content = reader.getElementText();
-                                    
-                                              object.setLanguage(
-                                                    org.apache.axis2.databinding.utils.ConverterUtil.convertToLanguage(content));
-                                            
-                              }  // End of if for expected property start element
-                                
-                             else{
-                                        // A start element we are not expecting indicates an invalid parameter was passed
-                                        throw new org.apache.axis2.databinding.ADBException("Unexpected subelement " + reader.getLocalName());
-                             }
-                          
-                             } else {
-                                reader.next();
-                             }  
-                           }  // end of while loop
-                        
-
-
-
-            } catch (javax.xml.stream.XMLStreamException e) {
-                throw new java.lang.Exception(e);
-            }
-
-            return object;
-        }
-
-        }//end of factory class
-
-        
-
-        }
-           
-          
\ No newline at end of file
diff --git a/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/NCName.java b/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/NCName.java
deleted file mode 100644
index b1e5f41..0000000
--- a/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/NCName.java
+++ /dev/null
@@ -1,469 +0,0 @@
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/**
- * NCName.java
- *
- * This file was auto-generated from WSDL
- * by the Apache Axis2 version: SNAPSHOT  Built on : Dec 21, 2007 (04:03:30 LKT)
- */
-            
-                package org.apache.axis2.databinding.types.soapencoding;
-
-import javax.xml.stream.XMLStreamWriter;
-            
-
-            /**
-            *  NCName bean class
-            */
-        
-        public  class NCName
-        implements org.apache.axis2.databinding.ADBBean{
-        /* This type was generated from the piece of schema that had
-                name = NCName
-                Namespace URI = http://schemas.xmlsoap.org/soap/encoding/
-                Namespace Prefix = ns1
-                */
-            
-
-        private static java.lang.String generatePrefix(java.lang.String namespace) {
-            if(namespace.equals("http://schemas.xmlsoap.org/soap/encoding/")){
-                return "SOAP-ENC";
-            }
-            return org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-        }
-
-        
-
-                        /**
-                        * field for NCName
-                        */
-
-                        
-                                    protected org.apache.axis2.databinding.types.NCName localNCName ;
-                                
-
-                           /**
-                           * Auto generated getter method
-                           * @return org.apache.axis2.databinding.types.NCName
-                           */
-                           public  org.apache.axis2.databinding.types.NCName getNCName(){
-                               return localNCName;
-                           }
-
-                           
-                        
-                            /**
-                               * Auto generated setter method
-                               * @param param NCName
-                               */
-                               public void setNCName(org.apache.axis2.databinding.types.NCName param){
-                            
-                                            this.localNCName=param;
-                                    
-
-                               }
-                            
-
-                            public java.lang.String toString(){
-                                
-                                        return localNCName.toString();
-                                    
-                            }
-                        
-
-     /**
-     * isReaderMTOMAware
-     * @return true if the reader supports MTOM
-     */
-   public static boolean isReaderMTOMAware(javax.xml.stream.XMLStreamReader reader) {
-        boolean isReaderMTOMAware = false;
-        
-        try{
-          isReaderMTOMAware = java.lang.Boolean.TRUE.equals(reader.getProperty(org.apache.axiom.om.OMConstants.IS_DATA_HANDLERS_AWARE));
-        }catch(java.lang.IllegalArgumentException e){
-          isReaderMTOMAware = false;
-        }
-        return isReaderMTOMAware;
-   }
-     
-     
-        /**
-        *
-        * @param parentQName
-        * @param factory
-        * @return org.apache.axiom.om.OMElement
-        */
-       public org.apache.axiom.om.OMElement getOMElement (
-               final javax.xml.namespace.QName parentQName,
-               final org.apache.axiom.om.OMFactory factory) throws org.apache.axis2.databinding.ADBException{
-
-
-        
-               org.apache.axiom.om.OMDataSource dataSource =
-                       new org.apache.axis2.databinding.ADBDataSource(this,parentQName);
-               return factory.createOMElement(dataSource,parentQName);
-            
-       }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                                       XMLStreamWriter xmlWriter)
-                                throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-                           serialize(parentQName,xmlWriter,false);
-         }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                               XMLStreamWriter xmlWriter,
-                               boolean serializeType)
-            throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-            
-                
-
-
-                java.lang.String prefix = null;
-                java.lang.String namespace = null;
-                
-
-                    prefix = parentQName.getPrefix();
-                    namespace = parentQName.getNamespaceURI();
-
-                    if ((namespace != null) && (namespace.trim().length() > 0)) {
-                        java.lang.String writerPrefix = xmlWriter.getPrefix(namespace);
-                        if (writerPrefix != null) {
-                            xmlWriter.writeStartElement(namespace, parentQName.getLocalPart());
-                        } else {
-                            if (prefix == null) {
-                                prefix = generatePrefix(namespace);
-                            }
-
-                            xmlWriter.writeStartElement(prefix, parentQName.getLocalPart(), namespace);
-                            xmlWriter.writeNamespace(prefix, namespace);
-                            xmlWriter.setPrefix(prefix, namespace);
-                        }
-                    } else {
-                        xmlWriter.writeStartElement(parentQName.getLocalPart());
-                    }
-                
-                  if (serializeType){
-               
-                   java.lang.String namespacePrefix = registerPrefix(xmlWriter,"http://schemas.xmlsoap.org/soap/encoding/");
-                   if ((namespacePrefix != null) && (namespacePrefix.trim().length() > 0)){
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           namespacePrefix+":NCName",
-                           xmlWriter);
-                   } else {
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           "NCName",
-                           xmlWriter);
-                   }
-
-               
-                   }
-               
-
-                                          if (localNCName==null){
-                                              // write the nil attribute
-                                              
-                                                     throw new org.apache.axis2.databinding.ADBException("NCName cannot be null!!");
-                                                  
-                                          }else{
-
-                                        
-                                                   xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(localNCName));
-                                            
-                                          }
-                                    
-                    xmlWriter.writeEndElement();
-               
-
-        }
-
-         /**
-          * Util method to write an attribute with the ns prefix
-          */
-          private void writeAttribute(java.lang.String prefix,java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-              if (xmlWriter.getPrefix(namespace) == null) {
-                       xmlWriter.writeNamespace(prefix, namespace);
-                       xmlWriter.setPrefix(prefix, namespace);
-
-              }
-
-              xmlWriter.writeAttribute(namespace,attName,attValue);
-
-         }
-
-        /**
-          * Util method to write an attribute without the ns prefix
-          */
-          private void writeAttribute(java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-                if (namespace.equals(""))
-              {
-                  xmlWriter.writeAttribute(attName,attValue);
-              }
-              else
-              {
-                  registerPrefix(xmlWriter, namespace);
-                  xmlWriter.writeAttribute(namespace,attName,attValue);
-              }
-          }
-
-
-           /**
-             * Util method to write an attribute without the ns prefix
-             */
-            private void writeQNameAttribute(java.lang.String namespace, java.lang.String attName,
-                                             javax.xml.namespace.QName qname, javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-                java.lang.String attributeNamespace = qname.getNamespaceURI();
-                java.lang.String attributePrefix = xmlWriter.getPrefix(attributeNamespace);
-                if (attributePrefix == null) {
-                    attributePrefix = registerPrefix(xmlWriter, attributeNamespace);
-                }
-                java.lang.String attributeValue;
-                if (attributePrefix.trim().length() > 0) {
-                    attributeValue = attributePrefix + ":" + qname.getLocalPart();
-                } else {
-                    attributeValue = qname.getLocalPart();
-                }
-
-                if (namespace.equals("")) {
-                    xmlWriter.writeAttribute(attName, attributeValue);
-                } else {
-                    registerPrefix(xmlWriter, namespace);
-                    xmlWriter.writeAttribute(namespace, attName, attributeValue);
-                }
-            }
-        /**
-         *  method to handle Qnames
-         */
-
-        private void writeQName(javax.xml.namespace.QName qname,
-                                javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-            java.lang.String namespaceURI = qname.getNamespaceURI();
-            if (namespaceURI != null) {
-                java.lang.String prefix = xmlWriter.getPrefix(namespaceURI);
-                if (prefix == null) {
-                    prefix = generatePrefix(namespaceURI);
-                    xmlWriter.writeNamespace(prefix, namespaceURI);
-                    xmlWriter.setPrefix(prefix,namespaceURI);
-                }
-
-                if (prefix.trim().length() > 0){
-                    xmlWriter.writeCharacters(prefix + ":" + org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                } else {
-                    // i.e this is the default namespace
-                    xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                }
-
-            } else {
-                xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-            }
-        }
-
-        private void writeQNames(javax.xml.namespace.QName[] qnames,
-                                 javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-            if (qnames != null) {
-                // we have to store this data until last moment since it is not possible to write any
-                // namespace data after writing the charactor data
-                java.lang.StringBuffer stringToWrite = new java.lang.StringBuffer();
-                java.lang.String namespaceURI = null;
-                java.lang.String prefix = null;
-
-                for (int i = 0; i < qnames.length; i++) {
-                    if (i > 0) {
-                        stringToWrite.append(" ");
-                    }
-                    namespaceURI = qnames[i].getNamespaceURI();
-                    if (namespaceURI != null) {
-                        prefix = xmlWriter.getPrefix(namespaceURI);
-                        if ((prefix == null) || (prefix.length() == 0)) {
-                            prefix = generatePrefix(namespaceURI);
-                            xmlWriter.writeNamespace(prefix, namespaceURI);
-                            xmlWriter.setPrefix(prefix,namespaceURI);
-                        }
-
-                        if (prefix.trim().length() > 0){
-                            stringToWrite.append(prefix).append(":").append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        } else {
-                            stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        }
-                    } else {
-                        stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                    }
-                }
-                xmlWriter.writeCharacters(stringToWrite.toString());
-            }
-
-        }
-
-
-         /**
-         * Register a namespace prefix
-         */
-         private java.lang.String registerPrefix(javax.xml.stream.XMLStreamWriter xmlWriter, java.lang.String namespace) throws javax.xml.stream.XMLStreamException {
-                java.lang.String prefix = xmlWriter.getPrefix(namespace);
-
-                if (prefix == null) {
-                    prefix = generatePrefix(namespace);
-                    javax.xml.namespace.NamespaceContext nsContext = xmlWriter.getNamespaceContext();
-                    while (true) {
-                        java.lang.String uri = nsContext.getNamespaceURI(prefix);
-                        if (uri == null || uri.length() == 0) {
-                            break;
-                        }
-                        prefix = org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-                    }
-                    xmlWriter.writeNamespace(prefix, namespace);
-                    xmlWriter.setPrefix(prefix, namespace);
-                }
-
-                return prefix;
-            }
-
-
-  
-     /**
-      *  Factory class that keeps the parse method
-      */
-    public static class Factory{
-
-        
-        
-                public static NCName fromString(java.lang.String value,
-                                                    java.lang.String namespaceURI){
-                    NCName returnValue = new  NCName();
-                    
-                            returnValue.setNCName(
-                                org.apache.axis2.databinding.utils.ConverterUtil.convertToNCName(value));
-                        
-
-                    return returnValue;
-                }
-
-                public static NCName fromString(javax.xml.stream.XMLStreamReader xmlStreamReader,
-                                                                    java.lang.String content) {
-                    if (content.indexOf(":") > -1){
-                        java.lang.String prefix = content.substring(0,content.indexOf(":"));
-                        java.lang.String namespaceUri = xmlStreamReader.getNamespaceContext().getNamespaceURI(prefix);
-                        return NCName.Factory.fromString(content,namespaceUri);
-                    } else {
-                       return NCName.Factory.fromString(content,"");
-                    }
-                }
-
-            
-
-        /**
-        * static method to create the object
-        * Precondition:  If this object is an element, the current or next start element starts this object and any intervening reader events are ignorable
-        *                If this object is not an element, it is a complex type and the reader is at the event just after the outer start element
-        * Postcondition: If this object is an element, the reader is positioned at its end element
-        *                If this object is a complex type, the reader is positioned at the end element of its outer element
-        */
-        public static NCName parse(javax.xml.stream.XMLStreamReader reader) throws java.lang.Exception{
-            NCName object =
-                new NCName();
-
-            int event;
-            java.lang.String nillableValue = null;
-            java.lang.String prefix ="";
-            java.lang.String namespaceuri ="";
-            try {
-                
-                while (!reader.isStartElement() && !reader.isEndElement())
-                    reader.next();
-
-                
-                if (reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance","type")!=null){
-                  java.lang.String fullTypeName = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance",
-                        "type");
-                  if (fullTypeName!=null){
-                    java.lang.String nsPrefix = null;
-                    if (fullTypeName.indexOf(":") > -1){
-                        nsPrefix = fullTypeName.substring(0,fullTypeName.indexOf(":"));
-                    }
-                    nsPrefix = nsPrefix==null?"":nsPrefix;
-
-                    java.lang.String type = fullTypeName.substring(fullTypeName.indexOf(":")+1);
-                    
-                            if (!"NCName".equals(type)){
-                                //find namespace for the prefix
-                                java.lang.String nsUri = reader.getNamespaceContext().getNamespaceURI(nsPrefix);
-                                return (NCName)org.apache.axis2.databinding.types.soapencoding.ExtensionMapper.getTypeObject(
-                                     nsUri,type,reader);
-                              }
-                        
-
-                  }
-                
-
-                }
-
-                
-
-                
-                // Note all attributes that were handled. Used to differ normal attributes
-                // from anyAttributes.
-                java.util.Vector handledAttributes = new java.util.Vector();
-                
-
-                    
-                while(!reader.isEndElement()) {
-                    if (reader.isStartElement()  || reader.hasText()){
-                
-                                    if (reader.isStartElement()  || reader.hasText()){
-                                
-                                    java.lang.String content = reader.getElementText();
-                                    
-                                              object.setNCName(
-                                                    org.apache.axis2.databinding.utils.ConverterUtil.convertToNCName(content));
-                                            
-                              }  // End of if for expected property start element
-                                
-                             else{
-                                        // A start element we are not expecting indicates an invalid parameter was passed
-                                        throw new org.apache.axis2.databinding.ADBException("Unexpected subelement " + reader.getLocalName());
-                             }
-                          
-                             } else {
-                                reader.next();
-                             }  
-                           }  // end of while loop
-                        
-
-
-
-            } catch (javax.xml.stream.XMLStreamException e) {
-                throw new java.lang.Exception(e);
-            }
-
-            return object;
-        }
-
-        }//end of factory class
-
-        
-
-        }
-           
-          
\ No newline at end of file
diff --git a/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/NMTOKEN.java b/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/NMTOKEN.java
deleted file mode 100644
index b755609..0000000
--- a/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/NMTOKEN.java
+++ /dev/null
@@ -1,469 +0,0 @@
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/**
- * NMTOKEN.java
- *
- * This file was auto-generated from WSDL
- * by the Apache Axis2 version: SNAPSHOT  Built on : Dec 21, 2007 (04:03:30 LKT)
- */
-            
-                package org.apache.axis2.databinding.types.soapencoding;
-
-import javax.xml.stream.XMLStreamWriter;
-            
-
-            /**
-            *  NMTOKEN bean class
-            */
-        
-        public  class NMTOKEN
-        implements org.apache.axis2.databinding.ADBBean{
-        /* This type was generated from the piece of schema that had
-                name = NMTOKEN
-                Namespace URI = http://schemas.xmlsoap.org/soap/encoding/
-                Namespace Prefix = ns1
-                */
-            
-
-        private static java.lang.String generatePrefix(java.lang.String namespace) {
-            if(namespace.equals("http://schemas.xmlsoap.org/soap/encoding/")){
-                return "SOAP-ENC";
-            }
-            return org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-        }
-
-        
-
-                        /**
-                        * field for NMTOKEN
-                        */
-
-                        
-                                    protected org.apache.axis2.databinding.types.NMToken localNMTOKEN ;
-                                
-
-                           /**
-                           * Auto generated getter method
-                           * @return org.apache.axis2.databinding.types.NMToken
-                           */
-                           public  org.apache.axis2.databinding.types.NMToken getNMTOKEN(){
-                               return localNMTOKEN;
-                           }
-
-                           
-                        
-                            /**
-                               * Auto generated setter method
-                               * @param param NMTOKEN
-                               */
-                               public void setNMTOKEN(org.apache.axis2.databinding.types.NMToken param){
-                            
-                                            this.localNMTOKEN=param;
-                                    
-
-                               }
-                            
-
-                            public java.lang.String toString(){
-                                
-                                        return localNMTOKEN.toString();
-                                    
-                            }
-                        
-
-     /**
-     * isReaderMTOMAware
-     * @return true if the reader supports MTOM
-     */
-   public static boolean isReaderMTOMAware(javax.xml.stream.XMLStreamReader reader) {
-        boolean isReaderMTOMAware = false;
-        
-        try{
-          isReaderMTOMAware = java.lang.Boolean.TRUE.equals(reader.getProperty(org.apache.axiom.om.OMConstants.IS_DATA_HANDLERS_AWARE));
-        }catch(java.lang.IllegalArgumentException e){
-          isReaderMTOMAware = false;
-        }
-        return isReaderMTOMAware;
-   }
-     
-     
-        /**
-        *
-        * @param parentQName
-        * @param factory
-        * @return org.apache.axiom.om.OMElement
-        */
-       public org.apache.axiom.om.OMElement getOMElement (
-               final javax.xml.namespace.QName parentQName,
-               final org.apache.axiom.om.OMFactory factory) throws org.apache.axis2.databinding.ADBException{
-
-
-        
-               org.apache.axiom.om.OMDataSource dataSource =
-                       new org.apache.axis2.databinding.ADBDataSource(this,parentQName);
-               return factory.createOMElement(dataSource,parentQName);
-            
-       }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                                       XMLStreamWriter xmlWriter)
-                                throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-                           serialize(parentQName,xmlWriter,false);
-         }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                               XMLStreamWriter xmlWriter,
-                               boolean serializeType)
-            throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-            
-                
-
-
-                java.lang.String prefix = null;
-                java.lang.String namespace = null;
-                
-
-                    prefix = parentQName.getPrefix();
-                    namespace = parentQName.getNamespaceURI();
-
-                    if ((namespace != null) && (namespace.trim().length() > 0)) {
-                        java.lang.String writerPrefix = xmlWriter.getPrefix(namespace);
-                        if (writerPrefix != null) {
-                            xmlWriter.writeStartElement(namespace, parentQName.getLocalPart());
-                        } else {
-                            if (prefix == null) {
-                                prefix = generatePrefix(namespace);
-                            }
-
-                            xmlWriter.writeStartElement(prefix, parentQName.getLocalPart(), namespace);
-                            xmlWriter.writeNamespace(prefix, namespace);
-                            xmlWriter.setPrefix(prefix, namespace);
-                        }
-                    } else {
-                        xmlWriter.writeStartElement(parentQName.getLocalPart());
-                    }
-                
-                  if (serializeType){
-               
-                   java.lang.String namespacePrefix = registerPrefix(xmlWriter,"http://schemas.xmlsoap.org/soap/encoding/");
-                   if ((namespacePrefix != null) && (namespacePrefix.trim().length() > 0)){
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           namespacePrefix+":NMTOKEN",
-                           xmlWriter);
-                   } else {
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           "NMTOKEN",
-                           xmlWriter);
-                   }
-
-               
-                   }
-               
-
-                                          if (localNMTOKEN==null){
-                                              // write the nil attribute
-                                              
-                                                     throw new org.apache.axis2.databinding.ADBException("NMTOKEN cannot be null!!");
-                                                  
-                                          }else{
-
-                                        
-                                                   xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(localNMTOKEN));
-                                            
-                                          }
-                                    
-                    xmlWriter.writeEndElement();
-               
-
-        }
-
-         /**
-          * Util method to write an attribute with the ns prefix
-          */
-          private void writeAttribute(java.lang.String prefix,java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-              if (xmlWriter.getPrefix(namespace) == null) {
-                       xmlWriter.writeNamespace(prefix, namespace);
-                       xmlWriter.setPrefix(prefix, namespace);
-
-              }
-
-              xmlWriter.writeAttribute(namespace,attName,attValue);
-
-         }
-
-        /**
-          * Util method to write an attribute without the ns prefix
-          */
-          private void writeAttribute(java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-                if (namespace.equals(""))
-              {
-                  xmlWriter.writeAttribute(attName,attValue);
-              }
-              else
-              {
-                  registerPrefix(xmlWriter, namespace);
-                  xmlWriter.writeAttribute(namespace,attName,attValue);
-              }
-          }
-
-
-           /**
-             * Util method to write an attribute without the ns prefix
-             */
-            private void writeQNameAttribute(java.lang.String namespace, java.lang.String attName,
-                                             javax.xml.namespace.QName qname, javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-                java.lang.String attributeNamespace = qname.getNamespaceURI();
-                java.lang.String attributePrefix = xmlWriter.getPrefix(attributeNamespace);
-                if (attributePrefix == null) {
-                    attributePrefix = registerPrefix(xmlWriter, attributeNamespace);
-                }
-                java.lang.String attributeValue;
-                if (attributePrefix.trim().length() > 0) {
-                    attributeValue = attributePrefix + ":" + qname.getLocalPart();
-                } else {
-                    attributeValue = qname.getLocalPart();
-                }
-
-                if (namespace.equals("")) {
-                    xmlWriter.writeAttribute(attName, attributeValue);
-                } else {
-                    registerPrefix(xmlWriter, namespace);
-                    xmlWriter.writeAttribute(namespace, attName, attributeValue);
-                }
-            }
-        /**
-         *  method to handle Qnames
-         */
-
-        private void writeQName(javax.xml.namespace.QName qname,
-                                javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-            java.lang.String namespaceURI = qname.getNamespaceURI();
-            if (namespaceURI != null) {
-                java.lang.String prefix = xmlWriter.getPrefix(namespaceURI);
-                if (prefix == null) {
-                    prefix = generatePrefix(namespaceURI);
-                    xmlWriter.writeNamespace(prefix, namespaceURI);
-                    xmlWriter.setPrefix(prefix,namespaceURI);
-                }
-
-                if (prefix.trim().length() > 0){
-                    xmlWriter.writeCharacters(prefix + ":" + org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                } else {
-                    // i.e this is the default namespace
-                    xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                }
-
-            } else {
-                xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-            }
-        }
-
-        private void writeQNames(javax.xml.namespace.QName[] qnames,
-                                 javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-            if (qnames != null) {
-                // we have to store this data until last moment since it is not possible to write any
-                // namespace data after writing the charactor data
-                java.lang.StringBuffer stringToWrite = new java.lang.StringBuffer();
-                java.lang.String namespaceURI = null;
-                java.lang.String prefix = null;
-
-                for (int i = 0; i < qnames.length; i++) {
-                    if (i > 0) {
-                        stringToWrite.append(" ");
-                    }
-                    namespaceURI = qnames[i].getNamespaceURI();
-                    if (namespaceURI != null) {
-                        prefix = xmlWriter.getPrefix(namespaceURI);
-                        if ((prefix == null) || (prefix.length() == 0)) {
-                            prefix = generatePrefix(namespaceURI);
-                            xmlWriter.writeNamespace(prefix, namespaceURI);
-                            xmlWriter.setPrefix(prefix,namespaceURI);
-                        }
-
-                        if (prefix.trim().length() > 0){
-                            stringToWrite.append(prefix).append(":").append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        } else {
-                            stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        }
-                    } else {
-                        stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                    }
-                }
-                xmlWriter.writeCharacters(stringToWrite.toString());
-            }
-
-        }
-
-
-         /**
-         * Register a namespace prefix
-         */
-         private java.lang.String registerPrefix(javax.xml.stream.XMLStreamWriter xmlWriter, java.lang.String namespace) throws javax.xml.stream.XMLStreamException {
-                java.lang.String prefix = xmlWriter.getPrefix(namespace);
-
-                if (prefix == null) {
-                    prefix = generatePrefix(namespace);
-                    javax.xml.namespace.NamespaceContext nsContext = xmlWriter.getNamespaceContext();
-                    while (true) {
-                        java.lang.String uri = nsContext.getNamespaceURI(prefix);
-                        if (uri == null || uri.length() == 0) {
-                            break;
-                        }
-                        prefix = org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-                    }
-                    xmlWriter.writeNamespace(prefix, namespace);
-                    xmlWriter.setPrefix(prefix, namespace);
-                }
-
-                return prefix;
-            }
-
-
-  
-     /**
-      *  Factory class that keeps the parse method
-      */
-    public static class Factory{
-
-        
-        
-                public static NMTOKEN fromString(java.lang.String value,
-                                                    java.lang.String namespaceURI){
-                    NMTOKEN returnValue = new  NMTOKEN();
-                    
-                            returnValue.setNMTOKEN(
-                                org.apache.axis2.databinding.utils.ConverterUtil.convertToNMTOKEN(value));
-                        
-
-                    return returnValue;
-                }
-
-                public static NMTOKEN fromString(javax.xml.stream.XMLStreamReader xmlStreamReader,
-                                                                    java.lang.String content) {
-                    if (content.indexOf(":") > -1){
-                        java.lang.String prefix = content.substring(0,content.indexOf(":"));
-                        java.lang.String namespaceUri = xmlStreamReader.getNamespaceContext().getNamespaceURI(prefix);
-                        return NMTOKEN.Factory.fromString(content,namespaceUri);
-                    } else {
-                       return NMTOKEN.Factory.fromString(content,"");
-                    }
-                }
-
-            
-
-        /**
-        * static method to create the object
-        * Precondition:  If this object is an element, the current or next start element starts this object and any intervening reader events are ignorable
-        *                If this object is not an element, it is a complex type and the reader is at the event just after the outer start element
-        * Postcondition: If this object is an element, the reader is positioned at its end element
-        *                If this object is a complex type, the reader is positioned at the end element of its outer element
-        */
-        public static NMTOKEN parse(javax.xml.stream.XMLStreamReader reader) throws java.lang.Exception{
-            NMTOKEN object =
-                new NMTOKEN();
-
-            int event;
-            java.lang.String nillableValue = null;
-            java.lang.String prefix ="";
-            java.lang.String namespaceuri ="";
-            try {
-                
-                while (!reader.isStartElement() && !reader.isEndElement())
-                    reader.next();
-
-                
-                if (reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance","type")!=null){
-                  java.lang.String fullTypeName = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance",
-                        "type");
-                  if (fullTypeName!=null){
-                    java.lang.String nsPrefix = null;
-                    if (fullTypeName.indexOf(":") > -1){
-                        nsPrefix = fullTypeName.substring(0,fullTypeName.indexOf(":"));
-                    }
-                    nsPrefix = nsPrefix==null?"":nsPrefix;
-
-                    java.lang.String type = fullTypeName.substring(fullTypeName.indexOf(":")+1);
-                    
-                            if (!"NMTOKEN".equals(type)){
-                                //find namespace for the prefix
-                                java.lang.String nsUri = reader.getNamespaceContext().getNamespaceURI(nsPrefix);
-                                return (NMTOKEN)org.apache.axis2.databinding.types.soapencoding.ExtensionMapper.getTypeObject(
-                                     nsUri,type,reader);
-                              }
-                        
-
-                  }
-                
-
-                }
-
-                
-
-                
-                // Note all attributes that were handled. Used to differ normal attributes
-                // from anyAttributes.
-                java.util.Vector handledAttributes = new java.util.Vector();
-                
-
-                    
-                while(!reader.isEndElement()) {
-                    if (reader.isStartElement()  || reader.hasText()){
-                
-                                    if (reader.isStartElement()  || reader.hasText()){
-                                
-                                    java.lang.String content = reader.getElementText();
-                                    
-                                              object.setNMTOKEN(
-                                                    org.apache.axis2.databinding.utils.ConverterUtil.convertToNMTOKEN(content));
-                                            
-                              }  // End of if for expected property start element
-                                
-                             else{
-                                        // A start element we are not expecting indicates an invalid parameter was passed
-                                        throw new org.apache.axis2.databinding.ADBException("Unexpected subelement " + reader.getLocalName());
-                             }
-                          
-                             } else {
-                                reader.next();
-                             }  
-                           }  // end of while loop
-                        
-
-
-
-            } catch (javax.xml.stream.XMLStreamException e) {
-                throw new java.lang.Exception(e);
-            }
-
-            return object;
-        }
-
-        }//end of factory class
-
-        
-
-        }
-           
-          
\ No newline at end of file
diff --git a/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/NMTOKENS.java b/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/NMTOKENS.java
deleted file mode 100644
index b4561bf..0000000
--- a/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/NMTOKENS.java
+++ /dev/null
@@ -1,469 +0,0 @@
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/**
- * NMTOKENS.java
- *
- * This file was auto-generated from WSDL
- * by the Apache Axis2 version: SNAPSHOT  Built on : Dec 21, 2007 (04:03:30 LKT)
- */
-            
-                package org.apache.axis2.databinding.types.soapencoding;
-
-import javax.xml.stream.XMLStreamWriter;
-            
-
-            /**
-            *  NMTOKENS bean class
-            */
-        
-        public  class NMTOKENS
-        implements org.apache.axis2.databinding.ADBBean{
-        /* This type was generated from the piece of schema that had
-                name = NMTOKENS
-                Namespace URI = http://schemas.xmlsoap.org/soap/encoding/
-                Namespace Prefix = ns1
-                */
-            
-
-        private static java.lang.String generatePrefix(java.lang.String namespace) {
-            if(namespace.equals("http://schemas.xmlsoap.org/soap/encoding/")){
-                return "SOAP-ENC";
-            }
-            return org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-        }
-
-        
-
-                        /**
-                        * field for NMTOKENS
-                        */
-
-                        
-                                    protected org.apache.axis2.databinding.types.NMTokens localNMTOKENS ;
-                                
-
-                           /**
-                           * Auto generated getter method
-                           * @return org.apache.axis2.databinding.types.NMTokens
-                           */
-                           public  org.apache.axis2.databinding.types.NMTokens getNMTOKENS(){
-                               return localNMTOKENS;
-                           }
-
-                           
-                        
-                            /**
-                               * Auto generated setter method
-                               * @param param NMTOKENS
-                               */
-                               public void setNMTOKENS(org.apache.axis2.databinding.types.NMTokens param){
-                            
-                                            this.localNMTOKENS=param;
-                                    
-
-                               }
-                            
-
-                            public java.lang.String toString(){
-                                
-                                        return localNMTOKENS.toString();
-                                    
-                            }
-                        
-
-     /**
-     * isReaderMTOMAware
-     * @return true if the reader supports MTOM
-     */
-   public static boolean isReaderMTOMAware(javax.xml.stream.XMLStreamReader reader) {
-        boolean isReaderMTOMAware = false;
-        
-        try{
-          isReaderMTOMAware = java.lang.Boolean.TRUE.equals(reader.getProperty(org.apache.axiom.om.OMConstants.IS_DATA_HANDLERS_AWARE));
-        }catch(java.lang.IllegalArgumentException e){
-          isReaderMTOMAware = false;
-        }
-        return isReaderMTOMAware;
-   }
-     
-     
-        /**
-        *
-        * @param parentQName
-        * @param factory
-        * @return org.apache.axiom.om.OMElement
-        */
-       public org.apache.axiom.om.OMElement getOMElement (
-               final javax.xml.namespace.QName parentQName,
-               final org.apache.axiom.om.OMFactory factory) throws org.apache.axis2.databinding.ADBException{
-
-
-        
-               org.apache.axiom.om.OMDataSource dataSource =
-                       new org.apache.axis2.databinding.ADBDataSource(this,parentQName);
-               return factory.createOMElement(dataSource,parentQName);
-            
-       }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                                       XMLStreamWriter xmlWriter)
-                                throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-                           serialize(parentQName,xmlWriter,false);
-         }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                               XMLStreamWriter xmlWriter,
-                               boolean serializeType)
-            throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-            
-                
-
-
-                java.lang.String prefix = null;
-                java.lang.String namespace = null;
-                
-
-                    prefix = parentQName.getPrefix();
-                    namespace = parentQName.getNamespaceURI();
-
-                    if ((namespace != null) && (namespace.trim().length() > 0)) {
-                        java.lang.String writerPrefix = xmlWriter.getPrefix(namespace);
-                        if (writerPrefix != null) {
-                            xmlWriter.writeStartElement(namespace, parentQName.getLocalPart());
-                        } else {
-                            if (prefix == null) {
-                                prefix = generatePrefix(namespace);
-                            }
-
-                            xmlWriter.writeStartElement(prefix, parentQName.getLocalPart(), namespace);
-                            xmlWriter.writeNamespace(prefix, namespace);
-                            xmlWriter.setPrefix(prefix, namespace);
-                        }
-                    } else {
-                        xmlWriter.writeStartElement(parentQName.getLocalPart());
-                    }
-                
-                  if (serializeType){
-               
-                   java.lang.String namespacePrefix = registerPrefix(xmlWriter,"http://schemas.xmlsoap.org/soap/encoding/");
-                   if ((namespacePrefix != null) && (namespacePrefix.trim().length() > 0)){
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           namespacePrefix+":NMTOKENS",
-                           xmlWriter);
-                   } else {
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           "NMTOKENS",
-                           xmlWriter);
-                   }
-
-               
-                   }
-               
-
-                                          if (localNMTOKENS==null){
-                                              // write the nil attribute
-                                              
-                                                     throw new org.apache.axis2.databinding.ADBException("NMTOKENS cannot be null!!");
-                                                  
-                                          }else{
-
-                                        
-                                                   xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(localNMTOKENS));
-                                            
-                                          }
-                                    
-                    xmlWriter.writeEndElement();
-               
-
-        }
-
-         /**
-          * Util method to write an attribute with the ns prefix
-          */
-          private void writeAttribute(java.lang.String prefix,java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-              if (xmlWriter.getPrefix(namespace) == null) {
-                       xmlWriter.writeNamespace(prefix, namespace);
-                       xmlWriter.setPrefix(prefix, namespace);
-
-              }
-
-              xmlWriter.writeAttribute(namespace,attName,attValue);
-
-         }
-
-        /**
-          * Util method to write an attribute without the ns prefix
-          */
-          private void writeAttribute(java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-                if (namespace.equals(""))
-              {
-                  xmlWriter.writeAttribute(attName,attValue);
-              }
-              else
-              {
-                  registerPrefix(xmlWriter, namespace);
-                  xmlWriter.writeAttribute(namespace,attName,attValue);
-              }
-          }
-
-
-           /**
-             * Util method to write an attribute without the ns prefix
-             */
-            private void writeQNameAttribute(java.lang.String namespace, java.lang.String attName,
-                                             javax.xml.namespace.QName qname, javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-                java.lang.String attributeNamespace = qname.getNamespaceURI();
-                java.lang.String attributePrefix = xmlWriter.getPrefix(attributeNamespace);
-                if (attributePrefix == null) {
-                    attributePrefix = registerPrefix(xmlWriter, attributeNamespace);
-                }
-                java.lang.String attributeValue;
-                if (attributePrefix.trim().length() > 0) {
-                    attributeValue = attributePrefix + ":" + qname.getLocalPart();
-                } else {
-                    attributeValue = qname.getLocalPart();
-                }
-
-                if (namespace.equals("")) {
-                    xmlWriter.writeAttribute(attName, attributeValue);
-                } else {
-                    registerPrefix(xmlWriter, namespace);
-                    xmlWriter.writeAttribute(namespace, attName, attributeValue);
-                }
-            }
-        /**
-         *  method to handle Qnames
-         */
-
-        private void writeQName(javax.xml.namespace.QName qname,
-                                javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-            java.lang.String namespaceURI = qname.getNamespaceURI();
-            if (namespaceURI != null) {
-                java.lang.String prefix = xmlWriter.getPrefix(namespaceURI);
-                if (prefix == null) {
-                    prefix = generatePrefix(namespaceURI);
-                    xmlWriter.writeNamespace(prefix, namespaceURI);
-                    xmlWriter.setPrefix(prefix,namespaceURI);
-                }
-
-                if (prefix.trim().length() > 0){
-                    xmlWriter.writeCharacters(prefix + ":" + org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                } else {
-                    // i.e this is the default namespace
-                    xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                }
-
-            } else {
-                xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-            }
-        }
-
-        private void writeQNames(javax.xml.namespace.QName[] qnames,
-                                 javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-            if (qnames != null) {
-                // we have to store this data until last moment since it is not possible to write any
-                // namespace data after writing the charactor data
-                java.lang.StringBuffer stringToWrite = new java.lang.StringBuffer();
-                java.lang.String namespaceURI = null;
-                java.lang.String prefix = null;
-
-                for (int i = 0; i < qnames.length; i++) {
-                    if (i > 0) {
-                        stringToWrite.append(" ");
-                    }
-                    namespaceURI = qnames[i].getNamespaceURI();
-                    if (namespaceURI != null) {
-                        prefix = xmlWriter.getPrefix(namespaceURI);
-                        if ((prefix == null) || (prefix.length() == 0)) {
-                            prefix = generatePrefix(namespaceURI);
-                            xmlWriter.writeNamespace(prefix, namespaceURI);
-                            xmlWriter.setPrefix(prefix,namespaceURI);
-                        }
-
-                        if (prefix.trim().length() > 0){
-                            stringToWrite.append(prefix).append(":").append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        } else {
-                            stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        }
-                    } else {
-                        stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                    }
-                }
-                xmlWriter.writeCharacters(stringToWrite.toString());
-            }
-
-        }
-
-
-         /**
-         * Register a namespace prefix
-         */
-         private java.lang.String registerPrefix(javax.xml.stream.XMLStreamWriter xmlWriter, java.lang.String namespace) throws javax.xml.stream.XMLStreamException {
-                java.lang.String prefix = xmlWriter.getPrefix(namespace);
-
-                if (prefix == null) {
-                    prefix = generatePrefix(namespace);
-                    javax.xml.namespace.NamespaceContext nsContext = xmlWriter.getNamespaceContext();
-                    while (true) {
-                        java.lang.String uri = nsContext.getNamespaceURI(prefix);
-                        if (uri == null || uri.length() == 0) {
-                            break;
-                        }
-                        prefix = org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-                    }
-                    xmlWriter.writeNamespace(prefix, namespace);
-                    xmlWriter.setPrefix(prefix, namespace);
-                }
-
-                return prefix;
-            }
-
-
-  
-     /**
-      *  Factory class that keeps the parse method
-      */
-    public static class Factory{
-
-        
-        
-                public static NMTOKENS fromString(java.lang.String value,
-                                                    java.lang.String namespaceURI){
-                    NMTOKENS returnValue = new  NMTOKENS();
-                    
-                            returnValue.setNMTOKENS(
-                                org.apache.axis2.databinding.utils.ConverterUtil.convertToNMTOKENS(value));
-                        
-
-                    return returnValue;
-                }
-
-                public static NMTOKENS fromString(javax.xml.stream.XMLStreamReader xmlStreamReader,
-                                                                    java.lang.String content) {
-                    if (content.indexOf(":") > -1){
-                        java.lang.String prefix = content.substring(0,content.indexOf(":"));
-                        java.lang.String namespaceUri = xmlStreamReader.getNamespaceContext().getNamespaceURI(prefix);
-                        return NMTOKENS.Factory.fromString(content,namespaceUri);
-                    } else {
-                       return NMTOKENS.Factory.fromString(content,"");
-                    }
-                }
-
-            
-
-        /**
-        * static method to create the object
-        * Precondition:  If this object is an element, the current or next start element starts this object and any intervening reader events are ignorable
-        *                If this object is not an element, it is a complex type and the reader is at the event just after the outer start element
-        * Postcondition: If this object is an element, the reader is positioned at its end element
-        *                If this object is a complex type, the reader is positioned at the end element of its outer element
-        */
-        public static NMTOKENS parse(javax.xml.stream.XMLStreamReader reader) throws java.lang.Exception{
-            NMTOKENS object =
-                new NMTOKENS();
-
-            int event;
-            java.lang.String nillableValue = null;
-            java.lang.String prefix ="";
-            java.lang.String namespaceuri ="";
-            try {
-                
-                while (!reader.isStartElement() && !reader.isEndElement())
-                    reader.next();
-
-                
-                if (reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance","type")!=null){
-                  java.lang.String fullTypeName = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance",
-                        "type");
-                  if (fullTypeName!=null){
-                    java.lang.String nsPrefix = null;
-                    if (fullTypeName.indexOf(":") > -1){
-                        nsPrefix = fullTypeName.substring(0,fullTypeName.indexOf(":"));
-                    }
-                    nsPrefix = nsPrefix==null?"":nsPrefix;
-
-                    java.lang.String type = fullTypeName.substring(fullTypeName.indexOf(":")+1);
-                    
-                            if (!"NMTOKENS".equals(type)){
-                                //find namespace for the prefix
-                                java.lang.String nsUri = reader.getNamespaceContext().getNamespaceURI(nsPrefix);
-                                return (NMTOKENS)org.apache.axis2.databinding.types.soapencoding.ExtensionMapper.getTypeObject(
-                                     nsUri,type,reader);
-                              }
-                        
-
-                  }
-                
-
-                }
-
-                
-
-                
-                // Note all attributes that were handled. Used to differ normal attributes
-                // from anyAttributes.
-                java.util.Vector handledAttributes = new java.util.Vector();
-                
-
-                    
-                while(!reader.isEndElement()) {
-                    if (reader.isStartElement()  || reader.hasText()){
-                
-                                    if (reader.isStartElement()  || reader.hasText()){
-                                
-                                    java.lang.String content = reader.getElementText();
-                                    
-                                              object.setNMTOKENS(
-                                                    org.apache.axis2.databinding.utils.ConverterUtil.convertToNMTOKENS(content));
-                                            
-                              }  // End of if for expected property start element
-                                
-                             else{
-                                        // A start element we are not expecting indicates an invalid parameter was passed
-                                        throw new org.apache.axis2.databinding.ADBException("Unexpected subelement " + reader.getLocalName());
-                             }
-                          
-                             } else {
-                                reader.next();
-                             }  
-                           }  // end of while loop
-                        
-
-
-
-            } catch (javax.xml.stream.XMLStreamException e) {
-                throw new java.lang.Exception(e);
-            }
-
-            return object;
-        }
-
-        }//end of factory class
-
-        
-
-        }
-           
-          
\ No newline at end of file
diff --git a/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/NOTATION.java b/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/NOTATION.java
deleted file mode 100644
index 238b867..0000000
--- a/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/NOTATION.java
+++ /dev/null
@@ -1,476 +0,0 @@
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/**
- * NOTATION.java
- *
- * This file was auto-generated from WSDL
- * by the Apache Axis2 version: SNAPSHOT  Built on : Dec 21, 2007 (04:03:30 LKT)
- */
-            
-                package org.apache.axis2.databinding.types.soapencoding;
-
-import javax.xml.stream.XMLStreamWriter;
-            
-
-            /**
-            *  NOTATION bean class
-            */
-        
-        public  class NOTATION
-        implements org.apache.axis2.databinding.ADBBean{
-        /* This type was generated from the piece of schema that had
-                name = NOTATION
-                Namespace URI = http://schemas.xmlsoap.org/soap/encoding/
-                Namespace Prefix = ns1
-                */
-            
-
-        private static java.lang.String generatePrefix(java.lang.String namespace) {
-            if(namespace.equals("http://schemas.xmlsoap.org/soap/encoding/")){
-                return "SOAP-ENC";
-            }
-            return org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-        }
-
-        
-
-                        /**
-                        * field for QName
-                        */
-
-                        
-                                    protected javax.xml.namespace.QName localQName ;
-                                
-
-                           /**
-                           * Auto generated getter method
-                           * @return javax.xml.namespace.QName
-                           */
-                           public  javax.xml.namespace.QName getQName(){
-                               return localQName;
-                           }
-
-                           
-                        
-                            /**
-                               * Auto generated setter method
-                               * @param param QName
-                               */
-                               public void setQName(javax.xml.namespace.QName param){
-                            
-                                            this.localQName=param;
-                                    
-
-                               }
-                            
-
-                            public java.lang.String toString(){
-                                
-                                        return localQName.toString();
-                                    
-                            }
-                        
-
-     /**
-     * isReaderMTOMAware
-     * @return true if the reader supports MTOM
-     */
-   public static boolean isReaderMTOMAware(javax.xml.stream.XMLStreamReader reader) {
-        boolean isReaderMTOMAware = false;
-        
-        try{
-          isReaderMTOMAware = java.lang.Boolean.TRUE.equals(reader.getProperty(org.apache.axiom.om.OMConstants.IS_DATA_HANDLERS_AWARE));
-        }catch(java.lang.IllegalArgumentException e){
-          isReaderMTOMAware = false;
-        }
-        return isReaderMTOMAware;
-   }
-     
-     
-        /**
-        *
-        * @param parentQName
-        * @param factory
-        * @return org.apache.axiom.om.OMElement
-        */
-       public org.apache.axiom.om.OMElement getOMElement (
-               final javax.xml.namespace.QName parentQName,
-               final org.apache.axiom.om.OMFactory factory) throws org.apache.axis2.databinding.ADBException{
-
-
-        
-               org.apache.axiom.om.OMDataSource dataSource =
-                       new org.apache.axis2.databinding.ADBDataSource(this,parentQName);
-               return factory.createOMElement(dataSource,parentQName);
-            
-       }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                                       XMLStreamWriter xmlWriter)
-                                throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-                           serialize(parentQName,xmlWriter,false);
-         }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                               XMLStreamWriter xmlWriter,
-                               boolean serializeType)
-            throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-            
-                
-
-
-                java.lang.String prefix = null;
-                java.lang.String namespace = null;
-                
-
-                    prefix = parentQName.getPrefix();
-                    namespace = parentQName.getNamespaceURI();
-
-                    if ((namespace != null) && (namespace.trim().length() > 0)) {
-                        java.lang.String writerPrefix = xmlWriter.getPrefix(namespace);
-                        if (writerPrefix != null) {
-                            xmlWriter.writeStartElement(namespace, parentQName.getLocalPart());
-                        } else {
-                            if (prefix == null) {
-                                prefix = generatePrefix(namespace);
-                            }
-
-                            xmlWriter.writeStartElement(prefix, parentQName.getLocalPart(), namespace);
-                            xmlWriter.writeNamespace(prefix, namespace);
-                            xmlWriter.setPrefix(prefix, namespace);
-                        }
-                    } else {
-                        xmlWriter.writeStartElement(parentQName.getLocalPart());
-                    }
-                
-                  if (serializeType){
-               
-                   java.lang.String namespacePrefix = registerPrefix(xmlWriter,"http://schemas.xmlsoap.org/soap/encoding/");
-                   if ((namespacePrefix != null) && (namespacePrefix.trim().length() > 0)){
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           namespacePrefix+":NOTATION",
-                           xmlWriter);
-                   } else {
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           "NOTATION",
-                           xmlWriter);
-                   }
-
-               
-                   }
-               
-
-                                          if (localQName==null){
-                                              // write the nil attribute
-                                              
-                                                     throw new org.apache.axis2.databinding.ADBException("QName cannot be null!!");
-                                                  
-                                          }else{
-
-                                        
-                                                writeQName(localQName,xmlWriter);
-                                            
-                                          }
-                                    
-                    xmlWriter.writeEndElement();
-               
-
-        }
-
-         /**
-          * Util method to write an attribute with the ns prefix
-          */
-          private void writeAttribute(java.lang.String prefix,java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-              if (xmlWriter.getPrefix(namespace) == null) {
-                       xmlWriter.writeNamespace(prefix, namespace);
-                       xmlWriter.setPrefix(prefix, namespace);
-
-              }
-
-              xmlWriter.writeAttribute(namespace,attName,attValue);
-
-         }
-
-        /**
-          * Util method to write an attribute without the ns prefix
-          */
-          private void writeAttribute(java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-                if (namespace.equals(""))
-              {
-                  xmlWriter.writeAttribute(attName,attValue);
-              }
-              else
-              {
-                  registerPrefix(xmlWriter, namespace);
-                  xmlWriter.writeAttribute(namespace,attName,attValue);
-              }
-          }
-
-
-           /**
-             * Util method to write an attribute without the ns prefix
-             */
-            private void writeQNameAttribute(java.lang.String namespace, java.lang.String attName,
-                                             javax.xml.namespace.QName qname, javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-                java.lang.String attributeNamespace = qname.getNamespaceURI();
-                java.lang.String attributePrefix = xmlWriter.getPrefix(attributeNamespace);
-                if (attributePrefix == null) {
-                    attributePrefix = registerPrefix(xmlWriter, attributeNamespace);
-                }
-                java.lang.String attributeValue;
-                if (attributePrefix.trim().length() > 0) {
-                    attributeValue = attributePrefix + ":" + qname.getLocalPart();
-                } else {
-                    attributeValue = qname.getLocalPart();
-                }
-
-                if (namespace.equals("")) {
-                    xmlWriter.writeAttribute(attName, attributeValue);
-                } else {
-                    registerPrefix(xmlWriter, namespace);
-                    xmlWriter.writeAttribute(namespace, attName, attributeValue);
-                }
-            }
-        /**
-         *  method to handle Qnames
-         */
-
-        private void writeQName(javax.xml.namespace.QName qname,
-                                javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-            java.lang.String namespaceURI = qname.getNamespaceURI();
-            if (namespaceURI != null) {
-                java.lang.String prefix = xmlWriter.getPrefix(namespaceURI);
-                if (prefix == null) {
-                    prefix = generatePrefix(namespaceURI);
-                    xmlWriter.writeNamespace(prefix, namespaceURI);
-                    xmlWriter.setPrefix(prefix,namespaceURI);
-                }
-
-                if (prefix.trim().length() > 0){
-                    xmlWriter.writeCharacters(prefix + ":" + org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                } else {
-                    // i.e this is the default namespace
-                    xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                }
-
-            } else {
-                xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-            }
-        }
-
-        private void writeQNames(javax.xml.namespace.QName[] qnames,
-                                 javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-            if (qnames != null) {
-                // we have to store this data until last moment since it is not possible to write any
-                // namespace data after writing the charactor data
-                java.lang.StringBuffer stringToWrite = new java.lang.StringBuffer();
-                java.lang.String namespaceURI = null;
-                java.lang.String prefix = null;
-
-                for (int i = 0; i < qnames.length; i++) {
-                    if (i > 0) {
-                        stringToWrite.append(" ");
-                    }
-                    namespaceURI = qnames[i].getNamespaceURI();
-                    if (namespaceURI != null) {
-                        prefix = xmlWriter.getPrefix(namespaceURI);
-                        if ((prefix == null) || (prefix.length() == 0)) {
-                            prefix = generatePrefix(namespaceURI);
-                            xmlWriter.writeNamespace(prefix, namespaceURI);
-                            xmlWriter.setPrefix(prefix,namespaceURI);
-                        }
-
-                        if (prefix.trim().length() > 0){
-                            stringToWrite.append(prefix).append(":").append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        } else {
-                            stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        }
-                    } else {
-                        stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                    }
-                }
-                xmlWriter.writeCharacters(stringToWrite.toString());
-            }
-
-        }
-
-
-         /**
-         * Register a namespace prefix
-         */
-         private java.lang.String registerPrefix(javax.xml.stream.XMLStreamWriter xmlWriter, java.lang.String namespace) throws javax.xml.stream.XMLStreamException {
-                java.lang.String prefix = xmlWriter.getPrefix(namespace);
-
-                if (prefix == null) {
-                    prefix = generatePrefix(namespace);
-                    javax.xml.namespace.NamespaceContext nsContext = xmlWriter.getNamespaceContext();
-                    while (true) {
-                        java.lang.String uri = nsContext.getNamespaceURI(prefix);
-                        if (uri == null || uri.length() == 0) {
-                            break;
-                        }
-                        prefix = org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-                    }
-                    xmlWriter.writeNamespace(prefix, namespace);
-                    xmlWriter.setPrefix(prefix, namespace);
-                }
-
-                return prefix;
-            }
-
-
-  
-     /**
-      *  Factory class that keeps the parse method
-      */
-    public static class Factory{
-
-        
-        
-                public static NOTATION fromString(java.lang.String value,
-                                                    java.lang.String namespaceURI){
-                    NOTATION returnValue = new  NOTATION();
-                    
-                            returnValue.setQName(
-                                org.apache.axis2.databinding.utils.ConverterUtil.convertToQName(value,namespaceURI));
-                        
-
-                    return returnValue;
-                }
-
-                public static NOTATION fromString(javax.xml.stream.XMLStreamReader xmlStreamReader,
-                                                                    java.lang.String content) {
-                    if (content.indexOf(":") > -1){
-                        java.lang.String prefix = content.substring(0,content.indexOf(":"));
-                        java.lang.String namespaceUri = xmlStreamReader.getNamespaceContext().getNamespaceURI(prefix);
-                        return NOTATION.Factory.fromString(content,namespaceUri);
-                    } else {
-                       return NOTATION.Factory.fromString(content,"");
-                    }
-                }
-
-            
-
-        /**
-        * static method to create the object
-        * Precondition:  If this object is an element, the current or next start element starts this object and any intervening reader events are ignorable
-        *                If this object is not an element, it is a complex type and the reader is at the event just after the outer start element
-        * Postcondition: If this object is an element, the reader is positioned at its end element
-        *                If this object is a complex type, the reader is positioned at the end element of its outer element
-        */
-        public static NOTATION parse(javax.xml.stream.XMLStreamReader reader) throws java.lang.Exception{
-            NOTATION object =
-                new NOTATION();
-
-            int event;
-            java.lang.String nillableValue = null;
-            java.lang.String prefix ="";
-            java.lang.String namespaceuri ="";
-            try {
-                
-                while (!reader.isStartElement() && !reader.isEndElement())
-                    reader.next();
-
-                
-                if (reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance","type")!=null){
-                  java.lang.String fullTypeName = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance",
-                        "type");
-                  if (fullTypeName!=null){
-                    java.lang.String nsPrefix = null;
-                    if (fullTypeName.indexOf(":") > -1){
-                        nsPrefix = fullTypeName.substring(0,fullTypeName.indexOf(":"));
-                    }
-                    nsPrefix = nsPrefix==null?"":nsPrefix;
-
-                    java.lang.String type = fullTypeName.substring(fullTypeName.indexOf(":")+1);
-                    
-                            if (!"NOTATION".equals(type)){
-                                //find namespace for the prefix
-                                java.lang.String nsUri = reader.getNamespaceContext().getNamespaceURI(nsPrefix);
-                                return (NOTATION)org.apache.axis2.databinding.types.soapencoding.ExtensionMapper.getTypeObject(
-                                     nsUri,type,reader);
-                              }
-                        
-
-                  }
-                
-
-                }
-
-                
-
-                
-                // Note all attributes that were handled. Used to differ normal attributes
-                // from anyAttributes.
-                java.util.Vector handledAttributes = new java.util.Vector();
-                
-
-                    
-                while(!reader.isEndElement()) {
-                    if (reader.isStartElement()  || reader.hasText()){
-                
-                                    if (reader.isStartElement()  || reader.hasText()){
-                                
-                                    java.lang.String content = reader.getElementText();
-                                    
-                                            int index = content.indexOf(":");
-                                            if(index > 0){
-                                                prefix = content.substring(0,index);
-                                             } else {
-                                                prefix = "";
-                                             }
-                                             namespaceuri = reader.getNamespaceURI(prefix);
-                                             object.setQName(
-                                                  org.apache.axis2.databinding.utils.ConverterUtil.convertToQName(content,namespaceuri));
-                                            
-                              }  // End of if for expected property start element
-                                
-                             else{
-                                        // A start element we are not expecting indicates an invalid parameter was passed
-                                        throw new org.apache.axis2.databinding.ADBException("Unexpected subelement " + reader.getLocalName());
-                             }
-                          
-                             } else {
-                                reader.next();
-                             }  
-                           }  // end of while loop
-                        
-
-
-
-            } catch (javax.xml.stream.XMLStreamException e) {
-                throw new java.lang.Exception(e);
-            }
-
-            return object;
-        }
-
-        }//end of factory class
-
-        
-
-        }
-           
-          
\ No newline at end of file
diff --git a/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/Name.java b/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/Name.java
deleted file mode 100644
index 2afad04..0000000
--- a/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/Name.java
+++ /dev/null
@@ -1,469 +0,0 @@
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/**
- * Name.java
- *
- * This file was auto-generated from WSDL
- * by the Apache Axis2 version: SNAPSHOT  Built on : Dec 21, 2007 (04:03:30 LKT)
- */
-            
-                package org.apache.axis2.databinding.types.soapencoding;
-
-import javax.xml.stream.XMLStreamWriter;
-            
-
-            /**
-            *  Name bean class
-            */
-        
-        public  class Name
-        implements org.apache.axis2.databinding.ADBBean{
-        /* This type was generated from the piece of schema that had
-                name = Name
-                Namespace URI = http://schemas.xmlsoap.org/soap/encoding/
-                Namespace Prefix = ns1
-                */
-            
-
-        private static java.lang.String generatePrefix(java.lang.String namespace) {
-            if(namespace.equals("http://schemas.xmlsoap.org/soap/encoding/")){
-                return "SOAP-ENC";
-            }
-            return org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-        }
-
-        
-
-                        /**
-                        * field for Name
-                        */
-
-                        
-                                    protected org.apache.axis2.databinding.types.Name localName ;
-                                
-
-                           /**
-                           * Auto generated getter method
-                           * @return org.apache.axis2.databinding.types.Name
-                           */
-                           public  org.apache.axis2.databinding.types.Name getName(){
-                               return localName;
-                           }
-
-                           
-                        
-                            /**
-                               * Auto generated setter method
-                               * @param param Name
-                               */
-                               public void setName(org.apache.axis2.databinding.types.Name param){
-                            
-                                            this.localName=param;
-                                    
-
-                               }
-                            
-
-                            public java.lang.String toString(){
-                                
-                                        return localName.toString();
-                                    
-                            }
-                        
-
-     /**
-     * isReaderMTOMAware
-     * @return true if the reader supports MTOM
-     */
-   public static boolean isReaderMTOMAware(javax.xml.stream.XMLStreamReader reader) {
-        boolean isReaderMTOMAware = false;
-        
-        try{
-          isReaderMTOMAware = java.lang.Boolean.TRUE.equals(reader.getProperty(org.apache.axiom.om.OMConstants.IS_DATA_HANDLERS_AWARE));
-        }catch(java.lang.IllegalArgumentException e){
-          isReaderMTOMAware = false;
-        }
-        return isReaderMTOMAware;
-   }
-     
-     
-        /**
-        *
-        * @param parentQName
-        * @param factory
-        * @return org.apache.axiom.om.OMElement
-        */
-       public org.apache.axiom.om.OMElement getOMElement (
-               final javax.xml.namespace.QName parentQName,
-               final org.apache.axiom.om.OMFactory factory) throws org.apache.axis2.databinding.ADBException{
-
-
-        
-               org.apache.axiom.om.OMDataSource dataSource =
-                       new org.apache.axis2.databinding.ADBDataSource(this,parentQName);
-               return factory.createOMElement(dataSource,parentQName);
-            
-       }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                                       XMLStreamWriter xmlWriter)
-                                throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-                           serialize(parentQName,xmlWriter,false);
-         }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                               XMLStreamWriter xmlWriter,
-                               boolean serializeType)
-            throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-            
-                
-
-
-                java.lang.String prefix = null;
-                java.lang.String namespace = null;
-                
-
-                    prefix = parentQName.getPrefix();
-                    namespace = parentQName.getNamespaceURI();
-
-                    if ((namespace != null) && (namespace.trim().length() > 0)) {
-                        java.lang.String writerPrefix = xmlWriter.getPrefix(namespace);
-                        if (writerPrefix != null) {
-                            xmlWriter.writeStartElement(namespace, parentQName.getLocalPart());
-                        } else {
-                            if (prefix == null) {
-                                prefix = generatePrefix(namespace);
-                            }
-
-                            xmlWriter.writeStartElement(prefix, parentQName.getLocalPart(), namespace);
-                            xmlWriter.writeNamespace(prefix, namespace);
-                            xmlWriter.setPrefix(prefix, namespace);
-                        }
-                    } else {
-                        xmlWriter.writeStartElement(parentQName.getLocalPart());
-                    }
-                
-                  if (serializeType){
-               
-                   java.lang.String namespacePrefix = registerPrefix(xmlWriter,"http://schemas.xmlsoap.org/soap/encoding/");
-                   if ((namespacePrefix != null) && (namespacePrefix.trim().length() > 0)){
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           namespacePrefix+":Name",
-                           xmlWriter);
-                   } else {
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           "Name",
-                           xmlWriter);
-                   }
-
-               
-                   }
-               
-
-                                          if (localName==null){
-                                              // write the nil attribute
-                                              
-                                                     throw new org.apache.axis2.databinding.ADBException("Name cannot be null!!");
-                                                  
-                                          }else{
-
-                                        
-                                                   xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(localName));
-                                            
-                                          }
-                                    
-                    xmlWriter.writeEndElement();
-               
-
-        }
-
-         /**
-          * Util method to write an attribute with the ns prefix
-          */
-          private void writeAttribute(java.lang.String prefix,java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-              if (xmlWriter.getPrefix(namespace) == null) {
-                       xmlWriter.writeNamespace(prefix, namespace);
-                       xmlWriter.setPrefix(prefix, namespace);
-
-              }
-
-              xmlWriter.writeAttribute(namespace,attName,attValue);
-
-         }
-
-        /**
-          * Util method to write an attribute without the ns prefix
-          */
-          private void writeAttribute(java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-                if (namespace.equals(""))
-              {
-                  xmlWriter.writeAttribute(attName,attValue);
-              }
-              else
-              {
-                  registerPrefix(xmlWriter, namespace);
-                  xmlWriter.writeAttribute(namespace,attName,attValue);
-              }
-          }
-
-
-           /**
-             * Util method to write an attribute without the ns prefix
-             */
-            private void writeQNameAttribute(java.lang.String namespace, java.lang.String attName,
-                                             javax.xml.namespace.QName qname, javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-                java.lang.String attributeNamespace = qname.getNamespaceURI();
-                java.lang.String attributePrefix = xmlWriter.getPrefix(attributeNamespace);
-                if (attributePrefix == null) {
-                    attributePrefix = registerPrefix(xmlWriter, attributeNamespace);
-                }
-                java.lang.String attributeValue;
-                if (attributePrefix.trim().length() > 0) {
-                    attributeValue = attributePrefix + ":" + qname.getLocalPart();
-                } else {
-                    attributeValue = qname.getLocalPart();
-                }
-
-                if (namespace.equals("")) {
-                    xmlWriter.writeAttribute(attName, attributeValue);
-                } else {
-                    registerPrefix(xmlWriter, namespace);
-                    xmlWriter.writeAttribute(namespace, attName, attributeValue);
-                }
-            }
-        /**
-         *  method to handle Qnames
-         */
-
-        private void writeQName(javax.xml.namespace.QName qname,
-                                javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-            java.lang.String namespaceURI = qname.getNamespaceURI();
-            if (namespaceURI != null) {
-                java.lang.String prefix = xmlWriter.getPrefix(namespaceURI);
-                if (prefix == null) {
-                    prefix = generatePrefix(namespaceURI);
-                    xmlWriter.writeNamespace(prefix, namespaceURI);
-                    xmlWriter.setPrefix(prefix,namespaceURI);
-                }
-
-                if (prefix.trim().length() > 0){
-                    xmlWriter.writeCharacters(prefix + ":" + org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                } else {
-                    // i.e this is the default namespace
-                    xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                }
-
-            } else {
-                xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-            }
-        }
-
-        private void writeQNames(javax.xml.namespace.QName[] qnames,
-                                 javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-            if (qnames != null) {
-                // we have to store this data until last moment since it is not possible to write any
-                // namespace data after writing the charactor data
-                java.lang.StringBuffer stringToWrite = new java.lang.StringBuffer();
-                java.lang.String namespaceURI = null;
-                java.lang.String prefix = null;
-
-                for (int i = 0; i < qnames.length; i++) {
-                    if (i > 0) {
-                        stringToWrite.append(" ");
-                    }
-                    namespaceURI = qnames[i].getNamespaceURI();
-                    if (namespaceURI != null) {
-                        prefix = xmlWriter.getPrefix(namespaceURI);
-                        if ((prefix == null) || (prefix.length() == 0)) {
-                            prefix = generatePrefix(namespaceURI);
-                            xmlWriter.writeNamespace(prefix, namespaceURI);
-                            xmlWriter.setPrefix(prefix,namespaceURI);
-                        }
-
-                        if (prefix.trim().length() > 0){
-                            stringToWrite.append(prefix).append(":").append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        } else {
-                            stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        }
-                    } else {
-                        stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                    }
-                }
-                xmlWriter.writeCharacters(stringToWrite.toString());
-            }
-
-        }
-
-
-         /**
-         * Register a namespace prefix
-         */
-         private java.lang.String registerPrefix(javax.xml.stream.XMLStreamWriter xmlWriter, java.lang.String namespace) throws javax.xml.stream.XMLStreamException {
-                java.lang.String prefix = xmlWriter.getPrefix(namespace);
-
-                if (prefix == null) {
-                    prefix = generatePrefix(namespace);
-                    javax.xml.namespace.NamespaceContext nsContext = xmlWriter.getNamespaceContext();
-                    while (true) {
-                        java.lang.String uri = nsContext.getNamespaceURI(prefix);
-                        if (uri == null || uri.length() == 0) {
-                            break;
-                        }
-                        prefix = org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-                    }
-                    xmlWriter.writeNamespace(prefix, namespace);
-                    xmlWriter.setPrefix(prefix, namespace);
-                }
-
-                return prefix;
-            }
-
-
-  
-     /**
-      *  Factory class that keeps the parse method
-      */
-    public static class Factory{
-
-        
-        
-                public static Name fromString(java.lang.String value,
-                                                    java.lang.String namespaceURI){
-                    Name returnValue = new  Name();
-                    
-                            returnValue.setName(
-                                org.apache.axis2.databinding.utils.ConverterUtil.convertToName(value));
-                        
-
-                    return returnValue;
-                }
-
-                public static Name fromString(javax.xml.stream.XMLStreamReader xmlStreamReader,
-                                                                    java.lang.String content) {
-                    if (content.indexOf(":") > -1){
-                        java.lang.String prefix = content.substring(0,content.indexOf(":"));
-                        java.lang.String namespaceUri = xmlStreamReader.getNamespaceContext().getNamespaceURI(prefix);
-                        return Name.Factory.fromString(content,namespaceUri);
-                    } else {
-                       return Name.Factory.fromString(content,"");
-                    }
-                }
-
-            
-
-        /**
-        * static method to create the object
-        * Precondition:  If this object is an element, the current or next start element starts this object and any intervening reader events are ignorable
-        *                If this object is not an element, it is a complex type and the reader is at the event just after the outer start element
-        * Postcondition: If this object is an element, the reader is positioned at its end element
-        *                If this object is a complex type, the reader is positioned at the end element of its outer element
-        */
-        public static Name parse(javax.xml.stream.XMLStreamReader reader) throws java.lang.Exception{
-            Name object =
-                new Name();
-
-            int event;
-            java.lang.String nillableValue = null;
-            java.lang.String prefix ="";
-            java.lang.String namespaceuri ="";
-            try {
-                
-                while (!reader.isStartElement() && !reader.isEndElement())
-                    reader.next();
-
-                
-                if (reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance","type")!=null){
-                  java.lang.String fullTypeName = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance",
-                        "type");
-                  if (fullTypeName!=null){
-                    java.lang.String nsPrefix = null;
-                    if (fullTypeName.indexOf(":") > -1){
-                        nsPrefix = fullTypeName.substring(0,fullTypeName.indexOf(":"));
-                    }
-                    nsPrefix = nsPrefix==null?"":nsPrefix;
-
-                    java.lang.String type = fullTypeName.substring(fullTypeName.indexOf(":")+1);
-                    
-                            if (!"Name".equals(type)){
-                                //find namespace for the prefix
-                                java.lang.String nsUri = reader.getNamespaceContext().getNamespaceURI(nsPrefix);
-                                return (Name)org.apache.axis2.databinding.types.soapencoding.ExtensionMapper.getTypeObject(
-                                     nsUri,type,reader);
-                              }
-                        
-
-                  }
-                
-
-                }
-
-                
-
-                
-                // Note all attributes that were handled. Used to differ normal attributes
-                // from anyAttributes.
-                java.util.Vector handledAttributes = new java.util.Vector();
-                
-
-                    
-                while(!reader.isEndElement()) {
-                    if (reader.isStartElement()  || reader.hasText()){
-                
-                                    if (reader.isStartElement()  || reader.hasText()){
-                                
-                                    java.lang.String content = reader.getElementText();
-                                    
-                                              object.setName(
-                                                    org.apache.axis2.databinding.utils.ConverterUtil.convertToName(content));
-                                            
-                              }  // End of if for expected property start element
-                                
-                             else{
-                                        // A start element we are not expecting indicates an invalid parameter was passed
-                                        throw new org.apache.axis2.databinding.ADBException("Unexpected subelement " + reader.getLocalName());
-                             }
-                          
-                             } else {
-                                reader.next();
-                             }  
-                           }  // end of while loop
-                        
-
-
-
-            } catch (javax.xml.stream.XMLStreamException e) {
-                throw new java.lang.Exception(e);
-            }
-
-            return object;
-        }
-
-        }//end of factory class
-
-        
-
-        }
-           
-          
\ No newline at end of file
diff --git a/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/NegativeInteger.java b/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/NegativeInteger.java
deleted file mode 100644
index 2e94e9c..0000000
--- a/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/NegativeInteger.java
+++ /dev/null
@@ -1,469 +0,0 @@
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/**
- * NegativeInteger.java
- *
- * This file was auto-generated from WSDL
- * by the Apache Axis2 version: SNAPSHOT  Built on : Dec 21, 2007 (04:03:30 LKT)
- */
-            
-                package org.apache.axis2.databinding.types.soapencoding;
-
-import javax.xml.stream.XMLStreamWriter;
-            
-
-            /**
-            *  NegativeInteger bean class
-            */
-        
-        public  class NegativeInteger
-        implements org.apache.axis2.databinding.ADBBean{
-        /* This type was generated from the piece of schema that had
-                name = negativeInteger
-                Namespace URI = http://schemas.xmlsoap.org/soap/encoding/
-                Namespace Prefix = ns1
-                */
-            
-
-        private static java.lang.String generatePrefix(java.lang.String namespace) {
-            if(namespace.equals("http://schemas.xmlsoap.org/soap/encoding/")){
-                return "SOAP-ENC";
-            }
-            return org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-        }
-
-        
-
-                        /**
-                        * field for NegativeInteger
-                        */
-
-                        
-                                    protected org.apache.axis2.databinding.types.NegativeInteger localNegativeInteger ;
-                                
-
-                           /**
-                           * Auto generated getter method
-                           * @return org.apache.axis2.databinding.types.NegativeInteger
-                           */
-                           public  org.apache.axis2.databinding.types.NegativeInteger getNegativeInteger(){
-                               return localNegativeInteger;
-                           }
-
-                           
-                        
-                            /**
-                               * Auto generated setter method
-                               * @param param NegativeInteger
-                               */
-                               public void setNegativeInteger(org.apache.axis2.databinding.types.NegativeInteger param){
-                            
-                                            this.localNegativeInteger=param;
-                                    
-
-                               }
-                            
-
-                            public java.lang.String toString(){
-                                
-                                        return localNegativeInteger.toString();
-                                    
-                            }
-                        
-
-     /**
-     * isReaderMTOMAware
-     * @return true if the reader supports MTOM
-     */
-   public static boolean isReaderMTOMAware(javax.xml.stream.XMLStreamReader reader) {
-        boolean isReaderMTOMAware = false;
-        
-        try{
-          isReaderMTOMAware = java.lang.Boolean.TRUE.equals(reader.getProperty(org.apache.axiom.om.OMConstants.IS_DATA_HANDLERS_AWARE));
-        }catch(java.lang.IllegalArgumentException e){
-          isReaderMTOMAware = false;
-        }
-        return isReaderMTOMAware;
-   }
-     
-     
-        /**
-        *
-        * @param parentQName
-        * @param factory
-        * @return org.apache.axiom.om.OMElement
-        */
-       public org.apache.axiom.om.OMElement getOMElement (
-               final javax.xml.namespace.QName parentQName,
-               final org.apache.axiom.om.OMFactory factory) throws org.apache.axis2.databinding.ADBException{
-
-
-        
-               org.apache.axiom.om.OMDataSource dataSource =
-                       new org.apache.axis2.databinding.ADBDataSource(this,parentQName);
-               return factory.createOMElement(dataSource,parentQName);
-            
-       }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                                       XMLStreamWriter xmlWriter)
-                                throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-                           serialize(parentQName,xmlWriter,false);
-         }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                               XMLStreamWriter xmlWriter,
-                               boolean serializeType)
-            throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-            
-                
-
-
-                java.lang.String prefix = null;
-                java.lang.String namespace = null;
-                
-
-                    prefix = parentQName.getPrefix();
-                    namespace = parentQName.getNamespaceURI();
-
-                    if ((namespace != null) && (namespace.trim().length() > 0)) {
-                        java.lang.String writerPrefix = xmlWriter.getPrefix(namespace);
-                        if (writerPrefix != null) {
-                            xmlWriter.writeStartElement(namespace, parentQName.getLocalPart());
-                        } else {
-                            if (prefix == null) {
-                                prefix = generatePrefix(namespace);
-                            }
-
-                            xmlWriter.writeStartElement(prefix, parentQName.getLocalPart(), namespace);
-                            xmlWriter.writeNamespace(prefix, namespace);
-                            xmlWriter.setPrefix(prefix, namespace);
-                        }
-                    } else {
-                        xmlWriter.writeStartElement(parentQName.getLocalPart());
-                    }
-                
-                  if (serializeType){
-               
-                   java.lang.String namespacePrefix = registerPrefix(xmlWriter,"http://schemas.xmlsoap.org/soap/encoding/");
-                   if ((namespacePrefix != null) && (namespacePrefix.trim().length() > 0)){
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           namespacePrefix+":negativeInteger",
-                           xmlWriter);
-                   } else {
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           "negativeInteger",
-                           xmlWriter);
-                   }
-
-               
-                   }
-               
-
-                                          if (localNegativeInteger==null){
-                                              // write the nil attribute
-                                              
-                                                     throw new org.apache.axis2.databinding.ADBException("negativeInteger cannot be null!!");
-                                                  
-                                          }else{
-
-                                        
-                                                   xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(localNegativeInteger));
-                                            
-                                          }
-                                    
-                    xmlWriter.writeEndElement();
-               
-
-        }
-
-         /**
-          * Util method to write an attribute with the ns prefix
-          */
-          private void writeAttribute(java.lang.String prefix,java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-              if (xmlWriter.getPrefix(namespace) == null) {
-                       xmlWriter.writeNamespace(prefix, namespace);
-                       xmlWriter.setPrefix(prefix, namespace);
-
-              }
-
-              xmlWriter.writeAttribute(namespace,attName,attValue);
-
-         }
-
-        /**
-          * Util method to write an attribute without the ns prefix
-          */
-          private void writeAttribute(java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-                if (namespace.equals(""))
-              {
-                  xmlWriter.writeAttribute(attName,attValue);
-              }
-              else
-              {
-                  registerPrefix(xmlWriter, namespace);
-                  xmlWriter.writeAttribute(namespace,attName,attValue);
-              }
-          }
-
-
-           /**
-             * Util method to write an attribute without the ns prefix
-             */
-            private void writeQNameAttribute(java.lang.String namespace, java.lang.String attName,
-                                             javax.xml.namespace.QName qname, javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-                java.lang.String attributeNamespace = qname.getNamespaceURI();
-                java.lang.String attributePrefix = xmlWriter.getPrefix(attributeNamespace);
-                if (attributePrefix == null) {
-                    attributePrefix = registerPrefix(xmlWriter, attributeNamespace);
-                }
-                java.lang.String attributeValue;
-                if (attributePrefix.trim().length() > 0) {
-                    attributeValue = attributePrefix + ":" + qname.getLocalPart();
-                } else {
-                    attributeValue = qname.getLocalPart();
-                }
-
-                if (namespace.equals("")) {
-                    xmlWriter.writeAttribute(attName, attributeValue);
-                } else {
-                    registerPrefix(xmlWriter, namespace);
-                    xmlWriter.writeAttribute(namespace, attName, attributeValue);
-                }
-            }
-        /**
-         *  method to handle Qnames
-         */
-
-        private void writeQName(javax.xml.namespace.QName qname,
-                                javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-            java.lang.String namespaceURI = qname.getNamespaceURI();
-            if (namespaceURI != null) {
-                java.lang.String prefix = xmlWriter.getPrefix(namespaceURI);
-                if (prefix == null) {
-                    prefix = generatePrefix(namespaceURI);
-                    xmlWriter.writeNamespace(prefix, namespaceURI);
-                    xmlWriter.setPrefix(prefix,namespaceURI);
-                }
-
-                if (prefix.trim().length() > 0){
-                    xmlWriter.writeCharacters(prefix + ":" + org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                } else {
-                    // i.e this is the default namespace
-                    xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                }
-
-            } else {
-                xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-            }
-        }
-
-        private void writeQNames(javax.xml.namespace.QName[] qnames,
-                                 javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-            if (qnames != null) {
-                // we have to store this data until last moment since it is not possible to write any
-                // namespace data after writing the charactor data
-                java.lang.StringBuffer stringToWrite = new java.lang.StringBuffer();
-                java.lang.String namespaceURI = null;
-                java.lang.String prefix = null;
-
-                for (int i = 0; i < qnames.length; i++) {
-                    if (i > 0) {
-                        stringToWrite.append(" ");
-                    }
-                    namespaceURI = qnames[i].getNamespaceURI();
-                    if (namespaceURI != null) {
-                        prefix = xmlWriter.getPrefix(namespaceURI);
-                        if ((prefix == null) || (prefix.length() == 0)) {
-                            prefix = generatePrefix(namespaceURI);
-                            xmlWriter.writeNamespace(prefix, namespaceURI);
-                            xmlWriter.setPrefix(prefix,namespaceURI);
-                        }
-
-                        if (prefix.trim().length() > 0){
-                            stringToWrite.append(prefix).append(":").append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        } else {
-                            stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        }
-                    } else {
-                        stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                    }
-                }
-                xmlWriter.writeCharacters(stringToWrite.toString());
-            }
-
-        }
-
-
-         /**
-         * Register a namespace prefix
-         */
-         private java.lang.String registerPrefix(javax.xml.stream.XMLStreamWriter xmlWriter, java.lang.String namespace) throws javax.xml.stream.XMLStreamException {
-                java.lang.String prefix = xmlWriter.getPrefix(namespace);
-
-                if (prefix == null) {
-                    prefix = generatePrefix(namespace);
-                    javax.xml.namespace.NamespaceContext nsContext = xmlWriter.getNamespaceContext();
-                    while (true) {
-                        java.lang.String uri = nsContext.getNamespaceURI(prefix);
-                        if (uri == null || uri.length() == 0) {
-                            break;
-                        }
-                        prefix = org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-                    }
-                    xmlWriter.writeNamespace(prefix, namespace);
-                    xmlWriter.setPrefix(prefix, namespace);
-                }
-
-                return prefix;
-            }
-
-
-  
-     /**
-      *  Factory class that keeps the parse method
-      */
-    public static class Factory{
-
-        
-        
-                public static NegativeInteger fromString(java.lang.String value,
-                                                    java.lang.String namespaceURI){
-                    NegativeInteger returnValue = new  NegativeInteger();
-                    
-                            returnValue.setNegativeInteger(
-                                org.apache.axis2.databinding.utils.ConverterUtil.convertToNegativeInteger(value));
-                        
-
-                    return returnValue;
-                }
-
-                public static NegativeInteger fromString(javax.xml.stream.XMLStreamReader xmlStreamReader,
-                                                                    java.lang.String content) {
-                    if (content.indexOf(":") > -1){
-                        java.lang.String prefix = content.substring(0,content.indexOf(":"));
-                        java.lang.String namespaceUri = xmlStreamReader.getNamespaceContext().getNamespaceURI(prefix);
-                        return NegativeInteger.Factory.fromString(content,namespaceUri);
-                    } else {
-                       return NegativeInteger.Factory.fromString(content,"");
-                    }
-                }
-
-            
-
-        /**
-        * static method to create the object
-        * Precondition:  If this object is an element, the current or next start element starts this object and any intervening reader events are ignorable
-        *                If this object is not an element, it is a complex type and the reader is at the event just after the outer start element
-        * Postcondition: If this object is an element, the reader is positioned at its end element
-        *                If this object is a complex type, the reader is positioned at the end element of its outer element
-        */
-        public static NegativeInteger parse(javax.xml.stream.XMLStreamReader reader) throws java.lang.Exception{
-            NegativeInteger object =
-                new NegativeInteger();
-
-            int event;
-            java.lang.String nillableValue = null;
-            java.lang.String prefix ="";
-            java.lang.String namespaceuri ="";
-            try {
-                
-                while (!reader.isStartElement() && !reader.isEndElement())
-                    reader.next();
-
-                
-                if (reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance","type")!=null){
-                  java.lang.String fullTypeName = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance",
-                        "type");
-                  if (fullTypeName!=null){
-                    java.lang.String nsPrefix = null;
-                    if (fullTypeName.indexOf(":") > -1){
-                        nsPrefix = fullTypeName.substring(0,fullTypeName.indexOf(":"));
-                    }
-                    nsPrefix = nsPrefix==null?"":nsPrefix;
-
-                    java.lang.String type = fullTypeName.substring(fullTypeName.indexOf(":")+1);
-                    
-                            if (!"negativeInteger".equals(type)){
-                                //find namespace for the prefix
-                                java.lang.String nsUri = reader.getNamespaceContext().getNamespaceURI(nsPrefix);
-                                return (NegativeInteger)org.apache.axis2.databinding.types.soapencoding.ExtensionMapper.getTypeObject(
-                                     nsUri,type,reader);
-                              }
-                        
-
-                  }
-                
-
-                }
-
-                
-
-                
-                // Note all attributes that were handled. Used to differ normal attributes
-                // from anyAttributes.
-                java.util.Vector handledAttributes = new java.util.Vector();
-                
-
-                    
-                while(!reader.isEndElement()) {
-                    if (reader.isStartElement()  || reader.hasText()){
-                
-                                    if (reader.isStartElement()  || reader.hasText()){
-                                
-                                    java.lang.String content = reader.getElementText();
-                                    
-                                              object.setNegativeInteger(
-                                                    org.apache.axis2.databinding.utils.ConverterUtil.convertToNegativeInteger(content));
-                                            
-                              }  // End of if for expected property start element
-                                
-                             else{
-                                        // A start element we are not expecting indicates an invalid parameter was passed
-                                        throw new org.apache.axis2.databinding.ADBException("Unexpected subelement " + reader.getLocalName());
-                             }
-                          
-                             } else {
-                                reader.next();
-                             }  
-                           }  // end of while loop
-                        
-
-
-
-            } catch (javax.xml.stream.XMLStreamException e) {
-                throw new java.lang.Exception(e);
-            }
-
-            return object;
-        }
-
-        }//end of factory class
-
-        
-
-        }
-           
-          
\ No newline at end of file
diff --git a/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/NonNegativeInteger.java b/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/NonNegativeInteger.java
deleted file mode 100644
index 14e4d3e..0000000
--- a/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/NonNegativeInteger.java
+++ /dev/null
@@ -1,469 +0,0 @@
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/**
- * NonNegativeInteger.java
- *
- * This file was auto-generated from WSDL
- * by the Apache Axis2 version: SNAPSHOT  Built on : Dec 21, 2007 (04:03:30 LKT)
- */
-            
-                package org.apache.axis2.databinding.types.soapencoding;
-
-import javax.xml.stream.XMLStreamWriter;
-            
-
-            /**
-            *  NonNegativeInteger bean class
-            */
-        
-        public  class NonNegativeInteger
-        implements org.apache.axis2.databinding.ADBBean{
-        /* This type was generated from the piece of schema that had
-                name = nonNegativeInteger
-                Namespace URI = http://schemas.xmlsoap.org/soap/encoding/
-                Namespace Prefix = ns1
-                */
-            
-
-        private static java.lang.String generatePrefix(java.lang.String namespace) {
-            if(namespace.equals("http://schemas.xmlsoap.org/soap/encoding/")){
-                return "SOAP-ENC";
-            }
-            return org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-        }
-
-        
-
-                        /**
-                        * field for NonNegativeInteger
-                        */
-
-                        
-                                    protected org.apache.axis2.databinding.types.NonNegativeInteger localNonNegativeInteger ;
-                                
-
-                           /**
-                           * Auto generated getter method
-                           * @return org.apache.axis2.databinding.types.NonNegativeInteger
-                           */
-                           public  org.apache.axis2.databinding.types.NonNegativeInteger getNonNegativeInteger(){
-                               return localNonNegativeInteger;
-                           }
-
-                           
-                        
-                            /**
-                               * Auto generated setter method
-                               * @param param NonNegativeInteger
-                               */
-                               public void setNonNegativeInteger(org.apache.axis2.databinding.types.NonNegativeInteger param){
-                            
-                                            this.localNonNegativeInteger=param;
-                                    
-
-                               }
-                            
-
-                            public java.lang.String toString(){
-                                
-                                        return localNonNegativeInteger.toString();
-                                    
-                            }
-                        
-
-     /**
-     * isReaderMTOMAware
-     * @return true if the reader supports MTOM
-     */
-   public static boolean isReaderMTOMAware(javax.xml.stream.XMLStreamReader reader) {
-        boolean isReaderMTOMAware = false;
-        
-        try{
-          isReaderMTOMAware = java.lang.Boolean.TRUE.equals(reader.getProperty(org.apache.axiom.om.OMConstants.IS_DATA_HANDLERS_AWARE));
-        }catch(java.lang.IllegalArgumentException e){
-          isReaderMTOMAware = false;
-        }
-        return isReaderMTOMAware;
-   }
-     
-     
-        /**
-        *
-        * @param parentQName
-        * @param factory
-        * @return org.apache.axiom.om.OMElement
-        */
-       public org.apache.axiom.om.OMElement getOMElement (
-               final javax.xml.namespace.QName parentQName,
-               final org.apache.axiom.om.OMFactory factory) throws org.apache.axis2.databinding.ADBException{
-
-
-        
-               org.apache.axiom.om.OMDataSource dataSource =
-                       new org.apache.axis2.databinding.ADBDataSource(this,parentQName);
-               return factory.createOMElement(dataSource,parentQName);
-            
-       }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                                       XMLStreamWriter xmlWriter)
-                                throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-                           serialize(parentQName,xmlWriter,false);
-         }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                               XMLStreamWriter xmlWriter,
-                               boolean serializeType)
-            throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-            
-                
-
-
-                java.lang.String prefix = null;
-                java.lang.String namespace = null;
-                
-
-                    prefix = parentQName.getPrefix();
-                    namespace = parentQName.getNamespaceURI();
-
-                    if ((namespace != null) && (namespace.trim().length() > 0)) {
-                        java.lang.String writerPrefix = xmlWriter.getPrefix(namespace);
-                        if (writerPrefix != null) {
-                            xmlWriter.writeStartElement(namespace, parentQName.getLocalPart());
-                        } else {
-                            if (prefix == null) {
-                                prefix = generatePrefix(namespace);
-                            }
-
-                            xmlWriter.writeStartElement(prefix, parentQName.getLocalPart(), namespace);
-                            xmlWriter.writeNamespace(prefix, namespace);
-                            xmlWriter.setPrefix(prefix, namespace);
-                        }
-                    } else {
-                        xmlWriter.writeStartElement(parentQName.getLocalPart());
-                    }
-                
-                  if (serializeType){
-               
-                   java.lang.String namespacePrefix = registerPrefix(xmlWriter,"http://schemas.xmlsoap.org/soap/encoding/");
-                   if ((namespacePrefix != null) && (namespacePrefix.trim().length() > 0)){
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           namespacePrefix+":nonNegativeInteger",
-                           xmlWriter);
-                   } else {
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           "nonNegativeInteger",
-                           xmlWriter);
-                   }
-
-               
-                   }
-               
-
-                                          if (localNonNegativeInteger==null){
-                                              // write the nil attribute
-                                              
-                                                     throw new org.apache.axis2.databinding.ADBException("nonNegativeInteger cannot be null!!");
-                                                  
-                                          }else{
-
-                                        
-                                                   xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(localNonNegativeInteger));
-                                            
-                                          }
-                                    
-                    xmlWriter.writeEndElement();
-               
-
-        }
-
-         /**
-          * Util method to write an attribute with the ns prefix
-          */
-          private void writeAttribute(java.lang.String prefix,java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-              if (xmlWriter.getPrefix(namespace) == null) {
-                       xmlWriter.writeNamespace(prefix, namespace);
-                       xmlWriter.setPrefix(prefix, namespace);
-
-              }
-
-              xmlWriter.writeAttribute(namespace,attName,attValue);
-
-         }
-
-        /**
-          * Util method to write an attribute without the ns prefix
-          */
-          private void writeAttribute(java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-                if (namespace.equals(""))
-              {
-                  xmlWriter.writeAttribute(attName,attValue);
-              }
-              else
-              {
-                  registerPrefix(xmlWriter, namespace);
-                  xmlWriter.writeAttribute(namespace,attName,attValue);
-              }
-          }
-
-
-           /**
-             * Util method to write an attribute without the ns prefix
-             */
-            private void writeQNameAttribute(java.lang.String namespace, java.lang.String attName,
-                                             javax.xml.namespace.QName qname, javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-                java.lang.String attributeNamespace = qname.getNamespaceURI();
-                java.lang.String attributePrefix = xmlWriter.getPrefix(attributeNamespace);
-                if (attributePrefix == null) {
-                    attributePrefix = registerPrefix(xmlWriter, attributeNamespace);
-                }
-                java.lang.String attributeValue;
-                if (attributePrefix.trim().length() > 0) {
-                    attributeValue = attributePrefix + ":" + qname.getLocalPart();
-                } else {
-                    attributeValue = qname.getLocalPart();
-                }
-
-                if (namespace.equals("")) {
-                    xmlWriter.writeAttribute(attName, attributeValue);
-                } else {
-                    registerPrefix(xmlWriter, namespace);
-                    xmlWriter.writeAttribute(namespace, attName, attributeValue);
-                }
-            }
-        /**
-         *  method to handle Qnames
-         */
-
-        private void writeQName(javax.xml.namespace.QName qname,
-                                javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-            java.lang.String namespaceURI = qname.getNamespaceURI();
-            if (namespaceURI != null) {
-                java.lang.String prefix = xmlWriter.getPrefix(namespaceURI);
-                if (prefix == null) {
-                    prefix = generatePrefix(namespaceURI);
-                    xmlWriter.writeNamespace(prefix, namespaceURI);
-                    xmlWriter.setPrefix(prefix,namespaceURI);
-                }
-
-                if (prefix.trim().length() > 0){
-                    xmlWriter.writeCharacters(prefix + ":" + org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                } else {
-                    // i.e this is the default namespace
-                    xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                }
-
-            } else {
-                xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-            }
-        }
-
-        private void writeQNames(javax.xml.namespace.QName[] qnames,
-                                 javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-            if (qnames != null) {
-                // we have to store this data until last moment since it is not possible to write any
-                // namespace data after writing the charactor data
-                java.lang.StringBuffer stringToWrite = new java.lang.StringBuffer();
-                java.lang.String namespaceURI = null;
-                java.lang.String prefix = null;
-
-                for (int i = 0; i < qnames.length; i++) {
-                    if (i > 0) {
-                        stringToWrite.append(" ");
-                    }
-                    namespaceURI = qnames[i].getNamespaceURI();
-                    if (namespaceURI != null) {
-                        prefix = xmlWriter.getPrefix(namespaceURI);
-                        if ((prefix == null) || (prefix.length() == 0)) {
-                            prefix = generatePrefix(namespaceURI);
-                            xmlWriter.writeNamespace(prefix, namespaceURI);
-                            xmlWriter.setPrefix(prefix,namespaceURI);
-                        }
-
-                        if (prefix.trim().length() > 0){
-                            stringToWrite.append(prefix).append(":").append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        } else {
-                            stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        }
-                    } else {
-                        stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                    }
-                }
-                xmlWriter.writeCharacters(stringToWrite.toString());
-            }
-
-        }
-
-
-         /**
-         * Register a namespace prefix
-         */
-         private java.lang.String registerPrefix(javax.xml.stream.XMLStreamWriter xmlWriter, java.lang.String namespace) throws javax.xml.stream.XMLStreamException {
-                java.lang.String prefix = xmlWriter.getPrefix(namespace);
-
-                if (prefix == null) {
-                    prefix = generatePrefix(namespace);
-                    javax.xml.namespace.NamespaceContext nsContext = xmlWriter.getNamespaceContext();
-                    while (true) {
-                        java.lang.String uri = nsContext.getNamespaceURI(prefix);
-                        if (uri == null || uri.length() == 0) {
-                            break;
-                        }
-                        prefix = org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-                    }
-                    xmlWriter.writeNamespace(prefix, namespace);
-                    xmlWriter.setPrefix(prefix, namespace);
-                }
-
-                return prefix;
-            }
-
-
-  
-     /**
-      *  Factory class that keeps the parse method
-      */
-    public static class Factory{
-
-        
-        
-                public static NonNegativeInteger fromString(java.lang.String value,
-                                                    java.lang.String namespaceURI){
-                    NonNegativeInteger returnValue = new  NonNegativeInteger();
-                    
-                            returnValue.setNonNegativeInteger(
-                                org.apache.axis2.databinding.utils.ConverterUtil.convertToNonNegativeInteger(value));
-                        
-
-                    return returnValue;
-                }
-
-                public static NonNegativeInteger fromString(javax.xml.stream.XMLStreamReader xmlStreamReader,
-                                                                    java.lang.String content) {
-                    if (content.indexOf(":") > -1){
-                        java.lang.String prefix = content.substring(0,content.indexOf(":"));
-                        java.lang.String namespaceUri = xmlStreamReader.getNamespaceContext().getNamespaceURI(prefix);
-                        return NonNegativeInteger.Factory.fromString(content,namespaceUri);
-                    } else {
-                       return NonNegativeInteger.Factory.fromString(content,"");
-                    }
-                }
-
-            
-
-        /**
-        * static method to create the object
-        * Precondition:  If this object is an element, the current or next start element starts this object and any intervening reader events are ignorable
-        *                If this object is not an element, it is a complex type and the reader is at the event just after the outer start element
-        * Postcondition: If this object is an element, the reader is positioned at its end element
-        *                If this object is a complex type, the reader is positioned at the end element of its outer element
-        */
-        public static NonNegativeInteger parse(javax.xml.stream.XMLStreamReader reader) throws java.lang.Exception{
-            NonNegativeInteger object =
-                new NonNegativeInteger();
-
-            int event;
-            java.lang.String nillableValue = null;
-            java.lang.String prefix ="";
-            java.lang.String namespaceuri ="";
-            try {
-                
-                while (!reader.isStartElement() && !reader.isEndElement())
-                    reader.next();
-
-                
-                if (reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance","type")!=null){
-                  java.lang.String fullTypeName = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance",
-                        "type");
-                  if (fullTypeName!=null){
-                    java.lang.String nsPrefix = null;
-                    if (fullTypeName.indexOf(":") > -1){
-                        nsPrefix = fullTypeName.substring(0,fullTypeName.indexOf(":"));
-                    }
-                    nsPrefix = nsPrefix==null?"":nsPrefix;
-
-                    java.lang.String type = fullTypeName.substring(fullTypeName.indexOf(":")+1);
-                    
-                            if (!"nonNegativeInteger".equals(type)){
-                                //find namespace for the prefix
-                                java.lang.String nsUri = reader.getNamespaceContext().getNamespaceURI(nsPrefix);
-                                return (NonNegativeInteger)org.apache.axis2.databinding.types.soapencoding.ExtensionMapper.getTypeObject(
-                                     nsUri,type,reader);
-                              }
-                        
-
-                  }
-                
-
-                }
-
-                
-
-                
-                // Note all attributes that were handled. Used to differ normal attributes
-                // from anyAttributes.
-                java.util.Vector handledAttributes = new java.util.Vector();
-                
-
-                    
-                while(!reader.isEndElement()) {
-                    if (reader.isStartElement()  || reader.hasText()){
-                
-                                    if (reader.isStartElement()  || reader.hasText()){
-                                
-                                    java.lang.String content = reader.getElementText();
-                                    
-                                              object.setNonNegativeInteger(
-                                                    org.apache.axis2.databinding.utils.ConverterUtil.convertToNonNegativeInteger(content));
-                                            
-                              }  // End of if for expected property start element
-                                
-                             else{
-                                        // A start element we are not expecting indicates an invalid parameter was passed
-                                        throw new org.apache.axis2.databinding.ADBException("Unexpected subelement " + reader.getLocalName());
-                             }
-                          
-                             } else {
-                                reader.next();
-                             }  
-                           }  // end of while loop
-                        
-
-
-
-            } catch (javax.xml.stream.XMLStreamException e) {
-                throw new java.lang.Exception(e);
-            }
-
-            return object;
-        }
-
-        }//end of factory class
-
-        
-
-        }
-           
-          
\ No newline at end of file
diff --git a/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/NonPositiveInteger.java b/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/NonPositiveInteger.java
deleted file mode 100644
index 1ed67b9..0000000
--- a/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/NonPositiveInteger.java
+++ /dev/null
@@ -1,469 +0,0 @@
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/**
- * NonPositiveInteger.java
- *
- * This file was auto-generated from WSDL
- * by the Apache Axis2 version: SNAPSHOT  Built on : Dec 21, 2007 (04:03:30 LKT)
- */
-            
-                package org.apache.axis2.databinding.types.soapencoding;
-
-import javax.xml.stream.XMLStreamWriter;
-            
-
-            /**
-            *  NonPositiveInteger bean class
-            */
-        
-        public  class NonPositiveInteger
-        implements org.apache.axis2.databinding.ADBBean{
-        /* This type was generated from the piece of schema that had
-                name = nonPositiveInteger
-                Namespace URI = http://schemas.xmlsoap.org/soap/encoding/
-                Namespace Prefix = ns1
-                */
-            
-
-        private static java.lang.String generatePrefix(java.lang.String namespace) {
-            if(namespace.equals("http://schemas.xmlsoap.org/soap/encoding/")){
-                return "SOAP-ENC";
-            }
-            return org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-        }
-
-        
-
-                        /**
-                        * field for NonPositiveInteger
-                        */
-
-                        
-                                    protected org.apache.axis2.databinding.types.NonPositiveInteger localNonPositiveInteger ;
-                                
-
-                           /**
-                           * Auto generated getter method
-                           * @return org.apache.axis2.databinding.types.NonPositiveInteger
-                           */
-                           public  org.apache.axis2.databinding.types.NonPositiveInteger getNonPositiveInteger(){
-                               return localNonPositiveInteger;
-                           }
-
-                           
-                        
-                            /**
-                               * Auto generated setter method
-                               * @param param NonPositiveInteger
-                               */
-                               public void setNonPositiveInteger(org.apache.axis2.databinding.types.NonPositiveInteger param){
-                            
-                                            this.localNonPositiveInteger=param;
-                                    
-
-                               }
-                            
-
-                            public java.lang.String toString(){
-                                
-                                        return localNonPositiveInteger.toString();
-                                    
-                            }
-                        
-
-     /**
-     * isReaderMTOMAware
-     * @return true if the reader supports MTOM
-     */
-   public static boolean isReaderMTOMAware(javax.xml.stream.XMLStreamReader reader) {
-        boolean isReaderMTOMAware = false;
-        
-        try{
-          isReaderMTOMAware = java.lang.Boolean.TRUE.equals(reader.getProperty(org.apache.axiom.om.OMConstants.IS_DATA_HANDLERS_AWARE));
-        }catch(java.lang.IllegalArgumentException e){
-          isReaderMTOMAware = false;
-        }
-        return isReaderMTOMAware;
-   }
-     
-     
-        /**
-        *
-        * @param parentQName
-        * @param factory
-        * @return org.apache.axiom.om.OMElement
-        */
-       public org.apache.axiom.om.OMElement getOMElement (
-               final javax.xml.namespace.QName parentQName,
-               final org.apache.axiom.om.OMFactory factory) throws org.apache.axis2.databinding.ADBException{
-
-
-        
-               org.apache.axiom.om.OMDataSource dataSource =
-                       new org.apache.axis2.databinding.ADBDataSource(this,parentQName);
-               return factory.createOMElement(dataSource,parentQName);
-            
-       }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                                       XMLStreamWriter xmlWriter)
-                                throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-                           serialize(parentQName,xmlWriter,false);
-         }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                               XMLStreamWriter xmlWriter,
-                               boolean serializeType)
-            throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-            
-                
-
-
-                java.lang.String prefix = null;
-                java.lang.String namespace = null;
-                
-
-                    prefix = parentQName.getPrefix();
-                    namespace = parentQName.getNamespaceURI();
-
-                    if ((namespace != null) && (namespace.trim().length() > 0)) {
-                        java.lang.String writerPrefix = xmlWriter.getPrefix(namespace);
-                        if (writerPrefix != null) {
-                            xmlWriter.writeStartElement(namespace, parentQName.getLocalPart());
-                        } else {
-                            if (prefix == null) {
-                                prefix = generatePrefix(namespace);
-                            }
-
-                            xmlWriter.writeStartElement(prefix, parentQName.getLocalPart(), namespace);
-                            xmlWriter.writeNamespace(prefix, namespace);
-                            xmlWriter.setPrefix(prefix, namespace);
-                        }
-                    } else {
-                        xmlWriter.writeStartElement(parentQName.getLocalPart());
-                    }
-                
-                  if (serializeType){
-               
-                   java.lang.String namespacePrefix = registerPrefix(xmlWriter,"http://schemas.xmlsoap.org/soap/encoding/");
-                   if ((namespacePrefix != null) && (namespacePrefix.trim().length() > 0)){
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           namespacePrefix+":nonPositiveInteger",
-                           xmlWriter);
-                   } else {
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           "nonPositiveInteger",
-                           xmlWriter);
-                   }
-
-               
-                   }
-               
-
-                                          if (localNonPositiveInteger==null){
-                                              // write the nil attribute
-                                              
-                                                     throw new org.apache.axis2.databinding.ADBException("nonPositiveInteger cannot be null!!");
-                                                  
-                                          }else{
-
-                                        
-                                                   xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(localNonPositiveInteger));
-                                            
-                                          }
-                                    
-                    xmlWriter.writeEndElement();
-               
-
-        }
-
-         /**
-          * Util method to write an attribute with the ns prefix
-          */
-          private void writeAttribute(java.lang.String prefix,java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-              if (xmlWriter.getPrefix(namespace) == null) {
-                       xmlWriter.writeNamespace(prefix, namespace);
-                       xmlWriter.setPrefix(prefix, namespace);
-
-              }
-
-              xmlWriter.writeAttribute(namespace,attName,attValue);
-
-         }
-
-        /**
-          * Util method to write an attribute without the ns prefix
-          */
-          private void writeAttribute(java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-                if (namespace.equals(""))
-              {
-                  xmlWriter.writeAttribute(attName,attValue);
-              }
-              else
-              {
-                  registerPrefix(xmlWriter, namespace);
-                  xmlWriter.writeAttribute(namespace,attName,attValue);
-              }
-          }
-
-
-           /**
-             * Util method to write an attribute without the ns prefix
-             */
-            private void writeQNameAttribute(java.lang.String namespace, java.lang.String attName,
-                                             javax.xml.namespace.QName qname, javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-                java.lang.String attributeNamespace = qname.getNamespaceURI();
-                java.lang.String attributePrefix = xmlWriter.getPrefix(attributeNamespace);
-                if (attributePrefix == null) {
-                    attributePrefix = registerPrefix(xmlWriter, attributeNamespace);
-                }
-                java.lang.String attributeValue;
-                if (attributePrefix.trim().length() > 0) {
-                    attributeValue = attributePrefix + ":" + qname.getLocalPart();
-                } else {
-                    attributeValue = qname.getLocalPart();
-                }
-
-                if (namespace.equals("")) {
-                    xmlWriter.writeAttribute(attName, attributeValue);
-                } else {
-                    registerPrefix(xmlWriter, namespace);
-                    xmlWriter.writeAttribute(namespace, attName, attributeValue);
-                }
-            }
-        /**
-         *  method to handle Qnames
-         */
-
-        private void writeQName(javax.xml.namespace.QName qname,
-                                javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-            java.lang.String namespaceURI = qname.getNamespaceURI();
-            if (namespaceURI != null) {
-                java.lang.String prefix = xmlWriter.getPrefix(namespaceURI);
-                if (prefix == null) {
-                    prefix = generatePrefix(namespaceURI);
-                    xmlWriter.writeNamespace(prefix, namespaceURI);
-                    xmlWriter.setPrefix(prefix,namespaceURI);
-                }
-
-                if (prefix.trim().length() > 0){
-                    xmlWriter.writeCharacters(prefix + ":" + org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                } else {
-                    // i.e this is the default namespace
-                    xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                }
-
-            } else {
-                xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-            }
-        }
-
-        private void writeQNames(javax.xml.namespace.QName[] qnames,
-                                 javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-            if (qnames != null) {
-                // we have to store this data until last moment since it is not possible to write any
-                // namespace data after writing the charactor data
-                java.lang.StringBuffer stringToWrite = new java.lang.StringBuffer();
-                java.lang.String namespaceURI = null;
-                java.lang.String prefix = null;
-
-                for (int i = 0; i < qnames.length; i++) {
-                    if (i > 0) {
-                        stringToWrite.append(" ");
-                    }
-                    namespaceURI = qnames[i].getNamespaceURI();
-                    if (namespaceURI != null) {
-                        prefix = xmlWriter.getPrefix(namespaceURI);
-                        if ((prefix == null) || (prefix.length() == 0)) {
-                            prefix = generatePrefix(namespaceURI);
-                            xmlWriter.writeNamespace(prefix, namespaceURI);
-                            xmlWriter.setPrefix(prefix,namespaceURI);
-                        }
-
-                        if (prefix.trim().length() > 0){
-                            stringToWrite.append(prefix).append(":").append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        } else {
-                            stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        }
-                    } else {
-                        stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                    }
-                }
-                xmlWriter.writeCharacters(stringToWrite.toString());
-            }
-
-        }
-
-
-         /**
-         * Register a namespace prefix
-         */
-         private java.lang.String registerPrefix(javax.xml.stream.XMLStreamWriter xmlWriter, java.lang.String namespace) throws javax.xml.stream.XMLStreamException {
-                java.lang.String prefix = xmlWriter.getPrefix(namespace);
-
-                if (prefix == null) {
-                    prefix = generatePrefix(namespace);
-                    javax.xml.namespace.NamespaceContext nsContext = xmlWriter.getNamespaceContext();
-                    while (true) {
-                        java.lang.String uri = nsContext.getNamespaceURI(prefix);
-                        if (uri == null || uri.length() == 0) {
-                            break;
-                        }
-                        prefix = org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-                    }
-                    xmlWriter.writeNamespace(prefix, namespace);
-                    xmlWriter.setPrefix(prefix, namespace);
-                }
-
-                return prefix;
-            }
-
-
-  
-     /**
-      *  Factory class that keeps the parse method
-      */
-    public static class Factory{
-
-        
-        
-                public static NonPositiveInteger fromString(java.lang.String value,
-                                                    java.lang.String namespaceURI){
-                    NonPositiveInteger returnValue = new  NonPositiveInteger();
-                    
-                            returnValue.setNonPositiveInteger(
-                                org.apache.axis2.databinding.utils.ConverterUtil.convertToNonPositiveInteger(value));
-                        
-
-                    return returnValue;
-                }
-
-                public static NonPositiveInteger fromString(javax.xml.stream.XMLStreamReader xmlStreamReader,
-                                                                    java.lang.String content) {
-                    if (content.indexOf(":") > -1){
-                        java.lang.String prefix = content.substring(0,content.indexOf(":"));
-                        java.lang.String namespaceUri = xmlStreamReader.getNamespaceContext().getNamespaceURI(prefix);
-                        return NonPositiveInteger.Factory.fromString(content,namespaceUri);
-                    } else {
-                       return NonPositiveInteger.Factory.fromString(content,"");
-                    }
-                }
-
-            
-
-        /**
-        * static method to create the object
-        * Precondition:  If this object is an element, the current or next start element starts this object and any intervening reader events are ignorable
-        *                If this object is not an element, it is a complex type and the reader is at the event just after the outer start element
-        * Postcondition: If this object is an element, the reader is positioned at its end element
-        *                If this object is a complex type, the reader is positioned at the end element of its outer element
-        */
-        public static NonPositiveInteger parse(javax.xml.stream.XMLStreamReader reader) throws java.lang.Exception{
-            NonPositiveInteger object =
-                new NonPositiveInteger();
-
-            int event;
-            java.lang.String nillableValue = null;
-            java.lang.String prefix ="";
-            java.lang.String namespaceuri ="";
-            try {
-                
-                while (!reader.isStartElement() && !reader.isEndElement())
-                    reader.next();
-
-                
-                if (reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance","type")!=null){
-                  java.lang.String fullTypeName = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance",
-                        "type");
-                  if (fullTypeName!=null){
-                    java.lang.String nsPrefix = null;
-                    if (fullTypeName.indexOf(":") > -1){
-                        nsPrefix = fullTypeName.substring(0,fullTypeName.indexOf(":"));
-                    }
-                    nsPrefix = nsPrefix==null?"":nsPrefix;
-
-                    java.lang.String type = fullTypeName.substring(fullTypeName.indexOf(":")+1);
-                    
-                            if (!"nonPositiveInteger".equals(type)){
-                                //find namespace for the prefix
-                                java.lang.String nsUri = reader.getNamespaceContext().getNamespaceURI(nsPrefix);
-                                return (NonPositiveInteger)org.apache.axis2.databinding.types.soapencoding.ExtensionMapper.getTypeObject(
-                                     nsUri,type,reader);
-                              }
-                        
-
-                  }
-                
-
-                }
-
-                
-
-                
-                // Note all attributes that were handled. Used to differ normal attributes
-                // from anyAttributes.
-                java.util.Vector handledAttributes = new java.util.Vector();
-                
-
-                    
-                while(!reader.isEndElement()) {
-                    if (reader.isStartElement()  || reader.hasText()){
-                
-                                    if (reader.isStartElement()  || reader.hasText()){
-                                
-                                    java.lang.String content = reader.getElementText();
-                                    
-                                              object.setNonPositiveInteger(
-                                                    org.apache.axis2.databinding.utils.ConverterUtil.convertToNonPositiveInteger(content));
-                                            
-                              }  // End of if for expected property start element
-                                
-                             else{
-                                        // A start element we are not expecting indicates an invalid parameter was passed
-                                        throw new org.apache.axis2.databinding.ADBException("Unexpected subelement " + reader.getLocalName());
-                             }
-                          
-                             } else {
-                                reader.next();
-                             }  
-                           }  // end of while loop
-                        
-
-
-
-            } catch (javax.xml.stream.XMLStreamException e) {
-                throw new java.lang.Exception(e);
-            }
-
-            return object;
-        }
-
-        }//end of factory class
-
-        
-
-        }
-           
-          
\ No newline at end of file
diff --git a/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/NormalizedString.java b/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/NormalizedString.java
deleted file mode 100644
index c8e2da9..0000000
--- a/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/NormalizedString.java
+++ /dev/null
@@ -1,469 +0,0 @@
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/**
- * NormalizedString.java
- *
- * This file was auto-generated from WSDL
- * by the Apache Axis2 version: SNAPSHOT  Built on : Dec 21, 2007 (04:03:30 LKT)
- */
-            
-                package org.apache.axis2.databinding.types.soapencoding;
-
-import javax.xml.stream.XMLStreamWriter;
-            
-
-            /**
-            *  NormalizedString bean class
-            */
-        
-        public  class NormalizedString
-        implements org.apache.axis2.databinding.ADBBean{
-        /* This type was generated from the piece of schema that had
-                name = normalizedString
-                Namespace URI = http://schemas.xmlsoap.org/soap/encoding/
-                Namespace Prefix = ns1
-                */
-            
-
-        private static java.lang.String generatePrefix(java.lang.String namespace) {
-            if(namespace.equals("http://schemas.xmlsoap.org/soap/encoding/")){
-                return "SOAP-ENC";
-            }
-            return org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-        }
-
-        
-
-                        /**
-                        * field for NormalizedString
-                        */
-
-                        
-                                    protected org.apache.axis2.databinding.types.NormalizedString localNormalizedString ;
-                                
-
-                           /**
-                           * Auto generated getter method
-                           * @return org.apache.axis2.databinding.types.NormalizedString
-                           */
-                           public  org.apache.axis2.databinding.types.NormalizedString getNormalizedString(){
-                               return localNormalizedString;
-                           }
-
-                           
-                        
-                            /**
-                               * Auto generated setter method
-                               * @param param NormalizedString
-                               */
-                               public void setNormalizedString(org.apache.axis2.databinding.types.NormalizedString param){
-                            
-                                            this.localNormalizedString=param;
-                                    
-
-                               }
-                            
-
-                            public java.lang.String toString(){
-                                
-                                        return localNormalizedString.toString();
-                                    
-                            }
-                        
-
-     /**
-     * isReaderMTOMAware
-     * @return true if the reader supports MTOM
-     */
-   public static boolean isReaderMTOMAware(javax.xml.stream.XMLStreamReader reader) {
-        boolean isReaderMTOMAware = false;
-        
-        try{
-          isReaderMTOMAware = java.lang.Boolean.TRUE.equals(reader.getProperty(org.apache.axiom.om.OMConstants.IS_DATA_HANDLERS_AWARE));
-        }catch(java.lang.IllegalArgumentException e){
-          isReaderMTOMAware = false;
-        }
-        return isReaderMTOMAware;
-   }
-     
-     
-        /**
-        *
-        * @param parentQName
-        * @param factory
-        * @return org.apache.axiom.om.OMElement
-        */
-       public org.apache.axiom.om.OMElement getOMElement (
-               final javax.xml.namespace.QName parentQName,
-               final org.apache.axiom.om.OMFactory factory) throws org.apache.axis2.databinding.ADBException{
-
-
-        
-               org.apache.axiom.om.OMDataSource dataSource =
-                       new org.apache.axis2.databinding.ADBDataSource(this,parentQName);
-               return factory.createOMElement(dataSource,parentQName);
-            
-       }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                                       XMLStreamWriter xmlWriter)
-                                throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-                           serialize(parentQName,xmlWriter,false);
-         }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                               XMLStreamWriter xmlWriter,
-                               boolean serializeType)
-            throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-            
-                
-
-
-                java.lang.String prefix = null;
-                java.lang.String namespace = null;
-                
-
-                    prefix = parentQName.getPrefix();
-                    namespace = parentQName.getNamespaceURI();
-
-                    if ((namespace != null) && (namespace.trim().length() > 0)) {
-                        java.lang.String writerPrefix = xmlWriter.getPrefix(namespace);
-                        if (writerPrefix != null) {
-                            xmlWriter.writeStartElement(namespace, parentQName.getLocalPart());
-                        } else {
-                            if (prefix == null) {
-                                prefix = generatePrefix(namespace);
-                            }
-
-                            xmlWriter.writeStartElement(prefix, parentQName.getLocalPart(), namespace);
-                            xmlWriter.writeNamespace(prefix, namespace);
-                            xmlWriter.setPrefix(prefix, namespace);
-                        }
-                    } else {
-                        xmlWriter.writeStartElement(parentQName.getLocalPart());
-                    }
-                
-                  if (serializeType){
-               
-                   java.lang.String namespacePrefix = registerPrefix(xmlWriter,"http://schemas.xmlsoap.org/soap/encoding/");
-                   if ((namespacePrefix != null) && (namespacePrefix.trim().length() > 0)){
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           namespacePrefix+":normalizedString",
-                           xmlWriter);
-                   } else {
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           "normalizedString",
-                           xmlWriter);
-                   }
-
-               
-                   }
-               
-
-                                          if (localNormalizedString==null){
-                                              // write the nil attribute
-                                              
-                                                     throw new org.apache.axis2.databinding.ADBException("normalizedString cannot be null!!");
-                                                  
-                                          }else{
-
-                                        
-                                                   xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(localNormalizedString));
-                                            
-                                          }
-                                    
-                    xmlWriter.writeEndElement();
-               
-
-        }
-
-         /**
-          * Util method to write an attribute with the ns prefix
-          */
-          private void writeAttribute(java.lang.String prefix,java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-              if (xmlWriter.getPrefix(namespace) == null) {
-                       xmlWriter.writeNamespace(prefix, namespace);
-                       xmlWriter.setPrefix(prefix, namespace);
-
-              }
-
-              xmlWriter.writeAttribute(namespace,attName,attValue);
-
-         }
-
-        /**
-          * Util method to write an attribute without the ns prefix
-          */
-          private void writeAttribute(java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-                if (namespace.equals(""))
-              {
-                  xmlWriter.writeAttribute(attName,attValue);
-              }
-              else
-              {
-                  registerPrefix(xmlWriter, namespace);
-                  xmlWriter.writeAttribute(namespace,attName,attValue);
-              }
-          }
-
-
-           /**
-             * Util method to write an attribute without the ns prefix
-             */
-            private void writeQNameAttribute(java.lang.String namespace, java.lang.String attName,
-                                             javax.xml.namespace.QName qname, javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-                java.lang.String attributeNamespace = qname.getNamespaceURI();
-                java.lang.String attributePrefix = xmlWriter.getPrefix(attributeNamespace);
-                if (attributePrefix == null) {
-                    attributePrefix = registerPrefix(xmlWriter, attributeNamespace);
-                }
-                java.lang.String attributeValue;
-                if (attributePrefix.trim().length() > 0) {
-                    attributeValue = attributePrefix + ":" + qname.getLocalPart();
-                } else {
-                    attributeValue = qname.getLocalPart();
-                }
-
-                if (namespace.equals("")) {
-                    xmlWriter.writeAttribute(attName, attributeValue);
-                } else {
-                    registerPrefix(xmlWriter, namespace);
-                    xmlWriter.writeAttribute(namespace, attName, attributeValue);
-                }
-            }
-        /**
-         *  method to handle Qnames
-         */
-
-        private void writeQName(javax.xml.namespace.QName qname,
-                                javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-            java.lang.String namespaceURI = qname.getNamespaceURI();
-            if (namespaceURI != null) {
-                java.lang.String prefix = xmlWriter.getPrefix(namespaceURI);
-                if (prefix == null) {
-                    prefix = generatePrefix(namespaceURI);
-                    xmlWriter.writeNamespace(prefix, namespaceURI);
-                    xmlWriter.setPrefix(prefix,namespaceURI);
-                }
-
-                if (prefix.trim().length() > 0){
-                    xmlWriter.writeCharacters(prefix + ":" + org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                } else {
-                    // i.e this is the default namespace
-                    xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                }
-
-            } else {
-                xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-            }
-        }
-
-        private void writeQNames(javax.xml.namespace.QName[] qnames,
-                                 javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-            if (qnames != null) {
-                // we have to store this data until last moment since it is not possible to write any
-                // namespace data after writing the charactor data
-                java.lang.StringBuffer stringToWrite = new java.lang.StringBuffer();
-                java.lang.String namespaceURI = null;
-                java.lang.String prefix = null;
-
-                for (int i = 0; i < qnames.length; i++) {
-                    if (i > 0) {
-                        stringToWrite.append(" ");
-                    }
-                    namespaceURI = qnames[i].getNamespaceURI();
-                    if (namespaceURI != null) {
-                        prefix = xmlWriter.getPrefix(namespaceURI);
-                        if ((prefix == null) || (prefix.length() == 0)) {
-                            prefix = generatePrefix(namespaceURI);
-                            xmlWriter.writeNamespace(prefix, namespaceURI);
-                            xmlWriter.setPrefix(prefix,namespaceURI);
-                        }
-
-                        if (prefix.trim().length() > 0){
-                            stringToWrite.append(prefix).append(":").append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        } else {
-                            stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        }
-                    } else {
-                        stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                    }
-                }
-                xmlWriter.writeCharacters(stringToWrite.toString());
-            }
-
-        }
-
-
-         /**
-         * Register a namespace prefix
-         */
-         private java.lang.String registerPrefix(javax.xml.stream.XMLStreamWriter xmlWriter, java.lang.String namespace) throws javax.xml.stream.XMLStreamException {
-                java.lang.String prefix = xmlWriter.getPrefix(namespace);
-
-                if (prefix == null) {
-                    prefix = generatePrefix(namespace);
-                    javax.xml.namespace.NamespaceContext nsContext = xmlWriter.getNamespaceContext();
-                    while (true) {
-                        java.lang.String uri = nsContext.getNamespaceURI(prefix);
-                        if (uri == null || uri.length() == 0) {
-                            break;
-                        }
-                        prefix = org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-                    }
-                    xmlWriter.writeNamespace(prefix, namespace);
-                    xmlWriter.setPrefix(prefix, namespace);
-                }
-
-                return prefix;
-            }
-
-
-  
-     /**
-      *  Factory class that keeps the parse method
-      */
-    public static class Factory{
-
-        
-        
-                public static NormalizedString fromString(java.lang.String value,
-                                                    java.lang.String namespaceURI){
-                    NormalizedString returnValue = new  NormalizedString();
-                    
-                            returnValue.setNormalizedString(
-                                org.apache.axis2.databinding.utils.ConverterUtil.convertToNormalizedString(value));
-                        
-
-                    return returnValue;
-                }
-
-                public static NormalizedString fromString(javax.xml.stream.XMLStreamReader xmlStreamReader,
-                                                                    java.lang.String content) {
-                    if (content.indexOf(":") > -1){
-                        java.lang.String prefix = content.substring(0,content.indexOf(":"));
-                        java.lang.String namespaceUri = xmlStreamReader.getNamespaceContext().getNamespaceURI(prefix);
-                        return NormalizedString.Factory.fromString(content,namespaceUri);
-                    } else {
-                       return NormalizedString.Factory.fromString(content,"");
-                    }
-                }
-
-            
-
-        /**
-        * static method to create the object
-        * Precondition:  If this object is an element, the current or next start element starts this object and any intervening reader events are ignorable
-        *                If this object is not an element, it is a complex type and the reader is at the event just after the outer start element
-        * Postcondition: If this object is an element, the reader is positioned at its end element
-        *                If this object is a complex type, the reader is positioned at the end element of its outer element
-        */
-        public static NormalizedString parse(javax.xml.stream.XMLStreamReader reader) throws java.lang.Exception{
-            NormalizedString object =
-                new NormalizedString();
-
-            int event;
-            java.lang.String nillableValue = null;
-            java.lang.String prefix ="";
-            java.lang.String namespaceuri ="";
-            try {
-                
-                while (!reader.isStartElement() && !reader.isEndElement())
-                    reader.next();
-
-                
-                if (reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance","type")!=null){
-                  java.lang.String fullTypeName = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance",
-                        "type");
-                  if (fullTypeName!=null){
-                    java.lang.String nsPrefix = null;
-                    if (fullTypeName.indexOf(":") > -1){
-                        nsPrefix = fullTypeName.substring(0,fullTypeName.indexOf(":"));
-                    }
-                    nsPrefix = nsPrefix==null?"":nsPrefix;
-
-                    java.lang.String type = fullTypeName.substring(fullTypeName.indexOf(":")+1);
-                    
-                            if (!"normalizedString".equals(type)){
-                                //find namespace for the prefix
-                                java.lang.String nsUri = reader.getNamespaceContext().getNamespaceURI(nsPrefix);
-                                return (NormalizedString)org.apache.axis2.databinding.types.soapencoding.ExtensionMapper.getTypeObject(
-                                     nsUri,type,reader);
-                              }
-                        
-
-                  }
-                
-
-                }
-
-                
-
-                
-                // Note all attributes that were handled. Used to differ normal attributes
-                // from anyAttributes.
-                java.util.Vector handledAttributes = new java.util.Vector();
-                
-
-                    
-                while(!reader.isEndElement()) {
-                    if (reader.isStartElement()  || reader.hasText()){
-                
-                                    if (reader.isStartElement()  || reader.hasText()){
-                                
-                                    java.lang.String content = reader.getElementText();
-                                    
-                                              object.setNormalizedString(
-                                                    org.apache.axis2.databinding.utils.ConverterUtil.convertToNormalizedString(content));
-                                            
-                              }  // End of if for expected property start element
-                                
-                             else{
-                                        // A start element we are not expecting indicates an invalid parameter was passed
-                                        throw new org.apache.axis2.databinding.ADBException("Unexpected subelement " + reader.getLocalName());
-                             }
-                          
-                             } else {
-                                reader.next();
-                             }  
-                           }  // end of while loop
-                        
-
-
-
-            } catch (javax.xml.stream.XMLStreamException e) {
-                throw new java.lang.Exception(e);
-            }
-
-            return object;
-        }
-
-        }//end of factory class
-
-        
-
-        }
-           
-          
\ No newline at end of file
diff --git a/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/PositiveInteger.java b/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/PositiveInteger.java
deleted file mode 100644
index 51bb936..0000000
--- a/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/PositiveInteger.java
+++ /dev/null
@@ -1,469 +0,0 @@
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/**
- * PositiveInteger.java
- *
- * This file was auto-generated from WSDL
- * by the Apache Axis2 version: SNAPSHOT  Built on : Dec 21, 2007 (04:03:30 LKT)
- */
-            
-                package org.apache.axis2.databinding.types.soapencoding;
-
-import javax.xml.stream.XMLStreamWriter;
-            
-
-            /**
-            *  PositiveInteger bean class
-            */
-        
-        public  class PositiveInteger
-        implements org.apache.axis2.databinding.ADBBean{
-        /* This type was generated from the piece of schema that had
-                name = positiveInteger
-                Namespace URI = http://schemas.xmlsoap.org/soap/encoding/
-                Namespace Prefix = ns1
-                */
-            
-
-        private static java.lang.String generatePrefix(java.lang.String namespace) {
-            if(namespace.equals("http://schemas.xmlsoap.org/soap/encoding/")){
-                return "SOAP-ENC";
-            }
-            return org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-        }
-
-        
-
-                        /**
-                        * field for PositiveInteger
-                        */
-
-                        
-                                    protected org.apache.axis2.databinding.types.PositiveInteger localPositiveInteger ;
-                                
-
-                           /**
-                           * Auto generated getter method
-                           * @return org.apache.axis2.databinding.types.PositiveInteger
-                           */
-                           public  org.apache.axis2.databinding.types.PositiveInteger getPositiveInteger(){
-                               return localPositiveInteger;
-                           }
-
-                           
-                        
-                            /**
-                               * Auto generated setter method
-                               * @param param PositiveInteger
-                               */
-                               public void setPositiveInteger(org.apache.axis2.databinding.types.PositiveInteger param){
-                            
-                                            this.localPositiveInteger=param;
-                                    
-
-                               }
-                            
-
-                            public java.lang.String toString(){
-                                
-                                        return localPositiveInteger.toString();
-                                    
-                            }
-                        
-
-     /**
-     * isReaderMTOMAware
-     * @return true if the reader supports MTOM
-     */
-   public static boolean isReaderMTOMAware(javax.xml.stream.XMLStreamReader reader) {
-        boolean isReaderMTOMAware = false;
-        
-        try{
-          isReaderMTOMAware = java.lang.Boolean.TRUE.equals(reader.getProperty(org.apache.axiom.om.OMConstants.IS_DATA_HANDLERS_AWARE));
-        }catch(java.lang.IllegalArgumentException e){
-          isReaderMTOMAware = false;
-        }
-        return isReaderMTOMAware;
-   }
-     
-     
-        /**
-        *
-        * @param parentQName
-        * @param factory
-        * @return org.apache.axiom.om.OMElement
-        */
-       public org.apache.axiom.om.OMElement getOMElement (
-               final javax.xml.namespace.QName parentQName,
-               final org.apache.axiom.om.OMFactory factory) throws org.apache.axis2.databinding.ADBException{
-
-
-        
-               org.apache.axiom.om.OMDataSource dataSource =
-                       new org.apache.axis2.databinding.ADBDataSource(this,parentQName);
-               return factory.createOMElement(dataSource,parentQName);
-            
-       }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                                       XMLStreamWriter xmlWriter)
-                                throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-                           serialize(parentQName,xmlWriter,false);
-         }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                               XMLStreamWriter xmlWriter,
-                               boolean serializeType)
-            throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-            
-                
-
-
-                java.lang.String prefix = null;
-                java.lang.String namespace = null;
-                
-
-                    prefix = parentQName.getPrefix();
-                    namespace = parentQName.getNamespaceURI();
-
-                    if ((namespace != null) && (namespace.trim().length() > 0)) {
-                        java.lang.String writerPrefix = xmlWriter.getPrefix(namespace);
-                        if (writerPrefix != null) {
-                            xmlWriter.writeStartElement(namespace, parentQName.getLocalPart());
-                        } else {
-                            if (prefix == null) {
-                                prefix = generatePrefix(namespace);
-                            }
-
-                            xmlWriter.writeStartElement(prefix, parentQName.getLocalPart(), namespace);
-                            xmlWriter.writeNamespace(prefix, namespace);
-                            xmlWriter.setPrefix(prefix, namespace);
-                        }
-                    } else {
-                        xmlWriter.writeStartElement(parentQName.getLocalPart());
-                    }
-                
-                  if (serializeType){
-               
-                   java.lang.String namespacePrefix = registerPrefix(xmlWriter,"http://schemas.xmlsoap.org/soap/encoding/");
-                   if ((namespacePrefix != null) && (namespacePrefix.trim().length() > 0)){
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           namespacePrefix+":positiveInteger",
-                           xmlWriter);
-                   } else {
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           "positiveInteger",
-                           xmlWriter);
-                   }
-
-               
-                   }
-               
-
-                                          if (localPositiveInteger==null){
-                                              // write the nil attribute
-                                              
-                                                     throw new org.apache.axis2.databinding.ADBException("positiveInteger cannot be null!!");
-                                                  
-                                          }else{
-
-                                        
-                                                   xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(localPositiveInteger));
-                                            
-                                          }
-                                    
-                    xmlWriter.writeEndElement();
-               
-
-        }
-
-         /**
-          * Util method to write an attribute with the ns prefix
-          */
-          private void writeAttribute(java.lang.String prefix,java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-              if (xmlWriter.getPrefix(namespace) == null) {
-                       xmlWriter.writeNamespace(prefix, namespace);
-                       xmlWriter.setPrefix(prefix, namespace);
-
-              }
-
-              xmlWriter.writeAttribute(namespace,attName,attValue);
-
-         }
-
-        /**
-          * Util method to write an attribute without the ns prefix
-          */
-          private void writeAttribute(java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-                if (namespace.equals(""))
-              {
-                  xmlWriter.writeAttribute(attName,attValue);
-              }
-              else
-              {
-                  registerPrefix(xmlWriter, namespace);
-                  xmlWriter.writeAttribute(namespace,attName,attValue);
-              }
-          }
-
-
-           /**
-             * Util method to write an attribute without the ns prefix
-             */
-            private void writeQNameAttribute(java.lang.String namespace, java.lang.String attName,
-                                             javax.xml.namespace.QName qname, javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-                java.lang.String attributeNamespace = qname.getNamespaceURI();
-                java.lang.String attributePrefix = xmlWriter.getPrefix(attributeNamespace);
-                if (attributePrefix == null) {
-                    attributePrefix = registerPrefix(xmlWriter, attributeNamespace);
-                }
-                java.lang.String attributeValue;
-                if (attributePrefix.trim().length() > 0) {
-                    attributeValue = attributePrefix + ":" + qname.getLocalPart();
-                } else {
-                    attributeValue = qname.getLocalPart();
-                }
-
-                if (namespace.equals("")) {
-                    xmlWriter.writeAttribute(attName, attributeValue);
-                } else {
-                    registerPrefix(xmlWriter, namespace);
-                    xmlWriter.writeAttribute(namespace, attName, attributeValue);
-                }
-            }
-        /**
-         *  method to handle Qnames
-         */
-
-        private void writeQName(javax.xml.namespace.QName qname,
-                                javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-            java.lang.String namespaceURI = qname.getNamespaceURI();
-            if (namespaceURI != null) {
-                java.lang.String prefix = xmlWriter.getPrefix(namespaceURI);
-                if (prefix == null) {
-                    prefix = generatePrefix(namespaceURI);
-                    xmlWriter.writeNamespace(prefix, namespaceURI);
-                    xmlWriter.setPrefix(prefix,namespaceURI);
-                }
-
-                if (prefix.trim().length() > 0){
-                    xmlWriter.writeCharacters(prefix + ":" + org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                } else {
-                    // i.e this is the default namespace
-                    xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                }
-
-            } else {
-                xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-            }
-        }
-
-        private void writeQNames(javax.xml.namespace.QName[] qnames,
-                                 javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-            if (qnames != null) {
-                // we have to store this data until last moment since it is not possible to write any
-                // namespace data after writing the charactor data
-                java.lang.StringBuffer stringToWrite = new java.lang.StringBuffer();
-                java.lang.String namespaceURI = null;
-                java.lang.String prefix = null;
-
-                for (int i = 0; i < qnames.length; i++) {
-                    if (i > 0) {
-                        stringToWrite.append(" ");
-                    }
-                    namespaceURI = qnames[i].getNamespaceURI();
-                    if (namespaceURI != null) {
-                        prefix = xmlWriter.getPrefix(namespaceURI);
-                        if ((prefix == null) || (prefix.length() == 0)) {
-                            prefix = generatePrefix(namespaceURI);
-                            xmlWriter.writeNamespace(prefix, namespaceURI);
-                            xmlWriter.setPrefix(prefix,namespaceURI);
-                        }
-
-                        if (prefix.trim().length() > 0){
-                            stringToWrite.append(prefix).append(":").append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        } else {
-                            stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        }
-                    } else {
-                        stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                    }
-                }
-                xmlWriter.writeCharacters(stringToWrite.toString());
-            }
-
-        }
-
-
-         /**
-         * Register a namespace prefix
-         */
-         private java.lang.String registerPrefix(javax.xml.stream.XMLStreamWriter xmlWriter, java.lang.String namespace) throws javax.xml.stream.XMLStreamException {
-                java.lang.String prefix = xmlWriter.getPrefix(namespace);
-
-                if (prefix == null) {
-                    prefix = generatePrefix(namespace);
-                    javax.xml.namespace.NamespaceContext nsContext = xmlWriter.getNamespaceContext();
-                    while (true) {
-                        java.lang.String uri = nsContext.getNamespaceURI(prefix);
-                        if (uri == null || uri.length() == 0) {
-                            break;
-                        }
-                        prefix = org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-                    }
-                    xmlWriter.writeNamespace(prefix, namespace);
-                    xmlWriter.setPrefix(prefix, namespace);
-                }
-
-                return prefix;
-            }
-
-
-  
-     /**
-      *  Factory class that keeps the parse method
-      */
-    public static class Factory{
-
-        
-        
-                public static PositiveInteger fromString(java.lang.String value,
-                                                    java.lang.String namespaceURI){
-                    PositiveInteger returnValue = new  PositiveInteger();
-                    
-                            returnValue.setPositiveInteger(
-                                org.apache.axis2.databinding.utils.ConverterUtil.convertToPositiveInteger(value));
-                        
-
-                    return returnValue;
-                }
-
-                public static PositiveInteger fromString(javax.xml.stream.XMLStreamReader xmlStreamReader,
-                                                                    java.lang.String content) {
-                    if (content.indexOf(":") > -1){
-                        java.lang.String prefix = content.substring(0,content.indexOf(":"));
-                        java.lang.String namespaceUri = xmlStreamReader.getNamespaceContext().getNamespaceURI(prefix);
-                        return PositiveInteger.Factory.fromString(content,namespaceUri);
-                    } else {
-                       return PositiveInteger.Factory.fromString(content,"");
-                    }
-                }
-
-            
-
-        /**
-        * static method to create the object
-        * Precondition:  If this object is an element, the current or next start element starts this object and any intervening reader events are ignorable
-        *                If this object is not an element, it is a complex type and the reader is at the event just after the outer start element
-        * Postcondition: If this object is an element, the reader is positioned at its end element
-        *                If this object is a complex type, the reader is positioned at the end element of its outer element
-        */
-        public static PositiveInteger parse(javax.xml.stream.XMLStreamReader reader) throws java.lang.Exception{
-            PositiveInteger object =
-                new PositiveInteger();
-
-            int event;
-            java.lang.String nillableValue = null;
-            java.lang.String prefix ="";
-            java.lang.String namespaceuri ="";
-            try {
-                
-                while (!reader.isStartElement() && !reader.isEndElement())
-                    reader.next();
-
-                
-                if (reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance","type")!=null){
-                  java.lang.String fullTypeName = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance",
-                        "type");
-                  if (fullTypeName!=null){
-                    java.lang.String nsPrefix = null;
-                    if (fullTypeName.indexOf(":") > -1){
-                        nsPrefix = fullTypeName.substring(0,fullTypeName.indexOf(":"));
-                    }
-                    nsPrefix = nsPrefix==null?"":nsPrefix;
-
-                    java.lang.String type = fullTypeName.substring(fullTypeName.indexOf(":")+1);
-                    
-                            if (!"positiveInteger".equals(type)){
-                                //find namespace for the prefix
-                                java.lang.String nsUri = reader.getNamespaceContext().getNamespaceURI(nsPrefix);
-                                return (PositiveInteger)org.apache.axis2.databinding.types.soapencoding.ExtensionMapper.getTypeObject(
-                                     nsUri,type,reader);
-                              }
-                        
-
-                  }
-                
-
-                }
-
-                
-
-                
-                // Note all attributes that were handled. Used to differ normal attributes
-                // from anyAttributes.
-                java.util.Vector handledAttributes = new java.util.Vector();
-                
-
-                    
-                while(!reader.isEndElement()) {
-                    if (reader.isStartElement()  || reader.hasText()){
-                
-                                    if (reader.isStartElement()  || reader.hasText()){
-                                
-                                    java.lang.String content = reader.getElementText();
-                                    
-                                              object.setPositiveInteger(
-                                                    org.apache.axis2.databinding.utils.ConverterUtil.convertToPositiveInteger(content));
-                                            
-                              }  // End of if for expected property start element
-                                
-                             else{
-                                        // A start element we are not expecting indicates an invalid parameter was passed
-                                        throw new org.apache.axis2.databinding.ADBException("Unexpected subelement " + reader.getLocalName());
-                             }
-                          
-                             } else {
-                                reader.next();
-                             }  
-                           }  // end of while loop
-                        
-
-
-
-            } catch (javax.xml.stream.XMLStreamException e) {
-                throw new java.lang.Exception(e);
-            }
-
-            return object;
-        }
-
-        }//end of factory class
-
-        
-
-        }
-           
-          
\ No newline at end of file
diff --git a/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/QName.java b/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/QName.java
deleted file mode 100644
index 291a5d4..0000000
--- a/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/QName.java
+++ /dev/null
@@ -1,476 +0,0 @@
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/**
- * QName.java
- *
- * This file was auto-generated from WSDL
- * by the Apache Axis2 version: SNAPSHOT  Built on : Dec 21, 2007 (04:03:30 LKT)
- */
-            
-                package org.apache.axis2.databinding.types.soapencoding;
-
-import javax.xml.stream.XMLStreamWriter;
-            
-
-            /**
-            *  QName bean class
-            */
-        
-        public  class QName
-        implements org.apache.axis2.databinding.ADBBean{
-        /* This type was generated from the piece of schema that had
-                name = QName
-                Namespace URI = http://schemas.xmlsoap.org/soap/encoding/
-                Namespace Prefix = ns1
-                */
-            
-
-        private static java.lang.String generatePrefix(java.lang.String namespace) {
-            if(namespace.equals("http://schemas.xmlsoap.org/soap/encoding/")){
-                return "SOAP-ENC";
-            }
-            return org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-        }
-
-        
-
-                        /**
-                        * field for QName
-                        */
-
-                        
-                                    protected javax.xml.namespace.QName localQName ;
-                                
-
-                           /**
-                           * Auto generated getter method
-                           * @return javax.xml.namespace.QName
-                           */
-                           public  javax.xml.namespace.QName getQName(){
-                               return localQName;
-                           }
-
-                           
-                        
-                            /**
-                               * Auto generated setter method
-                               * @param param QName
-                               */
-                               public void setQName(javax.xml.namespace.QName param){
-                            
-                                            this.localQName=param;
-                                    
-
-                               }
-                            
-
-                            public java.lang.String toString(){
-                                
-                                        return localQName.toString();
-                                    
-                            }
-                        
-
-     /**
-     * isReaderMTOMAware
-     * @return true if the reader supports MTOM
-     */
-   public static boolean isReaderMTOMAware(javax.xml.stream.XMLStreamReader reader) {
-        boolean isReaderMTOMAware = false;
-        
-        try{
-          isReaderMTOMAware = java.lang.Boolean.TRUE.equals(reader.getProperty(org.apache.axiom.om.OMConstants.IS_DATA_HANDLERS_AWARE));
-        }catch(java.lang.IllegalArgumentException e){
-          isReaderMTOMAware = false;
-        }
-        return isReaderMTOMAware;
-   }
-     
-     
-        /**
-        *
-        * @param parentQName
-        * @param factory
-        * @return org.apache.axiom.om.OMElement
-        */
-       public org.apache.axiom.om.OMElement getOMElement (
-               final javax.xml.namespace.QName parentQName,
-               final org.apache.axiom.om.OMFactory factory) throws org.apache.axis2.databinding.ADBException{
-
-
-        
-               org.apache.axiom.om.OMDataSource dataSource =
-                       new org.apache.axis2.databinding.ADBDataSource(this,parentQName);
-               return factory.createOMElement(dataSource,parentQName);
-            
-       }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                                       XMLStreamWriter xmlWriter)
-                                throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-                           serialize(parentQName,xmlWriter,false);
-         }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                               XMLStreamWriter xmlWriter,
-                               boolean serializeType)
-            throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-            
-                
-
-
-                java.lang.String prefix = null;
-                java.lang.String namespace = null;
-                
-
-                    prefix = parentQName.getPrefix();
-                    namespace = parentQName.getNamespaceURI();
-
-                    if ((namespace != null) && (namespace.trim().length() > 0)) {
-                        java.lang.String writerPrefix = xmlWriter.getPrefix(namespace);
-                        if (writerPrefix != null) {
-                            xmlWriter.writeStartElement(namespace, parentQName.getLocalPart());
-                        } else {
-                            if (prefix == null) {
-                                prefix = generatePrefix(namespace);
-                            }
-
-                            xmlWriter.writeStartElement(prefix, parentQName.getLocalPart(), namespace);
-                            xmlWriter.writeNamespace(prefix, namespace);
-                            xmlWriter.setPrefix(prefix, namespace);
-                        }
-                    } else {
-                        xmlWriter.writeStartElement(parentQName.getLocalPart());
-                    }
-                
-                  if (serializeType){
-               
-                   java.lang.String namespacePrefix = registerPrefix(xmlWriter,"http://schemas.xmlsoap.org/soap/encoding/");
-                   if ((namespacePrefix != null) && (namespacePrefix.trim().length() > 0)){
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           namespacePrefix+":QName",
-                           xmlWriter);
-                   } else {
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           "QName",
-                           xmlWriter);
-                   }
-
-               
-                   }
-               
-
-                                          if (localQName==null){
-                                              // write the nil attribute
-                                              
-                                                     throw new org.apache.axis2.databinding.ADBException("QName cannot be null!!");
-                                                  
-                                          }else{
-
-                                        
-                                                writeQName(localQName,xmlWriter);
-                                            
-                                          }
-                                    
-                    xmlWriter.writeEndElement();
-               
-
-        }
-
-         /**
-          * Util method to write an attribute with the ns prefix
-          */
-          private void writeAttribute(java.lang.String prefix,java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-              if (xmlWriter.getPrefix(namespace) == null) {
-                       xmlWriter.writeNamespace(prefix, namespace);
-                       xmlWriter.setPrefix(prefix, namespace);
-
-              }
-
-              xmlWriter.writeAttribute(namespace,attName,attValue);
-
-         }
-
-        /**
-          * Util method to write an attribute without the ns prefix
-          */
-          private void writeAttribute(java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-                if (namespace.equals(""))
-              {
-                  xmlWriter.writeAttribute(attName,attValue);
-              }
-              else
-              {
-                  registerPrefix(xmlWriter, namespace);
-                  xmlWriter.writeAttribute(namespace,attName,attValue);
-              }
-          }
-
-
-           /**
-             * Util method to write an attribute without the ns prefix
-             */
-            private void writeQNameAttribute(java.lang.String namespace, java.lang.String attName,
-                                             javax.xml.namespace.QName qname, javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-                java.lang.String attributeNamespace = qname.getNamespaceURI();
-                java.lang.String attributePrefix = xmlWriter.getPrefix(attributeNamespace);
-                if (attributePrefix == null) {
-                    attributePrefix = registerPrefix(xmlWriter, attributeNamespace);
-                }
-                java.lang.String attributeValue;
-                if (attributePrefix.trim().length() > 0) {
-                    attributeValue = attributePrefix + ":" + qname.getLocalPart();
-                } else {
-                    attributeValue = qname.getLocalPart();
-                }
-
-                if (namespace.equals("")) {
-                    xmlWriter.writeAttribute(attName, attributeValue);
-                } else {
-                    registerPrefix(xmlWriter, namespace);
-                    xmlWriter.writeAttribute(namespace, attName, attributeValue);
-                }
-            }
-        /**
-         *  method to handle Qnames
-         */
-
-        private void writeQName(javax.xml.namespace.QName qname,
-                                javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-            java.lang.String namespaceURI = qname.getNamespaceURI();
-            if (namespaceURI != null) {
-                java.lang.String prefix = xmlWriter.getPrefix(namespaceURI);
-                if (prefix == null) {
-                    prefix = generatePrefix(namespaceURI);
-                    xmlWriter.writeNamespace(prefix, namespaceURI);
-                    xmlWriter.setPrefix(prefix,namespaceURI);
-                }
-
-                if (prefix.trim().length() > 0){
-                    xmlWriter.writeCharacters(prefix + ":" + org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                } else {
-                    // i.e this is the default namespace
-                    xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                }
-
-            } else {
-                xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-            }
-        }
-
-        private void writeQNames(javax.xml.namespace.QName[] qnames,
-                                 javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-            if (qnames != null) {
-                // we have to store this data until last moment since it is not possible to write any
-                // namespace data after writing the charactor data
-                java.lang.StringBuffer stringToWrite = new java.lang.StringBuffer();
-                java.lang.String namespaceURI = null;
-                java.lang.String prefix = null;
-
-                for (int i = 0; i < qnames.length; i++) {
-                    if (i > 0) {
-                        stringToWrite.append(" ");
-                    }
-                    namespaceURI = qnames[i].getNamespaceURI();
-                    if (namespaceURI != null) {
-                        prefix = xmlWriter.getPrefix(namespaceURI);
-                        if ((prefix == null) || (prefix.length() == 0)) {
-                            prefix = generatePrefix(namespaceURI);
-                            xmlWriter.writeNamespace(prefix, namespaceURI);
-                            xmlWriter.setPrefix(prefix,namespaceURI);
-                        }
-
-                        if (prefix.trim().length() > 0){
-                            stringToWrite.append(prefix).append(":").append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        } else {
-                            stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        }
-                    } else {
-                        stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                    }
-                }
-                xmlWriter.writeCharacters(stringToWrite.toString());
-            }
-
-        }
-
-
-         /**
-         * Register a namespace prefix
-         */
-         private java.lang.String registerPrefix(javax.xml.stream.XMLStreamWriter xmlWriter, java.lang.String namespace) throws javax.xml.stream.XMLStreamException {
-                java.lang.String prefix = xmlWriter.getPrefix(namespace);
-
-                if (prefix == null) {
-                    prefix = generatePrefix(namespace);
-                    javax.xml.namespace.NamespaceContext nsContext = xmlWriter.getNamespaceContext();
-                    while (true) {
-                        java.lang.String uri = nsContext.getNamespaceURI(prefix);
-                        if (uri == null || uri.length() == 0) {
-                            break;
-                        }
-                        prefix = org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-                    }
-                    xmlWriter.writeNamespace(prefix, namespace);
-                    xmlWriter.setPrefix(prefix, namespace);
-                }
-
-                return prefix;
-            }
-
-
-  
-     /**
-      *  Factory class that keeps the parse method
-      */
-    public static class Factory{
-
-        
-        
-                public static QName fromString(java.lang.String value,
-                                                    java.lang.String namespaceURI){
-                    QName returnValue = new  QName();
-                    
-                            returnValue.setQName(
-                                org.apache.axis2.databinding.utils.ConverterUtil.convertToQName(value,namespaceURI));
-                        
-
-                    return returnValue;
-                }
-
-                public static QName fromString(javax.xml.stream.XMLStreamReader xmlStreamReader,
-                                                                    java.lang.String content) {
-                    if (content.indexOf(":") > -1){
-                        java.lang.String prefix = content.substring(0,content.indexOf(":"));
-                        java.lang.String namespaceUri = xmlStreamReader.getNamespaceContext().getNamespaceURI(prefix);
-                        return QName.Factory.fromString(content,namespaceUri);
-                    } else {
-                       return QName.Factory.fromString(content,"");
-                    }
-                }
-
-            
-
-        /**
-        * static method to create the object
-        * Precondition:  If this object is an element, the current or next start element starts this object and any intervening reader events are ignorable
-        *                If this object is not an element, it is a complex type and the reader is at the event just after the outer start element
-        * Postcondition: If this object is an element, the reader is positioned at its end element
-        *                If this object is a complex type, the reader is positioned at the end element of its outer element
-        */
-        public static QName parse(javax.xml.stream.XMLStreamReader reader) throws java.lang.Exception{
-            QName object =
-                new QName();
-
-            int event;
-            java.lang.String nillableValue = null;
-            java.lang.String prefix ="";
-            java.lang.String namespaceuri ="";
-            try {
-                
-                while (!reader.isStartElement() && !reader.isEndElement())
-                    reader.next();
-
-                
-                if (reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance","type")!=null){
-                  java.lang.String fullTypeName = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance",
-                        "type");
-                  if (fullTypeName!=null){
-                    java.lang.String nsPrefix = null;
-                    if (fullTypeName.indexOf(":") > -1){
-                        nsPrefix = fullTypeName.substring(0,fullTypeName.indexOf(":"));
-                    }
-                    nsPrefix = nsPrefix==null?"":nsPrefix;
-
-                    java.lang.String type = fullTypeName.substring(fullTypeName.indexOf(":")+1);
-                    
-                            if (!"QName".equals(type)){
-                                //find namespace for the prefix
-                                java.lang.String nsUri = reader.getNamespaceContext().getNamespaceURI(nsPrefix);
-                                return (QName)org.apache.axis2.databinding.types.soapencoding.ExtensionMapper.getTypeObject(
-                                     nsUri,type,reader);
-                              }
-                        
-
-                  }
-                
-
-                }
-
-                
-
-                
-                // Note all attributes that were handled. Used to differ normal attributes
-                // from anyAttributes.
-                java.util.Vector handledAttributes = new java.util.Vector();
-                
-
-                    
-                while(!reader.isEndElement()) {
-                    if (reader.isStartElement()  || reader.hasText()){
-                
-                                    if (reader.isStartElement()  || reader.hasText()){
-                                
-                                    java.lang.String content = reader.getElementText();
-                                    
-                                            int index = content.indexOf(":");
-                                            if(index > 0){
-                                                prefix = content.substring(0,index);
-                                             } else {
-                                                prefix = "";
-                                             }
-                                             namespaceuri = reader.getNamespaceURI(prefix);
-                                             object.setQName(
-                                                  org.apache.axis2.databinding.utils.ConverterUtil.convertToQName(content,namespaceuri));
-                                            
-                              }  // End of if for expected property start element
-                                
-                             else{
-                                        // A start element we are not expecting indicates an invalid parameter was passed
-                                        throw new org.apache.axis2.databinding.ADBException("Unexpected subelement " + reader.getLocalName());
-                             }
-                          
-                             } else {
-                                reader.next();
-                             }  
-                           }  // end of while loop
-                        
-
-
-
-            } catch (javax.xml.stream.XMLStreamException e) {
-                throw new java.lang.Exception(e);
-            }
-
-            return object;
-        }
-
-        }//end of factory class
-
-        
-
-        }
-           
-          
\ No newline at end of file
diff --git a/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/String.java b/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/String.java
deleted file mode 100644
index 419bfb8..0000000
--- a/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/String.java
+++ /dev/null
@@ -1,469 +0,0 @@
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/**
- * String.java
- *
- * This file was auto-generated from WSDL
- * by the Apache Axis2 version: SNAPSHOT  Built on : Dec 21, 2007 (04:03:30 LKT)
- */
-            
-                package org.apache.axis2.databinding.types.soapencoding;
-
-import javax.xml.stream.XMLStreamWriter;
-            
-
-            /**
-            *  String bean class
-            */
-        
-        public  class String
-        implements org.apache.axis2.databinding.ADBBean{
-        /* This type was generated from the piece of schema that had
-                name = string
-                Namespace URI = http://schemas.xmlsoap.org/soap/encoding/
-                Namespace Prefix = ns1
-                */
-            
-
-        private static java.lang.String generatePrefix(java.lang.String namespace) {
-            if(namespace.equals("http://schemas.xmlsoap.org/soap/encoding/")){
-                return "SOAP-ENC";
-            }
-            return org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-        }
-
-        
-
-                        /**
-                        * field for String
-                        */
-
-                        
-                                    protected java.lang.String localString ;
-                                
-
-                           /**
-                           * Auto generated getter method
-                           * @return java.lang.String
-                           */
-                           public  java.lang.String getString(){
-                               return localString;
-                           }
-
-                           
-                        
-                            /**
-                               * Auto generated setter method
-                               * @param param String
-                               */
-                               public void setString(java.lang.String param){
-                            
-                                            this.localString=param;
-                                    
-
-                               }
-                            
-
-                            public java.lang.String toString(){
-                                
-                                        return localString.toString();
-                                    
-                            }
-                        
-
-     /**
-     * isReaderMTOMAware
-     * @return true if the reader supports MTOM
-     */
-   public static boolean isReaderMTOMAware(javax.xml.stream.XMLStreamReader reader) {
-        boolean isReaderMTOMAware = false;
-        
-        try{
-          isReaderMTOMAware = java.lang.Boolean.TRUE.equals(reader.getProperty(org.apache.axiom.om.OMConstants.IS_DATA_HANDLERS_AWARE));
-        }catch(java.lang.IllegalArgumentException e){
-          isReaderMTOMAware = false;
-        }
-        return isReaderMTOMAware;
-   }
-     
-     
-        /**
-        *
-        * @param parentQName
-        * @param factory
-        * @return org.apache.axiom.om.OMElement
-        */
-       public org.apache.axiom.om.OMElement getOMElement (
-               final javax.xml.namespace.QName parentQName,
-               final org.apache.axiom.om.OMFactory factory) throws org.apache.axis2.databinding.ADBException{
-
-
-        
-               org.apache.axiom.om.OMDataSource dataSource =
-                       new org.apache.axis2.databinding.ADBDataSource(this,parentQName);
-               return factory.createOMElement(dataSource,parentQName);
-            
-       }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                                       XMLStreamWriter xmlWriter)
-                                throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-                           serialize(parentQName,xmlWriter,false);
-         }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                               XMLStreamWriter xmlWriter,
-                               boolean serializeType)
-            throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-            
-                
-
-
-                java.lang.String prefix = null;
-                java.lang.String namespace = null;
-                
-
-                    prefix = parentQName.getPrefix();
-                    namespace = parentQName.getNamespaceURI();
-
-                    if ((namespace != null) && (namespace.trim().length() > 0)) {
-                        java.lang.String writerPrefix = xmlWriter.getPrefix(namespace);
-                        if (writerPrefix != null) {
-                            xmlWriter.writeStartElement(namespace, parentQName.getLocalPart());
-                        } else {
-                            if (prefix == null) {
-                                prefix = generatePrefix(namespace);
-                            }
-
-                            xmlWriter.writeStartElement(prefix, parentQName.getLocalPart(), namespace);
-                            xmlWriter.writeNamespace(prefix, namespace);
-                            xmlWriter.setPrefix(prefix, namespace);
-                        }
-                    } else {
-                        xmlWriter.writeStartElement(parentQName.getLocalPart());
-                    }
-                
-                  if (serializeType){
-               
-                   java.lang.String namespacePrefix = registerPrefix(xmlWriter,"http://schemas.xmlsoap.org/soap/encoding/");
-                   if ((namespacePrefix != null) && (namespacePrefix.trim().length() > 0)){
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           namespacePrefix+":string",
-                           xmlWriter);
-                   } else {
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           "string",
-                           xmlWriter);
-                   }
-
-               
-                   }
-               
-
-                                          if (localString==null){
-                                              // write the nil attribute
-                                              
-                                                     throw new org.apache.axis2.databinding.ADBException("string cannot be null!!");
-                                                  
-                                          }else{
-
-                                        
-                                                   xmlWriter.writeCharacters(localString);
-                                            
-                                          }
-                                    
-                    xmlWriter.writeEndElement();
-               
-
-        }
-
-         /**
-          * Util method to write an attribute with the ns prefix
-          */
-          private void writeAttribute(java.lang.String prefix,java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-              if (xmlWriter.getPrefix(namespace) == null) {
-                       xmlWriter.writeNamespace(prefix, namespace);
-                       xmlWriter.setPrefix(prefix, namespace);
-
-              }
-
-              xmlWriter.writeAttribute(namespace,attName,attValue);
-
-         }
-
-        /**
-          * Util method to write an attribute without the ns prefix
-          */
-          private void writeAttribute(java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-                if (namespace.equals(""))
-              {
-                  xmlWriter.writeAttribute(attName,attValue);
-              }
-              else
-              {
-                  registerPrefix(xmlWriter, namespace);
-                  xmlWriter.writeAttribute(namespace,attName,attValue);
-              }
-          }
-
-
-           /**
-             * Util method to write an attribute without the ns prefix
-             */
-            private void writeQNameAttribute(java.lang.String namespace, java.lang.String attName,
-                                             javax.xml.namespace.QName qname, javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-                java.lang.String attributeNamespace = qname.getNamespaceURI();
-                java.lang.String attributePrefix = xmlWriter.getPrefix(attributeNamespace);
-                if (attributePrefix == null) {
-                    attributePrefix = registerPrefix(xmlWriter, attributeNamespace);
-                }
-                java.lang.String attributeValue;
-                if (attributePrefix.trim().length() > 0) {
-                    attributeValue = attributePrefix + ":" + qname.getLocalPart();
-                } else {
-                    attributeValue = qname.getLocalPart();
-                }
-
-                if (namespace.equals("")) {
-                    xmlWriter.writeAttribute(attName, attributeValue);
-                } else {
-                    registerPrefix(xmlWriter, namespace);
-                    xmlWriter.writeAttribute(namespace, attName, attributeValue);
-                }
-            }
-        /**
-         *  method to handle Qnames
-         */
-
-        private void writeQName(javax.xml.namespace.QName qname,
-                                javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-            java.lang.String namespaceURI = qname.getNamespaceURI();
-            if (namespaceURI != null) {
-                java.lang.String prefix = xmlWriter.getPrefix(namespaceURI);
-                if (prefix == null) {
-                    prefix = generatePrefix(namespaceURI);
-                    xmlWriter.writeNamespace(prefix, namespaceURI);
-                    xmlWriter.setPrefix(prefix,namespaceURI);
-                }
-
-                if (prefix.trim().length() > 0){
-                    xmlWriter.writeCharacters(prefix + ":" + org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                } else {
-                    // i.e this is the default namespace
-                    xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                }
-
-            } else {
-                xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-            }
-        }
-
-        private void writeQNames(javax.xml.namespace.QName[] qnames,
-                                 javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-            if (qnames != null) {
-                // we have to store this data until last moment since it is not possible to write any
-                // namespace data after writing the charactor data
-                java.lang.StringBuffer stringToWrite = new java.lang.StringBuffer();
-                java.lang.String namespaceURI = null;
-                java.lang.String prefix = null;
-
-                for (int i = 0; i < qnames.length; i++) {
-                    if (i > 0) {
-                        stringToWrite.append(" ");
-                    }
-                    namespaceURI = qnames[i].getNamespaceURI();
-                    if (namespaceURI != null) {
-                        prefix = xmlWriter.getPrefix(namespaceURI);
-                        if ((prefix == null) || (prefix.length() == 0)) {
-                            prefix = generatePrefix(namespaceURI);
-                            xmlWriter.writeNamespace(prefix, namespaceURI);
-                            xmlWriter.setPrefix(prefix,namespaceURI);
-                        }
-
-                        if (prefix.trim().length() > 0){
-                            stringToWrite.append(prefix).append(":").append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        } else {
-                            stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        }
-                    } else {
-                        stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                    }
-                }
-                xmlWriter.writeCharacters(stringToWrite.toString());
-            }
-
-        }
-
-
-         /**
-         * Register a namespace prefix
-         */
-         private java.lang.String registerPrefix(javax.xml.stream.XMLStreamWriter xmlWriter, java.lang.String namespace) throws javax.xml.stream.XMLStreamException {
-                java.lang.String prefix = xmlWriter.getPrefix(namespace);
-
-                if (prefix == null) {
-                    prefix = generatePrefix(namespace);
-                    javax.xml.namespace.NamespaceContext nsContext = xmlWriter.getNamespaceContext();
-                    while (true) {
-                        java.lang.String uri = nsContext.getNamespaceURI(prefix);
-                        if (uri == null || uri.length() == 0) {
-                            break;
-                        }
-                        prefix = org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-                    }
-                    xmlWriter.writeNamespace(prefix, namespace);
-                    xmlWriter.setPrefix(prefix, namespace);
-                }
-
-                return prefix;
-            }
-
-
-  
-     /**
-      *  Factory class that keeps the parse method
-      */
-    public static class Factory{
-
-        
-        
-                public static String fromString(java.lang.String value,
-                                                    java.lang.String namespaceURI){
-                    String returnValue = new  String();
-                    
-                            returnValue.setString(
-                                org.apache.axis2.databinding.utils.ConverterUtil.convertToString(value));
-                        
-
-                    return returnValue;
-                }
-
-                public static String fromString(javax.xml.stream.XMLStreamReader xmlStreamReader,
-                                                                    java.lang.String content) {
-                    if (content.indexOf(":") > -1){
-                        java.lang.String prefix = content.substring(0,content.indexOf(":"));
-                        java.lang.String namespaceUri = xmlStreamReader.getNamespaceContext().getNamespaceURI(prefix);
-                        return String.Factory.fromString(content,namespaceUri);
-                    } else {
-                       return String.Factory.fromString(content,"");
-                    }
-                }
-
-            
-
-        /**
-        * static method to create the object
-        * Precondition:  If this object is an element, the current or next start element starts this object and any intervening reader events are ignorable
-        *                If this object is not an element, it is a complex type and the reader is at the event just after the outer start element
-        * Postcondition: If this object is an element, the reader is positioned at its end element
-        *                If this object is a complex type, the reader is positioned at the end element of its outer element
-        */
-        public static String parse(javax.xml.stream.XMLStreamReader reader) throws java.lang.Exception{
-            String object =
-                new String();
-
-            int event;
-            java.lang.String nillableValue = null;
-            java.lang.String prefix ="";
-            java.lang.String namespaceuri ="";
-            try {
-                
-                while (!reader.isStartElement() && !reader.isEndElement())
-                    reader.next();
-
-                
-                if (reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance","type")!=null){
-                  java.lang.String fullTypeName = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance",
-                        "type");
-                  if (fullTypeName!=null){
-                    java.lang.String nsPrefix = null;
-                    if (fullTypeName.indexOf(":") > -1){
-                        nsPrefix = fullTypeName.substring(0,fullTypeName.indexOf(":"));
-                    }
-                    nsPrefix = nsPrefix==null?"":nsPrefix;
-
-                    java.lang.String type = fullTypeName.substring(fullTypeName.indexOf(":")+1);
-                    
-                            if (!"string".equals(type)){
-                                //find namespace for the prefix
-                                java.lang.String nsUri = reader.getNamespaceContext().getNamespaceURI(nsPrefix);
-                                return (String)org.apache.axis2.databinding.types.soapencoding.ExtensionMapper.getTypeObject(
-                                     nsUri,type,reader);
-                              }
-                        
-
-                  }
-                
-
-                }
-
-                
-
-                
-                // Note all attributes that were handled. Used to differ normal attributes
-                // from anyAttributes.
-                java.util.Vector handledAttributes = new java.util.Vector();
-                
-
-                    
-                while(!reader.isEndElement()) {
-                    if (reader.isStartElement()  || reader.hasText()){
-                
-                                    if (reader.isStartElement()  || reader.hasText()){
-                                
-                                    java.lang.String content = reader.getElementText();
-                                    
-                                              object.setString(
-                                                    org.apache.axis2.databinding.utils.ConverterUtil.convertToString(content));
-                                            
-                              }  // End of if for expected property start element
-                                
-                             else{
-                                        // A start element we are not expecting indicates an invalid parameter was passed
-                                        throw new org.apache.axis2.databinding.ADBException("Unexpected subelement " + reader.getLocalName());
-                             }
-                          
-                             } else {
-                                reader.next();
-                             }  
-                           }  // end of while loop
-                        
-
-
-
-            } catch (javax.xml.stream.XMLStreamException e) {
-                throw new java.lang.Exception(e);
-            }
-
-            return object;
-        }
-
-        }//end of factory class
-
-        
-
-        }
-           
-          
\ No newline at end of file
diff --git a/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/Struct.java b/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/Struct.java
deleted file mode 100644
index c85eb6f..0000000
--- a/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/Struct.java
+++ /dev/null
@@ -1,641 +0,0 @@
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/**
- * Struct.java
- *
- * This file was auto-generated from WSDL
- * by the Apache Axis2 version: SNAPSHOT  Built on : Dec 21, 2007 (04:03:30 LKT)
- */
-            
-                package org.apache.axis2.databinding.types.soapencoding;
-
-import javax.xml.stream.XMLStreamWriter;
-            
-
-            /**
-            *  Struct bean class
-            */
-        
-        public  class Struct
-        implements org.apache.axis2.databinding.ADBBean{
-        /* This type was generated from the piece of schema that had
-                name = Struct
-                Namespace URI = http://schemas.xmlsoap.org/soap/encoding/
-                Namespace Prefix = ns1
-                */
-            
-
-        private static java.lang.String generatePrefix(java.lang.String namespace) {
-            if(namespace.equals("http://schemas.xmlsoap.org/soap/encoding/")){
-                return "SOAP-ENC";
-            }
-            return org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-        }
-
-        
-
-                        /**
-                        * field for ExtraElement
-                        * This was an Array!
-                        */
-
-                        
-                                    protected org.apache.axiom.om.OMElement[] localExtraElement ;
-                                
-                           /*  This tracker boolean wil be used to detect whether the user called the set method
-                          *   for this attribute. It will be used to determine whether to include this field
-                           *   in the serialized XML
-                           */
-                           protected boolean localExtraElementTracker = false ;
-                           
-
-                           /**
-                           * Auto generated getter method
-                           * @return org.apache.axiom.om.OMElement[]
-                           */
-                           public  org.apache.axiom.om.OMElement[] getExtraElement(){
-                               return localExtraElement;
-                           }
-
-                           
-                        
-
-
-                               
-                              /**
-                               * validate the array for ExtraElement
-                               */
-                              protected void validateExtraElement(org.apache.axiom.om.OMElement[] param){
-                             
-                              }
-
-
-                             /**
-                              * Auto generated setter method
-                              * @param param ExtraElement
-                              */
-                              public void setExtraElement(org.apache.axiom.om.OMElement[] param){
-                              
-                                   validateExtraElement(param);
-
-                               
-                                          if (param != null){
-                                             //update the setting tracker
-                                             localExtraElementTracker = true;
-                                          } else {
-                                             localExtraElementTracker = false;
-                                                 
-                                          }
-                                      
-                                      this.localExtraElement=param;
-                              }
-
-                               
-                             
-                             /**
-                             * Auto generated add method for the array for convenience
-                             * @param param org.apache.axiom.om.OMElement
-                             */
-                             public void addExtraElement(org.apache.axiom.om.OMElement param){
-                                   if (localExtraElement == null){
-                                   localExtraElement = new org.apache.axiom.om.OMElement[]{};
-                                   }
-
-                            
-                                 //update the setting tracker
-                                localExtraElementTracker = true;
-                            
-
-                               java.util.List list =
-                            org.apache.axis2.databinding.utils.ConverterUtil.toList(localExtraElement);
-                               list.add(param);
-                               this.localExtraElement =
-                             (org.apache.axiom.om.OMElement[])list.toArray(
-                            new org.apache.axiom.om.OMElement[list.size()]);
-
-                             }
-                             
-
-                        /**
-                        * field for Id
-                        * This was an Attribute!
-                        */
-
-                        
-                                    protected org.apache.axis2.databinding.types.Id localId ;
-                                
-
-                           /**
-                           * Auto generated getter method
-                           * @return org.apache.axis2.databinding.types.Id
-                           */
-                           public  org.apache.axis2.databinding.types.Id getId(){
-                               return localId;
-                           }
-
-                           
-                        
-                            /**
-                               * Auto generated setter method
-                               * @param param Id
-                               */
-                               public void setId(org.apache.axis2.databinding.types.Id param){
-                            
-                                            this.localId=param;
-                                    
-
-                               }
-                            
-
-                        /**
-                        * field for Href
-                        * This was an Attribute!
-                        */
-
-                        
-                                    protected org.apache.axis2.databinding.types.URI localHref ;
-                                
-
-                           /**
-                           * Auto generated getter method
-                           * @return org.apache.axis2.databinding.types.URI
-                           */
-                           public  org.apache.axis2.databinding.types.URI getHref(){
-                               return localHref;
-                           }
-
-                           
-                        
-                            /**
-                               * Auto generated setter method
-                               * @param param Href
-                               */
-                               public void setHref(org.apache.axis2.databinding.types.URI param){
-                            
-                                            this.localHref=param;
-                                    
-
-                               }
-                            
-
-     /**
-     * isReaderMTOMAware
-     * @return true if the reader supports MTOM
-     */
-   public static boolean isReaderMTOMAware(javax.xml.stream.XMLStreamReader reader) {
-        boolean isReaderMTOMAware = false;
-        
-        try{
-          isReaderMTOMAware = java.lang.Boolean.TRUE.equals(reader.getProperty(org.apache.axiom.om.OMConstants.IS_DATA_HANDLERS_AWARE));
-        }catch(java.lang.IllegalArgumentException e){
-          isReaderMTOMAware = false;
-        }
-        return isReaderMTOMAware;
-   }
-     
-     
-        /**
-        *
-        * @param parentQName
-        * @param factory
-        * @return org.apache.axiom.om.OMElement
-        */
-       public org.apache.axiom.om.OMElement getOMElement (
-               final javax.xml.namespace.QName parentQName,
-               final org.apache.axiom.om.OMFactory factory) throws org.apache.axis2.databinding.ADBException{
-
-
-        
-               org.apache.axiom.om.OMDataSource dataSource =
-                       new org.apache.axis2.databinding.ADBDataSource(this,parentQName);
-               return factory.createOMElement(dataSource,parentQName);
-            
-       }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                                       XMLStreamWriter xmlWriter)
-                                throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-                           serialize(parentQName,xmlWriter,false);
-         }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                               XMLStreamWriter xmlWriter,
-                               boolean serializeType)
-            throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-            
-                
-
-
-                java.lang.String prefix = null;
-                java.lang.String namespace = null;
-                
-
-                    prefix = parentQName.getPrefix();
-                    namespace = parentQName.getNamespaceURI();
-
-                    if ((namespace != null) && (namespace.trim().length() > 0)) {
-                        java.lang.String writerPrefix = xmlWriter.getPrefix(namespace);
-                        if (writerPrefix != null) {
-                            xmlWriter.writeStartElement(namespace, parentQName.getLocalPart());
-                        } else {
-                            if (prefix == null) {
-                                prefix = generatePrefix(namespace);
-                            }
-
-                            xmlWriter.writeStartElement(prefix, parentQName.getLocalPart(), namespace);
-                            xmlWriter.writeNamespace(prefix, namespace);
-                            xmlWriter.setPrefix(prefix, namespace);
-                        }
-                    } else {
-                        xmlWriter.writeStartElement(parentQName.getLocalPart());
-                    }
-                
-                  if (serializeType){
-               
-                   java.lang.String namespacePrefix = registerPrefix(xmlWriter,"http://schemas.xmlsoap.org/soap/encoding/");
-                   if ((namespacePrefix != null) && (namespacePrefix.trim().length() > 0)){
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           namespacePrefix+":Struct",
-                           xmlWriter);
-                   } else {
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           "Struct",
-                           xmlWriter);
-                   }
-
-               
-                   }
-               
-                                            if (localId != null){
-                                        
-                                                writeAttribute("",
-                                                         "id",
-                                                         org.apache.axis2.databinding.utils.ConverterUtil.convertToString(localId), xmlWriter);
-
-                                            
-                                      }
-                                    
-                                            if (localHref != null){
-                                        
-                                                writeAttribute("",
-                                                         "href",
-                                                         org.apache.axis2.databinding.utils.ConverterUtil.convertToString(localHref), xmlWriter);
-
-                                            
-                                      }
-                                     if (localExtraElementTracker){
-                            
-                            if (localExtraElement != null){
-                                for (int i = 0;i < localExtraElement.length;i++){
-                                    if (localExtraElement[i] != null){
-                                        localExtraElement[i].serialize(xmlWriter);
-                                    } else {
-                                        
-                                                // we have to do nothing since minOccures zero
-                                            
-                                    }
-                                }
-                            } else {
-                                throw new org.apache.axis2.databinding.ADBException("extraElement cannot be null!!");
-                            }
-                        }
-                    xmlWriter.writeEndElement();
-               
-
-        }
-
-         /**
-          * Util method to write an attribute with the ns prefix
-          */
-          private void writeAttribute(java.lang.String prefix,java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-              if (xmlWriter.getPrefix(namespace) == null) {
-                       xmlWriter.writeNamespace(prefix, namespace);
-                       xmlWriter.setPrefix(prefix, namespace);
-
-              }
-
-              xmlWriter.writeAttribute(namespace,attName,attValue);
-
-         }
-
-        /**
-          * Util method to write an attribute without the ns prefix
-          */
-          private void writeAttribute(java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-                if (namespace.equals(""))
-              {
-                  xmlWriter.writeAttribute(attName,attValue);
-              }
-              else
-              {
-                  registerPrefix(xmlWriter, namespace);
-                  xmlWriter.writeAttribute(namespace,attName,attValue);
-              }
-          }
-
-
-           /**
-             * Util method to write an attribute without the ns prefix
-             */
-            private void writeQNameAttribute(java.lang.String namespace, java.lang.String attName,
-                                             javax.xml.namespace.QName qname, javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-                java.lang.String attributeNamespace = qname.getNamespaceURI();
-                java.lang.String attributePrefix = xmlWriter.getPrefix(attributeNamespace);
-                if (attributePrefix == null) {
-                    attributePrefix = registerPrefix(xmlWriter, attributeNamespace);
-                }
-                java.lang.String attributeValue;
-                if (attributePrefix.trim().length() > 0) {
-                    attributeValue = attributePrefix + ":" + qname.getLocalPart();
-                } else {
-                    attributeValue = qname.getLocalPart();
-                }
-
-                if (namespace.equals("")) {
-                    xmlWriter.writeAttribute(attName, attributeValue);
-                } else {
-                    registerPrefix(xmlWriter, namespace);
-                    xmlWriter.writeAttribute(namespace, attName, attributeValue);
-                }
-            }
-        /**
-         *  method to handle Qnames
-         */
-
-        private void writeQName(javax.xml.namespace.QName qname,
-                                javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-            java.lang.String namespaceURI = qname.getNamespaceURI();
-            if (namespaceURI != null) {
-                java.lang.String prefix = xmlWriter.getPrefix(namespaceURI);
-                if (prefix == null) {
-                    prefix = generatePrefix(namespaceURI);
-                    xmlWriter.writeNamespace(prefix, namespaceURI);
-                    xmlWriter.setPrefix(prefix,namespaceURI);
-                }
-
-                if (prefix.trim().length() > 0){
-                    xmlWriter.writeCharacters(prefix + ":" + org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                } else {
-                    // i.e this is the default namespace
-                    xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                }
-
-            } else {
-                xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-            }
-        }
-
-        private void writeQNames(javax.xml.namespace.QName[] qnames,
-                                 javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-            if (qnames != null) {
-                // we have to store this data until last moment since it is not possible to write any
-                // namespace data after writing the charactor data
-                java.lang.StringBuffer stringToWrite = new java.lang.StringBuffer();
-                java.lang.String namespaceURI = null;
-                java.lang.String prefix = null;
-
-                for (int i = 0; i < qnames.length; i++) {
-                    if (i > 0) {
-                        stringToWrite.append(" ");
-                    }
-                    namespaceURI = qnames[i].getNamespaceURI();
-                    if (namespaceURI != null) {
-                        prefix = xmlWriter.getPrefix(namespaceURI);
-                        if ((prefix == null) || (prefix.length() == 0)) {
-                            prefix = generatePrefix(namespaceURI);
-                            xmlWriter.writeNamespace(prefix, namespaceURI);
-                            xmlWriter.setPrefix(prefix,namespaceURI);
-                        }
-
-                        if (prefix.trim().length() > 0){
-                            stringToWrite.append(prefix).append(":").append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        } else {
-                            stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        }
-                    } else {
-                        stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                    }
-                }
-                xmlWriter.writeCharacters(stringToWrite.toString());
-            }
-
-        }
-
-
-         /**
-         * Register a namespace prefix
-         */
-         private java.lang.String registerPrefix(javax.xml.stream.XMLStreamWriter xmlWriter, java.lang.String namespace) throws javax.xml.stream.XMLStreamException {
-                java.lang.String prefix = xmlWriter.getPrefix(namespace);
-
-                if (prefix == null) {
-                    prefix = generatePrefix(namespace);
-                    javax.xml.namespace.NamespaceContext nsContext = xmlWriter.getNamespaceContext();
-                    while (true) {
-                        java.lang.String uri = nsContext.getNamespaceURI(prefix);
-                        if (uri == null || uri.length() == 0) {
-                            break;
-                        }
-                        prefix = org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-                    }
-                    xmlWriter.writeNamespace(prefix, namespace);
-                    xmlWriter.setPrefix(prefix, namespace);
-                }
-
-                return prefix;
-            }
-
-
-  
-     /**
-      *  Factory class that keeps the parse method
-      */
-    public static class Factory{
-
-        
-        
-
-        /**
-        * static method to create the object
-        * Precondition:  If this object is an element, the current or next start element starts this object and any intervening reader events are ignorable
-        *                If this object is not an element, it is a complex type and the reader is at the event just after the outer start element
-        * Postcondition: If this object is an element, the reader is positioned at its end element
-        *                If this object is a complex type, the reader is positioned at the end element of its outer element
-        */
-        public static Struct parse(javax.xml.stream.XMLStreamReader reader) throws java.lang.Exception{
-            Struct object =
-                new Struct();
-
-            int event;
-            java.lang.String nillableValue = null;
-            java.lang.String prefix ="";
-            java.lang.String namespaceuri ="";
-            try {
-                
-                while (!reader.isStartElement() && !reader.isEndElement())
-                    reader.next();
-
-                
-                if (reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance","type")!=null){
-                  java.lang.String fullTypeName = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance",
-                        "type");
-                  if (fullTypeName!=null){
-                    java.lang.String nsPrefix = null;
-                    if (fullTypeName.indexOf(":") > -1){
-                        nsPrefix = fullTypeName.substring(0,fullTypeName.indexOf(":"));
-                    }
-                    nsPrefix = nsPrefix==null?"":nsPrefix;
-
-                    java.lang.String type = fullTypeName.substring(fullTypeName.indexOf(":")+1);
-                    
-                            if (!"Struct".equals(type)){
-                                //find namespace for the prefix
-                                java.lang.String nsUri = reader.getNamespaceContext().getNamespaceURI(nsPrefix);
-                                return (Struct)org.apache.axis2.databinding.types.soapencoding.ExtensionMapper.getTypeObject(
-                                     nsUri,type,reader);
-                              }
-                        
-
-                  }
-                
-
-                }
-
-                
-
-                
-                // Note all attributes that were handled. Used to differ normal attributes
-                // from anyAttributes.
-                java.util.Vector handledAttributes = new java.util.Vector();
-                
-
-                 
-                    // handle attribute "id"
-                    java.lang.String tempAttribId =
-                        
-                                reader.getAttributeValue(null,"id");
-                            
-                   if (tempAttribId!=null){
-                         java.lang.String content = tempAttribId;
-                        
-                                                 object.setId(
-                                                    org.apache.axis2.databinding.utils.ConverterUtil.convertToID(tempAttribId));
-                                            
-                    } else {
-                       
-                    }
-                    handledAttributes.add("id");
-                    
-                    // handle attribute "href"
-                    java.lang.String tempAttribHref =
-                        
-                                reader.getAttributeValue(null,"href");
-                            
-                   if (tempAttribHref!=null){
-                         java.lang.String content = tempAttribHref;
-                        
-                                                 object.setHref(
-                                                    org.apache.axis2.databinding.utils.ConverterUtil.convertToAnyURI(tempAttribHref));
-                                            
-                    } else {
-                       
-                    }
-                    handledAttributes.add("href");
-                    
-                    
-                    reader.next();
-                
-                        java.util.ArrayList list1 = new java.util.ArrayList();
-                    
-                                    
-                                    while (!reader.isStartElement() && !reader.isEndElement()) reader.next();
-                                
-                                   if (reader.isStartElement()){
-                                
-                                    
-                                    
-                                    // Process the array and step past its final element's end.
-                                    
-                                           boolean loopDone1=false;
-
-                                             while (!loopDone1){
-                                                 event = reader.getEventType();
-                                                 if (javax.xml.stream.XMLStreamConstants.START_ELEMENT == event){
-
-                                                      // We need to wrap the reader so that it produces a fake START_DOCUEMENT event
-                                                      org.apache.axis2.databinding.utils.NamedStaxOMBuilder builder1
-                                                         = new org.apache.axis2.databinding.utils.NamedStaxOMBuilder(
-                                                              new org.apache.axis2.util.StreamWrapper(reader), reader.getName());
-
-                                                       list1.add(builder1.getOMElement());
-                                                        reader.next();
-                                                        if (reader.isEndElement()) {
-                                                            // we have two countinuos end elements
-                                                           loopDone1 = true;
-                                                        }
-
-                                                 }else if (javax.xml.stream.XMLStreamConstants.END_ELEMENT == event){
-                                                     loopDone1 = true;
-                                                 }else{
-                                                     reader.next();
-                                                 }
-
-                                             }
-
-                                            
-                                             object.setExtraElement((org.apache.axiom.om.OMElement[])
-                                                 org.apache.axis2.databinding.utils.ConverterUtil.convertToArray(
-                                                     org.apache.axiom.om.OMElement.class,list1));
-                                                
-                              }  // End of if for expected property start element
-                                
-                                    else {
-                                        
-                                    }
-                                  
-                            while (!reader.isStartElement() && !reader.isEndElement())
-                                reader.next();
-                            
-                                if (reader.isStartElement())
-                                // A start element we are not expecting indicates a trailing invalid property
-                                throw new org.apache.axis2.databinding.ADBException("Unexpected subelement " + reader.getLocalName());
-                            
-
-
-
-            } catch (javax.xml.stream.XMLStreamException e) {
-                throw new java.lang.Exception(e);
-            }
-
-            return object;
-        }
-
-        }//end of factory class
-
-        
-
-        }
-           
-          
\ No newline at end of file
diff --git a/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/Time.java b/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/Time.java
deleted file mode 100644
index 62fa59e..0000000
--- a/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/Time.java
+++ /dev/null
@@ -1,469 +0,0 @@
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/**
- * Time.java
- *
- * This file was auto-generated from WSDL
- * by the Apache Axis2 version: SNAPSHOT  Built on : Dec 21, 2007 (04:03:30 LKT)
- */
-            
-                package org.apache.axis2.databinding.types.soapencoding;
-
-import javax.xml.stream.XMLStreamWriter;
-            
-
-            /**
-            *  Time bean class
-            */
-        
-        public  class Time
-        implements org.apache.axis2.databinding.ADBBean{
-        /* This type was generated from the piece of schema that had
-                name = time
-                Namespace URI = http://schemas.xmlsoap.org/soap/encoding/
-                Namespace Prefix = ns1
-                */
-            
-
-        private static java.lang.String generatePrefix(java.lang.String namespace) {
-            if(namespace.equals("http://schemas.xmlsoap.org/soap/encoding/")){
-                return "SOAP-ENC";
-            }
-            return org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-        }
-
-        
-
-                        /**
-                        * field for Time
-                        */
-
-                        
-                                    protected org.apache.axis2.databinding.types.Time localTime ;
-                                
-
-                           /**
-                           * Auto generated getter method
-                           * @return org.apache.axis2.databinding.types.Time
-                           */
-                           public  org.apache.axis2.databinding.types.Time getTime(){
-                               return localTime;
-                           }
-
-                           
-                        
-                            /**
-                               * Auto generated setter method
-                               * @param param Time
-                               */
-                               public void setTime(org.apache.axis2.databinding.types.Time param){
-                            
-                                            this.localTime=param;
-                                    
-
-                               }
-                            
-
-                            public java.lang.String toString(){
-                                
-                                        return localTime.toString();
-                                    
-                            }
-                        
-
-     /**
-     * isReaderMTOMAware
-     * @return true if the reader supports MTOM
-     */
-   public static boolean isReaderMTOMAware(javax.xml.stream.XMLStreamReader reader) {
-        boolean isReaderMTOMAware = false;
-        
-        try{
-          isReaderMTOMAware = java.lang.Boolean.TRUE.equals(reader.getProperty(org.apache.axiom.om.OMConstants.IS_DATA_HANDLERS_AWARE));
-        }catch(java.lang.IllegalArgumentException e){
-          isReaderMTOMAware = false;
-        }
-        return isReaderMTOMAware;
-   }
-     
-     
-        /**
-        *
-        * @param parentQName
-        * @param factory
-        * @return org.apache.axiom.om.OMElement
-        */
-       public org.apache.axiom.om.OMElement getOMElement (
-               final javax.xml.namespace.QName parentQName,
-               final org.apache.axiom.om.OMFactory factory) throws org.apache.axis2.databinding.ADBException{
-
-
-        
-               org.apache.axiom.om.OMDataSource dataSource =
-                       new org.apache.axis2.databinding.ADBDataSource(this,parentQName);
-               return factory.createOMElement(dataSource,parentQName);
-            
-       }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                                       XMLStreamWriter xmlWriter)
-                                throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-                           serialize(parentQName,xmlWriter,false);
-         }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                               XMLStreamWriter xmlWriter,
-                               boolean serializeType)
-            throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-            
-                
-
-
-                java.lang.String prefix = null;
-                java.lang.String namespace = null;
-                
-
-                    prefix = parentQName.getPrefix();
-                    namespace = parentQName.getNamespaceURI();
-
-                    if ((namespace != null) && (namespace.trim().length() > 0)) {
-                        java.lang.String writerPrefix = xmlWriter.getPrefix(namespace);
-                        if (writerPrefix != null) {
-                            xmlWriter.writeStartElement(namespace, parentQName.getLocalPart());
-                        } else {
-                            if (prefix == null) {
-                                prefix = generatePrefix(namespace);
-                            }
-
-                            xmlWriter.writeStartElement(prefix, parentQName.getLocalPart(), namespace);
-                            xmlWriter.writeNamespace(prefix, namespace);
-                            xmlWriter.setPrefix(prefix, namespace);
-                        }
-                    } else {
-                        xmlWriter.writeStartElement(parentQName.getLocalPart());
-                    }
-                
-                  if (serializeType){
-               
-                   java.lang.String namespacePrefix = registerPrefix(xmlWriter,"http://schemas.xmlsoap.org/soap/encoding/");
-                   if ((namespacePrefix != null) && (namespacePrefix.trim().length() > 0)){
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           namespacePrefix+":time",
-                           xmlWriter);
-                   } else {
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           "time",
-                           xmlWriter);
-                   }
-
-               
-                   }
-               
-
-                                          if (localTime==null){
-                                              // write the nil attribute
-                                              
-                                                     throw new org.apache.axis2.databinding.ADBException("time cannot be null!!");
-                                                  
-                                          }else{
-
-                                        
-                                                   xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(localTime));
-                                            
-                                          }
-                                    
-                    xmlWriter.writeEndElement();
-               
-
-        }
-
-         /**
-          * Util method to write an attribute with the ns prefix
-          */
-          private void writeAttribute(java.lang.String prefix,java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-              if (xmlWriter.getPrefix(namespace) == null) {
-                       xmlWriter.writeNamespace(prefix, namespace);
-                       xmlWriter.setPrefix(prefix, namespace);
-
-              }
-
-              xmlWriter.writeAttribute(namespace,attName,attValue);
-
-         }
-
-        /**
-          * Util method to write an attribute without the ns prefix
-          */
-          private void writeAttribute(java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-                if (namespace.equals(""))
-              {
-                  xmlWriter.writeAttribute(attName,attValue);
-              }
-              else
-              {
-                  registerPrefix(xmlWriter, namespace);
-                  xmlWriter.writeAttribute(namespace,attName,attValue);
-              }
-          }
-
-
-           /**
-             * Util method to write an attribute without the ns prefix
-             */
-            private void writeQNameAttribute(java.lang.String namespace, java.lang.String attName,
-                                             javax.xml.namespace.QName qname, javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-                java.lang.String attributeNamespace = qname.getNamespaceURI();
-                java.lang.String attributePrefix = xmlWriter.getPrefix(attributeNamespace);
-                if (attributePrefix == null) {
-                    attributePrefix = registerPrefix(xmlWriter, attributeNamespace);
-                }
-                java.lang.String attributeValue;
-                if (attributePrefix.trim().length() > 0) {
-                    attributeValue = attributePrefix + ":" + qname.getLocalPart();
-                } else {
-                    attributeValue = qname.getLocalPart();
-                }
-
-                if (namespace.equals("")) {
-                    xmlWriter.writeAttribute(attName, attributeValue);
-                } else {
-                    registerPrefix(xmlWriter, namespace);
-                    xmlWriter.writeAttribute(namespace, attName, attributeValue);
-                }
-            }
-        /**
-         *  method to handle Qnames
-         */
-
-        private void writeQName(javax.xml.namespace.QName qname,
-                                javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-            java.lang.String namespaceURI = qname.getNamespaceURI();
-            if (namespaceURI != null) {
-                java.lang.String prefix = xmlWriter.getPrefix(namespaceURI);
-                if (prefix == null) {
-                    prefix = generatePrefix(namespaceURI);
-                    xmlWriter.writeNamespace(prefix, namespaceURI);
-                    xmlWriter.setPrefix(prefix,namespaceURI);
-                }
-
-                if (prefix.trim().length() > 0){
-                    xmlWriter.writeCharacters(prefix + ":" + org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                } else {
-                    // i.e this is the default namespace
-                    xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                }
-
-            } else {
-                xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-            }
-        }
-
-        private void writeQNames(javax.xml.namespace.QName[] qnames,
-                                 javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-            if (qnames != null) {
-                // we have to store this data until last moment since it is not possible to write any
-                // namespace data after writing the charactor data
-                java.lang.StringBuffer stringToWrite = new java.lang.StringBuffer();
-                java.lang.String namespaceURI = null;
-                java.lang.String prefix = null;
-
-                for (int i = 0; i < qnames.length; i++) {
-                    if (i > 0) {
-                        stringToWrite.append(" ");
-                    }
-                    namespaceURI = qnames[i].getNamespaceURI();
-                    if (namespaceURI != null) {
-                        prefix = xmlWriter.getPrefix(namespaceURI);
-                        if ((prefix == null) || (prefix.length() == 0)) {
-                            prefix = generatePrefix(namespaceURI);
-                            xmlWriter.writeNamespace(prefix, namespaceURI);
-                            xmlWriter.setPrefix(prefix,namespaceURI);
-                        }
-
-                        if (prefix.trim().length() > 0){
-                            stringToWrite.append(prefix).append(":").append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        } else {
-                            stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        }
-                    } else {
-                        stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                    }
-                }
-                xmlWriter.writeCharacters(stringToWrite.toString());
-            }
-
-        }
-
-
-         /**
-         * Register a namespace prefix
-         */
-         private java.lang.String registerPrefix(javax.xml.stream.XMLStreamWriter xmlWriter, java.lang.String namespace) throws javax.xml.stream.XMLStreamException {
-                java.lang.String prefix = xmlWriter.getPrefix(namespace);
-
-                if (prefix == null) {
-                    prefix = generatePrefix(namespace);
-                    javax.xml.namespace.NamespaceContext nsContext = xmlWriter.getNamespaceContext();
-                    while (true) {
-                        java.lang.String uri = nsContext.getNamespaceURI(prefix);
-                        if (uri == null || uri.length() == 0) {
-                            break;
-                        }
-                        prefix = org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-                    }
-                    xmlWriter.writeNamespace(prefix, namespace);
-                    xmlWriter.setPrefix(prefix, namespace);
-                }
-
-                return prefix;
-            }
-
-
-  
-     /**
-      *  Factory class that keeps the parse method
-      */
-    public static class Factory{
-
-        
-        
-                public static Time fromString(java.lang.String value,
-                                                    java.lang.String namespaceURI){
-                    Time returnValue = new  Time();
-                    
-                            returnValue.setTime(
-                                org.apache.axis2.databinding.utils.ConverterUtil.convertToTime(value));
-                        
-
-                    return returnValue;
-                }
-
-                public static Time fromString(javax.xml.stream.XMLStreamReader xmlStreamReader,
-                                                                    java.lang.String content) {
-                    if (content.indexOf(":") > -1){
-                        java.lang.String prefix = content.substring(0,content.indexOf(":"));
-                        java.lang.String namespaceUri = xmlStreamReader.getNamespaceContext().getNamespaceURI(prefix);
-                        return Time.Factory.fromString(content,namespaceUri);
-                    } else {
-                       return Time.Factory.fromString(content,"");
-                    }
-                }
-
-            
-
-        /**
-        * static method to create the object
-        * Precondition:  If this object is an element, the current or next start element starts this object and any intervening reader events are ignorable
-        *                If this object is not an element, it is a complex type and the reader is at the event just after the outer start element
-        * Postcondition: If this object is an element, the reader is positioned at its end element
-        *                If this object is a complex type, the reader is positioned at the end element of its outer element
-        */
-        public static Time parse(javax.xml.stream.XMLStreamReader reader) throws java.lang.Exception{
-            Time object =
-                new Time();
-
-            int event;
-            java.lang.String nillableValue = null;
-            java.lang.String prefix ="";
-            java.lang.String namespaceuri ="";
-            try {
-                
-                while (!reader.isStartElement() && !reader.isEndElement())
-                    reader.next();
-
-                
-                if (reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance","type")!=null){
-                  java.lang.String fullTypeName = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance",
-                        "type");
-                  if (fullTypeName!=null){
-                    java.lang.String nsPrefix = null;
-                    if (fullTypeName.indexOf(":") > -1){
-                        nsPrefix = fullTypeName.substring(0,fullTypeName.indexOf(":"));
-                    }
-                    nsPrefix = nsPrefix==null?"":nsPrefix;
-
-                    java.lang.String type = fullTypeName.substring(fullTypeName.indexOf(":")+1);
-                    
-                            if (!"time".equals(type)){
-                                //find namespace for the prefix
-                                java.lang.String nsUri = reader.getNamespaceContext().getNamespaceURI(nsPrefix);
-                                return (Time)org.apache.axis2.databinding.types.soapencoding.ExtensionMapper.getTypeObject(
-                                     nsUri,type,reader);
-                              }
-                        
-
-                  }
-                
-
-                }
-
-                
-
-                
-                // Note all attributes that were handled. Used to differ normal attributes
-                // from anyAttributes.
-                java.util.Vector handledAttributes = new java.util.Vector();
-                
-
-                    
-                while(!reader.isEndElement()) {
-                    if (reader.isStartElement()  || reader.hasText()){
-                
-                                    if (reader.isStartElement()  || reader.hasText()){
-                                
-                                    java.lang.String content = reader.getElementText();
-                                    
-                                              object.setTime(
-                                                    org.apache.axis2.databinding.utils.ConverterUtil.convertToTime(content));
-                                            
-                              }  // End of if for expected property start element
-                                
-                             else{
-                                        // A start element we are not expecting indicates an invalid parameter was passed
-                                        throw new org.apache.axis2.databinding.ADBException("Unexpected subelement " + reader.getLocalName());
-                             }
-                          
-                             } else {
-                                reader.next();
-                             }  
-                           }  // end of while loop
-                        
-
-
-
-            } catch (javax.xml.stream.XMLStreamException e) {
-                throw new java.lang.Exception(e);
-            }
-
-            return object;
-        }
-
-        }//end of factory class
-
-        
-
-        }
-           
-          
\ No newline at end of file
diff --git a/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/Token.java b/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/Token.java
deleted file mode 100644
index 7ad19a7..0000000
--- a/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/Token.java
+++ /dev/null
@@ -1,469 +0,0 @@
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/**
- * Token.java
- *
- * This file was auto-generated from WSDL
- * by the Apache Axis2 version: SNAPSHOT  Built on : Dec 21, 2007 (04:03:30 LKT)
- */
-            
-                package org.apache.axis2.databinding.types.soapencoding;
-
-import javax.xml.stream.XMLStreamWriter;
-            
-
-            /**
-            *  Token bean class
-            */
-        
-        public  class Token
-        implements org.apache.axis2.databinding.ADBBean{
-        /* This type was generated from the piece of schema that had
-                name = token
-                Namespace URI = http://schemas.xmlsoap.org/soap/encoding/
-                Namespace Prefix = ns1
-                */
-            
-
-        private static java.lang.String generatePrefix(java.lang.String namespace) {
-            if(namespace.equals("http://schemas.xmlsoap.org/soap/encoding/")){
-                return "SOAP-ENC";
-            }
-            return org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-        }
-
-        
-
-                        /**
-                        * field for Token
-                        */
-
-                        
-                                    protected org.apache.axis2.databinding.types.Token localToken ;
-                                
-
-                           /**
-                           * Auto generated getter method
-                           * @return org.apache.axis2.databinding.types.Token
-                           */
-                           public  org.apache.axis2.databinding.types.Token getToken(){
-                               return localToken;
-                           }
-
-                           
-                        
-                            /**
-                               * Auto generated setter method
-                               * @param param Token
-                               */
-                               public void setToken(org.apache.axis2.databinding.types.Token param){
-                            
-                                            this.localToken=param;
-                                    
-
-                               }
-                            
-
-                            public java.lang.String toString(){
-                                
-                                        return localToken.toString();
-                                    
-                            }
-                        
-
-     /**
-     * isReaderMTOMAware
-     * @return true if the reader supports MTOM
-     */
-   public static boolean isReaderMTOMAware(javax.xml.stream.XMLStreamReader reader) {
-        boolean isReaderMTOMAware = false;
-        
-        try{
-          isReaderMTOMAware = java.lang.Boolean.TRUE.equals(reader.getProperty(org.apache.axiom.om.OMConstants.IS_DATA_HANDLERS_AWARE));
-        }catch(java.lang.IllegalArgumentException e){
-          isReaderMTOMAware = false;
-        }
-        return isReaderMTOMAware;
-   }
-     
-     
-        /**
-        *
-        * @param parentQName
-        * @param factory
-        * @return org.apache.axiom.om.OMElement
-        */
-       public org.apache.axiom.om.OMElement getOMElement (
-               final javax.xml.namespace.QName parentQName,
-               final org.apache.axiom.om.OMFactory factory) throws org.apache.axis2.databinding.ADBException{
-
-
-        
-               org.apache.axiom.om.OMDataSource dataSource =
-                       new org.apache.axis2.databinding.ADBDataSource(this,parentQName);
-               return factory.createOMElement(dataSource,parentQName);
-            
-       }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                                       XMLStreamWriter xmlWriter)
-                                throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-                           serialize(parentQName,xmlWriter,false);
-         }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                               XMLStreamWriter xmlWriter,
-                               boolean serializeType)
-            throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-            
-                
-
-
-                java.lang.String prefix = null;
-                java.lang.String namespace = null;
-                
-
-                    prefix = parentQName.getPrefix();
-                    namespace = parentQName.getNamespaceURI();
-
-                    if ((namespace != null) && (namespace.trim().length() > 0)) {
-                        java.lang.String writerPrefix = xmlWriter.getPrefix(namespace);
-                        if (writerPrefix != null) {
-                            xmlWriter.writeStartElement(namespace, parentQName.getLocalPart());
-                        } else {
-                            if (prefix == null) {
-                                prefix = generatePrefix(namespace);
-                            }
-
-                            xmlWriter.writeStartElement(prefix, parentQName.getLocalPart(), namespace);
-                            xmlWriter.writeNamespace(prefix, namespace);
-                            xmlWriter.setPrefix(prefix, namespace);
-                        }
-                    } else {
-                        xmlWriter.writeStartElement(parentQName.getLocalPart());
-                    }
-                
-                  if (serializeType){
-               
-                   java.lang.String namespacePrefix = registerPrefix(xmlWriter,"http://schemas.xmlsoap.org/soap/encoding/");
-                   if ((namespacePrefix != null) && (namespacePrefix.trim().length() > 0)){
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           namespacePrefix+":token",
-                           xmlWriter);
-                   } else {
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           "token",
-                           xmlWriter);
-                   }
-
-               
-                   }
-               
-
-                                          if (localToken==null){
-                                              // write the nil attribute
-                                              
-                                                     throw new org.apache.axis2.databinding.ADBException("token cannot be null!!");
-                                                  
-                                          }else{
-
-                                        
-                                                   xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(localToken));
-                                            
-                                          }
-                                    
-                    xmlWriter.writeEndElement();
-               
-
-        }
-
-         /**
-          * Util method to write an attribute with the ns prefix
-          */
-          private void writeAttribute(java.lang.String prefix,java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-              if (xmlWriter.getPrefix(namespace) == null) {
-                       xmlWriter.writeNamespace(prefix, namespace);
-                       xmlWriter.setPrefix(prefix, namespace);
-
-              }
-
-              xmlWriter.writeAttribute(namespace,attName,attValue);
-
-         }
-
-        /**
-          * Util method to write an attribute without the ns prefix
-          */
-          private void writeAttribute(java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-                if (namespace.equals(""))
-              {
-                  xmlWriter.writeAttribute(attName,attValue);
-              }
-              else
-              {
-                  registerPrefix(xmlWriter, namespace);
-                  xmlWriter.writeAttribute(namespace,attName,attValue);
-              }
-          }
-
-
-           /**
-             * Util method to write an attribute without the ns prefix
-             */
-            private void writeQNameAttribute(java.lang.String namespace, java.lang.String attName,
-                                             javax.xml.namespace.QName qname, javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-                java.lang.String attributeNamespace = qname.getNamespaceURI();
-                java.lang.String attributePrefix = xmlWriter.getPrefix(attributeNamespace);
-                if (attributePrefix == null) {
-                    attributePrefix = registerPrefix(xmlWriter, attributeNamespace);
-                }
-                java.lang.String attributeValue;
-                if (attributePrefix.trim().length() > 0) {
-                    attributeValue = attributePrefix + ":" + qname.getLocalPart();
-                } else {
-                    attributeValue = qname.getLocalPart();
-                }
-
-                if (namespace.equals("")) {
-                    xmlWriter.writeAttribute(attName, attributeValue);
-                } else {
-                    registerPrefix(xmlWriter, namespace);
-                    xmlWriter.writeAttribute(namespace, attName, attributeValue);
-                }
-            }
-        /**
-         *  method to handle Qnames
-         */
-
-        private void writeQName(javax.xml.namespace.QName qname,
-                                javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-            java.lang.String namespaceURI = qname.getNamespaceURI();
-            if (namespaceURI != null) {
-                java.lang.String prefix = xmlWriter.getPrefix(namespaceURI);
-                if (prefix == null) {
-                    prefix = generatePrefix(namespaceURI);
-                    xmlWriter.writeNamespace(prefix, namespaceURI);
-                    xmlWriter.setPrefix(prefix,namespaceURI);
-                }
-
-                if (prefix.trim().length() > 0){
-                    xmlWriter.writeCharacters(prefix + ":" + org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                } else {
-                    // i.e this is the default namespace
-                    xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                }
-
-            } else {
-                xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-            }
-        }
-
-        private void writeQNames(javax.xml.namespace.QName[] qnames,
-                                 javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-            if (qnames != null) {
-                // we have to store this data until last moment since it is not possible to write any
-                // namespace data after writing the charactor data
-                java.lang.StringBuffer stringToWrite = new java.lang.StringBuffer();
-                java.lang.String namespaceURI = null;
-                java.lang.String prefix = null;
-
-                for (int i = 0; i < qnames.length; i++) {
-                    if (i > 0) {
-                        stringToWrite.append(" ");
-                    }
-                    namespaceURI = qnames[i].getNamespaceURI();
-                    if (namespaceURI != null) {
-                        prefix = xmlWriter.getPrefix(namespaceURI);
-                        if ((prefix == null) || (prefix.length() == 0)) {
-                            prefix = generatePrefix(namespaceURI);
-                            xmlWriter.writeNamespace(prefix, namespaceURI);
-                            xmlWriter.setPrefix(prefix,namespaceURI);
-                        }
-
-                        if (prefix.trim().length() > 0){
-                            stringToWrite.append(prefix).append(":").append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        } else {
-                            stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        }
-                    } else {
-                        stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                    }
-                }
-                xmlWriter.writeCharacters(stringToWrite.toString());
-            }
-
-        }
-
-
-         /**
-         * Register a namespace prefix
-         */
-         private java.lang.String registerPrefix(javax.xml.stream.XMLStreamWriter xmlWriter, java.lang.String namespace) throws javax.xml.stream.XMLStreamException {
-                java.lang.String prefix = xmlWriter.getPrefix(namespace);
-
-                if (prefix == null) {
-                    prefix = generatePrefix(namespace);
-                    javax.xml.namespace.NamespaceContext nsContext = xmlWriter.getNamespaceContext();
-                    while (true) {
-                        java.lang.String uri = nsContext.getNamespaceURI(prefix);
-                        if (uri == null || uri.length() == 0) {
-                            break;
-                        }
-                        prefix = org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-                    }
-                    xmlWriter.writeNamespace(prefix, namespace);
-                    xmlWriter.setPrefix(prefix, namespace);
-                }
-
-                return prefix;
-            }
-
-
-  
-     /**
-      *  Factory class that keeps the parse method
-      */
-    public static class Factory{
-
-        
-        
-                public static Token fromString(java.lang.String value,
-                                                    java.lang.String namespaceURI){
-                    Token returnValue = new  Token();
-                    
-                            returnValue.setToken(
-                                org.apache.axis2.databinding.utils.ConverterUtil.convertToToken(value));
-                        
-
-                    return returnValue;
-                }
-
-                public static Token fromString(javax.xml.stream.XMLStreamReader xmlStreamReader,
-                                                                    java.lang.String content) {
-                    if (content.indexOf(":") > -1){
-                        java.lang.String prefix = content.substring(0,content.indexOf(":"));
-                        java.lang.String namespaceUri = xmlStreamReader.getNamespaceContext().getNamespaceURI(prefix);
-                        return Token.Factory.fromString(content,namespaceUri);
-                    } else {
-                       return Token.Factory.fromString(content,"");
-                    }
-                }
-
-            
-
-        /**
-        * static method to create the object
-        * Precondition:  If this object is an element, the current or next start element starts this object and any intervening reader events are ignorable
-        *                If this object is not an element, it is a complex type and the reader is at the event just after the outer start element
-        * Postcondition: If this object is an element, the reader is positioned at its end element
-        *                If this object is a complex type, the reader is positioned at the end element of its outer element
-        */
-        public static Token parse(javax.xml.stream.XMLStreamReader reader) throws java.lang.Exception{
-            Token object =
-                new Token();
-
-            int event;
-            java.lang.String nillableValue = null;
-            java.lang.String prefix ="";
-            java.lang.String namespaceuri ="";
-            try {
-                
-                while (!reader.isStartElement() && !reader.isEndElement())
-                    reader.next();
-
-                
-                if (reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance","type")!=null){
-                  java.lang.String fullTypeName = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance",
-                        "type");
-                  if (fullTypeName!=null){
-                    java.lang.String nsPrefix = null;
-                    if (fullTypeName.indexOf(":") > -1){
-                        nsPrefix = fullTypeName.substring(0,fullTypeName.indexOf(":"));
-                    }
-                    nsPrefix = nsPrefix==null?"":nsPrefix;
-
-                    java.lang.String type = fullTypeName.substring(fullTypeName.indexOf(":")+1);
-                    
-                            if (!"token".equals(type)){
-                                //find namespace for the prefix
-                                java.lang.String nsUri = reader.getNamespaceContext().getNamespaceURI(nsPrefix);
-                                return (Token)org.apache.axis2.databinding.types.soapencoding.ExtensionMapper.getTypeObject(
-                                     nsUri,type,reader);
-                              }
-                        
-
-                  }
-                
-
-                }
-
-                
-
-                
-                // Note all attributes that were handled. Used to differ normal attributes
-                // from anyAttributes.
-                java.util.Vector handledAttributes = new java.util.Vector();
-                
-
-                    
-                while(!reader.isEndElement()) {
-                    if (reader.isStartElement()  || reader.hasText()){
-                
-                                    if (reader.isStartElement()  || reader.hasText()){
-                                
-                                    java.lang.String content = reader.getElementText();
-                                    
-                                              object.setToken(
-                                                    org.apache.axis2.databinding.utils.ConverterUtil.convertToToken(content));
-                                            
-                              }  // End of if for expected property start element
-                                
-                             else{
-                                        // A start element we are not expecting indicates an invalid parameter was passed
-                                        throw new org.apache.axis2.databinding.ADBException("Unexpected subelement " + reader.getLocalName());
-                             }
-                          
-                             } else {
-                                reader.next();
-                             }  
-                           }  // end of while loop
-                        
-
-
-
-            } catch (javax.xml.stream.XMLStreamException e) {
-                throw new java.lang.Exception(e);
-            }
-
-            return object;
-        }
-
-        }//end of factory class
-
-        
-
-        }
-           
-          
\ No newline at end of file
diff --git a/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/UnsignedByte.java b/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/UnsignedByte.java
deleted file mode 100644
index 899752c..0000000
--- a/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/UnsignedByte.java
+++ /dev/null
@@ -1,469 +0,0 @@
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/**
- * UnsignedByte.java
- *
- * This file was auto-generated from WSDL
- * by the Apache Axis2 version: SNAPSHOT  Built on : Dec 21, 2007 (04:03:30 LKT)
- */
-            
-                package org.apache.axis2.databinding.types.soapencoding;
-
-import javax.xml.stream.XMLStreamWriter;
-            
-
-            /**
-            *  UnsignedByte bean class
-            */
-        
-        public  class UnsignedByte
-        implements org.apache.axis2.databinding.ADBBean{
-        /* This type was generated from the piece of schema that had
-                name = unsignedByte
-                Namespace URI = http://schemas.xmlsoap.org/soap/encoding/
-                Namespace Prefix = ns1
-                */
-            
-
-        private static java.lang.String generatePrefix(java.lang.String namespace) {
-            if(namespace.equals("http://schemas.xmlsoap.org/soap/encoding/")){
-                return "SOAP-ENC";
-            }
-            return org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-        }
-
-        
-
-                        /**
-                        * field for UnsignedByte
-                        */
-
-                        
-                                    protected org.apache.axis2.databinding.types.UnsignedByte localUnsignedByte ;
-                                
-
-                           /**
-                           * Auto generated getter method
-                           * @return org.apache.axis2.databinding.types.UnsignedByte
-                           */
-                           public  org.apache.axis2.databinding.types.UnsignedByte getUnsignedByte(){
-                               return localUnsignedByte;
-                           }
-
-                           
-                        
-                            /**
-                               * Auto generated setter method
-                               * @param param UnsignedByte
-                               */
-                               public void setUnsignedByte(org.apache.axis2.databinding.types.UnsignedByte param){
-                            
-                                            this.localUnsignedByte=param;
-                                    
-
-                               }
-                            
-
-                            public java.lang.String toString(){
-                                
-                                        return localUnsignedByte.toString();
-                                    
-                            }
-                        
-
-     /**
-     * isReaderMTOMAware
-     * @return true if the reader supports MTOM
-     */
-   public static boolean isReaderMTOMAware(javax.xml.stream.XMLStreamReader reader) {
-        boolean isReaderMTOMAware = false;
-        
-        try{
-          isReaderMTOMAware = java.lang.Boolean.TRUE.equals(reader.getProperty(org.apache.axiom.om.OMConstants.IS_DATA_HANDLERS_AWARE));
-        }catch(java.lang.IllegalArgumentException e){
-          isReaderMTOMAware = false;
-        }
-        return isReaderMTOMAware;
-   }
-     
-     
-        /**
-        *
-        * @param parentQName
-        * @param factory
-        * @return org.apache.axiom.om.OMElement
-        */
-       public org.apache.axiom.om.OMElement getOMElement (
-               final javax.xml.namespace.QName parentQName,
-               final org.apache.axiom.om.OMFactory factory) throws org.apache.axis2.databinding.ADBException{
-
-
-        
-               org.apache.axiom.om.OMDataSource dataSource =
-                       new org.apache.axis2.databinding.ADBDataSource(this,parentQName);
-               return factory.createOMElement(dataSource,parentQName);
-            
-       }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                                       XMLStreamWriter xmlWriter)
-                                throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-                           serialize(parentQName,xmlWriter,false);
-         }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                               XMLStreamWriter xmlWriter,
-                               boolean serializeType)
-            throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-            
-                
-
-
-                java.lang.String prefix = null;
-                java.lang.String namespace = null;
-                
-
-                    prefix = parentQName.getPrefix();
-                    namespace = parentQName.getNamespaceURI();
-
-                    if ((namespace != null) && (namespace.trim().length() > 0)) {
-                        java.lang.String writerPrefix = xmlWriter.getPrefix(namespace);
-                        if (writerPrefix != null) {
-                            xmlWriter.writeStartElement(namespace, parentQName.getLocalPart());
-                        } else {
-                            if (prefix == null) {
-                                prefix = generatePrefix(namespace);
-                            }
-
-                            xmlWriter.writeStartElement(prefix, parentQName.getLocalPart(), namespace);
-                            xmlWriter.writeNamespace(prefix, namespace);
-                            xmlWriter.setPrefix(prefix, namespace);
-                        }
-                    } else {
-                        xmlWriter.writeStartElement(parentQName.getLocalPart());
-                    }
-                
-                  if (serializeType){
-               
-                   java.lang.String namespacePrefix = registerPrefix(xmlWriter,"http://schemas.xmlsoap.org/soap/encoding/");
-                   if ((namespacePrefix != null) && (namespacePrefix.trim().length() > 0)){
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           namespacePrefix+":unsignedByte",
-                           xmlWriter);
-                   } else {
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           "unsignedByte",
-                           xmlWriter);
-                   }
-
-               
-                   }
-               
-
-                                          if (localUnsignedByte==null){
-                                              // write the nil attribute
-                                              
-                                                     throw new org.apache.axis2.databinding.ADBException("unsignedByte cannot be null!!");
-                                                  
-                                          }else{
-
-                                        
-                                                   xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(localUnsignedByte));
-                                            
-                                          }
-                                    
-                    xmlWriter.writeEndElement();
-               
-
-        }
-
-         /**
-          * Util method to write an attribute with the ns prefix
-          */
-          private void writeAttribute(java.lang.String prefix,java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-              if (xmlWriter.getPrefix(namespace) == null) {
-                       xmlWriter.writeNamespace(prefix, namespace);
-                       xmlWriter.setPrefix(prefix, namespace);
-
-              }
-
-              xmlWriter.writeAttribute(namespace,attName,attValue);
-
-         }
-
-        /**
-          * Util method to write an attribute without the ns prefix
-          */
-          private void writeAttribute(java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-                if (namespace.equals(""))
-              {
-                  xmlWriter.writeAttribute(attName,attValue);
-              }
-              else
-              {
-                  registerPrefix(xmlWriter, namespace);
-                  xmlWriter.writeAttribute(namespace,attName,attValue);
-              }
-          }
-
-
-           /**
-             * Util method to write an attribute without the ns prefix
-             */
-            private void writeQNameAttribute(java.lang.String namespace, java.lang.String attName,
-                                             javax.xml.namespace.QName qname, javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-                java.lang.String attributeNamespace = qname.getNamespaceURI();
-                java.lang.String attributePrefix = xmlWriter.getPrefix(attributeNamespace);
-                if (attributePrefix == null) {
-                    attributePrefix = registerPrefix(xmlWriter, attributeNamespace);
-                }
-                java.lang.String attributeValue;
-                if (attributePrefix.trim().length() > 0) {
-                    attributeValue = attributePrefix + ":" + qname.getLocalPart();
-                } else {
-                    attributeValue = qname.getLocalPart();
-                }
-
-                if (namespace.equals("")) {
-                    xmlWriter.writeAttribute(attName, attributeValue);
-                } else {
-                    registerPrefix(xmlWriter, namespace);
-                    xmlWriter.writeAttribute(namespace, attName, attributeValue);
-                }
-            }
-        /**
-         *  method to handle Qnames
-         */
-
-        private void writeQName(javax.xml.namespace.QName qname,
-                                javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-            java.lang.String namespaceURI = qname.getNamespaceURI();
-            if (namespaceURI != null) {
-                java.lang.String prefix = xmlWriter.getPrefix(namespaceURI);
-                if (prefix == null) {
-                    prefix = generatePrefix(namespaceURI);
-                    xmlWriter.writeNamespace(prefix, namespaceURI);
-                    xmlWriter.setPrefix(prefix,namespaceURI);
-                }
-
-                if (prefix.trim().length() > 0){
-                    xmlWriter.writeCharacters(prefix + ":" + org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                } else {
-                    // i.e this is the default namespace
-                    xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                }
-
-            } else {
-                xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-            }
-        }
-
-        private void writeQNames(javax.xml.namespace.QName[] qnames,
-                                 javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-            if (qnames != null) {
-                // we have to store this data until last moment since it is not possible to write any
-                // namespace data after writing the charactor data
-                java.lang.StringBuffer stringToWrite = new java.lang.StringBuffer();
-                java.lang.String namespaceURI = null;
-                java.lang.String prefix = null;
-
-                for (int i = 0; i < qnames.length; i++) {
-                    if (i > 0) {
-                        stringToWrite.append(" ");
-                    }
-                    namespaceURI = qnames[i].getNamespaceURI();
-                    if (namespaceURI != null) {
-                        prefix = xmlWriter.getPrefix(namespaceURI);
-                        if ((prefix == null) || (prefix.length() == 0)) {
-                            prefix = generatePrefix(namespaceURI);
-                            xmlWriter.writeNamespace(prefix, namespaceURI);
-                            xmlWriter.setPrefix(prefix,namespaceURI);
-                        }
-
-                        if (prefix.trim().length() > 0){
-                            stringToWrite.append(prefix).append(":").append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        } else {
-                            stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        }
-                    } else {
-                        stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                    }
-                }
-                xmlWriter.writeCharacters(stringToWrite.toString());
-            }
-
-        }
-
-
-         /**
-         * Register a namespace prefix
-         */
-         private java.lang.String registerPrefix(javax.xml.stream.XMLStreamWriter xmlWriter, java.lang.String namespace) throws javax.xml.stream.XMLStreamException {
-                java.lang.String prefix = xmlWriter.getPrefix(namespace);
-
-                if (prefix == null) {
-                    prefix = generatePrefix(namespace);
-                    javax.xml.namespace.NamespaceContext nsContext = xmlWriter.getNamespaceContext();
-                    while (true) {
-                        java.lang.String uri = nsContext.getNamespaceURI(prefix);
-                        if (uri == null || uri.length() == 0) {
-                            break;
-                        }
-                        prefix = org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-                    }
-                    xmlWriter.writeNamespace(prefix, namespace);
-                    xmlWriter.setPrefix(prefix, namespace);
-                }
-
-                return prefix;
-            }
-
-
-  
-     /**
-      *  Factory class that keeps the parse method
-      */
-    public static class Factory{
-
-        
-        
-                public static UnsignedByte fromString(java.lang.String value,
-                                                    java.lang.String namespaceURI){
-                    UnsignedByte returnValue = new  UnsignedByte();
-                    
-                            returnValue.setUnsignedByte(
-                                org.apache.axis2.databinding.utils.ConverterUtil.convertToUnsignedByte(value));
-                        
-
-                    return returnValue;
-                }
-
-                public static UnsignedByte fromString(javax.xml.stream.XMLStreamReader xmlStreamReader,
-                                                                    java.lang.String content) {
-                    if (content.indexOf(":") > -1){
-                        java.lang.String prefix = content.substring(0,content.indexOf(":"));
-                        java.lang.String namespaceUri = xmlStreamReader.getNamespaceContext().getNamespaceURI(prefix);
-                        return UnsignedByte.Factory.fromString(content,namespaceUri);
-                    } else {
-                       return UnsignedByte.Factory.fromString(content,"");
-                    }
-                }
-
-            
-
-        /**
-        * static method to create the object
-        * Precondition:  If this object is an element, the current or next start element starts this object and any intervening reader events are ignorable
-        *                If this object is not an element, it is a complex type and the reader is at the event just after the outer start element
-        * Postcondition: If this object is an element, the reader is positioned at its end element
-        *                If this object is a complex type, the reader is positioned at the end element of its outer element
-        */
-        public static UnsignedByte parse(javax.xml.stream.XMLStreamReader reader) throws java.lang.Exception{
-            UnsignedByte object =
-                new UnsignedByte();
-
-            int event;
-            java.lang.String nillableValue = null;
-            java.lang.String prefix ="";
-            java.lang.String namespaceuri ="";
-            try {
-                
-                while (!reader.isStartElement() && !reader.isEndElement())
-                    reader.next();
-
-                
-                if (reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance","type")!=null){
-                  java.lang.String fullTypeName = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance",
-                        "type");
-                  if (fullTypeName!=null){
-                    java.lang.String nsPrefix = null;
-                    if (fullTypeName.indexOf(":") > -1){
-                        nsPrefix = fullTypeName.substring(0,fullTypeName.indexOf(":"));
-                    }
-                    nsPrefix = nsPrefix==null?"":nsPrefix;
-
-                    java.lang.String type = fullTypeName.substring(fullTypeName.indexOf(":")+1);
-                    
-                            if (!"unsignedByte".equals(type)){
-                                //find namespace for the prefix
-                                java.lang.String nsUri = reader.getNamespaceContext().getNamespaceURI(nsPrefix);
-                                return (UnsignedByte)org.apache.axis2.databinding.types.soapencoding.ExtensionMapper.getTypeObject(
-                                     nsUri,type,reader);
-                              }
-                        
-
-                  }
-                
-
-                }
-
-                
-
-                
-                // Note all attributes that were handled. Used to differ normal attributes
-                // from anyAttributes.
-                java.util.Vector handledAttributes = new java.util.Vector();
-                
-
-                    
-                while(!reader.isEndElement()) {
-                    if (reader.isStartElement()  || reader.hasText()){
-                
-                                    if (reader.isStartElement()  || reader.hasText()){
-                                
-                                    java.lang.String content = reader.getElementText();
-                                    
-                                              object.setUnsignedByte(
-                                                    org.apache.axis2.databinding.utils.ConverterUtil.convertToUnsignedByte(content));
-                                            
-                              }  // End of if for expected property start element
-                                
-                             else{
-                                        // A start element we are not expecting indicates an invalid parameter was passed
-                                        throw new org.apache.axis2.databinding.ADBException("Unexpected subelement " + reader.getLocalName());
-                             }
-                          
-                             } else {
-                                reader.next();
-                             }  
-                           }  // end of while loop
-                        
-
-
-
-            } catch (javax.xml.stream.XMLStreamException e) {
-                throw new java.lang.Exception(e);
-            }
-
-            return object;
-        }
-
-        }//end of factory class
-
-        
-
-        }
-           
-          
\ No newline at end of file
diff --git a/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/UnsignedInt.java b/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/UnsignedInt.java
deleted file mode 100644
index 34eced0..0000000
--- a/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/UnsignedInt.java
+++ /dev/null
@@ -1,469 +0,0 @@
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/**
- * UnsignedInt.java
- *
- * This file was auto-generated from WSDL
- * by the Apache Axis2 version: SNAPSHOT  Built on : Dec 21, 2007 (04:03:30 LKT)
- */
-            
-                package org.apache.axis2.databinding.types.soapencoding;
-
-import javax.xml.stream.XMLStreamWriter;
-            
-
-            /**
-            *  UnsignedInt bean class
-            */
-        
-        public  class UnsignedInt
-        implements org.apache.axis2.databinding.ADBBean{
-        /* This type was generated from the piece of schema that had
-                name = unsignedInt
-                Namespace URI = http://schemas.xmlsoap.org/soap/encoding/
-                Namespace Prefix = ns1
-                */
-            
-
-        private static java.lang.String generatePrefix(java.lang.String namespace) {
-            if(namespace.equals("http://schemas.xmlsoap.org/soap/encoding/")){
-                return "SOAP-ENC";
-            }
-            return org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-        }
-
-        
-
-                        /**
-                        * field for UnsignedInt
-                        */
-
-                        
-                                    protected org.apache.axis2.databinding.types.UnsignedInt localUnsignedInt ;
-                                
-
-                           /**
-                           * Auto generated getter method
-                           * @return org.apache.axis2.databinding.types.UnsignedInt
-                           */
-                           public  org.apache.axis2.databinding.types.UnsignedInt getUnsignedInt(){
-                               return localUnsignedInt;
-                           }
-
-                           
-                        
-                            /**
-                               * Auto generated setter method
-                               * @param param UnsignedInt
-                               */
-                               public void setUnsignedInt(org.apache.axis2.databinding.types.UnsignedInt param){
-                            
-                                            this.localUnsignedInt=param;
-                                    
-
-                               }
-                            
-
-                            public java.lang.String toString(){
-                                
-                                        return localUnsignedInt.toString();
-                                    
-                            }
-                        
-
-     /**
-     * isReaderMTOMAware
-     * @return true if the reader supports MTOM
-     */
-   public static boolean isReaderMTOMAware(javax.xml.stream.XMLStreamReader reader) {
-        boolean isReaderMTOMAware = false;
-        
-        try{
-          isReaderMTOMAware = java.lang.Boolean.TRUE.equals(reader.getProperty(org.apache.axiom.om.OMConstants.IS_DATA_HANDLERS_AWARE));
-        }catch(java.lang.IllegalArgumentException e){
-          isReaderMTOMAware = false;
-        }
-        return isReaderMTOMAware;
-   }
-     
-     
-        /**
-        *
-        * @param parentQName
-        * @param factory
-        * @return org.apache.axiom.om.OMElement
-        */
-       public org.apache.axiom.om.OMElement getOMElement (
-               final javax.xml.namespace.QName parentQName,
-               final org.apache.axiom.om.OMFactory factory) throws org.apache.axis2.databinding.ADBException{
-
-
-        
-               org.apache.axiom.om.OMDataSource dataSource =
-                       new org.apache.axis2.databinding.ADBDataSource(this,parentQName);
-               return factory.createOMElement(dataSource,parentQName);
-            
-       }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                                       XMLStreamWriter xmlWriter)
-                                throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-                           serialize(parentQName,xmlWriter,false);
-         }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                               XMLStreamWriter xmlWriter,
-                               boolean serializeType)
-            throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-            
-                
-
-
-                java.lang.String prefix = null;
-                java.lang.String namespace = null;
-                
-
-                    prefix = parentQName.getPrefix();
-                    namespace = parentQName.getNamespaceURI();
-
-                    if ((namespace != null) && (namespace.trim().length() > 0)) {
-                        java.lang.String writerPrefix = xmlWriter.getPrefix(namespace);
-                        if (writerPrefix != null) {
-                            xmlWriter.writeStartElement(namespace, parentQName.getLocalPart());
-                        } else {
-                            if (prefix == null) {
-                                prefix = generatePrefix(namespace);
-                            }
-
-                            xmlWriter.writeStartElement(prefix, parentQName.getLocalPart(), namespace);
-                            xmlWriter.writeNamespace(prefix, namespace);
-                            xmlWriter.setPrefix(prefix, namespace);
-                        }
-                    } else {
-                        xmlWriter.writeStartElement(parentQName.getLocalPart());
-                    }
-                
-                  if (serializeType){
-               
-                   java.lang.String namespacePrefix = registerPrefix(xmlWriter,"http://schemas.xmlsoap.org/soap/encoding/");
-                   if ((namespacePrefix != null) && (namespacePrefix.trim().length() > 0)){
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           namespacePrefix+":unsignedInt",
-                           xmlWriter);
-                   } else {
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           "unsignedInt",
-                           xmlWriter);
-                   }
-
-               
-                   }
-               
-
-                                          if (localUnsignedInt==null){
-                                              // write the nil attribute
-                                              
-                                                     throw new org.apache.axis2.databinding.ADBException("unsignedInt cannot be null!!");
-                                                  
-                                          }else{
-
-                                        
-                                                   xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(localUnsignedInt));
-                                            
-                                          }
-                                    
-                    xmlWriter.writeEndElement();
-               
-
-        }
-
-         /**
-          * Util method to write an attribute with the ns prefix
-          */
-          private void writeAttribute(java.lang.String prefix,java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-              if (xmlWriter.getPrefix(namespace) == null) {
-                       xmlWriter.writeNamespace(prefix, namespace);
-                       xmlWriter.setPrefix(prefix, namespace);
-
-              }
-
-              xmlWriter.writeAttribute(namespace,attName,attValue);
-
-         }
-
-        /**
-          * Util method to write an attribute without the ns prefix
-          */
-          private void writeAttribute(java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-                if (namespace.equals(""))
-              {
-                  xmlWriter.writeAttribute(attName,attValue);
-              }
-              else
-              {
-                  registerPrefix(xmlWriter, namespace);
-                  xmlWriter.writeAttribute(namespace,attName,attValue);
-              }
-          }
-
-
-           /**
-             * Util method to write an attribute without the ns prefix
-             */
-            private void writeQNameAttribute(java.lang.String namespace, java.lang.String attName,
-                                             javax.xml.namespace.QName qname, javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-                java.lang.String attributeNamespace = qname.getNamespaceURI();
-                java.lang.String attributePrefix = xmlWriter.getPrefix(attributeNamespace);
-                if (attributePrefix == null) {
-                    attributePrefix = registerPrefix(xmlWriter, attributeNamespace);
-                }
-                java.lang.String attributeValue;
-                if (attributePrefix.trim().length() > 0) {
-                    attributeValue = attributePrefix + ":" + qname.getLocalPart();
-                } else {
-                    attributeValue = qname.getLocalPart();
-                }
-
-                if (namespace.equals("")) {
-                    xmlWriter.writeAttribute(attName, attributeValue);
-                } else {
-                    registerPrefix(xmlWriter, namespace);
-                    xmlWriter.writeAttribute(namespace, attName, attributeValue);
-                }
-            }
-        /**
-         *  method to handle Qnames
-         */
-
-        private void writeQName(javax.xml.namespace.QName qname,
-                                javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-            java.lang.String namespaceURI = qname.getNamespaceURI();
-            if (namespaceURI != null) {
-                java.lang.String prefix = xmlWriter.getPrefix(namespaceURI);
-                if (prefix == null) {
-                    prefix = generatePrefix(namespaceURI);
-                    xmlWriter.writeNamespace(prefix, namespaceURI);
-                    xmlWriter.setPrefix(prefix,namespaceURI);
-                }
-
-                if (prefix.trim().length() > 0){
-                    xmlWriter.writeCharacters(prefix + ":" + org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                } else {
-                    // i.e this is the default namespace
-                    xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                }
-
-            } else {
-                xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-            }
-        }
-
-        private void writeQNames(javax.xml.namespace.QName[] qnames,
-                                 javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-            if (qnames != null) {
-                // we have to store this data until last moment since it is not possible to write any
-                // namespace data after writing the charactor data
-                java.lang.StringBuffer stringToWrite = new java.lang.StringBuffer();
-                java.lang.String namespaceURI = null;
-                java.lang.String prefix = null;
-
-                for (int i = 0; i < qnames.length; i++) {
-                    if (i > 0) {
-                        stringToWrite.append(" ");
-                    }
-                    namespaceURI = qnames[i].getNamespaceURI();
-                    if (namespaceURI != null) {
-                        prefix = xmlWriter.getPrefix(namespaceURI);
-                        if ((prefix == null) || (prefix.length() == 0)) {
-                            prefix = generatePrefix(namespaceURI);
-                            xmlWriter.writeNamespace(prefix, namespaceURI);
-                            xmlWriter.setPrefix(prefix,namespaceURI);
-                        }
-
-                        if (prefix.trim().length() > 0){
-                            stringToWrite.append(prefix).append(":").append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        } else {
-                            stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        }
-                    } else {
-                        stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                    }
-                }
-                xmlWriter.writeCharacters(stringToWrite.toString());
-            }
-
-        }
-
-
-         /**
-         * Register a namespace prefix
-         */
-         private java.lang.String registerPrefix(javax.xml.stream.XMLStreamWriter xmlWriter, java.lang.String namespace) throws javax.xml.stream.XMLStreamException {
-                java.lang.String prefix = xmlWriter.getPrefix(namespace);
-
-                if (prefix == null) {
-                    prefix = generatePrefix(namespace);
-                    javax.xml.namespace.NamespaceContext nsContext = xmlWriter.getNamespaceContext();
-                    while (true) {
-                        java.lang.String uri = nsContext.getNamespaceURI(prefix);
-                        if (uri == null || uri.length() == 0) {
-                            break;
-                        }
-                        prefix = org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-                    }
-                    xmlWriter.writeNamespace(prefix, namespace);
-                    xmlWriter.setPrefix(prefix, namespace);
-                }
-
-                return prefix;
-            }
-
-
-  
-     /**
-      *  Factory class that keeps the parse method
-      */
-    public static class Factory{
-
-        
-        
-                public static UnsignedInt fromString(java.lang.String value,
-                                                    java.lang.String namespaceURI){
-                    UnsignedInt returnValue = new  UnsignedInt();
-                    
-                            returnValue.setUnsignedInt(
-                                org.apache.axis2.databinding.utils.ConverterUtil.convertToUnsignedInt(value));
-                        
-
-                    return returnValue;
-                }
-
-                public static UnsignedInt fromString(javax.xml.stream.XMLStreamReader xmlStreamReader,
-                                                                    java.lang.String content) {
-                    if (content.indexOf(":") > -1){
-                        java.lang.String prefix = content.substring(0,content.indexOf(":"));
-                        java.lang.String namespaceUri = xmlStreamReader.getNamespaceContext().getNamespaceURI(prefix);
-                        return UnsignedInt.Factory.fromString(content,namespaceUri);
-                    } else {
-                       return UnsignedInt.Factory.fromString(content,"");
-                    }
-                }
-
-            
-
-        /**
-        * static method to create the object
-        * Precondition:  If this object is an element, the current or next start element starts this object and any intervening reader events are ignorable
-        *                If this object is not an element, it is a complex type and the reader is at the event just after the outer start element
-        * Postcondition: If this object is an element, the reader is positioned at its end element
-        *                If this object is a complex type, the reader is positioned at the end element of its outer element
-        */
-        public static UnsignedInt parse(javax.xml.stream.XMLStreamReader reader) throws java.lang.Exception{
-            UnsignedInt object =
-                new UnsignedInt();
-
-            int event;
-            java.lang.String nillableValue = null;
-            java.lang.String prefix ="";
-            java.lang.String namespaceuri ="";
-            try {
-                
-                while (!reader.isStartElement() && !reader.isEndElement())
-                    reader.next();
-
-                
-                if (reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance","type")!=null){
-                  java.lang.String fullTypeName = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance",
-                        "type");
-                  if (fullTypeName!=null){
-                    java.lang.String nsPrefix = null;
-                    if (fullTypeName.indexOf(":") > -1){
-                        nsPrefix = fullTypeName.substring(0,fullTypeName.indexOf(":"));
-                    }
-                    nsPrefix = nsPrefix==null?"":nsPrefix;
-
-                    java.lang.String type = fullTypeName.substring(fullTypeName.indexOf(":")+1);
-                    
-                            if (!"unsignedInt".equals(type)){
-                                //find namespace for the prefix
-                                java.lang.String nsUri = reader.getNamespaceContext().getNamespaceURI(nsPrefix);
-                                return (UnsignedInt)org.apache.axis2.databinding.types.soapencoding.ExtensionMapper.getTypeObject(
-                                     nsUri,type,reader);
-                              }
-                        
-
-                  }
-                
-
-                }
-
-                
-
-                
-                // Note all attributes that were handled. Used to differ normal attributes
-                // from anyAttributes.
-                java.util.Vector handledAttributes = new java.util.Vector();
-                
-
-                    
-                while(!reader.isEndElement()) {
-                    if (reader.isStartElement()  || reader.hasText()){
-                
-                                    if (reader.isStartElement()  || reader.hasText()){
-                                
-                                    java.lang.String content = reader.getElementText();
-                                    
-                                              object.setUnsignedInt(
-                                                    org.apache.axis2.databinding.utils.ConverterUtil.convertToUnsignedInt(content));
-                                            
-                              }  // End of if for expected property start element
-                                
-                             else{
-                                        // A start element we are not expecting indicates an invalid parameter was passed
-                                        throw new org.apache.axis2.databinding.ADBException("Unexpected subelement " + reader.getLocalName());
-                             }
-                          
-                             } else {
-                                reader.next();
-                             }  
-                           }  // end of while loop
-                        
-
-
-
-            } catch (javax.xml.stream.XMLStreamException e) {
-                throw new java.lang.Exception(e);
-            }
-
-            return object;
-        }
-
-        }//end of factory class
-
-        
-
-        }
-           
-          
\ No newline at end of file
diff --git a/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/UnsignedLong.java b/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/UnsignedLong.java
deleted file mode 100644
index 888c8b0..0000000
--- a/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/UnsignedLong.java
+++ /dev/null
@@ -1,469 +0,0 @@
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/**
- * UnsignedLong.java
- *
- * This file was auto-generated from WSDL
- * by the Apache Axis2 version: SNAPSHOT  Built on : Dec 21, 2007 (04:03:30 LKT)
- */
-            
-                package org.apache.axis2.databinding.types.soapencoding;
-
-import javax.xml.stream.XMLStreamWriter;
-            
-
-            /**
-            *  UnsignedLong bean class
-            */
-        
-        public  class UnsignedLong
-        implements org.apache.axis2.databinding.ADBBean{
-        /* This type was generated from the piece of schema that had
-                name = unsignedLong
-                Namespace URI = http://schemas.xmlsoap.org/soap/encoding/
-                Namespace Prefix = ns1
-                */
-            
-
-        private static java.lang.String generatePrefix(java.lang.String namespace) {
-            if(namespace.equals("http://schemas.xmlsoap.org/soap/encoding/")){
-                return "SOAP-ENC";
-            }
-            return org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-        }
-
-        
-
-                        /**
-                        * field for UnsignedLong
-                        */
-
-                        
-                                    protected org.apache.axis2.databinding.types.UnsignedLong localUnsignedLong ;
-                                
-
-                           /**
-                           * Auto generated getter method
-                           * @return org.apache.axis2.databinding.types.UnsignedLong
-                           */
-                           public  org.apache.axis2.databinding.types.UnsignedLong getUnsignedLong(){
-                               return localUnsignedLong;
-                           }
-
-                           
-                        
-                            /**
-                               * Auto generated setter method
-                               * @param param UnsignedLong
-                               */
-                               public void setUnsignedLong(org.apache.axis2.databinding.types.UnsignedLong param){
-                            
-                                            this.localUnsignedLong=param;
-                                    
-
-                               }
-                            
-
-                            public java.lang.String toString(){
-                                
-                                        return localUnsignedLong.toString();
-                                    
-                            }
-                        
-
-     /**
-     * isReaderMTOMAware
-     * @return true if the reader supports MTOM
-     */
-   public static boolean isReaderMTOMAware(javax.xml.stream.XMLStreamReader reader) {
-        boolean isReaderMTOMAware = false;
-        
-        try{
-          isReaderMTOMAware = java.lang.Boolean.TRUE.equals(reader.getProperty(org.apache.axiom.om.OMConstants.IS_DATA_HANDLERS_AWARE));
-        }catch(java.lang.IllegalArgumentException e){
-          isReaderMTOMAware = false;
-        }
-        return isReaderMTOMAware;
-   }
-     
-     
-        /**
-        *
-        * @param parentQName
-        * @param factory
-        * @return org.apache.axiom.om.OMElement
-        */
-       public org.apache.axiom.om.OMElement getOMElement (
-               final javax.xml.namespace.QName parentQName,
-               final org.apache.axiom.om.OMFactory factory) throws org.apache.axis2.databinding.ADBException{
-
-
-        
-               org.apache.axiom.om.OMDataSource dataSource =
-                       new org.apache.axis2.databinding.ADBDataSource(this,parentQName);
-               return factory.createOMElement(dataSource,parentQName);
-            
-       }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                                       XMLStreamWriter xmlWriter)
-                                throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-                           serialize(parentQName,xmlWriter,false);
-         }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                               XMLStreamWriter xmlWriter,
-                               boolean serializeType)
-            throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-            
-                
-
-
-                java.lang.String prefix = null;
-                java.lang.String namespace = null;
-                
-
-                    prefix = parentQName.getPrefix();
-                    namespace = parentQName.getNamespaceURI();
-
-                    if ((namespace != null) && (namespace.trim().length() > 0)) {
-                        java.lang.String writerPrefix = xmlWriter.getPrefix(namespace);
-                        if (writerPrefix != null) {
-                            xmlWriter.writeStartElement(namespace, parentQName.getLocalPart());
-                        } else {
-                            if (prefix == null) {
-                                prefix = generatePrefix(namespace);
-                            }
-
-                            xmlWriter.writeStartElement(prefix, parentQName.getLocalPart(), namespace);
-                            xmlWriter.writeNamespace(prefix, namespace);
-                            xmlWriter.setPrefix(prefix, namespace);
-                        }
-                    } else {
-                        xmlWriter.writeStartElement(parentQName.getLocalPart());
-                    }
-                
-                  if (serializeType){
-               
-                   java.lang.String namespacePrefix = registerPrefix(xmlWriter,"http://schemas.xmlsoap.org/soap/encoding/");
-                   if ((namespacePrefix != null) && (namespacePrefix.trim().length() > 0)){
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           namespacePrefix+":unsignedLong",
-                           xmlWriter);
-                   } else {
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           "unsignedLong",
-                           xmlWriter);
-                   }
-
-               
-                   }
-               
-
-                                          if (localUnsignedLong==null){
-                                              // write the nil attribute
-                                              
-                                                     throw new org.apache.axis2.databinding.ADBException("unsignedLong cannot be null!!");
-                                                  
-                                          }else{
-
-                                        
-                                                   xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(localUnsignedLong));
-                                            
-                                          }
-                                    
-                    xmlWriter.writeEndElement();
-               
-
-        }
-
-         /**
-          * Util method to write an attribute with the ns prefix
-          */
-          private void writeAttribute(java.lang.String prefix,java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-              if (xmlWriter.getPrefix(namespace) == null) {
-                       xmlWriter.writeNamespace(prefix, namespace);
-                       xmlWriter.setPrefix(prefix, namespace);
-
-              }
-
-              xmlWriter.writeAttribute(namespace,attName,attValue);
-
-         }
-
-        /**
-          * Util method to write an attribute without the ns prefix
-          */
-          private void writeAttribute(java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-                if (namespace.equals(""))
-              {
-                  xmlWriter.writeAttribute(attName,attValue);
-              }
-              else
-              {
-                  registerPrefix(xmlWriter, namespace);
-                  xmlWriter.writeAttribute(namespace,attName,attValue);
-              }
-          }
-
-
-           /**
-             * Util method to write an attribute without the ns prefix
-             */
-            private void writeQNameAttribute(java.lang.String namespace, java.lang.String attName,
-                                             javax.xml.namespace.QName qname, javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-                java.lang.String attributeNamespace = qname.getNamespaceURI();
-                java.lang.String attributePrefix = xmlWriter.getPrefix(attributeNamespace);
-                if (attributePrefix == null) {
-                    attributePrefix = registerPrefix(xmlWriter, attributeNamespace);
-                }
-                java.lang.String attributeValue;
-                if (attributePrefix.trim().length() > 0) {
-                    attributeValue = attributePrefix + ":" + qname.getLocalPart();
-                } else {
-                    attributeValue = qname.getLocalPart();
-                }
-
-                if (namespace.equals("")) {
-                    xmlWriter.writeAttribute(attName, attributeValue);
-                } else {
-                    registerPrefix(xmlWriter, namespace);
-                    xmlWriter.writeAttribute(namespace, attName, attributeValue);
-                }
-            }
-        /**
-         *  method to handle Qnames
-         */
-
-        private void writeQName(javax.xml.namespace.QName qname,
-                                javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-            java.lang.String namespaceURI = qname.getNamespaceURI();
-            if (namespaceURI != null) {
-                java.lang.String prefix = xmlWriter.getPrefix(namespaceURI);
-                if (prefix == null) {
-                    prefix = generatePrefix(namespaceURI);
-                    xmlWriter.writeNamespace(prefix, namespaceURI);
-                    xmlWriter.setPrefix(prefix,namespaceURI);
-                }
-
-                if (prefix.trim().length() > 0){
-                    xmlWriter.writeCharacters(prefix + ":" + org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                } else {
-                    // i.e this is the default namespace
-                    xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                }
-
-            } else {
-                xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-            }
-        }
-
-        private void writeQNames(javax.xml.namespace.QName[] qnames,
-                                 javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-            if (qnames != null) {
-                // we have to store this data until last moment since it is not possible to write any
-                // namespace data after writing the charactor data
-                java.lang.StringBuffer stringToWrite = new java.lang.StringBuffer();
-                java.lang.String namespaceURI = null;
-                java.lang.String prefix = null;
-
-                for (int i = 0; i < qnames.length; i++) {
-                    if (i > 0) {
-                        stringToWrite.append(" ");
-                    }
-                    namespaceURI = qnames[i].getNamespaceURI();
-                    if (namespaceURI != null) {
-                        prefix = xmlWriter.getPrefix(namespaceURI);
-                        if ((prefix == null) || (prefix.length() == 0)) {
-                            prefix = generatePrefix(namespaceURI);
-                            xmlWriter.writeNamespace(prefix, namespaceURI);
-                            xmlWriter.setPrefix(prefix,namespaceURI);
-                        }
-
-                        if (prefix.trim().length() > 0){
-                            stringToWrite.append(prefix).append(":").append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        } else {
-                            stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        }
-                    } else {
-                        stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                    }
-                }
-                xmlWriter.writeCharacters(stringToWrite.toString());
-            }
-
-        }
-
-
-         /**
-         * Register a namespace prefix
-         */
-         private java.lang.String registerPrefix(javax.xml.stream.XMLStreamWriter xmlWriter, java.lang.String namespace) throws javax.xml.stream.XMLStreamException {
-                java.lang.String prefix = xmlWriter.getPrefix(namespace);
-
-                if (prefix == null) {
-                    prefix = generatePrefix(namespace);
-                    javax.xml.namespace.NamespaceContext nsContext = xmlWriter.getNamespaceContext();
-                    while (true) {
-                        java.lang.String uri = nsContext.getNamespaceURI(prefix);
-                        if (uri == null || uri.length() == 0) {
-                            break;
-                        }
-                        prefix = org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-                    }
-                    xmlWriter.writeNamespace(prefix, namespace);
-                    xmlWriter.setPrefix(prefix, namespace);
-                }
-
-                return prefix;
-            }
-
-
-  
-     /**
-      *  Factory class that keeps the parse method
-      */
-    public static class Factory{
-
-        
-        
-                public static UnsignedLong fromString(java.lang.String value,
-                                                    java.lang.String namespaceURI){
-                    UnsignedLong returnValue = new  UnsignedLong();
-                    
-                            returnValue.setUnsignedLong(
-                                org.apache.axis2.databinding.utils.ConverterUtil.convertToUnsignedLong(value));
-                        
-
-                    return returnValue;
-                }
-
-                public static UnsignedLong fromString(javax.xml.stream.XMLStreamReader xmlStreamReader,
-                                                                    java.lang.String content) {
-                    if (content.indexOf(":") > -1){
-                        java.lang.String prefix = content.substring(0,content.indexOf(":"));
-                        java.lang.String namespaceUri = xmlStreamReader.getNamespaceContext().getNamespaceURI(prefix);
-                        return UnsignedLong.Factory.fromString(content,namespaceUri);
-                    } else {
-                       return UnsignedLong.Factory.fromString(content,"");
-                    }
-                }
-
-            
-
-        /**
-        * static method to create the object
-        * Precondition:  If this object is an element, the current or next start element starts this object and any intervening reader events are ignorable
-        *                If this object is not an element, it is a complex type and the reader is at the event just after the outer start element
-        * Postcondition: If this object is an element, the reader is positioned at its end element
-        *                If this object is a complex type, the reader is positioned at the end element of its outer element
-        */
-        public static UnsignedLong parse(javax.xml.stream.XMLStreamReader reader) throws java.lang.Exception{
-            UnsignedLong object =
-                new UnsignedLong();
-
-            int event;
-            java.lang.String nillableValue = null;
-            java.lang.String prefix ="";
-            java.lang.String namespaceuri ="";
-            try {
-                
-                while (!reader.isStartElement() && !reader.isEndElement())
-                    reader.next();
-
-                
-                if (reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance","type")!=null){
-                  java.lang.String fullTypeName = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance",
-                        "type");
-                  if (fullTypeName!=null){
-                    java.lang.String nsPrefix = null;
-                    if (fullTypeName.indexOf(":") > -1){
-                        nsPrefix = fullTypeName.substring(0,fullTypeName.indexOf(":"));
-                    }
-                    nsPrefix = nsPrefix==null?"":nsPrefix;
-
-                    java.lang.String type = fullTypeName.substring(fullTypeName.indexOf(":")+1);
-                    
-                            if (!"unsignedLong".equals(type)){
-                                //find namespace for the prefix
-                                java.lang.String nsUri = reader.getNamespaceContext().getNamespaceURI(nsPrefix);
-                                return (UnsignedLong)org.apache.axis2.databinding.types.soapencoding.ExtensionMapper.getTypeObject(
-                                     nsUri,type,reader);
-                              }
-                        
-
-                  }
-                
-
-                }
-
-                
-
-                
-                // Note all attributes that were handled. Used to differ normal attributes
-                // from anyAttributes.
-                java.util.Vector handledAttributes = new java.util.Vector();
-                
-
-                    
-                while(!reader.isEndElement()) {
-                    if (reader.isStartElement()  || reader.hasText()){
-                
-                                    if (reader.isStartElement()  || reader.hasText()){
-                                
-                                    java.lang.String content = reader.getElementText();
-                                    
-                                              object.setUnsignedLong(
-                                                    org.apache.axis2.databinding.utils.ConverterUtil.convertToUnsignedLong(content));
-                                            
-                              }  // End of if for expected property start element
-                                
-                             else{
-                                        // A start element we are not expecting indicates an invalid parameter was passed
-                                        throw new org.apache.axis2.databinding.ADBException("Unexpected subelement " + reader.getLocalName());
-                             }
-                          
-                             } else {
-                                reader.next();
-                             }  
-                           }  // end of while loop
-                        
-
-
-
-            } catch (javax.xml.stream.XMLStreamException e) {
-                throw new java.lang.Exception(e);
-            }
-
-            return object;
-        }
-
-        }//end of factory class
-
-        
-
-        }
-           
-          
\ No newline at end of file
diff --git a/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/UnsignedShort.java b/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/UnsignedShort.java
deleted file mode 100644
index 9b3cb77..0000000
--- a/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/UnsignedShort.java
+++ /dev/null
@@ -1,469 +0,0 @@
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/**
- * UnsignedShort.java
- *
- * This file was auto-generated from WSDL
- * by the Apache Axis2 version: SNAPSHOT  Built on : Dec 21, 2007 (04:03:30 LKT)
- */
-            
-                package org.apache.axis2.databinding.types.soapencoding;
-
-import javax.xml.stream.XMLStreamWriter;
-            
-
-            /**
-            *  UnsignedShort bean class
-            */
-        
-        public  class UnsignedShort
-        implements org.apache.axis2.databinding.ADBBean{
-        /* This type was generated from the piece of schema that had
-                name = unsignedShort
-                Namespace URI = http://schemas.xmlsoap.org/soap/encoding/
-                Namespace Prefix = ns1
-                */
-            
-
-        private static java.lang.String generatePrefix(java.lang.String namespace) {
-            if(namespace.equals("http://schemas.xmlsoap.org/soap/encoding/")){
-                return "SOAP-ENC";
-            }
-            return org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-        }
-
-        
-
-                        /**
-                        * field for UnsignedShort
-                        */
-
-                        
-                                    protected org.apache.axis2.databinding.types.UnsignedShort localUnsignedShort ;
-                                
-
-                           /**
-                           * Auto generated getter method
-                           * @return org.apache.axis2.databinding.types.UnsignedShort
-                           */
-                           public  org.apache.axis2.databinding.types.UnsignedShort getUnsignedShort(){
-                               return localUnsignedShort;
-                           }
-
-                           
-                        
-                            /**
-                               * Auto generated setter method
-                               * @param param UnsignedShort
-                               */
-                               public void setUnsignedShort(org.apache.axis2.databinding.types.UnsignedShort param){
-                            
-                                            this.localUnsignedShort=param;
-                                    
-
-                               }
-                            
-
-                            public java.lang.String toString(){
-                                
-                                        return localUnsignedShort.toString();
-                                    
-                            }
-                        
-
-     /**
-     * isReaderMTOMAware
-     * @return true if the reader supports MTOM
-     */
-   public static boolean isReaderMTOMAware(javax.xml.stream.XMLStreamReader reader) {
-        boolean isReaderMTOMAware = false;
-        
-        try{
-          isReaderMTOMAware = java.lang.Boolean.TRUE.equals(reader.getProperty(org.apache.axiom.om.OMConstants.IS_DATA_HANDLERS_AWARE));
-        }catch(java.lang.IllegalArgumentException e){
-          isReaderMTOMAware = false;
-        }
-        return isReaderMTOMAware;
-   }
-     
-     
-        /**
-        *
-        * @param parentQName
-        * @param factory
-        * @return org.apache.axiom.om.OMElement
-        */
-       public org.apache.axiom.om.OMElement getOMElement (
-               final javax.xml.namespace.QName parentQName,
-               final org.apache.axiom.om.OMFactory factory) throws org.apache.axis2.databinding.ADBException{
-
-
-        
-               org.apache.axiom.om.OMDataSource dataSource =
-                       new org.apache.axis2.databinding.ADBDataSource(this,parentQName);
-               return factory.createOMElement(dataSource,parentQName);
-            
-       }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                                       XMLStreamWriter xmlWriter)
-                                throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-                           serialize(parentQName,xmlWriter,false);
-         }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                               XMLStreamWriter xmlWriter,
-                               boolean serializeType)
-            throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-            
-                
-
-
-                java.lang.String prefix = null;
-                java.lang.String namespace = null;
-                
-
-                    prefix = parentQName.getPrefix();
-                    namespace = parentQName.getNamespaceURI();
-
-                    if ((namespace != null) && (namespace.trim().length() > 0)) {
-                        java.lang.String writerPrefix = xmlWriter.getPrefix(namespace);
-                        if (writerPrefix != null) {
-                            xmlWriter.writeStartElement(namespace, parentQName.getLocalPart());
-                        } else {
-                            if (prefix == null) {
-                                prefix = generatePrefix(namespace);
-                            }
-
-                            xmlWriter.writeStartElement(prefix, parentQName.getLocalPart(), namespace);
-                            xmlWriter.writeNamespace(prefix, namespace);
-                            xmlWriter.setPrefix(prefix, namespace);
-                        }
-                    } else {
-                        xmlWriter.writeStartElement(parentQName.getLocalPart());
-                    }
-                
-                  if (serializeType){
-               
-                   java.lang.String namespacePrefix = registerPrefix(xmlWriter,"http://schemas.xmlsoap.org/soap/encoding/");
-                   if ((namespacePrefix != null) && (namespacePrefix.trim().length() > 0)){
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           namespacePrefix+":unsignedShort",
-                           xmlWriter);
-                   } else {
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           "unsignedShort",
-                           xmlWriter);
-                   }
-
-               
-                   }
-               
-
-                                          if (localUnsignedShort==null){
-                                              // write the nil attribute
-                                              
-                                                     throw new org.apache.axis2.databinding.ADBException("unsignedShort cannot be null!!");
-                                                  
-                                          }else{
-
-                                        
-                                                   xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(localUnsignedShort));
-                                            
-                                          }
-                                    
-                    xmlWriter.writeEndElement();
-               
-
-        }
-
-         /**
-          * Util method to write an attribute with the ns prefix
-          */
-          private void writeAttribute(java.lang.String prefix,java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-              if (xmlWriter.getPrefix(namespace) == null) {
-                       xmlWriter.writeNamespace(prefix, namespace);
-                       xmlWriter.setPrefix(prefix, namespace);
-
-              }
-
-              xmlWriter.writeAttribute(namespace,attName,attValue);
-
-         }
-
-        /**
-          * Util method to write an attribute without the ns prefix
-          */
-          private void writeAttribute(java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-                if (namespace.equals(""))
-              {
-                  xmlWriter.writeAttribute(attName,attValue);
-              }
-              else
-              {
-                  registerPrefix(xmlWriter, namespace);
-                  xmlWriter.writeAttribute(namespace,attName,attValue);
-              }
-          }
-
-
-           /**
-             * Util method to write an attribute without the ns prefix
-             */
-            private void writeQNameAttribute(java.lang.String namespace, java.lang.String attName,
-                                             javax.xml.namespace.QName qname, javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-                java.lang.String attributeNamespace = qname.getNamespaceURI();
-                java.lang.String attributePrefix = xmlWriter.getPrefix(attributeNamespace);
-                if (attributePrefix == null) {
-                    attributePrefix = registerPrefix(xmlWriter, attributeNamespace);
-                }
-                java.lang.String attributeValue;
-                if (attributePrefix.trim().length() > 0) {
-                    attributeValue = attributePrefix + ":" + qname.getLocalPart();
-                } else {
-                    attributeValue = qname.getLocalPart();
-                }
-
-                if (namespace.equals("")) {
-                    xmlWriter.writeAttribute(attName, attributeValue);
-                } else {
-                    registerPrefix(xmlWriter, namespace);
-                    xmlWriter.writeAttribute(namespace, attName, attributeValue);
-                }
-            }
-        /**
-         *  method to handle Qnames
-         */
-
-        private void writeQName(javax.xml.namespace.QName qname,
-                                javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-            java.lang.String namespaceURI = qname.getNamespaceURI();
-            if (namespaceURI != null) {
-                java.lang.String prefix = xmlWriter.getPrefix(namespaceURI);
-                if (prefix == null) {
-                    prefix = generatePrefix(namespaceURI);
-                    xmlWriter.writeNamespace(prefix, namespaceURI);
-                    xmlWriter.setPrefix(prefix,namespaceURI);
-                }
-
-                if (prefix.trim().length() > 0){
-                    xmlWriter.writeCharacters(prefix + ":" + org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                } else {
-                    // i.e this is the default namespace
-                    xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                }
-
-            } else {
-                xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-            }
-        }
-
-        private void writeQNames(javax.xml.namespace.QName[] qnames,
-                                 javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-            if (qnames != null) {
-                // we have to store this data until last moment since it is not possible to write any
-                // namespace data after writing the charactor data
-                java.lang.StringBuffer stringToWrite = new java.lang.StringBuffer();
-                java.lang.String namespaceURI = null;
-                java.lang.String prefix = null;
-
-                for (int i = 0; i < qnames.length; i++) {
-                    if (i > 0) {
-                        stringToWrite.append(" ");
-                    }
-                    namespaceURI = qnames[i].getNamespaceURI();
-                    if (namespaceURI != null) {
-                        prefix = xmlWriter.getPrefix(namespaceURI);
-                        if ((prefix == null) || (prefix.length() == 0)) {
-                            prefix = generatePrefix(namespaceURI);
-                            xmlWriter.writeNamespace(prefix, namespaceURI);
-                            xmlWriter.setPrefix(prefix,namespaceURI);
-                        }
-
-                        if (prefix.trim().length() > 0){
-                            stringToWrite.append(prefix).append(":").append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        } else {
-                            stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        }
-                    } else {
-                        stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                    }
-                }
-                xmlWriter.writeCharacters(stringToWrite.toString());
-            }
-
-        }
-
-
-         /**
-         * Register a namespace prefix
-         */
-         private java.lang.String registerPrefix(javax.xml.stream.XMLStreamWriter xmlWriter, java.lang.String namespace) throws javax.xml.stream.XMLStreamException {
-                java.lang.String prefix = xmlWriter.getPrefix(namespace);
-
-                if (prefix == null) {
-                    prefix = generatePrefix(namespace);
-                    javax.xml.namespace.NamespaceContext nsContext = xmlWriter.getNamespaceContext();
-                    while (true) {
-                        java.lang.String uri = nsContext.getNamespaceURI(prefix);
-                        if (uri == null || uri.length() == 0) {
-                            break;
-                        }
-                        prefix = org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-                    }
-                    xmlWriter.writeNamespace(prefix, namespace);
-                    xmlWriter.setPrefix(prefix, namespace);
-                }
-
-                return prefix;
-            }
-
-
-  
-     /**
-      *  Factory class that keeps the parse method
-      */
-    public static class Factory{
-
-        
-        
-                public static UnsignedShort fromString(java.lang.String value,
-                                                    java.lang.String namespaceURI){
-                    UnsignedShort returnValue = new  UnsignedShort();
-                    
-                            returnValue.setUnsignedShort(
-                                org.apache.axis2.databinding.utils.ConverterUtil.convertToUnsignedShort(value));
-                        
-
-                    return returnValue;
-                }
-
-                public static UnsignedShort fromString(javax.xml.stream.XMLStreamReader xmlStreamReader,
-                                                                    java.lang.String content) {
-                    if (content.indexOf(":") > -1){
-                        java.lang.String prefix = content.substring(0,content.indexOf(":"));
-                        java.lang.String namespaceUri = xmlStreamReader.getNamespaceContext().getNamespaceURI(prefix);
-                        return UnsignedShort.Factory.fromString(content,namespaceUri);
-                    } else {
-                       return UnsignedShort.Factory.fromString(content,"");
-                    }
-                }
-
-            
-
-        /**
-        * static method to create the object
-        * Precondition:  If this object is an element, the current or next start element starts this object and any intervening reader events are ignorable
-        *                If this object is not an element, it is a complex type and the reader is at the event just after the outer start element
-        * Postcondition: If this object is an element, the reader is positioned at its end element
-        *                If this object is a complex type, the reader is positioned at the end element of its outer element
-        */
-        public static UnsignedShort parse(javax.xml.stream.XMLStreamReader reader) throws java.lang.Exception{
-            UnsignedShort object =
-                new UnsignedShort();
-
-            int event;
-            java.lang.String nillableValue = null;
-            java.lang.String prefix ="";
-            java.lang.String namespaceuri ="";
-            try {
-                
-                while (!reader.isStartElement() && !reader.isEndElement())
-                    reader.next();
-
-                
-                if (reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance","type")!=null){
-                  java.lang.String fullTypeName = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance",
-                        "type");
-                  if (fullTypeName!=null){
-                    java.lang.String nsPrefix = null;
-                    if (fullTypeName.indexOf(":") > -1){
-                        nsPrefix = fullTypeName.substring(0,fullTypeName.indexOf(":"));
-                    }
-                    nsPrefix = nsPrefix==null?"":nsPrefix;
-
-                    java.lang.String type = fullTypeName.substring(fullTypeName.indexOf(":")+1);
-                    
-                            if (!"unsignedShort".equals(type)){
-                                //find namespace for the prefix
-                                java.lang.String nsUri = reader.getNamespaceContext().getNamespaceURI(nsPrefix);
-                                return (UnsignedShort)org.apache.axis2.databinding.types.soapencoding.ExtensionMapper.getTypeObject(
-                                     nsUri,type,reader);
-                              }
-                        
-
-                  }
-                
-
-                }
-
-                
-
-                
-                // Note all attributes that were handled. Used to differ normal attributes
-                // from anyAttributes.
-                java.util.Vector handledAttributes = new java.util.Vector();
-                
-
-                    
-                while(!reader.isEndElement()) {
-                    if (reader.isStartElement()  || reader.hasText()){
-                
-                                    if (reader.isStartElement()  || reader.hasText()){
-                                
-                                    java.lang.String content = reader.getElementText();
-                                    
-                                              object.setUnsignedShort(
-                                                    org.apache.axis2.databinding.utils.ConverterUtil.convertToUnsignedShort(content));
-                                            
-                              }  // End of if for expected property start element
-                                
-                             else{
-                                        // A start element we are not expecting indicates an invalid parameter was passed
-                                        throw new org.apache.axis2.databinding.ADBException("Unexpected subelement " + reader.getLocalName());
-                             }
-                          
-                             } else {
-                                reader.next();
-                             }  
-                           }  // end of while loop
-                        
-
-
-
-            } catch (javax.xml.stream.XMLStreamException e) {
-                throw new java.lang.Exception(e);
-            }
-
-            return object;
-        }
-
-        }//end of factory class
-
-        
-
-        }
-           
-          
\ No newline at end of file
diff --git a/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/_boolean.java b/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/_boolean.java
deleted file mode 100644
index 5442ab5..0000000
--- a/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/_boolean.java
+++ /dev/null
@@ -1,464 +0,0 @@
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/**
- * _boolean.java
- *
- * This file was auto-generated from WSDL
- * by the Apache Axis2 version: SNAPSHOT  Built on : Dec 21, 2007 (04:03:30 LKT)
- */
-            
-                package org.apache.axis2.databinding.types.soapencoding;
-
-import javax.xml.stream.XMLStreamWriter;
-            
-
-            /**
-            *  _boolean bean class
-            */
-        
-        public  class _boolean
-        implements org.apache.axis2.databinding.ADBBean{
-        /* This type was generated from the piece of schema that had
-                name = boolean
-                Namespace URI = http://schemas.xmlsoap.org/soap/encoding/
-                Namespace Prefix = ns1
-                */
-            
-
-        private static java.lang.String generatePrefix(java.lang.String namespace) {
-            if(namespace.equals("http://schemas.xmlsoap.org/soap/encoding/")){
-                return "SOAP-ENC";
-            }
-            return org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-        }
-
-        
-
-                        /**
-                        * field for _boolean
-                        */
-
-                        
-                                    protected boolean local_boolean ;
-                                
-
-                           /**
-                           * Auto generated getter method
-                           * @return boolean
-                           */
-                           public  boolean get_boolean(){
-                               return local_boolean;
-                           }
-
-                           
-                        
-                            /**
-                               * Auto generated setter method
-                               * @param param _boolean
-                               */
-                               public void set_boolean(boolean param){
-                            
-                                            this.local_boolean=param;
-                                    
-
-                               }
-                            
-
-                            public java.lang.String toString(){
-                                
-                                        return local_boolean + "";
-                                    
-                            }
-                        
-
-     /**
-     * isReaderMTOMAware
-     * @return true if the reader supports MTOM
-     */
-   public static boolean isReaderMTOMAware(javax.xml.stream.XMLStreamReader reader) {
-        boolean isReaderMTOMAware = false;
-        
-        try{
-          isReaderMTOMAware = java.lang.Boolean.TRUE.equals(reader.getProperty(org.apache.axiom.om.OMConstants.IS_DATA_HANDLERS_AWARE));
-        }catch(java.lang.IllegalArgumentException e){
-          isReaderMTOMAware = false;
-        }
-        return isReaderMTOMAware;
-   }
-     
-     
-        /**
-        *
-        * @param parentQName
-        * @param factory
-        * @return org.apache.axiom.om.OMElement
-        */
-       public org.apache.axiom.om.OMElement getOMElement (
-               final javax.xml.namespace.QName parentQName,
-               final org.apache.axiom.om.OMFactory factory) throws org.apache.axis2.databinding.ADBException{
-
-
-        
-               org.apache.axiom.om.OMDataSource dataSource =
-                       new org.apache.axis2.databinding.ADBDataSource(this,parentQName);
-               return factory.createOMElement(dataSource,parentQName);
-            
-       }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                                       XMLStreamWriter xmlWriter)
-                                throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-                           serialize(parentQName,xmlWriter,false);
-         }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                               XMLStreamWriter xmlWriter,
-                               boolean serializeType)
-            throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-            
-                
-
-
-                java.lang.String prefix = null;
-                java.lang.String namespace = null;
-                
-
-                    prefix = parentQName.getPrefix();
-                    namespace = parentQName.getNamespaceURI();
-
-                    if ((namespace != null) && (namespace.trim().length() > 0)) {
-                        java.lang.String writerPrefix = xmlWriter.getPrefix(namespace);
-                        if (writerPrefix != null) {
-                            xmlWriter.writeStartElement(namespace, parentQName.getLocalPart());
-                        } else {
-                            if (prefix == null) {
-                                prefix = generatePrefix(namespace);
-                            }
-
-                            xmlWriter.writeStartElement(prefix, parentQName.getLocalPart(), namespace);
-                            xmlWriter.writeNamespace(prefix, namespace);
-                            xmlWriter.setPrefix(prefix, namespace);
-                        }
-                    } else {
-                        xmlWriter.writeStartElement(parentQName.getLocalPart());
-                    }
-                
-                  if (serializeType){
-               
-                   java.lang.String namespacePrefix = registerPrefix(xmlWriter,"http://schemas.xmlsoap.org/soap/encoding/");
-                   if ((namespacePrefix != null) && (namespacePrefix.trim().length() > 0)){
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           namespacePrefix+":boolean",
-                           xmlWriter);
-                   } else {
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           "boolean",
-                           xmlWriter);
-                   }
-
-               
-                   }
-               
-                                               if (false) {
-                                           
-                                                         throw new org.apache.axis2.databinding.ADBException("boolean cannot be null!!");
-                                                      
-                                               } else {
-                                                    xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(local_boolean));
-                                               }
-                                    
-                    xmlWriter.writeEndElement();
-               
-
-        }
-
-         /**
-          * Util method to write an attribute with the ns prefix
-          */
-          private void writeAttribute(java.lang.String prefix,java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-              if (xmlWriter.getPrefix(namespace) == null) {
-                       xmlWriter.writeNamespace(prefix, namespace);
-                       xmlWriter.setPrefix(prefix, namespace);
-
-              }
-
-              xmlWriter.writeAttribute(namespace,attName,attValue);
-
-         }
-
-        /**
-          * Util method to write an attribute without the ns prefix
-          */
-          private void writeAttribute(java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-                if (namespace.equals(""))
-              {
-                  xmlWriter.writeAttribute(attName,attValue);
-              }
-              else
-              {
-                  registerPrefix(xmlWriter, namespace);
-                  xmlWriter.writeAttribute(namespace,attName,attValue);
-              }
-          }
-
-
-           /**
-             * Util method to write an attribute without the ns prefix
-             */
-            private void writeQNameAttribute(java.lang.String namespace, java.lang.String attName,
-                                             javax.xml.namespace.QName qname, javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-                java.lang.String attributeNamespace = qname.getNamespaceURI();
-                java.lang.String attributePrefix = xmlWriter.getPrefix(attributeNamespace);
-                if (attributePrefix == null) {
-                    attributePrefix = registerPrefix(xmlWriter, attributeNamespace);
-                }
-                java.lang.String attributeValue;
-                if (attributePrefix.trim().length() > 0) {
-                    attributeValue = attributePrefix + ":" + qname.getLocalPart();
-                } else {
-                    attributeValue = qname.getLocalPart();
-                }
-
-                if (namespace.equals("")) {
-                    xmlWriter.writeAttribute(attName, attributeValue);
-                } else {
-                    registerPrefix(xmlWriter, namespace);
-                    xmlWriter.writeAttribute(namespace, attName, attributeValue);
-                }
-            }
-        /**
-         *  method to handle Qnames
-         */
-
-        private void writeQName(javax.xml.namespace.QName qname,
-                                javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-            java.lang.String namespaceURI = qname.getNamespaceURI();
-            if (namespaceURI != null) {
-                java.lang.String prefix = xmlWriter.getPrefix(namespaceURI);
-                if (prefix == null) {
-                    prefix = generatePrefix(namespaceURI);
-                    xmlWriter.writeNamespace(prefix, namespaceURI);
-                    xmlWriter.setPrefix(prefix,namespaceURI);
-                }
-
-                if (prefix.trim().length() > 0){
-                    xmlWriter.writeCharacters(prefix + ":" + org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                } else {
-                    // i.e this is the default namespace
-                    xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                }
-
-            } else {
-                xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-            }
-        }
-
-        private void writeQNames(javax.xml.namespace.QName[] qnames,
-                                 javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-            if (qnames != null) {
-                // we have to store this data until last moment since it is not possible to write any
-                // namespace data after writing the charactor data
-                java.lang.StringBuffer stringToWrite = new java.lang.StringBuffer();
-                java.lang.String namespaceURI = null;
-                java.lang.String prefix = null;
-
-                for (int i = 0; i < qnames.length; i++) {
-                    if (i > 0) {
-                        stringToWrite.append(" ");
-                    }
-                    namespaceURI = qnames[i].getNamespaceURI();
-                    if (namespaceURI != null) {
-                        prefix = xmlWriter.getPrefix(namespaceURI);
-                        if ((prefix == null) || (prefix.length() == 0)) {
-                            prefix = generatePrefix(namespaceURI);
-                            xmlWriter.writeNamespace(prefix, namespaceURI);
-                            xmlWriter.setPrefix(prefix,namespaceURI);
-                        }
-
-                        if (prefix.trim().length() > 0){
-                            stringToWrite.append(prefix).append(":").append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        } else {
-                            stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        }
-                    } else {
-                        stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                    }
-                }
-                xmlWriter.writeCharacters(stringToWrite.toString());
-            }
-
-        }
-
-
-         /**
-         * Register a namespace prefix
-         */
-         private java.lang.String registerPrefix(javax.xml.stream.XMLStreamWriter xmlWriter, java.lang.String namespace) throws javax.xml.stream.XMLStreamException {
-                java.lang.String prefix = xmlWriter.getPrefix(namespace);
-
-                if (prefix == null) {
-                    prefix = generatePrefix(namespace);
-                    javax.xml.namespace.NamespaceContext nsContext = xmlWriter.getNamespaceContext();
-                    while (true) {
-                        java.lang.String uri = nsContext.getNamespaceURI(prefix);
-                        if (uri == null || uri.length() == 0) {
-                            break;
-                        }
-                        prefix = org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-                    }
-                    xmlWriter.writeNamespace(prefix, namespace);
-                    xmlWriter.setPrefix(prefix, namespace);
-                }
-
-                return prefix;
-            }
-
-
-  
-     /**
-      *  Factory class that keeps the parse method
-      */
-    public static class Factory{
-
-        
-        
-                public static _boolean fromString(java.lang.String value,
-                                                    java.lang.String namespaceURI){
-                    _boolean returnValue = new  _boolean();
-                    
-                            returnValue.set_boolean(
-                                org.apache.axis2.databinding.utils.ConverterUtil.convertToBoolean(value));
-                        
-
-                    return returnValue;
-                }
-
-                public static _boolean fromString(javax.xml.stream.XMLStreamReader xmlStreamReader,
-                                                                    java.lang.String content) {
-                    if (content.indexOf(":") > -1){
-                        java.lang.String prefix = content.substring(0,content.indexOf(":"));
-                        java.lang.String namespaceUri = xmlStreamReader.getNamespaceContext().getNamespaceURI(prefix);
-                        return _boolean.Factory.fromString(content,namespaceUri);
-                    } else {
-                       return _boolean.Factory.fromString(content,"");
-                    }
-                }
-
-            
-
-        /**
-        * static method to create the object
-        * Precondition:  If this object is an element, the current or next start element starts this object and any intervening reader events are ignorable
-        *                If this object is not an element, it is a complex type and the reader is at the event just after the outer start element
-        * Postcondition: If this object is an element, the reader is positioned at its end element
-        *                If this object is a complex type, the reader is positioned at the end element of its outer element
-        */
-        public static _boolean parse(javax.xml.stream.XMLStreamReader reader) throws java.lang.Exception{
-            _boolean object =
-                new _boolean();
-
-            int event;
-            java.lang.String nillableValue = null;
-            java.lang.String prefix ="";
-            java.lang.String namespaceuri ="";
-            try {
-                
-                while (!reader.isStartElement() && !reader.isEndElement())
-                    reader.next();
-
-                
-                if (reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance","type")!=null){
-                  java.lang.String fullTypeName = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance",
-                        "type");
-                  if (fullTypeName!=null){
-                    java.lang.String nsPrefix = null;
-                    if (fullTypeName.indexOf(":") > -1){
-                        nsPrefix = fullTypeName.substring(0,fullTypeName.indexOf(":"));
-                    }
-                    nsPrefix = nsPrefix==null?"":nsPrefix;
-
-                    java.lang.String type = fullTypeName.substring(fullTypeName.indexOf(":")+1);
-                    
-                            if (!"boolean".equals(type)){
-                                //find namespace for the prefix
-                                java.lang.String nsUri = reader.getNamespaceContext().getNamespaceURI(nsPrefix);
-                                return (_boolean)org.apache.axis2.databinding.types.soapencoding.ExtensionMapper.getTypeObject(
-                                     nsUri,type,reader);
-                              }
-                        
-
-                  }
-                
-
-                }
-
-                
-
-                
-                // Note all attributes that were handled. Used to differ normal attributes
-                // from anyAttributes.
-                java.util.Vector handledAttributes = new java.util.Vector();
-                
-
-                    
-                while(!reader.isEndElement()) {
-                    if (reader.isStartElement()  || reader.hasText()){
-                
-                                    if (reader.isStartElement()  || reader.hasText()){
-                                
-                                    java.lang.String content = reader.getElementText();
-                                    
-                                              object.set_boolean(
-                                                    org.apache.axis2.databinding.utils.ConverterUtil.convertToBoolean(content));
-                                            
-                              }  // End of if for expected property start element
-                                
-                             else{
-                                        // A start element we are not expecting indicates an invalid parameter was passed
-                                        throw new org.apache.axis2.databinding.ADBException("Unexpected subelement " + reader.getLocalName());
-                             }
-                          
-                             } else {
-                                reader.next();
-                             }  
-                           }  // end of while loop
-                        
-
-
-
-            } catch (javax.xml.stream.XMLStreamException e) {
-                throw new java.lang.Exception(e);
-            }
-
-            return object;
-        }
-
-        }//end of factory class
-
-        
-
-        }
-           
-          
\ No newline at end of file
diff --git a/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/_byte.java b/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/_byte.java
deleted file mode 100644
index cd2f883..0000000
--- a/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/_byte.java
+++ /dev/null
@@ -1,464 +0,0 @@
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/**
- * _byte.java
- *
- * This file was auto-generated from WSDL
- * by the Apache Axis2 version: SNAPSHOT  Built on : Dec 21, 2007 (04:03:30 LKT)
- */
-            
-                package org.apache.axis2.databinding.types.soapencoding;
-
-import javax.xml.stream.XMLStreamWriter;
-            
-
-            /**
-            *  _byte bean class
-            */
-        
-        public  class _byte
-        implements org.apache.axis2.databinding.ADBBean{
-        /* This type was generated from the piece of schema that had
-                name = byte
-                Namespace URI = http://schemas.xmlsoap.org/soap/encoding/
-                Namespace Prefix = ns1
-                */
-            
-
-        private static java.lang.String generatePrefix(java.lang.String namespace) {
-            if(namespace.equals("http://schemas.xmlsoap.org/soap/encoding/")){
-                return "SOAP-ENC";
-            }
-            return org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-        }
-
-        
-
-                        /**
-                        * field for _byte
-                        */
-
-                        
-                                    protected byte local_byte ;
-                                
-
-                           /**
-                           * Auto generated getter method
-                           * @return byte
-                           */
-                           public  byte get_byte(){
-                               return local_byte;
-                           }
-
-                           
-                        
-                            /**
-                               * Auto generated setter method
-                               * @param param _byte
-                               */
-                               public void set_byte(byte param){
-                            
-                                            this.local_byte=param;
-                                    
-
-                               }
-                            
-
-                            public java.lang.String toString(){
-                                
-                                        return local_byte + "";
-                                    
-                            }
-                        
-
-     /**
-     * isReaderMTOMAware
-     * @return true if the reader supports MTOM
-     */
-   public static boolean isReaderMTOMAware(javax.xml.stream.XMLStreamReader reader) {
-        boolean isReaderMTOMAware = false;
-        
-        try{
-          isReaderMTOMAware = java.lang.Boolean.TRUE.equals(reader.getProperty(org.apache.axiom.om.OMConstants.IS_DATA_HANDLERS_AWARE));
-        }catch(java.lang.IllegalArgumentException e){
-          isReaderMTOMAware = false;
-        }
-        return isReaderMTOMAware;
-   }
-     
-     
-        /**
-        *
-        * @param parentQName
-        * @param factory
-        * @return org.apache.axiom.om.OMElement
-        */
-       public org.apache.axiom.om.OMElement getOMElement (
-               final javax.xml.namespace.QName parentQName,
-               final org.apache.axiom.om.OMFactory factory) throws org.apache.axis2.databinding.ADBException{
-
-
-        
-               org.apache.axiom.om.OMDataSource dataSource =
-                       new org.apache.axis2.databinding.ADBDataSource(this,parentQName);
-               return factory.createOMElement(dataSource,parentQName);
-            
-       }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                                       XMLStreamWriter xmlWriter)
-                                throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-                           serialize(parentQName,xmlWriter,false);
-         }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                               XMLStreamWriter xmlWriter,
-                               boolean serializeType)
-            throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-            
-                
-
-
-                java.lang.String prefix = null;
-                java.lang.String namespace = null;
-                
-
-                    prefix = parentQName.getPrefix();
-                    namespace = parentQName.getNamespaceURI();
-
-                    if ((namespace != null) && (namespace.trim().length() > 0)) {
-                        java.lang.String writerPrefix = xmlWriter.getPrefix(namespace);
-                        if (writerPrefix != null) {
-                            xmlWriter.writeStartElement(namespace, parentQName.getLocalPart());
-                        } else {
-                            if (prefix == null) {
-                                prefix = generatePrefix(namespace);
-                            }
-
-                            xmlWriter.writeStartElement(prefix, parentQName.getLocalPart(), namespace);
-                            xmlWriter.writeNamespace(prefix, namespace);
-                            xmlWriter.setPrefix(prefix, namespace);
-                        }
-                    } else {
-                        xmlWriter.writeStartElement(parentQName.getLocalPart());
-                    }
-                
-                  if (serializeType){
-               
-                   java.lang.String namespacePrefix = registerPrefix(xmlWriter,"http://schemas.xmlsoap.org/soap/encoding/");
-                   if ((namespacePrefix != null) && (namespacePrefix.trim().length() > 0)){
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           namespacePrefix+":byte",
-                           xmlWriter);
-                   } else {
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           "byte",
-                           xmlWriter);
-                   }
-
-               
-                   }
-               
-                                               if (local_byte==java.lang.Byte.MIN_VALUE) {
-                                           
-                                                         throw new org.apache.axis2.databinding.ADBException("byte cannot be null!!");
-                                                      
-                                               } else {
-                                                    xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(local_byte));
-                                               }
-                                    
-                    xmlWriter.writeEndElement();
-               
-
-        }
-
-         /**
-          * Util method to write an attribute with the ns prefix
-          */
-          private void writeAttribute(java.lang.String prefix,java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-              if (xmlWriter.getPrefix(namespace) == null) {
-                       xmlWriter.writeNamespace(prefix, namespace);
-                       xmlWriter.setPrefix(prefix, namespace);
-
-              }
-
-              xmlWriter.writeAttribute(namespace,attName,attValue);
-
-         }
-
-        /**
-          * Util method to write an attribute without the ns prefix
-          */
-          private void writeAttribute(java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-                if (namespace.equals(""))
-              {
-                  xmlWriter.writeAttribute(attName,attValue);
-              }
-              else
-              {
-                  registerPrefix(xmlWriter, namespace);
-                  xmlWriter.writeAttribute(namespace,attName,attValue);
-              }
-          }
-
-
-           /**
-             * Util method to write an attribute without the ns prefix
-             */
-            private void writeQNameAttribute(java.lang.String namespace, java.lang.String attName,
-                                             javax.xml.namespace.QName qname, javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-                java.lang.String attributeNamespace = qname.getNamespaceURI();
-                java.lang.String attributePrefix = xmlWriter.getPrefix(attributeNamespace);
-                if (attributePrefix == null) {
-                    attributePrefix = registerPrefix(xmlWriter, attributeNamespace);
-                }
-                java.lang.String attributeValue;
-                if (attributePrefix.trim().length() > 0) {
-                    attributeValue = attributePrefix + ":" + qname.getLocalPart();
-                } else {
-                    attributeValue = qname.getLocalPart();
-                }
-
-                if (namespace.equals("")) {
-                    xmlWriter.writeAttribute(attName, attributeValue);
-                } else {
-                    registerPrefix(xmlWriter, namespace);
-                    xmlWriter.writeAttribute(namespace, attName, attributeValue);
-                }
-            }
-        /**
-         *  method to handle Qnames
-         */
-
-        private void writeQName(javax.xml.namespace.QName qname,
-                                javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-            java.lang.String namespaceURI = qname.getNamespaceURI();
-            if (namespaceURI != null) {
-                java.lang.String prefix = xmlWriter.getPrefix(namespaceURI);
-                if (prefix == null) {
-                    prefix = generatePrefix(namespaceURI);
-                    xmlWriter.writeNamespace(prefix, namespaceURI);
-                    xmlWriter.setPrefix(prefix,namespaceURI);
-                }
-
-                if (prefix.trim().length() > 0){
-                    xmlWriter.writeCharacters(prefix + ":" + org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                } else {
-                    // i.e this is the default namespace
-                    xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                }
-
-            } else {
-                xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-            }
-        }
-
-        private void writeQNames(javax.xml.namespace.QName[] qnames,
-                                 javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-            if (qnames != null) {
-                // we have to store this data until last moment since it is not possible to write any
-                // namespace data after writing the charactor data
-                java.lang.StringBuffer stringToWrite = new java.lang.StringBuffer();
-                java.lang.String namespaceURI = null;
-                java.lang.String prefix = null;
-
-                for (int i = 0; i < qnames.length; i++) {
-                    if (i > 0) {
-                        stringToWrite.append(" ");
-                    }
-                    namespaceURI = qnames[i].getNamespaceURI();
-                    if (namespaceURI != null) {
-                        prefix = xmlWriter.getPrefix(namespaceURI);
-                        if ((prefix == null) || (prefix.length() == 0)) {
-                            prefix = generatePrefix(namespaceURI);
-                            xmlWriter.writeNamespace(prefix, namespaceURI);
-                            xmlWriter.setPrefix(prefix,namespaceURI);
-                        }
-
-                        if (prefix.trim().length() > 0){
-                            stringToWrite.append(prefix).append(":").append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        } else {
-                            stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        }
-                    } else {
-                        stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                    }
-                }
-                xmlWriter.writeCharacters(stringToWrite.toString());
-            }
-
-        }
-
-
-         /**
-         * Register a namespace prefix
-         */
-         private java.lang.String registerPrefix(javax.xml.stream.XMLStreamWriter xmlWriter, java.lang.String namespace) throws javax.xml.stream.XMLStreamException {
-                java.lang.String prefix = xmlWriter.getPrefix(namespace);
-
-                if (prefix == null) {
-                    prefix = generatePrefix(namespace);
-                    javax.xml.namespace.NamespaceContext nsContext = xmlWriter.getNamespaceContext();
-                    while (true) {
-                        java.lang.String uri = nsContext.getNamespaceURI(prefix);
-                        if (uri == null || uri.length() == 0) {
-                            break;
-                        }
-                        prefix = org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-                    }
-                    xmlWriter.writeNamespace(prefix, namespace);
-                    xmlWriter.setPrefix(prefix, namespace);
-                }
-
-                return prefix;
-            }
-
-
-  
-     /**
-      *  Factory class that keeps the parse method
-      */
-    public static class Factory{
-
-        
-        
-                public static _byte fromString(java.lang.String value,
-                                                    java.lang.String namespaceURI){
-                    _byte returnValue = new  _byte();
-                    
-                            returnValue.set_byte(
-                                org.apache.axis2.databinding.utils.ConverterUtil.convertToByte(value));
-                        
-
-                    return returnValue;
-                }
-
-                public static _byte fromString(javax.xml.stream.XMLStreamReader xmlStreamReader,
-                                                                    java.lang.String content) {
-                    if (content.indexOf(":") > -1){
-                        java.lang.String prefix = content.substring(0,content.indexOf(":"));
-                        java.lang.String namespaceUri = xmlStreamReader.getNamespaceContext().getNamespaceURI(prefix);
-                        return _byte.Factory.fromString(content,namespaceUri);
-                    } else {
-                       return _byte.Factory.fromString(content,"");
-                    }
-                }
-
-            
-
-        /**
-        * static method to create the object
-        * Precondition:  If this object is an element, the current or next start element starts this object and any intervening reader events are ignorable
-        *                If this object is not an element, it is a complex type and the reader is at the event just after the outer start element
-        * Postcondition: If this object is an element, the reader is positioned at its end element
-        *                If this object is a complex type, the reader is positioned at the end element of its outer element
-        */
-        public static _byte parse(javax.xml.stream.XMLStreamReader reader) throws java.lang.Exception{
-            _byte object =
-                new _byte();
-
-            int event;
-            java.lang.String nillableValue = null;
-            java.lang.String prefix ="";
-            java.lang.String namespaceuri ="";
-            try {
-                
-                while (!reader.isStartElement() && !reader.isEndElement())
-                    reader.next();
-
-                
-                if (reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance","type")!=null){
-                  java.lang.String fullTypeName = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance",
-                        "type");
-                  if (fullTypeName!=null){
-                    java.lang.String nsPrefix = null;
-                    if (fullTypeName.indexOf(":") > -1){
-                        nsPrefix = fullTypeName.substring(0,fullTypeName.indexOf(":"));
-                    }
-                    nsPrefix = nsPrefix==null?"":nsPrefix;
-
-                    java.lang.String type = fullTypeName.substring(fullTypeName.indexOf(":")+1);
-                    
-                            if (!"byte".equals(type)){
-                                //find namespace for the prefix
-                                java.lang.String nsUri = reader.getNamespaceContext().getNamespaceURI(nsPrefix);
-                                return (_byte)org.apache.axis2.databinding.types.soapencoding.ExtensionMapper.getTypeObject(
-                                     nsUri,type,reader);
-                              }
-                        
-
-                  }
-                
-
-                }
-
-                
-
-                
-                // Note all attributes that were handled. Used to differ normal attributes
-                // from anyAttributes.
-                java.util.Vector handledAttributes = new java.util.Vector();
-                
-
-                    
-                while(!reader.isEndElement()) {
-                    if (reader.isStartElement()  || reader.hasText()){
-                
-                                    if (reader.isStartElement()  || reader.hasText()){
-                                
-                                    java.lang.String content = reader.getElementText();
-                                    
-                                              object.set_byte(
-                                                    org.apache.axis2.databinding.utils.ConverterUtil.convertToByte(content));
-                                            
-                              }  // End of if for expected property start element
-                                
-                             else{
-                                        // A start element we are not expecting indicates an invalid parameter was passed
-                                        throw new org.apache.axis2.databinding.ADBException("Unexpected subelement " + reader.getLocalName());
-                             }
-                          
-                             } else {
-                                reader.next();
-                             }  
-                           }  // end of while loop
-                        
-
-
-
-            } catch (javax.xml.stream.XMLStreamException e) {
-                throw new java.lang.Exception(e);
-            }
-
-            return object;
-        }
-
-        }//end of factory class
-
-        
-
-        }
-           
-          
\ No newline at end of file
diff --git a/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/_double.java b/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/_double.java
deleted file mode 100644
index a5f4190..0000000
--- a/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/_double.java
+++ /dev/null
@@ -1,464 +0,0 @@
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/**
- * _double.java
- *
- * This file was auto-generated from WSDL
- * by the Apache Axis2 version: SNAPSHOT  Built on : Dec 21, 2007 (04:03:30 LKT)
- */
-            
-                package org.apache.axis2.databinding.types.soapencoding;
-
-import javax.xml.stream.XMLStreamWriter;
-            
-
-            /**
-            *  _double bean class
-            */
-        
-        public  class _double
-        implements org.apache.axis2.databinding.ADBBean{
-        /* This type was generated from the piece of schema that had
-                name = double
-                Namespace URI = http://schemas.xmlsoap.org/soap/encoding/
-                Namespace Prefix = ns1
-                */
-            
-
-        private static java.lang.String generatePrefix(java.lang.String namespace) {
-            if(namespace.equals("http://schemas.xmlsoap.org/soap/encoding/")){
-                return "SOAP-ENC";
-            }
-            return org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-        }
-
-        
-
-                        /**
-                        * field for _double
-                        */
-
-                        
-                                    protected double local_double ;
-                                
-
-                           /**
-                           * Auto generated getter method
-                           * @return double
-                           */
-                           public  double get_double(){
-                               return local_double;
-                           }
-
-                           
-                        
-                            /**
-                               * Auto generated setter method
-                               * @param param _double
-                               */
-                               public void set_double(double param){
-                            
-                                            this.local_double=param;
-                                    
-
-                               }
-                            
-
-                            public java.lang.String toString(){
-                                
-                                        return local_double + "";
-                                    
-                            }
-                        
-
-     /**
-     * isReaderMTOMAware
-     * @return true if the reader supports MTOM
-     */
-   public static boolean isReaderMTOMAware(javax.xml.stream.XMLStreamReader reader) {
-        boolean isReaderMTOMAware = false;
-        
-        try{
-          isReaderMTOMAware = java.lang.Boolean.TRUE.equals(reader.getProperty(org.apache.axiom.om.OMConstants.IS_DATA_HANDLERS_AWARE));
-        }catch(java.lang.IllegalArgumentException e){
-          isReaderMTOMAware = false;
-        }
-        return isReaderMTOMAware;
-   }
-     
-     
-        /**
-        *
-        * @param parentQName
-        * @param factory
-        * @return org.apache.axiom.om.OMElement
-        */
-       public org.apache.axiom.om.OMElement getOMElement (
-               final javax.xml.namespace.QName parentQName,
-               final org.apache.axiom.om.OMFactory factory) throws org.apache.axis2.databinding.ADBException{
-
-
-        
-               org.apache.axiom.om.OMDataSource dataSource =
-                       new org.apache.axis2.databinding.ADBDataSource(this,parentQName);
-               return factory.createOMElement(dataSource,parentQName);
-            
-       }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                                       XMLStreamWriter xmlWriter)
-                                throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-                           serialize(parentQName,xmlWriter,false);
-         }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                               XMLStreamWriter xmlWriter,
-                               boolean serializeType)
-            throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-            
-                
-
-
-                java.lang.String prefix = null;
-                java.lang.String namespace = null;
-                
-
-                    prefix = parentQName.getPrefix();
-                    namespace = parentQName.getNamespaceURI();
-
-                    if ((namespace != null) && (namespace.trim().length() > 0)) {
-                        java.lang.String writerPrefix = xmlWriter.getPrefix(namespace);
-                        if (writerPrefix != null) {
-                            xmlWriter.writeStartElement(namespace, parentQName.getLocalPart());
-                        } else {
-                            if (prefix == null) {
-                                prefix = generatePrefix(namespace);
-                            }
-
-                            xmlWriter.writeStartElement(prefix, parentQName.getLocalPart(), namespace);
-                            xmlWriter.writeNamespace(prefix, namespace);
-                            xmlWriter.setPrefix(prefix, namespace);
-                        }
-                    } else {
-                        xmlWriter.writeStartElement(parentQName.getLocalPart());
-                    }
-                
-                  if (serializeType){
-               
-                   java.lang.String namespacePrefix = registerPrefix(xmlWriter,"http://schemas.xmlsoap.org/soap/encoding/");
-                   if ((namespacePrefix != null) && (namespacePrefix.trim().length() > 0)){
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           namespacePrefix+":double",
-                           xmlWriter);
-                   } else {
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           "double",
-                           xmlWriter);
-                   }
-
-               
-                   }
-               
-                                               if (java.lang.Double.isNaN(local_double)) {
-                                           
-                                                         throw new org.apache.axis2.databinding.ADBException("double cannot be null!!");
-                                                      
-                                               } else {
-                                                    xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(local_double));
-                                               }
-                                    
-                    xmlWriter.writeEndElement();
-               
-
-        }
-
-         /**
-          * Util method to write an attribute with the ns prefix
-          */
-          private void writeAttribute(java.lang.String prefix,java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-              if (xmlWriter.getPrefix(namespace) == null) {
-                       xmlWriter.writeNamespace(prefix, namespace);
-                       xmlWriter.setPrefix(prefix, namespace);
-
-              }
-
-              xmlWriter.writeAttribute(namespace,attName,attValue);
-
-         }
-
-        /**
-          * Util method to write an attribute without the ns prefix
-          */
-          private void writeAttribute(java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-                if (namespace.equals(""))
-              {
-                  xmlWriter.writeAttribute(attName,attValue);
-              }
-              else
-              {
-                  registerPrefix(xmlWriter, namespace);
-                  xmlWriter.writeAttribute(namespace,attName,attValue);
-              }
-          }
-
-
-           /**
-             * Util method to write an attribute without the ns prefix
-             */
-            private void writeQNameAttribute(java.lang.String namespace, java.lang.String attName,
-                                             javax.xml.namespace.QName qname, javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-                java.lang.String attributeNamespace = qname.getNamespaceURI();
-                java.lang.String attributePrefix = xmlWriter.getPrefix(attributeNamespace);
-                if (attributePrefix == null) {
-                    attributePrefix = registerPrefix(xmlWriter, attributeNamespace);
-                }
-                java.lang.String attributeValue;
-                if (attributePrefix.trim().length() > 0) {
-                    attributeValue = attributePrefix + ":" + qname.getLocalPart();
-                } else {
-                    attributeValue = qname.getLocalPart();
-                }
-
-                if (namespace.equals("")) {
-                    xmlWriter.writeAttribute(attName, attributeValue);
-                } else {
-                    registerPrefix(xmlWriter, namespace);
-                    xmlWriter.writeAttribute(namespace, attName, attributeValue);
-                }
-            }
-        /**
-         *  method to handle Qnames
-         */
-
-        private void writeQName(javax.xml.namespace.QName qname,
-                                javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-            java.lang.String namespaceURI = qname.getNamespaceURI();
-            if (namespaceURI != null) {
-                java.lang.String prefix = xmlWriter.getPrefix(namespaceURI);
-                if (prefix == null) {
-                    prefix = generatePrefix(namespaceURI);
-                    xmlWriter.writeNamespace(prefix, namespaceURI);
-                    xmlWriter.setPrefix(prefix,namespaceURI);
-                }
-
-                if (prefix.trim().length() > 0){
-                    xmlWriter.writeCharacters(prefix + ":" + org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                } else {
-                    // i.e this is the default namespace
-                    xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                }
-
-            } else {
-                xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-            }
-        }
-
-        private void writeQNames(javax.xml.namespace.QName[] qnames,
-                                 javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-            if (qnames != null) {
-                // we have to store this data until last moment since it is not possible to write any
-                // namespace data after writing the charactor data
-                java.lang.StringBuffer stringToWrite = new java.lang.StringBuffer();
-                java.lang.String namespaceURI = null;
-                java.lang.String prefix = null;
-
-                for (int i = 0; i < qnames.length; i++) {
-                    if (i > 0) {
-                        stringToWrite.append(" ");
-                    }
-                    namespaceURI = qnames[i].getNamespaceURI();
-                    if (namespaceURI != null) {
-                        prefix = xmlWriter.getPrefix(namespaceURI);
-                        if ((prefix == null) || (prefix.length() == 0)) {
-                            prefix = generatePrefix(namespaceURI);
-                            xmlWriter.writeNamespace(prefix, namespaceURI);
-                            xmlWriter.setPrefix(prefix,namespaceURI);
-                        }
-
-                        if (prefix.trim().length() > 0){
-                            stringToWrite.append(prefix).append(":").append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        } else {
-                            stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        }
-                    } else {
-                        stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                    }
-                }
-                xmlWriter.writeCharacters(stringToWrite.toString());
-            }
-
-        }
-
-
-         /**
-         * Register a namespace prefix
-         */
-         private java.lang.String registerPrefix(javax.xml.stream.XMLStreamWriter xmlWriter, java.lang.String namespace) throws javax.xml.stream.XMLStreamException {
-                java.lang.String prefix = xmlWriter.getPrefix(namespace);
-
-                if (prefix == null) {
-                    prefix = generatePrefix(namespace);
-                    javax.xml.namespace.NamespaceContext nsContext = xmlWriter.getNamespaceContext();
-                    while (true) {
-                        java.lang.String uri = nsContext.getNamespaceURI(prefix);
-                        if (uri == null || uri.length() == 0) {
-                            break;
-                        }
-                        prefix = org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-                    }
-                    xmlWriter.writeNamespace(prefix, namespace);
-                    xmlWriter.setPrefix(prefix, namespace);
-                }
-
-                return prefix;
-            }
-
-
-  
-     /**
-      *  Factory class that keeps the parse method
-      */
-    public static class Factory{
-
-        
-        
-                public static _double fromString(java.lang.String value,
-                                                    java.lang.String namespaceURI){
-                    _double returnValue = new  _double();
-                    
-                            returnValue.set_double(
-                                org.apache.axis2.databinding.utils.ConverterUtil.convertToDouble(value));
-                        
-
-                    return returnValue;
-                }
-
-                public static _double fromString(javax.xml.stream.XMLStreamReader xmlStreamReader,
-                                                                    java.lang.String content) {
-                    if (content.indexOf(":") > -1){
-                        java.lang.String prefix = content.substring(0,content.indexOf(":"));
-                        java.lang.String namespaceUri = xmlStreamReader.getNamespaceContext().getNamespaceURI(prefix);
-                        return _double.Factory.fromString(content,namespaceUri);
-                    } else {
-                       return _double.Factory.fromString(content,"");
-                    }
-                }
-
-            
-
-        /**
-        * static method to create the object
-        * Precondition:  If this object is an element, the current or next start element starts this object and any intervening reader events are ignorable
-        *                If this object is not an element, it is a complex type and the reader is at the event just after the outer start element
-        * Postcondition: If this object is an element, the reader is positioned at its end element
-        *                If this object is a complex type, the reader is positioned at the end element of its outer element
-        */
-        public static _double parse(javax.xml.stream.XMLStreamReader reader) throws java.lang.Exception{
-            _double object =
-                new _double();
-
-            int event;
-            java.lang.String nillableValue = null;
-            java.lang.String prefix ="";
-            java.lang.String namespaceuri ="";
-            try {
-                
-                while (!reader.isStartElement() && !reader.isEndElement())
-                    reader.next();
-
-                
-                if (reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance","type")!=null){
-                  java.lang.String fullTypeName = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance",
-                        "type");
-                  if (fullTypeName!=null){
-                    java.lang.String nsPrefix = null;
-                    if (fullTypeName.indexOf(":") > -1){
-                        nsPrefix = fullTypeName.substring(0,fullTypeName.indexOf(":"));
-                    }
-                    nsPrefix = nsPrefix==null?"":nsPrefix;
-
-                    java.lang.String type = fullTypeName.substring(fullTypeName.indexOf(":")+1);
-                    
-                            if (!"double".equals(type)){
-                                //find namespace for the prefix
-                                java.lang.String nsUri = reader.getNamespaceContext().getNamespaceURI(nsPrefix);
-                                return (_double)org.apache.axis2.databinding.types.soapencoding.ExtensionMapper.getTypeObject(
-                                     nsUri,type,reader);
-                              }
-                        
-
-                  }
-                
-
-                }
-
-                
-
-                
-                // Note all attributes that were handled. Used to differ normal attributes
-                // from anyAttributes.
-                java.util.Vector handledAttributes = new java.util.Vector();
-                
-
-                    
-                while(!reader.isEndElement()) {
-                    if (reader.isStartElement()  || reader.hasText()){
-                
-                                    if (reader.isStartElement()  || reader.hasText()){
-                                
-                                    java.lang.String content = reader.getElementText();
-                                    
-                                              object.set_double(
-                                                    org.apache.axis2.databinding.utils.ConverterUtil.convertToDouble(content));
-                                            
-                              }  // End of if for expected property start element
-                                
-                             else{
-                                        // A start element we are not expecting indicates an invalid parameter was passed
-                                        throw new org.apache.axis2.databinding.ADBException("Unexpected subelement " + reader.getLocalName());
-                             }
-                          
-                             } else {
-                                reader.next();
-                             }  
-                           }  // end of while loop
-                        
-
-
-
-            } catch (javax.xml.stream.XMLStreamException e) {
-                throw new java.lang.Exception(e);
-            }
-
-            return object;
-        }
-
-        }//end of factory class
-
-        
-
-        }
-           
-          
\ No newline at end of file
diff --git a/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/_float.java b/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/_float.java
deleted file mode 100644
index 8300a7b..0000000
--- a/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/_float.java
+++ /dev/null
@@ -1,464 +0,0 @@
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/**
- * _float.java
- *
- * This file was auto-generated from WSDL
- * by the Apache Axis2 version: SNAPSHOT  Built on : Dec 21, 2007 (04:03:30 LKT)
- */
-            
-                package org.apache.axis2.databinding.types.soapencoding;
-
-import javax.xml.stream.XMLStreamWriter;
-            
-
-            /**
-            *  _float bean class
-            */
-        
-        public  class _float
-        implements org.apache.axis2.databinding.ADBBean{
-        /* This type was generated from the piece of schema that had
-                name = float
-                Namespace URI = http://schemas.xmlsoap.org/soap/encoding/
-                Namespace Prefix = ns1
-                */
-            
-
-        private static java.lang.String generatePrefix(java.lang.String namespace) {
-            if(namespace.equals("http://schemas.xmlsoap.org/soap/encoding/")){
-                return "SOAP-ENC";
-            }
-            return org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-        }
-
-        
-
-                        /**
-                        * field for _float
-                        */
-
-                        
-                                    protected float local_float ;
-                                
-
-                           /**
-                           * Auto generated getter method
-                           * @return float
-                           */
-                           public  float get_float(){
-                               return local_float;
-                           }
-
-                           
-                        
-                            /**
-                               * Auto generated setter method
-                               * @param param _float
-                               */
-                               public void set_float(float param){
-                            
-                                            this.local_float=param;
-                                    
-
-                               }
-                            
-
-                            public java.lang.String toString(){
-                                
-                                        return local_float + "";
-                                    
-                            }
-                        
-
-     /**
-     * isReaderMTOMAware
-     * @return true if the reader supports MTOM
-     */
-   public static boolean isReaderMTOMAware(javax.xml.stream.XMLStreamReader reader) {
-        boolean isReaderMTOMAware = false;
-        
-        try{
-          isReaderMTOMAware = java.lang.Boolean.TRUE.equals(reader.getProperty(org.apache.axiom.om.OMConstants.IS_DATA_HANDLERS_AWARE));
-        }catch(java.lang.IllegalArgumentException e){
-          isReaderMTOMAware = false;
-        }
-        return isReaderMTOMAware;
-   }
-     
-     
-        /**
-        *
-        * @param parentQName
-        * @param factory
-        * @return org.apache.axiom.om.OMElement
-        */
-       public org.apache.axiom.om.OMElement getOMElement (
-               final javax.xml.namespace.QName parentQName,
-               final org.apache.axiom.om.OMFactory factory) throws org.apache.axis2.databinding.ADBException{
-
-
-        
-               org.apache.axiom.om.OMDataSource dataSource =
-                       new org.apache.axis2.databinding.ADBDataSource(this,parentQName);
-               return factory.createOMElement(dataSource,parentQName);
-            
-       }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                                       XMLStreamWriter xmlWriter)
-                                throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-                           serialize(parentQName,xmlWriter,false);
-         }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                               XMLStreamWriter xmlWriter,
-                               boolean serializeType)
-            throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-            
-                
-
-
-                java.lang.String prefix = null;
-                java.lang.String namespace = null;
-                
-
-                    prefix = parentQName.getPrefix();
-                    namespace = parentQName.getNamespaceURI();
-
-                    if ((namespace != null) && (namespace.trim().length() > 0)) {
-                        java.lang.String writerPrefix = xmlWriter.getPrefix(namespace);
-                        if (writerPrefix != null) {
-                            xmlWriter.writeStartElement(namespace, parentQName.getLocalPart());
-                        } else {
-                            if (prefix == null) {
-                                prefix = generatePrefix(namespace);
-                            }
-
-                            xmlWriter.writeStartElement(prefix, parentQName.getLocalPart(), namespace);
-                            xmlWriter.writeNamespace(prefix, namespace);
-                            xmlWriter.setPrefix(prefix, namespace);
-                        }
-                    } else {
-                        xmlWriter.writeStartElement(parentQName.getLocalPart());
-                    }
-                
-                  if (serializeType){
-               
-                   java.lang.String namespacePrefix = registerPrefix(xmlWriter,"http://schemas.xmlsoap.org/soap/encoding/");
-                   if ((namespacePrefix != null) && (namespacePrefix.trim().length() > 0)){
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           namespacePrefix+":float",
-                           xmlWriter);
-                   } else {
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           "float",
-                           xmlWriter);
-                   }
-
-               
-                   }
-               
-                                               if (java.lang.Float.isNaN(local_float)) {
-                                           
-                                                         throw new org.apache.axis2.databinding.ADBException("float cannot be null!!");
-                                                      
-                                               } else {
-                                                    xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(local_float));
-                                               }
-                                    
-                    xmlWriter.writeEndElement();
-               
-
-        }
-
-         /**
-          * Util method to write an attribute with the ns prefix
-          */
-          private void writeAttribute(java.lang.String prefix,java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-              if (xmlWriter.getPrefix(namespace) == null) {
-                       xmlWriter.writeNamespace(prefix, namespace);
-                       xmlWriter.setPrefix(prefix, namespace);
-
-              }
-
-              xmlWriter.writeAttribute(namespace,attName,attValue);
-
-         }
-
-        /**
-          * Util method to write an attribute without the ns prefix
-          */
-          private void writeAttribute(java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-                if (namespace.equals(""))
-              {
-                  xmlWriter.writeAttribute(attName,attValue);
-              }
-              else
-              {
-                  registerPrefix(xmlWriter, namespace);
-                  xmlWriter.writeAttribute(namespace,attName,attValue);
-              }
-          }
-
-
-           /**
-             * Util method to write an attribute without the ns prefix
-             */
-            private void writeQNameAttribute(java.lang.String namespace, java.lang.String attName,
-                                             javax.xml.namespace.QName qname, javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-                java.lang.String attributeNamespace = qname.getNamespaceURI();
-                java.lang.String attributePrefix = xmlWriter.getPrefix(attributeNamespace);
-                if (attributePrefix == null) {
-                    attributePrefix = registerPrefix(xmlWriter, attributeNamespace);
-                }
-                java.lang.String attributeValue;
-                if (attributePrefix.trim().length() > 0) {
-                    attributeValue = attributePrefix + ":" + qname.getLocalPart();
-                } else {
-                    attributeValue = qname.getLocalPart();
-                }
-
-                if (namespace.equals("")) {
-                    xmlWriter.writeAttribute(attName, attributeValue);
-                } else {
-                    registerPrefix(xmlWriter, namespace);
-                    xmlWriter.writeAttribute(namespace, attName, attributeValue);
-                }
-            }
-        /**
-         *  method to handle Qnames
-         */
-
-        private void writeQName(javax.xml.namespace.QName qname,
-                                javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-            java.lang.String namespaceURI = qname.getNamespaceURI();
-            if (namespaceURI != null) {
-                java.lang.String prefix = xmlWriter.getPrefix(namespaceURI);
-                if (prefix == null) {
-                    prefix = generatePrefix(namespaceURI);
-                    xmlWriter.writeNamespace(prefix, namespaceURI);
-                    xmlWriter.setPrefix(prefix,namespaceURI);
-                }
-
-                if (prefix.trim().length() > 0){
-                    xmlWriter.writeCharacters(prefix + ":" + org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                } else {
-                    // i.e this is the default namespace
-                    xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                }
-
-            } else {
-                xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-            }
-        }
-
-        private void writeQNames(javax.xml.namespace.QName[] qnames,
-                                 javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-            if (qnames != null) {
-                // we have to store this data until last moment since it is not possible to write any
-                // namespace data after writing the charactor data
-                java.lang.StringBuffer stringToWrite = new java.lang.StringBuffer();
-                java.lang.String namespaceURI = null;
-                java.lang.String prefix = null;
-
-                for (int i = 0; i < qnames.length; i++) {
-                    if (i > 0) {
-                        stringToWrite.append(" ");
-                    }
-                    namespaceURI = qnames[i].getNamespaceURI();
-                    if (namespaceURI != null) {
-                        prefix = xmlWriter.getPrefix(namespaceURI);
-                        if ((prefix == null) || (prefix.length() == 0)) {
-                            prefix = generatePrefix(namespaceURI);
-                            xmlWriter.writeNamespace(prefix, namespaceURI);
-                            xmlWriter.setPrefix(prefix,namespaceURI);
-                        }
-
-                        if (prefix.trim().length() > 0){
-                            stringToWrite.append(prefix).append(":").append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        } else {
-                            stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        }
-                    } else {
-                        stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                    }
-                }
-                xmlWriter.writeCharacters(stringToWrite.toString());
-            }
-
-        }
-
-
-         /**
-         * Register a namespace prefix
-         */
-         private java.lang.String registerPrefix(javax.xml.stream.XMLStreamWriter xmlWriter, java.lang.String namespace) throws javax.xml.stream.XMLStreamException {
-                java.lang.String prefix = xmlWriter.getPrefix(namespace);
-
-                if (prefix == null) {
-                    prefix = generatePrefix(namespace);
-                    javax.xml.namespace.NamespaceContext nsContext = xmlWriter.getNamespaceContext();
-                    while (true) {
-                        java.lang.String uri = nsContext.getNamespaceURI(prefix);
-                        if (uri == null || uri.length() == 0) {
-                            break;
-                        }
-                        prefix = org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-                    }
-                    xmlWriter.writeNamespace(prefix, namespace);
-                    xmlWriter.setPrefix(prefix, namespace);
-                }
-
-                return prefix;
-            }
-
-
-  
-     /**
-      *  Factory class that keeps the parse method
-      */
-    public static class Factory{
-
-        
-        
-                public static _float fromString(java.lang.String value,
-                                                    java.lang.String namespaceURI){
-                    _float returnValue = new  _float();
-                    
-                            returnValue.set_float(
-                                org.apache.axis2.databinding.utils.ConverterUtil.convertToFloat(value));
-                        
-
-                    return returnValue;
-                }
-
-                public static _float fromString(javax.xml.stream.XMLStreamReader xmlStreamReader,
-                                                                    java.lang.String content) {
-                    if (content.indexOf(":") > -1){
-                        java.lang.String prefix = content.substring(0,content.indexOf(":"));
-                        java.lang.String namespaceUri = xmlStreamReader.getNamespaceContext().getNamespaceURI(prefix);
-                        return _float.Factory.fromString(content,namespaceUri);
-                    } else {
-                       return _float.Factory.fromString(content,"");
-                    }
-                }
-
-            
-
-        /**
-        * static method to create the object
-        * Precondition:  If this object is an element, the current or next start element starts this object and any intervening reader events are ignorable
-        *                If this object is not an element, it is a complex type and the reader is at the event just after the outer start element
-        * Postcondition: If this object is an element, the reader is positioned at its end element
-        *                If this object is a complex type, the reader is positioned at the end element of its outer element
-        */
-        public static _float parse(javax.xml.stream.XMLStreamReader reader) throws java.lang.Exception{
-            _float object =
-                new _float();
-
-            int event;
-            java.lang.String nillableValue = null;
-            java.lang.String prefix ="";
-            java.lang.String namespaceuri ="";
-            try {
-                
-                while (!reader.isStartElement() && !reader.isEndElement())
-                    reader.next();
-
-                
-                if (reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance","type")!=null){
-                  java.lang.String fullTypeName = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance",
-                        "type");
-                  if (fullTypeName!=null){
-                    java.lang.String nsPrefix = null;
-                    if (fullTypeName.indexOf(":") > -1){
-                        nsPrefix = fullTypeName.substring(0,fullTypeName.indexOf(":"));
-                    }
-                    nsPrefix = nsPrefix==null?"":nsPrefix;
-
-                    java.lang.String type = fullTypeName.substring(fullTypeName.indexOf(":")+1);
-                    
-                            if (!"float".equals(type)){
-                                //find namespace for the prefix
-                                java.lang.String nsUri = reader.getNamespaceContext().getNamespaceURI(nsPrefix);
-                                return (_float)org.apache.axis2.databinding.types.soapencoding.ExtensionMapper.getTypeObject(
-                                     nsUri,type,reader);
-                              }
-                        
-
-                  }
-                
-
-                }
-
-                
-
-                
-                // Note all attributes that were handled. Used to differ normal attributes
-                // from anyAttributes.
-                java.util.Vector handledAttributes = new java.util.Vector();
-                
-
-                    
-                while(!reader.isEndElement()) {
-                    if (reader.isStartElement()  || reader.hasText()){
-                
-                                    if (reader.isStartElement()  || reader.hasText()){
-                                
-                                    java.lang.String content = reader.getElementText();
-                                    
-                                              object.set_float(
-                                                    org.apache.axis2.databinding.utils.ConverterUtil.convertToFloat(content));
-                                            
-                              }  // End of if for expected property start element
-                                
-                             else{
-                                        // A start element we are not expecting indicates an invalid parameter was passed
-                                        throw new org.apache.axis2.databinding.ADBException("Unexpected subelement " + reader.getLocalName());
-                             }
-                          
-                             } else {
-                                reader.next();
-                             }  
-                           }  // end of while loop
-                        
-
-
-
-            } catch (javax.xml.stream.XMLStreamException e) {
-                throw new java.lang.Exception(e);
-            }
-
-            return object;
-        }
-
-        }//end of factory class
-
-        
-
-        }
-           
-          
\ No newline at end of file
diff --git a/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/_int.java b/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/_int.java
deleted file mode 100644
index 201df26..0000000
--- a/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/_int.java
+++ /dev/null
@@ -1,448 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/**
- * _int.java
- *
- * This file was auto-generated from WSDL
- * by the Apache Axis2 version: SNAPSHOT  Built on : Dec 21, 2007 (04:03:30 LKT)
- */
-
-package org.apache.axis2.databinding.types.soapencoding;
-
-import javax.xml.stream.XMLStreamWriter;
-
-
-/**
- * _int bean class
- */
-
-public class _int
-        implements org.apache.axis2.databinding.ADBBean {
-    /* This type was generated from the piece of schema that had
-    name = int
-    Namespace URI = http://schemas.xmlsoap.org/soap/encoding/
-    Namespace Prefix = ns1
-    */
-
-
-    private static java.lang.String generatePrefix(java.lang.String namespace) {
-        if (namespace.equals("http://schemas.xmlsoap.org/soap/encoding/")) {
-            return "SOAP-ENC";
-        }
-        return org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-    }
-
-
-    /**
-     * field for _int
-     */
-
-
-    protected int local_int;
-
-
-    /**
-     * Auto generated getter method
-     *
-     * @return int
-     */
-    public int get_int() {
-        return local_int;
-    }
-
-
-    /**
-     * Auto generated setter method
-     *
-     * @param param _int
-     */
-    public void set_int(int param) {
-
-        this.local_int = param;
-
-
-    }
-
-
-    public java.lang.String toString() {
-
-        return local_int + "";
-
-    }
-
-
-    /**
-     * isReaderMTOMAware
-     *
-     * @return true if the reader supports MTOM
-     */
-    public static boolean isReaderMTOMAware(javax.xml.stream.XMLStreamReader reader) {
-        boolean isReaderMTOMAware = false;
-
-        try {
-            isReaderMTOMAware = java.lang.Boolean.TRUE.equals(reader.getProperty(org.apache.axiom.om.OMConstants.IS_DATA_HANDLERS_AWARE));
-        } catch (java.lang.IllegalArgumentException e) {
-            isReaderMTOMAware = false;
-        }
-        return isReaderMTOMAware;
-    }
-
-
-    /**
-     * @param parentQName
-     * @param factory
-     * @return org.apache.axiom.om.OMElement
-     */
-    public org.apache.axiom.om.OMElement getOMElement(
-            final javax.xml.namespace.QName parentQName,
-            final org.apache.axiom.om.OMFactory factory) throws org.apache.axis2.databinding.ADBException {
-
-
-        org.apache.axiom.om.OMDataSource dataSource =
-                new org.apache.axis2.databinding.ADBDataSource(this, parentQName);
-        return factory.createOMElement(dataSource,parentQName);
-
-    }
-
-    public void serialize(final javax.xml.namespace.QName parentQName,
-                          XMLStreamWriter xmlWriter)
-            throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException {
-        serialize(parentQName, xmlWriter, false);
-    }
-
-    public void serialize(final javax.xml.namespace.QName parentQName,
-                          XMLStreamWriter xmlWriter,
-                          boolean serializeType)
-            throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException {
-
-
-        java.lang.String prefix = null;
-        java.lang.String namespace = null;
-
-
-        prefix = parentQName.getPrefix();
-        namespace = parentQName.getNamespaceURI();
-
-        if ((namespace != null) && (namespace.trim().length() > 0)) {
-            java.lang.String writerPrefix = xmlWriter.getPrefix(namespace);
-            if (writerPrefix != null) {
-                xmlWriter.writeStartElement(namespace, parentQName.getLocalPart());
-            } else {
-                if (prefix == null) {
-                    prefix = generatePrefix(namespace);
-                }
-
-                xmlWriter.writeStartElement(prefix, parentQName.getLocalPart(), namespace);
-                xmlWriter.writeNamespace(prefix, namespace);
-                xmlWriter.setPrefix(prefix, namespace);
-            }
-        } else {
-            xmlWriter.writeStartElement(parentQName.getLocalPart());
-        }
-
-        if (serializeType) {
-
-            java.lang.String namespacePrefix = registerPrefix(xmlWriter, "http://schemas.xmlsoap.org/soap/encoding/");
-            if ((namespacePrefix != null) && (namespacePrefix.trim().length() > 0)) {
-                writeAttribute("xsi", "http://www.w3.org/2001/XMLSchema-instance", "type",
-                        namespacePrefix + ":int",
-                        xmlWriter);
-            } else {
-                writeAttribute("xsi", "http://www.w3.org/2001/XMLSchema-instance", "type",
-                        "int",
-                        xmlWriter);
-            }
-
-
-        }
-
-        if (local_int == java.lang.Integer.MIN_VALUE) {
-
-            throw new org.apache.axis2.databinding.ADBException("int cannot be null!!");
-
-        } else {
-            xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(local_int));
-        }
-
-        xmlWriter.writeEndElement();
-
-
-    }
-
-    /**
-     * Util method to write an attribute with the ns prefix
-     */
-    private void writeAttribute(java.lang.String prefix, java.lang.String namespace, java.lang.String attName,
-                                java.lang.String attValue, javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-        if (xmlWriter.getPrefix(namespace) == null) {
-            xmlWriter.writeNamespace(prefix, namespace);
-            xmlWriter.setPrefix(prefix, namespace);
-
-        }
-
-        xmlWriter.writeAttribute(namespace, attName, attValue);
-
-    }
-
-    /**
-     * Util method to write an attribute without the ns prefix
-     */
-    private void writeAttribute(java.lang.String namespace, java.lang.String attName,
-                                java.lang.String attValue, javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-        if (namespace.equals("")) {
-            xmlWriter.writeAttribute(attName, attValue);
-        } else {
-            registerPrefix(xmlWriter, namespace);
-            xmlWriter.writeAttribute(namespace, attName, attValue);
-        }
-    }
-
-
-    /**
-     * Util method to write an attribute without the ns prefix
-     */
-    private void writeQNameAttribute(java.lang.String namespace, java.lang.String attName,
-                                     javax.xml.namespace.QName qname, javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-        java.lang.String attributeNamespace = qname.getNamespaceURI();
-        java.lang.String attributePrefix = xmlWriter.getPrefix(attributeNamespace);
-        if (attributePrefix == null) {
-            attributePrefix = registerPrefix(xmlWriter, attributeNamespace);
-        }
-        java.lang.String attributeValue;
-        if (attributePrefix.trim().length() > 0) {
-            attributeValue = attributePrefix + ":" + qname.getLocalPart();
-        } else {
-            attributeValue = qname.getLocalPart();
-        }
-
-        if (namespace.equals("")) {
-            xmlWriter.writeAttribute(attName, attributeValue);
-        } else {
-            registerPrefix(xmlWriter, namespace);
-            xmlWriter.writeAttribute(namespace, attName, attributeValue);
-        }
-    }
-
-    /**
-     * method to handle Qnames
-     */
-
-    private void writeQName(javax.xml.namespace.QName qname,
-                            javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-        java.lang.String namespaceURI = qname.getNamespaceURI();
-        if (namespaceURI != null) {
-            java.lang.String prefix = xmlWriter.getPrefix(namespaceURI);
-            if (prefix == null) {
-                prefix = generatePrefix(namespaceURI);
-                xmlWriter.writeNamespace(prefix, namespaceURI);
-                xmlWriter.setPrefix(prefix, namespaceURI);
-            }
-
-            if (prefix.trim().length() > 0) {
-                xmlWriter.writeCharacters(prefix + ":" + org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-            } else {
-                // i.e this is the default namespace
-                xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-            }
-
-        } else {
-            xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-        }
-    }
-
-    private void writeQNames(javax.xml.namespace.QName[] qnames,
-                             javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-        if (qnames != null) {
-            // we have to store this data until last moment since it is not possible to write any
-            // namespace data after writing the charactor data
-            java.lang.StringBuffer stringToWrite = new java.lang.StringBuffer();
-            java.lang.String namespaceURI = null;
-            java.lang.String prefix = null;
-
-            for (int i = 0; i < qnames.length; i++) {
-                if (i > 0) {
-                    stringToWrite.append(" ");
-                }
-                namespaceURI = qnames[i].getNamespaceURI();
-                if (namespaceURI != null) {
-                    prefix = xmlWriter.getPrefix(namespaceURI);
-                    if ((prefix == null) || (prefix.length() == 0)) {
-                        prefix = generatePrefix(namespaceURI);
-                        xmlWriter.writeNamespace(prefix, namespaceURI);
-                        xmlWriter.setPrefix(prefix, namespaceURI);
-                    }
-
-                    if (prefix.trim().length() > 0) {
-                        stringToWrite.append(prefix).append(":").append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                    } else {
-                        stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                    }
-                } else {
-                    stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                }
-            }
-            xmlWriter.writeCharacters(stringToWrite.toString());
-        }
-
-    }
-
-
-    /**
-     * Register a namespace prefix
-     */
-    private java.lang.String registerPrefix(javax.xml.stream.XMLStreamWriter xmlWriter, java.lang.String namespace) throws javax.xml.stream.XMLStreamException {
-        java.lang.String prefix = xmlWriter.getPrefix(namespace);
-
-        if (prefix == null) {
-            prefix = generatePrefix(namespace);
-            javax.xml.namespace.NamespaceContext nsContext = xmlWriter.getNamespaceContext();
-            while (true) {
-                java.lang.String uri = nsContext.getNamespaceURI(prefix);
-                if (uri == null || uri.length() == 0) {
-                    break;
-                }
-                prefix = org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-            }
-            xmlWriter.writeNamespace(prefix, namespace);
-            xmlWriter.setPrefix(prefix, namespace);
-        }
-
-        return prefix;
-    }
-
-
-    /**
-     * Factory class that keeps the parse method
-     */
-    public static class Factory {
-
-
-        public static _int fromString(java.lang.String value,
-                                      java.lang.String namespaceURI) {
-            _int returnValue = new _int();
-
-            returnValue.set_int(
-                    org.apache.axis2.databinding.utils.ConverterUtil.convertToInt(value));
-
-
-            return returnValue;
-        }
-
-        public static _int fromString(javax.xml.stream.XMLStreamReader xmlStreamReader,
-                                      java.lang.String content) {
-            if (content.indexOf(":") > -1) {
-                java.lang.String prefix = content.substring(0, content.indexOf(":"));
-                java.lang.String namespaceUri = xmlStreamReader.getNamespaceContext().getNamespaceURI(prefix);
-                return _int.Factory.fromString(content, namespaceUri);
-            } else {
-                return _int.Factory.fromString(content, "");
-            }
-        }
-
-
-        /**
-         * static method to create the object
-         * Precondition:  If this object is an element, the current or next start element starts this object and any intervening reader events are ignorable
-         * If this object is not an element, it is a complex type and the reader is at the event just after the outer start element
-         * Postcondition: If this object is an element, the reader is positioned at its end element
-         * If this object is a complex type, the reader is positioned at the end element of its outer element
-         */
-        public static _int parse(javax.xml.stream.XMLStreamReader reader) throws java.lang.Exception {
-            _int object =
-                    new _int();
-
-            int event;
-            java.lang.String nillableValue = null;
-            java.lang.String prefix = "";
-            java.lang.String namespaceuri = "";
-            try {
-
-                while (!reader.isStartElement() && !reader.isEndElement())
-                    reader.next();
-
-
-                if (reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance", "type") != null) {
-                    java.lang.String fullTypeName = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance",
-                            "type");
-                    if (fullTypeName != null) {
-                        java.lang.String nsPrefix = null;
-                        if (fullTypeName.indexOf(":") > -1) {
-                            nsPrefix = fullTypeName.substring(0, fullTypeName.indexOf(":"));
-                        }
-                        nsPrefix = nsPrefix == null ? "" : nsPrefix;
-
-                        java.lang.String type = fullTypeName.substring(fullTypeName.indexOf(":") + 1);
-
-                        if (!"int".equals(type)) {
-                            //find namespace for the prefix
-                            java.lang.String nsUri = reader.getNamespaceContext().getNamespaceURI(nsPrefix);
-                            return (_int) org.apache.axis2.databinding.types.soapencoding.ExtensionMapper.getTypeObject(
-                                    nsUri, type, reader);
-                        }
-
-
-                    }
-
-
-                }
-
-                // Note all attributes that were handled. Used to differ normal attributes
-                // from anyAttributes.
-                java.util.Vector handledAttributes = new java.util.Vector();
-
-
-                while (!reader.isEndElement()) {
-                    if (reader.isStartElement() || reader.hasText()) {
-
-                        if (reader.isStartElement() || reader.hasText()) {
-
-                            java.lang.String content = reader.getElementText();
-
-                            object.set_int(
-                                    org.apache.axis2.databinding.utils.ConverterUtil.convertToInt(content));
-
-                        }  // End of if for expected property start element
-
-                        else {
-                            // A start element we are not expecting indicates an invalid parameter was passed
-                            throw new org.apache.axis2.databinding.ADBException("Unexpected subelement " + reader.getLocalName());
-                        }
-
-                    } else {
-                        reader.next();
-                    }
-                }  // end of while loop
-
-
-            } catch (javax.xml.stream.XMLStreamException e) {
-                throw new java.lang.Exception(e);
-            }
-
-            return object;
-        }
-
-    }//end of factory class
-
-
-}
-           
-          
\ No newline at end of file
diff --git a/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/_long.java b/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/_long.java
deleted file mode 100644
index 9746dfa..0000000
--- a/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/_long.java
+++ /dev/null
@@ -1,464 +0,0 @@
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/**
- * _long.java
- *
- * This file was auto-generated from WSDL
- * by the Apache Axis2 version: SNAPSHOT  Built on : Dec 21, 2007 (04:03:30 LKT)
- */
-            
-                package org.apache.axis2.databinding.types.soapencoding;
-
-import javax.xml.stream.XMLStreamWriter;
-            
-
-            /**
-            *  _long bean class
-            */
-        
-        public  class _long
-        implements org.apache.axis2.databinding.ADBBean{
-        /* This type was generated from the piece of schema that had
-                name = long
-                Namespace URI = http://schemas.xmlsoap.org/soap/encoding/
-                Namespace Prefix = ns1
-                */
-            
-
-        private static java.lang.String generatePrefix(java.lang.String namespace) {
-            if(namespace.equals("http://schemas.xmlsoap.org/soap/encoding/")){
-                return "SOAP-ENC";
-            }
-            return org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-        }
-
-        
-
-                        /**
-                        * field for _long
-                        */
-
-                        
-                                    protected long local_long ;
-                                
-
-                           /**
-                           * Auto generated getter method
-                           * @return long
-                           */
-                           public  long get_long(){
-                               return local_long;
-                           }
-
-                           
-                        
-                            /**
-                               * Auto generated setter method
-                               * @param param _long
-                               */
-                               public void set_long(long param){
-                            
-                                            this.local_long=param;
-                                    
-
-                               }
-                            
-
-                            public java.lang.String toString(){
-                                
-                                        return local_long + "";
-                                    
-                            }
-                        
-
-     /**
-     * isReaderMTOMAware
-     * @return true if the reader supports MTOM
-     */
-   public static boolean isReaderMTOMAware(javax.xml.stream.XMLStreamReader reader) {
-        boolean isReaderMTOMAware = false;
-        
-        try{
-          isReaderMTOMAware = java.lang.Boolean.TRUE.equals(reader.getProperty(org.apache.axiom.om.OMConstants.IS_DATA_HANDLERS_AWARE));
-        }catch(java.lang.IllegalArgumentException e){
-          isReaderMTOMAware = false;
-        }
-        return isReaderMTOMAware;
-   }
-     
-     
-        /**
-        *
-        * @param parentQName
-        * @param factory
-        * @return org.apache.axiom.om.OMElement
-        */
-       public org.apache.axiom.om.OMElement getOMElement (
-               final javax.xml.namespace.QName parentQName,
-               final org.apache.axiom.om.OMFactory factory) throws org.apache.axis2.databinding.ADBException{
-
-
-        
-               org.apache.axiom.om.OMDataSource dataSource =
-                       new org.apache.axis2.databinding.ADBDataSource(this,parentQName);
-               return factory.createOMElement(dataSource,parentQName);
-            
-       }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                                       XMLStreamWriter xmlWriter)
-                                throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-                           serialize(parentQName,xmlWriter,false);
-         }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                               XMLStreamWriter xmlWriter,
-                               boolean serializeType)
-            throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-            
-                
-
-
-                java.lang.String prefix = null;
-                java.lang.String namespace = null;
-                
-
-                    prefix = parentQName.getPrefix();
-                    namespace = parentQName.getNamespaceURI();
-
-                    if ((namespace != null) && (namespace.trim().length() > 0)) {
-                        java.lang.String writerPrefix = xmlWriter.getPrefix(namespace);
-                        if (writerPrefix != null) {
-                            xmlWriter.writeStartElement(namespace, parentQName.getLocalPart());
-                        } else {
-                            if (prefix == null) {
-                                prefix = generatePrefix(namespace);
-                            }
-
-                            xmlWriter.writeStartElement(prefix, parentQName.getLocalPart(), namespace);
-                            xmlWriter.writeNamespace(prefix, namespace);
-                            xmlWriter.setPrefix(prefix, namespace);
-                        }
-                    } else {
-                        xmlWriter.writeStartElement(parentQName.getLocalPart());
-                    }
-                
-                  if (serializeType){
-               
-                   java.lang.String namespacePrefix = registerPrefix(xmlWriter,"http://schemas.xmlsoap.org/soap/encoding/");
-                   if ((namespacePrefix != null) && (namespacePrefix.trim().length() > 0)){
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           namespacePrefix+":long",
-                           xmlWriter);
-                   } else {
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           "long",
-                           xmlWriter);
-                   }
-
-               
-                   }
-               
-                                               if (local_long==java.lang.Long.MIN_VALUE) {
-                                           
-                                                         throw new org.apache.axis2.databinding.ADBException("long cannot be null!!");
-                                                      
-                                               } else {
-                                                    xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(local_long));
-                                               }
-                                    
-                    xmlWriter.writeEndElement();
-               
-
-        }
-
-         /**
-          * Util method to write an attribute with the ns prefix
-          */
-          private void writeAttribute(java.lang.String prefix,java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-              if (xmlWriter.getPrefix(namespace) == null) {
-                       xmlWriter.writeNamespace(prefix, namespace);
-                       xmlWriter.setPrefix(prefix, namespace);
-
-              }
-
-              xmlWriter.writeAttribute(namespace,attName,attValue);
-
-         }
-
-        /**
-          * Util method to write an attribute without the ns prefix
-          */
-          private void writeAttribute(java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-                if (namespace.equals(""))
-              {
-                  xmlWriter.writeAttribute(attName,attValue);
-              }
-              else
-              {
-                  registerPrefix(xmlWriter, namespace);
-                  xmlWriter.writeAttribute(namespace,attName,attValue);
-              }
-          }
-
-
-           /**
-             * Util method to write an attribute without the ns prefix
-             */
-            private void writeQNameAttribute(java.lang.String namespace, java.lang.String attName,
-                                             javax.xml.namespace.QName qname, javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-                java.lang.String attributeNamespace = qname.getNamespaceURI();
-                java.lang.String attributePrefix = xmlWriter.getPrefix(attributeNamespace);
-                if (attributePrefix == null) {
-                    attributePrefix = registerPrefix(xmlWriter, attributeNamespace);
-                }
-                java.lang.String attributeValue;
-                if (attributePrefix.trim().length() > 0) {
-                    attributeValue = attributePrefix + ":" + qname.getLocalPart();
-                } else {
-                    attributeValue = qname.getLocalPart();
-                }
-
-                if (namespace.equals("")) {
-                    xmlWriter.writeAttribute(attName, attributeValue);
-                } else {
-                    registerPrefix(xmlWriter, namespace);
-                    xmlWriter.writeAttribute(namespace, attName, attributeValue);
-                }
-            }
-        /**
-         *  method to handle Qnames
-         */
-
-        private void writeQName(javax.xml.namespace.QName qname,
-                                javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-            java.lang.String namespaceURI = qname.getNamespaceURI();
-            if (namespaceURI != null) {
-                java.lang.String prefix = xmlWriter.getPrefix(namespaceURI);
-                if (prefix == null) {
-                    prefix = generatePrefix(namespaceURI);
-                    xmlWriter.writeNamespace(prefix, namespaceURI);
-                    xmlWriter.setPrefix(prefix,namespaceURI);
-                }
-
-                if (prefix.trim().length() > 0){
-                    xmlWriter.writeCharacters(prefix + ":" + org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                } else {
-                    // i.e this is the default namespace
-                    xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                }
-
-            } else {
-                xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-            }
-        }
-
-        private void writeQNames(javax.xml.namespace.QName[] qnames,
-                                 javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-            if (qnames != null) {
-                // we have to store this data until last moment since it is not possible to write any
-                // namespace data after writing the charactor data
-                java.lang.StringBuffer stringToWrite = new java.lang.StringBuffer();
-                java.lang.String namespaceURI = null;
-                java.lang.String prefix = null;
-
-                for (int i = 0; i < qnames.length; i++) {
-                    if (i > 0) {
-                        stringToWrite.append(" ");
-                    }
-                    namespaceURI = qnames[i].getNamespaceURI();
-                    if (namespaceURI != null) {
-                        prefix = xmlWriter.getPrefix(namespaceURI);
-                        if ((prefix == null) || (prefix.length() == 0)) {
-                            prefix = generatePrefix(namespaceURI);
-                            xmlWriter.writeNamespace(prefix, namespaceURI);
-                            xmlWriter.setPrefix(prefix,namespaceURI);
-                        }
-
-                        if (prefix.trim().length() > 0){
-                            stringToWrite.append(prefix).append(":").append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        } else {
-                            stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        }
-                    } else {
-                        stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                    }
-                }
-                xmlWriter.writeCharacters(stringToWrite.toString());
-            }
-
-        }
-
-
-         /**
-         * Register a namespace prefix
-         */
-         private java.lang.String registerPrefix(javax.xml.stream.XMLStreamWriter xmlWriter, java.lang.String namespace) throws javax.xml.stream.XMLStreamException {
-                java.lang.String prefix = xmlWriter.getPrefix(namespace);
-
-                if (prefix == null) {
-                    prefix = generatePrefix(namespace);
-                    javax.xml.namespace.NamespaceContext nsContext = xmlWriter.getNamespaceContext();
-                    while (true) {
-                        java.lang.String uri = nsContext.getNamespaceURI(prefix);
-                        if (uri == null || uri.length() == 0) {
-                            break;
-                        }
-                        prefix = org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-                    }
-                    xmlWriter.writeNamespace(prefix, namespace);
-                    xmlWriter.setPrefix(prefix, namespace);
-                }
-
-                return prefix;
-            }
-
-
-  
-     /**
-      *  Factory class that keeps the parse method
-      */
-    public static class Factory{
-
-        
-        
-                public static _long fromString(java.lang.String value,
-                                                    java.lang.String namespaceURI){
-                    _long returnValue = new  _long();
-                    
-                            returnValue.set_long(
-                                org.apache.axis2.databinding.utils.ConverterUtil.convertToLong(value));
-                        
-
-                    return returnValue;
-                }
-
-                public static _long fromString(javax.xml.stream.XMLStreamReader xmlStreamReader,
-                                                                    java.lang.String content) {
-                    if (content.indexOf(":") > -1){
-                        java.lang.String prefix = content.substring(0,content.indexOf(":"));
-                        java.lang.String namespaceUri = xmlStreamReader.getNamespaceContext().getNamespaceURI(prefix);
-                        return _long.Factory.fromString(content,namespaceUri);
-                    } else {
-                       return _long.Factory.fromString(content,"");
-                    }
-                }
-
-            
-
-        /**
-        * static method to create the object
-        * Precondition:  If this object is an element, the current or next start element starts this object and any intervening reader events are ignorable
-        *                If this object is not an element, it is a complex type and the reader is at the event just after the outer start element
-        * Postcondition: If this object is an element, the reader is positioned at its end element
-        *                If this object is a complex type, the reader is positioned at the end element of its outer element
-        */
-        public static _long parse(javax.xml.stream.XMLStreamReader reader) throws java.lang.Exception{
-            _long object =
-                new _long();
-
-            int event;
-            java.lang.String nillableValue = null;
-            java.lang.String prefix ="";
-            java.lang.String namespaceuri ="";
-            try {
-                
-                while (!reader.isStartElement() && !reader.isEndElement())
-                    reader.next();
-
-                
-                if (reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance","type")!=null){
-                  java.lang.String fullTypeName = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance",
-                        "type");
-                  if (fullTypeName!=null){
-                    java.lang.String nsPrefix = null;
-                    if (fullTypeName.indexOf(":") > -1){
-                        nsPrefix = fullTypeName.substring(0,fullTypeName.indexOf(":"));
-                    }
-                    nsPrefix = nsPrefix==null?"":nsPrefix;
-
-                    java.lang.String type = fullTypeName.substring(fullTypeName.indexOf(":")+1);
-                    
-                            if (!"long".equals(type)){
-                                //find namespace for the prefix
-                                java.lang.String nsUri = reader.getNamespaceContext().getNamespaceURI(nsPrefix);
-                                return (_long)org.apache.axis2.databinding.types.soapencoding.ExtensionMapper.getTypeObject(
-                                     nsUri,type,reader);
-                              }
-                        
-
-                  }
-                
-
-                }
-
-                
-
-                
-                // Note all attributes that were handled. Used to differ normal attributes
-                // from anyAttributes.
-                java.util.Vector handledAttributes = new java.util.Vector();
-                
-
-                    
-                while(!reader.isEndElement()) {
-                    if (reader.isStartElement()  || reader.hasText()){
-                
-                                    if (reader.isStartElement()  || reader.hasText()){
-                                
-                                    java.lang.String content = reader.getElementText();
-                                    
-                                              object.set_long(
-                                                    org.apache.axis2.databinding.utils.ConverterUtil.convertToLong(content));
-                                            
-                              }  // End of if for expected property start element
-                                
-                             else{
-                                        // A start element we are not expecting indicates an invalid parameter was passed
-                                        throw new org.apache.axis2.databinding.ADBException("Unexpected subelement " + reader.getLocalName());
-                             }
-                          
-                             } else {
-                                reader.next();
-                             }  
-                           }  // end of while loop
-                        
-
-
-
-            } catch (javax.xml.stream.XMLStreamException e) {
-                throw new java.lang.Exception(e);
-            }
-
-            return object;
-        }
-
-        }//end of factory class
-
-        
-
-        }
-           
-          
\ No newline at end of file
diff --git a/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/_short.java b/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/_short.java
deleted file mode 100644
index e788f31..0000000
--- a/modules/adb/src/org/apache/axis2/databinding/types/soapencoding/_short.java
+++ /dev/null
@@ -1,464 +0,0 @@
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/**
- * _short.java
- *
- * This file was auto-generated from WSDL
- * by the Apache Axis2 version: SNAPSHOT  Built on : Dec 21, 2007 (04:03:30 LKT)
- */
-            
-                package org.apache.axis2.databinding.types.soapencoding;
-
-import javax.xml.stream.XMLStreamWriter;
-            
-
-            /**
-            *  _short bean class
-            */
-        
-        public  class _short
-        implements org.apache.axis2.databinding.ADBBean{
-        /* This type was generated from the piece of schema that had
-                name = short
-                Namespace URI = http://schemas.xmlsoap.org/soap/encoding/
-                Namespace Prefix = ns1
-                */
-            
-
-        private static java.lang.String generatePrefix(java.lang.String namespace) {
-            if(namespace.equals("http://schemas.xmlsoap.org/soap/encoding/")){
-                return "SOAP-ENC";
-            }
-            return org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-        }
-
-        
-
-                        /**
-                        * field for _short
-                        */
-
-                        
-                                    protected short local_short ;
-                                
-
-                           /**
-                           * Auto generated getter method
-                           * @return short
-                           */
-                           public  short get_short(){
-                               return local_short;
-                           }
-
-                           
-                        
-                            /**
-                               * Auto generated setter method
-                               * @param param _short
-                               */
-                               public void set_short(short param){
-                            
-                                            this.local_short=param;
-                                    
-
-                               }
-                            
-
-                            public java.lang.String toString(){
-                                
-                                        return local_short + "";
-                                    
-                            }
-                        
-
-     /**
-     * isReaderMTOMAware
-     * @return true if the reader supports MTOM
-     */
-   public static boolean isReaderMTOMAware(javax.xml.stream.XMLStreamReader reader) {
-        boolean isReaderMTOMAware = false;
-        
-        try{
-          isReaderMTOMAware = java.lang.Boolean.TRUE.equals(reader.getProperty(org.apache.axiom.om.OMConstants.IS_DATA_HANDLERS_AWARE));
-        }catch(java.lang.IllegalArgumentException e){
-          isReaderMTOMAware = false;
-        }
-        return isReaderMTOMAware;
-   }
-     
-     
-        /**
-        *
-        * @param parentQName
-        * @param factory
-        * @return org.apache.axiom.om.OMElement
-        */
-       public org.apache.axiom.om.OMElement getOMElement (
-               final javax.xml.namespace.QName parentQName,
-               final org.apache.axiom.om.OMFactory factory) throws org.apache.axis2.databinding.ADBException{
-
-
-        
-               org.apache.axiom.om.OMDataSource dataSource =
-                       new org.apache.axis2.databinding.ADBDataSource(this,parentQName);
-               return factory.createOMElement(dataSource,parentQName);
-            
-       }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                                       XMLStreamWriter xmlWriter)
-                                throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-                           serialize(parentQName,xmlWriter,false);
-         }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                               XMLStreamWriter xmlWriter,
-                               boolean serializeType)
-            throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-            
-                
-
-
-                java.lang.String prefix = null;
-                java.lang.String namespace = null;
-                
-
-                    prefix = parentQName.getPrefix();
-                    namespace = parentQName.getNamespaceURI();
-
-                    if ((namespace != null) && (namespace.trim().length() > 0)) {
-                        java.lang.String writerPrefix = xmlWriter.getPrefix(namespace);
-                        if (writerPrefix != null) {
-                            xmlWriter.writeStartElement(namespace, parentQName.getLocalPart());
-                        } else {
-                            if (prefix == null) {
-                                prefix = generatePrefix(namespace);
-                            }
-
-                            xmlWriter.writeStartElement(prefix, parentQName.getLocalPart(), namespace);
-                            xmlWriter.writeNamespace(prefix, namespace);
-                            xmlWriter.setPrefix(prefix, namespace);
-                        }
-                    } else {
-                        xmlWriter.writeStartElement(parentQName.getLocalPart());
-                    }
-                
-                  if (serializeType){
-               
-                   java.lang.String namespacePrefix = registerPrefix(xmlWriter,"http://schemas.xmlsoap.org/soap/encoding/");
-                   if ((namespacePrefix != null) && (namespacePrefix.trim().length() > 0)){
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           namespacePrefix+":short",
-                           xmlWriter);
-                   } else {
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           "short",
-                           xmlWriter);
-                   }
-
-               
-                   }
-               
-                                               if (local_short==java.lang.Short.MIN_VALUE) {
-                                           
-                                                         throw new org.apache.axis2.databinding.ADBException("short cannot be null!!");
-                                                      
-                                               } else {
-                                                    xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(local_short));
-                                               }
-                                    
-                    xmlWriter.writeEndElement();
-               
-
-        }
-
-         /**
-          * Util method to write an attribute with the ns prefix
-          */
-          private void writeAttribute(java.lang.String prefix,java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-              if (xmlWriter.getPrefix(namespace) == null) {
-                       xmlWriter.writeNamespace(prefix, namespace);
-                       xmlWriter.setPrefix(prefix, namespace);
-
-              }
-
-              xmlWriter.writeAttribute(namespace,attName,attValue);
-
-         }
-
-        /**
-          * Util method to write an attribute without the ns prefix
-          */
-          private void writeAttribute(java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-                if (namespace.equals(""))
-              {
-                  xmlWriter.writeAttribute(attName,attValue);
-              }
-              else
-              {
-                  registerPrefix(xmlWriter, namespace);
-                  xmlWriter.writeAttribute(namespace,attName,attValue);
-              }
-          }
-
-
-           /**
-             * Util method to write an attribute without the ns prefix
-             */
-            private void writeQNameAttribute(java.lang.String namespace, java.lang.String attName,
-                                             javax.xml.namespace.QName qname, javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-                java.lang.String attributeNamespace = qname.getNamespaceURI();
-                java.lang.String attributePrefix = xmlWriter.getPrefix(attributeNamespace);
-                if (attributePrefix == null) {
-                    attributePrefix = registerPrefix(xmlWriter, attributeNamespace);
-                }
-                java.lang.String attributeValue;
-                if (attributePrefix.trim().length() > 0) {
-                    attributeValue = attributePrefix + ":" + qname.getLocalPart();
-                } else {
-                    attributeValue = qname.getLocalPart();
-                }
-
-                if (namespace.equals("")) {
-                    xmlWriter.writeAttribute(attName, attributeValue);
-                } else {
-                    registerPrefix(xmlWriter, namespace);
-                    xmlWriter.writeAttribute(namespace, attName, attributeValue);
-                }
-            }
-        /**
-         *  method to handle Qnames
-         */
-
-        private void writeQName(javax.xml.namespace.QName qname,
-                                javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-            java.lang.String namespaceURI = qname.getNamespaceURI();
-            if (namespaceURI != null) {
-                java.lang.String prefix = xmlWriter.getPrefix(namespaceURI);
-                if (prefix == null) {
-                    prefix = generatePrefix(namespaceURI);
-                    xmlWriter.writeNamespace(prefix, namespaceURI);
-                    xmlWriter.setPrefix(prefix,namespaceURI);
-                }
-
-                if (prefix.trim().length() > 0){
-                    xmlWriter.writeCharacters(prefix + ":" + org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                } else {
-                    // i.e this is the default namespace
-                    xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                }
-
-            } else {
-                xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-            }
-        }
-
-        private void writeQNames(javax.xml.namespace.QName[] qnames,
-                                 javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-            if (qnames != null) {
-                // we have to store this data until last moment since it is not possible to write any
-                // namespace data after writing the charactor data
-                java.lang.StringBuffer stringToWrite = new java.lang.StringBuffer();
-                java.lang.String namespaceURI = null;
-                java.lang.String prefix = null;
-
-                for (int i = 0; i < qnames.length; i++) {
-                    if (i > 0) {
-                        stringToWrite.append(" ");
-                    }
-                    namespaceURI = qnames[i].getNamespaceURI();
-                    if (namespaceURI != null) {
-                        prefix = xmlWriter.getPrefix(namespaceURI);
-                        if ((prefix == null) || (prefix.length() == 0)) {
-                            prefix = generatePrefix(namespaceURI);
-                            xmlWriter.writeNamespace(prefix, namespaceURI);
-                            xmlWriter.setPrefix(prefix,namespaceURI);
-                        }
-
-                        if (prefix.trim().length() > 0){
-                            stringToWrite.append(prefix).append(":").append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        } else {
-                            stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        }
-                    } else {
-                        stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                    }
-                }
-                xmlWriter.writeCharacters(stringToWrite.toString());
-            }
-
-        }
-
-
-         /**
-         * Register a namespace prefix
-         */
-         private java.lang.String registerPrefix(javax.xml.stream.XMLStreamWriter xmlWriter, java.lang.String namespace) throws javax.xml.stream.XMLStreamException {
-                java.lang.String prefix = xmlWriter.getPrefix(namespace);
-
-                if (prefix == null) {
-                    prefix = generatePrefix(namespace);
-                    javax.xml.namespace.NamespaceContext nsContext = xmlWriter.getNamespaceContext();
-                    while (true) {
-                        java.lang.String uri = nsContext.getNamespaceURI(prefix);
-                        if (uri == null || uri.length() == 0) {
-                            break;
-                        }
-                        prefix = org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-                    }
-                    xmlWriter.writeNamespace(prefix, namespace);
-                    xmlWriter.setPrefix(prefix, namespace);
-                }
-
-                return prefix;
-            }
-
-
-  
-     /**
-      *  Factory class that keeps the parse method
-      */
-    public static class Factory{
-
-        
-        
-                public static _short fromString(java.lang.String value,
-                                                    java.lang.String namespaceURI){
-                    _short returnValue = new  _short();
-                    
-                            returnValue.set_short(
-                                org.apache.axis2.databinding.utils.ConverterUtil.convertToShort(value));
-                        
-
-                    return returnValue;
-                }
-
-                public static _short fromString(javax.xml.stream.XMLStreamReader xmlStreamReader,
-                                                                    java.lang.String content) {
-                    if (content.indexOf(":") > -1){
-                        java.lang.String prefix = content.substring(0,content.indexOf(":"));
-                        java.lang.String namespaceUri = xmlStreamReader.getNamespaceContext().getNamespaceURI(prefix);
-                        return _short.Factory.fromString(content,namespaceUri);
-                    } else {
-                       return _short.Factory.fromString(content,"");
-                    }
-                }
-
-            
-
-        /**
-        * static method to create the object
-        * Precondition:  If this object is an element, the current or next start element starts this object and any intervening reader events are ignorable
-        *                If this object is not an element, it is a complex type and the reader is at the event just after the outer start element
-        * Postcondition: If this object is an element, the reader is positioned at its end element
-        *                If this object is a complex type, the reader is positioned at the end element of its outer element
-        */
-        public static _short parse(javax.xml.stream.XMLStreamReader reader) throws java.lang.Exception{
-            _short object =
-                new _short();
-
-            int event;
-            java.lang.String nillableValue = null;
-            java.lang.String prefix ="";
-            java.lang.String namespaceuri ="";
-            try {
-                
-                while (!reader.isStartElement() && !reader.isEndElement())
-                    reader.next();
-
-                
-                if (reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance","type")!=null){
-                  java.lang.String fullTypeName = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance",
-                        "type");
-                  if (fullTypeName!=null){
-                    java.lang.String nsPrefix = null;
-                    if (fullTypeName.indexOf(":") > -1){
-                        nsPrefix = fullTypeName.substring(0,fullTypeName.indexOf(":"));
-                    }
-                    nsPrefix = nsPrefix==null?"":nsPrefix;
-
-                    java.lang.String type = fullTypeName.substring(fullTypeName.indexOf(":")+1);
-                    
-                            if (!"short".equals(type)){
-                                //find namespace for the prefix
-                                java.lang.String nsUri = reader.getNamespaceContext().getNamespaceURI(nsPrefix);
-                                return (_short)org.apache.axis2.databinding.types.soapencoding.ExtensionMapper.getTypeObject(
-                                     nsUri,type,reader);
-                              }
-                        
-
-                  }
-                
-
-                }
-
-                
-
-                
-                // Note all attributes that were handled. Used to differ normal attributes
-                // from anyAttributes.
-                java.util.Vector handledAttributes = new java.util.Vector();
-                
-
-                    
-                while(!reader.isEndElement()) {
-                    if (reader.isStartElement()  || reader.hasText()){
-                
-                                    if (reader.isStartElement()  || reader.hasText()){
-                                
-                                    java.lang.String content = reader.getElementText();
-                                    
-                                              object.set_short(
-                                                    org.apache.axis2.databinding.utils.ConverterUtil.convertToShort(content));
-                                            
-                              }  // End of if for expected property start element
-                                
-                             else{
-                                        // A start element we are not expecting indicates an invalid parameter was passed
-                                        throw new org.apache.axis2.databinding.ADBException("Unexpected subelement " + reader.getLocalName());
-                             }
-                          
-                             } else {
-                                reader.next();
-                             }  
-                           }  // end of while loop
-                        
-
-
-
-            } catch (javax.xml.stream.XMLStreamException e) {
-                throw new java.lang.Exception(e);
-            }
-
-            return object;
-        }
-
-        }//end of factory class
-
-        
-
-        }
-           
-          
\ No newline at end of file
diff --git a/modules/adb/src/org/apache/axis2/databinding/types/xsd/AnyURI.java b/modules/adb/src/org/apache/axis2/databinding/types/xsd/AnyURI.java
deleted file mode 100644
index 0a13363..0000000
--- a/modules/adb/src/org/apache/axis2/databinding/types/xsd/AnyURI.java
+++ /dev/null
@@ -1,469 +0,0 @@
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/**
- * AnyURI.java
- *
- * This file was auto-generated from WSDL
- * by the Apache Axis2 version: SNAPSHOT  Built on : Dec 21, 2007 (04:03:30 LKT)
- */
-            
-                package org.apache.axis2.databinding.types.xsd;
-
-import javax.xml.stream.XMLStreamWriter;
-            
-
-            /**
-            *  AnyURI bean class
-            */
-        
-        public  class AnyURI
-        implements org.apache.axis2.databinding.ADBBean{
-        /* This type was generated from the piece of schema that had
-                name = anyURI
-                Namespace URI = http://www.w3.org/2001/XMLSchema
-                Namespace Prefix = ns1
-                */
-            
-
-        private static java.lang.String generatePrefix(java.lang.String namespace) {
-            if(namespace.equals("http://www.w3.org/2001/XMLSchema")){
-                return "xsd";
-            }
-            return org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-        }
-
-        
-
-                        /**
-                        * field for AnyURI
-                        */
-
-                        
-                                    protected org.apache.axis2.databinding.types.URI localAnyURI ;
-                                
-
-                           /**
-                           * Auto generated getter method
-                           * @return org.apache.axis2.databinding.types.URI
-                           */
-                           public  org.apache.axis2.databinding.types.URI getAnyURI(){
-                               return localAnyURI;
-                           }
-
-                           
-                        
-                            /**
-                               * Auto generated setter method
-                               * @param param AnyURI
-                               */
-                               public void setAnyURI(org.apache.axis2.databinding.types.URI param){
-                            
-                                            this.localAnyURI=param;
-                                    
-
-                               }
-                            
-
-                            public java.lang.String toString(){
-                                
-                                        return localAnyURI.toString();
-                                    
-                            }
-                        
-
-     /**
-     * isReaderMTOMAware
-     * @return true if the reader supports MTOM
-     */
-   public static boolean isReaderMTOMAware(javax.xml.stream.XMLStreamReader reader) {
-        boolean isReaderMTOMAware = false;
-        
-        try{
-          isReaderMTOMAware = java.lang.Boolean.TRUE.equals(reader.getProperty(org.apache.axiom.om.OMConstants.IS_DATA_HANDLERS_AWARE));
-        }catch(java.lang.IllegalArgumentException e){
-          isReaderMTOMAware = false;
-        }
-        return isReaderMTOMAware;
-   }
-     
-     
-        /**
-        *
-        * @param parentQName
-        * @param factory
-        * @return org.apache.axiom.om.OMElement
-        */
-       public org.apache.axiom.om.OMElement getOMElement (
-               final javax.xml.namespace.QName parentQName,
-               final org.apache.axiom.om.OMFactory factory) throws org.apache.axis2.databinding.ADBException{
-
-
-        
-               org.apache.axiom.om.OMDataSource dataSource =
-                       new org.apache.axis2.databinding.ADBDataSource(this,parentQName);
-               return factory.createOMElement(dataSource,parentQName);
-            
-       }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                                       XMLStreamWriter xmlWriter)
-                                throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-                           serialize(parentQName,xmlWriter,false);
-         }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                               XMLStreamWriter xmlWriter,
-                               boolean serializeType)
-            throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-            
-                
-
-
-                java.lang.String prefix = null;
-                java.lang.String namespace = null;
-                
-
-                    prefix = parentQName.getPrefix();
-                    namespace = parentQName.getNamespaceURI();
-
-                    if ((namespace != null) && (namespace.trim().length() > 0)) {
-                        java.lang.String writerPrefix = xmlWriter.getPrefix(namespace);
-                        if (writerPrefix != null) {
-                            xmlWriter.writeStartElement(namespace, parentQName.getLocalPart());
-                        } else {
-                            if (prefix == null) {
-                                prefix = generatePrefix(namespace);
-                            }
-
-                            xmlWriter.writeStartElement(prefix, parentQName.getLocalPart(), namespace);
-                            xmlWriter.writeNamespace(prefix, namespace);
-                            xmlWriter.setPrefix(prefix, namespace);
-                        }
-                    } else {
-                        xmlWriter.writeStartElement(parentQName.getLocalPart());
-                    }
-                
-                  if (serializeType){
-               
-                   java.lang.String namespacePrefix = registerPrefix(xmlWriter,"http://www.w3.org/2001/XMLSchema");
-                   if ((namespacePrefix != null) && (namespacePrefix.trim().length() > 0)){
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           namespacePrefix+":anyURI",
-                           xmlWriter);
-                   } else {
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           "anyURI",
-                           xmlWriter);
-                   }
-
-               
-                   }
-               
-
-                                          if (localAnyURI==null){
-                                              // write the nil attribute
-                                              
-                                                     throw new org.apache.axis2.databinding.ADBException("anyURI cannot be null!!");
-                                                  
-                                          }else{
-
-                                        
-                                                   xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(localAnyURI));
-                                            
-                                          }
-                                    
-                    xmlWriter.writeEndElement();
-               
-
-        }
-
-         /**
-          * Util method to write an attribute with the ns prefix
-          */
-          private void writeAttribute(java.lang.String prefix,java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-              if (xmlWriter.getPrefix(namespace) == null) {
-                       xmlWriter.writeNamespace(prefix, namespace);
-                       xmlWriter.setPrefix(prefix, namespace);
-
-              }
-
-              xmlWriter.writeAttribute(namespace,attName,attValue);
-
-         }
-
-        /**
-          * Util method to write an attribute without the ns prefix
-          */
-          private void writeAttribute(java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-                if (namespace.equals(""))
-              {
-                  xmlWriter.writeAttribute(attName,attValue);
-              }
-              else
-              {
-                  registerPrefix(xmlWriter, namespace);
-                  xmlWriter.writeAttribute(namespace,attName,attValue);
-              }
-          }
-
-
-           /**
-             * Util method to write an attribute without the ns prefix
-             */
-            private void writeQNameAttribute(java.lang.String namespace, java.lang.String attName,
-                                             javax.xml.namespace.QName qname, javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-                java.lang.String attributeNamespace = qname.getNamespaceURI();
-                java.lang.String attributePrefix = xmlWriter.getPrefix(attributeNamespace);
-                if (attributePrefix == null) {
-                    attributePrefix = registerPrefix(xmlWriter, attributeNamespace);
-                }
-                java.lang.String attributeValue;
-                if (attributePrefix.trim().length() > 0) {
-                    attributeValue = attributePrefix + ":" + qname.getLocalPart();
-                } else {
-                    attributeValue = qname.getLocalPart();
-                }
-
-                if (namespace.equals("")) {
-                    xmlWriter.writeAttribute(attName, attributeValue);
-                } else {
-                    registerPrefix(xmlWriter, namespace);
-                    xmlWriter.writeAttribute(namespace, attName, attributeValue);
-                }
-            }
-        /**
-         *  method to handle Qnames
-         */
-
-        private void writeQName(javax.xml.namespace.QName qname,
-                                javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-            java.lang.String namespaceURI = qname.getNamespaceURI();
-            if (namespaceURI != null) {
-                java.lang.String prefix = xmlWriter.getPrefix(namespaceURI);
-                if (prefix == null) {
-                    prefix = generatePrefix(namespaceURI);
-                    xmlWriter.writeNamespace(prefix, namespaceURI);
-                    xmlWriter.setPrefix(prefix,namespaceURI);
-                }
-
-                if (prefix.trim().length() > 0){
-                    xmlWriter.writeCharacters(prefix + ":" + org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                } else {
-                    // i.e this is the default namespace
-                    xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                }
-
-            } else {
-                xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-            }
-        }
-
-        private void writeQNames(javax.xml.namespace.QName[] qnames,
-                                 javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-            if (qnames != null) {
-                // we have to store this data until last moment since it is not possible to write any
-                // namespace data after writing the charactor data
-                java.lang.StringBuffer stringToWrite = new java.lang.StringBuffer();
-                java.lang.String namespaceURI = null;
-                java.lang.String prefix = null;
-
-                for (int i = 0; i < qnames.length; i++) {
-                    if (i > 0) {
-                        stringToWrite.append(" ");
-                    }
-                    namespaceURI = qnames[i].getNamespaceURI();
-                    if (namespaceURI != null) {
-                        prefix = xmlWriter.getPrefix(namespaceURI);
-                        if ((prefix == null) || (prefix.length() == 0)) {
-                            prefix = generatePrefix(namespaceURI);
-                            xmlWriter.writeNamespace(prefix, namespaceURI);
-                            xmlWriter.setPrefix(prefix,namespaceURI);
-                        }
-
-                        if (prefix.trim().length() > 0){
-                            stringToWrite.append(prefix).append(":").append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        } else {
-                            stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        }
-                    } else {
-                        stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                    }
-                }
-                xmlWriter.writeCharacters(stringToWrite.toString());
-            }
-
-        }
-
-
-         /**
-         * Register a namespace prefix
-         */
-         private java.lang.String registerPrefix(javax.xml.stream.XMLStreamWriter xmlWriter, java.lang.String namespace) throws javax.xml.stream.XMLStreamException {
-                java.lang.String prefix = xmlWriter.getPrefix(namespace);
-
-                if (prefix == null) {
-                    prefix = generatePrefix(namespace);
-                    javax.xml.namespace.NamespaceContext nsContext = xmlWriter.getNamespaceContext();
-                    while (true) {
-                        java.lang.String uri = nsContext.getNamespaceURI(prefix);
-                        if (uri == null || uri.length() == 0) {
-                            break;
-                        }
-                        prefix = org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-                    }
-                    xmlWriter.writeNamespace(prefix, namespace);
-                    xmlWriter.setPrefix(prefix, namespace);
-                }
-
-                return prefix;
-            }
-
-
-  
-     /**
-      *  Factory class that keeps the parse method
-      */
-    public static class Factory{
-
-        
-        
-                public static AnyURI fromString(java.lang.String value,
-                                                    java.lang.String namespaceURI){
-                    AnyURI returnValue = new  AnyURI();
-                    
-                            returnValue.setAnyURI(
-                                org.apache.axis2.databinding.utils.ConverterUtil.convertToAnyURI(value));
-                        
-
-                    return returnValue;
-                }
-
-                public static AnyURI fromString(javax.xml.stream.XMLStreamReader xmlStreamReader,
-                                                                    java.lang.String content) {
-                    if (content.indexOf(":") > -1){
-                        java.lang.String prefix = content.substring(0,content.indexOf(":"));
-                        java.lang.String namespaceUri = xmlStreamReader.getNamespaceContext().getNamespaceURI(prefix);
-                        return AnyURI.Factory.fromString(content,namespaceUri);
-                    } else {
-                       return AnyURI.Factory.fromString(content,"");
-                    }
-                }
-
-            
-
-        /**
-        * static method to create the object
-        * Precondition:  If this object is an element, the current or next start element starts this object and any intervening reader events are ignorable
-        *                If this object is not an element, it is a complex type and the reader is at the event just after the outer start element
-        * Postcondition: If this object is an element, the reader is positioned at its end element
-        *                If this object is a complex type, the reader is positioned at the end element of its outer element
-        */
-        public static AnyURI parse(javax.xml.stream.XMLStreamReader reader) throws java.lang.Exception{
-            AnyURI object =
-                new AnyURI();
-
-            int event;
-            java.lang.String nillableValue = null;
-            java.lang.String prefix ="";
-            java.lang.String namespaceuri ="";
-            try {
-                
-                while (!reader.isStartElement() && !reader.isEndElement())
-                    reader.next();
-
-                
-                if (reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance","type")!=null){
-                  java.lang.String fullTypeName = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance",
-                        "type");
-                  if (fullTypeName!=null){
-                    java.lang.String nsPrefix = null;
-                    if (fullTypeName.indexOf(":") > -1){
-                        nsPrefix = fullTypeName.substring(0,fullTypeName.indexOf(":"));
-                    }
-                    nsPrefix = nsPrefix==null?"":nsPrefix;
-
-                    java.lang.String type = fullTypeName.substring(fullTypeName.indexOf(":")+1);
-                    
-                            if (!"anyURI".equals(type)){
-                                //find namespace for the prefix
-                                java.lang.String nsUri = reader.getNamespaceContext().getNamespaceURI(nsPrefix);
-                                return (AnyURI)org.apache.axis2.databinding.types.xsd.ExtensionMapper.getTypeObject(
-                                     nsUri,type,reader);
-                              }
-                        
-
-                  }
-                
-
-                }
-
-                
-
-                
-                // Note all attributes that were handled. Used to differ normal attributes
-                // from anyAttributes.
-                java.util.Vector handledAttributes = new java.util.Vector();
-                
-
-                    
-                while(!reader.isEndElement()) {
-                    if (reader.isStartElement()  || reader.hasText()){
-                
-                                    if (reader.isStartElement()  || reader.hasText()){
-                                
-                                    java.lang.String content = reader.getElementText();
-                                    
-                                              object.setAnyURI(
-                                                    org.apache.axis2.databinding.utils.ConverterUtil.convertToAnyURI(content));
-                                            
-                              }  // End of if for expected property start element
-                                
-                             else{
-                                        // A start element we are not expecting indicates an invalid parameter was passed
-                                        throw new org.apache.axis2.databinding.ADBException("Unexpected subelement " + reader.getLocalName());
-                             }
-                          
-                             } else {
-                                reader.next();
-                             }  
-                           }  // end of while loop
-                        
-
-
-
-            } catch (javax.xml.stream.XMLStreamException e) {
-                throw new java.lang.Exception(e);
-            }
-
-            return object;
-        }
-
-        }//end of factory class
-
-        
-
-        }
-           
-          
\ No newline at end of file
diff --git a/modules/adb/src/org/apache/axis2/databinding/types/xsd/Base64.java b/modules/adb/src/org/apache/axis2/databinding/types/xsd/Base64.java
deleted file mode 100644
index e46a624..0000000
--- a/modules/adb/src/org/apache/axis2/databinding/types/xsd/Base64.java
+++ /dev/null
@@ -1,437 +0,0 @@
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/**
- * Base64.java
- *
- * This file was auto-generated from WSDL
- * by the Apache Axis2 version: SNAPSHOT  Built on : Dec 21, 2007 (04:03:30 LKT)
- */
-            
-                package org.apache.axis2.databinding.types.xsd;
-
-import javax.xml.stream.XMLStreamWriter;
-            
-
-            /**
-            *  Base64 bean class
-            */
-        
-        public  class Base64
-        implements org.apache.axis2.databinding.ADBBean{
-        
-                public static final javax.xml.namespace.QName MY_QNAME = new javax.xml.namespace.QName(
-                "http://www.w3.org/2001/XMLSchema",
-                "base64",
-                "xsd");
-
-            
-
-        private static java.lang.String generatePrefix(java.lang.String namespace) {
-            if(namespace.equals("http://www.w3.org/2001/XMLSchema")){
-                return "xsd";
-            }
-            return org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-        }
-
-        
-
-                        /**
-                        * field for Base64
-                        */
-
-                        
-                                    protected javax.activation.DataHandler localBase64 ;
-                                
-
-                           /**
-                           * Auto generated getter method
-                           * @return javax.activation.DataHandler
-                           */
-                           public  javax.activation.DataHandler getBase64(){
-                               return localBase64;
-                           }
-
-                           
-                        
-                            /**
-                               * Auto generated setter method
-                               * @param param Base64
-                               */
-                               public void setBase64(javax.activation.DataHandler param){
-                            
-                                             this.localBase64=param;
-                                        
-
-                               }
-                            
-
-                            public java.lang.String toString(){
-                                
-                                        return localBase64.toString();
-                                    
-                            }
-                        
-
-     /**
-     * isReaderMTOMAware
-     * @return true if the reader supports MTOM
-     */
-   public static boolean isReaderMTOMAware(javax.xml.stream.XMLStreamReader reader) {
-        boolean isReaderMTOMAware = false;
-        
-        try{
-          isReaderMTOMAware = java.lang.Boolean.TRUE.equals(reader.getProperty(org.apache.axiom.om.OMConstants.IS_DATA_HANDLERS_AWARE));
-        }catch(java.lang.IllegalArgumentException e){
-          isReaderMTOMAware = false;
-        }
-        return isReaderMTOMAware;
-   }
-     
-     
-        /**
-        *
-        * @param parentQName
-        * @param factory
-        * @return org.apache.axiom.om.OMElement
-        */
-       public org.apache.axiom.om.OMElement getOMElement (
-               final javax.xml.namespace.QName parentQName,
-               final org.apache.axiom.om.OMFactory factory) throws org.apache.axis2.databinding.ADBException{
-
-
-        
-                org.apache.axiom.om.OMDataSource dataSource =
-                       new org.apache.axis2.databinding.ADBDataSource(this,MY_QNAME);
-                return factory.createOMElement(dataSource,MY_QNAME);
-            
-       }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                                       XMLStreamWriter xmlWriter)
-                                throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-                           serialize(parentQName,xmlWriter,false);
-         }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                               XMLStreamWriter xmlWriter,
-                               boolean serializeType)
-            throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-            
-                
-                //We can safely assume an element has only one type associated with it
-                
-                            java.lang.String namespace = parentQName.getNamespaceURI();
-                            java.lang.String localName = parentQName.getLocalPart();
-                        
-                            if (! namespace.equals("")) {
-                                java.lang.String prefix = xmlWriter.getPrefix(namespace);
-
-                                if (prefix == null) {
-                                    prefix = generatePrefix(namespace);
-
-                                    xmlWriter.writeStartElement(prefix, localName, namespace);
-                                    xmlWriter.writeNamespace(prefix, namespace);
-                                    xmlWriter.setPrefix(prefix, namespace);
-
-                                } else {
-                                    xmlWriter.writeStartElement(namespace, localName);
-                                }
-
-                            } else {
-                                xmlWriter.writeStartElement(localName);
-                            }
-
-                            // add the type details if this is used in a simple type
-                               if (serializeType){
-                                   java.lang.String namespacePrefix = registerPrefix(xmlWriter,"http://www.w3.org/2001/XMLSchema");
-                                   if ((namespacePrefix != null) && (namespacePrefix.trim().length() > 0)){
-                                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                                           namespacePrefix+":base64",
-                                           xmlWriter);
-                                   } else {
-                                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                                           "base64",
-                                           xmlWriter);
-                                   }
-                               }
-                            
-                                          if (localBase64==null){
-                                            
-                                                     throw new org.apache.axis2.databinding.ADBException("Value cannot be null !!");
-                                                
-                                         }else{
-                                        
-                                                       xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(localBase64));
-                                            
-                                         }
-                                    
-                            xmlWriter.writeEndElement();
-
-                    
-
-        }
-
-         /**
-          * Util method to write an attribute with the ns prefix
-          */
-          private void writeAttribute(java.lang.String prefix,java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-              if (xmlWriter.getPrefix(namespace) == null) {
-                       xmlWriter.writeNamespace(prefix, namespace);
-                       xmlWriter.setPrefix(prefix, namespace);
-
-              }
-
-              xmlWriter.writeAttribute(namespace,attName,attValue);
-
-         }
-
-        /**
-          * Util method to write an attribute without the ns prefix
-          */
-          private void writeAttribute(java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-                if (namespace.equals(""))
-              {
-                  xmlWriter.writeAttribute(attName,attValue);
-              }
-              else
-              {
-                  registerPrefix(xmlWriter, namespace);
-                  xmlWriter.writeAttribute(namespace,attName,attValue);
-              }
-          }
-
-
-           /**
-             * Util method to write an attribute without the ns prefix
-             */
-            private void writeQNameAttribute(java.lang.String namespace, java.lang.String attName,
-                                             javax.xml.namespace.QName qname, javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-                java.lang.String attributeNamespace = qname.getNamespaceURI();
-                java.lang.String attributePrefix = xmlWriter.getPrefix(attributeNamespace);
-                if (attributePrefix == null) {
-                    attributePrefix = registerPrefix(xmlWriter, attributeNamespace);
-                }
-                java.lang.String attributeValue;
-                if (attributePrefix.trim().length() > 0) {
-                    attributeValue = attributePrefix + ":" + qname.getLocalPart();
-                } else {
-                    attributeValue = qname.getLocalPart();
-                }
-
-                if (namespace.equals("")) {
-                    xmlWriter.writeAttribute(attName, attributeValue);
-                } else {
-                    registerPrefix(xmlWriter, namespace);
-                    xmlWriter.writeAttribute(namespace, attName, attributeValue);
-                }
-            }
-        /**
-         *  method to handle Qnames
-         */
-
-        private void writeQName(javax.xml.namespace.QName qname,
-                                javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-            java.lang.String namespaceURI = qname.getNamespaceURI();
-            if (namespaceURI != null) {
-                java.lang.String prefix = xmlWriter.getPrefix(namespaceURI);
-                if (prefix == null) {
-                    prefix = generatePrefix(namespaceURI);
-                    xmlWriter.writeNamespace(prefix, namespaceURI);
-                    xmlWriter.setPrefix(prefix,namespaceURI);
-                }
-
-                if (prefix.trim().length() > 0){
-                    xmlWriter.writeCharacters(prefix + ":" + org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                } else {
-                    // i.e this is the default namespace
-                    xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                }
-
-            } else {
-                xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-            }
-        }
-
-        private void writeQNames(javax.xml.namespace.QName[] qnames,
-                                 javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-            if (qnames != null) {
-                // we have to store this data until last moment since it is not possible to write any
-                // namespace data after writing the charactor data
-                java.lang.StringBuffer stringToWrite = new java.lang.StringBuffer();
-                java.lang.String namespaceURI = null;
-                java.lang.String prefix = null;
-
-                for (int i = 0; i < qnames.length; i++) {
-                    if (i > 0) {
-                        stringToWrite.append(" ");
-                    }
-                    namespaceURI = qnames[i].getNamespaceURI();
-                    if (namespaceURI != null) {
-                        prefix = xmlWriter.getPrefix(namespaceURI);
-                        if ((prefix == null) || (prefix.length() == 0)) {
-                            prefix = generatePrefix(namespaceURI);
-                            xmlWriter.writeNamespace(prefix, namespaceURI);
-                            xmlWriter.setPrefix(prefix,namespaceURI);
-                        }
-
-                        if (prefix.trim().length() > 0){
-                            stringToWrite.append(prefix).append(":").append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        } else {
-                            stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        }
-                    } else {
-                        stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                    }
-                }
-                xmlWriter.writeCharacters(stringToWrite.toString());
-            }
-
-        }
-
-
-         /**
-         * Register a namespace prefix
-         */
-         private java.lang.String registerPrefix(javax.xml.stream.XMLStreamWriter xmlWriter, java.lang.String namespace) throws javax.xml.stream.XMLStreamException {
-                java.lang.String prefix = xmlWriter.getPrefix(namespace);
-
-                if (prefix == null) {
-                    prefix = generatePrefix(namespace);
-                    javax.xml.namespace.NamespaceContext nsContext = xmlWriter.getNamespaceContext();
-                    while (true) {
-                        java.lang.String uri = nsContext.getNamespaceURI(prefix);
-                        if (uri == null || uri.length() == 0) {
-                            break;
-                        }
-                        prefix = org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-                    }
-                    xmlWriter.writeNamespace(prefix, namespace);
-                    xmlWriter.setPrefix(prefix, namespace);
-                }
-
-                return prefix;
-            }
-
-
-  
-     /**
-      *  Factory class that keeps the parse method
-      */
-    public static class Factory{
-
-        
-        
-                public static Base64 fromString(java.lang.String value,
-                                                    java.lang.String namespaceURI){
-                    Base64 returnValue = new  Base64();
-                    
-                            returnValue.setBase64(
-                                org.apache.axis2.databinding.utils.ConverterUtil.convertToBase64Binary(value));
-                        
-
-                    return returnValue;
-                }
-
-                public static Base64 fromString(javax.xml.stream.XMLStreamReader xmlStreamReader,
-                                                                    java.lang.String content) {
-                    if (content.indexOf(":") > -1){
-                        java.lang.String prefix = content.substring(0,content.indexOf(":"));
-                        java.lang.String namespaceUri = xmlStreamReader.getNamespaceContext().getNamespaceURI(prefix);
-                        return Base64.Factory.fromString(content,namespaceUri);
-                    } else {
-                       return Base64.Factory.fromString(content,"");
-                    }
-                }
-
-            
-
-        /**
-        * static method to create the object
-        * Precondition:  If this object is an element, the current or next start element starts this object and any intervening reader events are ignorable
-        *                If this object is not an element, it is a complex type and the reader is at the event just after the outer start element
-        * Postcondition: If this object is an element, the reader is positioned at its end element
-        *                If this object is a complex type, the reader is positioned at the end element of its outer element
-        */
-        public static Base64 parse(javax.xml.stream.XMLStreamReader reader) throws java.lang.Exception{
-            Base64 object =
-                new Base64();
-
-            int event;
-            java.lang.String nillableValue = null;
-            java.lang.String prefix ="";
-            java.lang.String namespaceuri ="";
-            try {
-                
-                while (!reader.isStartElement() && !reader.isEndElement())
-                    reader.next();
-
-                
-
-                
-                // Note all attributes that were handled. Used to differ normal attributes
-                // from anyAttributes.
-                java.util.Vector handledAttributes = new java.util.Vector();
-                
-
-                    
-                while(!reader.isEndElement()) {
-                    if (reader.isStartElement()  || reader.hasText()){
-                
-                                    if (reader.isStartElement()  || reader.hasText()){
-                                
-                                    java.lang.String content = reader.getElementText();
-                                    
-                                              object.setBase64(
-                                                    org.apache.axis2.databinding.utils.ConverterUtil.convertToBase64Binary(content));
-                                            
-                              }  // End of if for expected property start element
-                                
-                             else{
-                                        // A start element we are not expecting indicates an invalid parameter was passed
-                                        throw new org.apache.axis2.databinding.ADBException("Unexpected subelement " + reader.getLocalName());
-                             }
-                          
-                             } else {
-                                reader.next();
-                             }  
-                           }  // end of while loop
-                        
-
-
-
-            } catch (javax.xml.stream.XMLStreamException e) {
-                throw new java.lang.Exception(e);
-            }
-
-            return object;
-        }
-
-        }//end of factory class
-
-        
-
-        }
-           
-          
\ No newline at end of file
diff --git a/modules/adb/src/org/apache/axis2/databinding/types/xsd/Base64Binary.java b/modules/adb/src/org/apache/axis2/databinding/types/xsd/Base64Binary.java
deleted file mode 100644
index 33678ac..0000000
--- a/modules/adb/src/org/apache/axis2/databinding/types/xsd/Base64Binary.java
+++ /dev/null
@@ -1,468 +0,0 @@
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/**
- * Base64Binary.java
- *
- * This file was auto-generated from WSDL
- * by the Apache Axis2 version: SNAPSHOT  Built on : Dec 21, 2007 (04:03:30 LKT)
- */
-            
-                package org.apache.axis2.databinding.types.xsd;
-
-import java.io.IOException;
-
-import javax.xml.stream.XMLStreamException;
-import javax.xml.stream.XMLStreamWriter;
-
-import org.apache.axiom.util.stax.XMLStreamWriterUtils;
-            
-
-            /**
-            *  Base64Binary bean class
-            */
-        
-        public  class Base64Binary
-        implements org.apache.axis2.databinding.ADBBean{
-        /* This type was generated from the piece of schema that had
-                name = base64Binary
-                Namespace URI = http://www.w3.org/2001/XMLSchema
-                Namespace Prefix = ns1
-                */
-            
-
-        private static java.lang.String generatePrefix(java.lang.String namespace) {
-            if(namespace.equals("http://www.w3.org/2001/XMLSchema")){
-                return "xsd";
-            }
-            return org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-        }
-
-        
-
-                        /**
-                        * field for Base64Binary
-                        */
-
-                        
-                                    protected javax.activation.DataHandler localBase64Binary ;
-                                
-
-                           /**
-                           * Auto generated getter method
-                           * @return javax.activation.DataHandler
-                           */
-                           public  javax.activation.DataHandler getBase64Binary(){
-                               return localBase64Binary;
-                           }
-
-                           
-                        
-                            /**
-                               * Auto generated setter method
-                               * @param param Base64Binary
-                               */
-                               public void setBase64Binary(javax.activation.DataHandler param){
-                            
-                                            this.localBase64Binary=param;
-                                    
-
-                               }
-                            
-
-                            public java.lang.String toString(){
-                                
-                                        return localBase64Binary.toString();
-                                    
-                            }
-                        
-
-     /**
-     * isReaderMTOMAware
-     * @return true if the reader supports MTOM
-     */
-   public static boolean isReaderMTOMAware(javax.xml.stream.XMLStreamReader reader) {
-        boolean isReaderMTOMAware = false;
-        
-        try{
-          isReaderMTOMAware = java.lang.Boolean.TRUE.equals(reader.getProperty(org.apache.axiom.om.OMConstants.IS_DATA_HANDLERS_AWARE));
-        }catch(java.lang.IllegalArgumentException e){
-          isReaderMTOMAware = false;
-        }
-        return isReaderMTOMAware;
-   }
-     
-     
-        /**
-        *
-        * @param parentQName
-        * @param factory
-        * @return org.apache.axiom.om.OMElement
-        */
-       public org.apache.axiom.om.OMElement getOMElement (
-               final javax.xml.namespace.QName parentQName,
-               final org.apache.axiom.om.OMFactory factory) throws org.apache.axis2.databinding.ADBException{
-
-
-        
-               org.apache.axiom.om.OMDataSource dataSource =
-                       new org.apache.axis2.databinding.ADBDataSource(this,parentQName);
-               return factory.createOMElement(dataSource,parentQName);
-            
-       }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                                       XMLStreamWriter xmlWriter)
-                                throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-                           serialize(parentQName,xmlWriter,false);
-         }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                               XMLStreamWriter xmlWriter,
-                               boolean serializeType)
-            throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-            
-                
-
-
-                java.lang.String prefix = null;
-                java.lang.String namespace = null;
-                
-
-                    prefix = parentQName.getPrefix();
-                    namespace = parentQName.getNamespaceURI();
-
-                    if ((namespace != null) && (namespace.trim().length() > 0)) {
-                        java.lang.String writerPrefix = xmlWriter.getPrefix(namespace);
-                        if (writerPrefix != null) {
-                            xmlWriter.writeStartElement(namespace, parentQName.getLocalPart());
-                        } else {
-                            if (prefix == null) {
-                                prefix = generatePrefix(namespace);
-                            }
-
-                            xmlWriter.writeStartElement(prefix, parentQName.getLocalPart(), namespace);
-                            xmlWriter.writeNamespace(prefix, namespace);
-                            xmlWriter.setPrefix(prefix, namespace);
-                        }
-                    } else {
-                        xmlWriter.writeStartElement(parentQName.getLocalPart());
-                    }
-                
-                  if (serializeType){
-               
-                   java.lang.String namespacePrefix = registerPrefix(xmlWriter,"http://www.w3.org/2001/XMLSchema");
-                   if ((namespacePrefix != null) && (namespacePrefix.trim().length() > 0)){
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           namespacePrefix+":base64Binary",
-                           xmlWriter);
-                   } else {
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           "base64Binary",
-                           xmlWriter);
-                   }
-
-               
-                   }
-               
-                                        
-                                    if (localBase64Binary!=null)
-                                    {
-                                       try {
-                                           XMLStreamWriterUtils.writeDataHandler(xmlWriter, localBase64Binary, null, true);
-                                       } catch (IOException ex) {
-                                           throw new XMLStreamException(ex);
-                                       }
-                                    }
-                                 
-                    xmlWriter.writeEndElement();
-               
-
-        }
-
-         /**
-          * Util method to write an attribute with the ns prefix
-          */
-          private void writeAttribute(java.lang.String prefix,java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-              if (xmlWriter.getPrefix(namespace) == null) {
-                       xmlWriter.writeNamespace(prefix, namespace);
-                       xmlWriter.setPrefix(prefix, namespace);
-
-              }
-
-              xmlWriter.writeAttribute(namespace,attName,attValue);
-
-         }
-
-        /**
-          * Util method to write an attribute without the ns prefix
-          */
-          private void writeAttribute(java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-                if (namespace.equals(""))
-              {
-                  xmlWriter.writeAttribute(attName,attValue);
-              }
-              else
-              {
-                  registerPrefix(xmlWriter, namespace);
-                  xmlWriter.writeAttribute(namespace,attName,attValue);
-              }
-          }
-
-
-           /**
-             * Util method to write an attribute without the ns prefix
-             */
-            private void writeQNameAttribute(java.lang.String namespace, java.lang.String attName,
-                                             javax.xml.namespace.QName qname, javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-                java.lang.String attributeNamespace = qname.getNamespaceURI();
-                java.lang.String attributePrefix = xmlWriter.getPrefix(attributeNamespace);
-                if (attributePrefix == null) {
-                    attributePrefix = registerPrefix(xmlWriter, attributeNamespace);
-                }
-                java.lang.String attributeValue;
-                if (attributePrefix.trim().length() > 0) {
-                    attributeValue = attributePrefix + ":" + qname.getLocalPart();
-                } else {
-                    attributeValue = qname.getLocalPart();
-                }
-
-                if (namespace.equals("")) {
-                    xmlWriter.writeAttribute(attName, attributeValue);
-                } else {
-                    registerPrefix(xmlWriter, namespace);
-                    xmlWriter.writeAttribute(namespace, attName, attributeValue);
-                }
-            }
-        /**
-         *  method to handle Qnames
-         */
-
-        private void writeQName(javax.xml.namespace.QName qname,
-                                javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-            java.lang.String namespaceURI = qname.getNamespaceURI();
-            if (namespaceURI != null) {
-                java.lang.String prefix = xmlWriter.getPrefix(namespaceURI);
-                if (prefix == null) {
-                    prefix = generatePrefix(namespaceURI);
-                    xmlWriter.writeNamespace(prefix, namespaceURI);
-                    xmlWriter.setPrefix(prefix,namespaceURI);
-                }
-
-                if (prefix.trim().length() > 0){
-                    xmlWriter.writeCharacters(prefix + ":" + org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                } else {
-                    // i.e this is the default namespace
-                    xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                }
-
-            } else {
-                xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-            }
-        }
-
-        private void writeQNames(javax.xml.namespace.QName[] qnames,
-                                 javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-            if (qnames != null) {
-                // we have to store this data until last moment since it is not possible to write any
-                // namespace data after writing the charactor data
-                java.lang.StringBuffer stringToWrite = new java.lang.StringBuffer();
-                java.lang.String namespaceURI = null;
-                java.lang.String prefix = null;
-
-                for (int i = 0; i < qnames.length; i++) {
-                    if (i > 0) {
-                        stringToWrite.append(" ");
-                    }
-                    namespaceURI = qnames[i].getNamespaceURI();
-                    if (namespaceURI != null) {
-                        prefix = xmlWriter.getPrefix(namespaceURI);
-                        if ((prefix == null) || (prefix.length() == 0)) {
-                            prefix = generatePrefix(namespaceURI);
-                            xmlWriter.writeNamespace(prefix, namespaceURI);
-                            xmlWriter.setPrefix(prefix,namespaceURI);
-                        }
-
-                        if (prefix.trim().length() > 0){
-                            stringToWrite.append(prefix).append(":").append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        } else {
-                            stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        }
-                    } else {
-                        stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                    }
-                }
-                xmlWriter.writeCharacters(stringToWrite.toString());
-            }
-
-        }
-
-
-         /**
-         * Register a namespace prefix
-         */
-         private java.lang.String registerPrefix(javax.xml.stream.XMLStreamWriter xmlWriter, java.lang.String namespace) throws javax.xml.stream.XMLStreamException {
-                java.lang.String prefix = xmlWriter.getPrefix(namespace);
-
-                if (prefix == null) {
-                    prefix = generatePrefix(namespace);
-                    javax.xml.namespace.NamespaceContext nsContext = xmlWriter.getNamespaceContext();
-                    while (true) {
-                        java.lang.String uri = nsContext.getNamespaceURI(prefix);
-                        if (uri == null || uri.length() == 0) {
-                            break;
-                        }
-                        prefix = org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-                    }
-                    xmlWriter.writeNamespace(prefix, namespace);
-                    xmlWriter.setPrefix(prefix, namespace);
-                }
-
-                return prefix;
-            }
-
-
-  
-     /**
-      *  Factory class that keeps the parse method
-      */
-    public static class Factory{
-
-        
-        
-                public static Base64Binary fromString(java.lang.String value,
-                                                    java.lang.String namespaceURI){
-                    Base64Binary returnValue = new  Base64Binary();
-                    
-                            returnValue.setBase64Binary(
-                                org.apache.axis2.databinding.utils.ConverterUtil.convertToBase64Binary(value));
-                        
-
-                    return returnValue;
-                }
-
-                public static Base64Binary fromString(javax.xml.stream.XMLStreamReader xmlStreamReader,
-                                                                    java.lang.String content) {
-                    if (content.indexOf(":") > -1){
-                        java.lang.String prefix = content.substring(0,content.indexOf(":"));
-                        java.lang.String namespaceUri = xmlStreamReader.getNamespaceContext().getNamespaceURI(prefix);
-                        return Base64Binary.Factory.fromString(content,namespaceUri);
-                    } else {
-                       return Base64Binary.Factory.fromString(content,"");
-                    }
-                }
-
-            
-
-        /**
-        * static method to create the object
-        * Precondition:  If this object is an element, the current or next start element starts this object and any intervening reader events are ignorable
-        *                If this object is not an element, it is a complex type and the reader is at the event just after the outer start element
-        * Postcondition: If this object is an element, the reader is positioned at its end element
-        *                If this object is a complex type, the reader is positioned at the end element of its outer element
-        */
-        public static Base64Binary parse(javax.xml.stream.XMLStreamReader reader) throws java.lang.Exception{
-            Base64Binary object =
-                new Base64Binary();
-
-            int event;
-            java.lang.String nillableValue = null;
-            java.lang.String prefix ="";
-            java.lang.String namespaceuri ="";
-            try {
-                
-                while (!reader.isStartElement() && !reader.isEndElement())
-                    reader.next();
-
-                
-                if (reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance","type")!=null){
-                  java.lang.String fullTypeName = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance",
-                        "type");
-                  if (fullTypeName!=null){
-                    java.lang.String nsPrefix = null;
-                    if (fullTypeName.indexOf(":") > -1){
-                        nsPrefix = fullTypeName.substring(0,fullTypeName.indexOf(":"));
-                    }
-                    nsPrefix = nsPrefix==null?"":nsPrefix;
-
-                    java.lang.String type = fullTypeName.substring(fullTypeName.indexOf(":")+1);
-                    
-                            if (!"base64Binary".equals(type)){
-                                //find namespace for the prefix
-                                java.lang.String nsUri = reader.getNamespaceContext().getNamespaceURI(nsPrefix);
-                                return (Base64Binary)org.apache.axis2.databinding.types.xsd.ExtensionMapper.getTypeObject(
-                                     nsUri,type,reader);
-                              }
-                        
-
-                  }
-                
-
-                }
-
-                
-
-                
-                // Note all attributes that were handled. Used to differ normal attributes
-                // from anyAttributes.
-                java.util.Vector handledAttributes = new java.util.Vector();
-                
-
-                    
-                while(!reader.isEndElement()) {
-                    if (reader.isStartElement()  || reader.hasText()){
-                
-                                    if (reader.isStartElement()  || reader.hasText()){
-                                
-                                        object.setBase64Binary(org.apache.axiom.util.stax.XMLStreamReaderUtils.getDataHandlerFromElement(reader));
-                                    
-                              }  // End of if for expected property start element
-                                
-                             else{
-                                        // A start element we are not expecting indicates an invalid parameter was passed
-                                        throw new org.apache.axis2.databinding.ADBException("Unexpected subelement " + reader.getLocalName());
-                             }
-                          
-                             } else {
-                                reader.next();
-                             }  
-                           }  // end of while loop
-                        
-
-
-
-            } catch (javax.xml.stream.XMLStreamException e) {
-                throw new java.lang.Exception(e);
-            }
-
-            return object;
-        }
-
-        }//end of factory class
-
-        
-
-        }
-           
-          
\ No newline at end of file
diff --git a/modules/adb/src/org/apache/axis2/databinding/types/xsd/Date.java b/modules/adb/src/org/apache/axis2/databinding/types/xsd/Date.java
deleted file mode 100644
index add0d30..0000000
--- a/modules/adb/src/org/apache/axis2/databinding/types/xsd/Date.java
+++ /dev/null
@@ -1,469 +0,0 @@
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/**
- * Date.java
- *
- * This file was auto-generated from WSDL
- * by the Apache Axis2 version: SNAPSHOT  Built on : Dec 21, 2007 (04:03:30 LKT)
- */
-            
-                package org.apache.axis2.databinding.types.xsd;
-
-import javax.xml.stream.XMLStreamWriter;
-            
-
-            /**
-            *  Date bean class
-            */
-        
-        public  class Date
-        implements org.apache.axis2.databinding.ADBBean{
-        /* This type was generated from the piece of schema that had
-                name = date
-                Namespace URI = http://www.w3.org/2001/XMLSchema
-                Namespace Prefix = ns1
-                */
-            
-
-        private static java.lang.String generatePrefix(java.lang.String namespace) {
-            if(namespace.equals("http://www.w3.org/2001/XMLSchema")){
-                return "xsd";
-            }
-            return org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-        }
-
-        
-
-                        /**
-                        * field for Date
-                        */
-
-                        
-                                    protected java.util.Date localDate ;
-                                
-
-                           /**
-                           * Auto generated getter method
-                           * @return java.util.Date
-                           */
-                           public  java.util.Date getDate(){
-                               return localDate;
-                           }
-
-                           
-                        
-                            /**
-                               * Auto generated setter method
-                               * @param param Date
-                               */
-                               public void setDate(java.util.Date param){
-                            
-                                            this.localDate=param;
-                                    
-
-                               }
-                            
-
-                            public java.lang.String toString(){
-                                
-                                        return localDate.toString();
-                                    
-                            }
-                        
-
-     /**
-     * isReaderMTOMAware
-     * @return true if the reader supports MTOM
-     */
-   public static boolean isReaderMTOMAware(javax.xml.stream.XMLStreamReader reader) {
-        boolean isReaderMTOMAware = false;
-        
-        try{
-          isReaderMTOMAware = java.lang.Boolean.TRUE.equals(reader.getProperty(org.apache.axiom.om.OMConstants.IS_DATA_HANDLERS_AWARE));
-        }catch(java.lang.IllegalArgumentException e){
-          isReaderMTOMAware = false;
-        }
-        return isReaderMTOMAware;
-   }
-     
-     
-        /**
-        *
-        * @param parentQName
-        * @param factory
-        * @return org.apache.axiom.om.OMElement
-        */
-       public org.apache.axiom.om.OMElement getOMElement (
-               final javax.xml.namespace.QName parentQName,
-               final org.apache.axiom.om.OMFactory factory) throws org.apache.axis2.databinding.ADBException{
-
-
-        
-               org.apache.axiom.om.OMDataSource dataSource =
-                       new org.apache.axis2.databinding.ADBDataSource(this,parentQName);
-               return factory.createOMElement(dataSource,parentQName);
-            
-       }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                                       XMLStreamWriter xmlWriter)
-                                throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-                           serialize(parentQName,xmlWriter,false);
-         }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                               XMLStreamWriter xmlWriter,
-                               boolean serializeType)
-            throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-            
-                
-
-
-                java.lang.String prefix = null;
-                java.lang.String namespace = null;
-                
-
-                    prefix = parentQName.getPrefix();
-                    namespace = parentQName.getNamespaceURI();
-
-                    if ((namespace != null) && (namespace.trim().length() > 0)) {
-                        java.lang.String writerPrefix = xmlWriter.getPrefix(namespace);
-                        if (writerPrefix != null) {
-                            xmlWriter.writeStartElement(namespace, parentQName.getLocalPart());
-                        } else {
-                            if (prefix == null) {
-                                prefix = generatePrefix(namespace);
-                            }
-
-                            xmlWriter.writeStartElement(prefix, parentQName.getLocalPart(), namespace);
-                            xmlWriter.writeNamespace(prefix, namespace);
-                            xmlWriter.setPrefix(prefix, namespace);
-                        }
-                    } else {
-                        xmlWriter.writeStartElement(parentQName.getLocalPart());
-                    }
-                
-                  if (serializeType){
-               
-                   java.lang.String namespacePrefix = registerPrefix(xmlWriter,"http://www.w3.org/2001/XMLSchema");
-                   if ((namespacePrefix != null) && (namespacePrefix.trim().length() > 0)){
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           namespacePrefix+":date",
-                           xmlWriter);
-                   } else {
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           "date",
-                           xmlWriter);
-                   }
-
-               
-                   }
-               
-
-                                          if (localDate==null){
-                                              // write the nil attribute
-                                              
-                                                     throw new org.apache.axis2.databinding.ADBException("date cannot be null!!");
-                                                  
-                                          }else{
-
-                                        
-                                                   xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(localDate));
-                                            
-                                          }
-                                    
-                    xmlWriter.writeEndElement();
-               
-
-        }
-
-         /**
-          * Util method to write an attribute with the ns prefix
-          */
-          private void writeAttribute(java.lang.String prefix,java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-              if (xmlWriter.getPrefix(namespace) == null) {
-                       xmlWriter.writeNamespace(prefix, namespace);
-                       xmlWriter.setPrefix(prefix, namespace);
-
-              }
-
-              xmlWriter.writeAttribute(namespace,attName,attValue);
-
-         }
-
-        /**
-          * Util method to write an attribute without the ns prefix
-          */
-          private void writeAttribute(java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-                if (namespace.equals(""))
-              {
-                  xmlWriter.writeAttribute(attName,attValue);
-              }
-              else
-              {
-                  registerPrefix(xmlWriter, namespace);
-                  xmlWriter.writeAttribute(namespace,attName,attValue);
-              }
-          }
-
-
-           /**
-             * Util method to write an attribute without the ns prefix
-             */
-            private void writeQNameAttribute(java.lang.String namespace, java.lang.String attName,
-                                             javax.xml.namespace.QName qname, javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-                java.lang.String attributeNamespace = qname.getNamespaceURI();
-                java.lang.String attributePrefix = xmlWriter.getPrefix(attributeNamespace);
-                if (attributePrefix == null) {
-                    attributePrefix = registerPrefix(xmlWriter, attributeNamespace);
-                }
-                java.lang.String attributeValue;
-                if (attributePrefix.trim().length() > 0) {
-                    attributeValue = attributePrefix + ":" + qname.getLocalPart();
-                } else {
-                    attributeValue = qname.getLocalPart();
-                }
-
-                if (namespace.equals("")) {
-                    xmlWriter.writeAttribute(attName, attributeValue);
-                } else {
-                    registerPrefix(xmlWriter, namespace);
-                    xmlWriter.writeAttribute(namespace, attName, attributeValue);
-                }
-            }
-        /**
-         *  method to handle Qnames
-         */
-
-        private void writeQName(javax.xml.namespace.QName qname,
-                                javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-            java.lang.String namespaceURI = qname.getNamespaceURI();
-            if (namespaceURI != null) {
-                java.lang.String prefix = xmlWriter.getPrefix(namespaceURI);
-                if (prefix == null) {
-                    prefix = generatePrefix(namespaceURI);
-                    xmlWriter.writeNamespace(prefix, namespaceURI);
-                    xmlWriter.setPrefix(prefix,namespaceURI);
-                }
-
-                if (prefix.trim().length() > 0){
-                    xmlWriter.writeCharacters(prefix + ":" + org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                } else {
-                    // i.e this is the default namespace
-                    xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                }
-
-            } else {
-                xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-            }
-        }
-
-        private void writeQNames(javax.xml.namespace.QName[] qnames,
-                                 javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-            if (qnames != null) {
-                // we have to store this data until last moment since it is not possible to write any
-                // namespace data after writing the charactor data
-                java.lang.StringBuffer stringToWrite = new java.lang.StringBuffer();
-                java.lang.String namespaceURI = null;
-                java.lang.String prefix = null;
-
-                for (int i = 0; i < qnames.length; i++) {
-                    if (i > 0) {
-                        stringToWrite.append(" ");
-                    }
-                    namespaceURI = qnames[i].getNamespaceURI();
-                    if (namespaceURI != null) {
-                        prefix = xmlWriter.getPrefix(namespaceURI);
-                        if ((prefix == null) || (prefix.length() == 0)) {
-                            prefix = generatePrefix(namespaceURI);
-                            xmlWriter.writeNamespace(prefix, namespaceURI);
-                            xmlWriter.setPrefix(prefix,namespaceURI);
-                        }
-
-                        if (prefix.trim().length() > 0){
-                            stringToWrite.append(prefix).append(":").append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        } else {
-                            stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        }
-                    } else {
-                        stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                    }
-                }
-                xmlWriter.writeCharacters(stringToWrite.toString());
-            }
-
-        }
-
-
-         /**
-         * Register a namespace prefix
-         */
-         private java.lang.String registerPrefix(javax.xml.stream.XMLStreamWriter xmlWriter, java.lang.String namespace) throws javax.xml.stream.XMLStreamException {
-                java.lang.String prefix = xmlWriter.getPrefix(namespace);
-
-                if (prefix == null) {
-                    prefix = generatePrefix(namespace);
-                    javax.xml.namespace.NamespaceContext nsContext = xmlWriter.getNamespaceContext();
-                    while (true) {
-                        java.lang.String uri = nsContext.getNamespaceURI(prefix);
-                        if (uri == null || uri.length() == 0) {
-                            break;
-                        }
-                        prefix = org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-                    }
-                    xmlWriter.writeNamespace(prefix, namespace);
-                    xmlWriter.setPrefix(prefix, namespace);
-                }
-
-                return prefix;
-            }
-
-
-  
-     /**
-      *  Factory class that keeps the parse method
-      */
-    public static class Factory{
-
-        
-        
-                public static Date fromString(java.lang.String value,
-                                                    java.lang.String namespaceURI){
-                    Date returnValue = new  Date();
-                    
-                            returnValue.setDate(
-                                org.apache.axis2.databinding.utils.ConverterUtil.convertToDate(value));
-                        
-
-                    return returnValue;
-                }
-
-                public static Date fromString(javax.xml.stream.XMLStreamReader xmlStreamReader,
-                                                                    java.lang.String content) {
-                    if (content.indexOf(":") > -1){
-                        java.lang.String prefix = content.substring(0,content.indexOf(":"));
-                        java.lang.String namespaceUri = xmlStreamReader.getNamespaceContext().getNamespaceURI(prefix);
-                        return Date.Factory.fromString(content,namespaceUri);
-                    } else {
-                       return Date.Factory.fromString(content,"");
-                    }
-                }
-
-            
-
-        /**
-        * static method to create the object
-        * Precondition:  If this object is an element, the current or next start element starts this object and any intervening reader events are ignorable
-        *                If this object is not an element, it is a complex type and the reader is at the event just after the outer start element
-        * Postcondition: If this object is an element, the reader is positioned at its end element
-        *                If this object is a complex type, the reader is positioned at the end element of its outer element
-        */
-        public static Date parse(javax.xml.stream.XMLStreamReader reader) throws java.lang.Exception{
-            Date object =
-                new Date();
-
-            int event;
-            java.lang.String nillableValue = null;
-            java.lang.String prefix ="";
-            java.lang.String namespaceuri ="";
-            try {
-                
-                while (!reader.isStartElement() && !reader.isEndElement())
-                    reader.next();
-
-                
-                if (reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance","type")!=null){
-                  java.lang.String fullTypeName = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance",
-                        "type");
-                  if (fullTypeName!=null){
-                    java.lang.String nsPrefix = null;
-                    if (fullTypeName.indexOf(":") > -1){
-                        nsPrefix = fullTypeName.substring(0,fullTypeName.indexOf(":"));
-                    }
-                    nsPrefix = nsPrefix==null?"":nsPrefix;
-
-                    java.lang.String type = fullTypeName.substring(fullTypeName.indexOf(":")+1);
-                    
-                            if (!"date".equals(type)){
-                                //find namespace for the prefix
-                                java.lang.String nsUri = reader.getNamespaceContext().getNamespaceURI(nsPrefix);
-                                return (Date)org.apache.axis2.databinding.types.xsd.ExtensionMapper.getTypeObject(
-                                     nsUri,type,reader);
-                              }
-                        
-
-                  }
-                
-
-                }
-
-                
-
-                
-                // Note all attributes that were handled. Used to differ normal attributes
-                // from anyAttributes.
-                java.util.Vector handledAttributes = new java.util.Vector();
-                
-
-                    
-                while(!reader.isEndElement()) {
-                    if (reader.isStartElement()  || reader.hasText()){
-                
-                                    if (reader.isStartElement()  || reader.hasText()){
-                                
-                                    java.lang.String content = reader.getElementText();
-                                    
-                                              object.setDate(
-                                                    org.apache.axis2.databinding.utils.ConverterUtil.convertToDate(content));
-                                            
-                              }  // End of if for expected property start element
-                                
-                             else{
-                                        // A start element we are not expecting indicates an invalid parameter was passed
-                                        throw new org.apache.axis2.databinding.ADBException("Unexpected subelement " + reader.getLocalName());
-                             }
-                          
-                             } else {
-                                reader.next();
-                             }  
-                           }  // end of while loop
-                        
-
-
-
-            } catch (javax.xml.stream.XMLStreamException e) {
-                throw new java.lang.Exception(e);
-            }
-
-            return object;
-        }
-
-        }//end of factory class
-
-        
-
-        }
-           
-          
\ No newline at end of file
diff --git a/modules/adb/src/org/apache/axis2/databinding/types/xsd/DateTime.java b/modules/adb/src/org/apache/axis2/databinding/types/xsd/DateTime.java
deleted file mode 100644
index 686defb..0000000
--- a/modules/adb/src/org/apache/axis2/databinding/types/xsd/DateTime.java
+++ /dev/null
@@ -1,469 +0,0 @@
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/**
- * DateTime.java
- *
- * This file was auto-generated from WSDL
- * by the Apache Axis2 version: SNAPSHOT  Built on : Dec 21, 2007 (04:03:30 LKT)
- */
-            
-                package org.apache.axis2.databinding.types.xsd;
-
-import javax.xml.stream.XMLStreamWriter;
-            
-
-            /**
-            *  DateTime bean class
-            */
-        
-        public  class DateTime
-        implements org.apache.axis2.databinding.ADBBean{
-        /* This type was generated from the piece of schema that had
-                name = dateTime
-                Namespace URI = http://www.w3.org/2001/XMLSchema
-                Namespace Prefix = ns1
-                */
-            
-
-        private static java.lang.String generatePrefix(java.lang.String namespace) {
-            if(namespace.equals("http://www.w3.org/2001/XMLSchema")){
-                return "xsd";
-            }
-            return org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-        }
-
-        
-
-                        /**
-                        * field for DateTime
-                        */
-
-                        
-                                    protected java.util.Calendar localDateTime ;
-                                
-
-                           /**
-                           * Auto generated getter method
-                           * @return java.util.Calendar
-                           */
-                           public  java.util.Calendar getDateTime(){
-                               return localDateTime;
-                           }
-
-                           
-                        
-                            /**
-                               * Auto generated setter method
-                               * @param param DateTime
-                               */
-                               public void setDateTime(java.util.Calendar param){
-                            
-                                            this.localDateTime=param;
-                                    
-
-                               }
-                            
-
-                            public java.lang.String toString(){
-                                
-                                        return localDateTime.toString();
-                                    
-                            }
-                        
-
-     /**
-     * isReaderMTOMAware
-     * @return true if the reader supports MTOM
-     */
-   public static boolean isReaderMTOMAware(javax.xml.stream.XMLStreamReader reader) {
-        boolean isReaderMTOMAware = false;
-        
-        try{
-          isReaderMTOMAware = java.lang.Boolean.TRUE.equals(reader.getProperty(org.apache.axiom.om.OMConstants.IS_DATA_HANDLERS_AWARE));
-        }catch(java.lang.IllegalArgumentException e){
-          isReaderMTOMAware = false;
-        }
-        return isReaderMTOMAware;
-   }
-     
-     
-        /**
-        *
-        * @param parentQName
-        * @param factory
-        * @return org.apache.axiom.om.OMElement
-        */
-       public org.apache.axiom.om.OMElement getOMElement (
-               final javax.xml.namespace.QName parentQName,
-               final org.apache.axiom.om.OMFactory factory) throws org.apache.axis2.databinding.ADBException{
-
-
-        
-               org.apache.axiom.om.OMDataSource dataSource =
-                       new org.apache.axis2.databinding.ADBDataSource(this,parentQName);
-               return factory.createOMElement(dataSource,parentQName);
-            
-       }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                                       XMLStreamWriter xmlWriter)
-                                throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-                           serialize(parentQName,xmlWriter,false);
-         }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                               XMLStreamWriter xmlWriter,
-                               boolean serializeType)
-            throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-            
-                
-
-
-                java.lang.String prefix = null;
-                java.lang.String namespace = null;
-                
-
-                    prefix = parentQName.getPrefix();
-                    namespace = parentQName.getNamespaceURI();
-
-                    if ((namespace != null) && (namespace.trim().length() > 0)) {
-                        java.lang.String writerPrefix = xmlWriter.getPrefix(namespace);
-                        if (writerPrefix != null) {
-                            xmlWriter.writeStartElement(namespace, parentQName.getLocalPart());
-                        } else {
-                            if (prefix == null) {
-                                prefix = generatePrefix(namespace);
-                            }
-
-                            xmlWriter.writeStartElement(prefix, parentQName.getLocalPart(), namespace);
-                            xmlWriter.writeNamespace(prefix, namespace);
-                            xmlWriter.setPrefix(prefix, namespace);
-                        }
-                    } else {
-                        xmlWriter.writeStartElement(parentQName.getLocalPart());
-                    }
-                
-                  if (serializeType){
-               
-                   java.lang.String namespacePrefix = registerPrefix(xmlWriter,"http://www.w3.org/2001/XMLSchema");
-                   if ((namespacePrefix != null) && (namespacePrefix.trim().length() > 0)){
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           namespacePrefix+":dateTime",
-                           xmlWriter);
-                   } else {
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           "dateTime",
-                           xmlWriter);
-                   }
-
-               
-                   }
-               
-
-                                          if (localDateTime==null){
-                                              // write the nil attribute
-                                              
-                                                     throw new org.apache.axis2.databinding.ADBException("dateTime cannot be null!!");
-                                                  
-                                          }else{
-
-                                        
-                                                   xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(localDateTime));
-                                            
-                                          }
-                                    
-                    xmlWriter.writeEndElement();
-               
-
-        }
-
-         /**
-          * Util method to write an attribute with the ns prefix
-          */
-          private void writeAttribute(java.lang.String prefix,java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-              if (xmlWriter.getPrefix(namespace) == null) {
-                       xmlWriter.writeNamespace(prefix, namespace);
-                       xmlWriter.setPrefix(prefix, namespace);
-
-              }
-
-              xmlWriter.writeAttribute(namespace,attName,attValue);
-
-         }
-
-        /**
-          * Util method to write an attribute without the ns prefix
-          */
-          private void writeAttribute(java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-                if (namespace.equals(""))
-              {
-                  xmlWriter.writeAttribute(attName,attValue);
-              }
-              else
-              {
-                  registerPrefix(xmlWriter, namespace);
-                  xmlWriter.writeAttribute(namespace,attName,attValue);
-              }
-          }
-
-
-           /**
-             * Util method to write an attribute without the ns prefix
-             */
-            private void writeQNameAttribute(java.lang.String namespace, java.lang.String attName,
-                                             javax.xml.namespace.QName qname, javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-                java.lang.String attributeNamespace = qname.getNamespaceURI();
-                java.lang.String attributePrefix = xmlWriter.getPrefix(attributeNamespace);
-                if (attributePrefix == null) {
-                    attributePrefix = registerPrefix(xmlWriter, attributeNamespace);
-                }
-                java.lang.String attributeValue;
-                if (attributePrefix.trim().length() > 0) {
-                    attributeValue = attributePrefix + ":" + qname.getLocalPart();
-                } else {
-                    attributeValue = qname.getLocalPart();
-                }
-
-                if (namespace.equals("")) {
-                    xmlWriter.writeAttribute(attName, attributeValue);
-                } else {
-                    registerPrefix(xmlWriter, namespace);
-                    xmlWriter.writeAttribute(namespace, attName, attributeValue);
-                }
-            }
-        /**
-         *  method to handle Qnames
-         */
-
-        private void writeQName(javax.xml.namespace.QName qname,
-                                javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-            java.lang.String namespaceURI = qname.getNamespaceURI();
-            if (namespaceURI != null) {
-                java.lang.String prefix = xmlWriter.getPrefix(namespaceURI);
-                if (prefix == null) {
-                    prefix = generatePrefix(namespaceURI);
-                    xmlWriter.writeNamespace(prefix, namespaceURI);
-                    xmlWriter.setPrefix(prefix,namespaceURI);
-                }
-
-                if (prefix.trim().length() > 0){
-                    xmlWriter.writeCharacters(prefix + ":" + org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                } else {
-                    // i.e this is the default namespace
-                    xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                }
-
-            } else {
-                xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-            }
-        }
-
-        private void writeQNames(javax.xml.namespace.QName[] qnames,
-                                 javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-            if (qnames != null) {
-                // we have to store this data until last moment since it is not possible to write any
-                // namespace data after writing the charactor data
-                java.lang.StringBuffer stringToWrite = new java.lang.StringBuffer();
-                java.lang.String namespaceURI = null;
-                java.lang.String prefix = null;
-
-                for (int i = 0; i < qnames.length; i++) {
-                    if (i > 0) {
-                        stringToWrite.append(" ");
-                    }
-                    namespaceURI = qnames[i].getNamespaceURI();
-                    if (namespaceURI != null) {
-                        prefix = xmlWriter.getPrefix(namespaceURI);
-                        if ((prefix == null) || (prefix.length() == 0)) {
-                            prefix = generatePrefix(namespaceURI);
-                            xmlWriter.writeNamespace(prefix, namespaceURI);
-                            xmlWriter.setPrefix(prefix,namespaceURI);
-                        }
-
-                        if (prefix.trim().length() > 0){
-                            stringToWrite.append(prefix).append(":").append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        } else {
-                            stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        }
-                    } else {
-                        stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                    }
-                }
-                xmlWriter.writeCharacters(stringToWrite.toString());
-            }
-
-        }
-
-
-         /**
-         * Register a namespace prefix
-         */
-         private java.lang.String registerPrefix(javax.xml.stream.XMLStreamWriter xmlWriter, java.lang.String namespace) throws javax.xml.stream.XMLStreamException {
-                java.lang.String prefix = xmlWriter.getPrefix(namespace);
-
-                if (prefix == null) {
-                    prefix = generatePrefix(namespace);
-                    javax.xml.namespace.NamespaceContext nsContext = xmlWriter.getNamespaceContext();
-                    while (true) {
-                        java.lang.String uri = nsContext.getNamespaceURI(prefix);
-                        if (uri == null || uri.length() == 0) {
-                            break;
-                        }
-                        prefix = org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-                    }
-                    xmlWriter.writeNamespace(prefix, namespace);
-                    xmlWriter.setPrefix(prefix, namespace);
-                }
-
-                return prefix;
-            }
-
-
-  
-     /**
-      *  Factory class that keeps the parse method
-      */
-    public static class Factory{
-
-        
-        
-                public static DateTime fromString(java.lang.String value,
-                                                    java.lang.String namespaceURI){
-                    DateTime returnValue = new  DateTime();
-                    
-                            returnValue.setDateTime(
-                                org.apache.axis2.databinding.utils.ConverterUtil.convertToDateTime(value));
-                        
-
-                    return returnValue;
-                }
-
-                public static DateTime fromString(javax.xml.stream.XMLStreamReader xmlStreamReader,
-                                                                    java.lang.String content) {
-                    if (content.indexOf(":") > -1){
-                        java.lang.String prefix = content.substring(0,content.indexOf(":"));
-                        java.lang.String namespaceUri = xmlStreamReader.getNamespaceContext().getNamespaceURI(prefix);
-                        return DateTime.Factory.fromString(content,namespaceUri);
-                    } else {
-                       return DateTime.Factory.fromString(content,"");
-                    }
-                }
-
-            
-
-        /**
-        * static method to create the object
-        * Precondition:  If this object is an element, the current or next start element starts this object and any intervening reader events are ignorable
-        *                If this object is not an element, it is a complex type and the reader is at the event just after the outer start element
-        * Postcondition: If this object is an element, the reader is positioned at its end element
-        *                If this object is a complex type, the reader is positioned at the end element of its outer element
-        */
-        public static DateTime parse(javax.xml.stream.XMLStreamReader reader) throws java.lang.Exception{
-            DateTime object =
-                new DateTime();
-
-            int event;
-            java.lang.String nillableValue = null;
-            java.lang.String prefix ="";
-            java.lang.String namespaceuri ="";
-            try {
-                
-                while (!reader.isStartElement() && !reader.isEndElement())
-                    reader.next();
-
-                
-                if (reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance","type")!=null){
-                  java.lang.String fullTypeName = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance",
-                        "type");
-                  if (fullTypeName!=null){
-                    java.lang.String nsPrefix = null;
-                    if (fullTypeName.indexOf(":") > -1){
-                        nsPrefix = fullTypeName.substring(0,fullTypeName.indexOf(":"));
-                    }
-                    nsPrefix = nsPrefix==null?"":nsPrefix;
-
-                    java.lang.String type = fullTypeName.substring(fullTypeName.indexOf(":")+1);
-                    
-                            if (!"dateTime".equals(type)){
-                                //find namespace for the prefix
-                                java.lang.String nsUri = reader.getNamespaceContext().getNamespaceURI(nsPrefix);
-                                return (DateTime)org.apache.axis2.databinding.types.xsd.ExtensionMapper.getTypeObject(
-                                     nsUri,type,reader);
-                              }
-                        
-
-                  }
-                
-
-                }
-
-                
-
-                
-                // Note all attributes that were handled. Used to differ normal attributes
-                // from anyAttributes.
-                java.util.Vector handledAttributes = new java.util.Vector();
-                
-
-                    
-                while(!reader.isEndElement()) {
-                    if (reader.isStartElement()  || reader.hasText()){
-                
-                                    if (reader.isStartElement()  || reader.hasText()){
-                                
-                                    java.lang.String content = reader.getElementText();
-                                    
-                                              object.setDateTime(
-                                                    org.apache.axis2.databinding.utils.ConverterUtil.convertToDateTime(content));
-                                            
-                              }  // End of if for expected property start element
-                                
-                             else{
-                                        // A start element we are not expecting indicates an invalid parameter was passed
-                                        throw new org.apache.axis2.databinding.ADBException("Unexpected subelement " + reader.getLocalName());
-                             }
-                          
-                             } else {
-                                reader.next();
-                             }  
-                           }  // end of while loop
-                        
-
-
-
-            } catch (javax.xml.stream.XMLStreamException e) {
-                throw new java.lang.Exception(e);
-            }
-
-            return object;
-        }
-
-        }//end of factory class
-
-        
-
-        }
-           
-          
\ No newline at end of file
diff --git a/modules/adb/src/org/apache/axis2/databinding/types/xsd/Decimal.java b/modules/adb/src/org/apache/axis2/databinding/types/xsd/Decimal.java
deleted file mode 100644
index eefddfa..0000000
--- a/modules/adb/src/org/apache/axis2/databinding/types/xsd/Decimal.java
+++ /dev/null
@@ -1,469 +0,0 @@
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/**
- * Decimal.java
- *
- * This file was auto-generated from WSDL
- * by the Apache Axis2 version: SNAPSHOT  Built on : Dec 21, 2007 (04:03:30 LKT)
- */
-            
-                package org.apache.axis2.databinding.types.xsd;
-
-import javax.xml.stream.XMLStreamWriter;
-            
-
-            /**
-            *  Decimal bean class
-            */
-        
-        public  class Decimal
-        implements org.apache.axis2.databinding.ADBBean{
-        /* This type was generated from the piece of schema that had
-                name = decimal
-                Namespace URI = http://www.w3.org/2001/XMLSchema
-                Namespace Prefix = ns1
-                */
-            
-
-        private static java.lang.String generatePrefix(java.lang.String namespace) {
-            if(namespace.equals("http://www.w3.org/2001/XMLSchema")){
-                return "xsd";
-            }
-            return org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-        }
-
-        
-
-                        /**
-                        * field for Decimal
-                        */
-
-                        
-                                    protected java.math.BigDecimal localDecimal ;
-                                
-
-                           /**
-                           * Auto generated getter method
-                           * @return java.math.BigDecimal
-                           */
-                           public  java.math.BigDecimal getDecimal(){
-                               return localDecimal;
-                           }
-
-                           
-                        
-                            /**
-                               * Auto generated setter method
-                               * @param param Decimal
-                               */
-                               public void setDecimal(java.math.BigDecimal param){
-                            
-                                            this.localDecimal=param;
-                                    
-
-                               }
-                            
-
-                            public java.lang.String toString(){
-                                
-                                        return localDecimal.toString();
-                                    
-                            }
-                        
-
-     /**
-     * isReaderMTOMAware
-     * @return true if the reader supports MTOM
-     */
-   public static boolean isReaderMTOMAware(javax.xml.stream.XMLStreamReader reader) {
-        boolean isReaderMTOMAware = false;
-        
-        try{
-          isReaderMTOMAware = java.lang.Boolean.TRUE.equals(reader.getProperty(org.apache.axiom.om.OMConstants.IS_DATA_HANDLERS_AWARE));
-        }catch(java.lang.IllegalArgumentException e){
-          isReaderMTOMAware = false;
-        }
-        return isReaderMTOMAware;
-   }
-     
-     
-        /**
-        *
-        * @param parentQName
-        * @param factory
-        * @return org.apache.axiom.om.OMElement
-        */
-       public org.apache.axiom.om.OMElement getOMElement (
-               final javax.xml.namespace.QName parentQName,
-               final org.apache.axiom.om.OMFactory factory) throws org.apache.axis2.databinding.ADBException{
-
-
-        
-               org.apache.axiom.om.OMDataSource dataSource =
-                       new org.apache.axis2.databinding.ADBDataSource(this,parentQName);
-               return factory.createOMElement(dataSource,parentQName);
-            
-       }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                                       XMLStreamWriter xmlWriter)
-                                throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-                           serialize(parentQName,xmlWriter,false);
-         }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                               XMLStreamWriter xmlWriter,
-                               boolean serializeType)
-            throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-            
-                
-
-
-                java.lang.String prefix = null;
-                java.lang.String namespace = null;
-                
-
-                    prefix = parentQName.getPrefix();
-                    namespace = parentQName.getNamespaceURI();
-
-                    if ((namespace != null) && (namespace.trim().length() > 0)) {
-                        java.lang.String writerPrefix = xmlWriter.getPrefix(namespace);
-                        if (writerPrefix != null) {
-                            xmlWriter.writeStartElement(namespace, parentQName.getLocalPart());
-                        } else {
-                            if (prefix == null) {
-                                prefix = generatePrefix(namespace);
-                            }
-
-                            xmlWriter.writeStartElement(prefix, parentQName.getLocalPart(), namespace);
-                            xmlWriter.writeNamespace(prefix, namespace);
-                            xmlWriter.setPrefix(prefix, namespace);
-                        }
-                    } else {
-                        xmlWriter.writeStartElement(parentQName.getLocalPart());
-                    }
-                
-                  if (serializeType){
-               
-                   java.lang.String namespacePrefix = registerPrefix(xmlWriter,"http://www.w3.org/2001/XMLSchema");
-                   if ((namespacePrefix != null) && (namespacePrefix.trim().length() > 0)){
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           namespacePrefix+":decimal",
-                           xmlWriter);
-                   } else {
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           "decimal",
-                           xmlWriter);
-                   }
-
-               
-                   }
-               
-
-                                          if (localDecimal==null){
-                                              // write the nil attribute
-                                              
-                                                     throw new org.apache.axis2.databinding.ADBException("decimal cannot be null!!");
-                                                  
-                                          }else{
-
-                                        
-                                                   xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(localDecimal));
-                                            
-                                          }
-                                    
-                    xmlWriter.writeEndElement();
-               
-
-        }
-
-         /**
-          * Util method to write an attribute with the ns prefix
-          */
-          private void writeAttribute(java.lang.String prefix,java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-              if (xmlWriter.getPrefix(namespace) == null) {
-                       xmlWriter.writeNamespace(prefix, namespace);
-                       xmlWriter.setPrefix(prefix, namespace);
-
-              }
-
-              xmlWriter.writeAttribute(namespace,attName,attValue);
-
-         }
-
-        /**
-          * Util method to write an attribute without the ns prefix
-          */
-          private void writeAttribute(java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-                if (namespace.equals(""))
-              {
-                  xmlWriter.writeAttribute(attName,attValue);
-              }
-              else
-              {
-                  registerPrefix(xmlWriter, namespace);
-                  xmlWriter.writeAttribute(namespace,attName,attValue);
-              }
-          }
-
-
-           /**
-             * Util method to write an attribute without the ns prefix
-             */
-            private void writeQNameAttribute(java.lang.String namespace, java.lang.String attName,
-                                             javax.xml.namespace.QName qname, javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-                java.lang.String attributeNamespace = qname.getNamespaceURI();
-                java.lang.String attributePrefix = xmlWriter.getPrefix(attributeNamespace);
-                if (attributePrefix == null) {
-                    attributePrefix = registerPrefix(xmlWriter, attributeNamespace);
-                }
-                java.lang.String attributeValue;
-                if (attributePrefix.trim().length() > 0) {
-                    attributeValue = attributePrefix + ":" + qname.getLocalPart();
-                } else {
-                    attributeValue = qname.getLocalPart();
-                }
-
-                if (namespace.equals("")) {
-                    xmlWriter.writeAttribute(attName, attributeValue);
-                } else {
-                    registerPrefix(xmlWriter, namespace);
-                    xmlWriter.writeAttribute(namespace, attName, attributeValue);
-                }
-            }
-        /**
-         *  method to handle Qnames
-         */
-
-        private void writeQName(javax.xml.namespace.QName qname,
-                                javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-            java.lang.String namespaceURI = qname.getNamespaceURI();
-            if (namespaceURI != null) {
-                java.lang.String prefix = xmlWriter.getPrefix(namespaceURI);
-                if (prefix == null) {
-                    prefix = generatePrefix(namespaceURI);
-                    xmlWriter.writeNamespace(prefix, namespaceURI);
-                    xmlWriter.setPrefix(prefix,namespaceURI);
-                }
-
-                if (prefix.trim().length() > 0){
-                    xmlWriter.writeCharacters(prefix + ":" + org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                } else {
-                    // i.e this is the default namespace
-                    xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                }
-
-            } else {
-                xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-            }
-        }
-
-        private void writeQNames(javax.xml.namespace.QName[] qnames,
-                                 javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-            if (qnames != null) {
-                // we have to store this data until last moment since it is not possible to write any
-                // namespace data after writing the charactor data
-                java.lang.StringBuffer stringToWrite = new java.lang.StringBuffer();
-                java.lang.String namespaceURI = null;
-                java.lang.String prefix = null;
-
-                for (int i = 0; i < qnames.length; i++) {
-                    if (i > 0) {
-                        stringToWrite.append(" ");
-                    }
-                    namespaceURI = qnames[i].getNamespaceURI();
-                    if (namespaceURI != null) {
-                        prefix = xmlWriter.getPrefix(namespaceURI);
-                        if ((prefix == null) || (prefix.length() == 0)) {
-                            prefix = generatePrefix(namespaceURI);
-                            xmlWriter.writeNamespace(prefix, namespaceURI);
-                            xmlWriter.setPrefix(prefix,namespaceURI);
-                        }
-
-                        if (prefix.trim().length() > 0){
-                            stringToWrite.append(prefix).append(":").append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        } else {
-                            stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        }
-                    } else {
-                        stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                    }
-                }
-                xmlWriter.writeCharacters(stringToWrite.toString());
-            }
-
-        }
-
-
-         /**
-         * Register a namespace prefix
-         */
-         private java.lang.String registerPrefix(javax.xml.stream.XMLStreamWriter xmlWriter, java.lang.String namespace) throws javax.xml.stream.XMLStreamException {
-                java.lang.String prefix = xmlWriter.getPrefix(namespace);
-
-                if (prefix == null) {
-                    prefix = generatePrefix(namespace);
-                    javax.xml.namespace.NamespaceContext nsContext = xmlWriter.getNamespaceContext();
-                    while (true) {
-                        java.lang.String uri = nsContext.getNamespaceURI(prefix);
-                        if (uri == null || uri.length() == 0) {
-                            break;
-                        }
-                        prefix = org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-                    }
-                    xmlWriter.writeNamespace(prefix, namespace);
-                    xmlWriter.setPrefix(prefix, namespace);
-                }
-
-                return prefix;
-            }
-
-
-  
-     /**
-      *  Factory class that keeps the parse method
-      */
-    public static class Factory{
-
-        
-        
-                public static Decimal fromString(java.lang.String value,
-                                                    java.lang.String namespaceURI){
-                    Decimal returnValue = new  Decimal();
-                    
-                            returnValue.setDecimal(
-                                org.apache.axis2.databinding.utils.ConverterUtil.convertToDecimal(value));
-                        
-
-                    return returnValue;
-                }
-
-                public static Decimal fromString(javax.xml.stream.XMLStreamReader xmlStreamReader,
-                                                                    java.lang.String content) {
-                    if (content.indexOf(":") > -1){
-                        java.lang.String prefix = content.substring(0,content.indexOf(":"));
-                        java.lang.String namespaceUri = xmlStreamReader.getNamespaceContext().getNamespaceURI(prefix);
-                        return Decimal.Factory.fromString(content,namespaceUri);
-                    } else {
-                       return Decimal.Factory.fromString(content,"");
-                    }
-                }
-
-            
-
-        /**
-        * static method to create the object
-        * Precondition:  If this object is an element, the current or next start element starts this object and any intervening reader events are ignorable
-        *                If this object is not an element, it is a complex type and the reader is at the event just after the outer start element
-        * Postcondition: If this object is an element, the reader is positioned at its end element
-        *                If this object is a complex type, the reader is positioned at the end element of its outer element
-        */
-        public static Decimal parse(javax.xml.stream.XMLStreamReader reader) throws java.lang.Exception{
-            Decimal object =
-                new Decimal();
-
-            int event;
-            java.lang.String nillableValue = null;
-            java.lang.String prefix ="";
-            java.lang.String namespaceuri ="";
-            try {
-                
-                while (!reader.isStartElement() && !reader.isEndElement())
-                    reader.next();
-
-                
-                if (reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance","type")!=null){
-                  java.lang.String fullTypeName = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance",
-                        "type");
-                  if (fullTypeName!=null){
-                    java.lang.String nsPrefix = null;
-                    if (fullTypeName.indexOf(":") > -1){
-                        nsPrefix = fullTypeName.substring(0,fullTypeName.indexOf(":"));
-                    }
-                    nsPrefix = nsPrefix==null?"":nsPrefix;
-
-                    java.lang.String type = fullTypeName.substring(fullTypeName.indexOf(":")+1);
-                    
-                            if (!"decimal".equals(type)){
-                                //find namespace for the prefix
-                                java.lang.String nsUri = reader.getNamespaceContext().getNamespaceURI(nsPrefix);
-                                return (Decimal)org.apache.axis2.databinding.types.xsd.ExtensionMapper.getTypeObject(
-                                     nsUri,type,reader);
-                              }
-                        
-
-                  }
-                
-
-                }
-
-                
-
-                
-                // Note all attributes that were handled. Used to differ normal attributes
-                // from anyAttributes.
-                java.util.Vector handledAttributes = new java.util.Vector();
-                
-
-                    
-                while(!reader.isEndElement()) {
-                    if (reader.isStartElement()  || reader.hasText()){
-                
-                                    if (reader.isStartElement()  || reader.hasText()){
-                                
-                                    java.lang.String content = reader.getElementText();
-                                    
-                                              object.setDecimal(
-                                                    org.apache.axis2.databinding.utils.ConverterUtil.convertToDecimal(content));
-                                            
-                              }  // End of if for expected property start element
-                                
-                             else{
-                                        // A start element we are not expecting indicates an invalid parameter was passed
-                                        throw new org.apache.axis2.databinding.ADBException("Unexpected subelement " + reader.getLocalName());
-                             }
-                          
-                             } else {
-                                reader.next();
-                             }  
-                           }  // end of while loop
-                        
-
-
-
-            } catch (javax.xml.stream.XMLStreamException e) {
-                throw new java.lang.Exception(e);
-            }
-
-            return object;
-        }
-
-        }//end of factory class
-
-        
-
-        }
-           
-          
\ No newline at end of file
diff --git a/modules/adb/src/org/apache/axis2/databinding/types/xsd/Duration.java b/modules/adb/src/org/apache/axis2/databinding/types/xsd/Duration.java
deleted file mode 100644
index 1529703..0000000
--- a/modules/adb/src/org/apache/axis2/databinding/types/xsd/Duration.java
+++ /dev/null
@@ -1,469 +0,0 @@
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/**
- * Duration.java
- *
- * This file was auto-generated from WSDL
- * by the Apache Axis2 version: SNAPSHOT  Built on : Dec 21, 2007 (04:03:30 LKT)
- */
-            
-                package org.apache.axis2.databinding.types.xsd;
-
-import javax.xml.stream.XMLStreamWriter;
-            
-
-            /**
-            *  Duration bean class
-            */
-        
-        public  class Duration
-        implements org.apache.axis2.databinding.ADBBean{
-        /* This type was generated from the piece of schema that had
-                name = duration
-                Namespace URI = http://www.w3.org/2001/XMLSchema
-                Namespace Prefix = ns1
-                */
-            
-
-        private static java.lang.String generatePrefix(java.lang.String namespace) {
-            if(namespace.equals("http://www.w3.org/2001/XMLSchema")){
-                return "xsd";
-            }
-            return org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-        }
-
-        
-
-                        /**
-                        * field for Duration
-                        */
-
-                        
-                                    protected org.apache.axis2.databinding.types.Duration localDuration ;
-                                
-
-                           /**
-                           * Auto generated getter method
-                           * @return org.apache.axis2.databinding.types.Duration
-                           */
-                           public  org.apache.axis2.databinding.types.Duration getDuration(){
-                               return localDuration;
-                           }
-
-                           
-                        
-                            /**
-                               * Auto generated setter method
-                               * @param param Duration
-                               */
-                               public void setDuration(org.apache.axis2.databinding.types.Duration param){
-                            
-                                            this.localDuration=param;
-                                    
-
-                               }
-                            
-
-                            public java.lang.String toString(){
-                                
-                                        return localDuration.toString();
-                                    
-                            }
-                        
-
-     /**
-     * isReaderMTOMAware
-     * @return true if the reader supports MTOM
-     */
-   public static boolean isReaderMTOMAware(javax.xml.stream.XMLStreamReader reader) {
-        boolean isReaderMTOMAware = false;
-        
-        try{
-          isReaderMTOMAware = java.lang.Boolean.TRUE.equals(reader.getProperty(org.apache.axiom.om.OMConstants.IS_DATA_HANDLERS_AWARE));
-        }catch(java.lang.IllegalArgumentException e){
-          isReaderMTOMAware = false;
-        }
-        return isReaderMTOMAware;
-   }
-     
-     
-        /**
-        *
-        * @param parentQName
-        * @param factory
-        * @return org.apache.axiom.om.OMElement
-        */
-       public org.apache.axiom.om.OMElement getOMElement (
-               final javax.xml.namespace.QName parentQName,
-               final org.apache.axiom.om.OMFactory factory) throws org.apache.axis2.databinding.ADBException{
-
-
-        
-               org.apache.axiom.om.OMDataSource dataSource =
-                       new org.apache.axis2.databinding.ADBDataSource(this,parentQName);
-               return factory.createOMElement(dataSource,parentQName);
-            
-       }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                                       XMLStreamWriter xmlWriter)
-                                throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-                           serialize(parentQName,xmlWriter,false);
-         }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                               XMLStreamWriter xmlWriter,
-                               boolean serializeType)
-            throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-            
-                
-
-
-                java.lang.String prefix = null;
-                java.lang.String namespace = null;
-                
-
-                    prefix = parentQName.getPrefix();
-                    namespace = parentQName.getNamespaceURI();
-
-                    if ((namespace != null) && (namespace.trim().length() > 0)) {
-                        java.lang.String writerPrefix = xmlWriter.getPrefix(namespace);
-                        if (writerPrefix != null) {
-                            xmlWriter.writeStartElement(namespace, parentQName.getLocalPart());
-                        } else {
-                            if (prefix == null) {
-                                prefix = generatePrefix(namespace);
-                            }
-
-                            xmlWriter.writeStartElement(prefix, parentQName.getLocalPart(), namespace);
-                            xmlWriter.writeNamespace(prefix, namespace);
-                            xmlWriter.setPrefix(prefix, namespace);
-                        }
-                    } else {
-                        xmlWriter.writeStartElement(parentQName.getLocalPart());
-                    }
-                
-                  if (serializeType){
-               
-                   java.lang.String namespacePrefix = registerPrefix(xmlWriter,"http://www.w3.org/2001/XMLSchema");
-                   if ((namespacePrefix != null) && (namespacePrefix.trim().length() > 0)){
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           namespacePrefix+":duration",
-                           xmlWriter);
-                   } else {
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           "duration",
-                           xmlWriter);
-                   }
-
-               
-                   }
-               
-
-                                          if (localDuration==null){
-                                              // write the nil attribute
-                                              
-                                                     throw new org.apache.axis2.databinding.ADBException("duration cannot be null!!");
-                                                  
-                                          }else{
-
-                                        
-                                                   xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(localDuration));
-                                            
-                                          }
-                                    
-                    xmlWriter.writeEndElement();
-               
-
-        }
-
-         /**
-          * Util method to write an attribute with the ns prefix
-          */
-          private void writeAttribute(java.lang.String prefix,java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-              if (xmlWriter.getPrefix(namespace) == null) {
-                       xmlWriter.writeNamespace(prefix, namespace);
-                       xmlWriter.setPrefix(prefix, namespace);
-
-              }
-
-              xmlWriter.writeAttribute(namespace,attName,attValue);
-
-         }
-
-        /**
-          * Util method to write an attribute without the ns prefix
-          */
-          private void writeAttribute(java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-                if (namespace.equals(""))
-              {
-                  xmlWriter.writeAttribute(attName,attValue);
-              }
-              else
-              {
-                  registerPrefix(xmlWriter, namespace);
-                  xmlWriter.writeAttribute(namespace,attName,attValue);
-              }
-          }
-
-
-           /**
-             * Util method to write an attribute without the ns prefix
-             */
-            private void writeQNameAttribute(java.lang.String namespace, java.lang.String attName,
-                                             javax.xml.namespace.QName qname, javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-                java.lang.String attributeNamespace = qname.getNamespaceURI();
-                java.lang.String attributePrefix = xmlWriter.getPrefix(attributeNamespace);
-                if (attributePrefix == null) {
-                    attributePrefix = registerPrefix(xmlWriter, attributeNamespace);
-                }
-                java.lang.String attributeValue;
-                if (attributePrefix.trim().length() > 0) {
-                    attributeValue = attributePrefix + ":" + qname.getLocalPart();
-                } else {
-                    attributeValue = qname.getLocalPart();
-                }
-
-                if (namespace.equals("")) {
-                    xmlWriter.writeAttribute(attName, attributeValue);
-                } else {
-                    registerPrefix(xmlWriter, namespace);
-                    xmlWriter.writeAttribute(namespace, attName, attributeValue);
-                }
-            }
-        /**
-         *  method to handle Qnames
-         */
-
-        private void writeQName(javax.xml.namespace.QName qname,
-                                javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-            java.lang.String namespaceURI = qname.getNamespaceURI();
-            if (namespaceURI != null) {
-                java.lang.String prefix = xmlWriter.getPrefix(namespaceURI);
-                if (prefix == null) {
-                    prefix = generatePrefix(namespaceURI);
-                    xmlWriter.writeNamespace(prefix, namespaceURI);
-                    xmlWriter.setPrefix(prefix,namespaceURI);
-                }
-
-                if (prefix.trim().length() > 0){
-                    xmlWriter.writeCharacters(prefix + ":" + org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                } else {
-                    // i.e this is the default namespace
-                    xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                }
-
-            } else {
-                xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-            }
-        }
-
-        private void writeQNames(javax.xml.namespace.QName[] qnames,
-                                 javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-            if (qnames != null) {
-                // we have to store this data until last moment since it is not possible to write any
-                // namespace data after writing the charactor data
-                java.lang.StringBuffer stringToWrite = new java.lang.StringBuffer();
-                java.lang.String namespaceURI = null;
-                java.lang.String prefix = null;
-
-                for (int i = 0; i < qnames.length; i++) {
-                    if (i > 0) {
-                        stringToWrite.append(" ");
-                    }
-                    namespaceURI = qnames[i].getNamespaceURI();
-                    if (namespaceURI != null) {
-                        prefix = xmlWriter.getPrefix(namespaceURI);
-                        if ((prefix == null) || (prefix.length() == 0)) {
-                            prefix = generatePrefix(namespaceURI);
-                            xmlWriter.writeNamespace(prefix, namespaceURI);
-                            xmlWriter.setPrefix(prefix,namespaceURI);
-                        }
-
-                        if (prefix.trim().length() > 0){
-                            stringToWrite.append(prefix).append(":").append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        } else {
-                            stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        }
-                    } else {
-                        stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                    }
-                }
-                xmlWriter.writeCharacters(stringToWrite.toString());
-            }
-
-        }
-
-
-         /**
-         * Register a namespace prefix
-         */
-         private java.lang.String registerPrefix(javax.xml.stream.XMLStreamWriter xmlWriter, java.lang.String namespace) throws javax.xml.stream.XMLStreamException {
-                java.lang.String prefix = xmlWriter.getPrefix(namespace);
-
-                if (prefix == null) {
-                    prefix = generatePrefix(namespace);
-                    javax.xml.namespace.NamespaceContext nsContext = xmlWriter.getNamespaceContext();
-                    while (true) {
-                        java.lang.String uri = nsContext.getNamespaceURI(prefix);
-                        if (uri == null || uri.length() == 0) {
-                            break;
-                        }
-                        prefix = org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-                    }
-                    xmlWriter.writeNamespace(prefix, namespace);
-                    xmlWriter.setPrefix(prefix, namespace);
-                }
-
-                return prefix;
-            }
-
-
-  
-     /**
-      *  Factory class that keeps the parse method
-      */
-    public static class Factory{
-
-        
-        
-                public static Duration fromString(java.lang.String value,
-                                                    java.lang.String namespaceURI){
-                    Duration returnValue = new  Duration();
-                    
-                            returnValue.setDuration(
-                                org.apache.axis2.databinding.utils.ConverterUtil.convertToDuration(value));
-                        
-
-                    return returnValue;
-                }
-
-                public static Duration fromString(javax.xml.stream.XMLStreamReader xmlStreamReader,
-                                                                    java.lang.String content) {
-                    if (content.indexOf(":") > -1){
-                        java.lang.String prefix = content.substring(0,content.indexOf(":"));
-                        java.lang.String namespaceUri = xmlStreamReader.getNamespaceContext().getNamespaceURI(prefix);
-                        return Duration.Factory.fromString(content,namespaceUri);
-                    } else {
-                       return Duration.Factory.fromString(content,"");
-                    }
-                }
-
-            
-
-        /**
-        * static method to create the object
-        * Precondition:  If this object is an element, the current or next start element starts this object and any intervening reader events are ignorable
-        *                If this object is not an element, it is a complex type and the reader is at the event just after the outer start element
-        * Postcondition: If this object is an element, the reader is positioned at its end element
-        *                If this object is a complex type, the reader is positioned at the end element of its outer element
-        */
-        public static Duration parse(javax.xml.stream.XMLStreamReader reader) throws java.lang.Exception{
-            Duration object =
-                new Duration();
-
-            int event;
-            java.lang.String nillableValue = null;
-            java.lang.String prefix ="";
-            java.lang.String namespaceuri ="";
-            try {
-                
-                while (!reader.isStartElement() && !reader.isEndElement())
-                    reader.next();
-
-                
-                if (reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance","type")!=null){
-                  java.lang.String fullTypeName = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance",
-                        "type");
-                  if (fullTypeName!=null){
-                    java.lang.String nsPrefix = null;
-                    if (fullTypeName.indexOf(":") > -1){
-                        nsPrefix = fullTypeName.substring(0,fullTypeName.indexOf(":"));
-                    }
-                    nsPrefix = nsPrefix==null?"":nsPrefix;
-
-                    java.lang.String type = fullTypeName.substring(fullTypeName.indexOf(":")+1);
-                    
-                            if (!"duration".equals(type)){
-                                //find namespace for the prefix
-                                java.lang.String nsUri = reader.getNamespaceContext().getNamespaceURI(nsPrefix);
-                                return (Duration)org.apache.axis2.databinding.types.xsd.ExtensionMapper.getTypeObject(
-                                     nsUri,type,reader);
-                              }
-                        
-
-                  }
-                
-
-                }
-
-                
-
-                
-                // Note all attributes that were handled. Used to differ normal attributes
-                // from anyAttributes.
-                java.util.Vector handledAttributes = new java.util.Vector();
-                
-
-                    
-                while(!reader.isEndElement()) {
-                    if (reader.isStartElement()  || reader.hasText()){
-                
-                                    if (reader.isStartElement()  || reader.hasText()){
-                                
-                                    java.lang.String content = reader.getElementText();
-                                    
-                                              object.setDuration(
-                                                    org.apache.axis2.databinding.utils.ConverterUtil.convertToDuration(content));
-                                            
-                              }  // End of if for expected property start element
-                                
-                             else{
-                                        // A start element we are not expecting indicates an invalid parameter was passed
-                                        throw new org.apache.axis2.databinding.ADBException("Unexpected subelement " + reader.getLocalName());
-                             }
-                          
-                             } else {
-                                reader.next();
-                             }  
-                           }  // end of while loop
-                        
-
-
-
-            } catch (javax.xml.stream.XMLStreamException e) {
-                throw new java.lang.Exception(e);
-            }
-
-            return object;
-        }
-
-        }//end of factory class
-
-        
-
-        }
-           
-          
\ No newline at end of file
diff --git a/modules/adb/src/org/apache/axis2/databinding/types/xsd/ENTITIES.java b/modules/adb/src/org/apache/axis2/databinding/types/xsd/ENTITIES.java
deleted file mode 100644
index 95a2892..0000000
--- a/modules/adb/src/org/apache/axis2/databinding/types/xsd/ENTITIES.java
+++ /dev/null
@@ -1,469 +0,0 @@
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/**
- * ENTITIES.java
- *
- * This file was auto-generated from WSDL
- * by the Apache Axis2 version: SNAPSHOT  Built on : Dec 21, 2007 (04:03:30 LKT)
- */
-            
-                package org.apache.axis2.databinding.types.xsd;
-
-import javax.xml.stream.XMLStreamWriter;
-            
-
-            /**
-            *  ENTITIES bean class
-            */
-        
-        public  class ENTITIES
-        implements org.apache.axis2.databinding.ADBBean{
-        /* This type was generated from the piece of schema that had
-                name = ENTITIES
-                Namespace URI = http://www.w3.org/2001/XMLSchema
-                Namespace Prefix = ns1
-                */
-            
-
-        private static java.lang.String generatePrefix(java.lang.String namespace) {
-            if(namespace.equals("http://www.w3.org/2001/XMLSchema")){
-                return "xsd";
-            }
-            return org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-        }
-
-        
-
-                        /**
-                        * field for ENTITIES
-                        */
-
-                        
-                                    protected org.apache.axis2.databinding.types.Entities localENTITIES ;
-                                
-
-                           /**
-                           * Auto generated getter method
-                           * @return org.apache.axis2.databinding.types.Entities
-                           */
-                           public  org.apache.axis2.databinding.types.Entities getENTITIES(){
-                               return localENTITIES;
-                           }
-
-                           
-                        
-                            /**
-                               * Auto generated setter method
-                               * @param param ENTITIES
-                               */
-                               public void setENTITIES(org.apache.axis2.databinding.types.Entities param){
-                            
-                                            this.localENTITIES=param;
-                                    
-
-                               }
-                            
-
-                            public java.lang.String toString(){
-                                
-                                        return localENTITIES.toString();
-                                    
-                            }
-                        
-
-     /**
-     * isReaderMTOMAware
-     * @return true if the reader supports MTOM
-     */
-   public static boolean isReaderMTOMAware(javax.xml.stream.XMLStreamReader reader) {
-        boolean isReaderMTOMAware = false;
-        
-        try{
-          isReaderMTOMAware = java.lang.Boolean.TRUE.equals(reader.getProperty(org.apache.axiom.om.OMConstants.IS_DATA_HANDLERS_AWARE));
-        }catch(java.lang.IllegalArgumentException e){
-          isReaderMTOMAware = false;
-        }
-        return isReaderMTOMAware;
-   }
-     
-     
-        /**
-        *
-        * @param parentQName
-        * @param factory
-        * @return org.apache.axiom.om.OMElement
-        */
-       public org.apache.axiom.om.OMElement getOMElement (
-               final javax.xml.namespace.QName parentQName,
-               final org.apache.axiom.om.OMFactory factory) throws org.apache.axis2.databinding.ADBException{
-
-
-        
-               org.apache.axiom.om.OMDataSource dataSource =
-                       new org.apache.axis2.databinding.ADBDataSource(this,parentQName);
-               return factory.createOMElement(dataSource,parentQName);
-            
-       }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                                       XMLStreamWriter xmlWriter)
-                                throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-                           serialize(parentQName,xmlWriter,false);
-         }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                               XMLStreamWriter xmlWriter,
-                               boolean serializeType)
-            throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-            
-                
-
-
-                java.lang.String prefix = null;
-                java.lang.String namespace = null;
-                
-
-                    prefix = parentQName.getPrefix();
-                    namespace = parentQName.getNamespaceURI();
-
-                    if ((namespace != null) && (namespace.trim().length() > 0)) {
-                        java.lang.String writerPrefix = xmlWriter.getPrefix(namespace);
-                        if (writerPrefix != null) {
-                            xmlWriter.writeStartElement(namespace, parentQName.getLocalPart());
-                        } else {
-                            if (prefix == null) {
-                                prefix = generatePrefix(namespace);
-                            }
-
-                            xmlWriter.writeStartElement(prefix, parentQName.getLocalPart(), namespace);
-                            xmlWriter.writeNamespace(prefix, namespace);
-                            xmlWriter.setPrefix(prefix, namespace);
-                        }
-                    } else {
-                        xmlWriter.writeStartElement(parentQName.getLocalPart());
-                    }
-                
-                  if (serializeType){
-               
-                   java.lang.String namespacePrefix = registerPrefix(xmlWriter,"http://www.w3.org/2001/XMLSchema");
-                   if ((namespacePrefix != null) && (namespacePrefix.trim().length() > 0)){
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           namespacePrefix+":ENTITIES",
-                           xmlWriter);
-                   } else {
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           "ENTITIES",
-                           xmlWriter);
-                   }
-
-               
-                   }
-               
-
-                                          if (localENTITIES==null){
-                                              // write the nil attribute
-                                              
-                                                     throw new org.apache.axis2.databinding.ADBException("ENTITIES cannot be null!!");
-                                                  
-                                          }else{
-
-                                        
-                                                   xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(localENTITIES));
-                                            
-                                          }
-                                    
-                    xmlWriter.writeEndElement();
-               
-
-        }
-
-         /**
-          * Util method to write an attribute with the ns prefix
-          */
-          private void writeAttribute(java.lang.String prefix,java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-              if (xmlWriter.getPrefix(namespace) == null) {
-                       xmlWriter.writeNamespace(prefix, namespace);
-                       xmlWriter.setPrefix(prefix, namespace);
-
-              }
-
-              xmlWriter.writeAttribute(namespace,attName,attValue);
-
-         }
-
-        /**
-          * Util method to write an attribute without the ns prefix
-          */
-          private void writeAttribute(java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-                if (namespace.equals(""))
-              {
-                  xmlWriter.writeAttribute(attName,attValue);
-              }
-              else
-              {
-                  registerPrefix(xmlWriter, namespace);
-                  xmlWriter.writeAttribute(namespace,attName,attValue);
-              }
-          }
-
-
-           /**
-             * Util method to write an attribute without the ns prefix
-             */
-            private void writeQNameAttribute(java.lang.String namespace, java.lang.String attName,
-                                             javax.xml.namespace.QName qname, javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-                java.lang.String attributeNamespace = qname.getNamespaceURI();
-                java.lang.String attributePrefix = xmlWriter.getPrefix(attributeNamespace);
-                if (attributePrefix == null) {
-                    attributePrefix = registerPrefix(xmlWriter, attributeNamespace);
-                }
-                java.lang.String attributeValue;
-                if (attributePrefix.trim().length() > 0) {
-                    attributeValue = attributePrefix + ":" + qname.getLocalPart();
-                } else {
-                    attributeValue = qname.getLocalPart();
-                }
-
-                if (namespace.equals("")) {
-                    xmlWriter.writeAttribute(attName, attributeValue);
-                } else {
-                    registerPrefix(xmlWriter, namespace);
-                    xmlWriter.writeAttribute(namespace, attName, attributeValue);
-                }
-            }
-        /**
-         *  method to handle Qnames
-         */
-
-        private void writeQName(javax.xml.namespace.QName qname,
-                                javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-            java.lang.String namespaceURI = qname.getNamespaceURI();
-            if (namespaceURI != null) {
-                java.lang.String prefix = xmlWriter.getPrefix(namespaceURI);
-                if (prefix == null) {
-                    prefix = generatePrefix(namespaceURI);
-                    xmlWriter.writeNamespace(prefix, namespaceURI);
-                    xmlWriter.setPrefix(prefix,namespaceURI);
-                }
-
-                if (prefix.trim().length() > 0){
-                    xmlWriter.writeCharacters(prefix + ":" + org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                } else {
-                    // i.e this is the default namespace
-                    xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                }
-
-            } else {
-                xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-            }
-        }
-
-        private void writeQNames(javax.xml.namespace.QName[] qnames,
-                                 javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-            if (qnames != null) {
-                // we have to store this data until last moment since it is not possible to write any
-                // namespace data after writing the charactor data
-                java.lang.StringBuffer stringToWrite = new java.lang.StringBuffer();
-                java.lang.String namespaceURI = null;
-                java.lang.String prefix = null;
-
-                for (int i = 0; i < qnames.length; i++) {
-                    if (i > 0) {
-                        stringToWrite.append(" ");
-                    }
-                    namespaceURI = qnames[i].getNamespaceURI();
-                    if (namespaceURI != null) {
-                        prefix = xmlWriter.getPrefix(namespaceURI);
-                        if ((prefix == null) || (prefix.length() == 0)) {
-                            prefix = generatePrefix(namespaceURI);
-                            xmlWriter.writeNamespace(prefix, namespaceURI);
-                            xmlWriter.setPrefix(prefix,namespaceURI);
-                        }
-
-                        if (prefix.trim().length() > 0){
-                            stringToWrite.append(prefix).append(":").append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        } else {
-                            stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        }
-                    } else {
-                        stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                    }
-                }
-                xmlWriter.writeCharacters(stringToWrite.toString());
-            }
-
-        }
-
-
-         /**
-         * Register a namespace prefix
-         */
-         private java.lang.String registerPrefix(javax.xml.stream.XMLStreamWriter xmlWriter, java.lang.String namespace) throws javax.xml.stream.XMLStreamException {
-                java.lang.String prefix = xmlWriter.getPrefix(namespace);
-
-                if (prefix == null) {
-                    prefix = generatePrefix(namespace);
-                    javax.xml.namespace.NamespaceContext nsContext = xmlWriter.getNamespaceContext();
-                    while (true) {
-                        java.lang.String uri = nsContext.getNamespaceURI(prefix);
-                        if (uri == null || uri.length() == 0) {
-                            break;
-                        }
-                        prefix = org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-                    }
-                    xmlWriter.writeNamespace(prefix, namespace);
-                    xmlWriter.setPrefix(prefix, namespace);
-                }
-
-                return prefix;
-            }
-
-
-  
-     /**
-      *  Factory class that keeps the parse method
-      */
-    public static class Factory{
-
-        
-        
-                public static ENTITIES fromString(java.lang.String value,
-                                                    java.lang.String namespaceURI){
-                    ENTITIES returnValue = new  ENTITIES();
-                    
-                            returnValue.setENTITIES(
-                                org.apache.axis2.databinding.utils.ConverterUtil.convertToENTITIES(value));
-                        
-
-                    return returnValue;
-                }
-
-                public static ENTITIES fromString(javax.xml.stream.XMLStreamReader xmlStreamReader,
-                                                                    java.lang.String content) {
-                    if (content.indexOf(":") > -1){
-                        java.lang.String prefix = content.substring(0,content.indexOf(":"));
-                        java.lang.String namespaceUri = xmlStreamReader.getNamespaceContext().getNamespaceURI(prefix);
-                        return ENTITIES.Factory.fromString(content,namespaceUri);
-                    } else {
-                       return ENTITIES.Factory.fromString(content,"");
-                    }
-                }
-
-            
-
-        /**
-        * static method to create the object
-        * Precondition:  If this object is an element, the current or next start element starts this object and any intervening reader events are ignorable
-        *                If this object is not an element, it is a complex type and the reader is at the event just after the outer start element
-        * Postcondition: If this object is an element, the reader is positioned at its end element
-        *                If this object is a complex type, the reader is positioned at the end element of its outer element
-        */
-        public static ENTITIES parse(javax.xml.stream.XMLStreamReader reader) throws java.lang.Exception{
-            ENTITIES object =
-                new ENTITIES();
-
-            int event;
-            java.lang.String nillableValue = null;
-            java.lang.String prefix ="";
-            java.lang.String namespaceuri ="";
-            try {
-                
-                while (!reader.isStartElement() && !reader.isEndElement())
-                    reader.next();
-
-                
-                if (reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance","type")!=null){
-                  java.lang.String fullTypeName = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance",
-                        "type");
-                  if (fullTypeName!=null){
-                    java.lang.String nsPrefix = null;
-                    if (fullTypeName.indexOf(":") > -1){
-                        nsPrefix = fullTypeName.substring(0,fullTypeName.indexOf(":"));
-                    }
-                    nsPrefix = nsPrefix==null?"":nsPrefix;
-
-                    java.lang.String type = fullTypeName.substring(fullTypeName.indexOf(":")+1);
-                    
-                            if (!"ENTITIES".equals(type)){
-                                //find namespace for the prefix
-                                java.lang.String nsUri = reader.getNamespaceContext().getNamespaceURI(nsPrefix);
-                                return (ENTITIES)org.apache.axis2.databinding.types.xsd.ExtensionMapper.getTypeObject(
-                                     nsUri,type,reader);
-                              }
-                        
-
-                  }
-                
-
-                }
-
-                
-
-                
-                // Note all attributes that were handled. Used to differ normal attributes
-                // from anyAttributes.
-                java.util.Vector handledAttributes = new java.util.Vector();
-                
-
-                    
-                while(!reader.isEndElement()) {
-                    if (reader.isStartElement()  || reader.hasText()){
-                
-                                    if (reader.isStartElement()  || reader.hasText()){
-                                
-                                    java.lang.String content = reader.getElementText();
-                                    
-                                              object.setENTITIES(
-                                                    org.apache.axis2.databinding.utils.ConverterUtil.convertToENTITIES(content));
-                                            
-                              }  // End of if for expected property start element
-                                
-                             else{
-                                        // A start element we are not expecting indicates an invalid parameter was passed
-                                        throw new org.apache.axis2.databinding.ADBException("Unexpected subelement " + reader.getLocalName());
-                             }
-                          
-                             } else {
-                                reader.next();
-                             }  
-                           }  // end of while loop
-                        
-
-
-
-            } catch (javax.xml.stream.XMLStreamException e) {
-                throw new java.lang.Exception(e);
-            }
-
-            return object;
-        }
-
-        }//end of factory class
-
-        
-
-        }
-           
-          
\ No newline at end of file
diff --git a/modules/adb/src/org/apache/axis2/databinding/types/xsd/ENTITY.java b/modules/adb/src/org/apache/axis2/databinding/types/xsd/ENTITY.java
deleted file mode 100644
index c1c13eb..0000000
--- a/modules/adb/src/org/apache/axis2/databinding/types/xsd/ENTITY.java
+++ /dev/null
@@ -1,469 +0,0 @@
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/**
- * ENTITY.java
- *
- * This file was auto-generated from WSDL
- * by the Apache Axis2 version: SNAPSHOT  Built on : Dec 21, 2007 (04:03:30 LKT)
- */
-            
-                package org.apache.axis2.databinding.types.xsd;
-
-import javax.xml.stream.XMLStreamWriter;
-            
-
-            /**
-            *  ENTITY bean class
-            */
-        
-        public  class ENTITY
-        implements org.apache.axis2.databinding.ADBBean{
-        /* This type was generated from the piece of schema that had
-                name = ENTITY
-                Namespace URI = http://www.w3.org/2001/XMLSchema
-                Namespace Prefix = ns1
-                */
-            
-
-        private static java.lang.String generatePrefix(java.lang.String namespace) {
-            if(namespace.equals("http://www.w3.org/2001/XMLSchema")){
-                return "xsd";
-            }
-            return org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-        }
-
-        
-
-                        /**
-                        * field for ENTITY
-                        */
-
-                        
-                                    protected org.apache.axis2.databinding.types.Entity localENTITY ;
-                                
-
-                           /**
-                           * Auto generated getter method
-                           * @return org.apache.axis2.databinding.types.Entity
-                           */
-                           public  org.apache.axis2.databinding.types.Entity getENTITY(){
-                               return localENTITY;
-                           }
-
-                           
-                        
-                            /**
-                               * Auto generated setter method
-                               * @param param ENTITY
-                               */
-                               public void setENTITY(org.apache.axis2.databinding.types.Entity param){
-                            
-                                            this.localENTITY=param;
-                                    
-
-                               }
-                            
-
-                            public java.lang.String toString(){
-                                
-                                        return localENTITY.toString();
-                                    
-                            }
-                        
-
-     /**
-     * isReaderMTOMAware
-     * @return true if the reader supports MTOM
-     */
-   public static boolean isReaderMTOMAware(javax.xml.stream.XMLStreamReader reader) {
-        boolean isReaderMTOMAware = false;
-        
-        try{
-          isReaderMTOMAware = java.lang.Boolean.TRUE.equals(reader.getProperty(org.apache.axiom.om.OMConstants.IS_DATA_HANDLERS_AWARE));
-        }catch(java.lang.IllegalArgumentException e){
-          isReaderMTOMAware = false;
-        }
-        return isReaderMTOMAware;
-   }
-     
-     
-        /**
-        *
-        * @param parentQName
-        * @param factory
-        * @return org.apache.axiom.om.OMElement
-        */
-       public org.apache.axiom.om.OMElement getOMElement (
-               final javax.xml.namespace.QName parentQName,
-               final org.apache.axiom.om.OMFactory factory) throws org.apache.axis2.databinding.ADBException{
-
-
-        
-               org.apache.axiom.om.OMDataSource dataSource =
-                       new org.apache.axis2.databinding.ADBDataSource(this,parentQName);
-               return factory.createOMElement(dataSource,parentQName);
-            
-       }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                                       XMLStreamWriter xmlWriter)
-                                throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-                           serialize(parentQName,xmlWriter,false);
-         }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                               XMLStreamWriter xmlWriter,
-                               boolean serializeType)
-            throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-            
-                
-
-
-                java.lang.String prefix = null;
-                java.lang.String namespace = null;
-                
-
-                    prefix = parentQName.getPrefix();
-                    namespace = parentQName.getNamespaceURI();
-
-                    if ((namespace != null) && (namespace.trim().length() > 0)) {
-                        java.lang.String writerPrefix = xmlWriter.getPrefix(namespace);
-                        if (writerPrefix != null) {
-                            xmlWriter.writeStartElement(namespace, parentQName.getLocalPart());
-                        } else {
-                            if (prefix == null) {
-                                prefix = generatePrefix(namespace);
-                            }
-
-                            xmlWriter.writeStartElement(prefix, parentQName.getLocalPart(), namespace);
-                            xmlWriter.writeNamespace(prefix, namespace);
-                            xmlWriter.setPrefix(prefix, namespace);
-                        }
-                    } else {
-                        xmlWriter.writeStartElement(parentQName.getLocalPart());
-                    }
-                
-                  if (serializeType){
-               
-                   java.lang.String namespacePrefix = registerPrefix(xmlWriter,"http://www.w3.org/2001/XMLSchema");
-                   if ((namespacePrefix != null) && (namespacePrefix.trim().length() > 0)){
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           namespacePrefix+":ENTITY",
-                           xmlWriter);
-                   } else {
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           "ENTITY",
-                           xmlWriter);
-                   }
-
-               
-                   }
-               
-
-                                          if (localENTITY==null){
-                                              // write the nil attribute
-                                              
-                                                     throw new org.apache.axis2.databinding.ADBException("ENTITY cannot be null!!");
-                                                  
-                                          }else{
-
-                                        
-                                                   xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(localENTITY));
-                                            
-                                          }
-                                    
-                    xmlWriter.writeEndElement();
-               
-
-        }
-
-         /**
-          * Util method to write an attribute with the ns prefix
-          */
-          private void writeAttribute(java.lang.String prefix,java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-              if (xmlWriter.getPrefix(namespace) == null) {
-                       xmlWriter.writeNamespace(prefix, namespace);
-                       xmlWriter.setPrefix(prefix, namespace);
-
-              }
-
-              xmlWriter.writeAttribute(namespace,attName,attValue);
-
-         }
-
-        /**
-          * Util method to write an attribute without the ns prefix
-          */
-          private void writeAttribute(java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-                if (namespace.equals(""))
-              {
-                  xmlWriter.writeAttribute(attName,attValue);
-              }
-              else
-              {
-                  registerPrefix(xmlWriter, namespace);
-                  xmlWriter.writeAttribute(namespace,attName,attValue);
-              }
-          }
-
-
-           /**
-             * Util method to write an attribute without the ns prefix
-             */
-            private void writeQNameAttribute(java.lang.String namespace, java.lang.String attName,
-                                             javax.xml.namespace.QName qname, javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-                java.lang.String attributeNamespace = qname.getNamespaceURI();
-                java.lang.String attributePrefix = xmlWriter.getPrefix(attributeNamespace);
-                if (attributePrefix == null) {
-                    attributePrefix = registerPrefix(xmlWriter, attributeNamespace);
-                }
-                java.lang.String attributeValue;
-                if (attributePrefix.trim().length() > 0) {
-                    attributeValue = attributePrefix + ":" + qname.getLocalPart();
-                } else {
-                    attributeValue = qname.getLocalPart();
-                }
-
-                if (namespace.equals("")) {
-                    xmlWriter.writeAttribute(attName, attributeValue);
-                } else {
-                    registerPrefix(xmlWriter, namespace);
-                    xmlWriter.writeAttribute(namespace, attName, attributeValue);
-                }
-            }
-        /**
-         *  method to handle Qnames
-         */
-
-        private void writeQName(javax.xml.namespace.QName qname,
-                                javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-            java.lang.String namespaceURI = qname.getNamespaceURI();
-            if (namespaceURI != null) {
-                java.lang.String prefix = xmlWriter.getPrefix(namespaceURI);
-                if (prefix == null) {
-                    prefix = generatePrefix(namespaceURI);
-                    xmlWriter.writeNamespace(prefix, namespaceURI);
-                    xmlWriter.setPrefix(prefix,namespaceURI);
-                }
-
-                if (prefix.trim().length() > 0){
-                    xmlWriter.writeCharacters(prefix + ":" + org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                } else {
-                    // i.e this is the default namespace
-                    xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                }
-
-            } else {
-                xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-            }
-        }
-
-        private void writeQNames(javax.xml.namespace.QName[] qnames,
-                                 javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-            if (qnames != null) {
-                // we have to store this data until last moment since it is not possible to write any
-                // namespace data after writing the charactor data
-                java.lang.StringBuffer stringToWrite = new java.lang.StringBuffer();
-                java.lang.String namespaceURI = null;
-                java.lang.String prefix = null;
-
-                for (int i = 0; i < qnames.length; i++) {
-                    if (i > 0) {
-                        stringToWrite.append(" ");
-                    }
-                    namespaceURI = qnames[i].getNamespaceURI();
-                    if (namespaceURI != null) {
-                        prefix = xmlWriter.getPrefix(namespaceURI);
-                        if ((prefix == null) || (prefix.length() == 0)) {
-                            prefix = generatePrefix(namespaceURI);
-                            xmlWriter.writeNamespace(prefix, namespaceURI);
-                            xmlWriter.setPrefix(prefix,namespaceURI);
-                        }
-
-                        if (prefix.trim().length() > 0){
-                            stringToWrite.append(prefix).append(":").append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        } else {
-                            stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        }
-                    } else {
-                        stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                    }
-                }
-                xmlWriter.writeCharacters(stringToWrite.toString());
-            }
-
-        }
-
-
-         /**
-         * Register a namespace prefix
-         */
-         private java.lang.String registerPrefix(javax.xml.stream.XMLStreamWriter xmlWriter, java.lang.String namespace) throws javax.xml.stream.XMLStreamException {
-                java.lang.String prefix = xmlWriter.getPrefix(namespace);
-
-                if (prefix == null) {
-                    prefix = generatePrefix(namespace);
-                    javax.xml.namespace.NamespaceContext nsContext = xmlWriter.getNamespaceContext();
-                    while (true) {
-                        java.lang.String uri = nsContext.getNamespaceURI(prefix);
-                        if (uri == null || uri.length() == 0) {
-                            break;
-                        }
-                        prefix = org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-                    }
-                    xmlWriter.writeNamespace(prefix, namespace);
-                    xmlWriter.setPrefix(prefix, namespace);
-                }
-
-                return prefix;
-            }
-
-
-  
-     /**
-      *  Factory class that keeps the parse method
-      */
-    public static class Factory{
-
-        
-        
-                public static ENTITY fromString(java.lang.String value,
-                                                    java.lang.String namespaceURI){
-                    ENTITY returnValue = new  ENTITY();
-                    
-                            returnValue.setENTITY(
-                                org.apache.axis2.databinding.utils.ConverterUtil.convertToENTITY(value));
-                        
-
-                    return returnValue;
-                }
-
-                public static ENTITY fromString(javax.xml.stream.XMLStreamReader xmlStreamReader,
-                                                                    java.lang.String content) {
-                    if (content.indexOf(":") > -1){
-                        java.lang.String prefix = content.substring(0,content.indexOf(":"));
-                        java.lang.String namespaceUri = xmlStreamReader.getNamespaceContext().getNamespaceURI(prefix);
-                        return ENTITY.Factory.fromString(content,namespaceUri);
-                    } else {
-                       return ENTITY.Factory.fromString(content,"");
-                    }
-                }
-
-            
-
-        /**
-        * static method to create the object
-        * Precondition:  If this object is an element, the current or next start element starts this object and any intervening reader events are ignorable
-        *                If this object is not an element, it is a complex type and the reader is at the event just after the outer start element
-        * Postcondition: If this object is an element, the reader is positioned at its end element
-        *                If this object is a complex type, the reader is positioned at the end element of its outer element
-        */
-        public static ENTITY parse(javax.xml.stream.XMLStreamReader reader) throws java.lang.Exception{
-            ENTITY object =
-                new ENTITY();
-
-            int event;
-            java.lang.String nillableValue = null;
-            java.lang.String prefix ="";
-            java.lang.String namespaceuri ="";
-            try {
-                
-                while (!reader.isStartElement() && !reader.isEndElement())
-                    reader.next();
-
-                
-                if (reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance","type")!=null){
-                  java.lang.String fullTypeName = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance",
-                        "type");
-                  if (fullTypeName!=null){
-                    java.lang.String nsPrefix = null;
-                    if (fullTypeName.indexOf(":") > -1){
-                        nsPrefix = fullTypeName.substring(0,fullTypeName.indexOf(":"));
-                    }
-                    nsPrefix = nsPrefix==null?"":nsPrefix;
-
-                    java.lang.String type = fullTypeName.substring(fullTypeName.indexOf(":")+1);
-                    
-                            if (!"ENTITY".equals(type)){
-                                //find namespace for the prefix
-                                java.lang.String nsUri = reader.getNamespaceContext().getNamespaceURI(nsPrefix);
-                                return (ENTITY)org.apache.axis2.databinding.types.xsd.ExtensionMapper.getTypeObject(
-                                     nsUri,type,reader);
-                              }
-                        
-
-                  }
-                
-
-                }
-
-                
-
-                
-                // Note all attributes that were handled. Used to differ normal attributes
-                // from anyAttributes.
-                java.util.Vector handledAttributes = new java.util.Vector();
-                
-
-                    
-                while(!reader.isEndElement()) {
-                    if (reader.isStartElement()  || reader.hasText()){
-                
-                                    if (reader.isStartElement()  || reader.hasText()){
-                                
-                                    java.lang.String content = reader.getElementText();
-                                    
-                                              object.setENTITY(
-                                                    org.apache.axis2.databinding.utils.ConverterUtil.convertToENTITY(content));
-                                            
-                              }  // End of if for expected property start element
-                                
-                             else{
-                                        // A start element we are not expecting indicates an invalid parameter was passed
-                                        throw new org.apache.axis2.databinding.ADBException("Unexpected subelement " + reader.getLocalName());
-                             }
-                          
-                             } else {
-                                reader.next();
-                             }  
-                           }  // end of while loop
-                        
-
-
-
-            } catch (javax.xml.stream.XMLStreamException e) {
-                throw new java.lang.Exception(e);
-            }
-
-            return object;
-        }
-
-        }//end of factory class
-
-        
-
-        }
-           
-          
\ No newline at end of file
diff --git a/modules/adb/src/org/apache/axis2/databinding/types/xsd/ExtensionMapper.java b/modules/adb/src/org/apache/axis2/databinding/types/xsd/ExtensionMapper.java
deleted file mode 100644
index 60c2bf9..0000000
--- a/modules/adb/src/org/apache/axis2/databinding/types/xsd/ExtensionMapper.java
+++ /dev/null
@@ -1,492 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/**
- * ExtensionMapper.java
- *
- * This file was auto-generated from WSDL
- * by the Apache Axis2 version: SNAPSHOT  Built on : Dec 21, 2007 (04:03:30 LKT)
- */
-
-package org.apache.axis2.databinding.types.xsd;
-
-/**
- * ExtensionMapper class
- */
-
-public class ExtensionMapper {
-
-    public static java.lang.Object getTypeObject(java.lang.String namespaceURI,
-                                                 java.lang.String typeName,
-                                                 javax.xml.stream.XMLStreamReader reader) throws java.lang.Exception {
-
-
-        if ("http://www.w3.org/2001/XMLSchema".equals(namespaceURI) &&
-                        "unsignedByte".equals(typeName)) {
-
-            return org.apache.axis2.databinding.types.xsd.UnsignedByte.Factory.parse(reader);
-
-
-        }
-
-
-        if ("http://www.w3.org/2001/XMLSchema".equals(namespaceURI) &&
-                        "NMTOKEN".equals(typeName)) {
-
-            return org.apache.axis2.databinding.types.xsd.NMTOKEN.Factory.parse(reader);
-
-
-        }
-
-
-        if (
-                "http://www.w3.org/2001/XMLSchema".equals(namespaceURI) &&
-                        "duration".equals(typeName)) {
-
-            return org.apache.axis2.databinding.types.xsd.Duration.Factory.parse(reader);
-
-
-        }
-
-
-        if (
-                "http://www.w3.org/2001/XMLSchema".equals(namespaceURI) &&
-                        "int".equals(typeName)) {
-
-            return org.apache.axis2.databinding.types.xsd._int.Factory.parse(reader);
-
-
-        }
-
-
-        if (
-                "http://www.w3.org/2001/XMLSchema".equals(namespaceURI) &&
-                        "string".equals(typeName)) {
-
-            return org.apache.axis2.databinding.types.xsd.String.Factory.parse(reader);
-
-
-        }
-
-
-        if (
-                "http://www.w3.org/2001/XMLSchema".equals(namespaceURI) &&
-                        "NOTATION".equals(typeName)) {
-
-            return org.apache.axis2.databinding.types.xsd.NOTATION.Factory.parse(reader);
-
-
-        }
-
-
-        if (
-                "http://www.w3.org/2001/XMLSchema".equals(namespaceURI) &&
-                        "time".equals(typeName)) {
-
-            return org.apache.axis2.databinding.types.xsd.Time.Factory.parse(reader);
-
-
-        }
-
-
-        if (
-                "http://www.w3.org/2001/XMLSchema".equals(namespaceURI) &&
-                        "gDay".equals(typeName)) {
-
-            return org.apache.axis2.databinding.types.xsd.GDay.Factory.parse(reader);
-
-
-        }
-
-
-        if (
-                "http://www.w3.org/2001/XMLSchema".equals(namespaceURI) &&
-                        "hexBinary".equals(typeName)) {
-
-            return org.apache.axis2.databinding.types.xsd.HexBinary.Factory.parse(reader);
-
-
-        }
-
-
-        if (
-                "http://www.w3.org/2001/XMLSchema".equals(namespaceURI) &&
-                        "nonNegativeInteger".equals(typeName)) {
-
-            return org.apache.axis2.databinding.types.xsd.NonNegativeInteger.Factory.parse(reader);
-
-
-        }
-
-
-        if (
-                "http://www.w3.org/2001/XMLSchema".equals(namespaceURI) &&
-                        "NCName".equals(typeName)) {
-
-            return org.apache.axis2.databinding.types.xsd.NCName.Factory.parse(reader);
-
-
-        }
-
-
-        if (
-                "http://www.w3.org/2001/XMLSchema".equals(namespaceURI) &&
-                        "NMTOKENS".equals(typeName)) {
-
-            return org.apache.axis2.databinding.types.xsd.NMTOKENS.Factory.parse(reader);
-
-
-        }
-
-
-        if (
-                "http://www.w3.org/2001/XMLSchema".equals(namespaceURI) &&
-                        "unsignedInt".equals(typeName)) {
-
-            return org.apache.axis2.databinding.types.xsd.UnsignedInt.Factory.parse(reader);
-
-
-        }
-
-
-        if (
-                "http://www.w3.org/2001/XMLSchema".equals(namespaceURI) &&
-                        "unsignedLong".equals(typeName)) {
-
-            return org.apache.axis2.databinding.types.xsd.UnsignedLong.Factory.parse(reader);
-
-
-        }
-
-
-        if (
-                "http://www.w3.org/2001/XMLSchema".equals(namespaceURI) &&
-                        "negativeInteger".equals(typeName)) {
-
-            return org.apache.axis2.databinding.types.xsd.NegativeInteger.Factory.parse(reader);
-
-
-        }
-
-
-        if (
-                "http://www.w3.org/2001/XMLSchema".equals(namespaceURI) &&
-                        "dateTime".equals(typeName)) {
-
-            return org.apache.axis2.databinding.types.xsd.DateTime.Factory.parse(reader);
-
-
-        }
-
-
-        if (
-                "http://www.w3.org/2001/XMLSchema".equals(namespaceURI) &&
-                        "unsignedShort".equals(typeName)) {
-
-            return org.apache.axis2.databinding.types.xsd.UnsignedShort.Factory.parse(reader);
-
-
-        }
-
-
-        if (
-                "http://www.w3.org/2001/XMLSchema".equals(namespaceURI) &&
-                        "gYearMonth".equals(typeName)) {
-
-            return org.apache.axis2.databinding.types.xsd.GYearMonth.Factory.parse(reader);
-
-
-        }
-
-
-        if (
-                "http://www.w3.org/2001/XMLSchema".equals(namespaceURI) &&
-                        "boolean".equals(typeName)) {
-
-            return org.apache.axis2.databinding.types.xsd._boolean.Factory.parse(reader);
-
-
-        }
-
-
-        if (
-                "http://www.w3.org/2001/XMLSchema".equals(namespaceURI) &&
-                        "nonPositiveInteger".equals(typeName)) {
-
-            return org.apache.axis2.databinding.types.xsd.NonPositiveInteger.Factory.parse(reader);
-
-
-        }
-
-
-        if (
-                "http://www.w3.org/2001/XMLSchema".equals(namespaceURI) &&
-                        "base64".equals(typeName)) {
-
-            return org.apache.axis2.databinding.types.xsd.Base64.Factory.parse(reader);
-
-
-        }
-
-
-        if (
-                "http://www.w3.org/2001/XMLSchema".equals(namespaceURI) &&
-                        "double".equals(typeName)) {
-
-            return org.apache.axis2.databinding.types.xsd._double.Factory.parse(reader);
-
-
-        }
-
-
-        if (
-                "http://www.w3.org/2001/XMLSchema".equals(namespaceURI) &&
-                        "float".equals(typeName)) {
-
-            return org.apache.axis2.databinding.types.xsd._float.Factory.parse(reader);
-
-
-        }
-
-
-        if (
-                "http://www.w3.org/2001/XMLSchema".equals(namespaceURI) &&
-                        "base64Binary".equals(typeName)) {
-
-            return org.apache.axis2.databinding.types.xsd.Base64Binary.Factory.parse(reader);
-
-
-        }
-
-
-        if (
-                "http://www.w3.org/2001/XMLSchema".equals(namespaceURI) &&
-                        "gMonthDay".equals(typeName)) {
-
-            return org.apache.axis2.databinding.types.xsd.GMonthDay.Factory.parse(reader);
-
-
-        }
-
-
-        if (
-                "http://www.w3.org/2001/XMLSchema".equals(namespaceURI) &&
-                        "Name".equals(typeName)) {
-
-            return org.apache.axis2.databinding.types.xsd.Name.Factory.parse(reader);
-
-
-        }
-
-
-        if (
-                "http://www.w3.org/2001/XMLSchema".equals(namespaceURI) &&
-                        "ENTITY".equals(typeName)) {
-
-            return org.apache.axis2.databinding.types.xsd.ENTITY.Factory.parse(reader);
-
-
-        }
-
-
-        if (
-                "http://www.w3.org/2001/XMLSchema".equals(namespaceURI) &&
-                        "byte".equals(typeName)) {
-
-            return org.apache.axis2.databinding.types.xsd._byte.Factory.parse(reader);
-
-
-        }
-
-
-        if (
-                "http://www.w3.org/2001/XMLSchema".equals(namespaceURI) &&
-                        "long".equals(typeName)) {
-
-            return org.apache.axis2.databinding.types.xsd._long.Factory.parse(reader);
-
-
-        }
-
-
-        if (
-                "http://www.w3.org/2001/XMLSchema".equals(namespaceURI) &&
-                        "IDREF".equals(typeName)) {
-
-            return org.apache.axis2.databinding.types.xsd.IDREF.Factory.parse(reader);
-
-
-        }
-
-
-        if (
-                "http://www.w3.org/2001/XMLSchema".equals(namespaceURI) &&
-                        "gYear".equals(typeName)) {
-
-            return org.apache.axis2.databinding.types.xsd.GYear.Factory.parse(reader);
-
-
-        }
-
-
-        if (
-                "http://www.w3.org/2001/XMLSchema".equals(namespaceURI) &&
-                        "ID".equals(typeName)) {
-
-            return org.apache.axis2.databinding.types.xsd.ID.Factory.parse(reader);
-
-
-        }
-
-
-        if (
-                "http://www.w3.org/2001/XMLSchema".equals(namespaceURI) &&
-                        "anyURI".equals(typeName)) {
-
-            return org.apache.axis2.databinding.types.xsd.AnyURI.Factory.parse(reader);
-
-
-        }
-
-
-        if (
-                "http://www.w3.org/2001/XMLSchema".equals(namespaceURI) &&
-                        "token".equals(typeName)) {
-
-            return org.apache.axis2.databinding.types.xsd.Token.Factory.parse(reader);
-
-
-        }
-
-
-        if (
-                "http://www.w3.org/2001/XMLSchema".equals(namespaceURI) &&
-                        "positiveInteger".equals(typeName)) {
-
-            return org.apache.axis2.databinding.types.xsd.PositiveInteger.Factory.parse(reader);
-
-
-        }
-
-
-        if (
-                "http://www.w3.org/2001/XMLSchema".equals(namespaceURI) &&
-                        "short".equals(typeName)) {
-
-            return org.apache.axis2.databinding.types.xsd._short.Factory.parse(reader);
-
-
-        }
-
-
-        if (
-                "http://www.w3.org/2001/XMLSchema".equals(namespaceURI) &&
-                        "language".equals(typeName)) {
-
-            return org.apache.axis2.databinding.types.xsd.Language.Factory.parse(reader);
-
-
-        }
-
-
-        if (
-                "http://www.w3.org/2001/XMLSchema".equals(namespaceURI) &&
-                        "ENTITIES".equals(typeName)) {
-
-            return org.apache.axis2.databinding.types.xsd.ENTITIES.Factory.parse(reader);
-
-
-        }
-
-
-        if (
-                "http://www.w3.org/2001/XMLSchema".equals(namespaceURI) &&
-                        "date".equals(typeName)) {
-
-            return org.apache.axis2.databinding.types.xsd.Date.Factory.parse(reader);
-
-
-        }
-
-
-        if (
-                "http://www.w3.org/2001/XMLSchema".equals(namespaceURI) &&
-                        "integer".equals(typeName)) {
-
-            return org.apache.axis2.databinding.types.xsd.Integer.Factory.parse(reader);
-
-
-        }
-
-
-        if (
-                "http://www.w3.org/2001/XMLSchema".equals(namespaceURI) &&
-                        "QName".equals(typeName)) {
-
-            return org.apache.axis2.databinding.types.xsd.QName.Factory.parse(reader);
-
-
-        }
-
-
-        if (
-                "http://www.w3.org/2001/XMLSchema".equals(namespaceURI) &&
-                        "normalizedString".equals(typeName)) {
-
-            return org.apache.axis2.databinding.types.xsd.NormalizedString.Factory.parse(reader);
-
-
-        }
-
-
-        if (
-                "http://www.w3.org/2001/XMLSchema".equals(namespaceURI) &&
-                        "IDREFS".equals(typeName)) {
-
-            return org.apache.axis2.databinding.types.xsd.IDREFS.Factory.parse(reader);
-
-
-        }
-
-
-        if (
-                "http://www.w3.org/2001/XMLSchema".equals(namespaceURI) &&
-                        "decimal".equals(typeName)) {
-
-            return org.apache.axis2.databinding.types.xsd.Decimal.Factory.parse(reader);
-
-
-        }
-
-
-        if (
-                "http://www.w3.org/2001/XMLSchema".equals(namespaceURI) &&
-                        "gMonth".equals(typeName)) {
-
-            return org.apache.axis2.databinding.types.xsd.GMonth.Factory.parse(reader);
-
-
-        }
-        System.out.println("Names pace ==> " + namespaceURI + " type " + typeName);
-
-        throw new org.apache.axis2.databinding.ADBException("Unsupported type " + namespaceURI + " " + typeName);
-    }
-
-}
-    
\ No newline at end of file
diff --git a/modules/adb/src/org/apache/axis2/databinding/types/xsd/GDay.java b/modules/adb/src/org/apache/axis2/databinding/types/xsd/GDay.java
deleted file mode 100644
index 41a97c8..0000000
--- a/modules/adb/src/org/apache/axis2/databinding/types/xsd/GDay.java
+++ /dev/null
@@ -1,469 +0,0 @@
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/**
- * GDay.java
- *
- * This file was auto-generated from WSDL
- * by the Apache Axis2 version: SNAPSHOT  Built on : Dec 21, 2007 (04:03:30 LKT)
- */
-            
-                package org.apache.axis2.databinding.types.xsd;
-
-import javax.xml.stream.XMLStreamWriter;
-            
-
-            /**
-            *  GDay bean class
-            */
-        
-        public  class GDay
-        implements org.apache.axis2.databinding.ADBBean{
-        /* This type was generated from the piece of schema that had
-                name = gDay
-                Namespace URI = http://www.w3.org/2001/XMLSchema
-                Namespace Prefix = ns1
-                */
-            
-
-        private static java.lang.String generatePrefix(java.lang.String namespace) {
-            if(namespace.equals("http://www.w3.org/2001/XMLSchema")){
-                return "xsd";
-            }
-            return org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-        }
-
-        
-
-                        /**
-                        * field for GDay
-                        */
-
-                        
-                                    protected org.apache.axis2.databinding.types.Day localGDay ;
-                                
-
-                           /**
-                           * Auto generated getter method
-                           * @return org.apache.axis2.databinding.types.Day
-                           */
-                           public  org.apache.axis2.databinding.types.Day getGDay(){
-                               return localGDay;
-                           }
-
-                           
-                        
-                            /**
-                               * Auto generated setter method
-                               * @param param GDay
-                               */
-                               public void setGDay(org.apache.axis2.databinding.types.Day param){
-                            
-                                            this.localGDay=param;
-                                    
-
-                               }
-                            
-
-                            public java.lang.String toString(){
-                                
-                                        return localGDay.toString();
-                                    
-                            }
-                        
-
-     /**
-     * isReaderMTOMAware
-     * @return true if the reader supports MTOM
-     */
-   public static boolean isReaderMTOMAware(javax.xml.stream.XMLStreamReader reader) {
-        boolean isReaderMTOMAware = false;
-        
-        try{
-          isReaderMTOMAware = java.lang.Boolean.TRUE.equals(reader.getProperty(org.apache.axiom.om.OMConstants.IS_DATA_HANDLERS_AWARE));
-        }catch(java.lang.IllegalArgumentException e){
-          isReaderMTOMAware = false;
-        }
-        return isReaderMTOMAware;
-   }
-     
-     
-        /**
-        *
-        * @param parentQName
-        * @param factory
-        * @return org.apache.axiom.om.OMElement
-        */
-       public org.apache.axiom.om.OMElement getOMElement (
-               final javax.xml.namespace.QName parentQName,
-               final org.apache.axiom.om.OMFactory factory) throws org.apache.axis2.databinding.ADBException{
-
-
-        
-               org.apache.axiom.om.OMDataSource dataSource =
-                       new org.apache.axis2.databinding.ADBDataSource(this,parentQName);
-               return factory.createOMElement(dataSource,parentQName);
-            
-       }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                                       XMLStreamWriter xmlWriter)
-                                throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-                           serialize(parentQName,xmlWriter,false);
-         }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                               XMLStreamWriter xmlWriter,
-                               boolean serializeType)
-            throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-            
-                
-
-
-                java.lang.String prefix = null;
-                java.lang.String namespace = null;
-                
-
-                    prefix = parentQName.getPrefix();
-                    namespace = parentQName.getNamespaceURI();
-
-                    if ((namespace != null) && (namespace.trim().length() > 0)) {
-                        java.lang.String writerPrefix = xmlWriter.getPrefix(namespace);
-                        if (writerPrefix != null) {
-                            xmlWriter.writeStartElement(namespace, parentQName.getLocalPart());
-                        } else {
-                            if (prefix == null) {
-                                prefix = generatePrefix(namespace);
-                            }
-
-                            xmlWriter.writeStartElement(prefix, parentQName.getLocalPart(), namespace);
-                            xmlWriter.writeNamespace(prefix, namespace);
-                            xmlWriter.setPrefix(prefix, namespace);
-                        }
-                    } else {
-                        xmlWriter.writeStartElement(parentQName.getLocalPart());
-                    }
-                
-                  if (serializeType){
-               
-                   java.lang.String namespacePrefix = registerPrefix(xmlWriter,"http://www.w3.org/2001/XMLSchema");
-                   if ((namespacePrefix != null) && (namespacePrefix.trim().length() > 0)){
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           namespacePrefix+":gDay",
-                           xmlWriter);
-                   } else {
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           "gDay",
-                           xmlWriter);
-                   }
-
-               
-                   }
-               
-
-                                          if (localGDay==null){
-                                              // write the nil attribute
-                                              
-                                                     throw new org.apache.axis2.databinding.ADBException("gDay cannot be null!!");
-                                                  
-                                          }else{
-
-                                        
-                                                   xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(localGDay));
-                                            
-                                          }
-                                    
-                    xmlWriter.writeEndElement();
-               
-
-        }
-
-         /**
-          * Util method to write an attribute with the ns prefix
-          */
-          private void writeAttribute(java.lang.String prefix,java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-              if (xmlWriter.getPrefix(namespace) == null) {
-                       xmlWriter.writeNamespace(prefix, namespace);
-                       xmlWriter.setPrefix(prefix, namespace);
-
-              }
-
-              xmlWriter.writeAttribute(namespace,attName,attValue);
-
-         }
-
-        /**
-          * Util method to write an attribute without the ns prefix
-          */
-          private void writeAttribute(java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-                if (namespace.equals(""))
-              {
-                  xmlWriter.writeAttribute(attName,attValue);
-              }
-              else
-              {
-                  registerPrefix(xmlWriter, namespace);
-                  xmlWriter.writeAttribute(namespace,attName,attValue);
-              }
-          }
-
-
-           /**
-             * Util method to write an attribute without the ns prefix
-             */
-            private void writeQNameAttribute(java.lang.String namespace, java.lang.String attName,
-                                             javax.xml.namespace.QName qname, javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-                java.lang.String attributeNamespace = qname.getNamespaceURI();
-                java.lang.String attributePrefix = xmlWriter.getPrefix(attributeNamespace);
-                if (attributePrefix == null) {
-                    attributePrefix = registerPrefix(xmlWriter, attributeNamespace);
-                }
-                java.lang.String attributeValue;
-                if (attributePrefix.trim().length() > 0) {
-                    attributeValue = attributePrefix + ":" + qname.getLocalPart();
-                } else {
-                    attributeValue = qname.getLocalPart();
-                }
-
-                if (namespace.equals("")) {
-                    xmlWriter.writeAttribute(attName, attributeValue);
-                } else {
-                    registerPrefix(xmlWriter, namespace);
-                    xmlWriter.writeAttribute(namespace, attName, attributeValue);
-                }
-            }
-        /**
-         *  method to handle Qnames
-         */
-
-        private void writeQName(javax.xml.namespace.QName qname,
-                                javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-            java.lang.String namespaceURI = qname.getNamespaceURI();
-            if (namespaceURI != null) {
-                java.lang.String prefix = xmlWriter.getPrefix(namespaceURI);
-                if (prefix == null) {
-                    prefix = generatePrefix(namespaceURI);
-                    xmlWriter.writeNamespace(prefix, namespaceURI);
-                    xmlWriter.setPrefix(prefix,namespaceURI);
-                }
-
-                if (prefix.trim().length() > 0){
-                    xmlWriter.writeCharacters(prefix + ":" + org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                } else {
-                    // i.e this is the default namespace
-                    xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                }
-
-            } else {
-                xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-            }
-        }
-
-        private void writeQNames(javax.xml.namespace.QName[] qnames,
-                                 javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-            if (qnames != null) {
-                // we have to store this data until last moment since it is not possible to write any
-                // namespace data after writing the charactor data
-                java.lang.StringBuffer stringToWrite = new java.lang.StringBuffer();
-                java.lang.String namespaceURI = null;
-                java.lang.String prefix = null;
-
-                for (int i = 0; i < qnames.length; i++) {
-                    if (i > 0) {
-                        stringToWrite.append(" ");
-                    }
-                    namespaceURI = qnames[i].getNamespaceURI();
-                    if (namespaceURI != null) {
-                        prefix = xmlWriter.getPrefix(namespaceURI);
-                        if ((prefix == null) || (prefix.length() == 0)) {
-                            prefix = generatePrefix(namespaceURI);
-                            xmlWriter.writeNamespace(prefix, namespaceURI);
-                            xmlWriter.setPrefix(prefix,namespaceURI);
-                        }
-
-                        if (prefix.trim().length() > 0){
-                            stringToWrite.append(prefix).append(":").append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        } else {
-                            stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        }
-                    } else {
-                        stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                    }
-                }
-                xmlWriter.writeCharacters(stringToWrite.toString());
-            }
-
-        }
-
-
-         /**
-         * Register a namespace prefix
-         */
-         private java.lang.String registerPrefix(javax.xml.stream.XMLStreamWriter xmlWriter, java.lang.String namespace) throws javax.xml.stream.XMLStreamException {
-                java.lang.String prefix = xmlWriter.getPrefix(namespace);
-
-                if (prefix == null) {
-                    prefix = generatePrefix(namespace);
-                    javax.xml.namespace.NamespaceContext nsContext = xmlWriter.getNamespaceContext();
-                    while (true) {
-                        java.lang.String uri = nsContext.getNamespaceURI(prefix);
-                        if (uri == null || uri.length() == 0) {
-                            break;
-                        }
-                        prefix = org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-                    }
-                    xmlWriter.writeNamespace(prefix, namespace);
-                    xmlWriter.setPrefix(prefix, namespace);
-                }
-
-                return prefix;
-            }
-
-
-  
-     /**
-      *  Factory class that keeps the parse method
-      */
-    public static class Factory{
-
-        
-        
-                public static GDay fromString(java.lang.String value,
-                                                    java.lang.String namespaceURI){
-                    GDay returnValue = new  GDay();
-                    
-                            returnValue.setGDay(
-                                org.apache.axis2.databinding.utils.ConverterUtil.convertToGDay(value));
-                        
-
-                    return returnValue;
-                }
-
-                public static GDay fromString(javax.xml.stream.XMLStreamReader xmlStreamReader,
-                                                                    java.lang.String content) {
-                    if (content.indexOf(":") > -1){
-                        java.lang.String prefix = content.substring(0,content.indexOf(":"));
-                        java.lang.String namespaceUri = xmlStreamReader.getNamespaceContext().getNamespaceURI(prefix);
-                        return GDay.Factory.fromString(content,namespaceUri);
-                    } else {
-                       return GDay.Factory.fromString(content,"");
-                    }
-                }
-
-            
-
-        /**
-        * static method to create the object
-        * Precondition:  If this object is an element, the current or next start element starts this object and any intervening reader events are ignorable
-        *                If this object is not an element, it is a complex type and the reader is at the event just after the outer start element
-        * Postcondition: If this object is an element, the reader is positioned at its end element
-        *                If this object is a complex type, the reader is positioned at the end element of its outer element
-        */
-        public static GDay parse(javax.xml.stream.XMLStreamReader reader) throws java.lang.Exception{
-            GDay object =
-                new GDay();
-
-            int event;
-            java.lang.String nillableValue = null;
-            java.lang.String prefix ="";
-            java.lang.String namespaceuri ="";
-            try {
-                
-                while (!reader.isStartElement() && !reader.isEndElement())
-                    reader.next();
-
-                
-                if (reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance","type")!=null){
-                  java.lang.String fullTypeName = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance",
-                        "type");
-                  if (fullTypeName!=null){
-                    java.lang.String nsPrefix = null;
-                    if (fullTypeName.indexOf(":") > -1){
-                        nsPrefix = fullTypeName.substring(0,fullTypeName.indexOf(":"));
-                    }
-                    nsPrefix = nsPrefix==null?"":nsPrefix;
-
-                    java.lang.String type = fullTypeName.substring(fullTypeName.indexOf(":")+1);
-                    
-                            if (!"gDay".equals(type)){
-                                //find namespace for the prefix
-                                java.lang.String nsUri = reader.getNamespaceContext().getNamespaceURI(nsPrefix);
-                                return (GDay)org.apache.axis2.databinding.types.xsd.ExtensionMapper.getTypeObject(
-                                     nsUri,type,reader);
-                              }
-                        
-
-                  }
-                
-
-                }
-
-                
-
-                
-                // Note all attributes that were handled. Used to differ normal attributes
-                // from anyAttributes.
-                java.util.Vector handledAttributes = new java.util.Vector();
-                
-
-                    
-                while(!reader.isEndElement()) {
-                    if (reader.isStartElement()  || reader.hasText()){
-                
-                                    if (reader.isStartElement()  || reader.hasText()){
-                                
-                                    java.lang.String content = reader.getElementText();
-                                    
-                                              object.setGDay(
-                                                    org.apache.axis2.databinding.utils.ConverterUtil.convertToGDay(content));
-                                            
-                              }  // End of if for expected property start element
-                                
-                             else{
-                                        // A start element we are not expecting indicates an invalid parameter was passed
-                                        throw new org.apache.axis2.databinding.ADBException("Unexpected subelement " + reader.getLocalName());
-                             }
-                          
-                             } else {
-                                reader.next();
-                             }  
-                           }  // end of while loop
-                        
-
-
-
-            } catch (javax.xml.stream.XMLStreamException e) {
-                throw new java.lang.Exception(e);
-            }
-
-            return object;
-        }
-
-        }//end of factory class
-
-        
-
-        }
-           
-          
\ No newline at end of file
diff --git a/modules/adb/src/org/apache/axis2/databinding/types/xsd/GMonth.java b/modules/adb/src/org/apache/axis2/databinding/types/xsd/GMonth.java
deleted file mode 100644
index c399ee7..0000000
--- a/modules/adb/src/org/apache/axis2/databinding/types/xsd/GMonth.java
+++ /dev/null
@@ -1,469 +0,0 @@
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/**
- * GMonth.java
- *
- * This file was auto-generated from WSDL
- * by the Apache Axis2 version: SNAPSHOT  Built on : Dec 21, 2007 (04:03:30 LKT)
- */
-            
-                package org.apache.axis2.databinding.types.xsd;
-
-import javax.xml.stream.XMLStreamWriter;
-            
-
-            /**
-            *  GMonth bean class
-            */
-        
-        public  class GMonth
-        implements org.apache.axis2.databinding.ADBBean{
-        /* This type was generated from the piece of schema that had
-                name = gMonth
-                Namespace URI = http://www.w3.org/2001/XMLSchema
-                Namespace Prefix = ns1
-                */
-            
-
-        private static java.lang.String generatePrefix(java.lang.String namespace) {
-            if(namespace.equals("http://www.w3.org/2001/XMLSchema")){
-                return "xsd";
-            }
-            return org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-        }
-
-        
-
-                        /**
-                        * field for GMonth
-                        */
-
-                        
-                                    protected org.apache.axis2.databinding.types.Month localGMonth ;
-                                
-
-                           /**
-                           * Auto generated getter method
-                           * @return org.apache.axis2.databinding.types.Month
-                           */
-                           public  org.apache.axis2.databinding.types.Month getGMonth(){
-                               return localGMonth;
-                           }
-
-                           
-                        
-                            /**
-                               * Auto generated setter method
-                               * @param param GMonth
-                               */
-                               public void setGMonth(org.apache.axis2.databinding.types.Month param){
-                            
-                                            this.localGMonth=param;
-                                    
-
-                               }
-                            
-
-                            public java.lang.String toString(){
-                                
-                                        return localGMonth.toString();
-                                    
-                            }
-                        
-
-     /**
-     * isReaderMTOMAware
-     * @return true if the reader supports MTOM
-     */
-   public static boolean isReaderMTOMAware(javax.xml.stream.XMLStreamReader reader) {
-        boolean isReaderMTOMAware = false;
-        
-        try{
-          isReaderMTOMAware = java.lang.Boolean.TRUE.equals(reader.getProperty(org.apache.axiom.om.OMConstants.IS_DATA_HANDLERS_AWARE));
-        }catch(java.lang.IllegalArgumentException e){
-          isReaderMTOMAware = false;
-        }
-        return isReaderMTOMAware;
-   }
-     
-     
-        /**
-        *
-        * @param parentQName
-        * @param factory
-        * @return org.apache.axiom.om.OMElement
-        */
-       public org.apache.axiom.om.OMElement getOMElement (
-               final javax.xml.namespace.QName parentQName,
-               final org.apache.axiom.om.OMFactory factory) throws org.apache.axis2.databinding.ADBException{
-
-
-        
-               org.apache.axiom.om.OMDataSource dataSource =
-                       new org.apache.axis2.databinding.ADBDataSource(this,parentQName);
-               return factory.createOMElement(dataSource,parentQName);
-            
-       }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                                       XMLStreamWriter xmlWriter)
-                                throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-                           serialize(parentQName,xmlWriter,false);
-         }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                               XMLStreamWriter xmlWriter,
-                               boolean serializeType)
-            throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-            
-                
-
-
-                java.lang.String prefix = null;
-                java.lang.String namespace = null;
-                
-
-                    prefix = parentQName.getPrefix();
-                    namespace = parentQName.getNamespaceURI();
-
-                    if ((namespace != null) && (namespace.trim().length() > 0)) {
-                        java.lang.String writerPrefix = xmlWriter.getPrefix(namespace);
-                        if (writerPrefix != null) {
-                            xmlWriter.writeStartElement(namespace, parentQName.getLocalPart());
-                        } else {
-                            if (prefix == null) {
-                                prefix = generatePrefix(namespace);
-                            }
-
-                            xmlWriter.writeStartElement(prefix, parentQName.getLocalPart(), namespace);
-                            xmlWriter.writeNamespace(prefix, namespace);
-                            xmlWriter.setPrefix(prefix, namespace);
-                        }
-                    } else {
-                        xmlWriter.writeStartElement(parentQName.getLocalPart());
-                    }
-                
-                  if (serializeType){
-               
-                   java.lang.String namespacePrefix = registerPrefix(xmlWriter,"http://www.w3.org/2001/XMLSchema");
-                   if ((namespacePrefix != null) && (namespacePrefix.trim().length() > 0)){
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           namespacePrefix+":gMonth",
-                           xmlWriter);
-                   } else {
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           "gMonth",
-                           xmlWriter);
-                   }
-
-               
-                   }
-               
-
-                                          if (localGMonth==null){
-                                              // write the nil attribute
-                                              
-                                                     throw new org.apache.axis2.databinding.ADBException("gMonth cannot be null!!");
-                                                  
-                                          }else{
-
-                                        
-                                                   xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(localGMonth));
-                                            
-                                          }
-                                    
-                    xmlWriter.writeEndElement();
-               
-
-        }
-
-         /**
-          * Util method to write an attribute with the ns prefix
-          */
-          private void writeAttribute(java.lang.String prefix,java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-              if (xmlWriter.getPrefix(namespace) == null) {
-                       xmlWriter.writeNamespace(prefix, namespace);
-                       xmlWriter.setPrefix(prefix, namespace);
-
-              }
-
-              xmlWriter.writeAttribute(namespace,attName,attValue);
-
-         }
-
-        /**
-          * Util method to write an attribute without the ns prefix
-          */
-          private void writeAttribute(java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-                if (namespace.equals(""))
-              {
-                  xmlWriter.writeAttribute(attName,attValue);
-              }
-              else
-              {
-                  registerPrefix(xmlWriter, namespace);
-                  xmlWriter.writeAttribute(namespace,attName,attValue);
-              }
-          }
-
-
-           /**
-             * Util method to write an attribute without the ns prefix
-             */
-            private void writeQNameAttribute(java.lang.String namespace, java.lang.String attName,
-                                             javax.xml.namespace.QName qname, javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-                java.lang.String attributeNamespace = qname.getNamespaceURI();
-                java.lang.String attributePrefix = xmlWriter.getPrefix(attributeNamespace);
-                if (attributePrefix == null) {
-                    attributePrefix = registerPrefix(xmlWriter, attributeNamespace);
-                }
-                java.lang.String attributeValue;
-                if (attributePrefix.trim().length() > 0) {
-                    attributeValue = attributePrefix + ":" + qname.getLocalPart();
-                } else {
-                    attributeValue = qname.getLocalPart();
-                }
-
-                if (namespace.equals("")) {
-                    xmlWriter.writeAttribute(attName, attributeValue);
-                } else {
-                    registerPrefix(xmlWriter, namespace);
-                    xmlWriter.writeAttribute(namespace, attName, attributeValue);
-                }
-            }
-        /**
-         *  method to handle Qnames
-         */
-
-        private void writeQName(javax.xml.namespace.QName qname,
-                                javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-            java.lang.String namespaceURI = qname.getNamespaceURI();
-            if (namespaceURI != null) {
-                java.lang.String prefix = xmlWriter.getPrefix(namespaceURI);
-                if (prefix == null) {
-                    prefix = generatePrefix(namespaceURI);
-                    xmlWriter.writeNamespace(prefix, namespaceURI);
-                    xmlWriter.setPrefix(prefix,namespaceURI);
-                }
-
-                if (prefix.trim().length() > 0){
-                    xmlWriter.writeCharacters(prefix + ":" + org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                } else {
-                    // i.e this is the default namespace
-                    xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                }
-
-            } else {
-                xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-            }
-        }
-
-        private void writeQNames(javax.xml.namespace.QName[] qnames,
-                                 javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-            if (qnames != null) {
-                // we have to store this data until last moment since it is not possible to write any
-                // namespace data after writing the charactor data
-                java.lang.StringBuffer stringToWrite = new java.lang.StringBuffer();
-                java.lang.String namespaceURI = null;
-                java.lang.String prefix = null;
-
-                for (int i = 0; i < qnames.length; i++) {
-                    if (i > 0) {
-                        stringToWrite.append(" ");
-                    }
-                    namespaceURI = qnames[i].getNamespaceURI();
-                    if (namespaceURI != null) {
-                        prefix = xmlWriter.getPrefix(namespaceURI);
-                        if ((prefix == null) || (prefix.length() == 0)) {
-                            prefix = generatePrefix(namespaceURI);
-                            xmlWriter.writeNamespace(prefix, namespaceURI);
-                            xmlWriter.setPrefix(prefix,namespaceURI);
-                        }
-
-                        if (prefix.trim().length() > 0){
-                            stringToWrite.append(prefix).append(":").append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        } else {
-                            stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        }
-                    } else {
-                        stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                    }
-                }
-                xmlWriter.writeCharacters(stringToWrite.toString());
-            }
-
-        }
-
-
-         /**
-         * Register a namespace prefix
-         */
-         private java.lang.String registerPrefix(javax.xml.stream.XMLStreamWriter xmlWriter, java.lang.String namespace) throws javax.xml.stream.XMLStreamException {
-                java.lang.String prefix = xmlWriter.getPrefix(namespace);
-
-                if (prefix == null) {
-                    prefix = generatePrefix(namespace);
-                    javax.xml.namespace.NamespaceContext nsContext = xmlWriter.getNamespaceContext();
-                    while (true) {
-                        java.lang.String uri = nsContext.getNamespaceURI(prefix);
-                        if (uri == null || uri.length() == 0) {
-                            break;
-                        }
-                        prefix = org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-                    }
-                    xmlWriter.writeNamespace(prefix, namespace);
-                    xmlWriter.setPrefix(prefix, namespace);
-                }
-
-                return prefix;
-            }
-
-
-  
-     /**
-      *  Factory class that keeps the parse method
-      */
-    public static class Factory{
-
-        
-        
-                public static GMonth fromString(java.lang.String value,
-                                                    java.lang.String namespaceURI){
-                    GMonth returnValue = new  GMonth();
-                    
-                            returnValue.setGMonth(
-                                org.apache.axis2.databinding.utils.ConverterUtil.convertToGMonth(value));
-                        
-
-                    return returnValue;
-                }
-
-                public static GMonth fromString(javax.xml.stream.XMLStreamReader xmlStreamReader,
-                                                                    java.lang.String content) {
-                    if (content.indexOf(":") > -1){
-                        java.lang.String prefix = content.substring(0,content.indexOf(":"));
-                        java.lang.String namespaceUri = xmlStreamReader.getNamespaceContext().getNamespaceURI(prefix);
-                        return GMonth.Factory.fromString(content,namespaceUri);
-                    } else {
-                       return GMonth.Factory.fromString(content,"");
-                    }
-                }
-
-            
-
-        /**
-        * static method to create the object
-        * Precondition:  If this object is an element, the current or next start element starts this object and any intervening reader events are ignorable
-        *                If this object is not an element, it is a complex type and the reader is at the event just after the outer start element
-        * Postcondition: If this object is an element, the reader is positioned at its end element
-        *                If this object is a complex type, the reader is positioned at the end element of its outer element
-        */
-        public static GMonth parse(javax.xml.stream.XMLStreamReader reader) throws java.lang.Exception{
-            GMonth object =
-                new GMonth();
-
-            int event;
-            java.lang.String nillableValue = null;
-            java.lang.String prefix ="";
-            java.lang.String namespaceuri ="";
-            try {
-                
-                while (!reader.isStartElement() && !reader.isEndElement())
-                    reader.next();
-
-                
-                if (reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance","type")!=null){
-                  java.lang.String fullTypeName = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance",
-                        "type");
-                  if (fullTypeName!=null){
-                    java.lang.String nsPrefix = null;
-                    if (fullTypeName.indexOf(":") > -1){
-                        nsPrefix = fullTypeName.substring(0,fullTypeName.indexOf(":"));
-                    }
-                    nsPrefix = nsPrefix==null?"":nsPrefix;
-
-                    java.lang.String type = fullTypeName.substring(fullTypeName.indexOf(":")+1);
-                    
-                            if (!"gMonth".equals(type)){
-                                //find namespace for the prefix
-                                java.lang.String nsUri = reader.getNamespaceContext().getNamespaceURI(nsPrefix);
-                                return (GMonth)org.apache.axis2.databinding.types.xsd.ExtensionMapper.getTypeObject(
-                                     nsUri,type,reader);
-                              }
-                        
-
-                  }
-                
-
-                }
-
-                
-
-                
-                // Note all attributes that were handled. Used to differ normal attributes
-                // from anyAttributes.
-                java.util.Vector handledAttributes = new java.util.Vector();
-                
-
-                    
-                while(!reader.isEndElement()) {
-                    if (reader.isStartElement()  || reader.hasText()){
-                
-                                    if (reader.isStartElement()  || reader.hasText()){
-                                
-                                    java.lang.String content = reader.getElementText();
-                                    
-                                              object.setGMonth(
-                                                    org.apache.axis2.databinding.utils.ConverterUtil.convertToGMonth(content));
-                                            
-                              }  // End of if for expected property start element
-                                
-                             else{
-                                        // A start element we are not expecting indicates an invalid parameter was passed
-                                        throw new org.apache.axis2.databinding.ADBException("Unexpected subelement " + reader.getLocalName());
-                             }
-                          
-                             } else {
-                                reader.next();
-                             }  
-                           }  // end of while loop
-                        
-
-
-
-            } catch (javax.xml.stream.XMLStreamException e) {
-                throw new java.lang.Exception(e);
-            }
-
-            return object;
-        }
-
-        }//end of factory class
-
-        
-
-        }
-           
-          
\ No newline at end of file
diff --git a/modules/adb/src/org/apache/axis2/databinding/types/xsd/GMonthDay.java b/modules/adb/src/org/apache/axis2/databinding/types/xsd/GMonthDay.java
deleted file mode 100644
index 84df9b1..0000000
--- a/modules/adb/src/org/apache/axis2/databinding/types/xsd/GMonthDay.java
+++ /dev/null
@@ -1,469 +0,0 @@
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/**
- * GMonthDay.java
- *
- * This file was auto-generated from WSDL
- * by the Apache Axis2 version: SNAPSHOT  Built on : Dec 21, 2007 (04:03:30 LKT)
- */
-            
-                package org.apache.axis2.databinding.types.xsd;
-
-import javax.xml.stream.XMLStreamWriter;
-            
-
-            /**
-            *  GMonthDay bean class
-            */
-        
-        public  class GMonthDay
-        implements org.apache.axis2.databinding.ADBBean{
-        /* This type was generated from the piece of schema that had
-                name = gMonthDay
-                Namespace URI = http://www.w3.org/2001/XMLSchema
-                Namespace Prefix = ns1
-                */
-            
-
-        private static java.lang.String generatePrefix(java.lang.String namespace) {
-            if(namespace.equals("http://www.w3.org/2001/XMLSchema")){
-                return "xsd";
-            }
-            return org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-        }
-
-        
-
-                        /**
-                        * field for GMonthDay
-                        */
-
-                        
-                                    protected org.apache.axis2.databinding.types.MonthDay localGMonthDay ;
-                                
-
-                           /**
-                           * Auto generated getter method
-                           * @return org.apache.axis2.databinding.types.MonthDay
-                           */
-                           public  org.apache.axis2.databinding.types.MonthDay getGMonthDay(){
-                               return localGMonthDay;
-                           }
-
-                           
-                        
-                            /**
-                               * Auto generated setter method
-                               * @param param GMonthDay
-                               */
-                               public void setGMonthDay(org.apache.axis2.databinding.types.MonthDay param){
-                            
-                                            this.localGMonthDay=param;
-                                    
-
-                               }
-                            
-
-                            public java.lang.String toString(){
-                                
-                                        return localGMonthDay.toString();
-                                    
-                            }
-                        
-
-     /**
-     * isReaderMTOMAware
-     * @return true if the reader supports MTOM
-     */
-   public static boolean isReaderMTOMAware(javax.xml.stream.XMLStreamReader reader) {
-        boolean isReaderMTOMAware = false;
-        
-        try{
-          isReaderMTOMAware = java.lang.Boolean.TRUE.equals(reader.getProperty(org.apache.axiom.om.OMConstants.IS_DATA_HANDLERS_AWARE));
-        }catch(java.lang.IllegalArgumentException e){
-          isReaderMTOMAware = false;
-        }
-        return isReaderMTOMAware;
-   }
-     
-     
-        /**
-        *
-        * @param parentQName
-        * @param factory
-        * @return org.apache.axiom.om.OMElement
-        */
-       public org.apache.axiom.om.OMElement getOMElement (
-               final javax.xml.namespace.QName parentQName,
-               final org.apache.axiom.om.OMFactory factory) throws org.apache.axis2.databinding.ADBException{
-
-
-        
-               org.apache.axiom.om.OMDataSource dataSource =
-                       new org.apache.axis2.databinding.ADBDataSource(this,parentQName);
-               return factory.createOMElement(dataSource,parentQName);
-            
-       }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                                       XMLStreamWriter xmlWriter)
-                                throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-                           serialize(parentQName,xmlWriter,false);
-         }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                               XMLStreamWriter xmlWriter,
-                               boolean serializeType)
-            throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-            
-                
-
-
-                java.lang.String prefix = null;
-                java.lang.String namespace = null;
-                
-
-                    prefix = parentQName.getPrefix();
-                    namespace = parentQName.getNamespaceURI();
-
-                    if ((namespace != null) && (namespace.trim().length() > 0)) {
-                        java.lang.String writerPrefix = xmlWriter.getPrefix(namespace);
-                        if (writerPrefix != null) {
-                            xmlWriter.writeStartElement(namespace, parentQName.getLocalPart());
-                        } else {
-                            if (prefix == null) {
-                                prefix = generatePrefix(namespace);
-                            }
-
-                            xmlWriter.writeStartElement(prefix, parentQName.getLocalPart(), namespace);
-                            xmlWriter.writeNamespace(prefix, namespace);
-                            xmlWriter.setPrefix(prefix, namespace);
-                        }
-                    } else {
-                        xmlWriter.writeStartElement(parentQName.getLocalPart());
-                    }
-                
-                  if (serializeType){
-               
-                   java.lang.String namespacePrefix = registerPrefix(xmlWriter,"http://www.w3.org/2001/XMLSchema");
-                   if ((namespacePrefix != null) && (namespacePrefix.trim().length() > 0)){
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           namespacePrefix+":gMonthDay",
-                           xmlWriter);
-                   } else {
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           "gMonthDay",
-                           xmlWriter);
-                   }
-
-               
-                   }
-               
-
-                                          if (localGMonthDay==null){
-                                              // write the nil attribute
-                                              
-                                                     throw new org.apache.axis2.databinding.ADBException("gMonthDay cannot be null!!");
-                                                  
-                                          }else{
-
-                                        
-                                                   xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(localGMonthDay));
-                                            
-                                          }
-                                    
-                    xmlWriter.writeEndElement();
-               
-
-        }
-
-         /**
-          * Util method to write an attribute with the ns prefix
-          */
-          private void writeAttribute(java.lang.String prefix,java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-              if (xmlWriter.getPrefix(namespace) == null) {
-                       xmlWriter.writeNamespace(prefix, namespace);
-                       xmlWriter.setPrefix(prefix, namespace);
-
-              }
-
-              xmlWriter.writeAttribute(namespace,attName,attValue);
-
-         }
-
-        /**
-          * Util method to write an attribute without the ns prefix
-          */
-          private void writeAttribute(java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-                if (namespace.equals(""))
-              {
-                  xmlWriter.writeAttribute(attName,attValue);
-              }
-              else
-              {
-                  registerPrefix(xmlWriter, namespace);
-                  xmlWriter.writeAttribute(namespace,attName,attValue);
-              }
-          }
-
-
-           /**
-             * Util method to write an attribute without the ns prefix
-             */
-            private void writeQNameAttribute(java.lang.String namespace, java.lang.String attName,
-                                             javax.xml.namespace.QName qname, javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-                java.lang.String attributeNamespace = qname.getNamespaceURI();
-                java.lang.String attributePrefix = xmlWriter.getPrefix(attributeNamespace);
-                if (attributePrefix == null) {
-                    attributePrefix = registerPrefix(xmlWriter, attributeNamespace);
-                }
-                java.lang.String attributeValue;
-                if (attributePrefix.trim().length() > 0) {
-                    attributeValue = attributePrefix + ":" + qname.getLocalPart();
-                } else {
-                    attributeValue = qname.getLocalPart();
-                }
-
-                if (namespace.equals("")) {
-                    xmlWriter.writeAttribute(attName, attributeValue);
-                } else {
-                    registerPrefix(xmlWriter, namespace);
-                    xmlWriter.writeAttribute(namespace, attName, attributeValue);
-                }
-            }
-        /**
-         *  method to handle Qnames
-         */
-
-        private void writeQName(javax.xml.namespace.QName qname,
-                                javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-            java.lang.String namespaceURI = qname.getNamespaceURI();
-            if (namespaceURI != null) {
-                java.lang.String prefix = xmlWriter.getPrefix(namespaceURI);
-                if (prefix == null) {
-                    prefix = generatePrefix(namespaceURI);
-                    xmlWriter.writeNamespace(prefix, namespaceURI);
-                    xmlWriter.setPrefix(prefix,namespaceURI);
-                }
-
-                if (prefix.trim().length() > 0){
-                    xmlWriter.writeCharacters(prefix + ":" + org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                } else {
-                    // i.e this is the default namespace
-                    xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                }
-
-            } else {
-                xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-            }
-        }
-
-        private void writeQNames(javax.xml.namespace.QName[] qnames,
-                                 javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-            if (qnames != null) {
-                // we have to store this data until last moment since it is not possible to write any
-                // namespace data after writing the charactor data
-                java.lang.StringBuffer stringToWrite = new java.lang.StringBuffer();
-                java.lang.String namespaceURI = null;
-                java.lang.String prefix = null;
-
-                for (int i = 0; i < qnames.length; i++) {
-                    if (i > 0) {
-                        stringToWrite.append(" ");
-                    }
-                    namespaceURI = qnames[i].getNamespaceURI();
-                    if (namespaceURI != null) {
-                        prefix = xmlWriter.getPrefix(namespaceURI);
-                        if ((prefix == null) || (prefix.length() == 0)) {
-                            prefix = generatePrefix(namespaceURI);
-                            xmlWriter.writeNamespace(prefix, namespaceURI);
-                            xmlWriter.setPrefix(prefix,namespaceURI);
-                        }
-
-                        if (prefix.trim().length() > 0){
-                            stringToWrite.append(prefix).append(":").append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        } else {
-                            stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        }
-                    } else {
-                        stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                    }
-                }
-                xmlWriter.writeCharacters(stringToWrite.toString());
-            }
-
-        }
-
-
-         /**
-         * Register a namespace prefix
-         */
-         private java.lang.String registerPrefix(javax.xml.stream.XMLStreamWriter xmlWriter, java.lang.String namespace) throws javax.xml.stream.XMLStreamException {
-                java.lang.String prefix = xmlWriter.getPrefix(namespace);
-
-                if (prefix == null) {
-                    prefix = generatePrefix(namespace);
-                    javax.xml.namespace.NamespaceContext nsContext = xmlWriter.getNamespaceContext();
-                    while (true) {
-                        java.lang.String uri = nsContext.getNamespaceURI(prefix);
-                        if (uri == null || uri.length() == 0) {
-                            break;
-                        }
-                        prefix = org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-                    }
-                    xmlWriter.writeNamespace(prefix, namespace);
-                    xmlWriter.setPrefix(prefix, namespace);
-                }
-
-                return prefix;
-            }
-
-
-  
-     /**
-      *  Factory class that keeps the parse method
-      */
-    public static class Factory{
-
-        
-        
-                public static GMonthDay fromString(java.lang.String value,
-                                                    java.lang.String namespaceURI){
-                    GMonthDay returnValue = new  GMonthDay();
-                    
-                            returnValue.setGMonthDay(
-                                org.apache.axis2.databinding.utils.ConverterUtil.convertToGMonthDay(value));
-                        
-
-                    return returnValue;
-                }
-
-                public static GMonthDay fromString(javax.xml.stream.XMLStreamReader xmlStreamReader,
-                                                                    java.lang.String content) {
-                    if (content.indexOf(":") > -1){
-                        java.lang.String prefix = content.substring(0,content.indexOf(":"));
-                        java.lang.String namespaceUri = xmlStreamReader.getNamespaceContext().getNamespaceURI(prefix);
-                        return GMonthDay.Factory.fromString(content,namespaceUri);
-                    } else {
-                       return GMonthDay.Factory.fromString(content,"");
-                    }
-                }
-
-            
-
-        /**
-        * static method to create the object
-        * Precondition:  If this object is an element, the current or next start element starts this object and any intervening reader events are ignorable
-        *                If this object is not an element, it is a complex type and the reader is at the event just after the outer start element
-        * Postcondition: If this object is an element, the reader is positioned at its end element
-        *                If this object is a complex type, the reader is positioned at the end element of its outer element
-        */
-        public static GMonthDay parse(javax.xml.stream.XMLStreamReader reader) throws java.lang.Exception{
-            GMonthDay object =
-                new GMonthDay();
-
-            int event;
-            java.lang.String nillableValue = null;
-            java.lang.String prefix ="";
-            java.lang.String namespaceuri ="";
-            try {
-                
-                while (!reader.isStartElement() && !reader.isEndElement())
-                    reader.next();
-
-                
-                if (reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance","type")!=null){
-                  java.lang.String fullTypeName = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance",
-                        "type");
-                  if (fullTypeName!=null){
-                    java.lang.String nsPrefix = null;
-                    if (fullTypeName.indexOf(":") > -1){
-                        nsPrefix = fullTypeName.substring(0,fullTypeName.indexOf(":"));
-                    }
-                    nsPrefix = nsPrefix==null?"":nsPrefix;
-
-                    java.lang.String type = fullTypeName.substring(fullTypeName.indexOf(":")+1);
-                    
-                            if (!"gMonthDay".equals(type)){
-                                //find namespace for the prefix
-                                java.lang.String nsUri = reader.getNamespaceContext().getNamespaceURI(nsPrefix);
-                                return (GMonthDay)org.apache.axis2.databinding.types.xsd.ExtensionMapper.getTypeObject(
-                                     nsUri,type,reader);
-                              }
-                        
-
-                  }
-                
-
-                }
-
-                
-
-                
-                // Note all attributes that were handled. Used to differ normal attributes
-                // from anyAttributes.
-                java.util.Vector handledAttributes = new java.util.Vector();
-                
-
-                    
-                while(!reader.isEndElement()) {
-                    if (reader.isStartElement()  || reader.hasText()){
-                
-                                    if (reader.isStartElement()  || reader.hasText()){
-                                
-                                    java.lang.String content = reader.getElementText();
-                                    
-                                              object.setGMonthDay(
-                                                    org.apache.axis2.databinding.utils.ConverterUtil.convertToGMonthDay(content));
-                                            
-                              }  // End of if for expected property start element
-                                
-                             else{
-                                        // A start element we are not expecting indicates an invalid parameter was passed
-                                        throw new org.apache.axis2.databinding.ADBException("Unexpected subelement " + reader.getLocalName());
-                             }
-                          
-                             } else {
-                                reader.next();
-                             }  
-                           }  // end of while loop
-                        
-
-
-
-            } catch (javax.xml.stream.XMLStreamException e) {
-                throw new java.lang.Exception(e);
-            }
-
-            return object;
-        }
-
-        }//end of factory class
-
-        
-
-        }
-           
-          
\ No newline at end of file
diff --git a/modules/adb/src/org/apache/axis2/databinding/types/xsd/GYear.java b/modules/adb/src/org/apache/axis2/databinding/types/xsd/GYear.java
deleted file mode 100644
index 6119300..0000000
--- a/modules/adb/src/org/apache/axis2/databinding/types/xsd/GYear.java
+++ /dev/null
@@ -1,469 +0,0 @@
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/**
- * GYear.java
- *
- * This file was auto-generated from WSDL
- * by the Apache Axis2 version: SNAPSHOT  Built on : Dec 21, 2007 (04:03:30 LKT)
- */
-            
-                package org.apache.axis2.databinding.types.xsd;
-
-import javax.xml.stream.XMLStreamWriter;
-            
-
-            /**
-            *  GYear bean class
-            */
-        
-        public  class GYear
-        implements org.apache.axis2.databinding.ADBBean{
-        /* This type was generated from the piece of schema that had
-                name = gYear
-                Namespace URI = http://www.w3.org/2001/XMLSchema
-                Namespace Prefix = ns1
-                */
-            
-
-        private static java.lang.String generatePrefix(java.lang.String namespace) {
-            if(namespace.equals("http://www.w3.org/2001/XMLSchema")){
-                return "xsd";
-            }
-            return org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-        }
-
-        
-
-                        /**
-                        * field for GYear
-                        */
-
-                        
-                                    protected org.apache.axis2.databinding.types.Year localGYear ;
-                                
-
-                           /**
-                           * Auto generated getter method
-                           * @return org.apache.axis2.databinding.types.Year
-                           */
-                           public  org.apache.axis2.databinding.types.Year getGYear(){
-                               return localGYear;
-                           }
-
-                           
-                        
-                            /**
-                               * Auto generated setter method
-                               * @param param GYear
-                               */
-                               public void setGYear(org.apache.axis2.databinding.types.Year param){
-                            
-                                            this.localGYear=param;
-                                    
-
-                               }
-                            
-
-                            public java.lang.String toString(){
-                                
-                                        return localGYear.toString();
-                                    
-                            }
-                        
-
-     /**
-     * isReaderMTOMAware
-     * @return true if the reader supports MTOM
-     */
-   public static boolean isReaderMTOMAware(javax.xml.stream.XMLStreamReader reader) {
-        boolean isReaderMTOMAware = false;
-        
-        try{
-          isReaderMTOMAware = java.lang.Boolean.TRUE.equals(reader.getProperty(org.apache.axiom.om.OMConstants.IS_DATA_HANDLERS_AWARE));
-        }catch(java.lang.IllegalArgumentException e){
-          isReaderMTOMAware = false;
-        }
-        return isReaderMTOMAware;
-   }
-     
-     
-        /**
-        *
-        * @param parentQName
-        * @param factory
-        * @return org.apache.axiom.om.OMElement
-        */
-       public org.apache.axiom.om.OMElement getOMElement (
-               final javax.xml.namespace.QName parentQName,
-               final org.apache.axiom.om.OMFactory factory) throws org.apache.axis2.databinding.ADBException{
-
-
-        
-               org.apache.axiom.om.OMDataSource dataSource =
-                       new org.apache.axis2.databinding.ADBDataSource(this,parentQName);
-               return factory.createOMElement(dataSource,parentQName);
-            
-       }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                                       XMLStreamWriter xmlWriter)
-                                throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-                           serialize(parentQName,xmlWriter,false);
-         }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                               XMLStreamWriter xmlWriter,
-                               boolean serializeType)
-            throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-            
-                
-
-
-                java.lang.String prefix = null;
-                java.lang.String namespace = null;
-                
-
-                    prefix = parentQName.getPrefix();
-                    namespace = parentQName.getNamespaceURI();
-
-                    if ((namespace != null) && (namespace.trim().length() > 0)) {
-                        java.lang.String writerPrefix = xmlWriter.getPrefix(namespace);
-                        if (writerPrefix != null) {
-                            xmlWriter.writeStartElement(namespace, parentQName.getLocalPart());
-                        } else {
-                            if (prefix == null) {
-                                prefix = generatePrefix(namespace);
-                            }
-
-                            xmlWriter.writeStartElement(prefix, parentQName.getLocalPart(), namespace);
-                            xmlWriter.writeNamespace(prefix, namespace);
-                            xmlWriter.setPrefix(prefix, namespace);
-                        }
-                    } else {
-                        xmlWriter.writeStartElement(parentQName.getLocalPart());
-                    }
-                
-                  if (serializeType){
-               
-                   java.lang.String namespacePrefix = registerPrefix(xmlWriter,"http://www.w3.org/2001/XMLSchema");
-                   if ((namespacePrefix != null) && (namespacePrefix.trim().length() > 0)){
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           namespacePrefix+":gYear",
-                           xmlWriter);
-                   } else {
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           "gYear",
-                           xmlWriter);
-                   }
-
-               
-                   }
-               
-
-                                          if (localGYear==null){
-                                              // write the nil attribute
-                                              
-                                                     throw new org.apache.axis2.databinding.ADBException("gYear cannot be null!!");
-                                                  
-                                          }else{
-
-                                        
-                                                   xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(localGYear));
-                                            
-                                          }
-                                    
-                    xmlWriter.writeEndElement();
-               
-
-        }
-
-         /**
-          * Util method to write an attribute with the ns prefix
-          */
-          private void writeAttribute(java.lang.String prefix,java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-              if (xmlWriter.getPrefix(namespace) == null) {
-                       xmlWriter.writeNamespace(prefix, namespace);
-                       xmlWriter.setPrefix(prefix, namespace);
-
-              }
-
-              xmlWriter.writeAttribute(namespace,attName,attValue);
-
-         }
-
-        /**
-          * Util method to write an attribute without the ns prefix
-          */
-          private void writeAttribute(java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-                if (namespace.equals(""))
-              {
-                  xmlWriter.writeAttribute(attName,attValue);
-              }
-              else
-              {
-                  registerPrefix(xmlWriter, namespace);
-                  xmlWriter.writeAttribute(namespace,attName,attValue);
-              }
-          }
-
-
-           /**
-             * Util method to write an attribute without the ns prefix
-             */
-            private void writeQNameAttribute(java.lang.String namespace, java.lang.String attName,
-                                             javax.xml.namespace.QName qname, javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-                java.lang.String attributeNamespace = qname.getNamespaceURI();
-                java.lang.String attributePrefix = xmlWriter.getPrefix(attributeNamespace);
-                if (attributePrefix == null) {
-                    attributePrefix = registerPrefix(xmlWriter, attributeNamespace);
-                }
-                java.lang.String attributeValue;
-                if (attributePrefix.trim().length() > 0) {
-                    attributeValue = attributePrefix + ":" + qname.getLocalPart();
-                } else {
-                    attributeValue = qname.getLocalPart();
-                }
-
-                if (namespace.equals("")) {
-                    xmlWriter.writeAttribute(attName, attributeValue);
-                } else {
-                    registerPrefix(xmlWriter, namespace);
-                    xmlWriter.writeAttribute(namespace, attName, attributeValue);
-                }
-            }
-        /**
-         *  method to handle Qnames
-         */
-
-        private void writeQName(javax.xml.namespace.QName qname,
-                                javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-            java.lang.String namespaceURI = qname.getNamespaceURI();
-            if (namespaceURI != null) {
-                java.lang.String prefix = xmlWriter.getPrefix(namespaceURI);
-                if (prefix == null) {
-                    prefix = generatePrefix(namespaceURI);
-                    xmlWriter.writeNamespace(prefix, namespaceURI);
-                    xmlWriter.setPrefix(prefix,namespaceURI);
-                }
-
-                if (prefix.trim().length() > 0){
-                    xmlWriter.writeCharacters(prefix + ":" + org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                } else {
-                    // i.e this is the default namespace
-                    xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                }
-
-            } else {
-                xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-            }
-        }
-
-        private void writeQNames(javax.xml.namespace.QName[] qnames,
-                                 javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-            if (qnames != null) {
-                // we have to store this data until last moment since it is not possible to write any
-                // namespace data after writing the charactor data
-                java.lang.StringBuffer stringToWrite = new java.lang.StringBuffer();
-                java.lang.String namespaceURI = null;
-                java.lang.String prefix = null;
-
-                for (int i = 0; i < qnames.length; i++) {
-                    if (i > 0) {
-                        stringToWrite.append(" ");
-                    }
-                    namespaceURI = qnames[i].getNamespaceURI();
-                    if (namespaceURI != null) {
-                        prefix = xmlWriter.getPrefix(namespaceURI);
-                        if ((prefix == null) || (prefix.length() == 0)) {
-                            prefix = generatePrefix(namespaceURI);
-                            xmlWriter.writeNamespace(prefix, namespaceURI);
-                            xmlWriter.setPrefix(prefix,namespaceURI);
-                        }
-
-                        if (prefix.trim().length() > 0){
-                            stringToWrite.append(prefix).append(":").append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        } else {
-                            stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        }
-                    } else {
-                        stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                    }
-                }
-                xmlWriter.writeCharacters(stringToWrite.toString());
-            }
-
-        }
-
-
-         /**
-         * Register a namespace prefix
-         */
-         private java.lang.String registerPrefix(javax.xml.stream.XMLStreamWriter xmlWriter, java.lang.String namespace) throws javax.xml.stream.XMLStreamException {
-                java.lang.String prefix = xmlWriter.getPrefix(namespace);
-
-                if (prefix == null) {
-                    prefix = generatePrefix(namespace);
-                    javax.xml.namespace.NamespaceContext nsContext = xmlWriter.getNamespaceContext();
-                    while (true) {
-                        java.lang.String uri = nsContext.getNamespaceURI(prefix);
-                        if (uri == null || uri.length() == 0) {
-                            break;
-                        }
-                        prefix = org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-                    }
-                    xmlWriter.writeNamespace(prefix, namespace);
-                    xmlWriter.setPrefix(prefix, namespace);
-                }
-
-                return prefix;
-            }
-
-
-  
-     /**
-      *  Factory class that keeps the parse method
-      */
-    public static class Factory{
-
-        
-        
-                public static GYear fromString(java.lang.String value,
-                                                    java.lang.String namespaceURI){
-                    GYear returnValue = new  GYear();
-                    
-                            returnValue.setGYear(
-                                org.apache.axis2.databinding.utils.ConverterUtil.convertToGYear(value));
-                        
-
-                    return returnValue;
-                }
-
-                public static GYear fromString(javax.xml.stream.XMLStreamReader xmlStreamReader,
-                                                                    java.lang.String content) {
-                    if (content.indexOf(":") > -1){
-                        java.lang.String prefix = content.substring(0,content.indexOf(":"));
-                        java.lang.String namespaceUri = xmlStreamReader.getNamespaceContext().getNamespaceURI(prefix);
-                        return GYear.Factory.fromString(content,namespaceUri);
-                    } else {
-                       return GYear.Factory.fromString(content,"");
-                    }
-                }
-
-            
-
-        /**
-        * static method to create the object
-        * Precondition:  If this object is an element, the current or next start element starts this object and any intervening reader events are ignorable
-        *                If this object is not an element, it is a complex type and the reader is at the event just after the outer start element
-        * Postcondition: If this object is an element, the reader is positioned at its end element
-        *                If this object is a complex type, the reader is positioned at the end element of its outer element
-        */
-        public static GYear parse(javax.xml.stream.XMLStreamReader reader) throws java.lang.Exception{
-            GYear object =
-                new GYear();
-
-            int event;
-            java.lang.String nillableValue = null;
-            java.lang.String prefix ="";
-            java.lang.String namespaceuri ="";
-            try {
-                
-                while (!reader.isStartElement() && !reader.isEndElement())
-                    reader.next();
-
-                
-                if (reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance","type")!=null){
-                  java.lang.String fullTypeName = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance",
-                        "type");
-                  if (fullTypeName!=null){
-                    java.lang.String nsPrefix = null;
-                    if (fullTypeName.indexOf(":") > -1){
-                        nsPrefix = fullTypeName.substring(0,fullTypeName.indexOf(":"));
-                    }
-                    nsPrefix = nsPrefix==null?"":nsPrefix;
-
-                    java.lang.String type = fullTypeName.substring(fullTypeName.indexOf(":")+1);
-                    
-                            if (!"gYear".equals(type)){
-                                //find namespace for the prefix
-                                java.lang.String nsUri = reader.getNamespaceContext().getNamespaceURI(nsPrefix);
-                                return (GYear)org.apache.axis2.databinding.types.xsd.ExtensionMapper.getTypeObject(
-                                     nsUri,type,reader);
-                              }
-                        
-
-                  }
-                
-
-                }
-
-                
-
-                
-                // Note all attributes that were handled. Used to differ normal attributes
-                // from anyAttributes.
-                java.util.Vector handledAttributes = new java.util.Vector();
-                
-
-                    
-                while(!reader.isEndElement()) {
-                    if (reader.isStartElement()  || reader.hasText()){
-                
-                                    if (reader.isStartElement()  || reader.hasText()){
-                                
-                                    java.lang.String content = reader.getElementText();
-                                    
-                                              object.setGYear(
-                                                    org.apache.axis2.databinding.utils.ConverterUtil.convertToGYear(content));
-                                            
-                              }  // End of if for expected property start element
-                                
-                             else{
-                                        // A start element we are not expecting indicates an invalid parameter was passed
-                                        throw new org.apache.axis2.databinding.ADBException("Unexpected subelement " + reader.getLocalName());
-                             }
-                          
-                             } else {
-                                reader.next();
-                             }  
-                           }  // end of while loop
-                        
-
-
-
-            } catch (javax.xml.stream.XMLStreamException e) {
-                throw new java.lang.Exception(e);
-            }
-
-            return object;
-        }
-
-        }//end of factory class
-
-        
-
-        }
-           
-          
\ No newline at end of file
diff --git a/modules/adb/src/org/apache/axis2/databinding/types/xsd/GYearMonth.java b/modules/adb/src/org/apache/axis2/databinding/types/xsd/GYearMonth.java
deleted file mode 100644
index ab1dfab..0000000
--- a/modules/adb/src/org/apache/axis2/databinding/types/xsd/GYearMonth.java
+++ /dev/null
@@ -1,469 +0,0 @@
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/**
- * GYearMonth.java
- *
- * This file was auto-generated from WSDL
- * by the Apache Axis2 version: SNAPSHOT  Built on : Dec 21, 2007 (04:03:30 LKT)
- */
-            
-                package org.apache.axis2.databinding.types.xsd;
-
-import javax.xml.stream.XMLStreamWriter;
-            
-
-            /**
-            *  GYearMonth bean class
-            */
-        
-        public  class GYearMonth
-        implements org.apache.axis2.databinding.ADBBean{
-        /* This type was generated from the piece of schema that had
-                name = gYearMonth
-                Namespace URI = http://www.w3.org/2001/XMLSchema
-                Namespace Prefix = ns1
-                */
-            
-
-        private static java.lang.String generatePrefix(java.lang.String namespace) {
-            if(namespace.equals("http://www.w3.org/2001/XMLSchema")){
-                return "xsd";
-            }
-            return org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-        }
-
-        
-
-                        /**
-                        * field for GYearMonth
-                        */
-
-                        
-                                    protected org.apache.axis2.databinding.types.YearMonth localGYearMonth ;
-                                
-
-                           /**
-                           * Auto generated getter method
-                           * @return org.apache.axis2.databinding.types.YearMonth
-                           */
-                           public  org.apache.axis2.databinding.types.YearMonth getGYearMonth(){
-                               return localGYearMonth;
-                           }
-
-                           
-                        
-                            /**
-                               * Auto generated setter method
-                               * @param param GYearMonth
-                               */
-                               public void setGYearMonth(org.apache.axis2.databinding.types.YearMonth param){
-                            
-                                            this.localGYearMonth=param;
-                                    
-
-                               }
-                            
-
-                            public java.lang.String toString(){
-                                
-                                        return localGYearMonth.toString();
-                                    
-                            }
-                        
-
-     /**
-     * isReaderMTOMAware
-     * @return true if the reader supports MTOM
-     */
-   public static boolean isReaderMTOMAware(javax.xml.stream.XMLStreamReader reader) {
-        boolean isReaderMTOMAware = false;
-        
-        try{
-          isReaderMTOMAware = java.lang.Boolean.TRUE.equals(reader.getProperty(org.apache.axiom.om.OMConstants.IS_DATA_HANDLERS_AWARE));
-        }catch(java.lang.IllegalArgumentException e){
-          isReaderMTOMAware = false;
-        }
-        return isReaderMTOMAware;
-   }
-     
-     
-        /**
-        *
-        * @param parentQName
-        * @param factory
-        * @return org.apache.axiom.om.OMElement
-        */
-       public org.apache.axiom.om.OMElement getOMElement (
-               final javax.xml.namespace.QName parentQName,
-               final org.apache.axiom.om.OMFactory factory) throws org.apache.axis2.databinding.ADBException{
-
-
-        
-               org.apache.axiom.om.OMDataSource dataSource =
-                       new org.apache.axis2.databinding.ADBDataSource(this,parentQName);
-               return factory.createOMElement(dataSource,parentQName);
-            
-       }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                                       XMLStreamWriter xmlWriter)
-                                throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-                           serialize(parentQName,xmlWriter,false);
-         }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                               XMLStreamWriter xmlWriter,
-                               boolean serializeType)
-            throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-            
-                
-
-
-                java.lang.String prefix = null;
-                java.lang.String namespace = null;
-                
-
-                    prefix = parentQName.getPrefix();
-                    namespace = parentQName.getNamespaceURI();
-
-                    if ((namespace != null) && (namespace.trim().length() > 0)) {
-                        java.lang.String writerPrefix = xmlWriter.getPrefix(namespace);
-                        if (writerPrefix != null) {
-                            xmlWriter.writeStartElement(namespace, parentQName.getLocalPart());
-                        } else {
-                            if (prefix == null) {
-                                prefix = generatePrefix(namespace);
-                            }
-
-                            xmlWriter.writeStartElement(prefix, parentQName.getLocalPart(), namespace);
-                            xmlWriter.writeNamespace(prefix, namespace);
-                            xmlWriter.setPrefix(prefix, namespace);
-                        }
-                    } else {
-                        xmlWriter.writeStartElement(parentQName.getLocalPart());
-                    }
-                
-                  if (serializeType){
-               
-                   java.lang.String namespacePrefix = registerPrefix(xmlWriter,"http://www.w3.org/2001/XMLSchema");
-                   if ((namespacePrefix != null) && (namespacePrefix.trim().length() > 0)){
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           namespacePrefix+":gYearMonth",
-                           xmlWriter);
-                   } else {
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           "gYearMonth",
-                           xmlWriter);
-                   }
-
-               
-                   }
-               
-
-                                          if (localGYearMonth==null){
-                                              // write the nil attribute
-                                              
-                                                     throw new org.apache.axis2.databinding.ADBException("gYearMonth cannot be null!!");
-                                                  
-                                          }else{
-
-                                        
-                                                   xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(localGYearMonth));
-                                            
-                                          }
-                                    
-                    xmlWriter.writeEndElement();
-               
-
-        }
-
-         /**
-          * Util method to write an attribute with the ns prefix
-          */
-          private void writeAttribute(java.lang.String prefix,java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-              if (xmlWriter.getPrefix(namespace) == null) {
-                       xmlWriter.writeNamespace(prefix, namespace);
-                       xmlWriter.setPrefix(prefix, namespace);
-
-              }
-
-              xmlWriter.writeAttribute(namespace,attName,attValue);
-
-         }
-
-        /**
-          * Util method to write an attribute without the ns prefix
-          */
-          private void writeAttribute(java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-                if (namespace.equals(""))
-              {
-                  xmlWriter.writeAttribute(attName,attValue);
-              }
-              else
-              {
-                  registerPrefix(xmlWriter, namespace);
-                  xmlWriter.writeAttribute(namespace,attName,attValue);
-              }
-          }
-
-
-           /**
-             * Util method to write an attribute without the ns prefix
-             */
-            private void writeQNameAttribute(java.lang.String namespace, java.lang.String attName,
-                                             javax.xml.namespace.QName qname, javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-                java.lang.String attributeNamespace = qname.getNamespaceURI();
-                java.lang.String attributePrefix = xmlWriter.getPrefix(attributeNamespace);
-                if (attributePrefix == null) {
-                    attributePrefix = registerPrefix(xmlWriter, attributeNamespace);
-                }
-                java.lang.String attributeValue;
-                if (attributePrefix.trim().length() > 0) {
-                    attributeValue = attributePrefix + ":" + qname.getLocalPart();
-                } else {
-                    attributeValue = qname.getLocalPart();
-                }
-
-                if (namespace.equals("")) {
-                    xmlWriter.writeAttribute(attName, attributeValue);
-                } else {
-                    registerPrefix(xmlWriter, namespace);
-                    xmlWriter.writeAttribute(namespace, attName, attributeValue);
-                }
-            }
-        /**
-         *  method to handle Qnames
-         */
-
-        private void writeQName(javax.xml.namespace.QName qname,
-                                javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-            java.lang.String namespaceURI = qname.getNamespaceURI();
-            if (namespaceURI != null) {
-                java.lang.String prefix = xmlWriter.getPrefix(namespaceURI);
-                if (prefix == null) {
-                    prefix = generatePrefix(namespaceURI);
-                    xmlWriter.writeNamespace(prefix, namespaceURI);
-                    xmlWriter.setPrefix(prefix,namespaceURI);
-                }
-
-                if (prefix.trim().length() > 0){
-                    xmlWriter.writeCharacters(prefix + ":" + org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                } else {
-                    // i.e this is the default namespace
-                    xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                }
-
-            } else {
-                xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-            }
-        }
-
-        private void writeQNames(javax.xml.namespace.QName[] qnames,
-                                 javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-            if (qnames != null) {
-                // we have to store this data until last moment since it is not possible to write any
-                // namespace data after writing the charactor data
-                java.lang.StringBuffer stringToWrite = new java.lang.StringBuffer();
-                java.lang.String namespaceURI = null;
-                java.lang.String prefix = null;
-
-                for (int i = 0; i < qnames.length; i++) {
-                    if (i > 0) {
-                        stringToWrite.append(" ");
-                    }
-                    namespaceURI = qnames[i].getNamespaceURI();
-                    if (namespaceURI != null) {
-                        prefix = xmlWriter.getPrefix(namespaceURI);
-                        if ((prefix == null) || (prefix.length() == 0)) {
-                            prefix = generatePrefix(namespaceURI);
-                            xmlWriter.writeNamespace(prefix, namespaceURI);
-                            xmlWriter.setPrefix(prefix,namespaceURI);
-                        }
-
-                        if (prefix.trim().length() > 0){
-                            stringToWrite.append(prefix).append(":").append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        } else {
-                            stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        }
-                    } else {
-                        stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                    }
-                }
-                xmlWriter.writeCharacters(stringToWrite.toString());
-            }
-
-        }
-
-
-         /**
-         * Register a namespace prefix
-         */
-         private java.lang.String registerPrefix(javax.xml.stream.XMLStreamWriter xmlWriter, java.lang.String namespace) throws javax.xml.stream.XMLStreamException {
-                java.lang.String prefix = xmlWriter.getPrefix(namespace);
-
-                if (prefix == null) {
-                    prefix = generatePrefix(namespace);
-                    javax.xml.namespace.NamespaceContext nsContext = xmlWriter.getNamespaceContext();
-                    while (true) {
-                        java.lang.String uri = nsContext.getNamespaceURI(prefix);
-                        if (uri == null || uri.length() == 0) {
-                            break;
-                        }
-                        prefix = org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-                    }
-                    xmlWriter.writeNamespace(prefix, namespace);
-                    xmlWriter.setPrefix(prefix, namespace);
-                }
-
-                return prefix;
-            }
-
-
-  
-     /**
-      *  Factory class that keeps the parse method
-      */
-    public static class Factory{
-
-        
-        
-                public static GYearMonth fromString(java.lang.String value,
-                                                    java.lang.String namespaceURI){
-                    GYearMonth returnValue = new  GYearMonth();
-                    
-                            returnValue.setGYearMonth(
-                                org.apache.axis2.databinding.utils.ConverterUtil.convertToGYearMonth(value));
-                        
-
-                    return returnValue;
-                }
-
-                public static GYearMonth fromString(javax.xml.stream.XMLStreamReader xmlStreamReader,
-                                                                    java.lang.String content) {
-                    if (content.indexOf(":") > -1){
-                        java.lang.String prefix = content.substring(0,content.indexOf(":"));
-                        java.lang.String namespaceUri = xmlStreamReader.getNamespaceContext().getNamespaceURI(prefix);
-                        return GYearMonth.Factory.fromString(content,namespaceUri);
-                    } else {
-                       return GYearMonth.Factory.fromString(content,"");
-                    }
-                }
-
-            
-
-        /**
-        * static method to create the object
-        * Precondition:  If this object is an element, the current or next start element starts this object and any intervening reader events are ignorable
-        *                If this object is not an element, it is a complex type and the reader is at the event just after the outer start element
-        * Postcondition: If this object is an element, the reader is positioned at its end element
-        *                If this object is a complex type, the reader is positioned at the end element of its outer element
-        */
-        public static GYearMonth parse(javax.xml.stream.XMLStreamReader reader) throws java.lang.Exception{
-            GYearMonth object =
-                new GYearMonth();
-
-            int event;
-            java.lang.String nillableValue = null;
-            java.lang.String prefix ="";
-            java.lang.String namespaceuri ="";
-            try {
-                
-                while (!reader.isStartElement() && !reader.isEndElement())
-                    reader.next();
-
-                
-                if (reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance","type")!=null){
-                  java.lang.String fullTypeName = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance",
-                        "type");
-                  if (fullTypeName!=null){
-                    java.lang.String nsPrefix = null;
-                    if (fullTypeName.indexOf(":") > -1){
-                        nsPrefix = fullTypeName.substring(0,fullTypeName.indexOf(":"));
-                    }
-                    nsPrefix = nsPrefix==null?"":nsPrefix;
-
-                    java.lang.String type = fullTypeName.substring(fullTypeName.indexOf(":")+1);
-                    
-                            if (!"gYearMonth".equals(type)){
-                                //find namespace for the prefix
-                                java.lang.String nsUri = reader.getNamespaceContext().getNamespaceURI(nsPrefix);
-                                return (GYearMonth)org.apache.axis2.databinding.types.xsd.ExtensionMapper.getTypeObject(
-                                     nsUri,type,reader);
-                              }
-                        
-
-                  }
-                
-
-                }
-
-                
-
-                
-                // Note all attributes that were handled. Used to differ normal attributes
-                // from anyAttributes.
-                java.util.Vector handledAttributes = new java.util.Vector();
-                
-
-                    
-                while(!reader.isEndElement()) {
-                    if (reader.isStartElement()  || reader.hasText()){
-                
-                                    if (reader.isStartElement()  || reader.hasText()){
-                                
-                                    java.lang.String content = reader.getElementText();
-                                    
-                                              object.setGYearMonth(
-                                                    org.apache.axis2.databinding.utils.ConverterUtil.convertToGYearMonth(content));
-                                            
-                              }  // End of if for expected property start element
-                                
-                             else{
-                                        // A start element we are not expecting indicates an invalid parameter was passed
-                                        throw new org.apache.axis2.databinding.ADBException("Unexpected subelement " + reader.getLocalName());
-                             }
-                          
-                             } else {
-                                reader.next();
-                             }  
-                           }  // end of while loop
-                        
-
-
-
-            } catch (javax.xml.stream.XMLStreamException e) {
-                throw new java.lang.Exception(e);
-            }
-
-            return object;
-        }
-
-        }//end of factory class
-
-        
-
-        }
-           
-          
\ No newline at end of file
diff --git a/modules/adb/src/org/apache/axis2/databinding/types/xsd/HexBinary.java b/modules/adb/src/org/apache/axis2/databinding/types/xsd/HexBinary.java
deleted file mode 100644
index bf14f21..0000000
--- a/modules/adb/src/org/apache/axis2/databinding/types/xsd/HexBinary.java
+++ /dev/null
@@ -1,469 +0,0 @@
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/**
- * HexBinary.java
- *
- * This file was auto-generated from WSDL
- * by the Apache Axis2 version: SNAPSHOT  Built on : Dec 21, 2007 (04:03:30 LKT)
- */
-            
-                package org.apache.axis2.databinding.types.xsd;
-
-import javax.xml.stream.XMLStreamWriter;
-            
-
-            /**
-            *  HexBinary bean class
-            */
-        
-        public  class HexBinary
-        implements org.apache.axis2.databinding.ADBBean{
-        /* This type was generated from the piece of schema that had
-                name = hexBinary
-                Namespace URI = http://www.w3.org/2001/XMLSchema
-                Namespace Prefix = ns1
-                */
-            
-
-        private static java.lang.String generatePrefix(java.lang.String namespace) {
-            if(namespace.equals("http://www.w3.org/2001/XMLSchema")){
-                return "xsd";
-            }
-            return org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-        }
-
-        
-
-                        /**
-                        * field for HexBinary
-                        */
-
-                        
-                                    protected org.apache.axis2.databinding.types.HexBinary localHexBinary ;
-                                
-
-                           /**
-                           * Auto generated getter method
-                           * @return org.apache.axis2.databinding.types.HexBinary
-                           */
-                           public  org.apache.axis2.databinding.types.HexBinary getHexBinary(){
-                               return localHexBinary;
-                           }
-
-                           
-                        
-                            /**
-                               * Auto generated setter method
-                               * @param param HexBinary
-                               */
-                               public void setHexBinary(org.apache.axis2.databinding.types.HexBinary param){
-                            
-                                            this.localHexBinary=param;
-                                    
-
-                               }
-                            
-
-                            public java.lang.String toString(){
-                                
-                                        return localHexBinary.toString();
-                                    
-                            }
-                        
-
-     /**
-     * isReaderMTOMAware
-     * @return true if the reader supports MTOM
-     */
-   public static boolean isReaderMTOMAware(javax.xml.stream.XMLStreamReader reader) {
-        boolean isReaderMTOMAware = false;
-        
-        try{
-          isReaderMTOMAware = java.lang.Boolean.TRUE.equals(reader.getProperty(org.apache.axiom.om.OMConstants.IS_DATA_HANDLERS_AWARE));
-        }catch(java.lang.IllegalArgumentException e){
-          isReaderMTOMAware = false;
-        }
-        return isReaderMTOMAware;
-   }
-     
-     
-        /**
-        *
-        * @param parentQName
-        * @param factory
-        * @return org.apache.axiom.om.OMElement
-        */
-       public org.apache.axiom.om.OMElement getOMElement (
-               final javax.xml.namespace.QName parentQName,
-               final org.apache.axiom.om.OMFactory factory) throws org.apache.axis2.databinding.ADBException{
-
-
-        
-               org.apache.axiom.om.OMDataSource dataSource =
-                       new org.apache.axis2.databinding.ADBDataSource(this,parentQName);
-               return factory.createOMElement(dataSource,parentQName);
-            
-       }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                                       XMLStreamWriter xmlWriter)
-                                throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-                           serialize(parentQName,xmlWriter,false);
-         }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                               XMLStreamWriter xmlWriter,
-                               boolean serializeType)
-            throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-            
-                
-
-
-                java.lang.String prefix = null;
-                java.lang.String namespace = null;
-                
-
-                    prefix = parentQName.getPrefix();
-                    namespace = parentQName.getNamespaceURI();
-
-                    if ((namespace != null) && (namespace.trim().length() > 0)) {
-                        java.lang.String writerPrefix = xmlWriter.getPrefix(namespace);
-                        if (writerPrefix != null) {
-                            xmlWriter.writeStartElement(namespace, parentQName.getLocalPart());
-                        } else {
-                            if (prefix == null) {
-                                prefix = generatePrefix(namespace);
-                            }
-
-                            xmlWriter.writeStartElement(prefix, parentQName.getLocalPart(), namespace);
-                            xmlWriter.writeNamespace(prefix, namespace);
-                            xmlWriter.setPrefix(prefix, namespace);
-                        }
-                    } else {
-                        xmlWriter.writeStartElement(parentQName.getLocalPart());
-                    }
-                
-                  if (serializeType){
-               
-                   java.lang.String namespacePrefix = registerPrefix(xmlWriter,"http://www.w3.org/2001/XMLSchema");
-                   if ((namespacePrefix != null) && (namespacePrefix.trim().length() > 0)){
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           namespacePrefix+":hexBinary",
-                           xmlWriter);
-                   } else {
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           "hexBinary",
-                           xmlWriter);
-                   }
-
-               
-                   }
-               
-
-                                          if (localHexBinary==null){
-                                              // write the nil attribute
-                                              
-                                                     throw new org.apache.axis2.databinding.ADBException("hexBinary cannot be null!!");
-                                                  
-                                          }else{
-
-                                        
-                                                   xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(localHexBinary));
-                                            
-                                          }
-                                    
-                    xmlWriter.writeEndElement();
-               
-
-        }
-
-         /**
-          * Util method to write an attribute with the ns prefix
-          */
-          private void writeAttribute(java.lang.String prefix,java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-              if (xmlWriter.getPrefix(namespace) == null) {
-                       xmlWriter.writeNamespace(prefix, namespace);
-                       xmlWriter.setPrefix(prefix, namespace);
-
-              }
-
-              xmlWriter.writeAttribute(namespace,attName,attValue);
-
-         }
-
-        /**
-          * Util method to write an attribute without the ns prefix
-          */
-          private void writeAttribute(java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-                if (namespace.equals(""))
-              {
-                  xmlWriter.writeAttribute(attName,attValue);
-              }
-              else
-              {
-                  registerPrefix(xmlWriter, namespace);
-                  xmlWriter.writeAttribute(namespace,attName,attValue);
-              }
-          }
-
-
-           /**
-             * Util method to write an attribute without the ns prefix
-             */
-            private void writeQNameAttribute(java.lang.String namespace, java.lang.String attName,
-                                             javax.xml.namespace.QName qname, javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-                java.lang.String attributeNamespace = qname.getNamespaceURI();
-                java.lang.String attributePrefix = xmlWriter.getPrefix(attributeNamespace);
-                if (attributePrefix == null) {
-                    attributePrefix = registerPrefix(xmlWriter, attributeNamespace);
-                }
-                java.lang.String attributeValue;
-                if (attributePrefix.trim().length() > 0) {
-                    attributeValue = attributePrefix + ":" + qname.getLocalPart();
-                } else {
-                    attributeValue = qname.getLocalPart();
-                }
-
-                if (namespace.equals("")) {
-                    xmlWriter.writeAttribute(attName, attributeValue);
-                } else {
-                    registerPrefix(xmlWriter, namespace);
-                    xmlWriter.writeAttribute(namespace, attName, attributeValue);
-                }
-            }
-        /**
-         *  method to handle Qnames
-         */
-
-        private void writeQName(javax.xml.namespace.QName qname,
-                                javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-            java.lang.String namespaceURI = qname.getNamespaceURI();
-            if (namespaceURI != null) {
-                java.lang.String prefix = xmlWriter.getPrefix(namespaceURI);
-                if (prefix == null) {
-                    prefix = generatePrefix(namespaceURI);
-                    xmlWriter.writeNamespace(prefix, namespaceURI);
-                    xmlWriter.setPrefix(prefix,namespaceURI);
-                }
-
-                if (prefix.trim().length() > 0){
-                    xmlWriter.writeCharacters(prefix + ":" + org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                } else {
-                    // i.e this is the default namespace
-                    xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                }
-
-            } else {
-                xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-            }
-        }
-
-        private void writeQNames(javax.xml.namespace.QName[] qnames,
-                                 javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-            if (qnames != null) {
-                // we have to store this data until last moment since it is not possible to write any
-                // namespace data after writing the charactor data
-                java.lang.StringBuffer stringToWrite = new java.lang.StringBuffer();
-                java.lang.String namespaceURI = null;
-                java.lang.String prefix = null;
-
-                for (int i = 0; i < qnames.length; i++) {
-                    if (i > 0) {
-                        stringToWrite.append(" ");
-                    }
-                    namespaceURI = qnames[i].getNamespaceURI();
-                    if (namespaceURI != null) {
-                        prefix = xmlWriter.getPrefix(namespaceURI);
-                        if ((prefix == null) || (prefix.length() == 0)) {
-                            prefix = generatePrefix(namespaceURI);
-                            xmlWriter.writeNamespace(prefix, namespaceURI);
-                            xmlWriter.setPrefix(prefix,namespaceURI);
-                        }
-
-                        if (prefix.trim().length() > 0){
-                            stringToWrite.append(prefix).append(":").append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        } else {
-                            stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        }
-                    } else {
-                        stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                    }
-                }
-                xmlWriter.writeCharacters(stringToWrite.toString());
-            }
-
-        }
-
-
-         /**
-         * Register a namespace prefix
-         */
-         private java.lang.String registerPrefix(javax.xml.stream.XMLStreamWriter xmlWriter, java.lang.String namespace) throws javax.xml.stream.XMLStreamException {
-                java.lang.String prefix = xmlWriter.getPrefix(namespace);
-
-                if (prefix == null) {
-                    prefix = generatePrefix(namespace);
-                    javax.xml.namespace.NamespaceContext nsContext = xmlWriter.getNamespaceContext();
-                    while (true) {
-                        java.lang.String uri = nsContext.getNamespaceURI(prefix);
-                        if (uri == null || uri.length() == 0) {
-                            break;
-                        }
-                        prefix = org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-                    }
-                    xmlWriter.writeNamespace(prefix, namespace);
-                    xmlWriter.setPrefix(prefix, namespace);
-                }
-
-                return prefix;
-            }
-
-
-  
-     /**
-      *  Factory class that keeps the parse method
-      */
-    public static class Factory{
-
-        
-        
-                public static HexBinary fromString(java.lang.String value,
-                                                    java.lang.String namespaceURI){
-                    HexBinary returnValue = new  HexBinary();
-                    
-                            returnValue.setHexBinary(
-                                org.apache.axis2.databinding.utils.ConverterUtil.convertToHexBinary(value));
-                        
-
-                    return returnValue;
-                }
-
-                public static HexBinary fromString(javax.xml.stream.XMLStreamReader xmlStreamReader,
-                                                                    java.lang.String content) {
-                    if (content.indexOf(":") > -1){
-                        java.lang.String prefix = content.substring(0,content.indexOf(":"));
-                        java.lang.String namespaceUri = xmlStreamReader.getNamespaceContext().getNamespaceURI(prefix);
-                        return HexBinary.Factory.fromString(content,namespaceUri);
-                    } else {
-                       return HexBinary.Factory.fromString(content,"");
-                    }
-                }
-
-            
-
-        /**
-        * static method to create the object
-        * Precondition:  If this object is an element, the current or next start element starts this object and any intervening reader events are ignorable
-        *                If this object is not an element, it is a complex type and the reader is at the event just after the outer start element
-        * Postcondition: If this object is an element, the reader is positioned at its end element
-        *                If this object is a complex type, the reader is positioned at the end element of its outer element
-        */
-        public static HexBinary parse(javax.xml.stream.XMLStreamReader reader) throws java.lang.Exception{
-            HexBinary object =
-                new HexBinary();
-
-            int event;
-            java.lang.String nillableValue = null;
-            java.lang.String prefix ="";
-            java.lang.String namespaceuri ="";
-            try {
-                
-                while (!reader.isStartElement() && !reader.isEndElement())
-                    reader.next();
-
-                
-                if (reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance","type")!=null){
-                  java.lang.String fullTypeName = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance",
-                        "type");
-                  if (fullTypeName!=null){
-                    java.lang.String nsPrefix = null;
-                    if (fullTypeName.indexOf(":") > -1){
-                        nsPrefix = fullTypeName.substring(0,fullTypeName.indexOf(":"));
-                    }
-                    nsPrefix = nsPrefix==null?"":nsPrefix;
-
-                    java.lang.String type = fullTypeName.substring(fullTypeName.indexOf(":")+1);
-                    
-                            if (!"hexBinary".equals(type)){
-                                //find namespace for the prefix
-                                java.lang.String nsUri = reader.getNamespaceContext().getNamespaceURI(nsPrefix);
-                                return (HexBinary)org.apache.axis2.databinding.types.xsd.ExtensionMapper.getTypeObject(
-                                     nsUri,type,reader);
-                              }
-                        
-
-                  }
-                
-
-                }
-
-                
-
-                
-                // Note all attributes that were handled. Used to differ normal attributes
-                // from anyAttributes.
-                java.util.Vector handledAttributes = new java.util.Vector();
-                
-
-                    
-                while(!reader.isEndElement()) {
-                    if (reader.isStartElement()  || reader.hasText()){
-                
-                                    if (reader.isStartElement()  || reader.hasText()){
-                                
-                                    java.lang.String content = reader.getElementText();
-                                    
-                                              object.setHexBinary(
-                                                    org.apache.axis2.databinding.utils.ConverterUtil.convertToHexBinary(content));
-                                            
-                              }  // End of if for expected property start element
-                                
-                             else{
-                                        // A start element we are not expecting indicates an invalid parameter was passed
-                                        throw new org.apache.axis2.databinding.ADBException("Unexpected subelement " + reader.getLocalName());
-                             }
-                          
-                             } else {
-                                reader.next();
-                             }  
-                           }  // end of while loop
-                        
-
-
-
-            } catch (javax.xml.stream.XMLStreamException e) {
-                throw new java.lang.Exception(e);
-            }
-
-            return object;
-        }
-
-        }//end of factory class
-
-        
-
-        }
-           
-          
\ No newline at end of file
diff --git a/modules/adb/src/org/apache/axis2/databinding/types/xsd/ID.java b/modules/adb/src/org/apache/axis2/databinding/types/xsd/ID.java
deleted file mode 100644
index 3bf1af2..0000000
--- a/modules/adb/src/org/apache/axis2/databinding/types/xsd/ID.java
+++ /dev/null
@@ -1,469 +0,0 @@
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/**
- * ID.java
- *
- * This file was auto-generated from WSDL
- * by the Apache Axis2 version: SNAPSHOT  Built on : Dec 21, 2007 (04:03:30 LKT)
- */
-            
-                package org.apache.axis2.databinding.types.xsd;
-
-import javax.xml.stream.XMLStreamWriter;
-            
-
-            /**
-            *  ID bean class
-            */
-        
-        public  class ID
-        implements org.apache.axis2.databinding.ADBBean{
-        /* This type was generated from the piece of schema that had
-                name = ID
-                Namespace URI = http://www.w3.org/2001/XMLSchema
-                Namespace Prefix = ns1
-                */
-            
-
-        private static java.lang.String generatePrefix(java.lang.String namespace) {
-            if(namespace.equals("http://www.w3.org/2001/XMLSchema")){
-                return "xsd";
-            }
-            return org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-        }
-
-        
-
-                        /**
-                        * field for ID
-                        */
-
-                        
-                                    protected org.apache.axis2.databinding.types.Id localID ;
-                                
-
-                           /**
-                           * Auto generated getter method
-                           * @return org.apache.axis2.databinding.types.Id
-                           */
-                           public  org.apache.axis2.databinding.types.Id getID(){
-                               return localID;
-                           }
-
-                           
-                        
-                            /**
-                               * Auto generated setter method
-                               * @param param ID
-                               */
-                               public void setID(org.apache.axis2.databinding.types.Id param){
-                            
-                                            this.localID=param;
-                                    
-
-                               }
-                            
-
-                            public java.lang.String toString(){
-                                
-                                        return localID.toString();
-                                    
-                            }
-                        
-
-     /**
-     * isReaderMTOMAware
-     * @return true if the reader supports MTOM
-     */
-   public static boolean isReaderMTOMAware(javax.xml.stream.XMLStreamReader reader) {
-        boolean isReaderMTOMAware = false;
-        
-        try{
-          isReaderMTOMAware = java.lang.Boolean.TRUE.equals(reader.getProperty(org.apache.axiom.om.OMConstants.IS_DATA_HANDLERS_AWARE));
-        }catch(java.lang.IllegalArgumentException e){
-          isReaderMTOMAware = false;
-        }
-        return isReaderMTOMAware;
-   }
-     
-     
-        /**
-        *
-        * @param parentQName
-        * @param factory
-        * @return org.apache.axiom.om.OMElement
-        */
-       public org.apache.axiom.om.OMElement getOMElement (
-               final javax.xml.namespace.QName parentQName,
-               final org.apache.axiom.om.OMFactory factory) throws org.apache.axis2.databinding.ADBException{
-
-
-        
-               org.apache.axiom.om.OMDataSource dataSource =
-                       new org.apache.axis2.databinding.ADBDataSource(this,parentQName);
-               return factory.createOMElement(dataSource,parentQName);
-            
-       }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                                       XMLStreamWriter xmlWriter)
-                                throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-                           serialize(parentQName,xmlWriter,false);
-         }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                               XMLStreamWriter xmlWriter,
-                               boolean serializeType)
-            throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-            
-                
-
-
-                java.lang.String prefix = null;
-                java.lang.String namespace = null;
-                
-
-                    prefix = parentQName.getPrefix();
-                    namespace = parentQName.getNamespaceURI();
-
-                    if ((namespace != null) && (namespace.trim().length() > 0)) {
-                        java.lang.String writerPrefix = xmlWriter.getPrefix(namespace);
-                        if (writerPrefix != null) {
-                            xmlWriter.writeStartElement(namespace, parentQName.getLocalPart());
-                        } else {
-                            if (prefix == null) {
-                                prefix = generatePrefix(namespace);
-                            }
-
-                            xmlWriter.writeStartElement(prefix, parentQName.getLocalPart(), namespace);
-                            xmlWriter.writeNamespace(prefix, namespace);
-                            xmlWriter.setPrefix(prefix, namespace);
-                        }
-                    } else {
-                        xmlWriter.writeStartElement(parentQName.getLocalPart());
-                    }
-                
-                  if (serializeType){
-               
-                   java.lang.String namespacePrefix = registerPrefix(xmlWriter,"http://www.w3.org/2001/XMLSchema");
-                   if ((namespacePrefix != null) && (namespacePrefix.trim().length() > 0)){
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           namespacePrefix+":ID",
-                           xmlWriter);
-                   } else {
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           "ID",
-                           xmlWriter);
-                   }
-
-               
-                   }
-               
-
-                                          if (localID==null){
-                                              // write the nil attribute
-                                              
-                                                     throw new org.apache.axis2.databinding.ADBException("ID cannot be null!!");
-                                                  
-                                          }else{
-
-                                        
-                                                   xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(localID));
-                                            
-                                          }
-                                    
-                    xmlWriter.writeEndElement();
-               
-
-        }
-
-         /**
-          * Util method to write an attribute with the ns prefix
-          */
-          private void writeAttribute(java.lang.String prefix,java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-              if (xmlWriter.getPrefix(namespace) == null) {
-                       xmlWriter.writeNamespace(prefix, namespace);
-                       xmlWriter.setPrefix(prefix, namespace);
-
-              }
-
-              xmlWriter.writeAttribute(namespace,attName,attValue);
-
-         }
-
-        /**
-          * Util method to write an attribute without the ns prefix
-          */
-          private void writeAttribute(java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-                if (namespace.equals(""))
-              {
-                  xmlWriter.writeAttribute(attName,attValue);
-              }
-              else
-              {
-                  registerPrefix(xmlWriter, namespace);
-                  xmlWriter.writeAttribute(namespace,attName,attValue);
-              }
-          }
-
-
-           /**
-             * Util method to write an attribute without the ns prefix
-             */
-            private void writeQNameAttribute(java.lang.String namespace, java.lang.String attName,
-                                             javax.xml.namespace.QName qname, javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-                java.lang.String attributeNamespace = qname.getNamespaceURI();
-                java.lang.String attributePrefix = xmlWriter.getPrefix(attributeNamespace);
-                if (attributePrefix == null) {
-                    attributePrefix = registerPrefix(xmlWriter, attributeNamespace);
-                }
-                java.lang.String attributeValue;
-                if (attributePrefix.trim().length() > 0) {
-                    attributeValue = attributePrefix + ":" + qname.getLocalPart();
-                } else {
-                    attributeValue = qname.getLocalPart();
-                }
-
-                if (namespace.equals("")) {
-                    xmlWriter.writeAttribute(attName, attributeValue);
-                } else {
-                    registerPrefix(xmlWriter, namespace);
-                    xmlWriter.writeAttribute(namespace, attName, attributeValue);
-                }
-            }
-        /**
-         *  method to handle Qnames
-         */
-
-        private void writeQName(javax.xml.namespace.QName qname,
-                                javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-            java.lang.String namespaceURI = qname.getNamespaceURI();
-            if (namespaceURI != null) {
-                java.lang.String prefix = xmlWriter.getPrefix(namespaceURI);
-                if (prefix == null) {
-                    prefix = generatePrefix(namespaceURI);
-                    xmlWriter.writeNamespace(prefix, namespaceURI);
-                    xmlWriter.setPrefix(prefix,namespaceURI);
-                }
-
-                if (prefix.trim().length() > 0){
-                    xmlWriter.writeCharacters(prefix + ":" + org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                } else {
-                    // i.e this is the default namespace
-                    xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                }
-
-            } else {
-                xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-            }
-        }
-
-        private void writeQNames(javax.xml.namespace.QName[] qnames,
-                                 javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-            if (qnames != null) {
-                // we have to store this data until last moment since it is not possible to write any
-                // namespace data after writing the charactor data
-                java.lang.StringBuffer stringToWrite = new java.lang.StringBuffer();
-                java.lang.String namespaceURI = null;
-                java.lang.String prefix = null;
-
-                for (int i = 0; i < qnames.length; i++) {
-                    if (i > 0) {
-                        stringToWrite.append(" ");
-                    }
-                    namespaceURI = qnames[i].getNamespaceURI();
-                    if (namespaceURI != null) {
-                        prefix = xmlWriter.getPrefix(namespaceURI);
-                        if ((prefix == null) || (prefix.length() == 0)) {
-                            prefix = generatePrefix(namespaceURI);
-                            xmlWriter.writeNamespace(prefix, namespaceURI);
-                            xmlWriter.setPrefix(prefix,namespaceURI);
-                        }
-
-                        if (prefix.trim().length() > 0){
-                            stringToWrite.append(prefix).append(":").append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        } else {
-                            stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        }
-                    } else {
-                        stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                    }
-                }
-                xmlWriter.writeCharacters(stringToWrite.toString());
-            }
-
-        }
-
-
-         /**
-         * Register a namespace prefix
-         */
-         private java.lang.String registerPrefix(javax.xml.stream.XMLStreamWriter xmlWriter, java.lang.String namespace) throws javax.xml.stream.XMLStreamException {
-                java.lang.String prefix = xmlWriter.getPrefix(namespace);
-
-                if (prefix == null) {
-                    prefix = generatePrefix(namespace);
-                    javax.xml.namespace.NamespaceContext nsContext = xmlWriter.getNamespaceContext();
-                    while (true) {
-                        java.lang.String uri = nsContext.getNamespaceURI(prefix);
-                        if (uri == null || uri.length() == 0) {
-                            break;
-                        }
-                        prefix = org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-                    }
-                    xmlWriter.writeNamespace(prefix, namespace);
-                    xmlWriter.setPrefix(prefix, namespace);
-                }
-
-                return prefix;
-            }
-
-
-  
-     /**
-      *  Factory class that keeps the parse method
-      */
-    public static class Factory{
-
-        
-        
-                public static ID fromString(java.lang.String value,
-                                                    java.lang.String namespaceURI){
-                    ID returnValue = new  ID();
-                    
-                            returnValue.setID(
-                                org.apache.axis2.databinding.utils.ConverterUtil.convertToID(value));
-                        
-
-                    return returnValue;
-                }
-
-                public static ID fromString(javax.xml.stream.XMLStreamReader xmlStreamReader,
-                                                                    java.lang.String content) {
-                    if (content.indexOf(":") > -1){
-                        java.lang.String prefix = content.substring(0,content.indexOf(":"));
-                        java.lang.String namespaceUri = xmlStreamReader.getNamespaceContext().getNamespaceURI(prefix);
-                        return ID.Factory.fromString(content,namespaceUri);
-                    } else {
-                       return ID.Factory.fromString(content,"");
-                    }
-                }
-
-            
-
-        /**
-        * static method to create the object
-        * Precondition:  If this object is an element, the current or next start element starts this object and any intervening reader events are ignorable
-        *                If this object is not an element, it is a complex type and the reader is at the event just after the outer start element
-        * Postcondition: If this object is an element, the reader is positioned at its end element
-        *                If this object is a complex type, the reader is positioned at the end element of its outer element
-        */
-        public static ID parse(javax.xml.stream.XMLStreamReader reader) throws java.lang.Exception{
-            ID object =
-                new ID();
-
-            int event;
-            java.lang.String nillableValue = null;
-            java.lang.String prefix ="";
-            java.lang.String namespaceuri ="";
-            try {
-                
-                while (!reader.isStartElement() && !reader.isEndElement())
-                    reader.next();
-
-                
-                if (reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance","type")!=null){
-                  java.lang.String fullTypeName = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance",
-                        "type");
-                  if (fullTypeName!=null){
-                    java.lang.String nsPrefix = null;
-                    if (fullTypeName.indexOf(":") > -1){
-                        nsPrefix = fullTypeName.substring(0,fullTypeName.indexOf(":"));
-                    }
-                    nsPrefix = nsPrefix==null?"":nsPrefix;
-
-                    java.lang.String type = fullTypeName.substring(fullTypeName.indexOf(":")+1);
-                    
-                            if (!"ID".equals(type)){
-                                //find namespace for the prefix
-                                java.lang.String nsUri = reader.getNamespaceContext().getNamespaceURI(nsPrefix);
-                                return (ID)org.apache.axis2.databinding.types.xsd.ExtensionMapper.getTypeObject(
-                                     nsUri,type,reader);
-                              }
-                        
-
-                  }
-                
-
-                }
-
-                
-
-                
-                // Note all attributes that were handled. Used to differ normal attributes
-                // from anyAttributes.
-                java.util.Vector handledAttributes = new java.util.Vector();
-                
-
-                    
-                while(!reader.isEndElement()) {
-                    if (reader.isStartElement()  || reader.hasText()){
-                
-                                    if (reader.isStartElement()  || reader.hasText()){
-                                
-                                    java.lang.String content = reader.getElementText();
-                                    
-                                              object.setID(
-                                                    org.apache.axis2.databinding.utils.ConverterUtil.convertToID(content));
-                                            
-                              }  // End of if for expected property start element
-                                
-                             else{
-                                        // A start element we are not expecting indicates an invalid parameter was passed
-                                        throw new org.apache.axis2.databinding.ADBException("Unexpected subelement " + reader.getLocalName());
-                             }
-                          
-                             } else {
-                                reader.next();
-                             }  
-                           }  // end of while loop
-                        
-
-
-
-            } catch (javax.xml.stream.XMLStreamException e) {
-                throw new java.lang.Exception(e);
-            }
-
-            return object;
-        }
-
-        }//end of factory class
-
-        
-
-        }
-           
-          
\ No newline at end of file
diff --git a/modules/adb/src/org/apache/axis2/databinding/types/xsd/IDREF.java b/modules/adb/src/org/apache/axis2/databinding/types/xsd/IDREF.java
deleted file mode 100644
index 7beb9b1..0000000
--- a/modules/adb/src/org/apache/axis2/databinding/types/xsd/IDREF.java
+++ /dev/null
@@ -1,469 +0,0 @@
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/**
- * IDREF.java
- *
- * This file was auto-generated from WSDL
- * by the Apache Axis2 version: SNAPSHOT  Built on : Dec 21, 2007 (04:03:30 LKT)
- */
-            
-                package org.apache.axis2.databinding.types.xsd;
-
-import javax.xml.stream.XMLStreamWriter;
-            
-
-            /**
-            *  IDREF bean class
-            */
-        
-        public  class IDREF
-        implements org.apache.axis2.databinding.ADBBean{
-        /* This type was generated from the piece of schema that had
-                name = IDREF
-                Namespace URI = http://www.w3.org/2001/XMLSchema
-                Namespace Prefix = ns1
-                */
-            
-
-        private static java.lang.String generatePrefix(java.lang.String namespace) {
-            if(namespace.equals("http://www.w3.org/2001/XMLSchema")){
-                return "xsd";
-            }
-            return org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-        }
-
-        
-
-                        /**
-                        * field for IDREF
-                        */
-
-                        
-                                    protected org.apache.axis2.databinding.types.IDRef localIDREF ;
-                                
-
-                           /**
-                           * Auto generated getter method
-                           * @return org.apache.axis2.databinding.types.IDRef
-                           */
-                           public  org.apache.axis2.databinding.types.IDRef getIDREF(){
-                               return localIDREF;
-                           }
-
-                           
-                        
-                            /**
-                               * Auto generated setter method
-                               * @param param IDREF
-                               */
-                               public void setIDREF(org.apache.axis2.databinding.types.IDRef param){
-                            
-                                            this.localIDREF=param;
-                                    
-
-                               }
-                            
-
-                            public java.lang.String toString(){
-                                
-                                        return localIDREF.toString();
-                                    
-                            }
-                        
-
-     /**
-     * isReaderMTOMAware
-     * @return true if the reader supports MTOM
-     */
-   public static boolean isReaderMTOMAware(javax.xml.stream.XMLStreamReader reader) {
-        boolean isReaderMTOMAware = false;
-        
-        try{
-          isReaderMTOMAware = java.lang.Boolean.TRUE.equals(reader.getProperty(org.apache.axiom.om.OMConstants.IS_DATA_HANDLERS_AWARE));
-        }catch(java.lang.IllegalArgumentException e){
-          isReaderMTOMAware = false;
-        }
-        return isReaderMTOMAware;
-   }
-     
-     
-        /**
-        *
-        * @param parentQName
-        * @param factory
-        * @return org.apache.axiom.om.OMElement
-        */
-       public org.apache.axiom.om.OMElement getOMElement (
-               final javax.xml.namespace.QName parentQName,
-               final org.apache.axiom.om.OMFactory factory) throws org.apache.axis2.databinding.ADBException{
-
-
-        
-               org.apache.axiom.om.OMDataSource dataSource =
-                       new org.apache.axis2.databinding.ADBDataSource(this,parentQName);
-               return factory.createOMElement(dataSource,parentQName);
-            
-       }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                                       XMLStreamWriter xmlWriter)
-                                throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-                           serialize(parentQName,xmlWriter,false);
-         }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                               XMLStreamWriter xmlWriter,
-                               boolean serializeType)
-            throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-            
-                
-
-
-                java.lang.String prefix = null;
-                java.lang.String namespace = null;
-                
-
-                    prefix = parentQName.getPrefix();
-                    namespace = parentQName.getNamespaceURI();
-
-                    if ((namespace != null) && (namespace.trim().length() > 0)) {
-                        java.lang.String writerPrefix = xmlWriter.getPrefix(namespace);
-                        if (writerPrefix != null) {
-                            xmlWriter.writeStartElement(namespace, parentQName.getLocalPart());
-                        } else {
-                            if (prefix == null) {
-                                prefix = generatePrefix(namespace);
-                            }
-
-                            xmlWriter.writeStartElement(prefix, parentQName.getLocalPart(), namespace);
-                            xmlWriter.writeNamespace(prefix, namespace);
-                            xmlWriter.setPrefix(prefix, namespace);
-                        }
-                    } else {
-                        xmlWriter.writeStartElement(parentQName.getLocalPart());
-                    }
-                
-                  if (serializeType){
-               
-                   java.lang.String namespacePrefix = registerPrefix(xmlWriter,"http://www.w3.org/2001/XMLSchema");
-                   if ((namespacePrefix != null) && (namespacePrefix.trim().length() > 0)){
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           namespacePrefix+":IDREF",
-                           xmlWriter);
-                   } else {
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           "IDREF",
-                           xmlWriter);
-                   }
-
-               
-                   }
-               
-
-                                          if (localIDREF==null){
-                                              // write the nil attribute
-                                              
-                                                     throw new org.apache.axis2.databinding.ADBException("IDREF cannot be null!!");
-                                                  
-                                          }else{
-
-                                        
-                                                   xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(localIDREF));
-                                            
-                                          }
-                                    
-                    xmlWriter.writeEndElement();
-               
-
-        }
-
-         /**
-          * Util method to write an attribute with the ns prefix
-          */
-          private void writeAttribute(java.lang.String prefix,java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-              if (xmlWriter.getPrefix(namespace) == null) {
-                       xmlWriter.writeNamespace(prefix, namespace);
-                       xmlWriter.setPrefix(prefix, namespace);
-
-              }
-
-              xmlWriter.writeAttribute(namespace,attName,attValue);
-
-         }
-
-        /**
-          * Util method to write an attribute without the ns prefix
-          */
-          private void writeAttribute(java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-                if (namespace.equals(""))
-              {
-                  xmlWriter.writeAttribute(attName,attValue);
-              }
-              else
-              {
-                  registerPrefix(xmlWriter, namespace);
-                  xmlWriter.writeAttribute(namespace,attName,attValue);
-              }
-          }
-
-
-           /**
-             * Util method to write an attribute without the ns prefix
-             */
-            private void writeQNameAttribute(java.lang.String namespace, java.lang.String attName,
-                                             javax.xml.namespace.QName qname, javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-                java.lang.String attributeNamespace = qname.getNamespaceURI();
-                java.lang.String attributePrefix = xmlWriter.getPrefix(attributeNamespace);
-                if (attributePrefix == null) {
-                    attributePrefix = registerPrefix(xmlWriter, attributeNamespace);
-                }
-                java.lang.String attributeValue;
-                if (attributePrefix.trim().length() > 0) {
-                    attributeValue = attributePrefix + ":" + qname.getLocalPart();
-                } else {
-                    attributeValue = qname.getLocalPart();
-                }
-
-                if (namespace.equals("")) {
-                    xmlWriter.writeAttribute(attName, attributeValue);
-                } else {
-                    registerPrefix(xmlWriter, namespace);
-                    xmlWriter.writeAttribute(namespace, attName, attributeValue);
-                }
-            }
-        /**
-         *  method to handle Qnames
-         */
-
-        private void writeQName(javax.xml.namespace.QName qname,
-                                javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-            java.lang.String namespaceURI = qname.getNamespaceURI();
-            if (namespaceURI != null) {
-                java.lang.String prefix = xmlWriter.getPrefix(namespaceURI);
-                if (prefix == null) {
-                    prefix = generatePrefix(namespaceURI);
-                    xmlWriter.writeNamespace(prefix, namespaceURI);
-                    xmlWriter.setPrefix(prefix,namespaceURI);
-                }
-
-                if (prefix.trim().length() > 0){
-                    xmlWriter.writeCharacters(prefix + ":" + org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                } else {
-                    // i.e this is the default namespace
-                    xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                }
-
-            } else {
-                xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-            }
-        }
-
-        private void writeQNames(javax.xml.namespace.QName[] qnames,
-                                 javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-            if (qnames != null) {
-                // we have to store this data until last moment since it is not possible to write any
-                // namespace data after writing the charactor data
-                java.lang.StringBuffer stringToWrite = new java.lang.StringBuffer();
-                java.lang.String namespaceURI = null;
-                java.lang.String prefix = null;
-
-                for (int i = 0; i < qnames.length; i++) {
-                    if (i > 0) {
-                        stringToWrite.append(" ");
-                    }
-                    namespaceURI = qnames[i].getNamespaceURI();
-                    if (namespaceURI != null) {
-                        prefix = xmlWriter.getPrefix(namespaceURI);
-                        if ((prefix == null) || (prefix.length() == 0)) {
-                            prefix = generatePrefix(namespaceURI);
-                            xmlWriter.writeNamespace(prefix, namespaceURI);
-                            xmlWriter.setPrefix(prefix,namespaceURI);
-                        }
-
-                        if (prefix.trim().length() > 0){
-                            stringToWrite.append(prefix).append(":").append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        } else {
-                            stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        }
-                    } else {
-                        stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                    }
-                }
-                xmlWriter.writeCharacters(stringToWrite.toString());
-            }
-
-        }
-
-
-         /**
-         * Register a namespace prefix
-         */
-         private java.lang.String registerPrefix(javax.xml.stream.XMLStreamWriter xmlWriter, java.lang.String namespace) throws javax.xml.stream.XMLStreamException {
-                java.lang.String prefix = xmlWriter.getPrefix(namespace);
-
-                if (prefix == null) {
-                    prefix = generatePrefix(namespace);
-                    javax.xml.namespace.NamespaceContext nsContext = xmlWriter.getNamespaceContext();
-                    while (true) {
-                        java.lang.String uri = nsContext.getNamespaceURI(prefix);
-                        if (uri == null || uri.length() == 0) {
-                            break;
-                        }
-                        prefix = org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-                    }
-                    xmlWriter.writeNamespace(prefix, namespace);
-                    xmlWriter.setPrefix(prefix, namespace);
-                }
-
-                return prefix;
-            }
-
-
-  
-     /**
-      *  Factory class that keeps the parse method
-      */
-    public static class Factory{
-
-        
-        
-                public static IDREF fromString(java.lang.String value,
-                                                    java.lang.String namespaceURI){
-                    IDREF returnValue = new  IDREF();
-                    
-                            returnValue.setIDREF(
-                                org.apache.axis2.databinding.utils.ConverterUtil.convertToIDREF(value));
-                        
-
-                    return returnValue;
-                }
-
-                public static IDREF fromString(javax.xml.stream.XMLStreamReader xmlStreamReader,
-                                                                    java.lang.String content) {
-                    if (content.indexOf(":") > -1){
-                        java.lang.String prefix = content.substring(0,content.indexOf(":"));
-                        java.lang.String namespaceUri = xmlStreamReader.getNamespaceContext().getNamespaceURI(prefix);
-                        return IDREF.Factory.fromString(content,namespaceUri);
-                    } else {
-                       return IDREF.Factory.fromString(content,"");
-                    }
-                }
-
-            
-
-        /**
-        * static method to create the object
-        * Precondition:  If this object is an element, the current or next start element starts this object and any intervening reader events are ignorable
-        *                If this object is not an element, it is a complex type and the reader is at the event just after the outer start element
-        * Postcondition: If this object is an element, the reader is positioned at its end element
-        *                If this object is a complex type, the reader is positioned at the end element of its outer element
-        */
-        public static IDREF parse(javax.xml.stream.XMLStreamReader reader) throws java.lang.Exception{
-            IDREF object =
-                new IDREF();
-
-            int event;
-            java.lang.String nillableValue = null;
-            java.lang.String prefix ="";
-            java.lang.String namespaceuri ="";
-            try {
-                
-                while (!reader.isStartElement() && !reader.isEndElement())
-                    reader.next();
-
-                
-                if (reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance","type")!=null){
-                  java.lang.String fullTypeName = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance",
-                        "type");
-                  if (fullTypeName!=null){
-                    java.lang.String nsPrefix = null;
-                    if (fullTypeName.indexOf(":") > -1){
-                        nsPrefix = fullTypeName.substring(0,fullTypeName.indexOf(":"));
-                    }
-                    nsPrefix = nsPrefix==null?"":nsPrefix;
-
-                    java.lang.String type = fullTypeName.substring(fullTypeName.indexOf(":")+1);
-                    
-                            if (!"IDREF".equals(type)){
-                                //find namespace for the prefix
-                                java.lang.String nsUri = reader.getNamespaceContext().getNamespaceURI(nsPrefix);
-                                return (IDREF)org.apache.axis2.databinding.types.xsd.ExtensionMapper.getTypeObject(
-                                     nsUri,type,reader);
-                              }
-                        
-
-                  }
-                
-
-                }
-
-                
-
-                
-                // Note all attributes that were handled. Used to differ normal attributes
-                // from anyAttributes.
-                java.util.Vector handledAttributes = new java.util.Vector();
-                
-
-                    
-                while(!reader.isEndElement()) {
-                    if (reader.isStartElement()  || reader.hasText()){
-                
-                                    if (reader.isStartElement()  || reader.hasText()){
-                                
-                                    java.lang.String content = reader.getElementText();
-                                    
-                                              object.setIDREF(
-                                                    org.apache.axis2.databinding.utils.ConverterUtil.convertToIDREF(content));
-                                            
-                              }  // End of if for expected property start element
-                                
-                             else{
-                                        // A start element we are not expecting indicates an invalid parameter was passed
-                                        throw new org.apache.axis2.databinding.ADBException("Unexpected subelement " + reader.getLocalName());
-                             }
-                          
-                             } else {
-                                reader.next();
-                             }  
-                           }  // end of while loop
-                        
-
-
-
-            } catch (javax.xml.stream.XMLStreamException e) {
-                throw new java.lang.Exception(e);
-            }
-
-            return object;
-        }
-
-        }//end of factory class
-
-        
-
-        }
-           
-          
\ No newline at end of file
diff --git a/modules/adb/src/org/apache/axis2/databinding/types/xsd/IDREFS.java b/modules/adb/src/org/apache/axis2/databinding/types/xsd/IDREFS.java
deleted file mode 100644
index d150075..0000000
--- a/modules/adb/src/org/apache/axis2/databinding/types/xsd/IDREFS.java
+++ /dev/null
@@ -1,469 +0,0 @@
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/**
- * IDREFS.java
- *
- * This file was auto-generated from WSDL
- * by the Apache Axis2 version: SNAPSHOT  Built on : Dec 21, 2007 (04:03:30 LKT)
- */
-            
-                package org.apache.axis2.databinding.types.xsd;
-
-import javax.xml.stream.XMLStreamWriter;
-            
-
-            /**
-            *  IDREFS bean class
-            */
-        
-        public  class IDREFS
-        implements org.apache.axis2.databinding.ADBBean{
-        /* This type was generated from the piece of schema that had
-                name = IDREFS
-                Namespace URI = http://www.w3.org/2001/XMLSchema
-                Namespace Prefix = ns1
-                */
-            
-
-        private static java.lang.String generatePrefix(java.lang.String namespace) {
-            if(namespace.equals("http://www.w3.org/2001/XMLSchema")){
-                return "xsd";
-            }
-            return org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-        }
-
-        
-
-                        /**
-                        * field for IDREFS
-                        */
-
-                        
-                                    protected org.apache.axis2.databinding.types.IDRefs localIDREFS ;
-                                
-
-                           /**
-                           * Auto generated getter method
-                           * @return org.apache.axis2.databinding.types.IDRefs
-                           */
-                           public  org.apache.axis2.databinding.types.IDRefs getIDREFS(){
-                               return localIDREFS;
-                           }
-
-                           
-                        
-                            /**
-                               * Auto generated setter method
-                               * @param param IDREFS
-                               */
-                               public void setIDREFS(org.apache.axis2.databinding.types.IDRefs param){
-                            
-                                            this.localIDREFS=param;
-                                    
-
-                               }
-                            
-
-                            public java.lang.String toString(){
-                                
-                                        return localIDREFS.toString();
-                                    
-                            }
-                        
-
-     /**
-     * isReaderMTOMAware
-     * @return true if the reader supports MTOM
-     */
-   public static boolean isReaderMTOMAware(javax.xml.stream.XMLStreamReader reader) {
-        boolean isReaderMTOMAware = false;
-        
-        try{
-          isReaderMTOMAware = java.lang.Boolean.TRUE.equals(reader.getProperty(org.apache.axiom.om.OMConstants.IS_DATA_HANDLERS_AWARE));
-        }catch(java.lang.IllegalArgumentException e){
-          isReaderMTOMAware = false;
-        }
-        return isReaderMTOMAware;
-   }
-     
-     
-        /**
-        *
-        * @param parentQName
-        * @param factory
-        * @return org.apache.axiom.om.OMElement
-        */
-       public org.apache.axiom.om.OMElement getOMElement (
-               final javax.xml.namespace.QName parentQName,
-               final org.apache.axiom.om.OMFactory factory) throws org.apache.axis2.databinding.ADBException{
-
-
-        
-               org.apache.axiom.om.OMDataSource dataSource =
-                       new org.apache.axis2.databinding.ADBDataSource(this,parentQName);
-               return factory.createOMElement(dataSource,parentQName);
-            
-       }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                                       XMLStreamWriter xmlWriter)
-                                throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-                           serialize(parentQName,xmlWriter,false);
-         }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                               XMLStreamWriter xmlWriter,
-                               boolean serializeType)
-            throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-            
-                
-
-
-                java.lang.String prefix = null;
-                java.lang.String namespace = null;
-                
-
-                    prefix = parentQName.getPrefix();
-                    namespace = parentQName.getNamespaceURI();
-
-                    if ((namespace != null) && (namespace.trim().length() > 0)) {
-                        java.lang.String writerPrefix = xmlWriter.getPrefix(namespace);
-                        if (writerPrefix != null) {
-                            xmlWriter.writeStartElement(namespace, parentQName.getLocalPart());
-                        } else {
-                            if (prefix == null) {
-                                prefix = generatePrefix(namespace);
-                            }
-
-                            xmlWriter.writeStartElement(prefix, parentQName.getLocalPart(), namespace);
-                            xmlWriter.writeNamespace(prefix, namespace);
-                            xmlWriter.setPrefix(prefix, namespace);
-                        }
-                    } else {
-                        xmlWriter.writeStartElement(parentQName.getLocalPart());
-                    }
-                
-                  if (serializeType){
-               
-                   java.lang.String namespacePrefix = registerPrefix(xmlWriter,"http://www.w3.org/2001/XMLSchema");
-                   if ((namespacePrefix != null) && (namespacePrefix.trim().length() > 0)){
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           namespacePrefix+":IDREFS",
-                           xmlWriter);
-                   } else {
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           "IDREFS",
-                           xmlWriter);
-                   }
-
-               
-                   }
-               
-
-                                          if (localIDREFS==null){
-                                              // write the nil attribute
-                                              
-                                                     throw new org.apache.axis2.databinding.ADBException("IDREFS cannot be null!!");
-                                                  
-                                          }else{
-
-                                        
-                                                   xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(localIDREFS));
-                                            
-                                          }
-                                    
-                    xmlWriter.writeEndElement();
-               
-
-        }
-
-         /**
-          * Util method to write an attribute with the ns prefix
-          */
-          private void writeAttribute(java.lang.String prefix,java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-              if (xmlWriter.getPrefix(namespace) == null) {
-                       xmlWriter.writeNamespace(prefix, namespace);
-                       xmlWriter.setPrefix(prefix, namespace);
-
-              }
-
-              xmlWriter.writeAttribute(namespace,attName,attValue);
-
-         }
-
-        /**
-          * Util method to write an attribute without the ns prefix
-          */
-          private void writeAttribute(java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-                if (namespace.equals(""))
-              {
-                  xmlWriter.writeAttribute(attName,attValue);
-              }
-              else
-              {
-                  registerPrefix(xmlWriter, namespace);
-                  xmlWriter.writeAttribute(namespace,attName,attValue);
-              }
-          }
-
-
-           /**
-             * Util method to write an attribute without the ns prefix
-             */
-            private void writeQNameAttribute(java.lang.String namespace, java.lang.String attName,
-                                             javax.xml.namespace.QName qname, javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-                java.lang.String attributeNamespace = qname.getNamespaceURI();
-                java.lang.String attributePrefix = xmlWriter.getPrefix(attributeNamespace);
-                if (attributePrefix == null) {
-                    attributePrefix = registerPrefix(xmlWriter, attributeNamespace);
-                }
-                java.lang.String attributeValue;
-                if (attributePrefix.trim().length() > 0) {
-                    attributeValue = attributePrefix + ":" + qname.getLocalPart();
-                } else {
-                    attributeValue = qname.getLocalPart();
-                }
-
-                if (namespace.equals("")) {
-                    xmlWriter.writeAttribute(attName, attributeValue);
-                } else {
-                    registerPrefix(xmlWriter, namespace);
-                    xmlWriter.writeAttribute(namespace, attName, attributeValue);
-                }
-            }
-        /**
-         *  method to handle Qnames
-         */
-
-        private void writeQName(javax.xml.namespace.QName qname,
-                                javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-            java.lang.String namespaceURI = qname.getNamespaceURI();
-            if (namespaceURI != null) {
-                java.lang.String prefix = xmlWriter.getPrefix(namespaceURI);
-                if (prefix == null) {
-                    prefix = generatePrefix(namespaceURI);
-                    xmlWriter.writeNamespace(prefix, namespaceURI);
-                    xmlWriter.setPrefix(prefix,namespaceURI);
-                }
-
-                if (prefix.trim().length() > 0){
-                    xmlWriter.writeCharacters(prefix + ":" + org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                } else {
-                    // i.e this is the default namespace
-                    xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                }
-
-            } else {
-                xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-            }
-        }
-
-        private void writeQNames(javax.xml.namespace.QName[] qnames,
-                                 javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-            if (qnames != null) {
-                // we have to store this data until last moment since it is not possible to write any
-                // namespace data after writing the charactor data
-                java.lang.StringBuffer stringToWrite = new java.lang.StringBuffer();
-                java.lang.String namespaceURI = null;
-                java.lang.String prefix = null;
-
-                for (int i = 0; i < qnames.length; i++) {
-                    if (i > 0) {
-                        stringToWrite.append(" ");
-                    }
-                    namespaceURI = qnames[i].getNamespaceURI();
-                    if (namespaceURI != null) {
-                        prefix = xmlWriter.getPrefix(namespaceURI);
-                        if ((prefix == null) || (prefix.length() == 0)) {
-                            prefix = generatePrefix(namespaceURI);
-                            xmlWriter.writeNamespace(prefix, namespaceURI);
-                            xmlWriter.setPrefix(prefix,namespaceURI);
-                        }
-
-                        if (prefix.trim().length() > 0){
-                            stringToWrite.append(prefix).append(":").append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        } else {
-                            stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        }
-                    } else {
-                        stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                    }
-                }
-                xmlWriter.writeCharacters(stringToWrite.toString());
-            }
-
-        }
-
-
-         /**
-         * Register a namespace prefix
-         */
-         private java.lang.String registerPrefix(javax.xml.stream.XMLStreamWriter xmlWriter, java.lang.String namespace) throws javax.xml.stream.XMLStreamException {
-                java.lang.String prefix = xmlWriter.getPrefix(namespace);
-
-                if (prefix == null) {
-                    prefix = generatePrefix(namespace);
-                    javax.xml.namespace.NamespaceContext nsContext = xmlWriter.getNamespaceContext();
-                    while (true) {
-                        java.lang.String uri = nsContext.getNamespaceURI(prefix);
-                        if (uri == null || uri.length() == 0) {
-                            break;
-                        }
-                        prefix = org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-                    }
-                    xmlWriter.writeNamespace(prefix, namespace);
-                    xmlWriter.setPrefix(prefix, namespace);
-                }
-
-                return prefix;
-            }
-
-
-  
-     /**
-      *  Factory class that keeps the parse method
-      */
-    public static class Factory{
-
-        
-        
-                public static IDREFS fromString(java.lang.String value,
-                                                    java.lang.String namespaceURI){
-                    IDREFS returnValue = new  IDREFS();
-                    
-                            returnValue.setIDREFS(
-                                org.apache.axis2.databinding.utils.ConverterUtil.convertToIDREFS(value));
-                        
-
-                    return returnValue;
-                }
-
-                public static IDREFS fromString(javax.xml.stream.XMLStreamReader xmlStreamReader,
-                                                                    java.lang.String content) {
-                    if (content.indexOf(":") > -1){
-                        java.lang.String prefix = content.substring(0,content.indexOf(":"));
-                        java.lang.String namespaceUri = xmlStreamReader.getNamespaceContext().getNamespaceURI(prefix);
-                        return IDREFS.Factory.fromString(content,namespaceUri);
-                    } else {
-                       return IDREFS.Factory.fromString(content,"");
-                    }
-                }
-
-            
-
-        /**
-        * static method to create the object
-        * Precondition:  If this object is an element, the current or next start element starts this object and any intervening reader events are ignorable
-        *                If this object is not an element, it is a complex type and the reader is at the event just after the outer start element
-        * Postcondition: If this object is an element, the reader is positioned at its end element
-        *                If this object is a complex type, the reader is positioned at the end element of its outer element
-        */
-        public static IDREFS parse(javax.xml.stream.XMLStreamReader reader) throws java.lang.Exception{
-            IDREFS object =
-                new IDREFS();
-
-            int event;
-            java.lang.String nillableValue = null;
-            java.lang.String prefix ="";
-            java.lang.String namespaceuri ="";
-            try {
-                
-                while (!reader.isStartElement() && !reader.isEndElement())
-                    reader.next();
-
-                
-                if (reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance","type")!=null){
-                  java.lang.String fullTypeName = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance",
-                        "type");
-                  if (fullTypeName!=null){
-                    java.lang.String nsPrefix = null;
-                    if (fullTypeName.indexOf(":") > -1){
-                        nsPrefix = fullTypeName.substring(0,fullTypeName.indexOf(":"));
-                    }
-                    nsPrefix = nsPrefix==null?"":nsPrefix;
-
-                    java.lang.String type = fullTypeName.substring(fullTypeName.indexOf(":")+1);
-                    
-                            if (!"IDREFS".equals(type)){
-                                //find namespace for the prefix
-                                java.lang.String nsUri = reader.getNamespaceContext().getNamespaceURI(nsPrefix);
-                                return (IDREFS)org.apache.axis2.databinding.types.xsd.ExtensionMapper.getTypeObject(
-                                     nsUri,type,reader);
-                              }
-                        
-
-                  }
-                
-
-                }
-
-                
-
-                
-                // Note all attributes that were handled. Used to differ normal attributes
-                // from anyAttributes.
-                java.util.Vector handledAttributes = new java.util.Vector();
-                
-
-                    
-                while(!reader.isEndElement()) {
-                    if (reader.isStartElement()  || reader.hasText()){
-                
-                                    if (reader.isStartElement()  || reader.hasText()){
-                                
-                                    java.lang.String content = reader.getElementText();
-                                    
-                                              object.setIDREFS(
-                                                    org.apache.axis2.databinding.utils.ConverterUtil.convertToIDREFS(content));
-                                            
-                              }  // End of if for expected property start element
-                                
-                             else{
-                                        // A start element we are not expecting indicates an invalid parameter was passed
-                                        throw new org.apache.axis2.databinding.ADBException("Unexpected subelement " + reader.getLocalName());
-                             }
-                          
-                             } else {
-                                reader.next();
-                             }  
-                           }  // end of while loop
-                        
-
-
-
-            } catch (javax.xml.stream.XMLStreamException e) {
-                throw new java.lang.Exception(e);
-            }
-
-            return object;
-        }
-
-        }//end of factory class
-
-        
-
-        }
-           
-          
\ No newline at end of file
diff --git a/modules/adb/src/org/apache/axis2/databinding/types/xsd/Integer.java b/modules/adb/src/org/apache/axis2/databinding/types/xsd/Integer.java
deleted file mode 100644
index 5fe12c5..0000000
--- a/modules/adb/src/org/apache/axis2/databinding/types/xsd/Integer.java
+++ /dev/null
@@ -1,469 +0,0 @@
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/**
- * Integer.java
- *
- * This file was auto-generated from WSDL
- * by the Apache Axis2 version: SNAPSHOT  Built on : Dec 21, 2007 (04:03:30 LKT)
- */
-            
-                package org.apache.axis2.databinding.types.xsd;
-
-import javax.xml.stream.XMLStreamWriter;
-            
-
-            /**
-            *  Integer bean class
-            */
-        
-        public  class Integer
-        implements org.apache.axis2.databinding.ADBBean{
-        /* This type was generated from the piece of schema that had
-                name = integer
-                Namespace URI = http://www.w3.org/2001/XMLSchema
-                Namespace Prefix = ns1
-                */
-            
-
-        private static java.lang.String generatePrefix(java.lang.String namespace) {
-            if(namespace.equals("http://www.w3.org/2001/XMLSchema")){
-                return "xsd";
-            }
-            return org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-        }
-
-        
-
-                        /**
-                        * field for Integer
-                        */
-
-                        
-                                    protected java.math.BigInteger localInteger ;
-                                
-
-                           /**
-                           * Auto generated getter method
-                           * @return java.math.BigInteger
-                           */
-                           public  java.math.BigInteger getInteger(){
-                               return localInteger;
-                           }
-
-                           
-                        
-                            /**
-                               * Auto generated setter method
-                               * @param param Integer
-                               */
-                               public void setInteger(java.math.BigInteger param){
-                            
-                                            this.localInteger=param;
-                                    
-
-                               }
-                            
-
-                            public java.lang.String toString(){
-                                
-                                        return localInteger.toString();
-                                    
-                            }
-                        
-
-     /**
-     * isReaderMTOMAware
-     * @return true if the reader supports MTOM
-     */
-   public static boolean isReaderMTOMAware(javax.xml.stream.XMLStreamReader reader) {
-        boolean isReaderMTOMAware = false;
-        
-        try{
-          isReaderMTOMAware = java.lang.Boolean.TRUE.equals(reader.getProperty(org.apache.axiom.om.OMConstants.IS_DATA_HANDLERS_AWARE));
-        }catch(java.lang.IllegalArgumentException e){
-          isReaderMTOMAware = false;
-        }
-        return isReaderMTOMAware;
-   }
-     
-     
-        /**
-        *
-        * @param parentQName
-        * @param factory
-        * @return org.apache.axiom.om.OMElement
-        */
-       public org.apache.axiom.om.OMElement getOMElement (
-               final javax.xml.namespace.QName parentQName,
-               final org.apache.axiom.om.OMFactory factory) throws org.apache.axis2.databinding.ADBException{
-
-
-        
-               org.apache.axiom.om.OMDataSource dataSource =
-                       new org.apache.axis2.databinding.ADBDataSource(this,parentQName);
-               return factory.createOMElement(dataSource,parentQName);
-            
-       }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                                       XMLStreamWriter xmlWriter)
-                                throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-                           serialize(parentQName,xmlWriter,false);
-         }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                               XMLStreamWriter xmlWriter,
-                               boolean serializeType)
-            throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-            
-                
-
-
-                java.lang.String prefix = null;
-                java.lang.String namespace = null;
-                
-
-                    prefix = parentQName.getPrefix();
-                    namespace = parentQName.getNamespaceURI();
-
-                    if ((namespace != null) && (namespace.trim().length() > 0)) {
-                        java.lang.String writerPrefix = xmlWriter.getPrefix(namespace);
-                        if (writerPrefix != null) {
-                            xmlWriter.writeStartElement(namespace, parentQName.getLocalPart());
-                        } else {
-                            if (prefix == null) {
-                                prefix = generatePrefix(namespace);
-                            }
-
-                            xmlWriter.writeStartElement(prefix, parentQName.getLocalPart(), namespace);
-                            xmlWriter.writeNamespace(prefix, namespace);
-                            xmlWriter.setPrefix(prefix, namespace);
-                        }
-                    } else {
-                        xmlWriter.writeStartElement(parentQName.getLocalPart());
-                    }
-                
-                  if (serializeType){
-               
-                   java.lang.String namespacePrefix = registerPrefix(xmlWriter,"http://www.w3.org/2001/XMLSchema");
-                   if ((namespacePrefix != null) && (namespacePrefix.trim().length() > 0)){
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           namespacePrefix+":integer",
-                           xmlWriter);
-                   } else {
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           "integer",
-                           xmlWriter);
-                   }
-
-               
-                   }
-               
-
-                                          if (localInteger==null){
-                                              // write the nil attribute
-                                              
-                                                     throw new org.apache.axis2.databinding.ADBException("integer cannot be null!!");
-                                                  
-                                          }else{
-
-                                        
-                                                   xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(localInteger));
-                                            
-                                          }
-                                    
-                    xmlWriter.writeEndElement();
-               
-
-        }
-
-         /**
-          * Util method to write an attribute with the ns prefix
-          */
-          private void writeAttribute(java.lang.String prefix,java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-              if (xmlWriter.getPrefix(namespace) == null) {
-                       xmlWriter.writeNamespace(prefix, namespace);
-                       xmlWriter.setPrefix(prefix, namespace);
-
-              }
-
-              xmlWriter.writeAttribute(namespace,attName,attValue);
-
-         }
-
-        /**
-          * Util method to write an attribute without the ns prefix
-          */
-          private void writeAttribute(java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-                if (namespace.equals(""))
-              {
-                  xmlWriter.writeAttribute(attName,attValue);
-              }
-              else
-              {
-                  registerPrefix(xmlWriter, namespace);
-                  xmlWriter.writeAttribute(namespace,attName,attValue);
-              }
-          }
-
-
-           /**
-             * Util method to write an attribute without the ns prefix
-             */
-            private void writeQNameAttribute(java.lang.String namespace, java.lang.String attName,
-                                             javax.xml.namespace.QName qname, javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-                java.lang.String attributeNamespace = qname.getNamespaceURI();
-                java.lang.String attributePrefix = xmlWriter.getPrefix(attributeNamespace);
-                if (attributePrefix == null) {
-                    attributePrefix = registerPrefix(xmlWriter, attributeNamespace);
-                }
-                java.lang.String attributeValue;
-                if (attributePrefix.trim().length() > 0) {
-                    attributeValue = attributePrefix + ":" + qname.getLocalPart();
-                } else {
-                    attributeValue = qname.getLocalPart();
-                }
-
-                if (namespace.equals("")) {
-                    xmlWriter.writeAttribute(attName, attributeValue);
-                } else {
-                    registerPrefix(xmlWriter, namespace);
-                    xmlWriter.writeAttribute(namespace, attName, attributeValue);
-                }
-            }
-        /**
-         *  method to handle Qnames
-         */
-
-        private void writeQName(javax.xml.namespace.QName qname,
-                                javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-            java.lang.String namespaceURI = qname.getNamespaceURI();
-            if (namespaceURI != null) {
-                java.lang.String prefix = xmlWriter.getPrefix(namespaceURI);
-                if (prefix == null) {
-                    prefix = generatePrefix(namespaceURI);
-                    xmlWriter.writeNamespace(prefix, namespaceURI);
-                    xmlWriter.setPrefix(prefix,namespaceURI);
-                }
-
-                if (prefix.trim().length() > 0){
-                    xmlWriter.writeCharacters(prefix + ":" + org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                } else {
-                    // i.e this is the default namespace
-                    xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                }
-
-            } else {
-                xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-            }
-        }
-
-        private void writeQNames(javax.xml.namespace.QName[] qnames,
-                                 javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-            if (qnames != null) {
-                // we have to store this data until last moment since it is not possible to write any
-                // namespace data after writing the charactor data
-                java.lang.StringBuffer stringToWrite = new java.lang.StringBuffer();
-                java.lang.String namespaceURI = null;
-                java.lang.String prefix = null;
-
-                for (int i = 0; i < qnames.length; i++) {
-                    if (i > 0) {
-                        stringToWrite.append(" ");
-                    }
-                    namespaceURI = qnames[i].getNamespaceURI();
-                    if (namespaceURI != null) {
-                        prefix = xmlWriter.getPrefix(namespaceURI);
-                        if ((prefix == null) || (prefix.length() == 0)) {
-                            prefix = generatePrefix(namespaceURI);
-                            xmlWriter.writeNamespace(prefix, namespaceURI);
-                            xmlWriter.setPrefix(prefix,namespaceURI);
-                        }
-
-                        if (prefix.trim().length() > 0){
-                            stringToWrite.append(prefix).append(":").append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        } else {
-                            stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        }
-                    } else {
-                        stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                    }
-                }
-                xmlWriter.writeCharacters(stringToWrite.toString());
-            }
-
-        }
-
-
-         /**
-         * Register a namespace prefix
-         */
-         private java.lang.String registerPrefix(javax.xml.stream.XMLStreamWriter xmlWriter, java.lang.String namespace) throws javax.xml.stream.XMLStreamException {
-                java.lang.String prefix = xmlWriter.getPrefix(namespace);
-
-                if (prefix == null) {
-                    prefix = generatePrefix(namespace);
-                    javax.xml.namespace.NamespaceContext nsContext = xmlWriter.getNamespaceContext();
-                    while (true) {
-                        java.lang.String uri = nsContext.getNamespaceURI(prefix);
-                        if (uri == null || uri.length() == 0) {
-                            break;
-                        }
-                        prefix = org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-                    }
-                    xmlWriter.writeNamespace(prefix, namespace);
-                    xmlWriter.setPrefix(prefix, namespace);
-                }
-
-                return prefix;
-            }
-
-
-  
-     /**
-      *  Factory class that keeps the parse method
-      */
-    public static class Factory{
-
-        
-        
-                public static Integer fromString(java.lang.String value,
-                                                    java.lang.String namespaceURI){
-                    Integer returnValue = new  Integer();
-                    
-                            returnValue.setInteger(
-                                org.apache.axis2.databinding.utils.ConverterUtil.convertToInteger(value));
-                        
-
-                    return returnValue;
-                }
-
-                public static Integer fromString(javax.xml.stream.XMLStreamReader xmlStreamReader,
-                                                                    java.lang.String content) {
-                    if (content.indexOf(":") > -1){
-                        java.lang.String prefix = content.substring(0,content.indexOf(":"));
-                        java.lang.String namespaceUri = xmlStreamReader.getNamespaceContext().getNamespaceURI(prefix);
-                        return Integer.Factory.fromString(content,namespaceUri);
-                    } else {
-                       return Integer.Factory.fromString(content,"");
-                    }
-                }
-
-            
-
-        /**
-        * static method to create the object
-        * Precondition:  If this object is an element, the current or next start element starts this object and any intervening reader events are ignorable
-        *                If this object is not an element, it is a complex type and the reader is at the event just after the outer start element
-        * Postcondition: If this object is an element, the reader is positioned at its end element
-        *                If this object is a complex type, the reader is positioned at the end element of its outer element
-        */
-        public static Integer parse(javax.xml.stream.XMLStreamReader reader) throws java.lang.Exception{
-            Integer object =
-                new Integer();
-
-            int event;
-            java.lang.String nillableValue = null;
-            java.lang.String prefix ="";
-            java.lang.String namespaceuri ="";
-            try {
-                
-                while (!reader.isStartElement() && !reader.isEndElement())
-                    reader.next();
-
-                
-                if (reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance","type")!=null){
-                  java.lang.String fullTypeName = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance",
-                        "type");
-                  if (fullTypeName!=null){
-                    java.lang.String nsPrefix = null;
-                    if (fullTypeName.indexOf(":") > -1){
-                        nsPrefix = fullTypeName.substring(0,fullTypeName.indexOf(":"));
-                    }
-                    nsPrefix = nsPrefix==null?"":nsPrefix;
-
-                    java.lang.String type = fullTypeName.substring(fullTypeName.indexOf(":")+1);
-                    
-                            if (!"integer".equals(type)){
-                                //find namespace for the prefix
-                                java.lang.String nsUri = reader.getNamespaceContext().getNamespaceURI(nsPrefix);
-                                return (Integer)org.apache.axis2.databinding.types.xsd.ExtensionMapper.getTypeObject(
-                                     nsUri,type,reader);
-                              }
-                        
-
-                  }
-                
-
-                }
-
-                
-
-                
-                // Note all attributes that were handled. Used to differ normal attributes
-                // from anyAttributes.
-                java.util.Vector handledAttributes = new java.util.Vector();
-                
-
-                    
-                while(!reader.isEndElement()) {
-                    if (reader.isStartElement()  || reader.hasText()){
-                
-                                    if (reader.isStartElement()  || reader.hasText()){
-                                
-                                    java.lang.String content = reader.getElementText();
-                                    
-                                              object.setInteger(
-                                                    org.apache.axis2.databinding.utils.ConverterUtil.convertToInteger(content));
-                                            
-                              }  // End of if for expected property start element
-                                
-                             else{
-                                        // A start element we are not expecting indicates an invalid parameter was passed
-                                        throw new org.apache.axis2.databinding.ADBException("Unexpected subelement " + reader.getLocalName());
-                             }
-                          
-                             } else {
-                                reader.next();
-                             }  
-                           }  // end of while loop
-                        
-
-
-
-            } catch (javax.xml.stream.XMLStreamException e) {
-                throw new java.lang.Exception(e);
-            }
-
-            return object;
-        }
-
-        }//end of factory class
-
-        
-
-        }
-           
-          
\ No newline at end of file
diff --git a/modules/adb/src/org/apache/axis2/databinding/types/xsd/Language.java b/modules/adb/src/org/apache/axis2/databinding/types/xsd/Language.java
deleted file mode 100644
index 5d610a8..0000000
--- a/modules/adb/src/org/apache/axis2/databinding/types/xsd/Language.java
+++ /dev/null
@@ -1,469 +0,0 @@
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/**
- * Language.java
- *
- * This file was auto-generated from WSDL
- * by the Apache Axis2 version: SNAPSHOT  Built on : Dec 21, 2007 (04:03:30 LKT)
- */
-            
-                package org.apache.axis2.databinding.types.xsd;
-
-import javax.xml.stream.XMLStreamWriter;
-            
-
-            /**
-            *  Language bean class
-            */
-        
-        public  class Language
-        implements org.apache.axis2.databinding.ADBBean{
-        /* This type was generated from the piece of schema that had
-                name = language
-                Namespace URI = http://www.w3.org/2001/XMLSchema
-                Namespace Prefix = ns1
-                */
-            
-
-        private static java.lang.String generatePrefix(java.lang.String namespace) {
-            if(namespace.equals("http://www.w3.org/2001/XMLSchema")){
-                return "xsd";
-            }
-            return org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-        }
-
-        
-
-                        /**
-                        * field for Language
-                        */
-
-                        
-                                    protected org.apache.axis2.databinding.types.Language localLanguage ;
-                                
-
-                           /**
-                           * Auto generated getter method
-                           * @return org.apache.axis2.databinding.types.Language
-                           */
-                           public  org.apache.axis2.databinding.types.Language getLanguage(){
-                               return localLanguage;
-                           }
-
-                           
-                        
-                            /**
-                               * Auto generated setter method
-                               * @param param Language
-                               */
-                               public void setLanguage(org.apache.axis2.databinding.types.Language param){
-                            
-                                            this.localLanguage=param;
-                                    
-
-                               }
-                            
-
-                            public java.lang.String toString(){
-                                
-                                        return localLanguage.toString();
-                                    
-                            }
-                        
-
-     /**
-     * isReaderMTOMAware
-     * @return true if the reader supports MTOM
-     */
-   public static boolean isReaderMTOMAware(javax.xml.stream.XMLStreamReader reader) {
-        boolean isReaderMTOMAware = false;
-        
-        try{
-          isReaderMTOMAware = java.lang.Boolean.TRUE.equals(reader.getProperty(org.apache.axiom.om.OMConstants.IS_DATA_HANDLERS_AWARE));
-        }catch(java.lang.IllegalArgumentException e){
-          isReaderMTOMAware = false;
-        }
-        return isReaderMTOMAware;
-   }
-     
-     
-        /**
-        *
-        * @param parentQName
-        * @param factory
-        * @return org.apache.axiom.om.OMElement
-        */
-       public org.apache.axiom.om.OMElement getOMElement (
-               final javax.xml.namespace.QName parentQName,
-               final org.apache.axiom.om.OMFactory factory) throws org.apache.axis2.databinding.ADBException{
-
-
-        
-               org.apache.axiom.om.OMDataSource dataSource =
-                       new org.apache.axis2.databinding.ADBDataSource(this,parentQName);
-               return factory.createOMElement(dataSource,parentQName);
-            
-       }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                                       XMLStreamWriter xmlWriter)
-                                throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-                           serialize(parentQName,xmlWriter,false);
-         }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                               XMLStreamWriter xmlWriter,
-                               boolean serializeType)
-            throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-            
-                
-
-
-                java.lang.String prefix = null;
-                java.lang.String namespace = null;
-                
-
-                    prefix = parentQName.getPrefix();
-                    namespace = parentQName.getNamespaceURI();
-
-                    if ((namespace != null) && (namespace.trim().length() > 0)) {
-                        java.lang.String writerPrefix = xmlWriter.getPrefix(namespace);
-                        if (writerPrefix != null) {
-                            xmlWriter.writeStartElement(namespace, parentQName.getLocalPart());
-                        } else {
-                            if (prefix == null) {
-                                prefix = generatePrefix(namespace);
-                            }
-
-                            xmlWriter.writeStartElement(prefix, parentQName.getLocalPart(), namespace);
-                            xmlWriter.writeNamespace(prefix, namespace);
-                            xmlWriter.setPrefix(prefix, namespace);
-                        }
-                    } else {
-                        xmlWriter.writeStartElement(parentQName.getLocalPart());
-                    }
-                
-                  if (serializeType){
-               
-                   java.lang.String namespacePrefix = registerPrefix(xmlWriter,"http://www.w3.org/2001/XMLSchema");
-                   if ((namespacePrefix != null) && (namespacePrefix.trim().length() > 0)){
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           namespacePrefix+":language",
-                           xmlWriter);
-                   } else {
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           "language",
-                           xmlWriter);
-                   }
-
-               
-                   }
-               
-
-                                          if (localLanguage==null){
-                                              // write the nil attribute
-                                              
-                                                     throw new org.apache.axis2.databinding.ADBException("language cannot be null!!");
-                                                  
-                                          }else{
-
-                                        
-                                                   xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(localLanguage));
-                                            
-                                          }
-                                    
-                    xmlWriter.writeEndElement();
-               
-
-        }
-
-         /**
-          * Util method to write an attribute with the ns prefix
-          */
-          private void writeAttribute(java.lang.String prefix,java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-              if (xmlWriter.getPrefix(namespace) == null) {
-                       xmlWriter.writeNamespace(prefix, namespace);
-                       xmlWriter.setPrefix(prefix, namespace);
-
-              }
-
-              xmlWriter.writeAttribute(namespace,attName,attValue);
-
-         }
-
-        /**
-          * Util method to write an attribute without the ns prefix
-          */
-          private void writeAttribute(java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-                if (namespace.equals(""))
-              {
-                  xmlWriter.writeAttribute(attName,attValue);
-              }
-              else
-              {
-                  registerPrefix(xmlWriter, namespace);
-                  xmlWriter.writeAttribute(namespace,attName,attValue);
-              }
-          }
-
-
-           /**
-             * Util method to write an attribute without the ns prefix
-             */
-            private void writeQNameAttribute(java.lang.String namespace, java.lang.String attName,
-                                             javax.xml.namespace.QName qname, javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-                java.lang.String attributeNamespace = qname.getNamespaceURI();
-                java.lang.String attributePrefix = xmlWriter.getPrefix(attributeNamespace);
-                if (attributePrefix == null) {
-                    attributePrefix = registerPrefix(xmlWriter, attributeNamespace);
-                }
-                java.lang.String attributeValue;
-                if (attributePrefix.trim().length() > 0) {
-                    attributeValue = attributePrefix + ":" + qname.getLocalPart();
-                } else {
-                    attributeValue = qname.getLocalPart();
-                }
-
-                if (namespace.equals("")) {
-                    xmlWriter.writeAttribute(attName, attributeValue);
-                } else {
-                    registerPrefix(xmlWriter, namespace);
-                    xmlWriter.writeAttribute(namespace, attName, attributeValue);
-                }
-            }
-        /**
-         *  method to handle Qnames
-         */
-
-        private void writeQName(javax.xml.namespace.QName qname,
-                                javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-            java.lang.String namespaceURI = qname.getNamespaceURI();
-            if (namespaceURI != null) {
-                java.lang.String prefix = xmlWriter.getPrefix(namespaceURI);
-                if (prefix == null) {
-                    prefix = generatePrefix(namespaceURI);
-                    xmlWriter.writeNamespace(prefix, namespaceURI);
-                    xmlWriter.setPrefix(prefix,namespaceURI);
-                }
-
-                if (prefix.trim().length() > 0){
-                    xmlWriter.writeCharacters(prefix + ":" + org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                } else {
-                    // i.e this is the default namespace
-                    xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                }
-
-            } else {
-                xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-            }
-        }
-
-        private void writeQNames(javax.xml.namespace.QName[] qnames,
-                                 javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-            if (qnames != null) {
-                // we have to store this data until last moment since it is not possible to write any
-                // namespace data after writing the charactor data
-                java.lang.StringBuffer stringToWrite = new java.lang.StringBuffer();
-                java.lang.String namespaceURI = null;
-                java.lang.String prefix = null;
-
-                for (int i = 0; i < qnames.length; i++) {
-                    if (i > 0) {
-                        stringToWrite.append(" ");
-                    }
-                    namespaceURI = qnames[i].getNamespaceURI();
-                    if (namespaceURI != null) {
-                        prefix = xmlWriter.getPrefix(namespaceURI);
-                        if ((prefix == null) || (prefix.length() == 0)) {
-                            prefix = generatePrefix(namespaceURI);
-                            xmlWriter.writeNamespace(prefix, namespaceURI);
-                            xmlWriter.setPrefix(prefix,namespaceURI);
-                        }
-
-                        if (prefix.trim().length() > 0){
-                            stringToWrite.append(prefix).append(":").append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        } else {
-                            stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        }
-                    } else {
-                        stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                    }
-                }
-                xmlWriter.writeCharacters(stringToWrite.toString());
-            }
-
-        }
-
-
-         /**
-         * Register a namespace prefix
-         */
-         private java.lang.String registerPrefix(javax.xml.stream.XMLStreamWriter xmlWriter, java.lang.String namespace) throws javax.xml.stream.XMLStreamException {
-                java.lang.String prefix = xmlWriter.getPrefix(namespace);
-
-                if (prefix == null) {
-                    prefix = generatePrefix(namespace);
-                    javax.xml.namespace.NamespaceContext nsContext = xmlWriter.getNamespaceContext();
-                    while (true) {
-                        java.lang.String uri = nsContext.getNamespaceURI(prefix);
-                        if (uri == null || uri.length() == 0) {
-                            break;
-                        }
-                        prefix = org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-                    }
-                    xmlWriter.writeNamespace(prefix, namespace);
-                    xmlWriter.setPrefix(prefix, namespace);
-                }
-
-                return prefix;
-            }
-
-
-  
-     /**
-      *  Factory class that keeps the parse method
-      */
-    public static class Factory{
-
-        
-        
-                public static Language fromString(java.lang.String value,
-                                                    java.lang.String namespaceURI){
-                    Language returnValue = new  Language();
-                    
-                            returnValue.setLanguage(
-                                org.apache.axis2.databinding.utils.ConverterUtil.convertToLanguage(value));
-                        
-
-                    return returnValue;
-                }
-
-                public static Language fromString(javax.xml.stream.XMLStreamReader xmlStreamReader,
-                                                                    java.lang.String content) {
-                    if (content.indexOf(":") > -1){
-                        java.lang.String prefix = content.substring(0,content.indexOf(":"));
-                        java.lang.String namespaceUri = xmlStreamReader.getNamespaceContext().getNamespaceURI(prefix);
-                        return Language.Factory.fromString(content,namespaceUri);
-                    } else {
-                       return Language.Factory.fromString(content,"");
-                    }
-                }
-
-            
-
-        /**
-        * static method to create the object
-        * Precondition:  If this object is an element, the current or next start element starts this object and any intervening reader events are ignorable
-        *                If this object is not an element, it is a complex type and the reader is at the event just after the outer start element
-        * Postcondition: If this object is an element, the reader is positioned at its end element
-        *                If this object is a complex type, the reader is positioned at the end element of its outer element
-        */
-        public static Language parse(javax.xml.stream.XMLStreamReader reader) throws java.lang.Exception{
-            Language object =
-                new Language();
-
-            int event;
-            java.lang.String nillableValue = null;
-            java.lang.String prefix ="";
-            java.lang.String namespaceuri ="";
-            try {
-                
-                while (!reader.isStartElement() && !reader.isEndElement())
-                    reader.next();
-
-                
-                if (reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance","type")!=null){
-                  java.lang.String fullTypeName = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance",
-                        "type");
-                  if (fullTypeName!=null){
-                    java.lang.String nsPrefix = null;
-                    if (fullTypeName.indexOf(":") > -1){
-                        nsPrefix = fullTypeName.substring(0,fullTypeName.indexOf(":"));
-                    }
-                    nsPrefix = nsPrefix==null?"":nsPrefix;
-
-                    java.lang.String type = fullTypeName.substring(fullTypeName.indexOf(":")+1);
-                    
-                            if (!"language".equals(type)){
-                                //find namespace for the prefix
-                                java.lang.String nsUri = reader.getNamespaceContext().getNamespaceURI(nsPrefix);
-                                return (Language)org.apache.axis2.databinding.types.xsd.ExtensionMapper.getTypeObject(
-                                     nsUri,type,reader);
-                              }
-                        
-
-                  }
-                
-
-                }
-
-                
-
-                
-                // Note all attributes that were handled. Used to differ normal attributes
-                // from anyAttributes.
-                java.util.Vector handledAttributes = new java.util.Vector();
-                
-
-                    
-                while(!reader.isEndElement()) {
-                    if (reader.isStartElement()  || reader.hasText()){
-                
-                                    if (reader.isStartElement()  || reader.hasText()){
-                                
-                                    java.lang.String content = reader.getElementText();
-                                    
-                                              object.setLanguage(
-                                                    org.apache.axis2.databinding.utils.ConverterUtil.convertToLanguage(content));
-                                            
-                              }  // End of if for expected property start element
-                                
-                             else{
-                                        // A start element we are not expecting indicates an invalid parameter was passed
-                                        throw new org.apache.axis2.databinding.ADBException("Unexpected subelement " + reader.getLocalName());
-                             }
-                          
-                             } else {
-                                reader.next();
-                             }  
-                           }  // end of while loop
-                        
-
-
-
-            } catch (javax.xml.stream.XMLStreamException e) {
-                throw new java.lang.Exception(e);
-            }
-
-            return object;
-        }
-
-        }//end of factory class
-
-        
-
-        }
-           
-          
\ No newline at end of file
diff --git a/modules/adb/src/org/apache/axis2/databinding/types/xsd/NCName.java b/modules/adb/src/org/apache/axis2/databinding/types/xsd/NCName.java
deleted file mode 100644
index 78e4759..0000000
--- a/modules/adb/src/org/apache/axis2/databinding/types/xsd/NCName.java
+++ /dev/null
@@ -1,469 +0,0 @@
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/**
- * NCName.java
- *
- * This file was auto-generated from WSDL
- * by the Apache Axis2 version: SNAPSHOT  Built on : Dec 21, 2007 (04:03:30 LKT)
- */
-            
-                package org.apache.axis2.databinding.types.xsd;
-
-import javax.xml.stream.XMLStreamWriter;
-            
-
-            /**
-            *  NCName bean class
-            */
-        
-        public  class NCName
-        implements org.apache.axis2.databinding.ADBBean{
-        /* This type was generated from the piece of schema that had
-                name = NCName
-                Namespace URI = http://www.w3.org/2001/XMLSchema
-                Namespace Prefix = ns1
-                */
-            
-
-        private static java.lang.String generatePrefix(java.lang.String namespace) {
-            if(namespace.equals("http://www.w3.org/2001/XMLSchema")){
-                return "xsd";
-            }
-            return org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-        }
-
-        
-
-                        /**
-                        * field for NCName
-                        */
-
-                        
-                                    protected org.apache.axis2.databinding.types.NCName localNCName ;
-                                
-
-                           /**
-                           * Auto generated getter method
-                           * @return org.apache.axis2.databinding.types.NCName
-                           */
-                           public  org.apache.axis2.databinding.types.NCName getNCName(){
-                               return localNCName;
-                           }
-
-                           
-                        
-                            /**
-                               * Auto generated setter method
-                               * @param param NCName
-                               */
-                               public void setNCName(org.apache.axis2.databinding.types.NCName param){
-                            
-                                            this.localNCName=param;
-                                    
-
-                               }
-                            
-
-                            public java.lang.String toString(){
-                                
-                                        return localNCName.toString();
-                                    
-                            }
-                        
-
-     /**
-     * isReaderMTOMAware
-     * @return true if the reader supports MTOM
-     */
-   public static boolean isReaderMTOMAware(javax.xml.stream.XMLStreamReader reader) {
-        boolean isReaderMTOMAware = false;
-        
-        try{
-          isReaderMTOMAware = java.lang.Boolean.TRUE.equals(reader.getProperty(org.apache.axiom.om.OMConstants.IS_DATA_HANDLERS_AWARE));
-        }catch(java.lang.IllegalArgumentException e){
-          isReaderMTOMAware = false;
-        }
-        return isReaderMTOMAware;
-   }
-     
-     
-        /**
-        *
-        * @param parentQName
-        * @param factory
-        * @return org.apache.axiom.om.OMElement
-        */
-       public org.apache.axiom.om.OMElement getOMElement (
-               final javax.xml.namespace.QName parentQName,
-               final org.apache.axiom.om.OMFactory factory) throws org.apache.axis2.databinding.ADBException{
-
-
-        
-               org.apache.axiom.om.OMDataSource dataSource =
-                       new org.apache.axis2.databinding.ADBDataSource(this,parentQName);
-               return factory.createOMElement(dataSource,parentQName);
-            
-       }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                                       XMLStreamWriter xmlWriter)
-                                throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-                           serialize(parentQName,xmlWriter,false);
-         }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                               XMLStreamWriter xmlWriter,
-                               boolean serializeType)
-            throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-            
-                
-
-
-                java.lang.String prefix = null;
-                java.lang.String namespace = null;
-                
-
-                    prefix = parentQName.getPrefix();
-                    namespace = parentQName.getNamespaceURI();
-
-                    if ((namespace != null) && (namespace.trim().length() > 0)) {
-                        java.lang.String writerPrefix = xmlWriter.getPrefix(namespace);
-                        if (writerPrefix != null) {
-                            xmlWriter.writeStartElement(namespace, parentQName.getLocalPart());
-                        } else {
-                            if (prefix == null) {
-                                prefix = generatePrefix(namespace);
-                            }
-
-                            xmlWriter.writeStartElement(prefix, parentQName.getLocalPart(), namespace);
-                            xmlWriter.writeNamespace(prefix, namespace);
-                            xmlWriter.setPrefix(prefix, namespace);
-                        }
-                    } else {
-                        xmlWriter.writeStartElement(parentQName.getLocalPart());
-                    }
-                
-                  if (serializeType){
-               
-                   java.lang.String namespacePrefix = registerPrefix(xmlWriter,"http://www.w3.org/2001/XMLSchema");
-                   if ((namespacePrefix != null) && (namespacePrefix.trim().length() > 0)){
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           namespacePrefix+":NCName",
-                           xmlWriter);
-                   } else {
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           "NCName",
-                           xmlWriter);
-                   }
-
-               
-                   }
-               
-
-                                          if (localNCName==null){
-                                              // write the nil attribute
-                                              
-                                                     throw new org.apache.axis2.databinding.ADBException("NCName cannot be null!!");
-                                                  
-                                          }else{
-
-                                        
-                                                   xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(localNCName));
-                                            
-                                          }
-                                    
-                    xmlWriter.writeEndElement();
-               
-
-        }
-
-         /**
-          * Util method to write an attribute with the ns prefix
-          */
-          private void writeAttribute(java.lang.String prefix,java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-              if (xmlWriter.getPrefix(namespace) == null) {
-                       xmlWriter.writeNamespace(prefix, namespace);
-                       xmlWriter.setPrefix(prefix, namespace);
-
-              }
-
-              xmlWriter.writeAttribute(namespace,attName,attValue);
-
-         }
-
-        /**
-          * Util method to write an attribute without the ns prefix
-          */
-          private void writeAttribute(java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-                if (namespace.equals(""))
-              {
-                  xmlWriter.writeAttribute(attName,attValue);
-              }
-              else
-              {
-                  registerPrefix(xmlWriter, namespace);
-                  xmlWriter.writeAttribute(namespace,attName,attValue);
-              }
-          }
-
-
-           /**
-             * Util method to write an attribute without the ns prefix
-             */
-            private void writeQNameAttribute(java.lang.String namespace, java.lang.String attName,
-                                             javax.xml.namespace.QName qname, javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-                java.lang.String attributeNamespace = qname.getNamespaceURI();
-                java.lang.String attributePrefix = xmlWriter.getPrefix(attributeNamespace);
-                if (attributePrefix == null) {
-                    attributePrefix = registerPrefix(xmlWriter, attributeNamespace);
-                }
-                java.lang.String attributeValue;
-                if (attributePrefix.trim().length() > 0) {
-                    attributeValue = attributePrefix + ":" + qname.getLocalPart();
-                } else {
-                    attributeValue = qname.getLocalPart();
-                }
-
-                if (namespace.equals("")) {
-                    xmlWriter.writeAttribute(attName, attributeValue);
-                } else {
-                    registerPrefix(xmlWriter, namespace);
-                    xmlWriter.writeAttribute(namespace, attName, attributeValue);
-                }
-            }
-        /**
-         *  method to handle Qnames
-         */
-
-        private void writeQName(javax.xml.namespace.QName qname,
-                                javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-            java.lang.String namespaceURI = qname.getNamespaceURI();
-            if (namespaceURI != null) {
-                java.lang.String prefix = xmlWriter.getPrefix(namespaceURI);
-                if (prefix == null) {
-                    prefix = generatePrefix(namespaceURI);
-                    xmlWriter.writeNamespace(prefix, namespaceURI);
-                    xmlWriter.setPrefix(prefix,namespaceURI);
-                }
-
-                if (prefix.trim().length() > 0){
-                    xmlWriter.writeCharacters(prefix + ":" + org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                } else {
-                    // i.e this is the default namespace
-                    xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                }
-
-            } else {
-                xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-            }
-        }
-
-        private void writeQNames(javax.xml.namespace.QName[] qnames,
-                                 javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-            if (qnames != null) {
-                // we have to store this data until last moment since it is not possible to write any
-                // namespace data after writing the charactor data
-                java.lang.StringBuffer stringToWrite = new java.lang.StringBuffer();
-                java.lang.String namespaceURI = null;
-                java.lang.String prefix = null;
-
-                for (int i = 0; i < qnames.length; i++) {
-                    if (i > 0) {
-                        stringToWrite.append(" ");
-                    }
-                    namespaceURI = qnames[i].getNamespaceURI();
-                    if (namespaceURI != null) {
-                        prefix = xmlWriter.getPrefix(namespaceURI);
-                        if ((prefix == null) || (prefix.length() == 0)) {
-                            prefix = generatePrefix(namespaceURI);
-                            xmlWriter.writeNamespace(prefix, namespaceURI);
-                            xmlWriter.setPrefix(prefix,namespaceURI);
-                        }
-
-                        if (prefix.trim().length() > 0){
-                            stringToWrite.append(prefix).append(":").append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        } else {
-                            stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        }
-                    } else {
-                        stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                    }
-                }
-                xmlWriter.writeCharacters(stringToWrite.toString());
-            }
-
-        }
-
-
-         /**
-         * Register a namespace prefix
-         */
-         private java.lang.String registerPrefix(javax.xml.stream.XMLStreamWriter xmlWriter, java.lang.String namespace) throws javax.xml.stream.XMLStreamException {
-                java.lang.String prefix = xmlWriter.getPrefix(namespace);
-
-                if (prefix == null) {
-                    prefix = generatePrefix(namespace);
-                    javax.xml.namespace.NamespaceContext nsContext = xmlWriter.getNamespaceContext();
-                    while (true) {
-                        java.lang.String uri = nsContext.getNamespaceURI(prefix);
-                        if (uri == null || uri.length() == 0) {
-                            break;
-                        }
-                        prefix = org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-                    }
-                    xmlWriter.writeNamespace(prefix, namespace);
-                    xmlWriter.setPrefix(prefix, namespace);
-                }
-
-                return prefix;
-            }
-
-
-  
-     /**
-      *  Factory class that keeps the parse method
-      */
-    public static class Factory{
-
-        
-        
-                public static NCName fromString(java.lang.String value,
-                                                    java.lang.String namespaceURI){
-                    NCName returnValue = new  NCName();
-                    
-                            returnValue.setNCName(
-                                org.apache.axis2.databinding.utils.ConverterUtil.convertToNCName(value));
-                        
-
-                    return returnValue;
-                }
-
-                public static NCName fromString(javax.xml.stream.XMLStreamReader xmlStreamReader,
-                                                                    java.lang.String content) {
-                    if (content.indexOf(":") > -1){
-                        java.lang.String prefix = content.substring(0,content.indexOf(":"));
-                        java.lang.String namespaceUri = xmlStreamReader.getNamespaceContext().getNamespaceURI(prefix);
-                        return NCName.Factory.fromString(content,namespaceUri);
-                    } else {
-                       return NCName.Factory.fromString(content,"");
-                    }
-                }
-
-            
-
-        /**
-        * static method to create the object
-        * Precondition:  If this object is an element, the current or next start element starts this object and any intervening reader events are ignorable
-        *                If this object is not an element, it is a complex type and the reader is at the event just after the outer start element
-        * Postcondition: If this object is an element, the reader is positioned at its end element
-        *                If this object is a complex type, the reader is positioned at the end element of its outer element
-        */
-        public static NCName parse(javax.xml.stream.XMLStreamReader reader) throws java.lang.Exception{
-            NCName object =
-                new NCName();
-
-            int event;
-            java.lang.String nillableValue = null;
-            java.lang.String prefix ="";
-            java.lang.String namespaceuri ="";
-            try {
-                
-                while (!reader.isStartElement() && !reader.isEndElement())
-                    reader.next();
-
-                
-                if (reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance","type")!=null){
-                  java.lang.String fullTypeName = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance",
-                        "type");
-                  if (fullTypeName!=null){
-                    java.lang.String nsPrefix = null;
-                    if (fullTypeName.indexOf(":") > -1){
-                        nsPrefix = fullTypeName.substring(0,fullTypeName.indexOf(":"));
-                    }
-                    nsPrefix = nsPrefix==null?"":nsPrefix;
-
-                    java.lang.String type = fullTypeName.substring(fullTypeName.indexOf(":")+1);
-                    
-                            if (!"NCName".equals(type)){
-                                //find namespace for the prefix
-                                java.lang.String nsUri = reader.getNamespaceContext().getNamespaceURI(nsPrefix);
-                                return (NCName)org.apache.axis2.databinding.types.xsd.ExtensionMapper.getTypeObject(
-                                     nsUri,type,reader);
-                              }
-                        
-
-                  }
-                
-
-                }
-
-                
-
-                
-                // Note all attributes that were handled. Used to differ normal attributes
-                // from anyAttributes.
-                java.util.Vector handledAttributes = new java.util.Vector();
-                
-
-                    
-                while(!reader.isEndElement()) {
-                    if (reader.isStartElement()  || reader.hasText()){
-                
-                                    if (reader.isStartElement()  || reader.hasText()){
-                                
-                                    java.lang.String content = reader.getElementText();
-                                    
-                                              object.setNCName(
-                                                    org.apache.axis2.databinding.utils.ConverterUtil.convertToNCName(content));
-                                            
-                              }  // End of if for expected property start element
-                                
-                             else{
-                                        // A start element we are not expecting indicates an invalid parameter was passed
-                                        throw new org.apache.axis2.databinding.ADBException("Unexpected subelement " + reader.getLocalName());
-                             }
-                          
-                             } else {
-                                reader.next();
-                             }  
-                           }  // end of while loop
-                        
-
-
-
-            } catch (javax.xml.stream.XMLStreamException e) {
-                throw new java.lang.Exception(e);
-            }
-
-            return object;
-        }
-
-        }//end of factory class
-
-        
-
-        }
-           
-          
\ No newline at end of file
diff --git a/modules/adb/src/org/apache/axis2/databinding/types/xsd/NMTOKEN.java b/modules/adb/src/org/apache/axis2/databinding/types/xsd/NMTOKEN.java
deleted file mode 100644
index d956781..0000000
--- a/modules/adb/src/org/apache/axis2/databinding/types/xsd/NMTOKEN.java
+++ /dev/null
@@ -1,469 +0,0 @@
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/**
- * NMTOKEN.java
- *
- * This file was auto-generated from WSDL
- * by the Apache Axis2 version: SNAPSHOT  Built on : Dec 21, 2007 (04:03:30 LKT)
- */
-            
-                package org.apache.axis2.databinding.types.xsd;
-
-import javax.xml.stream.XMLStreamWriter;
-            
-
-            /**
-            *  NMTOKEN bean class
-            */
-        
-        public  class NMTOKEN
-        implements org.apache.axis2.databinding.ADBBean{
-        /* This type was generated from the piece of schema that had
-                name = NMTOKEN
-                Namespace URI = http://www.w3.org/2001/XMLSchema
-                Namespace Prefix = ns1
-                */
-            
-
-        private static java.lang.String generatePrefix(java.lang.String namespace) {
-            if(namespace.equals("http://www.w3.org/2001/XMLSchema")){
-                return "xsd";
-            }
-            return org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-        }
-
-        
-
-                        /**
-                        * field for NMTOKEN
-                        */
-
-                        
-                                    protected org.apache.axis2.databinding.types.NMToken localNMTOKEN ;
-                                
-
-                           /**
-                           * Auto generated getter method
-                           * @return org.apache.axis2.databinding.types.NMToken
-                           */
-                           public  org.apache.axis2.databinding.types.NMToken getNMTOKEN(){
-                               return localNMTOKEN;
-                           }
-
-                           
-                        
-                            /**
-                               * Auto generated setter method
-                               * @param param NMTOKEN
-                               */
-                               public void setNMTOKEN(org.apache.axis2.databinding.types.NMToken param){
-                            
-                                            this.localNMTOKEN=param;
-                                    
-
-                               }
-                            
-
-                            public java.lang.String toString(){
-                                
-                                        return localNMTOKEN.toString();
-                                    
-                            }
-                        
-
-     /**
-     * isReaderMTOMAware
-     * @return true if the reader supports MTOM
-     */
-   public static boolean isReaderMTOMAware(javax.xml.stream.XMLStreamReader reader) {
-        boolean isReaderMTOMAware = false;
-        
-        try{
-          isReaderMTOMAware = java.lang.Boolean.TRUE.equals(reader.getProperty(org.apache.axiom.om.OMConstants.IS_DATA_HANDLERS_AWARE));
-        }catch(java.lang.IllegalArgumentException e){
-          isReaderMTOMAware = false;
-        }
-        return isReaderMTOMAware;
-   }
-     
-     
-        /**
-        *
-        * @param parentQName
-        * @param factory
-        * @return org.apache.axiom.om.OMElement
-        */
-       public org.apache.axiom.om.OMElement getOMElement (
-               final javax.xml.namespace.QName parentQName,
-               final org.apache.axiom.om.OMFactory factory) throws org.apache.axis2.databinding.ADBException{
-
-
-        
-               org.apache.axiom.om.OMDataSource dataSource =
-                       new org.apache.axis2.databinding.ADBDataSource(this,parentQName);
-               return factory.createOMElement(dataSource,parentQName);
-            
-       }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                                       XMLStreamWriter xmlWriter)
-                                throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-                           serialize(parentQName,xmlWriter,false);
-         }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                               XMLStreamWriter xmlWriter,
-                               boolean serializeType)
-            throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-            
-                
-
-
-                java.lang.String prefix = null;
-                java.lang.String namespace = null;
-                
-
-                    prefix = parentQName.getPrefix();
-                    namespace = parentQName.getNamespaceURI();
-
-                    if ((namespace != null) && (namespace.trim().length() > 0)) {
-                        java.lang.String writerPrefix = xmlWriter.getPrefix(namespace);
-                        if (writerPrefix != null) {
-                            xmlWriter.writeStartElement(namespace, parentQName.getLocalPart());
-                        } else {
-                            if (prefix == null) {
-                                prefix = generatePrefix(namespace);
-                            }
-
-                            xmlWriter.writeStartElement(prefix, parentQName.getLocalPart(), namespace);
-                            xmlWriter.writeNamespace(prefix, namespace);
-                            xmlWriter.setPrefix(prefix, namespace);
-                        }
-                    } else {
-                        xmlWriter.writeStartElement(parentQName.getLocalPart());
-                    }
-                
-                  if (serializeType){
-               
-                   java.lang.String namespacePrefix = registerPrefix(xmlWriter,"http://www.w3.org/2001/XMLSchema");
-                   if ((namespacePrefix != null) && (namespacePrefix.trim().length() > 0)){
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           namespacePrefix+":NMTOKEN",
-                           xmlWriter);
-                   } else {
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           "NMTOKEN",
-                           xmlWriter);
-                   }
-
-               
-                   }
-               
-
-                                          if (localNMTOKEN==null){
-                                              // write the nil attribute
-                                              
-                                                     throw new org.apache.axis2.databinding.ADBException("NMTOKEN cannot be null!!");
-                                                  
-                                          }else{
-
-                                        
-                                                   xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(localNMTOKEN));
-                                            
-                                          }
-                                    
-                    xmlWriter.writeEndElement();
-               
-
-        }
-
-         /**
-          * Util method to write an attribute with the ns prefix
-          */
-          private void writeAttribute(java.lang.String prefix,java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-              if (xmlWriter.getPrefix(namespace) == null) {
-                       xmlWriter.writeNamespace(prefix, namespace);
-                       xmlWriter.setPrefix(prefix, namespace);
-
-              }
-
-              xmlWriter.writeAttribute(namespace,attName,attValue);
-
-         }
-
-        /**
-          * Util method to write an attribute without the ns prefix
-          */
-          private void writeAttribute(java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-                if (namespace.equals(""))
-              {
-                  xmlWriter.writeAttribute(attName,attValue);
-              }
-              else
-              {
-                  registerPrefix(xmlWriter, namespace);
-                  xmlWriter.writeAttribute(namespace,attName,attValue);
-              }
-          }
-
-
-           /**
-             * Util method to write an attribute without the ns prefix
-             */
-            private void writeQNameAttribute(java.lang.String namespace, java.lang.String attName,
-                                             javax.xml.namespace.QName qname, javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-                java.lang.String attributeNamespace = qname.getNamespaceURI();
-                java.lang.String attributePrefix = xmlWriter.getPrefix(attributeNamespace);
-                if (attributePrefix == null) {
-                    attributePrefix = registerPrefix(xmlWriter, attributeNamespace);
-                }
-                java.lang.String attributeValue;
-                if (attributePrefix.trim().length() > 0) {
-                    attributeValue = attributePrefix + ":" + qname.getLocalPart();
-                } else {
-                    attributeValue = qname.getLocalPart();
-                }
-
-                if (namespace.equals("")) {
-                    xmlWriter.writeAttribute(attName, attributeValue);
-                } else {
-                    registerPrefix(xmlWriter, namespace);
-                    xmlWriter.writeAttribute(namespace, attName, attributeValue);
-                }
-            }
-        /**
-         *  method to handle Qnames
-         */
-
-        private void writeQName(javax.xml.namespace.QName qname,
-                                javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-            java.lang.String namespaceURI = qname.getNamespaceURI();
-            if (namespaceURI != null) {
-                java.lang.String prefix = xmlWriter.getPrefix(namespaceURI);
-                if (prefix == null) {
-                    prefix = generatePrefix(namespaceURI);
-                    xmlWriter.writeNamespace(prefix, namespaceURI);
-                    xmlWriter.setPrefix(prefix,namespaceURI);
-                }
-
-                if (prefix.trim().length() > 0){
-                    xmlWriter.writeCharacters(prefix + ":" + org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                } else {
-                    // i.e this is the default namespace
-                    xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                }
-
-            } else {
-                xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-            }
-        }
-
-        private void writeQNames(javax.xml.namespace.QName[] qnames,
-                                 javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-            if (qnames != null) {
-                // we have to store this data until last moment since it is not possible to write any
-                // namespace data after writing the charactor data
-                java.lang.StringBuffer stringToWrite = new java.lang.StringBuffer();
-                java.lang.String namespaceURI = null;
-                java.lang.String prefix = null;
-
-                for (int i = 0; i < qnames.length; i++) {
-                    if (i > 0) {
-                        stringToWrite.append(" ");
-                    }
-                    namespaceURI = qnames[i].getNamespaceURI();
-                    if (namespaceURI != null) {
-                        prefix = xmlWriter.getPrefix(namespaceURI);
-                        if ((prefix == null) || (prefix.length() == 0)) {
-                            prefix = generatePrefix(namespaceURI);
-                            xmlWriter.writeNamespace(prefix, namespaceURI);
-                            xmlWriter.setPrefix(prefix,namespaceURI);
-                        }
-
-                        if (prefix.trim().length() > 0){
-                            stringToWrite.append(prefix).append(":").append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        } else {
-                            stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        }
-                    } else {
-                        stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                    }
-                }
-                xmlWriter.writeCharacters(stringToWrite.toString());
-            }
-
-        }
-
-
-         /**
-         * Register a namespace prefix
-         */
-         private java.lang.String registerPrefix(javax.xml.stream.XMLStreamWriter xmlWriter, java.lang.String namespace) throws javax.xml.stream.XMLStreamException {
-                java.lang.String prefix = xmlWriter.getPrefix(namespace);
-
-                if (prefix == null) {
-                    prefix = generatePrefix(namespace);
-                    javax.xml.namespace.NamespaceContext nsContext = xmlWriter.getNamespaceContext();
-                    while (true) {
-                        java.lang.String uri = nsContext.getNamespaceURI(prefix);
-                        if (uri == null || uri.length() == 0) {
-                            break;
-                        }
-                        prefix = org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-                    }
-                    xmlWriter.writeNamespace(prefix, namespace);
-                    xmlWriter.setPrefix(prefix, namespace);
-                }
-
-                return prefix;
-            }
-
-
-  
-     /**
-      *  Factory class that keeps the parse method
-      */
-    public static class Factory{
-
-        
-        
-                public static NMTOKEN fromString(java.lang.String value,
-                                                    java.lang.String namespaceURI){
-                    NMTOKEN returnValue = new  NMTOKEN();
-                    
-                            returnValue.setNMTOKEN(
-                                org.apache.axis2.databinding.utils.ConverterUtil.convertToNMTOKEN(value));
-                        
-
-                    return returnValue;
-                }
-
-                public static NMTOKEN fromString(javax.xml.stream.XMLStreamReader xmlStreamReader,
-                                                                    java.lang.String content) {
-                    if (content.indexOf(":") > -1){
-                        java.lang.String prefix = content.substring(0,content.indexOf(":"));
-                        java.lang.String namespaceUri = xmlStreamReader.getNamespaceContext().getNamespaceURI(prefix);
-                        return NMTOKEN.Factory.fromString(content,namespaceUri);
-                    } else {
-                       return NMTOKEN.Factory.fromString(content,"");
-                    }
-                }
-
-            
-
-        /**
-        * static method to create the object
-        * Precondition:  If this object is an element, the current or next start element starts this object and any intervening reader events are ignorable
-        *                If this object is not an element, it is a complex type and the reader is at the event just after the outer start element
-        * Postcondition: If this object is an element, the reader is positioned at its end element
-        *                If this object is a complex type, the reader is positioned at the end element of its outer element
-        */
-        public static NMTOKEN parse(javax.xml.stream.XMLStreamReader reader) throws java.lang.Exception{
-            NMTOKEN object =
-                new NMTOKEN();
-
-            int event;
-            java.lang.String nillableValue = null;
-            java.lang.String prefix ="";
-            java.lang.String namespaceuri ="";
-            try {
-                
-                while (!reader.isStartElement() && !reader.isEndElement())
-                    reader.next();
-
-                
-                if (reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance","type")!=null){
-                  java.lang.String fullTypeName = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance",
-                        "type");
-                  if (fullTypeName!=null){
-                    java.lang.String nsPrefix = null;
-                    if (fullTypeName.indexOf(":") > -1){
-                        nsPrefix = fullTypeName.substring(0,fullTypeName.indexOf(":"));
-                    }
-                    nsPrefix = nsPrefix==null?"":nsPrefix;
-
-                    java.lang.String type = fullTypeName.substring(fullTypeName.indexOf(":")+1);
-                    
-                            if (!"NMTOKEN".equals(type)){
-                                //find namespace for the prefix
-                                java.lang.String nsUri = reader.getNamespaceContext().getNamespaceURI(nsPrefix);
-                                return (NMTOKEN)org.apache.axis2.databinding.types.xsd.ExtensionMapper.getTypeObject(
-                                     nsUri,type,reader);
-                              }
-                        
-
-                  }
-                
-
-                }
-
-                
-
-                
-                // Note all attributes that were handled. Used to differ normal attributes
-                // from anyAttributes.
-                java.util.Vector handledAttributes = new java.util.Vector();
-                
-
-                    
-                while(!reader.isEndElement()) {
-                    if (reader.isStartElement()  || reader.hasText()){
-                
-                                    if (reader.isStartElement()  || reader.hasText()){
-                                
-                                    java.lang.String content = reader.getElementText();
-                                    
-                                              object.setNMTOKEN(
-                                                    org.apache.axis2.databinding.utils.ConverterUtil.convertToNMTOKEN(content));
-                                            
-                              }  // End of if for expected property start element
-                                
-                             else{
-                                        // A start element we are not expecting indicates an invalid parameter was passed
-                                        throw new org.apache.axis2.databinding.ADBException("Unexpected subelement " + reader.getLocalName());
-                             }
-                          
-                             } else {
-                                reader.next();
-                             }  
-                           }  // end of while loop
-                        
-
-
-
-            } catch (javax.xml.stream.XMLStreamException e) {
-                throw new java.lang.Exception(e);
-            }
-
-            return object;
-        }
-
-        }//end of factory class
-
-        
-
-        }
-           
-          
\ No newline at end of file
diff --git a/modules/adb/src/org/apache/axis2/databinding/types/xsd/NMTOKENS.java b/modules/adb/src/org/apache/axis2/databinding/types/xsd/NMTOKENS.java
deleted file mode 100644
index 9040b43..0000000
--- a/modules/adb/src/org/apache/axis2/databinding/types/xsd/NMTOKENS.java
+++ /dev/null
@@ -1,469 +0,0 @@
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/**
- * NMTOKENS.java
- *
- * This file was auto-generated from WSDL
- * by the Apache Axis2 version: SNAPSHOT  Built on : Dec 21, 2007 (04:03:30 LKT)
- */
-            
-                package org.apache.axis2.databinding.types.xsd;
-
-import javax.xml.stream.XMLStreamWriter;
-            
-
-            /**
-            *  NMTOKENS bean class
-            */
-        
-        public  class NMTOKENS
-        implements org.apache.axis2.databinding.ADBBean{
-        /* This type was generated from the piece of schema that had
-                name = NMTOKENS
-                Namespace URI = http://www.w3.org/2001/XMLSchema
-                Namespace Prefix = ns1
-                */
-            
-
-        private static java.lang.String generatePrefix(java.lang.String namespace) {
-            if(namespace.equals("http://www.w3.org/2001/XMLSchema")){
-                return "xsd";
-            }
-            return org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-        }
-
-        
-
-                        /**
-                        * field for NMTOKENS
-                        */
-
-                        
-                                    protected org.apache.axis2.databinding.types.NMTokens localNMTOKENS ;
-                                
-
-                           /**
-                           * Auto generated getter method
-                           * @return org.apache.axis2.databinding.types.NMTokens
-                           */
-                           public  org.apache.axis2.databinding.types.NMTokens getNMTOKENS(){
-                               return localNMTOKENS;
-                           }
-
-                           
-                        
-                            /**
-                               * Auto generated setter method
-                               * @param param NMTOKENS
-                               */
-                               public void setNMTOKENS(org.apache.axis2.databinding.types.NMTokens param){
-                            
-                                            this.localNMTOKENS=param;
-                                    
-
-                               }
-                            
-
-                            public java.lang.String toString(){
-                                
-                                        return localNMTOKENS.toString();
-                                    
-                            }
-                        
-
-     /**
-     * isReaderMTOMAware
-     * @return true if the reader supports MTOM
-     */
-   public static boolean isReaderMTOMAware(javax.xml.stream.XMLStreamReader reader) {
-        boolean isReaderMTOMAware = false;
-        
-        try{
-          isReaderMTOMAware = java.lang.Boolean.TRUE.equals(reader.getProperty(org.apache.axiom.om.OMConstants.IS_DATA_HANDLERS_AWARE));
-        }catch(java.lang.IllegalArgumentException e){
-          isReaderMTOMAware = false;
-        }
-        return isReaderMTOMAware;
-   }
-     
-     
-        /**
-        *
-        * @param parentQName
-        * @param factory
-        * @return org.apache.axiom.om.OMElement
-        */
-       public org.apache.axiom.om.OMElement getOMElement (
-               final javax.xml.namespace.QName parentQName,
-               final org.apache.axiom.om.OMFactory factory) throws org.apache.axis2.databinding.ADBException{
-
-
-        
-               org.apache.axiom.om.OMDataSource dataSource =
-                       new org.apache.axis2.databinding.ADBDataSource(this,parentQName);
-               return factory.createOMElement(dataSource,parentQName);
-            
-       }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                                       XMLStreamWriter xmlWriter)
-                                throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-                           serialize(parentQName,xmlWriter,false);
-         }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                               XMLStreamWriter xmlWriter,
-                               boolean serializeType)
-            throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-            
-                
-
-
-                java.lang.String prefix = null;
-                java.lang.String namespace = null;
-                
-
-                    prefix = parentQName.getPrefix();
-                    namespace = parentQName.getNamespaceURI();
-
-                    if ((namespace != null) && (namespace.trim().length() > 0)) {
-                        java.lang.String writerPrefix = xmlWriter.getPrefix(namespace);
-                        if (writerPrefix != null) {
-                            xmlWriter.writeStartElement(namespace, parentQName.getLocalPart());
-                        } else {
-                            if (prefix == null) {
-                                prefix = generatePrefix(namespace);
-                            }
-
-                            xmlWriter.writeStartElement(prefix, parentQName.getLocalPart(), namespace);
-                            xmlWriter.writeNamespace(prefix, namespace);
-                            xmlWriter.setPrefix(prefix, namespace);
-                        }
-                    } else {
-                        xmlWriter.writeStartElement(parentQName.getLocalPart());
-                    }
-                
-                  if (serializeType){
-               
-                   java.lang.String namespacePrefix = registerPrefix(xmlWriter,"http://www.w3.org/2001/XMLSchema");
-                   if ((namespacePrefix != null) && (namespacePrefix.trim().length() > 0)){
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           namespacePrefix+":NMTOKENS",
-                           xmlWriter);
-                   } else {
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           "NMTOKENS",
-                           xmlWriter);
-                   }
-
-               
-                   }
-               
-
-                                          if (localNMTOKENS==null){
-                                              // write the nil attribute
-                                              
-                                                     throw new org.apache.axis2.databinding.ADBException("NMTOKENS cannot be null!!");
-                                                  
-                                          }else{
-
-                                        
-                                                   xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(localNMTOKENS));
-                                            
-                                          }
-                                    
-                    xmlWriter.writeEndElement();
-               
-
-        }
-
-         /**
-          * Util method to write an attribute with the ns prefix
-          */
-          private void writeAttribute(java.lang.String prefix,java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-              if (xmlWriter.getPrefix(namespace) == null) {
-                       xmlWriter.writeNamespace(prefix, namespace);
-                       xmlWriter.setPrefix(prefix, namespace);
-
-              }
-
-              xmlWriter.writeAttribute(namespace,attName,attValue);
-
-         }
-
-        /**
-          * Util method to write an attribute without the ns prefix
-          */
-          private void writeAttribute(java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-                if (namespace.equals(""))
-              {
-                  xmlWriter.writeAttribute(attName,attValue);
-              }
-              else
-              {
-                  registerPrefix(xmlWriter, namespace);
-                  xmlWriter.writeAttribute(namespace,attName,attValue);
-              }
-          }
-
-
-           /**
-             * Util method to write an attribute without the ns prefix
-             */
-            private void writeQNameAttribute(java.lang.String namespace, java.lang.String attName,
-                                             javax.xml.namespace.QName qname, javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-                java.lang.String attributeNamespace = qname.getNamespaceURI();
-                java.lang.String attributePrefix = xmlWriter.getPrefix(attributeNamespace);
-                if (attributePrefix == null) {
-                    attributePrefix = registerPrefix(xmlWriter, attributeNamespace);
-                }
-                java.lang.String attributeValue;
-                if (attributePrefix.trim().length() > 0) {
-                    attributeValue = attributePrefix + ":" + qname.getLocalPart();
-                } else {
-                    attributeValue = qname.getLocalPart();
-                }
-
-                if (namespace.equals("")) {
-                    xmlWriter.writeAttribute(attName, attributeValue);
-                } else {
-                    registerPrefix(xmlWriter, namespace);
-                    xmlWriter.writeAttribute(namespace, attName, attributeValue);
-                }
-            }
-        /**
-         *  method to handle Qnames
-         */
-
-        private void writeQName(javax.xml.namespace.QName qname,
-                                javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-            java.lang.String namespaceURI = qname.getNamespaceURI();
-            if (namespaceURI != null) {
-                java.lang.String prefix = xmlWriter.getPrefix(namespaceURI);
-                if (prefix == null) {
-                    prefix = generatePrefix(namespaceURI);
-                    xmlWriter.writeNamespace(prefix, namespaceURI);
-                    xmlWriter.setPrefix(prefix,namespaceURI);
-                }
-
-                if (prefix.trim().length() > 0){
-                    xmlWriter.writeCharacters(prefix + ":" + org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                } else {
-                    // i.e this is the default namespace
-                    xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                }
-
-            } else {
-                xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-            }
-        }
-
-        private void writeQNames(javax.xml.namespace.QName[] qnames,
-                                 javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-            if (qnames != null) {
-                // we have to store this data until last moment since it is not possible to write any
-                // namespace data after writing the charactor data
-                java.lang.StringBuffer stringToWrite = new java.lang.StringBuffer();
-                java.lang.String namespaceURI = null;
-                java.lang.String prefix = null;
-
-                for (int i = 0; i < qnames.length; i++) {
-                    if (i > 0) {
-                        stringToWrite.append(" ");
-                    }
-                    namespaceURI = qnames[i].getNamespaceURI();
-                    if (namespaceURI != null) {
-                        prefix = xmlWriter.getPrefix(namespaceURI);
-                        if ((prefix == null) || (prefix.length() == 0)) {
-                            prefix = generatePrefix(namespaceURI);
-                            xmlWriter.writeNamespace(prefix, namespaceURI);
-                            xmlWriter.setPrefix(prefix,namespaceURI);
-                        }
-
-                        if (prefix.trim().length() > 0){
-                            stringToWrite.append(prefix).append(":").append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        } else {
-                            stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        }
-                    } else {
-                        stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                    }
-                }
-                xmlWriter.writeCharacters(stringToWrite.toString());
-            }
-
-        }
-
-
-         /**
-         * Register a namespace prefix
-         */
-         private java.lang.String registerPrefix(javax.xml.stream.XMLStreamWriter xmlWriter, java.lang.String namespace) throws javax.xml.stream.XMLStreamException {
-                java.lang.String prefix = xmlWriter.getPrefix(namespace);
-
-                if (prefix == null) {
-                    prefix = generatePrefix(namespace);
-                    javax.xml.namespace.NamespaceContext nsContext = xmlWriter.getNamespaceContext();
-                    while (true) {
-                        java.lang.String uri = nsContext.getNamespaceURI(prefix);
-                        if (uri == null || uri.length() == 0) {
-                            break;
-                        }
-                        prefix = org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-                    }
-                    xmlWriter.writeNamespace(prefix, namespace);
-                    xmlWriter.setPrefix(prefix, namespace);
-                }
-
-                return prefix;
-            }
-
-
-  
-     /**
-      *  Factory class that keeps the parse method
-      */
-    public static class Factory{
-
-        
-        
-                public static NMTOKENS fromString(java.lang.String value,
-                                                    java.lang.String namespaceURI){
-                    NMTOKENS returnValue = new  NMTOKENS();
-                    
-                            returnValue.setNMTOKENS(
-                                org.apache.axis2.databinding.utils.ConverterUtil.convertToNMTOKENS(value));
-                        
-
-                    return returnValue;
-                }
-
-                public static NMTOKENS fromString(javax.xml.stream.XMLStreamReader xmlStreamReader,
-                                                                    java.lang.String content) {
-                    if (content.indexOf(":") > -1){
-                        java.lang.String prefix = content.substring(0,content.indexOf(":"));
-                        java.lang.String namespaceUri = xmlStreamReader.getNamespaceContext().getNamespaceURI(prefix);
-                        return NMTOKENS.Factory.fromString(content,namespaceUri);
-                    } else {
-                       return NMTOKENS.Factory.fromString(content,"");
-                    }
-                }
-
-            
-
-        /**
-        * static method to create the object
-        * Precondition:  If this object is an element, the current or next start element starts this object and any intervening reader events are ignorable
-        *                If this object is not an element, it is a complex type and the reader is at the event just after the outer start element
-        * Postcondition: If this object is an element, the reader is positioned at its end element
-        *                If this object is a complex type, the reader is positioned at the end element of its outer element
-        */
-        public static NMTOKENS parse(javax.xml.stream.XMLStreamReader reader) throws java.lang.Exception{
-            NMTOKENS object =
-                new NMTOKENS();
-
-            int event;
-            java.lang.String nillableValue = null;
-            java.lang.String prefix ="";
-            java.lang.String namespaceuri ="";
-            try {
-                
-                while (!reader.isStartElement() && !reader.isEndElement())
-                    reader.next();
-
-                
-                if (reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance","type")!=null){
-                  java.lang.String fullTypeName = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance",
-                        "type");
-                  if (fullTypeName!=null){
-                    java.lang.String nsPrefix = null;
-                    if (fullTypeName.indexOf(":") > -1){
-                        nsPrefix = fullTypeName.substring(0,fullTypeName.indexOf(":"));
-                    }
-                    nsPrefix = nsPrefix==null?"":nsPrefix;
-
-                    java.lang.String type = fullTypeName.substring(fullTypeName.indexOf(":")+1);
-                    
-                            if (!"NMTOKENS".equals(type)){
-                                //find namespace for the prefix
-                                java.lang.String nsUri = reader.getNamespaceContext().getNamespaceURI(nsPrefix);
-                                return (NMTOKENS)org.apache.axis2.databinding.types.xsd.ExtensionMapper.getTypeObject(
-                                     nsUri,type,reader);
-                              }
-                        
-
-                  }
-                
-
-                }
-
-                
-
-                
-                // Note all attributes that were handled. Used to differ normal attributes
-                // from anyAttributes.
-                java.util.Vector handledAttributes = new java.util.Vector();
-                
-
-                    
-                while(!reader.isEndElement()) {
-                    if (reader.isStartElement()  || reader.hasText()){
-                
-                                    if (reader.isStartElement()  || reader.hasText()){
-                                
-                                    java.lang.String content = reader.getElementText();
-                                    
-                                              object.setNMTOKENS(
-                                                    org.apache.axis2.databinding.utils.ConverterUtil.convertToNMTOKENS(content));
-                                            
-                              }  // End of if for expected property start element
-                                
-                             else{
-                                        // A start element we are not expecting indicates an invalid parameter was passed
-                                        throw new org.apache.axis2.databinding.ADBException("Unexpected subelement " + reader.getLocalName());
-                             }
-                          
-                             } else {
-                                reader.next();
-                             }  
-                           }  // end of while loop
-                        
-
-
-
-            } catch (javax.xml.stream.XMLStreamException e) {
-                throw new java.lang.Exception(e);
-            }
-
-            return object;
-        }
-
-        }//end of factory class
-
-        
-
-        }
-           
-          
\ No newline at end of file
diff --git a/modules/adb/src/org/apache/axis2/databinding/types/xsd/NOTATION.java b/modules/adb/src/org/apache/axis2/databinding/types/xsd/NOTATION.java
deleted file mode 100644
index 9d270ca..0000000
--- a/modules/adb/src/org/apache/axis2/databinding/types/xsd/NOTATION.java
+++ /dev/null
@@ -1,476 +0,0 @@
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/**
- * NOTATION.java
- *
- * This file was auto-generated from WSDL
- * by the Apache Axis2 version: SNAPSHOT  Built on : Dec 21, 2007 (04:03:30 LKT)
- */
-            
-                package org.apache.axis2.databinding.types.xsd;
-
-import javax.xml.stream.XMLStreamWriter;
-            
-
-            /**
-            *  NOTATION bean class
-            */
-        
-        public  class NOTATION
-        implements org.apache.axis2.databinding.ADBBean{
-        /* This type was generated from the piece of schema that had
-                name = NOTATION
-                Namespace URI = http://www.w3.org/2001/XMLSchema
-                Namespace Prefix = ns1
-                */
-            
-
-        private static java.lang.String generatePrefix(java.lang.String namespace) {
-            if(namespace.equals("http://www.w3.org/2001/XMLSchema")){
-                return "xsd";
-            }
-            return org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-        }
-
-        
-
-                        /**
-                        * field for QName
-                        */
-
-                        
-                                    protected javax.xml.namespace.QName localQName ;
-                                
-
-                           /**
-                           * Auto generated getter method
-                           * @return javax.xml.namespace.QName
-                           */
-                           public  javax.xml.namespace.QName getQName(){
-                               return localQName;
-                           }
-
-                           
-                        
-                            /**
-                               * Auto generated setter method
-                               * @param param QName
-                               */
-                               public void setQName(javax.xml.namespace.QName param){
-                            
-                                            this.localQName=param;
-                                    
-
-                               }
-                            
-
-                            public java.lang.String toString(){
-                                
-                                        return localQName.toString();
-                                    
-                            }
-                        
-
-     /**
-     * isReaderMTOMAware
-     * @return true if the reader supports MTOM
-     */
-   public static boolean isReaderMTOMAware(javax.xml.stream.XMLStreamReader reader) {
-        boolean isReaderMTOMAware = false;
-        
-        try{
-          isReaderMTOMAware = java.lang.Boolean.TRUE.equals(reader.getProperty(org.apache.axiom.om.OMConstants.IS_DATA_HANDLERS_AWARE));
-        }catch(java.lang.IllegalArgumentException e){
-          isReaderMTOMAware = false;
-        }
-        return isReaderMTOMAware;
-   }
-     
-     
-        /**
-        *
-        * @param parentQName
-        * @param factory
-        * @return org.apache.axiom.om.OMElement
-        */
-       public org.apache.axiom.om.OMElement getOMElement (
-               final javax.xml.namespace.QName parentQName,
-               final org.apache.axiom.om.OMFactory factory) throws org.apache.axis2.databinding.ADBException{
-
-
-        
-               org.apache.axiom.om.OMDataSource dataSource =
-                       new org.apache.axis2.databinding.ADBDataSource(this,parentQName);
-               return factory.createOMElement(dataSource,parentQName);
-            
-       }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                                       XMLStreamWriter xmlWriter)
-                                throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-                           serialize(parentQName,xmlWriter,false);
-         }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                               XMLStreamWriter xmlWriter,
-                               boolean serializeType)
-            throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-            
-                
-
-
-                java.lang.String prefix = null;
-                java.lang.String namespace = null;
-                
-
-                    prefix = parentQName.getPrefix();
-                    namespace = parentQName.getNamespaceURI();
-
-                    if ((namespace != null) && (namespace.trim().length() > 0)) {
-                        java.lang.String writerPrefix = xmlWriter.getPrefix(namespace);
-                        if (writerPrefix != null) {
-                            xmlWriter.writeStartElement(namespace, parentQName.getLocalPart());
-                        } else {
-                            if (prefix == null) {
-                                prefix = generatePrefix(namespace);
-                            }
-
-                            xmlWriter.writeStartElement(prefix, parentQName.getLocalPart(), namespace);
-                            xmlWriter.writeNamespace(prefix, namespace);
-                            xmlWriter.setPrefix(prefix, namespace);
-                        }
-                    } else {
-                        xmlWriter.writeStartElement(parentQName.getLocalPart());
-                    }
-                
-                  if (serializeType){
-               
-                   java.lang.String namespacePrefix = registerPrefix(xmlWriter,"http://www.w3.org/2001/XMLSchema");
-                   if ((namespacePrefix != null) && (namespacePrefix.trim().length() > 0)){
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           namespacePrefix+":NOTATION",
-                           xmlWriter);
-                   } else {
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           "NOTATION",
-                           xmlWriter);
-                   }
-
-               
-                   }
-               
-
-                                          if (localQName==null){
-                                              // write the nil attribute
-                                              
-                                                     throw new org.apache.axis2.databinding.ADBException("QName cannot be null!!");
-                                                  
-                                          }else{
-
-                                        
-                                                writeQName(localQName,xmlWriter);
-                                            
-                                          }
-                                    
-                    xmlWriter.writeEndElement();
-               
-
-        }
-
-         /**
-          * Util method to write an attribute with the ns prefix
-          */
-          private void writeAttribute(java.lang.String prefix,java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-              if (xmlWriter.getPrefix(namespace) == null) {
-                       xmlWriter.writeNamespace(prefix, namespace);
-                       xmlWriter.setPrefix(prefix, namespace);
-
-              }
-
-              xmlWriter.writeAttribute(namespace,attName,attValue);
-
-         }
-
-        /**
-          * Util method to write an attribute without the ns prefix
-          */
-          private void writeAttribute(java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-                if (namespace.equals(""))
-              {
-                  xmlWriter.writeAttribute(attName,attValue);
-              }
-              else
-              {
-                  registerPrefix(xmlWriter, namespace);
-                  xmlWriter.writeAttribute(namespace,attName,attValue);
-              }
-          }
-
-
-           /**
-             * Util method to write an attribute without the ns prefix
-             */
-            private void writeQNameAttribute(java.lang.String namespace, java.lang.String attName,
-                                             javax.xml.namespace.QName qname, javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-                java.lang.String attributeNamespace = qname.getNamespaceURI();
-                java.lang.String attributePrefix = xmlWriter.getPrefix(attributeNamespace);
-                if (attributePrefix == null) {
-                    attributePrefix = registerPrefix(xmlWriter, attributeNamespace);
-                }
-                java.lang.String attributeValue;
-                if (attributePrefix.trim().length() > 0) {
-                    attributeValue = attributePrefix + ":" + qname.getLocalPart();
-                } else {
-                    attributeValue = qname.getLocalPart();
-                }
-
-                if (namespace.equals("")) {
-                    xmlWriter.writeAttribute(attName, attributeValue);
-                } else {
-                    registerPrefix(xmlWriter, namespace);
-                    xmlWriter.writeAttribute(namespace, attName, attributeValue);
-                }
-            }
-        /**
-         *  method to handle Qnames
-         */
-
-        private void writeQName(javax.xml.namespace.QName qname,
-                                javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-            java.lang.String namespaceURI = qname.getNamespaceURI();
-            if (namespaceURI != null) {
-                java.lang.String prefix = xmlWriter.getPrefix(namespaceURI);
-                if (prefix == null) {
-                    prefix = generatePrefix(namespaceURI);
-                    xmlWriter.writeNamespace(prefix, namespaceURI);
-                    xmlWriter.setPrefix(prefix,namespaceURI);
-                }
-
-                if (prefix.trim().length() > 0){
-                    xmlWriter.writeCharacters(prefix + ":" + org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                } else {
-                    // i.e this is the default namespace
-                    xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                }
-
-            } else {
-                xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-            }
-        }
-
-        private void writeQNames(javax.xml.namespace.QName[] qnames,
-                                 javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-            if (qnames != null) {
-                // we have to store this data until last moment since it is not possible to write any
-                // namespace data after writing the charactor data
-                java.lang.StringBuffer stringToWrite = new java.lang.StringBuffer();
-                java.lang.String namespaceURI = null;
-                java.lang.String prefix = null;
-
-                for (int i = 0; i < qnames.length; i++) {
-                    if (i > 0) {
-                        stringToWrite.append(" ");
-                    }
-                    namespaceURI = qnames[i].getNamespaceURI();
-                    if (namespaceURI != null) {
-                        prefix = xmlWriter.getPrefix(namespaceURI);
-                        if ((prefix == null) || (prefix.length() == 0)) {
-                            prefix = generatePrefix(namespaceURI);
-                            xmlWriter.writeNamespace(prefix, namespaceURI);
-                            xmlWriter.setPrefix(prefix,namespaceURI);
-                        }
-
-                        if (prefix.trim().length() > 0){
-                            stringToWrite.append(prefix).append(":").append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        } else {
-                            stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        }
-                    } else {
-                        stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                    }
-                }
-                xmlWriter.writeCharacters(stringToWrite.toString());
-            }
-
-        }
-
-
-         /**
-         * Register a namespace prefix
-         */
-         private java.lang.String registerPrefix(javax.xml.stream.XMLStreamWriter xmlWriter, java.lang.String namespace) throws javax.xml.stream.XMLStreamException {
-                java.lang.String prefix = xmlWriter.getPrefix(namespace);
-
-                if (prefix == null) {
-                    prefix = generatePrefix(namespace);
-                    javax.xml.namespace.NamespaceContext nsContext = xmlWriter.getNamespaceContext();
-                    while (true) {
-                        java.lang.String uri = nsContext.getNamespaceURI(prefix);
-                        if (uri == null || uri.length() == 0) {
-                            break;
-                        }
-                        prefix = org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-                    }
-                    xmlWriter.writeNamespace(prefix, namespace);
-                    xmlWriter.setPrefix(prefix, namespace);
-                }
-
-                return prefix;
-            }
-
-
-  
-     /**
-      *  Factory class that keeps the parse method
-      */
-    public static class Factory{
-
-        
-        
-                public static NOTATION fromString(java.lang.String value,
-                                                    java.lang.String namespaceURI){
-                    NOTATION returnValue = new  NOTATION();
-                    
-                            returnValue.setQName(
-                                org.apache.axis2.databinding.utils.ConverterUtil.convertToQName(value,namespaceURI));
-                        
-
-                    return returnValue;
-                }
-
-                public static NOTATION fromString(javax.xml.stream.XMLStreamReader xmlStreamReader,
-                                                                    java.lang.String content) {
-                    if (content.indexOf(":") > -1){
-                        java.lang.String prefix = content.substring(0,content.indexOf(":"));
-                        java.lang.String namespaceUri = xmlStreamReader.getNamespaceContext().getNamespaceURI(prefix);
-                        return NOTATION.Factory.fromString(content,namespaceUri);
-                    } else {
-                       return NOTATION.Factory.fromString(content,"");
-                    }
-                }
-
-            
-
-        /**
-        * static method to create the object
-        * Precondition:  If this object is an element, the current or next start element starts this object and any intervening reader events are ignorable
-        *                If this object is not an element, it is a complex type and the reader is at the event just after the outer start element
-        * Postcondition: If this object is an element, the reader is positioned at its end element
-        *                If this object is a complex type, the reader is positioned at the end element of its outer element
-        */
-        public static NOTATION parse(javax.xml.stream.XMLStreamReader reader) throws java.lang.Exception{
-            NOTATION object =
-                new NOTATION();
-
-            int event;
-            java.lang.String nillableValue = null;
-            java.lang.String prefix ="";
-            java.lang.String namespaceuri ="";
-            try {
-                
-                while (!reader.isStartElement() && !reader.isEndElement())
-                    reader.next();
-
-                
-                if (reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance","type")!=null){
-                  java.lang.String fullTypeName = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance",
-                        "type");
-                  if (fullTypeName!=null){
-                    java.lang.String nsPrefix = null;
-                    if (fullTypeName.indexOf(":") > -1){
-                        nsPrefix = fullTypeName.substring(0,fullTypeName.indexOf(":"));
-                    }
-                    nsPrefix = nsPrefix==null?"":nsPrefix;
-
-                    java.lang.String type = fullTypeName.substring(fullTypeName.indexOf(":")+1);
-                    
-                            if (!"NOTATION".equals(type)){
-                                //find namespace for the prefix
-                                java.lang.String nsUri = reader.getNamespaceContext().getNamespaceURI(nsPrefix);
-                                return (NOTATION)org.apache.axis2.databinding.types.xsd.ExtensionMapper.getTypeObject(
-                                     nsUri,type,reader);
-                              }
-                        
-
-                  }
-                
-
-                }
-
-                
-
-                
-                // Note all attributes that were handled. Used to differ normal attributes
-                // from anyAttributes.
-                java.util.Vector handledAttributes = new java.util.Vector();
-                
-
-                    
-                while(!reader.isEndElement()) {
-                    if (reader.isStartElement()  || reader.hasText()){
-                
-                                    if (reader.isStartElement()  || reader.hasText()){
-                                
-                                    java.lang.String content = reader.getElementText();
-                                    
-                                            int index = content.indexOf(":");
-                                            if(index > 0){
-                                                prefix = content.substring(0,index);
-                                             } else {
-                                                prefix = "";
-                                             }
-                                             namespaceuri = reader.getNamespaceURI(prefix);
-                                             object.setQName(
-                                                  org.apache.axis2.databinding.utils.ConverterUtil.convertToQName(content,namespaceuri));
-                                            
-                              }  // End of if for expected property start element
-                                
-                             else{
-                                        // A start element we are not expecting indicates an invalid parameter was passed
-                                        throw new org.apache.axis2.databinding.ADBException("Unexpected subelement " + reader.getLocalName());
-                             }
-                          
-                             } else {
-                                reader.next();
-                             }  
-                           }  // end of while loop
-                        
-
-
-
-            } catch (javax.xml.stream.XMLStreamException e) {
-                throw new java.lang.Exception(e);
-            }
-
-            return object;
-        }
-
-        }//end of factory class
-
-        
-
-        }
-           
-          
\ No newline at end of file
diff --git a/modules/adb/src/org/apache/axis2/databinding/types/xsd/Name.java b/modules/adb/src/org/apache/axis2/databinding/types/xsd/Name.java
deleted file mode 100644
index 849fb1c..0000000
--- a/modules/adb/src/org/apache/axis2/databinding/types/xsd/Name.java
+++ /dev/null
@@ -1,469 +0,0 @@
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/**
- * Name.java
- *
- * This file was auto-generated from WSDL
- * by the Apache Axis2 version: SNAPSHOT  Built on : Dec 21, 2007 (04:03:30 LKT)
- */
-            
-                package org.apache.axis2.databinding.types.xsd;
-
-import javax.xml.stream.XMLStreamWriter;
-            
-
-            /**
-            *  Name bean class
-            */
-        
-        public  class Name
-        implements org.apache.axis2.databinding.ADBBean{
-        /* This type was generated from the piece of schema that had
-                name = Name
-                Namespace URI = http://www.w3.org/2001/XMLSchema
-                Namespace Prefix = ns1
-                */
-            
-
-        private static java.lang.String generatePrefix(java.lang.String namespace) {
-            if(namespace.equals("http://www.w3.org/2001/XMLSchema")){
-                return "xsd";
-            }
-            return org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-        }
-
-        
-
-                        /**
-                        * field for Name
-                        */
-
-                        
-                                    protected org.apache.axis2.databinding.types.Name localName ;
-                                
-
-                           /**
-                           * Auto generated getter method
-                           * @return org.apache.axis2.databinding.types.Name
-                           */
-                           public  org.apache.axis2.databinding.types.Name getName(){
-                               return localName;
-                           }
-
-                           
-                        
-                            /**
-                               * Auto generated setter method
-                               * @param param Name
-                               */
-                               public void setName(org.apache.axis2.databinding.types.Name param){
-                            
-                                            this.localName=param;
-                                    
-
-                               }
-                            
-
-                            public java.lang.String toString(){
-                                
-                                        return localName.toString();
-                                    
-                            }
-                        
-
-     /**
-     * isReaderMTOMAware
-     * @return true if the reader supports MTOM
-     */
-   public static boolean isReaderMTOMAware(javax.xml.stream.XMLStreamReader reader) {
-        boolean isReaderMTOMAware = false;
-        
-        try{
-          isReaderMTOMAware = java.lang.Boolean.TRUE.equals(reader.getProperty(org.apache.axiom.om.OMConstants.IS_DATA_HANDLERS_AWARE));
-        }catch(java.lang.IllegalArgumentException e){
-          isReaderMTOMAware = false;
-        }
-        return isReaderMTOMAware;
-   }
-     
-     
-        /**
-        *
-        * @param parentQName
-        * @param factory
-        * @return org.apache.axiom.om.OMElement
-        */
-       public org.apache.axiom.om.OMElement getOMElement (
-               final javax.xml.namespace.QName parentQName,
-               final org.apache.axiom.om.OMFactory factory) throws org.apache.axis2.databinding.ADBException{
-
-
-        
-               org.apache.axiom.om.OMDataSource dataSource =
-                       new org.apache.axis2.databinding.ADBDataSource(this,parentQName);
-               return factory.createOMElement(dataSource,parentQName);
-            
-       }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                                       XMLStreamWriter xmlWriter)
-                                throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-                           serialize(parentQName,xmlWriter,false);
-         }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                               XMLStreamWriter xmlWriter,
-                               boolean serializeType)
-            throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-            
-                
-
-
-                java.lang.String prefix = null;
-                java.lang.String namespace = null;
-                
-
-                    prefix = parentQName.getPrefix();
-                    namespace = parentQName.getNamespaceURI();
-
-                    if ((namespace != null) && (namespace.trim().length() > 0)) {
-                        java.lang.String writerPrefix = xmlWriter.getPrefix(namespace);
-                        if (writerPrefix != null) {
-                            xmlWriter.writeStartElement(namespace, parentQName.getLocalPart());
-                        } else {
-                            if (prefix == null) {
-                                prefix = generatePrefix(namespace);
-                            }
-
-                            xmlWriter.writeStartElement(prefix, parentQName.getLocalPart(), namespace);
-                            xmlWriter.writeNamespace(prefix, namespace);
-                            xmlWriter.setPrefix(prefix, namespace);
-                        }
-                    } else {
-                        xmlWriter.writeStartElement(parentQName.getLocalPart());
-                    }
-                
-                  if (serializeType){
-               
-                   java.lang.String namespacePrefix = registerPrefix(xmlWriter,"http://www.w3.org/2001/XMLSchema");
-                   if ((namespacePrefix != null) && (namespacePrefix.trim().length() > 0)){
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           namespacePrefix+":Name",
-                           xmlWriter);
-                   } else {
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           "Name",
-                           xmlWriter);
-                   }
-
-               
-                   }
-               
-
-                                          if (localName==null){
-                                              // write the nil attribute
-                                              
-                                                     throw new org.apache.axis2.databinding.ADBException("Name cannot be null!!");
-                                                  
-                                          }else{
-
-                                        
-                                                   xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(localName));
-                                            
-                                          }
-                                    
-                    xmlWriter.writeEndElement();
-               
-
-        }
-
-         /**
-          * Util method to write an attribute with the ns prefix
-          */
-          private void writeAttribute(java.lang.String prefix,java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-              if (xmlWriter.getPrefix(namespace) == null) {
-                       xmlWriter.writeNamespace(prefix, namespace);
-                       xmlWriter.setPrefix(prefix, namespace);
-
-              }
-
-              xmlWriter.writeAttribute(namespace,attName,attValue);
-
-         }
-
-        /**
-          * Util method to write an attribute without the ns prefix
-          */
-          private void writeAttribute(java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-                if (namespace.equals(""))
-              {
-                  xmlWriter.writeAttribute(attName,attValue);
-              }
-              else
-              {
-                  registerPrefix(xmlWriter, namespace);
-                  xmlWriter.writeAttribute(namespace,attName,attValue);
-              }
-          }
-
-
-           /**
-             * Util method to write an attribute without the ns prefix
-             */
-            private void writeQNameAttribute(java.lang.String namespace, java.lang.String attName,
-                                             javax.xml.namespace.QName qname, javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-                java.lang.String attributeNamespace = qname.getNamespaceURI();
-                java.lang.String attributePrefix = xmlWriter.getPrefix(attributeNamespace);
-                if (attributePrefix == null) {
-                    attributePrefix = registerPrefix(xmlWriter, attributeNamespace);
-                }
-                java.lang.String attributeValue;
-                if (attributePrefix.trim().length() > 0) {
-                    attributeValue = attributePrefix + ":" + qname.getLocalPart();
-                } else {
-                    attributeValue = qname.getLocalPart();
-                }
-
-                if (namespace.equals("")) {
-                    xmlWriter.writeAttribute(attName, attributeValue);
-                } else {
-                    registerPrefix(xmlWriter, namespace);
-                    xmlWriter.writeAttribute(namespace, attName, attributeValue);
-                }
-            }
-        /**
-         *  method to handle Qnames
-         */
-
-        private void writeQName(javax.xml.namespace.QName qname,
-                                javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-            java.lang.String namespaceURI = qname.getNamespaceURI();
-            if (namespaceURI != null) {
-                java.lang.String prefix = xmlWriter.getPrefix(namespaceURI);
-                if (prefix == null) {
-                    prefix = generatePrefix(namespaceURI);
-                    xmlWriter.writeNamespace(prefix, namespaceURI);
-                    xmlWriter.setPrefix(prefix,namespaceURI);
-                }
-
-                if (prefix.trim().length() > 0){
-                    xmlWriter.writeCharacters(prefix + ":" + org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                } else {
-                    // i.e this is the default namespace
-                    xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                }
-
-            } else {
-                xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-            }
-        }
-
-        private void writeQNames(javax.xml.namespace.QName[] qnames,
-                                 javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-            if (qnames != null) {
-                // we have to store this data until last moment since it is not possible to write any
-                // namespace data after writing the charactor data
-                java.lang.StringBuffer stringToWrite = new java.lang.StringBuffer();
-                java.lang.String namespaceURI = null;
-                java.lang.String prefix = null;
-
-                for (int i = 0; i < qnames.length; i++) {
-                    if (i > 0) {
-                        stringToWrite.append(" ");
-                    }
-                    namespaceURI = qnames[i].getNamespaceURI();
-                    if (namespaceURI != null) {
-                        prefix = xmlWriter.getPrefix(namespaceURI);
-                        if ((prefix == null) || (prefix.length() == 0)) {
-                            prefix = generatePrefix(namespaceURI);
-                            xmlWriter.writeNamespace(prefix, namespaceURI);
-                            xmlWriter.setPrefix(prefix,namespaceURI);
-                        }
-
-                        if (prefix.trim().length() > 0){
-                            stringToWrite.append(prefix).append(":").append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        } else {
-                            stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        }
-                    } else {
-                        stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                    }
-                }
-                xmlWriter.writeCharacters(stringToWrite.toString());
-            }
-
-        }
-
-
-         /**
-         * Register a namespace prefix
-         */
-         private java.lang.String registerPrefix(javax.xml.stream.XMLStreamWriter xmlWriter, java.lang.String namespace) throws javax.xml.stream.XMLStreamException {
-                java.lang.String prefix = xmlWriter.getPrefix(namespace);
-
-                if (prefix == null) {
-                    prefix = generatePrefix(namespace);
-                    javax.xml.namespace.NamespaceContext nsContext = xmlWriter.getNamespaceContext();
-                    while (true) {
-                        java.lang.String uri = nsContext.getNamespaceURI(prefix);
-                        if (uri == null || uri.length() == 0) {
-                            break;
-                        }
-                        prefix = org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-                    }
-                    xmlWriter.writeNamespace(prefix, namespace);
-                    xmlWriter.setPrefix(prefix, namespace);
-                }
-
-                return prefix;
-            }
-
-
-  
-     /**
-      *  Factory class that keeps the parse method
-      */
-    public static class Factory{
-
-        
-        
-                public static Name fromString(java.lang.String value,
-                                                    java.lang.String namespaceURI){
-                    Name returnValue = new  Name();
-                    
-                            returnValue.setName(
-                                org.apache.axis2.databinding.utils.ConverterUtil.convertToName(value));
-                        
-
-                    return returnValue;
-                }
-
-                public static Name fromString(javax.xml.stream.XMLStreamReader xmlStreamReader,
-                                                                    java.lang.String content) {
-                    if (content.indexOf(":") > -1){
-                        java.lang.String prefix = content.substring(0,content.indexOf(":"));
-                        java.lang.String namespaceUri = xmlStreamReader.getNamespaceContext().getNamespaceURI(prefix);
-                        return Name.Factory.fromString(content,namespaceUri);
-                    } else {
-                       return Name.Factory.fromString(content,"");
-                    }
-                }
-
-            
-
-        /**
-        * static method to create the object
-        * Precondition:  If this object is an element, the current or next start element starts this object and any intervening reader events are ignorable
-        *                If this object is not an element, it is a complex type and the reader is at the event just after the outer start element
-        * Postcondition: If this object is an element, the reader is positioned at its end element
-        *                If this object is a complex type, the reader is positioned at the end element of its outer element
-        */
-        public static Name parse(javax.xml.stream.XMLStreamReader reader) throws java.lang.Exception{
-            Name object =
-                new Name();
-
-            int event;
-            java.lang.String nillableValue = null;
-            java.lang.String prefix ="";
-            java.lang.String namespaceuri ="";
-            try {
-                
-                while (!reader.isStartElement() && !reader.isEndElement())
-                    reader.next();
-
-                
-                if (reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance","type")!=null){
-                  java.lang.String fullTypeName = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance",
-                        "type");
-                  if (fullTypeName!=null){
-                    java.lang.String nsPrefix = null;
-                    if (fullTypeName.indexOf(":") > -1){
-                        nsPrefix = fullTypeName.substring(0,fullTypeName.indexOf(":"));
-                    }
-                    nsPrefix = nsPrefix==null?"":nsPrefix;
-
-                    java.lang.String type = fullTypeName.substring(fullTypeName.indexOf(":")+1);
-                    
-                            if (!"Name".equals(type)){
-                                //find namespace for the prefix
-                                java.lang.String nsUri = reader.getNamespaceContext().getNamespaceURI(nsPrefix);
-                                return (Name)org.apache.axis2.databinding.types.xsd.ExtensionMapper.getTypeObject(
-                                     nsUri,type,reader);
-                              }
-                        
-
-                  }
-                
-
-                }
-
-                
-
-                
-                // Note all attributes that were handled. Used to differ normal attributes
-                // from anyAttributes.
-                java.util.Vector handledAttributes = new java.util.Vector();
-                
-
-                    
-                while(!reader.isEndElement()) {
-                    if (reader.isStartElement()  || reader.hasText()){
-                
-                                    if (reader.isStartElement()  || reader.hasText()){
-                                
-                                    java.lang.String content = reader.getElementText();
-                                    
-                                              object.setName(
-                                                    org.apache.axis2.databinding.utils.ConverterUtil.convertToName(content));
-                                            
-                              }  // End of if for expected property start element
-                                
-                             else{
-                                        // A start element we are not expecting indicates an invalid parameter was passed
-                                        throw new org.apache.axis2.databinding.ADBException("Unexpected subelement " + reader.getLocalName());
-                             }
-                          
-                             } else {
-                                reader.next();
-                             }  
-                           }  // end of while loop
-                        
-
-
-
-            } catch (javax.xml.stream.XMLStreamException e) {
-                throw new java.lang.Exception(e);
-            }
-
-            return object;
-        }
-
-        }//end of factory class
-
-        
-
-        }
-           
-          
\ No newline at end of file
diff --git a/modules/adb/src/org/apache/axis2/databinding/types/xsd/NegativeInteger.java b/modules/adb/src/org/apache/axis2/databinding/types/xsd/NegativeInteger.java
deleted file mode 100644
index 1151ac8..0000000
--- a/modules/adb/src/org/apache/axis2/databinding/types/xsd/NegativeInteger.java
+++ /dev/null
@@ -1,469 +0,0 @@
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/**
- * NegativeInteger.java
- *
- * This file was auto-generated from WSDL
- * by the Apache Axis2 version: SNAPSHOT  Built on : Dec 21, 2007 (04:03:30 LKT)
- */
-            
-                package org.apache.axis2.databinding.types.xsd;
-
-import javax.xml.stream.XMLStreamWriter;
-            
-
-            /**
-            *  NegativeInteger bean class
-            */
-        
-        public  class NegativeInteger
-        implements org.apache.axis2.databinding.ADBBean{
-        /* This type was generated from the piece of schema that had
-                name = negativeInteger
-                Namespace URI = http://www.w3.org/2001/XMLSchema
-                Namespace Prefix = ns1
-                */
-            
-
-        private static java.lang.String generatePrefix(java.lang.String namespace) {
-            if(namespace.equals("http://www.w3.org/2001/XMLSchema")){
-                return "xsd";
-            }
-            return org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-        }
-
-        
-
-                        /**
-                        * field for NegativeInteger
-                        */
-
-                        
-                                    protected org.apache.axis2.databinding.types.NegativeInteger localNegativeInteger ;
-                                
-
-                           /**
-                           * Auto generated getter method
-                           * @return org.apache.axis2.databinding.types.NegativeInteger
-                           */
-                           public  org.apache.axis2.databinding.types.NegativeInteger getNegativeInteger(){
-                               return localNegativeInteger;
-                           }
-
-                           
-                        
-                            /**
-                               * Auto generated setter method
-                               * @param param NegativeInteger
-                               */
-                               public void setNegativeInteger(org.apache.axis2.databinding.types.NegativeInteger param){
-                            
-                                            this.localNegativeInteger=param;
-                                    
-
-                               }
-                            
-
-                            public java.lang.String toString(){
-                                
-                                        return localNegativeInteger.toString();
-                                    
-                            }
-                        
-
-     /**
-     * isReaderMTOMAware
-     * @return true if the reader supports MTOM
-     */
-   public static boolean isReaderMTOMAware(javax.xml.stream.XMLStreamReader reader) {
-        boolean isReaderMTOMAware = false;
-        
-        try{
-          isReaderMTOMAware = java.lang.Boolean.TRUE.equals(reader.getProperty(org.apache.axiom.om.OMConstants.IS_DATA_HANDLERS_AWARE));
-        }catch(java.lang.IllegalArgumentException e){
-          isReaderMTOMAware = false;
-        }
-        return isReaderMTOMAware;
-   }
-     
-     
-        /**
-        *
-        * @param parentQName
-        * @param factory
-        * @return org.apache.axiom.om.OMElement
-        */
-       public org.apache.axiom.om.OMElement getOMElement (
-               final javax.xml.namespace.QName parentQName,
-               final org.apache.axiom.om.OMFactory factory) throws org.apache.axis2.databinding.ADBException{
-
-
-        
-               org.apache.axiom.om.OMDataSource dataSource =
-                       new org.apache.axis2.databinding.ADBDataSource(this,parentQName);
-               return factory.createOMElement(dataSource,parentQName);
-            
-       }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                                       XMLStreamWriter xmlWriter)
-                                throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-                           serialize(parentQName,xmlWriter,false);
-         }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                               XMLStreamWriter xmlWriter,
-                               boolean serializeType)
-            throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-            
-                
-
-
-                java.lang.String prefix = null;
-                java.lang.String namespace = null;
-                
-
-                    prefix = parentQName.getPrefix();
-                    namespace = parentQName.getNamespaceURI();
-
-                    if ((namespace != null) && (namespace.trim().length() > 0)) {
-                        java.lang.String writerPrefix = xmlWriter.getPrefix(namespace);
-                        if (writerPrefix != null) {
-                            xmlWriter.writeStartElement(namespace, parentQName.getLocalPart());
-                        } else {
-                            if (prefix == null) {
-                                prefix = generatePrefix(namespace);
-                            }
-
-                            xmlWriter.writeStartElement(prefix, parentQName.getLocalPart(), namespace);
-                            xmlWriter.writeNamespace(prefix, namespace);
-                            xmlWriter.setPrefix(prefix, namespace);
-                        }
-                    } else {
-                        xmlWriter.writeStartElement(parentQName.getLocalPart());
-                    }
-                
-                  if (serializeType){
-               
-                   java.lang.String namespacePrefix = registerPrefix(xmlWriter,"http://www.w3.org/2001/XMLSchema");
-                   if ((namespacePrefix != null) && (namespacePrefix.trim().length() > 0)){
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           namespacePrefix+":negativeInteger",
-                           xmlWriter);
-                   } else {
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           "negativeInteger",
-                           xmlWriter);
-                   }
-
-               
-                   }
-               
-
-                                          if (localNegativeInteger==null){
-                                              // write the nil attribute
-                                              
-                                                     throw new org.apache.axis2.databinding.ADBException("negativeInteger cannot be null!!");
-                                                  
-                                          }else{
-
-                                        
-                                                   xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(localNegativeInteger));
-                                            
-                                          }
-                                    
-                    xmlWriter.writeEndElement();
-               
-
-        }
-
-         /**
-          * Util method to write an attribute with the ns prefix
-          */
-          private void writeAttribute(java.lang.String prefix,java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-              if (xmlWriter.getPrefix(namespace) == null) {
-                       xmlWriter.writeNamespace(prefix, namespace);
-                       xmlWriter.setPrefix(prefix, namespace);
-
-              }
-
-              xmlWriter.writeAttribute(namespace,attName,attValue);
-
-         }
-
-        /**
-          * Util method to write an attribute without the ns prefix
-          */
-          private void writeAttribute(java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-                if (namespace.equals(""))
-              {
-                  xmlWriter.writeAttribute(attName,attValue);
-              }
-              else
-              {
-                  registerPrefix(xmlWriter, namespace);
-                  xmlWriter.writeAttribute(namespace,attName,attValue);
-              }
-          }
-
-
-           /**
-             * Util method to write an attribute without the ns prefix
-             */
-            private void writeQNameAttribute(java.lang.String namespace, java.lang.String attName,
-                                             javax.xml.namespace.QName qname, javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-                java.lang.String attributeNamespace = qname.getNamespaceURI();
-                java.lang.String attributePrefix = xmlWriter.getPrefix(attributeNamespace);
-                if (attributePrefix == null) {
-                    attributePrefix = registerPrefix(xmlWriter, attributeNamespace);
-                }
-                java.lang.String attributeValue;
-                if (attributePrefix.trim().length() > 0) {
-                    attributeValue = attributePrefix + ":" + qname.getLocalPart();
-                } else {
-                    attributeValue = qname.getLocalPart();
-                }
-
-                if (namespace.equals("")) {
-                    xmlWriter.writeAttribute(attName, attributeValue);
-                } else {
-                    registerPrefix(xmlWriter, namespace);
-                    xmlWriter.writeAttribute(namespace, attName, attributeValue);
-                }
-            }
-        /**
-         *  method to handle Qnames
-         */
-
-        private void writeQName(javax.xml.namespace.QName qname,
-                                javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-            java.lang.String namespaceURI = qname.getNamespaceURI();
-            if (namespaceURI != null) {
-                java.lang.String prefix = xmlWriter.getPrefix(namespaceURI);
-                if (prefix == null) {
-                    prefix = generatePrefix(namespaceURI);
-                    xmlWriter.writeNamespace(prefix, namespaceURI);
-                    xmlWriter.setPrefix(prefix,namespaceURI);
-                }
-
-                if (prefix.trim().length() > 0){
-                    xmlWriter.writeCharacters(prefix + ":" + org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                } else {
-                    // i.e this is the default namespace
-                    xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                }
-
-            } else {
-                xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-            }
-        }
-
-        private void writeQNames(javax.xml.namespace.QName[] qnames,
-                                 javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-            if (qnames != null) {
-                // we have to store this data until last moment since it is not possible to write any
-                // namespace data after writing the charactor data
-                java.lang.StringBuffer stringToWrite = new java.lang.StringBuffer();
-                java.lang.String namespaceURI = null;
-                java.lang.String prefix = null;
-
-                for (int i = 0; i < qnames.length; i++) {
-                    if (i > 0) {
-                        stringToWrite.append(" ");
-                    }
-                    namespaceURI = qnames[i].getNamespaceURI();
-                    if (namespaceURI != null) {
-                        prefix = xmlWriter.getPrefix(namespaceURI);
-                        if ((prefix == null) || (prefix.length() == 0)) {
-                            prefix = generatePrefix(namespaceURI);
-                            xmlWriter.writeNamespace(prefix, namespaceURI);
-                            xmlWriter.setPrefix(prefix,namespaceURI);
-                        }
-
-                        if (prefix.trim().length() > 0){
-                            stringToWrite.append(prefix).append(":").append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        } else {
-                            stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        }
-                    } else {
-                        stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                    }
-                }
-                xmlWriter.writeCharacters(stringToWrite.toString());
-            }
-
-        }
-
-
-         /**
-         * Register a namespace prefix
-         */
-         private java.lang.String registerPrefix(javax.xml.stream.XMLStreamWriter xmlWriter, java.lang.String namespace) throws javax.xml.stream.XMLStreamException {
-                java.lang.String prefix = xmlWriter.getPrefix(namespace);
-
-                if (prefix == null) {
-                    prefix = generatePrefix(namespace);
-                    javax.xml.namespace.NamespaceContext nsContext = xmlWriter.getNamespaceContext();
-                    while (true) {
-                        java.lang.String uri = nsContext.getNamespaceURI(prefix);
-                        if (uri == null || uri.length() == 0) {
-                            break;
-                        }
-                        prefix = org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-                    }
-                    xmlWriter.writeNamespace(prefix, namespace);
-                    xmlWriter.setPrefix(prefix, namespace);
-                }
-
-                return prefix;
-            }
-
-
-  
-     /**
-      *  Factory class that keeps the parse method
-      */
-    public static class Factory{
-
-        
-        
-                public static NegativeInteger fromString(java.lang.String value,
-                                                    java.lang.String namespaceURI){
-                    NegativeInteger returnValue = new  NegativeInteger();
-                    
-                            returnValue.setNegativeInteger(
-                                org.apache.axis2.databinding.utils.ConverterUtil.convertToNegativeInteger(value));
-                        
-
-                    return returnValue;
-                }
-
-                public static NegativeInteger fromString(javax.xml.stream.XMLStreamReader xmlStreamReader,
-                                                                    java.lang.String content) {
-                    if (content.indexOf(":") > -1){
-                        java.lang.String prefix = content.substring(0,content.indexOf(":"));
-                        java.lang.String namespaceUri = xmlStreamReader.getNamespaceContext().getNamespaceURI(prefix);
-                        return NegativeInteger.Factory.fromString(content,namespaceUri);
-                    } else {
-                       return NegativeInteger.Factory.fromString(content,"");
-                    }
-                }
-
-            
-
-        /**
-        * static method to create the object
-        * Precondition:  If this object is an element, the current or next start element starts this object and any intervening reader events are ignorable
-        *                If this object is not an element, it is a complex type and the reader is at the event just after the outer start element
-        * Postcondition: If this object is an element, the reader is positioned at its end element
-        *                If this object is a complex type, the reader is positioned at the end element of its outer element
-        */
-        public static NegativeInteger parse(javax.xml.stream.XMLStreamReader reader) throws java.lang.Exception{
-            NegativeInteger object =
-                new NegativeInteger();
-
-            int event;
-            java.lang.String nillableValue = null;
-            java.lang.String prefix ="";
-            java.lang.String namespaceuri ="";
-            try {
-                
-                while (!reader.isStartElement() && !reader.isEndElement())
-                    reader.next();
-
-                
-                if (reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance","type")!=null){
-                  java.lang.String fullTypeName = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance",
-                        "type");
-                  if (fullTypeName!=null){
-                    java.lang.String nsPrefix = null;
-                    if (fullTypeName.indexOf(":") > -1){
-                        nsPrefix = fullTypeName.substring(0,fullTypeName.indexOf(":"));
-                    }
-                    nsPrefix = nsPrefix==null?"":nsPrefix;
-
-                    java.lang.String type = fullTypeName.substring(fullTypeName.indexOf(":")+1);
-                    
-                            if (!"negativeInteger".equals(type)){
-                                //find namespace for the prefix
-                                java.lang.String nsUri = reader.getNamespaceContext().getNamespaceURI(nsPrefix);
-                                return (NegativeInteger)org.apache.axis2.databinding.types.xsd.ExtensionMapper.getTypeObject(
-                                     nsUri,type,reader);
-                              }
-                        
-
-                  }
-                
-
-                }
-
-                
-
-                
-                // Note all attributes that were handled. Used to differ normal attributes
-                // from anyAttributes.
-                java.util.Vector handledAttributes = new java.util.Vector();
-                
-
-                    
-                while(!reader.isEndElement()) {
-                    if (reader.isStartElement()  || reader.hasText()){
-                
-                                    if (reader.isStartElement()  || reader.hasText()){
-                                
-                                    java.lang.String content = reader.getElementText();
-                                    
-                                              object.setNegativeInteger(
-                                                    org.apache.axis2.databinding.utils.ConverterUtil.convertToNegativeInteger(content));
-                                            
-                              }  // End of if for expected property start element
-                                
-                             else{
-                                        // A start element we are not expecting indicates an invalid parameter was passed
-                                        throw new org.apache.axis2.databinding.ADBException("Unexpected subelement " + reader.getLocalName());
-                             }
-                          
-                             } else {
-                                reader.next();
-                             }  
-                           }  // end of while loop
-                        
-
-
-
-            } catch (javax.xml.stream.XMLStreamException e) {
-                throw new java.lang.Exception(e);
-            }
-
-            return object;
-        }
-
-        }//end of factory class
-
-        
-
-        }
-           
-          
\ No newline at end of file
diff --git a/modules/adb/src/org/apache/axis2/databinding/types/xsd/NonNegativeInteger.java b/modules/adb/src/org/apache/axis2/databinding/types/xsd/NonNegativeInteger.java
deleted file mode 100644
index f1b7bef..0000000
--- a/modules/adb/src/org/apache/axis2/databinding/types/xsd/NonNegativeInteger.java
+++ /dev/null
@@ -1,469 +0,0 @@
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/**
- * NonNegativeInteger.java
- *
- * This file was auto-generated from WSDL
- * by the Apache Axis2 version: SNAPSHOT  Built on : Dec 21, 2007 (04:03:30 LKT)
- */
-            
-                package org.apache.axis2.databinding.types.xsd;
-
-import javax.xml.stream.XMLStreamWriter;
-            
-
-            /**
-            *  NonNegativeInteger bean class
-            */
-        
-        public  class NonNegativeInteger
-        implements org.apache.axis2.databinding.ADBBean{
-        /* This type was generated from the piece of schema that had
-                name = nonNegativeInteger
-                Namespace URI = http://www.w3.org/2001/XMLSchema
-                Namespace Prefix = ns1
-                */
-            
-
-        private static java.lang.String generatePrefix(java.lang.String namespace) {
-            if(namespace.equals("http://www.w3.org/2001/XMLSchema")){
-                return "xsd";
-            }
-            return org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-        }
-
-        
-
-                        /**
-                        * field for NonNegativeInteger
-                        */
-
-                        
-                                    protected org.apache.axis2.databinding.types.NonNegativeInteger localNonNegativeInteger ;
-                                
-
-                           /**
-                           * Auto generated getter method
-                           * @return org.apache.axis2.databinding.types.NonNegativeInteger
-                           */
-                           public  org.apache.axis2.databinding.types.NonNegativeInteger getNonNegativeInteger(){
-                               return localNonNegativeInteger;
-                           }
-
-                           
-                        
-                            /**
-                               * Auto generated setter method
-                               * @param param NonNegativeInteger
-                               */
-                               public void setNonNegativeInteger(org.apache.axis2.databinding.types.NonNegativeInteger param){
-                            
-                                            this.localNonNegativeInteger=param;
-                                    
-
-                               }
-                            
-
-                            public java.lang.String toString(){
-                                
-                                        return localNonNegativeInteger.toString();
-                                    
-                            }
-                        
-
-     /**
-     * isReaderMTOMAware
-     * @return true if the reader supports MTOM
-     */
-   public static boolean isReaderMTOMAware(javax.xml.stream.XMLStreamReader reader) {
-        boolean isReaderMTOMAware = false;
-        
-        try{
-          isReaderMTOMAware = java.lang.Boolean.TRUE.equals(reader.getProperty(org.apache.axiom.om.OMConstants.IS_DATA_HANDLERS_AWARE));
-        }catch(java.lang.IllegalArgumentException e){
-          isReaderMTOMAware = false;
-        }
-        return isReaderMTOMAware;
-   }
-     
-     
-        /**
-        *
-        * @param parentQName
-        * @param factory
-        * @return org.apache.axiom.om.OMElement
-        */
-       public org.apache.axiom.om.OMElement getOMElement (
-               final javax.xml.namespace.QName parentQName,
-               final org.apache.axiom.om.OMFactory factory) throws org.apache.axis2.databinding.ADBException{
-
-
-        
-               org.apache.axiom.om.OMDataSource dataSource =
-                       new org.apache.axis2.databinding.ADBDataSource(this,parentQName);
-               return factory.createOMElement(dataSource,parentQName);
-            
-       }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                                       XMLStreamWriter xmlWriter)
-                                throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-                           serialize(parentQName,xmlWriter,false);
-         }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                               XMLStreamWriter xmlWriter,
-                               boolean serializeType)
-            throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-            
-                
-
-
-                java.lang.String prefix = null;
-                java.lang.String namespace = null;
-                
-
-                    prefix = parentQName.getPrefix();
-                    namespace = parentQName.getNamespaceURI();
-
-                    if ((namespace != null) && (namespace.trim().length() > 0)) {
-                        java.lang.String writerPrefix = xmlWriter.getPrefix(namespace);
-                        if (writerPrefix != null) {
-                            xmlWriter.writeStartElement(namespace, parentQName.getLocalPart());
-                        } else {
-                            if (prefix == null) {
-                                prefix = generatePrefix(namespace);
-                            }
-
-                            xmlWriter.writeStartElement(prefix, parentQName.getLocalPart(), namespace);
-                            xmlWriter.writeNamespace(prefix, namespace);
-                            xmlWriter.setPrefix(prefix, namespace);
-                        }
-                    } else {
-                        xmlWriter.writeStartElement(parentQName.getLocalPart());
-                    }
-                
-                  if (serializeType){
-               
-                   java.lang.String namespacePrefix = registerPrefix(xmlWriter,"http://www.w3.org/2001/XMLSchema");
-                   if ((namespacePrefix != null) && (namespacePrefix.trim().length() > 0)){
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           namespacePrefix+":nonNegativeInteger",
-                           xmlWriter);
-                   } else {
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           "nonNegativeInteger",
-                           xmlWriter);
-                   }
-
-               
-                   }
-               
-
-                                          if (localNonNegativeInteger==null){
-                                              // write the nil attribute
-                                              
-                                                     throw new org.apache.axis2.databinding.ADBException("nonNegativeInteger cannot be null!!");
-                                                  
-                                          }else{
-
-                                        
-                                                   xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(localNonNegativeInteger));
-                                            
-                                          }
-                                    
-                    xmlWriter.writeEndElement();
-               
-
-        }
-
-         /**
-          * Util method to write an attribute with the ns prefix
-          */
-          private void writeAttribute(java.lang.String prefix,java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-              if (xmlWriter.getPrefix(namespace) == null) {
-                       xmlWriter.writeNamespace(prefix, namespace);
-                       xmlWriter.setPrefix(prefix, namespace);
-
-              }
-
-              xmlWriter.writeAttribute(namespace,attName,attValue);
-
-         }
-
-        /**
-          * Util method to write an attribute without the ns prefix
-          */
-          private void writeAttribute(java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-                if (namespace.equals(""))
-              {
-                  xmlWriter.writeAttribute(attName,attValue);
-              }
-              else
-              {
-                  registerPrefix(xmlWriter, namespace);
-                  xmlWriter.writeAttribute(namespace,attName,attValue);
-              }
-          }
-
-
-           /**
-             * Util method to write an attribute without the ns prefix
-             */
-            private void writeQNameAttribute(java.lang.String namespace, java.lang.String attName,
-                                             javax.xml.namespace.QName qname, javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-                java.lang.String attributeNamespace = qname.getNamespaceURI();
-                java.lang.String attributePrefix = xmlWriter.getPrefix(attributeNamespace);
-                if (attributePrefix == null) {
-                    attributePrefix = registerPrefix(xmlWriter, attributeNamespace);
-                }
-                java.lang.String attributeValue;
-                if (attributePrefix.trim().length() > 0) {
-                    attributeValue = attributePrefix + ":" + qname.getLocalPart();
-                } else {
-                    attributeValue = qname.getLocalPart();
-                }
-
-                if (namespace.equals("")) {
-                    xmlWriter.writeAttribute(attName, attributeValue);
-                } else {
-                    registerPrefix(xmlWriter, namespace);
-                    xmlWriter.writeAttribute(namespace, attName, attributeValue);
-                }
-            }
-        /**
-         *  method to handle Qnames
-         */
-
-        private void writeQName(javax.xml.namespace.QName qname,
-                                javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-            java.lang.String namespaceURI = qname.getNamespaceURI();
-            if (namespaceURI != null) {
-                java.lang.String prefix = xmlWriter.getPrefix(namespaceURI);
-                if (prefix == null) {
-                    prefix = generatePrefix(namespaceURI);
-                    xmlWriter.writeNamespace(prefix, namespaceURI);
-                    xmlWriter.setPrefix(prefix,namespaceURI);
-                }
-
-                if (prefix.trim().length() > 0){
-                    xmlWriter.writeCharacters(prefix + ":" + org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                } else {
-                    // i.e this is the default namespace
-                    xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                }
-
-            } else {
-                xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-            }
-        }
-
-        private void writeQNames(javax.xml.namespace.QName[] qnames,
-                                 javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-            if (qnames != null) {
-                // we have to store this data until last moment since it is not possible to write any
-                // namespace data after writing the charactor data
-                java.lang.StringBuffer stringToWrite = new java.lang.StringBuffer();
-                java.lang.String namespaceURI = null;
-                java.lang.String prefix = null;
-
-                for (int i = 0; i < qnames.length; i++) {
-                    if (i > 0) {
-                        stringToWrite.append(" ");
-                    }
-                    namespaceURI = qnames[i].getNamespaceURI();
-                    if (namespaceURI != null) {
-                        prefix = xmlWriter.getPrefix(namespaceURI);
-                        if ((prefix == null) || (prefix.length() == 0)) {
-                            prefix = generatePrefix(namespaceURI);
-                            xmlWriter.writeNamespace(prefix, namespaceURI);
-                            xmlWriter.setPrefix(prefix,namespaceURI);
-                        }
-
-                        if (prefix.trim().length() > 0){
-                            stringToWrite.append(prefix).append(":").append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        } else {
-                            stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        }
-                    } else {
-                        stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                    }
-                }
-                xmlWriter.writeCharacters(stringToWrite.toString());
-            }
-
-        }
-
-
-         /**
-         * Register a namespace prefix
-         */
-         private java.lang.String registerPrefix(javax.xml.stream.XMLStreamWriter xmlWriter, java.lang.String namespace) throws javax.xml.stream.XMLStreamException {
-                java.lang.String prefix = xmlWriter.getPrefix(namespace);
-
-                if (prefix == null) {
-                    prefix = generatePrefix(namespace);
-                    javax.xml.namespace.NamespaceContext nsContext = xmlWriter.getNamespaceContext();
-                    while (true) {
-                        java.lang.String uri = nsContext.getNamespaceURI(prefix);
-                        if (uri == null || uri.length() == 0) {
-                            break;
-                        }
-                        prefix = org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-                    }
-                    xmlWriter.writeNamespace(prefix, namespace);
-                    xmlWriter.setPrefix(prefix, namespace);
-                }
-
-                return prefix;
-            }
-
-
-  
-     /**
-      *  Factory class that keeps the parse method
-      */
-    public static class Factory{
-
-        
-        
-                public static NonNegativeInteger fromString(java.lang.String value,
-                                                    java.lang.String namespaceURI){
-                    NonNegativeInteger returnValue = new  NonNegativeInteger();
-                    
-                            returnValue.setNonNegativeInteger(
-                                org.apache.axis2.databinding.utils.ConverterUtil.convertToNonNegativeInteger(value));
-                        
-
-                    return returnValue;
-                }
-
-                public static NonNegativeInteger fromString(javax.xml.stream.XMLStreamReader xmlStreamReader,
-                                                                    java.lang.String content) {
-                    if (content.indexOf(":") > -1){
-                        java.lang.String prefix = content.substring(0,content.indexOf(":"));
-                        java.lang.String namespaceUri = xmlStreamReader.getNamespaceContext().getNamespaceURI(prefix);
-                        return NonNegativeInteger.Factory.fromString(content,namespaceUri);
-                    } else {
-                       return NonNegativeInteger.Factory.fromString(content,"");
-                    }
-                }
-
-            
-
-        /**
-        * static method to create the object
-        * Precondition:  If this object is an element, the current or next start element starts this object and any intervening reader events are ignorable
-        *                If this object is not an element, it is a complex type and the reader is at the event just after the outer start element
-        * Postcondition: If this object is an element, the reader is positioned at its end element
-        *                If this object is a complex type, the reader is positioned at the end element of its outer element
-        */
-        public static NonNegativeInteger parse(javax.xml.stream.XMLStreamReader reader) throws java.lang.Exception{
-            NonNegativeInteger object =
-                new NonNegativeInteger();
-
-            int event;
-            java.lang.String nillableValue = null;
-            java.lang.String prefix ="";
-            java.lang.String namespaceuri ="";
-            try {
-                
-                while (!reader.isStartElement() && !reader.isEndElement())
-                    reader.next();
-
-                
-                if (reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance","type")!=null){
-                  java.lang.String fullTypeName = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance",
-                        "type");
-                  if (fullTypeName!=null){
-                    java.lang.String nsPrefix = null;
-                    if (fullTypeName.indexOf(":") > -1){
-                        nsPrefix = fullTypeName.substring(0,fullTypeName.indexOf(":"));
-                    }
-                    nsPrefix = nsPrefix==null?"":nsPrefix;
-
-                    java.lang.String type = fullTypeName.substring(fullTypeName.indexOf(":")+1);
-                    
-                            if (!"nonNegativeInteger".equals(type)){
-                                //find namespace for the prefix
-                                java.lang.String nsUri = reader.getNamespaceContext().getNamespaceURI(nsPrefix);
-                                return (NonNegativeInteger)org.apache.axis2.databinding.types.xsd.ExtensionMapper.getTypeObject(
-                                     nsUri,type,reader);
-                              }
-                        
-
-                  }
-                
-
-                }
-
-                
-
-                
-                // Note all attributes that were handled. Used to differ normal attributes
-                // from anyAttributes.
-                java.util.Vector handledAttributes = new java.util.Vector();
-                
-
-                    
-                while(!reader.isEndElement()) {
-                    if (reader.isStartElement()  || reader.hasText()){
-                
-                                    if (reader.isStartElement()  || reader.hasText()){
-                                
-                                    java.lang.String content = reader.getElementText();
-                                    
-                                              object.setNonNegativeInteger(
-                                                    org.apache.axis2.databinding.utils.ConverterUtil.convertToNonNegativeInteger(content));
-                                            
-                              }  // End of if for expected property start element
-                                
-                             else{
-                                        // A start element we are not expecting indicates an invalid parameter was passed
-                                        throw new org.apache.axis2.databinding.ADBException("Unexpected subelement " + reader.getLocalName());
-                             }
-                          
-                             } else {
-                                reader.next();
-                             }  
-                           }  // end of while loop
-                        
-
-
-
-            } catch (javax.xml.stream.XMLStreamException e) {
-                throw new java.lang.Exception(e);
-            }
-
-            return object;
-        }
-
-        }//end of factory class
-
-        
-
-        }
-           
-          
\ No newline at end of file
diff --git a/modules/adb/src/org/apache/axis2/databinding/types/xsd/NonPositiveInteger.java b/modules/adb/src/org/apache/axis2/databinding/types/xsd/NonPositiveInteger.java
deleted file mode 100644
index 5028195..0000000
--- a/modules/adb/src/org/apache/axis2/databinding/types/xsd/NonPositiveInteger.java
+++ /dev/null
@@ -1,469 +0,0 @@
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/**
- * NonPositiveInteger.java
- *
- * This file was auto-generated from WSDL
- * by the Apache Axis2 version: SNAPSHOT  Built on : Dec 21, 2007 (04:03:30 LKT)
- */
-            
-                package org.apache.axis2.databinding.types.xsd;
-
-import javax.xml.stream.XMLStreamWriter;
-            
-
-            /**
-            *  NonPositiveInteger bean class
-            */
-        
-        public  class NonPositiveInteger
-        implements org.apache.axis2.databinding.ADBBean{
-        /* This type was generated from the piece of schema that had
-                name = nonPositiveInteger
-                Namespace URI = http://www.w3.org/2001/XMLSchema
-                Namespace Prefix = ns1
-                */
-            
-
-        private static java.lang.String generatePrefix(java.lang.String namespace) {
-            if(namespace.equals("http://www.w3.org/2001/XMLSchema")){
-                return "xsd";
-            }
-            return org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-        }
-
-        
-
-                        /**
-                        * field for NonPositiveInteger
-                        */
-
-                        
-                                    protected org.apache.axis2.databinding.types.NonPositiveInteger localNonPositiveInteger ;
-                                
-
-                           /**
-                           * Auto generated getter method
-                           * @return org.apache.axis2.databinding.types.NonPositiveInteger
-                           */
-                           public  org.apache.axis2.databinding.types.NonPositiveInteger getNonPositiveInteger(){
-                               return localNonPositiveInteger;
-                           }
-
-                           
-                        
-                            /**
-                               * Auto generated setter method
-                               * @param param NonPositiveInteger
-                               */
-                               public void setNonPositiveInteger(org.apache.axis2.databinding.types.NonPositiveInteger param){
-                            
-                                            this.localNonPositiveInteger=param;
-                                    
-
-                               }
-                            
-
-                            public java.lang.String toString(){
-                                
-                                        return localNonPositiveInteger.toString();
-                                    
-                            }
-                        
-
-     /**
-     * isReaderMTOMAware
-     * @return true if the reader supports MTOM
-     */
-   public static boolean isReaderMTOMAware(javax.xml.stream.XMLStreamReader reader) {
-        boolean isReaderMTOMAware = false;
-        
-        try{
-          isReaderMTOMAware = java.lang.Boolean.TRUE.equals(reader.getProperty(org.apache.axiom.om.OMConstants.IS_DATA_HANDLERS_AWARE));
-        }catch(java.lang.IllegalArgumentException e){
-          isReaderMTOMAware = false;
-        }
-        return isReaderMTOMAware;
-   }
-     
-     
-        /**
-        *
-        * @param parentQName
-        * @param factory
-        * @return org.apache.axiom.om.OMElement
-        */
-       public org.apache.axiom.om.OMElement getOMElement (
-               final javax.xml.namespace.QName parentQName,
-               final org.apache.axiom.om.OMFactory factory) throws org.apache.axis2.databinding.ADBException{
-
-
-        
-               org.apache.axiom.om.OMDataSource dataSource =
-                       new org.apache.axis2.databinding.ADBDataSource(this,parentQName);
-               return factory.createOMElement(dataSource,parentQName);
-            
-       }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                                       XMLStreamWriter xmlWriter)
-                                throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-                           serialize(parentQName,xmlWriter,false);
-         }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                               XMLStreamWriter xmlWriter,
-                               boolean serializeType)
-            throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-            
-                
-
-
-                java.lang.String prefix = null;
-                java.lang.String namespace = null;
-                
-
-                    prefix = parentQName.getPrefix();
-                    namespace = parentQName.getNamespaceURI();
-
-                    if ((namespace != null) && (namespace.trim().length() > 0)) {
-                        java.lang.String writerPrefix = xmlWriter.getPrefix(namespace);
-                        if (writerPrefix != null) {
-                            xmlWriter.writeStartElement(namespace, parentQName.getLocalPart());
-                        } else {
-                            if (prefix == null) {
-                                prefix = generatePrefix(namespace);
-                            }
-
-                            xmlWriter.writeStartElement(prefix, parentQName.getLocalPart(), namespace);
-                            xmlWriter.writeNamespace(prefix, namespace);
-                            xmlWriter.setPrefix(prefix, namespace);
-                        }
-                    } else {
-                        xmlWriter.writeStartElement(parentQName.getLocalPart());
-                    }
-                
-                  if (serializeType){
-               
-                   java.lang.String namespacePrefix = registerPrefix(xmlWriter,"http://www.w3.org/2001/XMLSchema");
-                   if ((namespacePrefix != null) && (namespacePrefix.trim().length() > 0)){
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           namespacePrefix+":nonPositiveInteger",
-                           xmlWriter);
-                   } else {
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           "nonPositiveInteger",
-                           xmlWriter);
-                   }
-
-               
-                   }
-               
-
-                                          if (localNonPositiveInteger==null){
-                                              // write the nil attribute
-                                              
-                                                     throw new org.apache.axis2.databinding.ADBException("nonPositiveInteger cannot be null!!");
-                                                  
-                                          }else{
-
-                                        
-                                                   xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(localNonPositiveInteger));
-                                            
-                                          }
-                                    
-                    xmlWriter.writeEndElement();
-               
-
-        }
-
-         /**
-          * Util method to write an attribute with the ns prefix
-          */
-          private void writeAttribute(java.lang.String prefix,java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-              if (xmlWriter.getPrefix(namespace) == null) {
-                       xmlWriter.writeNamespace(prefix, namespace);
-                       xmlWriter.setPrefix(prefix, namespace);
-
-              }
-
-              xmlWriter.writeAttribute(namespace,attName,attValue);
-
-         }
-
-        /**
-          * Util method to write an attribute without the ns prefix
-          */
-          private void writeAttribute(java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-                if (namespace.equals(""))
-              {
-                  xmlWriter.writeAttribute(attName,attValue);
-              }
-              else
-              {
-                  registerPrefix(xmlWriter, namespace);
-                  xmlWriter.writeAttribute(namespace,attName,attValue);
-              }
-          }
-
-
-           /**
-             * Util method to write an attribute without the ns prefix
-             */
-            private void writeQNameAttribute(java.lang.String namespace, java.lang.String attName,
-                                             javax.xml.namespace.QName qname, javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-                java.lang.String attributeNamespace = qname.getNamespaceURI();
-                java.lang.String attributePrefix = xmlWriter.getPrefix(attributeNamespace);
-                if (attributePrefix == null) {
-                    attributePrefix = registerPrefix(xmlWriter, attributeNamespace);
-                }
-                java.lang.String attributeValue;
-                if (attributePrefix.trim().length() > 0) {
-                    attributeValue = attributePrefix + ":" + qname.getLocalPart();
-                } else {
-                    attributeValue = qname.getLocalPart();
-                }
-
-                if (namespace.equals("")) {
-                    xmlWriter.writeAttribute(attName, attributeValue);
-                } else {
-                    registerPrefix(xmlWriter, namespace);
-                    xmlWriter.writeAttribute(namespace, attName, attributeValue);
-                }
-            }
-        /**
-         *  method to handle Qnames
-         */
-
-        private void writeQName(javax.xml.namespace.QName qname,
-                                javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-            java.lang.String namespaceURI = qname.getNamespaceURI();
-            if (namespaceURI != null) {
-                java.lang.String prefix = xmlWriter.getPrefix(namespaceURI);
-                if (prefix == null) {
-                    prefix = generatePrefix(namespaceURI);
-                    xmlWriter.writeNamespace(prefix, namespaceURI);
-                    xmlWriter.setPrefix(prefix,namespaceURI);
-                }
-
-                if (prefix.trim().length() > 0){
-                    xmlWriter.writeCharacters(prefix + ":" + org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                } else {
-                    // i.e this is the default namespace
-                    xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                }
-
-            } else {
-                xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-            }
-        }
-
-        private void writeQNames(javax.xml.namespace.QName[] qnames,
-                                 javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-            if (qnames != null) {
-                // we have to store this data until last moment since it is not possible to write any
-                // namespace data after writing the charactor data
-                java.lang.StringBuffer stringToWrite = new java.lang.StringBuffer();
-                java.lang.String namespaceURI = null;
-                java.lang.String prefix = null;
-
-                for (int i = 0; i < qnames.length; i++) {
-                    if (i > 0) {
-                        stringToWrite.append(" ");
-                    }
-                    namespaceURI = qnames[i].getNamespaceURI();
-                    if (namespaceURI != null) {
-                        prefix = xmlWriter.getPrefix(namespaceURI);
-                        if ((prefix == null) || (prefix.length() == 0)) {
-                            prefix = generatePrefix(namespaceURI);
-                            xmlWriter.writeNamespace(prefix, namespaceURI);
-                            xmlWriter.setPrefix(prefix,namespaceURI);
-                        }
-
-                        if (prefix.trim().length() > 0){
-                            stringToWrite.append(prefix).append(":").append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        } else {
-                            stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        }
-                    } else {
-                        stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                    }
-                }
-                xmlWriter.writeCharacters(stringToWrite.toString());
-            }
-
-        }
-
-
-         /**
-         * Register a namespace prefix
-         */
-         private java.lang.String registerPrefix(javax.xml.stream.XMLStreamWriter xmlWriter, java.lang.String namespace) throws javax.xml.stream.XMLStreamException {
-                java.lang.String prefix = xmlWriter.getPrefix(namespace);
-
-                if (prefix == null) {
-                    prefix = generatePrefix(namespace);
-                    javax.xml.namespace.NamespaceContext nsContext = xmlWriter.getNamespaceContext();
-                    while (true) {
-                        java.lang.String uri = nsContext.getNamespaceURI(prefix);
-                        if (uri == null || uri.length() == 0) {
-                            break;
-                        }
-                        prefix = org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-                    }
-                    xmlWriter.writeNamespace(prefix, namespace);
-                    xmlWriter.setPrefix(prefix, namespace);
-                }
-
-                return prefix;
-            }
-
-
-  
-     /**
-      *  Factory class that keeps the parse method
-      */
-    public static class Factory{
-
-        
-        
-                public static NonPositiveInteger fromString(java.lang.String value,
-                                                    java.lang.String namespaceURI){
-                    NonPositiveInteger returnValue = new  NonPositiveInteger();
-                    
-                            returnValue.setNonPositiveInteger(
-                                org.apache.axis2.databinding.utils.ConverterUtil.convertToNonPositiveInteger(value));
-                        
-
-                    return returnValue;
-                }
-
-                public static NonPositiveInteger fromString(javax.xml.stream.XMLStreamReader xmlStreamReader,
-                                                                    java.lang.String content) {
-                    if (content.indexOf(":") > -1){
-                        java.lang.String prefix = content.substring(0,content.indexOf(":"));
-                        java.lang.String namespaceUri = xmlStreamReader.getNamespaceContext().getNamespaceURI(prefix);
-                        return NonPositiveInteger.Factory.fromString(content,namespaceUri);
-                    } else {
-                       return NonPositiveInteger.Factory.fromString(content,"");
-                    }
-                }
-
-            
-
-        /**
-        * static method to create the object
-        * Precondition:  If this object is an element, the current or next start element starts this object and any intervening reader events are ignorable
-        *                If this object is not an element, it is a complex type and the reader is at the event just after the outer start element
-        * Postcondition: If this object is an element, the reader is positioned at its end element
-        *                If this object is a complex type, the reader is positioned at the end element of its outer element
-        */
-        public static NonPositiveInteger parse(javax.xml.stream.XMLStreamReader reader) throws java.lang.Exception{
-            NonPositiveInteger object =
-                new NonPositiveInteger();
-
-            int event;
-            java.lang.String nillableValue = null;
-            java.lang.String prefix ="";
-            java.lang.String namespaceuri ="";
-            try {
-                
-                while (!reader.isStartElement() && !reader.isEndElement())
-                    reader.next();
-
-                
-                if (reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance","type")!=null){
-                  java.lang.String fullTypeName = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance",
-                        "type");
-                  if (fullTypeName!=null){
-                    java.lang.String nsPrefix = null;
-                    if (fullTypeName.indexOf(":") > -1){
-                        nsPrefix = fullTypeName.substring(0,fullTypeName.indexOf(":"));
-                    }
-                    nsPrefix = nsPrefix==null?"":nsPrefix;
-
-                    java.lang.String type = fullTypeName.substring(fullTypeName.indexOf(":")+1);
-                    
-                            if (!"nonPositiveInteger".equals(type)){
-                                //find namespace for the prefix
-                                java.lang.String nsUri = reader.getNamespaceContext().getNamespaceURI(nsPrefix);
-                                return (NonPositiveInteger)org.apache.axis2.databinding.types.xsd.ExtensionMapper.getTypeObject(
-                                     nsUri,type,reader);
-                              }
-                        
-
-                  }
-                
-
-                }
-
-                
-
-                
-                // Note all attributes that were handled. Used to differ normal attributes
-                // from anyAttributes.
-                java.util.Vector handledAttributes = new java.util.Vector();
-                
-
-                    
-                while(!reader.isEndElement()) {
-                    if (reader.isStartElement()  || reader.hasText()){
-                
-                                    if (reader.isStartElement()  || reader.hasText()){
-                                
-                                    java.lang.String content = reader.getElementText();
-                                    
-                                              object.setNonPositiveInteger(
-                                                    org.apache.axis2.databinding.utils.ConverterUtil.convertToNonPositiveInteger(content));
-                                            
-                              }  // End of if for expected property start element
-                                
-                             else{
-                                        // A start element we are not expecting indicates an invalid parameter was passed
-                                        throw new org.apache.axis2.databinding.ADBException("Unexpected subelement " + reader.getLocalName());
-                             }
-                          
-                             } else {
-                                reader.next();
-                             }  
-                           }  // end of while loop
-                        
-
-
-
-            } catch (javax.xml.stream.XMLStreamException e) {
-                throw new java.lang.Exception(e);
-            }
-
-            return object;
-        }
-
-        }//end of factory class
-
-        
-
-        }
-           
-          
\ No newline at end of file
diff --git a/modules/adb/src/org/apache/axis2/databinding/types/xsd/NormalizedString.java b/modules/adb/src/org/apache/axis2/databinding/types/xsd/NormalizedString.java
deleted file mode 100644
index 8abbb74..0000000
--- a/modules/adb/src/org/apache/axis2/databinding/types/xsd/NormalizedString.java
+++ /dev/null
@@ -1,469 +0,0 @@
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/**
- * NormalizedString.java
- *
- * This file was auto-generated from WSDL
- * by the Apache Axis2 version: SNAPSHOT  Built on : Dec 21, 2007 (04:03:30 LKT)
- */
-            
-                package org.apache.axis2.databinding.types.xsd;
-
-import javax.xml.stream.XMLStreamWriter;
-            
-
-            /**
-            *  NormalizedString bean class
-            */
-        
-        public  class NormalizedString
-        implements org.apache.axis2.databinding.ADBBean{
-        /* This type was generated from the piece of schema that had
-                name = normalizedString
-                Namespace URI = http://www.w3.org/2001/XMLSchema
-                Namespace Prefix = ns1
-                */
-            
-
-        private static java.lang.String generatePrefix(java.lang.String namespace) {
-            if(namespace.equals("http://www.w3.org/2001/XMLSchema")){
-                return "xsd";
-            }
-            return org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-        }
-
-        
-
-                        /**
-                        * field for NormalizedString
-                        */
-
-                        
-                                    protected org.apache.axis2.databinding.types.NormalizedString localNormalizedString ;
-                                
-
-                           /**
-                           * Auto generated getter method
-                           * @return org.apache.axis2.databinding.types.NormalizedString
-                           */
-                           public  org.apache.axis2.databinding.types.NormalizedString getNormalizedString(){
-                               return localNormalizedString;
-                           }
-
-                           
-                        
-                            /**
-                               * Auto generated setter method
-                               * @param param NormalizedString
-                               */
-                               public void setNormalizedString(org.apache.axis2.databinding.types.NormalizedString param){
-                            
-                                            this.localNormalizedString=param;
-                                    
-
-                               }
-                            
-
-                            public java.lang.String toString(){
-                                
-                                        return localNormalizedString.toString();
-                                    
-                            }
-                        
-
-     /**
-     * isReaderMTOMAware
-     * @return true if the reader supports MTOM
-     */
-   public static boolean isReaderMTOMAware(javax.xml.stream.XMLStreamReader reader) {
-        boolean isReaderMTOMAware = false;
-        
-        try{
-          isReaderMTOMAware = java.lang.Boolean.TRUE.equals(reader.getProperty(org.apache.axiom.om.OMConstants.IS_DATA_HANDLERS_AWARE));
-        }catch(java.lang.IllegalArgumentException e){
-          isReaderMTOMAware = false;
-        }
-        return isReaderMTOMAware;
-   }
-     
-     
-        /**
-        *
-        * @param parentQName
-        * @param factory
-        * @return org.apache.axiom.om.OMElement
-        */
-       public org.apache.axiom.om.OMElement getOMElement (
-               final javax.xml.namespace.QName parentQName,
-               final org.apache.axiom.om.OMFactory factory) throws org.apache.axis2.databinding.ADBException{
-
-
-        
-               org.apache.axiom.om.OMDataSource dataSource =
-                       new org.apache.axis2.databinding.ADBDataSource(this,parentQName);
-               return factory.createOMElement(dataSource,parentQName);
-            
-       }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                                       XMLStreamWriter xmlWriter)
-                                throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-                           serialize(parentQName,xmlWriter,false);
-         }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                               XMLStreamWriter xmlWriter,
-                               boolean serializeType)
-            throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-            
-                
-
-
-                java.lang.String prefix = null;
-                java.lang.String namespace = null;
-                
-
-                    prefix = parentQName.getPrefix();
-                    namespace = parentQName.getNamespaceURI();
-
-                    if ((namespace != null) && (namespace.trim().length() > 0)) {
-                        java.lang.String writerPrefix = xmlWriter.getPrefix(namespace);
-                        if (writerPrefix != null) {
-                            xmlWriter.writeStartElement(namespace, parentQName.getLocalPart());
-                        } else {
-                            if (prefix == null) {
-                                prefix = generatePrefix(namespace);
-                            }
-
-                            xmlWriter.writeStartElement(prefix, parentQName.getLocalPart(), namespace);
-                            xmlWriter.writeNamespace(prefix, namespace);
-                            xmlWriter.setPrefix(prefix, namespace);
-                        }
-                    } else {
-                        xmlWriter.writeStartElement(parentQName.getLocalPart());
-                    }
-                
-                  if (serializeType){
-               
-                   java.lang.String namespacePrefix = registerPrefix(xmlWriter,"http://www.w3.org/2001/XMLSchema");
-                   if ((namespacePrefix != null) && (namespacePrefix.trim().length() > 0)){
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           namespacePrefix+":normalizedString",
-                           xmlWriter);
-                   } else {
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           "normalizedString",
-                           xmlWriter);
-                   }
-
-               
-                   }
-               
-
-                                          if (localNormalizedString==null){
-                                              // write the nil attribute
-                                              
-                                                     throw new org.apache.axis2.databinding.ADBException("normalizedString cannot be null!!");
-                                                  
-                                          }else{
-
-                                        
-                                                   xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(localNormalizedString));
-                                            
-                                          }
-                                    
-                    xmlWriter.writeEndElement();
-               
-
-        }
-
-         /**
-          * Util method to write an attribute with the ns prefix
-          */
-          private void writeAttribute(java.lang.String prefix,java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-              if (xmlWriter.getPrefix(namespace) == null) {
-                       xmlWriter.writeNamespace(prefix, namespace);
-                       xmlWriter.setPrefix(prefix, namespace);
-
-              }
-
-              xmlWriter.writeAttribute(namespace,attName,attValue);
-
-         }
-
-        /**
-          * Util method to write an attribute without the ns prefix
-          */
-          private void writeAttribute(java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-                if (namespace.equals(""))
-              {
-                  xmlWriter.writeAttribute(attName,attValue);
-              }
-              else
-              {
-                  registerPrefix(xmlWriter, namespace);
-                  xmlWriter.writeAttribute(namespace,attName,attValue);
-              }
-          }
-
-
-           /**
-             * Util method to write an attribute without the ns prefix
-             */
-            private void writeQNameAttribute(java.lang.String namespace, java.lang.String attName,
-                                             javax.xml.namespace.QName qname, javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-                java.lang.String attributeNamespace = qname.getNamespaceURI();
-                java.lang.String attributePrefix = xmlWriter.getPrefix(attributeNamespace);
-                if (attributePrefix == null) {
-                    attributePrefix = registerPrefix(xmlWriter, attributeNamespace);
-                }
-                java.lang.String attributeValue;
-                if (attributePrefix.trim().length() > 0) {
-                    attributeValue = attributePrefix + ":" + qname.getLocalPart();
-                } else {
-                    attributeValue = qname.getLocalPart();
-                }
-
-                if (namespace.equals("")) {
-                    xmlWriter.writeAttribute(attName, attributeValue);
-                } else {
-                    registerPrefix(xmlWriter, namespace);
-                    xmlWriter.writeAttribute(namespace, attName, attributeValue);
-                }
-            }
-        /**
-         *  method to handle Qnames
-         */
-
-        private void writeQName(javax.xml.namespace.QName qname,
-                                javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-            java.lang.String namespaceURI = qname.getNamespaceURI();
-            if (namespaceURI != null) {
-                java.lang.String prefix = xmlWriter.getPrefix(namespaceURI);
-                if (prefix == null) {
-                    prefix = generatePrefix(namespaceURI);
-                    xmlWriter.writeNamespace(prefix, namespaceURI);
-                    xmlWriter.setPrefix(prefix,namespaceURI);
-                }
-
-                if (prefix.trim().length() > 0){
-                    xmlWriter.writeCharacters(prefix + ":" + org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                } else {
-                    // i.e this is the default namespace
-                    xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                }
-
-            } else {
-                xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-            }
-        }
-
-        private void writeQNames(javax.xml.namespace.QName[] qnames,
-                                 javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-            if (qnames != null) {
-                // we have to store this data until last moment since it is not possible to write any
-                // namespace data after writing the charactor data
-                java.lang.StringBuffer stringToWrite = new java.lang.StringBuffer();
-                java.lang.String namespaceURI = null;
-                java.lang.String prefix = null;
-
-                for (int i = 0; i < qnames.length; i++) {
-                    if (i > 0) {
-                        stringToWrite.append(" ");
-                    }
-                    namespaceURI = qnames[i].getNamespaceURI();
-                    if (namespaceURI != null) {
-                        prefix = xmlWriter.getPrefix(namespaceURI);
-                        if ((prefix == null) || (prefix.length() == 0)) {
-                            prefix = generatePrefix(namespaceURI);
-                            xmlWriter.writeNamespace(prefix, namespaceURI);
-                            xmlWriter.setPrefix(prefix,namespaceURI);
-                        }
-
-                        if (prefix.trim().length() > 0){
-                            stringToWrite.append(prefix).append(":").append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        } else {
-                            stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        }
-                    } else {
-                        stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                    }
-                }
-                xmlWriter.writeCharacters(stringToWrite.toString());
-            }
-
-        }
-
-
-         /**
-         * Register a namespace prefix
-         */
-         private java.lang.String registerPrefix(javax.xml.stream.XMLStreamWriter xmlWriter, java.lang.String namespace) throws javax.xml.stream.XMLStreamException {
-                java.lang.String prefix = xmlWriter.getPrefix(namespace);
-
-                if (prefix == null) {
-                    prefix = generatePrefix(namespace);
-                    javax.xml.namespace.NamespaceContext nsContext = xmlWriter.getNamespaceContext();
-                    while (true) {
-                        java.lang.String uri = nsContext.getNamespaceURI(prefix);
-                        if (uri == null || uri.length() == 0) {
-                            break;
-                        }
-                        prefix = org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-                    }
-                    xmlWriter.writeNamespace(prefix, namespace);
-                    xmlWriter.setPrefix(prefix, namespace);
-                }
-
-                return prefix;
-            }
-
-
-  
-     /**
-      *  Factory class that keeps the parse method
-      */
-    public static class Factory{
-
-        
-        
-                public static NormalizedString fromString(java.lang.String value,
-                                                    java.lang.String namespaceURI){
-                    NormalizedString returnValue = new  NormalizedString();
-                    
-                            returnValue.setNormalizedString(
-                                org.apache.axis2.databinding.utils.ConverterUtil.convertToNormalizedString(value));
-                        
-
-                    return returnValue;
-                }
-
-                public static NormalizedString fromString(javax.xml.stream.XMLStreamReader xmlStreamReader,
-                                                                    java.lang.String content) {
-                    if (content.indexOf(":") > -1){
-                        java.lang.String prefix = content.substring(0,content.indexOf(":"));
-                        java.lang.String namespaceUri = xmlStreamReader.getNamespaceContext().getNamespaceURI(prefix);
-                        return NormalizedString.Factory.fromString(content,namespaceUri);
-                    } else {
-                       return NormalizedString.Factory.fromString(content,"");
-                    }
-                }
-
-            
-
-        /**
-        * static method to create the object
-        * Precondition:  If this object is an element, the current or next start element starts this object and any intervening reader events are ignorable
-        *                If this object is not an element, it is a complex type and the reader is at the event just after the outer start element
-        * Postcondition: If this object is an element, the reader is positioned at its end element
-        *                If this object is a complex type, the reader is positioned at the end element of its outer element
-        */
-        public static NormalizedString parse(javax.xml.stream.XMLStreamReader reader) throws java.lang.Exception{
-            NormalizedString object =
-                new NormalizedString();
-
-            int event;
-            java.lang.String nillableValue = null;
-            java.lang.String prefix ="";
-            java.lang.String namespaceuri ="";
-            try {
-                
-                while (!reader.isStartElement() && !reader.isEndElement())
-                    reader.next();
-
-                
-                if (reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance","type")!=null){
-                  java.lang.String fullTypeName = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance",
-                        "type");
-                  if (fullTypeName!=null){
-                    java.lang.String nsPrefix = null;
-                    if (fullTypeName.indexOf(":") > -1){
-                        nsPrefix = fullTypeName.substring(0,fullTypeName.indexOf(":"));
-                    }
-                    nsPrefix = nsPrefix==null?"":nsPrefix;
-
-                    java.lang.String type = fullTypeName.substring(fullTypeName.indexOf(":")+1);
-                    
-                            if (!"normalizedString".equals(type)){
-                                //find namespace for the prefix
-                                java.lang.String nsUri = reader.getNamespaceContext().getNamespaceURI(nsPrefix);
-                                return (NormalizedString)org.apache.axis2.databinding.types.xsd.ExtensionMapper.getTypeObject(
-                                     nsUri,type,reader);
-                              }
-                        
-
-                  }
-                
-
-                }
-
-                
-
-                
-                // Note all attributes that were handled. Used to differ normal attributes
-                // from anyAttributes.
-                java.util.Vector handledAttributes = new java.util.Vector();
-                
-
-                    
-                while(!reader.isEndElement()) {
-                    if (reader.isStartElement()  || reader.hasText()){
-                
-                                    if (reader.isStartElement()  || reader.hasText()){
-                                
-                                    java.lang.String content = reader.getElementText();
-                                    
-                                              object.setNormalizedString(
-                                                    org.apache.axis2.databinding.utils.ConverterUtil.convertToNormalizedString(content));
-                                            
-                              }  // End of if for expected property start element
-                                
-                             else{
-                                        // A start element we are not expecting indicates an invalid parameter was passed
-                                        throw new org.apache.axis2.databinding.ADBException("Unexpected subelement " + reader.getLocalName());
-                             }
-                          
-                             } else {
-                                reader.next();
-                             }  
-                           }  // end of while loop
-                        
-
-
-
-            } catch (javax.xml.stream.XMLStreamException e) {
-                throw new java.lang.Exception(e);
-            }
-
-            return object;
-        }
-
-        }//end of factory class
-
-        
-
-        }
-           
-          
\ No newline at end of file
diff --git a/modules/adb/src/org/apache/axis2/databinding/types/xsd/PositiveInteger.java b/modules/adb/src/org/apache/axis2/databinding/types/xsd/PositiveInteger.java
deleted file mode 100644
index 064386e..0000000
--- a/modules/adb/src/org/apache/axis2/databinding/types/xsd/PositiveInteger.java
+++ /dev/null
@@ -1,469 +0,0 @@
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/**
- * PositiveInteger.java
- *
- * This file was auto-generated from WSDL
- * by the Apache Axis2 version: SNAPSHOT  Built on : Dec 21, 2007 (04:03:30 LKT)
- */
-            
-                package org.apache.axis2.databinding.types.xsd;
-
-import javax.xml.stream.XMLStreamWriter;
-            
-
-            /**
-            *  PositiveInteger bean class
-            */
-        
-        public  class PositiveInteger
-        implements org.apache.axis2.databinding.ADBBean{
-        /* This type was generated from the piece of schema that had
-                name = positiveInteger
-                Namespace URI = http://www.w3.org/2001/XMLSchema
-                Namespace Prefix = ns1
-                */
-            
-
-        private static java.lang.String generatePrefix(java.lang.String namespace) {
-            if(namespace.equals("http://www.w3.org/2001/XMLSchema")){
-                return "xsd";
-            }
-            return org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-        }
-
-        
-
-                        /**
-                        * field for PositiveInteger
-                        */
-
-                        
-                                    protected org.apache.axis2.databinding.types.PositiveInteger localPositiveInteger ;
-                                
-
-                           /**
-                           * Auto generated getter method
-                           * @return org.apache.axis2.databinding.types.PositiveInteger
-                           */
-                           public  org.apache.axis2.databinding.types.PositiveInteger getPositiveInteger(){
-                               return localPositiveInteger;
-                           }
-
-                           
-                        
-                            /**
-                               * Auto generated setter method
-                               * @param param PositiveInteger
-                               */
-                               public void setPositiveInteger(org.apache.axis2.databinding.types.PositiveInteger param){
-                            
-                                            this.localPositiveInteger=param;
-                                    
-
-                               }
-                            
-
-                            public java.lang.String toString(){
-                                
-                                        return localPositiveInteger.toString();
-                                    
-                            }
-                        
-
-     /**
-     * isReaderMTOMAware
-     * @return true if the reader supports MTOM
-     */
-   public static boolean isReaderMTOMAware(javax.xml.stream.XMLStreamReader reader) {
-        boolean isReaderMTOMAware = false;
-        
-        try{
-          isReaderMTOMAware = java.lang.Boolean.TRUE.equals(reader.getProperty(org.apache.axiom.om.OMConstants.IS_DATA_HANDLERS_AWARE));
-        }catch(java.lang.IllegalArgumentException e){
-          isReaderMTOMAware = false;
-        }
-        return isReaderMTOMAware;
-   }
-     
-     
-        /**
-        *
-        * @param parentQName
-        * @param factory
-        * @return org.apache.axiom.om.OMElement
-        */
-       public org.apache.axiom.om.OMElement getOMElement (
-               final javax.xml.namespace.QName parentQName,
-               final org.apache.axiom.om.OMFactory factory) throws org.apache.axis2.databinding.ADBException{
-
-
-        
-               org.apache.axiom.om.OMDataSource dataSource =
-                       new org.apache.axis2.databinding.ADBDataSource(this,parentQName);
-               return factory.createOMElement(dataSource,parentQName);
-            
-       }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                                       XMLStreamWriter xmlWriter)
-                                throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-                           serialize(parentQName,xmlWriter,false);
-         }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                               XMLStreamWriter xmlWriter,
-                               boolean serializeType)
-            throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-            
-                
-
-
-                java.lang.String prefix = null;
-                java.lang.String namespace = null;
-                
-
-                    prefix = parentQName.getPrefix();
-                    namespace = parentQName.getNamespaceURI();
-
-                    if ((namespace != null) && (namespace.trim().length() > 0)) {
-                        java.lang.String writerPrefix = xmlWriter.getPrefix(namespace);
-                        if (writerPrefix != null) {
-                            xmlWriter.writeStartElement(namespace, parentQName.getLocalPart());
-                        } else {
-                            if (prefix == null) {
-                                prefix = generatePrefix(namespace);
-                            }
-
-                            xmlWriter.writeStartElement(prefix, parentQName.getLocalPart(), namespace);
-                            xmlWriter.writeNamespace(prefix, namespace);
-                            xmlWriter.setPrefix(prefix, namespace);
-                        }
-                    } else {
-                        xmlWriter.writeStartElement(parentQName.getLocalPart());
-                    }
-                
-                  if (serializeType){
-               
-                   java.lang.String namespacePrefix = registerPrefix(xmlWriter,"http://www.w3.org/2001/XMLSchema");
-                   if ((namespacePrefix != null) && (namespacePrefix.trim().length() > 0)){
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           namespacePrefix+":positiveInteger",
-                           xmlWriter);
-                   } else {
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           "positiveInteger",
-                           xmlWriter);
-                   }
-
-               
-                   }
-               
-
-                                          if (localPositiveInteger==null){
-                                              // write the nil attribute
-                                              
-                                                     throw new org.apache.axis2.databinding.ADBException("positiveInteger cannot be null!!");
-                                                  
-                                          }else{
-
-                                        
-                                                   xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(localPositiveInteger));
-                                            
-                                          }
-                                    
-                    xmlWriter.writeEndElement();
-               
-
-        }
-
-         /**
-          * Util method to write an attribute with the ns prefix
-          */
-          private void writeAttribute(java.lang.String prefix,java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-              if (xmlWriter.getPrefix(namespace) == null) {
-                       xmlWriter.writeNamespace(prefix, namespace);
-                       xmlWriter.setPrefix(prefix, namespace);
-
-              }
-
-              xmlWriter.writeAttribute(namespace,attName,attValue);
-
-         }
-
-        /**
-          * Util method to write an attribute without the ns prefix
-          */
-          private void writeAttribute(java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-                if (namespace.equals(""))
-              {
-                  xmlWriter.writeAttribute(attName,attValue);
-              }
-              else
-              {
-                  registerPrefix(xmlWriter, namespace);
-                  xmlWriter.writeAttribute(namespace,attName,attValue);
-              }
-          }
-
-
-           /**
-             * Util method to write an attribute without the ns prefix
-             */
-            private void writeQNameAttribute(java.lang.String namespace, java.lang.String attName,
-                                             javax.xml.namespace.QName qname, javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-                java.lang.String attributeNamespace = qname.getNamespaceURI();
-                java.lang.String attributePrefix = xmlWriter.getPrefix(attributeNamespace);
-                if (attributePrefix == null) {
-                    attributePrefix = registerPrefix(xmlWriter, attributeNamespace);
-                }
-                java.lang.String attributeValue;
-                if (attributePrefix.trim().length() > 0) {
-                    attributeValue = attributePrefix + ":" + qname.getLocalPart();
-                } else {
-                    attributeValue = qname.getLocalPart();
-                }
-
-                if (namespace.equals("")) {
-                    xmlWriter.writeAttribute(attName, attributeValue);
-                } else {
-                    registerPrefix(xmlWriter, namespace);
-                    xmlWriter.writeAttribute(namespace, attName, attributeValue);
-                }
-            }
-        /**
-         *  method to handle Qnames
-         */
-
-        private void writeQName(javax.xml.namespace.QName qname,
-                                javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-            java.lang.String namespaceURI = qname.getNamespaceURI();
-            if (namespaceURI != null) {
-                java.lang.String prefix = xmlWriter.getPrefix(namespaceURI);
-                if (prefix == null) {
-                    prefix = generatePrefix(namespaceURI);
-                    xmlWriter.writeNamespace(prefix, namespaceURI);
-                    xmlWriter.setPrefix(prefix,namespaceURI);
-                }
-
-                if (prefix.trim().length() > 0){
-                    xmlWriter.writeCharacters(prefix + ":" + org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                } else {
-                    // i.e this is the default namespace
-                    xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                }
-
-            } else {
-                xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-            }
-        }
-
-        private void writeQNames(javax.xml.namespace.QName[] qnames,
-                                 javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-            if (qnames != null) {
-                // we have to store this data until last moment since it is not possible to write any
-                // namespace data after writing the charactor data
-                java.lang.StringBuffer stringToWrite = new java.lang.StringBuffer();
-                java.lang.String namespaceURI = null;
-                java.lang.String prefix = null;
-
-                for (int i = 0; i < qnames.length; i++) {
-                    if (i > 0) {
-                        stringToWrite.append(" ");
-                    }
-                    namespaceURI = qnames[i].getNamespaceURI();
-                    if (namespaceURI != null) {
-                        prefix = xmlWriter.getPrefix(namespaceURI);
-                        if ((prefix == null) || (prefix.length() == 0)) {
-                            prefix = generatePrefix(namespaceURI);
-                            xmlWriter.writeNamespace(prefix, namespaceURI);
-                            xmlWriter.setPrefix(prefix,namespaceURI);
-                        }
-
-                        if (prefix.trim().length() > 0){
-                            stringToWrite.append(prefix).append(":").append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        } else {
-                            stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        }
-                    } else {
-                        stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                    }
-                }
-                xmlWriter.writeCharacters(stringToWrite.toString());
-            }
-
-        }
-
-
-         /**
-         * Register a namespace prefix
-         */
-         private java.lang.String registerPrefix(javax.xml.stream.XMLStreamWriter xmlWriter, java.lang.String namespace) throws javax.xml.stream.XMLStreamException {
-                java.lang.String prefix = xmlWriter.getPrefix(namespace);
-
-                if (prefix == null) {
-                    prefix = generatePrefix(namespace);
-                    javax.xml.namespace.NamespaceContext nsContext = xmlWriter.getNamespaceContext();
-                    while (true) {
-                        java.lang.String uri = nsContext.getNamespaceURI(prefix);
-                        if (uri == null || uri.length() == 0) {
-                            break;
-                        }
-                        prefix = org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-                    }
-                    xmlWriter.writeNamespace(prefix, namespace);
-                    xmlWriter.setPrefix(prefix, namespace);
-                }
-
-                return prefix;
-            }
-
-
-  
-     /**
-      *  Factory class that keeps the parse method
-      */
-    public static class Factory{
-
-        
-        
-                public static PositiveInteger fromString(java.lang.String value,
-                                                    java.lang.String namespaceURI){
-                    PositiveInteger returnValue = new  PositiveInteger();
-                    
-                            returnValue.setPositiveInteger(
-                                org.apache.axis2.databinding.utils.ConverterUtil.convertToPositiveInteger(value));
-                        
-
-                    return returnValue;
-                }
-
-                public static PositiveInteger fromString(javax.xml.stream.XMLStreamReader xmlStreamReader,
-                                                                    java.lang.String content) {
-                    if (content.indexOf(":") > -1){
-                        java.lang.String prefix = content.substring(0,content.indexOf(":"));
-                        java.lang.String namespaceUri = xmlStreamReader.getNamespaceContext().getNamespaceURI(prefix);
-                        return PositiveInteger.Factory.fromString(content,namespaceUri);
-                    } else {
-                       return PositiveInteger.Factory.fromString(content,"");
-                    }
-                }
-
-            
-
-        /**
-        * static method to create the object
-        * Precondition:  If this object is an element, the current or next start element starts this object and any intervening reader events are ignorable
-        *                If this object is not an element, it is a complex type and the reader is at the event just after the outer start element
-        * Postcondition: If this object is an element, the reader is positioned at its end element
-        *                If this object is a complex type, the reader is positioned at the end element of its outer element
-        */
-        public static PositiveInteger parse(javax.xml.stream.XMLStreamReader reader) throws java.lang.Exception{
-            PositiveInteger object =
-                new PositiveInteger();
-
-            int event;
-            java.lang.String nillableValue = null;
-            java.lang.String prefix ="";
-            java.lang.String namespaceuri ="";
-            try {
-                
-                while (!reader.isStartElement() && !reader.isEndElement())
-                    reader.next();
-
-                
-                if (reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance","type")!=null){
-                  java.lang.String fullTypeName = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance",
-                        "type");
-                  if (fullTypeName!=null){
-                    java.lang.String nsPrefix = null;
-                    if (fullTypeName.indexOf(":") > -1){
-                        nsPrefix = fullTypeName.substring(0,fullTypeName.indexOf(":"));
-                    }
-                    nsPrefix = nsPrefix==null?"":nsPrefix;
-
-                    java.lang.String type = fullTypeName.substring(fullTypeName.indexOf(":")+1);
-                    
-                            if (!"positiveInteger".equals(type)){
-                                //find namespace for the prefix
-                                java.lang.String nsUri = reader.getNamespaceContext().getNamespaceURI(nsPrefix);
-                                return (PositiveInteger)org.apache.axis2.databinding.types.xsd.ExtensionMapper.getTypeObject(
-                                     nsUri,type,reader);
-                              }
-                        
-
-                  }
-                
-
-                }
-
-                
-
-                
-                // Note all attributes that were handled. Used to differ normal attributes
-                // from anyAttributes.
-                java.util.Vector handledAttributes = new java.util.Vector();
-                
-
-                    
-                while(!reader.isEndElement()) {
-                    if (reader.isStartElement()  || reader.hasText()){
-                
-                                    if (reader.isStartElement()  || reader.hasText()){
-                                
-                                    java.lang.String content = reader.getElementText();
-                                    
-                                              object.setPositiveInteger(
-                                                    org.apache.axis2.databinding.utils.ConverterUtil.convertToPositiveInteger(content));
-                                            
-                              }  // End of if for expected property start element
-                                
-                             else{
-                                        // A start element we are not expecting indicates an invalid parameter was passed
-                                        throw new org.apache.axis2.databinding.ADBException("Unexpected subelement " + reader.getLocalName());
-                             }
-                          
-                             } else {
-                                reader.next();
-                             }  
-                           }  // end of while loop
-                        
-
-
-
-            } catch (javax.xml.stream.XMLStreamException e) {
-                throw new java.lang.Exception(e);
-            }
-
-            return object;
-        }
-
-        }//end of factory class
-
-        
-
-        }
-           
-          
\ No newline at end of file
diff --git a/modules/adb/src/org/apache/axis2/databinding/types/xsd/QName.java b/modules/adb/src/org/apache/axis2/databinding/types/xsd/QName.java
deleted file mode 100644
index b6e238a..0000000
--- a/modules/adb/src/org/apache/axis2/databinding/types/xsd/QName.java
+++ /dev/null
@@ -1,476 +0,0 @@
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/**
- * QName.java
- *
- * This file was auto-generated from WSDL
- * by the Apache Axis2 version: SNAPSHOT  Built on : Dec 21, 2007 (04:03:30 LKT)
- */
-            
-                package org.apache.axis2.databinding.types.xsd;
-
-import javax.xml.stream.XMLStreamWriter;
-            
-
-            /**
-            *  QName bean class
-            */
-        
-        public  class QName
-        implements org.apache.axis2.databinding.ADBBean{
-        /* This type was generated from the piece of schema that had
-                name = QName
-                Namespace URI = http://www.w3.org/2001/XMLSchema
-                Namespace Prefix = ns1
-                */
-            
-
-        private static java.lang.String generatePrefix(java.lang.String namespace) {
-            if(namespace.equals("http://www.w3.org/2001/XMLSchema")){
-                return "xsd";
-            }
-            return org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-        }
-
-        
-
-                        /**
-                        * field for QName
-                        */
-
-                        
-                                    protected javax.xml.namespace.QName localQName ;
-                                
-
-                           /**
-                           * Auto generated getter method
-                           * @return javax.xml.namespace.QName
-                           */
-                           public  javax.xml.namespace.QName getQName(){
-                               return localQName;
-                           }
-
-                           
-                        
-                            /**
-                               * Auto generated setter method
-                               * @param param QName
-                               */
-                               public void setQName(javax.xml.namespace.QName param){
-                            
-                                            this.localQName=param;
-                                    
-
-                               }
-                            
-
-                            public java.lang.String toString(){
-                                
-                                        return localQName.toString();
-                                    
-                            }
-                        
-
-     /**
-     * isReaderMTOMAware
-     * @return true if the reader supports MTOM
-     */
-   public static boolean isReaderMTOMAware(javax.xml.stream.XMLStreamReader reader) {
-        boolean isReaderMTOMAware = false;
-        
-        try{
-          isReaderMTOMAware = java.lang.Boolean.TRUE.equals(reader.getProperty(org.apache.axiom.om.OMConstants.IS_DATA_HANDLERS_AWARE));
-        }catch(java.lang.IllegalArgumentException e){
-          isReaderMTOMAware = false;
-        }
-        return isReaderMTOMAware;
-   }
-     
-     
-        /**
-        *
-        * @param parentQName
-        * @param factory
-        * @return org.apache.axiom.om.OMElement
-        */
-       public org.apache.axiom.om.OMElement getOMElement (
-               final javax.xml.namespace.QName parentQName,
-               final org.apache.axiom.om.OMFactory factory) throws org.apache.axis2.databinding.ADBException{
-
-
-        
-               org.apache.axiom.om.OMDataSource dataSource =
-                       new org.apache.axis2.databinding.ADBDataSource(this,parentQName);
-               return factory.createOMElement(dataSource,parentQName);
-            
-       }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                                       XMLStreamWriter xmlWriter)
-                                throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-                           serialize(parentQName,xmlWriter,false);
-         }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                               XMLStreamWriter xmlWriter,
-                               boolean serializeType)
-            throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-            
-                
-
-
-                java.lang.String prefix = null;
-                java.lang.String namespace = null;
-                
-
-                    prefix = parentQName.getPrefix();
-                    namespace = parentQName.getNamespaceURI();
-
-                    if ((namespace != null) && (namespace.trim().length() > 0)) {
-                        java.lang.String writerPrefix = xmlWriter.getPrefix(namespace);
-                        if (writerPrefix != null) {
-                            xmlWriter.writeStartElement(namespace, parentQName.getLocalPart());
-                        } else {
-                            if (prefix == null) {
-                                prefix = generatePrefix(namespace);
-                            }
-
-                            xmlWriter.writeStartElement(prefix, parentQName.getLocalPart(), namespace);
-                            xmlWriter.writeNamespace(prefix, namespace);
-                            xmlWriter.setPrefix(prefix, namespace);
-                        }
-                    } else {
-                        xmlWriter.writeStartElement(parentQName.getLocalPart());
-                    }
-                
-                  if (serializeType){
-               
-                   java.lang.String namespacePrefix = registerPrefix(xmlWriter,"http://www.w3.org/2001/XMLSchema");
-                   if ((namespacePrefix != null) && (namespacePrefix.trim().length() > 0)){
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           namespacePrefix+":QName",
-                           xmlWriter);
-                   } else {
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           "QName",
-                           xmlWriter);
-                   }
-
-               
-                   }
-               
-
-                                          if (localQName==null){
-                                              // write the nil attribute
-                                              
-                                                     throw new org.apache.axis2.databinding.ADBException("QName cannot be null!!");
-                                                  
-                                          }else{
-
-                                        
-                                                writeQName(localQName,xmlWriter);
-                                            
-                                          }
-                                    
-                    xmlWriter.writeEndElement();
-               
-
-        }
-
-         /**
-          * Util method to write an attribute with the ns prefix
-          */
-          private void writeAttribute(java.lang.String prefix,java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-              if (xmlWriter.getPrefix(namespace) == null) {
-                       xmlWriter.writeNamespace(prefix, namespace);
-                       xmlWriter.setPrefix(prefix, namespace);
-
-              }
-
-              xmlWriter.writeAttribute(namespace,attName,attValue);
-
-         }
-
-        /**
-          * Util method to write an attribute without the ns prefix
-          */
-          private void writeAttribute(java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-                if (namespace.equals(""))
-              {
-                  xmlWriter.writeAttribute(attName,attValue);
-              }
-              else
-              {
-                  registerPrefix(xmlWriter, namespace);
-                  xmlWriter.writeAttribute(namespace,attName,attValue);
-              }
-          }
-
-
-           /**
-             * Util method to write an attribute without the ns prefix
-             */
-            private void writeQNameAttribute(java.lang.String namespace, java.lang.String attName,
-                                             javax.xml.namespace.QName qname, javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-                java.lang.String attributeNamespace = qname.getNamespaceURI();
-                java.lang.String attributePrefix = xmlWriter.getPrefix(attributeNamespace);
-                if (attributePrefix == null) {
-                    attributePrefix = registerPrefix(xmlWriter, attributeNamespace);
-                }
-                java.lang.String attributeValue;
-                if (attributePrefix.trim().length() > 0) {
-                    attributeValue = attributePrefix + ":" + qname.getLocalPart();
-                } else {
-                    attributeValue = qname.getLocalPart();
-                }
-
-                if (namespace.equals("")) {
-                    xmlWriter.writeAttribute(attName, attributeValue);
-                } else {
-                    registerPrefix(xmlWriter, namespace);
-                    xmlWriter.writeAttribute(namespace, attName, attributeValue);
-                }
-            }
-        /**
-         *  method to handle Qnames
-         */
-
-        private void writeQName(javax.xml.namespace.QName qname,
-                                javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-            java.lang.String namespaceURI = qname.getNamespaceURI();
-            if (namespaceURI != null) {
-                java.lang.String prefix = xmlWriter.getPrefix(namespaceURI);
-                if (prefix == null) {
-                    prefix = generatePrefix(namespaceURI);
-                    xmlWriter.writeNamespace(prefix, namespaceURI);
-                    xmlWriter.setPrefix(prefix,namespaceURI);
-                }
-
-                if (prefix.trim().length() > 0){
-                    xmlWriter.writeCharacters(prefix + ":" + org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                } else {
-                    // i.e this is the default namespace
-                    xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                }
-
-            } else {
-                xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-            }
-        }
-
-        private void writeQNames(javax.xml.namespace.QName[] qnames,
-                                 javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-            if (qnames != null) {
-                // we have to store this data until last moment since it is not possible to write any
-                // namespace data after writing the charactor data
-                java.lang.StringBuffer stringToWrite = new java.lang.StringBuffer();
-                java.lang.String namespaceURI = null;
-                java.lang.String prefix = null;
-
-                for (int i = 0; i < qnames.length; i++) {
-                    if (i > 0) {
-                        stringToWrite.append(" ");
-                    }
-                    namespaceURI = qnames[i].getNamespaceURI();
-                    if (namespaceURI != null) {
-                        prefix = xmlWriter.getPrefix(namespaceURI);
-                        if ((prefix == null) || (prefix.length() == 0)) {
-                            prefix = generatePrefix(namespaceURI);
-                            xmlWriter.writeNamespace(prefix, namespaceURI);
-                            xmlWriter.setPrefix(prefix,namespaceURI);
-                        }
-
-                        if (prefix.trim().length() > 0){
-                            stringToWrite.append(prefix).append(":").append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        } else {
-                            stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        }
-                    } else {
-                        stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                    }
-                }
-                xmlWriter.writeCharacters(stringToWrite.toString());
-            }
-
-        }
-
-
-         /**
-         * Register a namespace prefix
-         */
-         private java.lang.String registerPrefix(javax.xml.stream.XMLStreamWriter xmlWriter, java.lang.String namespace) throws javax.xml.stream.XMLStreamException {
-                java.lang.String prefix = xmlWriter.getPrefix(namespace);
-
-                if (prefix == null) {
-                    prefix = generatePrefix(namespace);
-                    javax.xml.namespace.NamespaceContext nsContext = xmlWriter.getNamespaceContext();
-                    while (true) {
-                        java.lang.String uri = nsContext.getNamespaceURI(prefix);
-                        if (uri == null || uri.length() == 0) {
-                            break;
-                        }
-                        prefix = org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-                    }
-                    xmlWriter.writeNamespace(prefix, namespace);
-                    xmlWriter.setPrefix(prefix, namespace);
-                }
-
-                return prefix;
-            }
-
-
-  
-     /**
-      *  Factory class that keeps the parse method
-      */
-    public static class Factory{
-
-        
-        
-                public static QName fromString(java.lang.String value,
-                                                    java.lang.String namespaceURI){
-                    QName returnValue = new  QName();
-                    
-                            returnValue.setQName(
-                                org.apache.axis2.databinding.utils.ConverterUtil.convertToQName(value,namespaceURI));
-                        
-
-                    return returnValue;
-                }
-
-                public static QName fromString(javax.xml.stream.XMLStreamReader xmlStreamReader,
-                                                                    java.lang.String content) {
-                    if (content.indexOf(":") > -1){
-                        java.lang.String prefix = content.substring(0,content.indexOf(":"));
-                        java.lang.String namespaceUri = xmlStreamReader.getNamespaceContext().getNamespaceURI(prefix);
-                        return QName.Factory.fromString(content,namespaceUri);
-                    } else {
-                       return QName.Factory.fromString(content,"");
-                    }
-                }
-
-            
-
-        /**
-        * static method to create the object
-        * Precondition:  If this object is an element, the current or next start element starts this object and any intervening reader events are ignorable
-        *                If this object is not an element, it is a complex type and the reader is at the event just after the outer start element
-        * Postcondition: If this object is an element, the reader is positioned at its end element
-        *                If this object is a complex type, the reader is positioned at the end element of its outer element
-        */
-        public static QName parse(javax.xml.stream.XMLStreamReader reader) throws java.lang.Exception{
-            QName object =
-                new QName();
-
-            int event;
-            java.lang.String nillableValue = null;
-            java.lang.String prefix ="";
-            java.lang.String namespaceuri ="";
-            try {
-                
-                while (!reader.isStartElement() && !reader.isEndElement())
-                    reader.next();
-
-                
-                if (reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance","type")!=null){
-                  java.lang.String fullTypeName = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance",
-                        "type");
-                  if (fullTypeName!=null){
-                    java.lang.String nsPrefix = null;
-                    if (fullTypeName.indexOf(":") > -1){
-                        nsPrefix = fullTypeName.substring(0,fullTypeName.indexOf(":"));
-                    }
-                    nsPrefix = nsPrefix==null?"":nsPrefix;
-
-                    java.lang.String type = fullTypeName.substring(fullTypeName.indexOf(":")+1);
-                    
-                            if (!"QName".equals(type)){
-                                //find namespace for the prefix
-                                java.lang.String nsUri = reader.getNamespaceContext().getNamespaceURI(nsPrefix);
-                                return (QName)org.apache.axis2.databinding.types.xsd.ExtensionMapper.getTypeObject(
-                                     nsUri,type,reader);
-                              }
-                        
-
-                  }
-                
-
-                }
-
-                
-
-                
-                // Note all attributes that were handled. Used to differ normal attributes
-                // from anyAttributes.
-                java.util.Vector handledAttributes = new java.util.Vector();
-                
-
-                    
-                while(!reader.isEndElement()) {
-                    if (reader.isStartElement()  || reader.hasText()){
-                
-                                    if (reader.isStartElement()  || reader.hasText()){
-                                
-                                    java.lang.String content = reader.getElementText();
-                                    
-                                            int index = content.indexOf(":");
-                                            if(index > 0){
-                                                prefix = content.substring(0,index);
-                                             } else {
-                                                prefix = "";
-                                             }
-                                             namespaceuri = reader.getNamespaceURI(prefix);
-                                             object.setQName(
-                                                  org.apache.axis2.databinding.utils.ConverterUtil.convertToQName(content,namespaceuri));
-                                            
-                              }  // End of if for expected property start element
-                                
-                             else{
-                                        // A start element we are not expecting indicates an invalid parameter was passed
-                                        throw new org.apache.axis2.databinding.ADBException("Unexpected subelement " + reader.getLocalName());
-                             }
-                          
-                             } else {
-                                reader.next();
-                             }  
-                           }  // end of while loop
-                        
-
-
-
-            } catch (javax.xml.stream.XMLStreamException e) {
-                throw new java.lang.Exception(e);
-            }
-
-            return object;
-        }
-
-        }//end of factory class
-
-        
-
-        }
-           
-          
\ No newline at end of file
diff --git a/modules/adb/src/org/apache/axis2/databinding/types/xsd/String.java b/modules/adb/src/org/apache/axis2/databinding/types/xsd/String.java
deleted file mode 100644
index 58683ee..0000000
--- a/modules/adb/src/org/apache/axis2/databinding/types/xsd/String.java
+++ /dev/null
@@ -1,469 +0,0 @@
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/**
- * String.java
- *
- * This file was auto-generated from WSDL
- * by the Apache Axis2 version: SNAPSHOT  Built on : Dec 21, 2007 (04:03:30 LKT)
- */
-            
-                package org.apache.axis2.databinding.types.xsd;
-
-import javax.xml.stream.XMLStreamWriter;
-            
-
-            /**
-            *  String bean class
-            */
-        
-        public  class String
-        implements org.apache.axis2.databinding.ADBBean{
-        /* This type was generated from the piece of schema that had
-                name = string
-                Namespace URI = http://www.w3.org/2001/XMLSchema
-                Namespace Prefix = ns1
-                */
-            
-
-        private static java.lang.String generatePrefix(java.lang.String namespace) {
-            if(namespace.equals("http://www.w3.org/2001/XMLSchema")){
-                return "xsd";
-            }
-            return org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-        }
-
-        
-
-                        /**
-                        * field for String
-                        */
-
-                        
-                                    protected java.lang.String localString ;
-                                
-
-                           /**
-                           * Auto generated getter method
-                           * @return java.lang.String
-                           */
-                           public  java.lang.String getString(){
-                               return localString;
-                           }
-
-                           
-                        
-                            /**
-                               * Auto generated setter method
-                               * @param param String
-                               */
-                               public void setString(java.lang.String param){
-                            
-                                            this.localString=param;
-                                    
-
-                               }
-                            
-
-                            public java.lang.String toString(){
-                                
-                                        return localString.toString();
-                                    
-                            }
-                        
-
-     /**
-     * isReaderMTOMAware
-     * @return true if the reader supports MTOM
-     */
-   public static boolean isReaderMTOMAware(javax.xml.stream.XMLStreamReader reader) {
-        boolean isReaderMTOMAware = false;
-        
-        try{
-          isReaderMTOMAware = java.lang.Boolean.TRUE.equals(reader.getProperty(org.apache.axiom.om.OMConstants.IS_DATA_HANDLERS_AWARE));
-        }catch(java.lang.IllegalArgumentException e){
-          isReaderMTOMAware = false;
-        }
-        return isReaderMTOMAware;
-   }
-     
-     
-        /**
-        *
-        * @param parentQName
-        * @param factory
-        * @return org.apache.axiom.om.OMElement
-        */
-       public org.apache.axiom.om.OMElement getOMElement (
-               final javax.xml.namespace.QName parentQName,
-               final org.apache.axiom.om.OMFactory factory) throws org.apache.axis2.databinding.ADBException{
-
-
-        
-               org.apache.axiom.om.OMDataSource dataSource =
-                       new org.apache.axis2.databinding.ADBDataSource(this,parentQName);
-               return factory.createOMElement(dataSource,parentQName);
-            
-       }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                                       XMLStreamWriter xmlWriter)
-                                throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-                           serialize(parentQName,xmlWriter,false);
-         }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                               XMLStreamWriter xmlWriter,
-                               boolean serializeType)
-            throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-            
-                
-
-
-                java.lang.String prefix = null;
-                java.lang.String namespace = null;
-                
-
-                    prefix = parentQName.getPrefix();
-                    namespace = parentQName.getNamespaceURI();
-
-                    if ((namespace != null) && (namespace.trim().length() > 0)) {
-                        java.lang.String writerPrefix = xmlWriter.getPrefix(namespace);
-                        if (writerPrefix != null) {
-                            xmlWriter.writeStartElement(namespace, parentQName.getLocalPart());
-                        } else {
-                            if (prefix == null) {
-                                prefix = generatePrefix(namespace);
-                            }
-
-                            xmlWriter.writeStartElement(prefix, parentQName.getLocalPart(), namespace);
-                            xmlWriter.writeNamespace(prefix, namespace);
-                            xmlWriter.setPrefix(prefix, namespace);
-                        }
-                    } else {
-                        xmlWriter.writeStartElement(parentQName.getLocalPart());
-                    }
-                
-                  if (serializeType){
-               
-                   java.lang.String namespacePrefix = registerPrefix(xmlWriter,"http://www.w3.org/2001/XMLSchema");
-                   if ((namespacePrefix != null) && (namespacePrefix.trim().length() > 0)){
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           namespacePrefix+":string",
-                           xmlWriter);
-                   } else {
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           "string",
-                           xmlWriter);
-                   }
-
-               
-                   }
-               
-
-                                          if (localString==null){
-                                              // write the nil attribute
-                                              
-                                                     throw new org.apache.axis2.databinding.ADBException("string cannot be null!!");
-                                                  
-                                          }else{
-
-                                        
-                                                   xmlWriter.writeCharacters(localString);
-                                            
-                                          }
-                                    
-                    xmlWriter.writeEndElement();
-               
-
-        }
-
-         /**
-          * Util method to write an attribute with the ns prefix
-          */
-          private void writeAttribute(java.lang.String prefix,java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-              if (xmlWriter.getPrefix(namespace) == null) {
-                       xmlWriter.writeNamespace(prefix, namespace);
-                       xmlWriter.setPrefix(prefix, namespace);
-
-              }
-
-              xmlWriter.writeAttribute(namespace,attName,attValue);
-
-         }
-
-        /**
-          * Util method to write an attribute without the ns prefix
-          */
-          private void writeAttribute(java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-                if (namespace.equals(""))
-              {
-                  xmlWriter.writeAttribute(attName,attValue);
-              }
-              else
-              {
-                  registerPrefix(xmlWriter, namespace);
-                  xmlWriter.writeAttribute(namespace,attName,attValue);
-              }
-          }
-
-
-           /**
-             * Util method to write an attribute without the ns prefix
-             */
-            private void writeQNameAttribute(java.lang.String namespace, java.lang.String attName,
-                                             javax.xml.namespace.QName qname, javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-                java.lang.String attributeNamespace = qname.getNamespaceURI();
-                java.lang.String attributePrefix = xmlWriter.getPrefix(attributeNamespace);
-                if (attributePrefix == null) {
-                    attributePrefix = registerPrefix(xmlWriter, attributeNamespace);
-                }
-                java.lang.String attributeValue;
-                if (attributePrefix.trim().length() > 0) {
-                    attributeValue = attributePrefix + ":" + qname.getLocalPart();
-                } else {
-                    attributeValue = qname.getLocalPart();
-                }
-
-                if (namespace.equals("")) {
-                    xmlWriter.writeAttribute(attName, attributeValue);
-                } else {
-                    registerPrefix(xmlWriter, namespace);
-                    xmlWriter.writeAttribute(namespace, attName, attributeValue);
-                }
-            }
-        /**
-         *  method to handle Qnames
-         */
-
-        private void writeQName(javax.xml.namespace.QName qname,
-                                javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-            java.lang.String namespaceURI = qname.getNamespaceURI();
-            if (namespaceURI != null) {
-                java.lang.String prefix = xmlWriter.getPrefix(namespaceURI);
-                if (prefix == null) {
-                    prefix = generatePrefix(namespaceURI);
-                    xmlWriter.writeNamespace(prefix, namespaceURI);
-                    xmlWriter.setPrefix(prefix,namespaceURI);
-                }
-
-                if (prefix.trim().length() > 0){
-                    xmlWriter.writeCharacters(prefix + ":" + org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                } else {
-                    // i.e this is the default namespace
-                    xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                }
-
-            } else {
-                xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-            }
-        }
-
-        private void writeQNames(javax.xml.namespace.QName[] qnames,
-                                 javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-            if (qnames != null) {
-                // we have to store this data until last moment since it is not possible to write any
-                // namespace data after writing the charactor data
-                java.lang.StringBuffer stringToWrite = new java.lang.StringBuffer();
-                java.lang.String namespaceURI = null;
-                java.lang.String prefix = null;
-
-                for (int i = 0; i < qnames.length; i++) {
-                    if (i > 0) {
-                        stringToWrite.append(" ");
-                    }
-                    namespaceURI = qnames[i].getNamespaceURI();
-                    if (namespaceURI != null) {
-                        prefix = xmlWriter.getPrefix(namespaceURI);
-                        if ((prefix == null) || (prefix.length() == 0)) {
-                            prefix = generatePrefix(namespaceURI);
-                            xmlWriter.writeNamespace(prefix, namespaceURI);
-                            xmlWriter.setPrefix(prefix,namespaceURI);
-                        }
-
-                        if (prefix.trim().length() > 0){
-                            stringToWrite.append(prefix).append(":").append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        } else {
-                            stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        }
-                    } else {
-                        stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                    }
-                }
-                xmlWriter.writeCharacters(stringToWrite.toString());
-            }
-
-        }
-
-
-         /**
-         * Register a namespace prefix
-         */
-         private java.lang.String registerPrefix(javax.xml.stream.XMLStreamWriter xmlWriter, java.lang.String namespace) throws javax.xml.stream.XMLStreamException {
-                java.lang.String prefix = xmlWriter.getPrefix(namespace);
-
-                if (prefix == null) {
-                    prefix = generatePrefix(namespace);
-                    javax.xml.namespace.NamespaceContext nsContext = xmlWriter.getNamespaceContext();
-                    while (true) {
-                        java.lang.String uri = nsContext.getNamespaceURI(prefix);
-                        if (uri == null || uri.length() == 0) {
-                            break;
-                        }
-                        prefix = org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-                    }
-                    xmlWriter.writeNamespace(prefix, namespace);
-                    xmlWriter.setPrefix(prefix, namespace);
-                }
-
-                return prefix;
-            }
-
-
-  
-     /**
-      *  Factory class that keeps the parse method
-      */
-    public static class Factory{
-
-        
-        
-                public static String fromString(java.lang.String value,
-                                                    java.lang.String namespaceURI){
-                    String returnValue = new  String();
-                    
-                            returnValue.setString(
-                                org.apache.axis2.databinding.utils.ConverterUtil.convertToString(value));
-                        
-
-                    return returnValue;
-                }
-
-                public static String fromString(javax.xml.stream.XMLStreamReader xmlStreamReader,
-                                                                    java.lang.String content) {
-                    if (content.indexOf(":") > -1){
-                        java.lang.String prefix = content.substring(0,content.indexOf(":"));
-                        java.lang.String namespaceUri = xmlStreamReader.getNamespaceContext().getNamespaceURI(prefix);
-                        return String.Factory.fromString(content,namespaceUri);
-                    } else {
-                       return String.Factory.fromString(content,"");
-                    }
-                }
-
-            
-
-        /**
-        * static method to create the object
-        * Precondition:  If this object is an element, the current or next start element starts this object and any intervening reader events are ignorable
-        *                If this object is not an element, it is a complex type and the reader is at the event just after the outer start element
-        * Postcondition: If this object is an element, the reader is positioned at its end element
-        *                If this object is a complex type, the reader is positioned at the end element of its outer element
-        */
-        public static String parse(javax.xml.stream.XMLStreamReader reader) throws java.lang.Exception{
-            String object =
-                new String();
-
-            int event;
-            java.lang.String nillableValue = null;
-            java.lang.String prefix ="";
-            java.lang.String namespaceuri ="";
-            try {
-                
-                while (!reader.isStartElement() && !reader.isEndElement())
-                    reader.next();
-
-                
-                if (reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance","type")!=null){
-                  java.lang.String fullTypeName = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance",
-                        "type");
-                  if (fullTypeName!=null){
-                    java.lang.String nsPrefix = null;
-                    if (fullTypeName.indexOf(":") > -1){
-                        nsPrefix = fullTypeName.substring(0,fullTypeName.indexOf(":"));
-                    }
-                    nsPrefix = nsPrefix==null?"":nsPrefix;
-
-                    java.lang.String type = fullTypeName.substring(fullTypeName.indexOf(":")+1);
-                    
-                            if (!"string".equals(type)){
-                                //find namespace for the prefix
-                                java.lang.String nsUri = reader.getNamespaceContext().getNamespaceURI(nsPrefix);
-                                return (String)org.apache.axis2.databinding.types.xsd.ExtensionMapper.getTypeObject(
-                                     nsUri,type,reader);
-                              }
-                        
-
-                  }
-                
-
-                }
-
-                
-
-                
-                // Note all attributes that were handled. Used to differ normal attributes
-                // from anyAttributes.
-                java.util.Vector handledAttributes = new java.util.Vector();
-                
-
-                    
-                while(!reader.isEndElement()) {
-                    if (reader.isStartElement()  || reader.hasText()){
-                
-                                    if (reader.isStartElement()  || reader.hasText()){
-                                
-                                    java.lang.String content = reader.getElementText();
-                                    
-                                              object.setString(
-                                                    org.apache.axis2.databinding.utils.ConverterUtil.convertToString(content));
-                                            
-                              }  // End of if for expected property start element
-                                
-                             else{
-                                        // A start element we are not expecting indicates an invalid parameter was passed
-                                        throw new org.apache.axis2.databinding.ADBException("Unexpected subelement " + reader.getLocalName());
-                             }
-                          
-                             } else {
-                                reader.next();
-                             }  
-                           }  // end of while loop
-                        
-
-
-
-            } catch (javax.xml.stream.XMLStreamException e) {
-                throw new java.lang.Exception(e);
-            }
-
-            return object;
-        }
-
-        }//end of factory class
-
-        
-
-        }
-           
-          
\ No newline at end of file
diff --git a/modules/adb/src/org/apache/axis2/databinding/types/xsd/Time.java b/modules/adb/src/org/apache/axis2/databinding/types/xsd/Time.java
deleted file mode 100644
index fa92fc8..0000000
--- a/modules/adb/src/org/apache/axis2/databinding/types/xsd/Time.java
+++ /dev/null
@@ -1,469 +0,0 @@
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/**
- * Time.java
- *
- * This file was auto-generated from WSDL
- * by the Apache Axis2 version: SNAPSHOT  Built on : Dec 21, 2007 (04:03:30 LKT)
- */
-            
-                package org.apache.axis2.databinding.types.xsd;
-
-import javax.xml.stream.XMLStreamWriter;
-            
-
-            /**
-            *  Time bean class
-            */
-        
-        public  class Time
-        implements org.apache.axis2.databinding.ADBBean{
-        /* This type was generated from the piece of schema that had
-                name = time
-                Namespace URI = http://www.w3.org/2001/XMLSchema
-                Namespace Prefix = ns1
-                */
-            
-
-        private static java.lang.String generatePrefix(java.lang.String namespace) {
-            if(namespace.equals("http://www.w3.org/2001/XMLSchema")){
-                return "xsd";
-            }
-            return org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-        }
-
-        
-
-                        /**
-                        * field for Time
-                        */
-
-                        
-                                    protected org.apache.axis2.databinding.types.Time localTime ;
-                                
-
-                           /**
-                           * Auto generated getter method
-                           * @return org.apache.axis2.databinding.types.Time
-                           */
-                           public  org.apache.axis2.databinding.types.Time getTime(){
-                               return localTime;
-                           }
-
-                           
-                        
-                            /**
-                               * Auto generated setter method
-                               * @param param Time
-                               */
-                               public void setTime(org.apache.axis2.databinding.types.Time param){
-                            
-                                            this.localTime=param;
-                                    
-
-                               }
-                            
-
-                            public java.lang.String toString(){
-                                
-                                        return localTime.toString();
-                                    
-                            }
-                        
-
-     /**
-     * isReaderMTOMAware
-     * @return true if the reader supports MTOM
-     */
-   public static boolean isReaderMTOMAware(javax.xml.stream.XMLStreamReader reader) {
-        boolean isReaderMTOMAware = false;
-        
-        try{
-          isReaderMTOMAware = java.lang.Boolean.TRUE.equals(reader.getProperty(org.apache.axiom.om.OMConstants.IS_DATA_HANDLERS_AWARE));
-        }catch(java.lang.IllegalArgumentException e){
-          isReaderMTOMAware = false;
-        }
-        return isReaderMTOMAware;
-   }
-     
-     
-        /**
-        *
-        * @param parentQName
-        * @param factory
-        * @return org.apache.axiom.om.OMElement
-        */
-       public org.apache.axiom.om.OMElement getOMElement (
-               final javax.xml.namespace.QName parentQName,
-               final org.apache.axiom.om.OMFactory factory) throws org.apache.axis2.databinding.ADBException{
-
-
-        
-               org.apache.axiom.om.OMDataSource dataSource =
-                       new org.apache.axis2.databinding.ADBDataSource(this,parentQName);
-               return factory.createOMElement(dataSource,parentQName);
-            
-       }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                                       XMLStreamWriter xmlWriter)
-                                throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-                           serialize(parentQName,xmlWriter,false);
-         }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                               XMLStreamWriter xmlWriter,
-                               boolean serializeType)
-            throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-            
-                
-
-
-                java.lang.String prefix = null;
-                java.lang.String namespace = null;
-                
-
-                    prefix = parentQName.getPrefix();
-                    namespace = parentQName.getNamespaceURI();
-
-                    if ((namespace != null) && (namespace.trim().length() > 0)) {
-                        java.lang.String writerPrefix = xmlWriter.getPrefix(namespace);
-                        if (writerPrefix != null) {
-                            xmlWriter.writeStartElement(namespace, parentQName.getLocalPart());
-                        } else {
-                            if (prefix == null) {
-                                prefix = generatePrefix(namespace);
-                            }
-
-                            xmlWriter.writeStartElement(prefix, parentQName.getLocalPart(), namespace);
-                            xmlWriter.writeNamespace(prefix, namespace);
-                            xmlWriter.setPrefix(prefix, namespace);
-                        }
-                    } else {
-                        xmlWriter.writeStartElement(parentQName.getLocalPart());
-                    }
-                
-                  if (serializeType){
-               
-                   java.lang.String namespacePrefix = registerPrefix(xmlWriter,"http://www.w3.org/2001/XMLSchema");
-                   if ((namespacePrefix != null) && (namespacePrefix.trim().length() > 0)){
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           namespacePrefix+":time",
-                           xmlWriter);
-                   } else {
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           "time",
-                           xmlWriter);
-                   }
-
-               
-                   }
-               
-
-                                          if (localTime==null){
-                                              // write the nil attribute
-                                              
-                                                     throw new org.apache.axis2.databinding.ADBException("time cannot be null!!");
-                                                  
-                                          }else{
-
-                                        
-                                                   xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(localTime));
-                                            
-                                          }
-                                    
-                    xmlWriter.writeEndElement();
-               
-
-        }
-
-         /**
-          * Util method to write an attribute with the ns prefix
-          */
-          private void writeAttribute(java.lang.String prefix,java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-              if (xmlWriter.getPrefix(namespace) == null) {
-                       xmlWriter.writeNamespace(prefix, namespace);
-                       xmlWriter.setPrefix(prefix, namespace);
-
-              }
-
-              xmlWriter.writeAttribute(namespace,attName,attValue);
-
-         }
-
-        /**
-          * Util method to write an attribute without the ns prefix
-          */
-          private void writeAttribute(java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-                if (namespace.equals(""))
-              {
-                  xmlWriter.writeAttribute(attName,attValue);
-              }
-              else
-              {
-                  registerPrefix(xmlWriter, namespace);
-                  xmlWriter.writeAttribute(namespace,attName,attValue);
-              }
-          }
-
-
-           /**
-             * Util method to write an attribute without the ns prefix
-             */
-            private void writeQNameAttribute(java.lang.String namespace, java.lang.String attName,
-                                             javax.xml.namespace.QName qname, javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-                java.lang.String attributeNamespace = qname.getNamespaceURI();
-                java.lang.String attributePrefix = xmlWriter.getPrefix(attributeNamespace);
-                if (attributePrefix == null) {
-                    attributePrefix = registerPrefix(xmlWriter, attributeNamespace);
-                }
-                java.lang.String attributeValue;
-                if (attributePrefix.trim().length() > 0) {
-                    attributeValue = attributePrefix + ":" + qname.getLocalPart();
-                } else {
-                    attributeValue = qname.getLocalPart();
-                }
-
-                if (namespace.equals("")) {
-                    xmlWriter.writeAttribute(attName, attributeValue);
-                } else {
-                    registerPrefix(xmlWriter, namespace);
-                    xmlWriter.writeAttribute(namespace, attName, attributeValue);
-                }
-            }
-        /**
-         *  method to handle Qnames
-         */
-
-        private void writeQName(javax.xml.namespace.QName qname,
-                                javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-            java.lang.String namespaceURI = qname.getNamespaceURI();
-            if (namespaceURI != null) {
-                java.lang.String prefix = xmlWriter.getPrefix(namespaceURI);
-                if (prefix == null) {
-                    prefix = generatePrefix(namespaceURI);
-                    xmlWriter.writeNamespace(prefix, namespaceURI);
-                    xmlWriter.setPrefix(prefix,namespaceURI);
-                }
-
-                if (prefix.trim().length() > 0){
-                    xmlWriter.writeCharacters(prefix + ":" + org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                } else {
-                    // i.e this is the default namespace
-                    xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                }
-
-            } else {
-                xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-            }
-        }
-
-        private void writeQNames(javax.xml.namespace.QName[] qnames,
-                                 javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-            if (qnames != null) {
-                // we have to store this data until last moment since it is not possible to write any
-                // namespace data after writing the charactor data
-                java.lang.StringBuffer stringToWrite = new java.lang.StringBuffer();
-                java.lang.String namespaceURI = null;
-                java.lang.String prefix = null;
-
-                for (int i = 0; i < qnames.length; i++) {
-                    if (i > 0) {
-                        stringToWrite.append(" ");
-                    }
-                    namespaceURI = qnames[i].getNamespaceURI();
-                    if (namespaceURI != null) {
-                        prefix = xmlWriter.getPrefix(namespaceURI);
-                        if ((prefix == null) || (prefix.length() == 0)) {
-                            prefix = generatePrefix(namespaceURI);
-                            xmlWriter.writeNamespace(prefix, namespaceURI);
-                            xmlWriter.setPrefix(prefix,namespaceURI);
-                        }
-
-                        if (prefix.trim().length() > 0){
-                            stringToWrite.append(prefix).append(":").append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        } else {
-                            stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        }
-                    } else {
-                        stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                    }
-                }
-                xmlWriter.writeCharacters(stringToWrite.toString());
-            }
-
-        }
-
-
-         /**
-         * Register a namespace prefix
-         */
-         private java.lang.String registerPrefix(javax.xml.stream.XMLStreamWriter xmlWriter, java.lang.String namespace) throws javax.xml.stream.XMLStreamException {
-                java.lang.String prefix = xmlWriter.getPrefix(namespace);
-
-                if (prefix == null) {
-                    prefix = generatePrefix(namespace);
-                    javax.xml.namespace.NamespaceContext nsContext = xmlWriter.getNamespaceContext();
-                    while (true) {
-                        java.lang.String uri = nsContext.getNamespaceURI(prefix);
-                        if (uri == null || uri.length() == 0) {
-                            break;
-                        }
-                        prefix = org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-                    }
-                    xmlWriter.writeNamespace(prefix, namespace);
-                    xmlWriter.setPrefix(prefix, namespace);
-                }
-
-                return prefix;
-            }
-
-
-  
-     /**
-      *  Factory class that keeps the parse method
-      */
-    public static class Factory{
-
-        
-        
-                public static Time fromString(java.lang.String value,
-                                                    java.lang.String namespaceURI){
-                    Time returnValue = new  Time();
-                    
-                            returnValue.setTime(
-                                org.apache.axis2.databinding.utils.ConverterUtil.convertToTime(value));
-                        
-
-                    return returnValue;
-                }
-
-                public static Time fromString(javax.xml.stream.XMLStreamReader xmlStreamReader,
-                                                                    java.lang.String content) {
-                    if (content.indexOf(":") > -1){
-                        java.lang.String prefix = content.substring(0,content.indexOf(":"));
-                        java.lang.String namespaceUri = xmlStreamReader.getNamespaceContext().getNamespaceURI(prefix);
-                        return Time.Factory.fromString(content,namespaceUri);
-                    } else {
-                       return Time.Factory.fromString(content,"");
-                    }
-                }
-
-            
-
-        /**
-        * static method to create the object
-        * Precondition:  If this object is an element, the current or next start element starts this object and any intervening reader events are ignorable
-        *                If this object is not an element, it is a complex type and the reader is at the event just after the outer start element
-        * Postcondition: If this object is an element, the reader is positioned at its end element
-        *                If this object is a complex type, the reader is positioned at the end element of its outer element
-        */
-        public static Time parse(javax.xml.stream.XMLStreamReader reader) throws java.lang.Exception{
-            Time object =
-                new Time();
-
-            int event;
-            java.lang.String nillableValue = null;
-            java.lang.String prefix ="";
-            java.lang.String namespaceuri ="";
-            try {
-                
-                while (!reader.isStartElement() && !reader.isEndElement())
-                    reader.next();
-
-                
-                if (reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance","type")!=null){
-                  java.lang.String fullTypeName = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance",
-                        "type");
-                  if (fullTypeName!=null){
-                    java.lang.String nsPrefix = null;
-                    if (fullTypeName.indexOf(":") > -1){
-                        nsPrefix = fullTypeName.substring(0,fullTypeName.indexOf(":"));
-                    }
-                    nsPrefix = nsPrefix==null?"":nsPrefix;
-
-                    java.lang.String type = fullTypeName.substring(fullTypeName.indexOf(":")+1);
-                    
-                            if (!"time".equals(type)){
-                                //find namespace for the prefix
-                                java.lang.String nsUri = reader.getNamespaceContext().getNamespaceURI(nsPrefix);
-                                return (Time)org.apache.axis2.databinding.types.xsd.ExtensionMapper.getTypeObject(
-                                     nsUri,type,reader);
-                              }
-                        
-
-                  }
-                
-
-                }
-
-                
-
-                
-                // Note all attributes that were handled. Used to differ normal attributes
-                // from anyAttributes.
-                java.util.Vector handledAttributes = new java.util.Vector();
-                
-
-                    
-                while(!reader.isEndElement()) {
-                    if (reader.isStartElement()  || reader.hasText()){
-                
-                                    if (reader.isStartElement()  || reader.hasText()){
-                                
-                                    java.lang.String content = reader.getElementText();
-                                    
-                                              object.setTime(
-                                                    org.apache.axis2.databinding.utils.ConverterUtil.convertToTime(content));
-                                            
-                              }  // End of if for expected property start element
-                                
-                             else{
-                                        // A start element we are not expecting indicates an invalid parameter was passed
-                                        throw new org.apache.axis2.databinding.ADBException("Unexpected subelement " + reader.getLocalName());
-                             }
-                          
-                             } else {
-                                reader.next();
-                             }  
-                           }  // end of while loop
-                        
-
-
-
-            } catch (javax.xml.stream.XMLStreamException e) {
-                throw new java.lang.Exception(e);
-            }
-
-            return object;
-        }
-
-        }//end of factory class
-
-        
-
-        }
-           
-          
\ No newline at end of file
diff --git a/modules/adb/src/org/apache/axis2/databinding/types/xsd/Token.java b/modules/adb/src/org/apache/axis2/databinding/types/xsd/Token.java
deleted file mode 100644
index f5d6edd..0000000
--- a/modules/adb/src/org/apache/axis2/databinding/types/xsd/Token.java
+++ /dev/null
@@ -1,469 +0,0 @@
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/**
- * Token.java
- *
- * This file was auto-generated from WSDL
- * by the Apache Axis2 version: SNAPSHOT  Built on : Dec 21, 2007 (04:03:30 LKT)
- */
-            
-                package org.apache.axis2.databinding.types.xsd;
-
-import javax.xml.stream.XMLStreamWriter;
-            
-
-            /**
-            *  Token bean class
-            */
-        
-        public  class Token
-        implements org.apache.axis2.databinding.ADBBean{
-        /* This type was generated from the piece of schema that had
-                name = token
-                Namespace URI = http://www.w3.org/2001/XMLSchema
-                Namespace Prefix = ns1
-                */
-            
-
-        private static java.lang.String generatePrefix(java.lang.String namespace) {
-            if(namespace.equals("http://www.w3.org/2001/XMLSchema")){
-                return "xsd";
-            }
-            return org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-        }
-
-        
-
-                        /**
-                        * field for Token
-                        */
-
-                        
-                                    protected org.apache.axis2.databinding.types.Token localToken ;
-                                
-
-                           /**
-                           * Auto generated getter method
-                           * @return org.apache.axis2.databinding.types.Token
-                           */
-                           public  org.apache.axis2.databinding.types.Token getToken(){
-                               return localToken;
-                           }
-
-                           
-                        
-                            /**
-                               * Auto generated setter method
-                               * @param param Token
-                               */
-                               public void setToken(org.apache.axis2.databinding.types.Token param){
-                            
-                                            this.localToken=param;
-                                    
-
-                               }
-                            
-
-                            public java.lang.String toString(){
-                                
-                                        return localToken.toString();
-                                    
-                            }
-                        
-
-     /**
-     * isReaderMTOMAware
-     * @return true if the reader supports MTOM
-     */
-   public static boolean isReaderMTOMAware(javax.xml.stream.XMLStreamReader reader) {
-        boolean isReaderMTOMAware = false;
-        
-        try{
-          isReaderMTOMAware = java.lang.Boolean.TRUE.equals(reader.getProperty(org.apache.axiom.om.OMConstants.IS_DATA_HANDLERS_AWARE));
-        }catch(java.lang.IllegalArgumentException e){
-          isReaderMTOMAware = false;
-        }
-        return isReaderMTOMAware;
-   }
-     
-     
-        /**
-        *
-        * @param parentQName
-        * @param factory
-        * @return org.apache.axiom.om.OMElement
-        */
-       public org.apache.axiom.om.OMElement getOMElement (
-               final javax.xml.namespace.QName parentQName,
-               final org.apache.axiom.om.OMFactory factory) throws org.apache.axis2.databinding.ADBException{
-
-
-        
-               org.apache.axiom.om.OMDataSource dataSource =
-                       new org.apache.axis2.databinding.ADBDataSource(this,parentQName);
-               return factory.createOMElement(dataSource,parentQName);
-            
-       }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                                       XMLStreamWriter xmlWriter)
-                                throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-                           serialize(parentQName,xmlWriter,false);
-         }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                               XMLStreamWriter xmlWriter,
-                               boolean serializeType)
-            throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-            
-                
-
-
-                java.lang.String prefix = null;
-                java.lang.String namespace = null;
-                
-
-                    prefix = parentQName.getPrefix();
-                    namespace = parentQName.getNamespaceURI();
-
-                    if ((namespace != null) && (namespace.trim().length() > 0)) {
-                        java.lang.String writerPrefix = xmlWriter.getPrefix(namespace);
-                        if (writerPrefix != null) {
-                            xmlWriter.writeStartElement(namespace, parentQName.getLocalPart());
-                        } else {
-                            if (prefix == null) {
-                                prefix = generatePrefix(namespace);
-                            }
-
-                            xmlWriter.writeStartElement(prefix, parentQName.getLocalPart(), namespace);
-                            xmlWriter.writeNamespace(prefix, namespace);
-                            xmlWriter.setPrefix(prefix, namespace);
-                        }
-                    } else {
-                        xmlWriter.writeStartElement(parentQName.getLocalPart());
-                    }
-                
-                  if (serializeType){
-               
-                   java.lang.String namespacePrefix = registerPrefix(xmlWriter,"http://www.w3.org/2001/XMLSchema");
-                   if ((namespacePrefix != null) && (namespacePrefix.trim().length() > 0)){
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           namespacePrefix+":token",
-                           xmlWriter);
-                   } else {
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           "token",
-                           xmlWriter);
-                   }
-
-               
-                   }
-               
-
-                                          if (localToken==null){
-                                              // write the nil attribute
-                                              
-                                                     throw new org.apache.axis2.databinding.ADBException("token cannot be null!!");
-                                                  
-                                          }else{
-
-                                        
-                                                   xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(localToken));
-                                            
-                                          }
-                                    
-                    xmlWriter.writeEndElement();
-               
-
-        }
-
-         /**
-          * Util method to write an attribute with the ns prefix
-          */
-          private void writeAttribute(java.lang.String prefix,java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-              if (xmlWriter.getPrefix(namespace) == null) {
-                       xmlWriter.writeNamespace(prefix, namespace);
-                       xmlWriter.setPrefix(prefix, namespace);
-
-              }
-
-              xmlWriter.writeAttribute(namespace,attName,attValue);
-
-         }
-
-        /**
-          * Util method to write an attribute without the ns prefix
-          */
-          private void writeAttribute(java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-                if (namespace.equals(""))
-              {
-                  xmlWriter.writeAttribute(attName,attValue);
-              }
-              else
-              {
-                  registerPrefix(xmlWriter, namespace);
-                  xmlWriter.writeAttribute(namespace,attName,attValue);
-              }
-          }
-
-
-           /**
-             * Util method to write an attribute without the ns prefix
-             */
-            private void writeQNameAttribute(java.lang.String namespace, java.lang.String attName,
-                                             javax.xml.namespace.QName qname, javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-                java.lang.String attributeNamespace = qname.getNamespaceURI();
-                java.lang.String attributePrefix = xmlWriter.getPrefix(attributeNamespace);
-                if (attributePrefix == null) {
-                    attributePrefix = registerPrefix(xmlWriter, attributeNamespace);
-                }
-                java.lang.String attributeValue;
-                if (attributePrefix.trim().length() > 0) {
-                    attributeValue = attributePrefix + ":" + qname.getLocalPart();
-                } else {
-                    attributeValue = qname.getLocalPart();
-                }
-
-                if (namespace.equals("")) {
-                    xmlWriter.writeAttribute(attName, attributeValue);
-                } else {
-                    registerPrefix(xmlWriter, namespace);
-                    xmlWriter.writeAttribute(namespace, attName, attributeValue);
-                }
-            }
-        /**
-         *  method to handle Qnames
-         */
-
-        private void writeQName(javax.xml.namespace.QName qname,
-                                javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-            java.lang.String namespaceURI = qname.getNamespaceURI();
-            if (namespaceURI != null) {
-                java.lang.String prefix = xmlWriter.getPrefix(namespaceURI);
-                if (prefix == null) {
-                    prefix = generatePrefix(namespaceURI);
-                    xmlWriter.writeNamespace(prefix, namespaceURI);
-                    xmlWriter.setPrefix(prefix,namespaceURI);
-                }
-
-                if (prefix.trim().length() > 0){
-                    xmlWriter.writeCharacters(prefix + ":" + org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                } else {
-                    // i.e this is the default namespace
-                    xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                }
-
-            } else {
-                xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-            }
-        }
-
-        private void writeQNames(javax.xml.namespace.QName[] qnames,
-                                 javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-            if (qnames != null) {
-                // we have to store this data until last moment since it is not possible to write any
-                // namespace data after writing the charactor data
-                java.lang.StringBuffer stringToWrite = new java.lang.StringBuffer();
-                java.lang.String namespaceURI = null;
-                java.lang.String prefix = null;
-
-                for (int i = 0; i < qnames.length; i++) {
-                    if (i > 0) {
-                        stringToWrite.append(" ");
-                    }
-                    namespaceURI = qnames[i].getNamespaceURI();
-                    if (namespaceURI != null) {
-                        prefix = xmlWriter.getPrefix(namespaceURI);
-                        if ((prefix == null) || (prefix.length() == 0)) {
-                            prefix = generatePrefix(namespaceURI);
-                            xmlWriter.writeNamespace(prefix, namespaceURI);
-                            xmlWriter.setPrefix(prefix,namespaceURI);
-                        }
-
-                        if (prefix.trim().length() > 0){
-                            stringToWrite.append(prefix).append(":").append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        } else {
-                            stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        }
-                    } else {
-                        stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                    }
-                }
-                xmlWriter.writeCharacters(stringToWrite.toString());
-            }
-
-        }
-
-
-         /**
-         * Register a namespace prefix
-         */
-         private java.lang.String registerPrefix(javax.xml.stream.XMLStreamWriter xmlWriter, java.lang.String namespace) throws javax.xml.stream.XMLStreamException {
-                java.lang.String prefix = xmlWriter.getPrefix(namespace);
-
-                if (prefix == null) {
-                    prefix = generatePrefix(namespace);
-                    javax.xml.namespace.NamespaceContext nsContext = xmlWriter.getNamespaceContext();
-                    while (true) {
-                        java.lang.String uri = nsContext.getNamespaceURI(prefix);
-                        if (uri == null || uri.length() == 0) {
-                            break;
-                        }
-                        prefix = org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-                    }
-                    xmlWriter.writeNamespace(prefix, namespace);
-                    xmlWriter.setPrefix(prefix, namespace);
-                }
-
-                return prefix;
-            }
-
-
-  
-     /**
-      *  Factory class that keeps the parse method
-      */
-    public static class Factory{
-
-        
-        
-                public static Token fromString(java.lang.String value,
-                                                    java.lang.String namespaceURI){
-                    Token returnValue = new  Token();
-                    
-                            returnValue.setToken(
-                                org.apache.axis2.databinding.utils.ConverterUtil.convertToToken(value));
-                        
-
-                    return returnValue;
-                }
-
-                public static Token fromString(javax.xml.stream.XMLStreamReader xmlStreamReader,
-                                                                    java.lang.String content) {
-                    if (content.indexOf(":") > -1){
-                        java.lang.String prefix = content.substring(0,content.indexOf(":"));
-                        java.lang.String namespaceUri = xmlStreamReader.getNamespaceContext().getNamespaceURI(prefix);
-                        return Token.Factory.fromString(content,namespaceUri);
-                    } else {
-                       return Token.Factory.fromString(content,"");
-                    }
-                }
-
-            
-
-        /**
-        * static method to create the object
-        * Precondition:  If this object is an element, the current or next start element starts this object and any intervening reader events are ignorable
-        *                If this object is not an element, it is a complex type and the reader is at the event just after the outer start element
-        * Postcondition: If this object is an element, the reader is positioned at its end element
-        *                If this object is a complex type, the reader is positioned at the end element of its outer element
-        */
-        public static Token parse(javax.xml.stream.XMLStreamReader reader) throws java.lang.Exception{
-            Token object =
-                new Token();
-
-            int event;
-            java.lang.String nillableValue = null;
-            java.lang.String prefix ="";
-            java.lang.String namespaceuri ="";
-            try {
-                
-                while (!reader.isStartElement() && !reader.isEndElement())
-                    reader.next();
-
-                
-                if (reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance","type")!=null){
-                  java.lang.String fullTypeName = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance",
-                        "type");
-                  if (fullTypeName!=null){
-                    java.lang.String nsPrefix = null;
-                    if (fullTypeName.indexOf(":") > -1){
-                        nsPrefix = fullTypeName.substring(0,fullTypeName.indexOf(":"));
-                    }
-                    nsPrefix = nsPrefix==null?"":nsPrefix;
-
-                    java.lang.String type = fullTypeName.substring(fullTypeName.indexOf(":")+1);
-                    
-                            if (!"token".equals(type)){
-                                //find namespace for the prefix
-                                java.lang.String nsUri = reader.getNamespaceContext().getNamespaceURI(nsPrefix);
-                                return (Token)org.apache.axis2.databinding.types.xsd.ExtensionMapper.getTypeObject(
-                                     nsUri,type,reader);
-                              }
-                        
-
-                  }
-                
-
-                }
-
-                
-
-                
-                // Note all attributes that were handled. Used to differ normal attributes
-                // from anyAttributes.
-                java.util.Vector handledAttributes = new java.util.Vector();
-                
-
-                    
-                while(!reader.isEndElement()) {
-                    if (reader.isStartElement()  || reader.hasText()){
-                
-                                    if (reader.isStartElement()  || reader.hasText()){
-                                
-                                    java.lang.String content = reader.getElementText();
-                                    
-                                              object.setToken(
-                                                    org.apache.axis2.databinding.utils.ConverterUtil.convertToToken(content));
-                                            
-                              }  // End of if for expected property start element
-                                
-                             else{
-                                        // A start element we are not expecting indicates an invalid parameter was passed
-                                        throw new org.apache.axis2.databinding.ADBException("Unexpected subelement " + reader.getLocalName());
-                             }
-                          
-                             } else {
-                                reader.next();
-                             }  
-                           }  // end of while loop
-                        
-
-
-
-            } catch (javax.xml.stream.XMLStreamException e) {
-                throw new java.lang.Exception(e);
-            }
-
-            return object;
-        }
-
-        }//end of factory class
-
-        
-
-        }
-           
-          
\ No newline at end of file
diff --git a/modules/adb/src/org/apache/axis2/databinding/types/xsd/UnsignedByte.java b/modules/adb/src/org/apache/axis2/databinding/types/xsd/UnsignedByte.java
deleted file mode 100644
index d5161af..0000000
--- a/modules/adb/src/org/apache/axis2/databinding/types/xsd/UnsignedByte.java
+++ /dev/null
@@ -1,469 +0,0 @@
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/**
- * UnsignedByte.java
- *
- * This file was auto-generated from WSDL
- * by the Apache Axis2 version: SNAPSHOT  Built on : Dec 21, 2007 (04:03:30 LKT)
- */
-            
-                package org.apache.axis2.databinding.types.xsd;
-
-import javax.xml.stream.XMLStreamWriter;
-            
-
-            /**
-            *  UnsignedByte bean class
-            */
-        
-        public  class UnsignedByte
-        implements org.apache.axis2.databinding.ADBBean{
-        /* This type was generated from the piece of schema that had
-                name = unsignedByte
-                Namespace URI = http://www.w3.org/2001/XMLSchema
-                Namespace Prefix = ns1
-                */
-            
-
-        private static java.lang.String generatePrefix(java.lang.String namespace) {
-            if(namespace.equals("http://www.w3.org/2001/XMLSchema")){
-                return "xsd";
-            }
-            return org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-        }
-
-        
-
-                        /**
-                        * field for UnsignedByte
-                        */
-
-                        
-                                    protected org.apache.axis2.databinding.types.UnsignedByte localUnsignedByte ;
-                                
-
-                           /**
-                           * Auto generated getter method
-                           * @return org.apache.axis2.databinding.types.UnsignedByte
-                           */
-                           public  org.apache.axis2.databinding.types.UnsignedByte getUnsignedByte(){
-                               return localUnsignedByte;
-                           }
-
-                           
-                        
-                            /**
-                               * Auto generated setter method
-                               * @param param UnsignedByte
-                               */
-                               public void setUnsignedByte(org.apache.axis2.databinding.types.UnsignedByte param){
-                            
-                                            this.localUnsignedByte=param;
-                                    
-
-                               }
-                            
-
-                            public java.lang.String toString(){
-                                
-                                        return localUnsignedByte.toString();
-                                    
-                            }
-                        
-
-     /**
-     * isReaderMTOMAware
-     * @return true if the reader supports MTOM
-     */
-   public static boolean isReaderMTOMAware(javax.xml.stream.XMLStreamReader reader) {
-        boolean isReaderMTOMAware = false;
-        
-        try{
-          isReaderMTOMAware = java.lang.Boolean.TRUE.equals(reader.getProperty(org.apache.axiom.om.OMConstants.IS_DATA_HANDLERS_AWARE));
-        }catch(java.lang.IllegalArgumentException e){
-          isReaderMTOMAware = false;
-        }
-        return isReaderMTOMAware;
-   }
-     
-     
-        /**
-        *
-        * @param parentQName
-        * @param factory
-        * @return org.apache.axiom.om.OMElement
-        */
-       public org.apache.axiom.om.OMElement getOMElement (
-               final javax.xml.namespace.QName parentQName,
-               final org.apache.axiom.om.OMFactory factory) throws org.apache.axis2.databinding.ADBException{
-
-
-        
-               org.apache.axiom.om.OMDataSource dataSource =
-                       new org.apache.axis2.databinding.ADBDataSource(this,parentQName);
-               return factory.createOMElement(dataSource,parentQName);
-            
-       }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                                       XMLStreamWriter xmlWriter)
-                                throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-                           serialize(parentQName,xmlWriter,false);
-         }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                               XMLStreamWriter xmlWriter,
-                               boolean serializeType)
-            throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-            
-                
-
-
-                java.lang.String prefix = null;
-                java.lang.String namespace = null;
-                
-
-                    prefix = parentQName.getPrefix();
-                    namespace = parentQName.getNamespaceURI();
-
-                    if ((namespace != null) && (namespace.trim().length() > 0)) {
-                        java.lang.String writerPrefix = xmlWriter.getPrefix(namespace);
-                        if (writerPrefix != null) {
-                            xmlWriter.writeStartElement(namespace, parentQName.getLocalPart());
-                        } else {
-                            if (prefix == null) {
-                                prefix = generatePrefix(namespace);
-                            }
-
-                            xmlWriter.writeStartElement(prefix, parentQName.getLocalPart(), namespace);
-                            xmlWriter.writeNamespace(prefix, namespace);
-                            xmlWriter.setPrefix(prefix, namespace);
-                        }
-                    } else {
-                        xmlWriter.writeStartElement(parentQName.getLocalPart());
-                    }
-                
-                  if (serializeType){
-               
-                   java.lang.String namespacePrefix = registerPrefix(xmlWriter,"http://www.w3.org/2001/XMLSchema");
-                   if ((namespacePrefix != null) && (namespacePrefix.trim().length() > 0)){
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           namespacePrefix+":unsignedByte",
-                           xmlWriter);
-                   } else {
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           "unsignedByte",
-                           xmlWriter);
-                   }
-
-               
-                   }
-               
-
-                                          if (localUnsignedByte==null){
-                                              // write the nil attribute
-                                              
-                                                     throw new org.apache.axis2.databinding.ADBException("unsignedByte cannot be null!!");
-                                                  
-                                          }else{
-
-                                        
-                                                   xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(localUnsignedByte));
-                                            
-                                          }
-                                    
-                    xmlWriter.writeEndElement();
-               
-
-        }
-
-         /**
-          * Util method to write an attribute with the ns prefix
-          */
-          private void writeAttribute(java.lang.String prefix,java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-              if (xmlWriter.getPrefix(namespace) == null) {
-                       xmlWriter.writeNamespace(prefix, namespace);
-                       xmlWriter.setPrefix(prefix, namespace);
-
-              }
-
-              xmlWriter.writeAttribute(namespace,attName,attValue);
-
-         }
-
-        /**
-          * Util method to write an attribute without the ns prefix
-          */
-          private void writeAttribute(java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-                if (namespace.equals(""))
-              {
-                  xmlWriter.writeAttribute(attName,attValue);
-              }
-              else
-              {
-                  registerPrefix(xmlWriter, namespace);
-                  xmlWriter.writeAttribute(namespace,attName,attValue);
-              }
-          }
-
-
-           /**
-             * Util method to write an attribute without the ns prefix
-             */
-            private void writeQNameAttribute(java.lang.String namespace, java.lang.String attName,
-                                             javax.xml.namespace.QName qname, javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-                java.lang.String attributeNamespace = qname.getNamespaceURI();
-                java.lang.String attributePrefix = xmlWriter.getPrefix(attributeNamespace);
-                if (attributePrefix == null) {
-                    attributePrefix = registerPrefix(xmlWriter, attributeNamespace);
-                }
-                java.lang.String attributeValue;
-                if (attributePrefix.trim().length() > 0) {
-                    attributeValue = attributePrefix + ":" + qname.getLocalPart();
-                } else {
-                    attributeValue = qname.getLocalPart();
-                }
-
-                if (namespace.equals("")) {
-                    xmlWriter.writeAttribute(attName, attributeValue);
-                } else {
-                    registerPrefix(xmlWriter, namespace);
-                    xmlWriter.writeAttribute(namespace, attName, attributeValue);
-                }
-            }
-        /**
-         *  method to handle Qnames
-         */
-
-        private void writeQName(javax.xml.namespace.QName qname,
-                                javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-            java.lang.String namespaceURI = qname.getNamespaceURI();
-            if (namespaceURI != null) {
-                java.lang.String prefix = xmlWriter.getPrefix(namespaceURI);
-                if (prefix == null) {
-                    prefix = generatePrefix(namespaceURI);
-                    xmlWriter.writeNamespace(prefix, namespaceURI);
-                    xmlWriter.setPrefix(prefix,namespaceURI);
-                }
-
-                if (prefix.trim().length() > 0){
-                    xmlWriter.writeCharacters(prefix + ":" + org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                } else {
-                    // i.e this is the default namespace
-                    xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                }
-
-            } else {
-                xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-            }
-        }
-
-        private void writeQNames(javax.xml.namespace.QName[] qnames,
-                                 javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-            if (qnames != null) {
-                // we have to store this data until last moment since it is not possible to write any
-                // namespace data after writing the charactor data
-                java.lang.StringBuffer stringToWrite = new java.lang.StringBuffer();
-                java.lang.String namespaceURI = null;
-                java.lang.String prefix = null;
-
-                for (int i = 0; i < qnames.length; i++) {
-                    if (i > 0) {
-                        stringToWrite.append(" ");
-                    }
-                    namespaceURI = qnames[i].getNamespaceURI();
-                    if (namespaceURI != null) {
-                        prefix = xmlWriter.getPrefix(namespaceURI);
-                        if ((prefix == null) || (prefix.length() == 0)) {
-                            prefix = generatePrefix(namespaceURI);
-                            xmlWriter.writeNamespace(prefix, namespaceURI);
-                            xmlWriter.setPrefix(prefix,namespaceURI);
-                        }
-
-                        if (prefix.trim().length() > 0){
-                            stringToWrite.append(prefix).append(":").append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        } else {
-                            stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        }
-                    } else {
-                        stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                    }
-                }
-                xmlWriter.writeCharacters(stringToWrite.toString());
-            }
-
-        }
-
-
-         /**
-         * Register a namespace prefix
-         */
-         private java.lang.String registerPrefix(javax.xml.stream.XMLStreamWriter xmlWriter, java.lang.String namespace) throws javax.xml.stream.XMLStreamException {
-                java.lang.String prefix = xmlWriter.getPrefix(namespace);
-
-                if (prefix == null) {
-                    prefix = generatePrefix(namespace);
-                    javax.xml.namespace.NamespaceContext nsContext = xmlWriter.getNamespaceContext();
-                    while (true) {
-                        java.lang.String uri = nsContext.getNamespaceURI(prefix);
-                        if (uri == null || uri.length() == 0) {
-                            break;
-                        }
-                        prefix = org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-                    }
-                    xmlWriter.writeNamespace(prefix, namespace);
-                    xmlWriter.setPrefix(prefix, namespace);
-                }
-
-                return prefix;
-            }
-
-
-  
-     /**
-      *  Factory class that keeps the parse method
-      */
-    public static class Factory{
-
-        
-        
-                public static UnsignedByte fromString(java.lang.String value,
-                                                    java.lang.String namespaceURI){
-                    UnsignedByte returnValue = new  UnsignedByte();
-                    
-                            returnValue.setUnsignedByte(
-                                org.apache.axis2.databinding.utils.ConverterUtil.convertToUnsignedByte(value));
-                        
-
-                    return returnValue;
-                }
-
-                public static UnsignedByte fromString(javax.xml.stream.XMLStreamReader xmlStreamReader,
-                                                                    java.lang.String content) {
-                    if (content.indexOf(":") > -1){
-                        java.lang.String prefix = content.substring(0,content.indexOf(":"));
-                        java.lang.String namespaceUri = xmlStreamReader.getNamespaceContext().getNamespaceURI(prefix);
-                        return UnsignedByte.Factory.fromString(content,namespaceUri);
-                    } else {
-                       return UnsignedByte.Factory.fromString(content,"");
-                    }
-                }
-
-            
-
-        /**
-        * static method to create the object
-        * Precondition:  If this object is an element, the current or next start element starts this object and any intervening reader events are ignorable
-        *                If this object is not an element, it is a complex type and the reader is at the event just after the outer start element
-        * Postcondition: If this object is an element, the reader is positioned at its end element
-        *                If this object is a complex type, the reader is positioned at the end element of its outer element
-        */
-        public static UnsignedByte parse(javax.xml.stream.XMLStreamReader reader) throws java.lang.Exception{
-            UnsignedByte object =
-                new UnsignedByte();
-
-            int event;
-            java.lang.String nillableValue = null;
-            java.lang.String prefix ="";
-            java.lang.String namespaceuri ="";
-            try {
-                
-                while (!reader.isStartElement() && !reader.isEndElement())
-                    reader.next();
-
-                
-                if (reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance","type")!=null){
-                  java.lang.String fullTypeName = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance",
-                        "type");
-                  if (fullTypeName!=null){
-                    java.lang.String nsPrefix = null;
-                    if (fullTypeName.indexOf(":") > -1){
-                        nsPrefix = fullTypeName.substring(0,fullTypeName.indexOf(":"));
-                    }
-                    nsPrefix = nsPrefix==null?"":nsPrefix;
-
-                    java.lang.String type = fullTypeName.substring(fullTypeName.indexOf(":")+1);
-                    
-                            if (!"unsignedByte".equals(type)){
-                                //find namespace for the prefix
-                                java.lang.String nsUri = reader.getNamespaceContext().getNamespaceURI(nsPrefix);
-                                return (UnsignedByte)org.apache.axis2.databinding.types.xsd.ExtensionMapper.getTypeObject(
-                                     nsUri,type,reader);
-                              }
-                        
-
-                  }
-                
-
-                }
-
-                
-
-                
-                // Note all attributes that were handled. Used to differ normal attributes
-                // from anyAttributes.
-                java.util.Vector handledAttributes = new java.util.Vector();
-                
-
-                    
-                while(!reader.isEndElement()) {
-                    if (reader.isStartElement()  || reader.hasText()){
-                
-                                    if (reader.isStartElement()  || reader.hasText()){
-                                
-                                    java.lang.String content = reader.getElementText();
-                                    
-                                              object.setUnsignedByte(
-                                                    org.apache.axis2.databinding.utils.ConverterUtil.convertToUnsignedByte(content));
-                                            
-                              }  // End of if for expected property start element
-                                
-                             else{
-                                        // A start element we are not expecting indicates an invalid parameter was passed
-                                        throw new org.apache.axis2.databinding.ADBException("Unexpected subelement " + reader.getLocalName());
-                             }
-                          
-                             } else {
-                                reader.next();
-                             }  
-                           }  // end of while loop
-                        
-
-
-
-            } catch (javax.xml.stream.XMLStreamException e) {
-                throw new java.lang.Exception(e);
-            }
-
-            return object;
-        }
-
-        }//end of factory class
-
-        
-
-        }
-           
-          
\ No newline at end of file
diff --git a/modules/adb/src/org/apache/axis2/databinding/types/xsd/UnsignedInt.java b/modules/adb/src/org/apache/axis2/databinding/types/xsd/UnsignedInt.java
deleted file mode 100644
index 4908d47..0000000
--- a/modules/adb/src/org/apache/axis2/databinding/types/xsd/UnsignedInt.java
+++ /dev/null
@@ -1,469 +0,0 @@
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/**
- * UnsignedInt.java
- *
- * This file was auto-generated from WSDL
- * by the Apache Axis2 version: SNAPSHOT  Built on : Dec 21, 2007 (04:03:30 LKT)
- */
-            
-                package org.apache.axis2.databinding.types.xsd;
-
-import javax.xml.stream.XMLStreamWriter;
-            
-
-            /**
-            *  UnsignedInt bean class
-            */
-        
-        public  class UnsignedInt
-        implements org.apache.axis2.databinding.ADBBean{
-        /* This type was generated from the piece of schema that had
-                name = unsignedInt
-                Namespace URI = http://www.w3.org/2001/XMLSchema
-                Namespace Prefix = ns1
-                */
-            
-
-        private static java.lang.String generatePrefix(java.lang.String namespace) {
-            if(namespace.equals("http://www.w3.org/2001/XMLSchema")){
-                return "xsd";
-            }
-            return org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-        }
-
-        
-
-                        /**
-                        * field for UnsignedInt
-                        */
-
-                        
-                                    protected org.apache.axis2.databinding.types.UnsignedInt localUnsignedInt ;
-                                
-
-                           /**
-                           * Auto generated getter method
-                           * @return org.apache.axis2.databinding.types.UnsignedInt
-                           */
-                           public  org.apache.axis2.databinding.types.UnsignedInt getUnsignedInt(){
-                               return localUnsignedInt;
-                           }
-
-                           
-                        
-                            /**
-                               * Auto generated setter method
-                               * @param param UnsignedInt
-                               */
-                               public void setUnsignedInt(org.apache.axis2.databinding.types.UnsignedInt param){
-                            
-                                            this.localUnsignedInt=param;
-                                    
-
-                               }
-                            
-
-                            public java.lang.String toString(){
-                                
-                                        return localUnsignedInt.toString();
-                                    
-                            }
-                        
-
-     /**
-     * isReaderMTOMAware
-     * @return true if the reader supports MTOM
-     */
-   public static boolean isReaderMTOMAware(javax.xml.stream.XMLStreamReader reader) {
-        boolean isReaderMTOMAware = false;
-        
-        try{
-          isReaderMTOMAware = java.lang.Boolean.TRUE.equals(reader.getProperty(org.apache.axiom.om.OMConstants.IS_DATA_HANDLERS_AWARE));
-        }catch(java.lang.IllegalArgumentException e){
-          isReaderMTOMAware = false;
-        }
-        return isReaderMTOMAware;
-   }
-     
-     
-        /**
-        *
-        * @param parentQName
-        * @param factory
-        * @return org.apache.axiom.om.OMElement
-        */
-       public org.apache.axiom.om.OMElement getOMElement (
-               final javax.xml.namespace.QName parentQName,
-               final org.apache.axiom.om.OMFactory factory) throws org.apache.axis2.databinding.ADBException{
-
-
-        
-               org.apache.axiom.om.OMDataSource dataSource =
-                       new org.apache.axis2.databinding.ADBDataSource(this,parentQName);
-               return factory.createOMElement(dataSource,parentQName);
-            
-       }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                                       XMLStreamWriter xmlWriter)
-                                throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-                           serialize(parentQName,xmlWriter,false);
-         }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                               XMLStreamWriter xmlWriter,
-                               boolean serializeType)
-            throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-            
-                
-
-
-                java.lang.String prefix = null;
-                java.lang.String namespace = null;
-                
-
-                    prefix = parentQName.getPrefix();
-                    namespace = parentQName.getNamespaceURI();
-
-                    if ((namespace != null) && (namespace.trim().length() > 0)) {
-                        java.lang.String writerPrefix = xmlWriter.getPrefix(namespace);
-                        if (writerPrefix != null) {
-                            xmlWriter.writeStartElement(namespace, parentQName.getLocalPart());
-                        } else {
-                            if (prefix == null) {
-                                prefix = generatePrefix(namespace);
-                            }
-
-                            xmlWriter.writeStartElement(prefix, parentQName.getLocalPart(), namespace);
-                            xmlWriter.writeNamespace(prefix, namespace);
-                            xmlWriter.setPrefix(prefix, namespace);
-                        }
-                    } else {
-                        xmlWriter.writeStartElement(parentQName.getLocalPart());
-                    }
-                
-                  if (serializeType){
-               
-                   java.lang.String namespacePrefix = registerPrefix(xmlWriter,"http://www.w3.org/2001/XMLSchema");
-                   if ((namespacePrefix != null) && (namespacePrefix.trim().length() > 0)){
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           namespacePrefix+":unsignedInt",
-                           xmlWriter);
-                   } else {
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           "unsignedInt",
-                           xmlWriter);
-                   }
-
-               
-                   }
-               
-
-                                          if (localUnsignedInt==null){
-                                              // write the nil attribute
-                                              
-                                                     throw new org.apache.axis2.databinding.ADBException("unsignedInt cannot be null!!");
-                                                  
-                                          }else{
-
-                                        
-                                                   xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(localUnsignedInt));
-                                            
-                                          }
-                                    
-                    xmlWriter.writeEndElement();
-               
-
-        }
-
-         /**
-          * Util method to write an attribute with the ns prefix
-          */
-          private void writeAttribute(java.lang.String prefix,java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-              if (xmlWriter.getPrefix(namespace) == null) {
-                       xmlWriter.writeNamespace(prefix, namespace);
-                       xmlWriter.setPrefix(prefix, namespace);
-
-              }
-
-              xmlWriter.writeAttribute(namespace,attName,attValue);
-
-         }
-
-        /**
-          * Util method to write an attribute without the ns prefix
-          */
-          private void writeAttribute(java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-                if (namespace.equals(""))
-              {
-                  xmlWriter.writeAttribute(attName,attValue);
-              }
-              else
-              {
-                  registerPrefix(xmlWriter, namespace);
-                  xmlWriter.writeAttribute(namespace,attName,attValue);
-              }
-          }
-
-
-           /**
-             * Util method to write an attribute without the ns prefix
-             */
-            private void writeQNameAttribute(java.lang.String namespace, java.lang.String attName,
-                                             javax.xml.namespace.QName qname, javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-                java.lang.String attributeNamespace = qname.getNamespaceURI();
-                java.lang.String attributePrefix = xmlWriter.getPrefix(attributeNamespace);
-                if (attributePrefix == null) {
-                    attributePrefix = registerPrefix(xmlWriter, attributeNamespace);
-                }
-                java.lang.String attributeValue;
-                if (attributePrefix.trim().length() > 0) {
-                    attributeValue = attributePrefix + ":" + qname.getLocalPart();
-                } else {
-                    attributeValue = qname.getLocalPart();
-                }
-
-                if (namespace.equals("")) {
-                    xmlWriter.writeAttribute(attName, attributeValue);
-                } else {
-                    registerPrefix(xmlWriter, namespace);
-                    xmlWriter.writeAttribute(namespace, attName, attributeValue);
-                }
-            }
-        /**
-         *  method to handle Qnames
-         */
-
-        private void writeQName(javax.xml.namespace.QName qname,
-                                javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-            java.lang.String namespaceURI = qname.getNamespaceURI();
-            if (namespaceURI != null) {
-                java.lang.String prefix = xmlWriter.getPrefix(namespaceURI);
-                if (prefix == null) {
-                    prefix = generatePrefix(namespaceURI);
-                    xmlWriter.writeNamespace(prefix, namespaceURI);
-                    xmlWriter.setPrefix(prefix,namespaceURI);
-                }
-
-                if (prefix.trim().length() > 0){
-                    xmlWriter.writeCharacters(prefix + ":" + org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                } else {
-                    // i.e this is the default namespace
-                    xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                }
-
-            } else {
-                xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-            }
-        }
-
-        private void writeQNames(javax.xml.namespace.QName[] qnames,
-                                 javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-            if (qnames != null) {
-                // we have to store this data until last moment since it is not possible to write any
-                // namespace data after writing the charactor data
-                java.lang.StringBuffer stringToWrite = new java.lang.StringBuffer();
-                java.lang.String namespaceURI = null;
-                java.lang.String prefix = null;
-
-                for (int i = 0; i < qnames.length; i++) {
-                    if (i > 0) {
-                        stringToWrite.append(" ");
-                    }
-                    namespaceURI = qnames[i].getNamespaceURI();
-                    if (namespaceURI != null) {
-                        prefix = xmlWriter.getPrefix(namespaceURI);
-                        if ((prefix == null) || (prefix.length() == 0)) {
-                            prefix = generatePrefix(namespaceURI);
-                            xmlWriter.writeNamespace(prefix, namespaceURI);
-                            xmlWriter.setPrefix(prefix,namespaceURI);
-                        }
-
-                        if (prefix.trim().length() > 0){
-                            stringToWrite.append(prefix).append(":").append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        } else {
-                            stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        }
-                    } else {
-                        stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                    }
-                }
-                xmlWriter.writeCharacters(stringToWrite.toString());
-            }
-
-        }
-
-
-         /**
-         * Register a namespace prefix
-         */
-         private java.lang.String registerPrefix(javax.xml.stream.XMLStreamWriter xmlWriter, java.lang.String namespace) throws javax.xml.stream.XMLStreamException {
-                java.lang.String prefix = xmlWriter.getPrefix(namespace);
-
-                if (prefix == null) {
-                    prefix = generatePrefix(namespace);
-                    javax.xml.namespace.NamespaceContext nsContext = xmlWriter.getNamespaceContext();
-                    while (true) {
-                        java.lang.String uri = nsContext.getNamespaceURI(prefix);
-                        if (uri == null || uri.length() == 0) {
-                            break;
-                        }
-                        prefix = org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-                    }
-                    xmlWriter.writeNamespace(prefix, namespace);
-                    xmlWriter.setPrefix(prefix, namespace);
-                }
-
-                return prefix;
-            }
-
-
-  
-     /**
-      *  Factory class that keeps the parse method
-      */
-    public static class Factory{
-
-        
-        
-                public static UnsignedInt fromString(java.lang.String value,
-                                                    java.lang.String namespaceURI){
-                    UnsignedInt returnValue = new  UnsignedInt();
-                    
-                            returnValue.setUnsignedInt(
-                                org.apache.axis2.databinding.utils.ConverterUtil.convertToUnsignedInt(value));
-                        
-
-                    return returnValue;
-                }
-
-                public static UnsignedInt fromString(javax.xml.stream.XMLStreamReader xmlStreamReader,
-                                                                    java.lang.String content) {
-                    if (content.indexOf(":") > -1){
-                        java.lang.String prefix = content.substring(0,content.indexOf(":"));
-                        java.lang.String namespaceUri = xmlStreamReader.getNamespaceContext().getNamespaceURI(prefix);
-                        return UnsignedInt.Factory.fromString(content,namespaceUri);
-                    } else {
-                       return UnsignedInt.Factory.fromString(content,"");
-                    }
-                }
-
-            
-
-        /**
-        * static method to create the object
-        * Precondition:  If this object is an element, the current or next start element starts this object and any intervening reader events are ignorable
-        *                If this object is not an element, it is a complex type and the reader is at the event just after the outer start element
-        * Postcondition: If this object is an element, the reader is positioned at its end element
-        *                If this object is a complex type, the reader is positioned at the end element of its outer element
-        */
-        public static UnsignedInt parse(javax.xml.stream.XMLStreamReader reader) throws java.lang.Exception{
-            UnsignedInt object =
-                new UnsignedInt();
-
-            int event;
-            java.lang.String nillableValue = null;
-            java.lang.String prefix ="";
-            java.lang.String namespaceuri ="";
-            try {
-                
-                while (!reader.isStartElement() && !reader.isEndElement())
-                    reader.next();
-
-                
-                if (reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance","type")!=null){
-                  java.lang.String fullTypeName = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance",
-                        "type");
-                  if (fullTypeName!=null){
-                    java.lang.String nsPrefix = null;
-                    if (fullTypeName.indexOf(":") > -1){
-                        nsPrefix = fullTypeName.substring(0,fullTypeName.indexOf(":"));
-                    }
-                    nsPrefix = nsPrefix==null?"":nsPrefix;
-
-                    java.lang.String type = fullTypeName.substring(fullTypeName.indexOf(":")+1);
-                    
-                            if (!"unsignedInt".equals(type)){
-                                //find namespace for the prefix
-                                java.lang.String nsUri = reader.getNamespaceContext().getNamespaceURI(nsPrefix);
-                                return (UnsignedInt)org.apache.axis2.databinding.types.xsd.ExtensionMapper.getTypeObject(
-                                     nsUri,type,reader);
-                              }
-                        
-
-                  }
-                
-
-                }
-
-                
-
-                
-                // Note all attributes that were handled. Used to differ normal attributes
-                // from anyAttributes.
-                java.util.Vector handledAttributes = new java.util.Vector();
-                
-
-                    
-                while(!reader.isEndElement()) {
-                    if (reader.isStartElement()  || reader.hasText()){
-                
-                                    if (reader.isStartElement()  || reader.hasText()){
-                                
-                                    java.lang.String content = reader.getElementText();
-                                    
-                                              object.setUnsignedInt(
-                                                    org.apache.axis2.databinding.utils.ConverterUtil.convertToUnsignedInt(content));
-                                            
-                              }  // End of if for expected property start element
-                                
-                             else{
-                                        // A start element we are not expecting indicates an invalid parameter was passed
-                                        throw new org.apache.axis2.databinding.ADBException("Unexpected subelement " + reader.getLocalName());
-                             }
-                          
-                             } else {
-                                reader.next();
-                             }  
-                           }  // end of while loop
-                        
-
-
-
-            } catch (javax.xml.stream.XMLStreamException e) {
-                throw new java.lang.Exception(e);
-            }
-
-            return object;
-        }
-
-        }//end of factory class
-
-        
-
-        }
-           
-          
\ No newline at end of file
diff --git a/modules/adb/src/org/apache/axis2/databinding/types/xsd/UnsignedLong.java b/modules/adb/src/org/apache/axis2/databinding/types/xsd/UnsignedLong.java
deleted file mode 100644
index 00a0755..0000000
--- a/modules/adb/src/org/apache/axis2/databinding/types/xsd/UnsignedLong.java
+++ /dev/null
@@ -1,469 +0,0 @@
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/**
- * UnsignedLong.java
- *
- * This file was auto-generated from WSDL
- * by the Apache Axis2 version: SNAPSHOT  Built on : Dec 21, 2007 (04:03:30 LKT)
- */
-            
-                package org.apache.axis2.databinding.types.xsd;
-
-import javax.xml.stream.XMLStreamWriter;
-            
-
-            /**
-            *  UnsignedLong bean class
-            */
-        
-        public  class UnsignedLong
-        implements org.apache.axis2.databinding.ADBBean{
-        /* This type was generated from the piece of schema that had
-                name = unsignedLong
-                Namespace URI = http://www.w3.org/2001/XMLSchema
-                Namespace Prefix = ns1
-                */
-            
-
-        private static java.lang.String generatePrefix(java.lang.String namespace) {
-            if(namespace.equals("http://www.w3.org/2001/XMLSchema")){
-                return "xsd";
-            }
-            return org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-        }
-
-        
-
-                        /**
-                        * field for UnsignedLong
-                        */
-
-                        
-                                    protected org.apache.axis2.databinding.types.UnsignedLong localUnsignedLong ;
-                                
-
-                           /**
-                           * Auto generated getter method
-                           * @return org.apache.axis2.databinding.types.UnsignedLong
-                           */
-                           public  org.apache.axis2.databinding.types.UnsignedLong getUnsignedLong(){
-                               return localUnsignedLong;
-                           }
-
-                           
-                        
-                            /**
-                               * Auto generated setter method
-                               * @param param UnsignedLong
-                               */
-                               public void setUnsignedLong(org.apache.axis2.databinding.types.UnsignedLong param){
-                            
-                                            this.localUnsignedLong=param;
-                                    
-
-                               }
-                            
-
-                            public java.lang.String toString(){
-                                
-                                        return localUnsignedLong.toString();
-                                    
-                            }
-                        
-
-     /**
-     * isReaderMTOMAware
-     * @return true if the reader supports MTOM
-     */
-   public static boolean isReaderMTOMAware(javax.xml.stream.XMLStreamReader reader) {
-        boolean isReaderMTOMAware = false;
-        
-        try{
-          isReaderMTOMAware = java.lang.Boolean.TRUE.equals(reader.getProperty(org.apache.axiom.om.OMConstants.IS_DATA_HANDLERS_AWARE));
-        }catch(java.lang.IllegalArgumentException e){
-          isReaderMTOMAware = false;
-        }
-        return isReaderMTOMAware;
-   }
-     
-     
-        /**
-        *
-        * @param parentQName
-        * @param factory
-        * @return org.apache.axiom.om.OMElement
-        */
-       public org.apache.axiom.om.OMElement getOMElement (
-               final javax.xml.namespace.QName parentQName,
-               final org.apache.axiom.om.OMFactory factory) throws org.apache.axis2.databinding.ADBException{
-
-
-        
-               org.apache.axiom.om.OMDataSource dataSource =
-                       new org.apache.axis2.databinding.ADBDataSource(this,parentQName);
-               return factory.createOMElement(dataSource,parentQName);
-            
-       }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                                       XMLStreamWriter xmlWriter)
-                                throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-                           serialize(parentQName,xmlWriter,false);
-         }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                               XMLStreamWriter xmlWriter,
-                               boolean serializeType)
-            throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-            
-                
-
-
-                java.lang.String prefix = null;
-                java.lang.String namespace = null;
-                
-
-                    prefix = parentQName.getPrefix();
-                    namespace = parentQName.getNamespaceURI();
-
-                    if ((namespace != null) && (namespace.trim().length() > 0)) {
-                        java.lang.String writerPrefix = xmlWriter.getPrefix(namespace);
-                        if (writerPrefix != null) {
-                            xmlWriter.writeStartElement(namespace, parentQName.getLocalPart());
-                        } else {
-                            if (prefix == null) {
-                                prefix = generatePrefix(namespace);
-                            }
-
-                            xmlWriter.writeStartElement(prefix, parentQName.getLocalPart(), namespace);
-                            xmlWriter.writeNamespace(prefix, namespace);
-                            xmlWriter.setPrefix(prefix, namespace);
-                        }
-                    } else {
-                        xmlWriter.writeStartElement(parentQName.getLocalPart());
-                    }
-                
-                  if (serializeType){
-               
-                   java.lang.String namespacePrefix = registerPrefix(xmlWriter,"http://www.w3.org/2001/XMLSchema");
-                   if ((namespacePrefix != null) && (namespacePrefix.trim().length() > 0)){
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           namespacePrefix+":unsignedLong",
-                           xmlWriter);
-                   } else {
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           "unsignedLong",
-                           xmlWriter);
-                   }
-
-               
-                   }
-               
-
-                                          if (localUnsignedLong==null){
-                                              // write the nil attribute
-                                              
-                                                     throw new org.apache.axis2.databinding.ADBException("unsignedLong cannot be null!!");
-                                                  
-                                          }else{
-
-                                        
-                                                   xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(localUnsignedLong));
-                                            
-                                          }
-                                    
-                    xmlWriter.writeEndElement();
-               
-
-        }
-
-         /**
-          * Util method to write an attribute with the ns prefix
-          */
-          private void writeAttribute(java.lang.String prefix,java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-              if (xmlWriter.getPrefix(namespace) == null) {
-                       xmlWriter.writeNamespace(prefix, namespace);
-                       xmlWriter.setPrefix(prefix, namespace);
-
-              }
-
-              xmlWriter.writeAttribute(namespace,attName,attValue);
-
-         }
-
-        /**
-          * Util method to write an attribute without the ns prefix
-          */
-          private void writeAttribute(java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-                if (namespace.equals(""))
-              {
-                  xmlWriter.writeAttribute(attName,attValue);
-              }
-              else
-              {
-                  registerPrefix(xmlWriter, namespace);
-                  xmlWriter.writeAttribute(namespace,attName,attValue);
-              }
-          }
-
-
-           /**
-             * Util method to write an attribute without the ns prefix
-             */
-            private void writeQNameAttribute(java.lang.String namespace, java.lang.String attName,
-                                             javax.xml.namespace.QName qname, javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-                java.lang.String attributeNamespace = qname.getNamespaceURI();
-                java.lang.String attributePrefix = xmlWriter.getPrefix(attributeNamespace);
-                if (attributePrefix == null) {
-                    attributePrefix = registerPrefix(xmlWriter, attributeNamespace);
-                }
-                java.lang.String attributeValue;
-                if (attributePrefix.trim().length() > 0) {
-                    attributeValue = attributePrefix + ":" + qname.getLocalPart();
-                } else {
-                    attributeValue = qname.getLocalPart();
-                }
-
-                if (namespace.equals("")) {
-                    xmlWriter.writeAttribute(attName, attributeValue);
-                } else {
-                    registerPrefix(xmlWriter, namespace);
-                    xmlWriter.writeAttribute(namespace, attName, attributeValue);
-                }
-            }
-        /**
-         *  method to handle Qnames
-         */
-
-        private void writeQName(javax.xml.namespace.QName qname,
-                                javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-            java.lang.String namespaceURI = qname.getNamespaceURI();
-            if (namespaceURI != null) {
-                java.lang.String prefix = xmlWriter.getPrefix(namespaceURI);
-                if (prefix == null) {
-                    prefix = generatePrefix(namespaceURI);
-                    xmlWriter.writeNamespace(prefix, namespaceURI);
-                    xmlWriter.setPrefix(prefix,namespaceURI);
-                }
-
-                if (prefix.trim().length() > 0){
-                    xmlWriter.writeCharacters(prefix + ":" + org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                } else {
-                    // i.e this is the default namespace
-                    xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                }
-
-            } else {
-                xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-            }
-        }
-
-        private void writeQNames(javax.xml.namespace.QName[] qnames,
-                                 javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-            if (qnames != null) {
-                // we have to store this data until last moment since it is not possible to write any
-                // namespace data after writing the charactor data
-                java.lang.StringBuffer stringToWrite = new java.lang.StringBuffer();
-                java.lang.String namespaceURI = null;
-                java.lang.String prefix = null;
-
-                for (int i = 0; i < qnames.length; i++) {
-                    if (i > 0) {
-                        stringToWrite.append(" ");
-                    }
-                    namespaceURI = qnames[i].getNamespaceURI();
-                    if (namespaceURI != null) {
-                        prefix = xmlWriter.getPrefix(namespaceURI);
-                        if ((prefix == null) || (prefix.length() == 0)) {
-                            prefix = generatePrefix(namespaceURI);
-                            xmlWriter.writeNamespace(prefix, namespaceURI);
-                            xmlWriter.setPrefix(prefix,namespaceURI);
-                        }
-
-                        if (prefix.trim().length() > 0){
-                            stringToWrite.append(prefix).append(":").append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        } else {
-                            stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        }
-                    } else {
-                        stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                    }
-                }
-                xmlWriter.writeCharacters(stringToWrite.toString());
-            }
-
-        }
-
-
-         /**
-         * Register a namespace prefix
-         */
-         private java.lang.String registerPrefix(javax.xml.stream.XMLStreamWriter xmlWriter, java.lang.String namespace) throws javax.xml.stream.XMLStreamException {
-                java.lang.String prefix = xmlWriter.getPrefix(namespace);
-
-                if (prefix == null) {
-                    prefix = generatePrefix(namespace);
-                    javax.xml.namespace.NamespaceContext nsContext = xmlWriter.getNamespaceContext();
-                    while (true) {
-                        java.lang.String uri = nsContext.getNamespaceURI(prefix);
-                        if (uri == null || uri.length() == 0) {
-                            break;
-                        }
-                        prefix = org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-                    }
-                    xmlWriter.writeNamespace(prefix, namespace);
-                    xmlWriter.setPrefix(prefix, namespace);
-                }
-
-                return prefix;
-            }
-
-
-  
-     /**
-      *  Factory class that keeps the parse method
-      */
-    public static class Factory{
-
-        
-        
-                public static UnsignedLong fromString(java.lang.String value,
-                                                    java.lang.String namespaceURI){
-                    UnsignedLong returnValue = new  UnsignedLong();
-                    
-                            returnValue.setUnsignedLong(
-                                org.apache.axis2.databinding.utils.ConverterUtil.convertToUnsignedLong(value));
-                        
-
-                    return returnValue;
-                }
-
-                public static UnsignedLong fromString(javax.xml.stream.XMLStreamReader xmlStreamReader,
-                                                                    java.lang.String content) {
-                    if (content.indexOf(":") > -1){
-                        java.lang.String prefix = content.substring(0,content.indexOf(":"));
-                        java.lang.String namespaceUri = xmlStreamReader.getNamespaceContext().getNamespaceURI(prefix);
-                        return UnsignedLong.Factory.fromString(content,namespaceUri);
-                    } else {
-                       return UnsignedLong.Factory.fromString(content,"");
-                    }
-                }
-
-            
-
-        /**
-        * static method to create the object
-        * Precondition:  If this object is an element, the current or next start element starts this object and any intervening reader events are ignorable
-        *                If this object is not an element, it is a complex type and the reader is at the event just after the outer start element
-        * Postcondition: If this object is an element, the reader is positioned at its end element
-        *                If this object is a complex type, the reader is positioned at the end element of its outer element
-        */
-        public static UnsignedLong parse(javax.xml.stream.XMLStreamReader reader) throws java.lang.Exception{
-            UnsignedLong object =
-                new UnsignedLong();
-
-            int event;
-            java.lang.String nillableValue = null;
-            java.lang.String prefix ="";
-            java.lang.String namespaceuri ="";
-            try {
-                
-                while (!reader.isStartElement() && !reader.isEndElement())
-                    reader.next();
-
-                
-                if (reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance","type")!=null){
-                  java.lang.String fullTypeName = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance",
-                        "type");
-                  if (fullTypeName!=null){
-                    java.lang.String nsPrefix = null;
-                    if (fullTypeName.indexOf(":") > -1){
-                        nsPrefix = fullTypeName.substring(0,fullTypeName.indexOf(":"));
-                    }
-                    nsPrefix = nsPrefix==null?"":nsPrefix;
-
-                    java.lang.String type = fullTypeName.substring(fullTypeName.indexOf(":")+1);
-                    
-                            if (!"unsignedLong".equals(type)){
-                                //find namespace for the prefix
-                                java.lang.String nsUri = reader.getNamespaceContext().getNamespaceURI(nsPrefix);
-                                return (UnsignedLong)org.apache.axis2.databinding.types.xsd.ExtensionMapper.getTypeObject(
-                                     nsUri,type,reader);
-                              }
-                        
-
-                  }
-                
-
-                }
-
-                
-
-                
-                // Note all attributes that were handled. Used to differ normal attributes
-                // from anyAttributes.
-                java.util.Vector handledAttributes = new java.util.Vector();
-                
-
-                    
-                while(!reader.isEndElement()) {
-                    if (reader.isStartElement()  || reader.hasText()){
-                
-                                    if (reader.isStartElement()  || reader.hasText()){
-                                
-                                    java.lang.String content = reader.getElementText();
-                                    
-                                              object.setUnsignedLong(
-                                                    org.apache.axis2.databinding.utils.ConverterUtil.convertToUnsignedLong(content));
-                                            
-                              }  // End of if for expected property start element
-                                
-                             else{
-                                        // A start element we are not expecting indicates an invalid parameter was passed
-                                        throw new org.apache.axis2.databinding.ADBException("Unexpected subelement " + reader.getLocalName());
-                             }
-                          
-                             } else {
-                                reader.next();
-                             }  
-                           }  // end of while loop
-                        
-
-
-
-            } catch (javax.xml.stream.XMLStreamException e) {
-                throw new java.lang.Exception(e);
-            }
-
-            return object;
-        }
-
-        }//end of factory class
-
-        
-
-        }
-           
-          
\ No newline at end of file
diff --git a/modules/adb/src/org/apache/axis2/databinding/types/xsd/UnsignedShort.java b/modules/adb/src/org/apache/axis2/databinding/types/xsd/UnsignedShort.java
deleted file mode 100644
index f7ea909..0000000
--- a/modules/adb/src/org/apache/axis2/databinding/types/xsd/UnsignedShort.java
+++ /dev/null
@@ -1,469 +0,0 @@
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/**
- * UnsignedShort.java
- *
- * This file was auto-generated from WSDL
- * by the Apache Axis2 version: SNAPSHOT  Built on : Dec 21, 2007 (04:03:30 LKT)
- */
-            
-                package org.apache.axis2.databinding.types.xsd;
-
-import javax.xml.stream.XMLStreamWriter;
-            
-
-            /**
-            *  UnsignedShort bean class
-            */
-        
-        public  class UnsignedShort
-        implements org.apache.axis2.databinding.ADBBean{
-        /* This type was generated from the piece of schema that had
-                name = unsignedShort
-                Namespace URI = http://www.w3.org/2001/XMLSchema
-                Namespace Prefix = ns1
-                */
-            
-
-        private static java.lang.String generatePrefix(java.lang.String namespace) {
-            if(namespace.equals("http://www.w3.org/2001/XMLSchema")){
-                return "xsd";
-            }
-            return org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-        }
-
-        
-
-                        /**
-                        * field for UnsignedShort
-                        */
-
-                        
-                                    protected org.apache.axis2.databinding.types.UnsignedShort localUnsignedShort ;
-                                
-
-                           /**
-                           * Auto generated getter method
-                           * @return org.apache.axis2.databinding.types.UnsignedShort
-                           */
-                           public  org.apache.axis2.databinding.types.UnsignedShort getUnsignedShort(){
-                               return localUnsignedShort;
-                           }
-
-                           
-                        
-                            /**
-                               * Auto generated setter method
-                               * @param param UnsignedShort
-                               */
-                               public void setUnsignedShort(org.apache.axis2.databinding.types.UnsignedShort param){
-                            
-                                            this.localUnsignedShort=param;
-                                    
-
-                               }
-                            
-
-                            public java.lang.String toString(){
-                                
-                                        return localUnsignedShort.toString();
-                                    
-                            }
-                        
-
-     /**
-     * isReaderMTOMAware
-     * @return true if the reader supports MTOM
-     */
-   public static boolean isReaderMTOMAware(javax.xml.stream.XMLStreamReader reader) {
-        boolean isReaderMTOMAware = false;
-        
-        try{
-          isReaderMTOMAware = java.lang.Boolean.TRUE.equals(reader.getProperty(org.apache.axiom.om.OMConstants.IS_DATA_HANDLERS_AWARE));
-        }catch(java.lang.IllegalArgumentException e){
-          isReaderMTOMAware = false;
-        }
-        return isReaderMTOMAware;
-   }
-     
-     
-        /**
-        *
-        * @param parentQName
-        * @param factory
-        * @return org.apache.axiom.om.OMElement
-        */
-       public org.apache.axiom.om.OMElement getOMElement (
-               final javax.xml.namespace.QName parentQName,
-               final org.apache.axiom.om.OMFactory factory) throws org.apache.axis2.databinding.ADBException{
-
-
-        
-               org.apache.axiom.om.OMDataSource dataSource =
-                       new org.apache.axis2.databinding.ADBDataSource(this,parentQName);
-               return factory.createOMElement(dataSource,parentQName);
-            
-       }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                                       XMLStreamWriter xmlWriter)
-                                throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-                           serialize(parentQName,xmlWriter,false);
-         }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                               XMLStreamWriter xmlWriter,
-                               boolean serializeType)
-            throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-            
-                
-
-
-                java.lang.String prefix = null;
-                java.lang.String namespace = null;
-                
-
-                    prefix = parentQName.getPrefix();
-                    namespace = parentQName.getNamespaceURI();
-
-                    if ((namespace != null) && (namespace.trim().length() > 0)) {
-                        java.lang.String writerPrefix = xmlWriter.getPrefix(namespace);
-                        if (writerPrefix != null) {
-                            xmlWriter.writeStartElement(namespace, parentQName.getLocalPart());
-                        } else {
-                            if (prefix == null) {
-                                prefix = generatePrefix(namespace);
-                            }
-
-                            xmlWriter.writeStartElement(prefix, parentQName.getLocalPart(), namespace);
-                            xmlWriter.writeNamespace(prefix, namespace);
-                            xmlWriter.setPrefix(prefix, namespace);
-                        }
-                    } else {
-                        xmlWriter.writeStartElement(parentQName.getLocalPart());
-                    }
-                
-                  if (serializeType){
-               
-                   java.lang.String namespacePrefix = registerPrefix(xmlWriter,"http://www.w3.org/2001/XMLSchema");
-                   if ((namespacePrefix != null) && (namespacePrefix.trim().length() > 0)){
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           namespacePrefix+":unsignedShort",
-                           xmlWriter);
-                   } else {
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           "unsignedShort",
-                           xmlWriter);
-                   }
-
-               
-                   }
-               
-
-                                          if (localUnsignedShort==null){
-                                              // write the nil attribute
-                                              
-                                                     throw new org.apache.axis2.databinding.ADBException("unsignedShort cannot be null!!");
-                                                  
-                                          }else{
-
-                                        
-                                                   xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(localUnsignedShort));
-                                            
-                                          }
-                                    
-                    xmlWriter.writeEndElement();
-               
-
-        }
-
-         /**
-          * Util method to write an attribute with the ns prefix
-          */
-          private void writeAttribute(java.lang.String prefix,java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-              if (xmlWriter.getPrefix(namespace) == null) {
-                       xmlWriter.writeNamespace(prefix, namespace);
-                       xmlWriter.setPrefix(prefix, namespace);
-
-              }
-
-              xmlWriter.writeAttribute(namespace,attName,attValue);
-
-         }
-
-        /**
-          * Util method to write an attribute without the ns prefix
-          */
-          private void writeAttribute(java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-                if (namespace.equals(""))
-              {
-                  xmlWriter.writeAttribute(attName,attValue);
-              }
-              else
-              {
-                  registerPrefix(xmlWriter, namespace);
-                  xmlWriter.writeAttribute(namespace,attName,attValue);
-              }
-          }
-
-
-           /**
-             * Util method to write an attribute without the ns prefix
-             */
-            private void writeQNameAttribute(java.lang.String namespace, java.lang.String attName,
-                                             javax.xml.namespace.QName qname, javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-                java.lang.String attributeNamespace = qname.getNamespaceURI();
-                java.lang.String attributePrefix = xmlWriter.getPrefix(attributeNamespace);
-                if (attributePrefix == null) {
-                    attributePrefix = registerPrefix(xmlWriter, attributeNamespace);
-                }
-                java.lang.String attributeValue;
-                if (attributePrefix.trim().length() > 0) {
-                    attributeValue = attributePrefix + ":" + qname.getLocalPart();
-                } else {
-                    attributeValue = qname.getLocalPart();
-                }
-
-                if (namespace.equals("")) {
-                    xmlWriter.writeAttribute(attName, attributeValue);
-                } else {
-                    registerPrefix(xmlWriter, namespace);
-                    xmlWriter.writeAttribute(namespace, attName, attributeValue);
-                }
-            }
-        /**
-         *  method to handle Qnames
-         */
-
-        private void writeQName(javax.xml.namespace.QName qname,
-                                javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-            java.lang.String namespaceURI = qname.getNamespaceURI();
-            if (namespaceURI != null) {
-                java.lang.String prefix = xmlWriter.getPrefix(namespaceURI);
-                if (prefix == null) {
-                    prefix = generatePrefix(namespaceURI);
-                    xmlWriter.writeNamespace(prefix, namespaceURI);
-                    xmlWriter.setPrefix(prefix,namespaceURI);
-                }
-
-                if (prefix.trim().length() > 0){
-                    xmlWriter.writeCharacters(prefix + ":" + org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                } else {
-                    // i.e this is the default namespace
-                    xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                }
-
-            } else {
-                xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-            }
-        }
-
-        private void writeQNames(javax.xml.namespace.QName[] qnames,
-                                 javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-            if (qnames != null) {
-                // we have to store this data until last moment since it is not possible to write any
-                // namespace data after writing the charactor data
-                java.lang.StringBuffer stringToWrite = new java.lang.StringBuffer();
-                java.lang.String namespaceURI = null;
-                java.lang.String prefix = null;
-
-                for (int i = 0; i < qnames.length; i++) {
-                    if (i > 0) {
-                        stringToWrite.append(" ");
-                    }
-                    namespaceURI = qnames[i].getNamespaceURI();
-                    if (namespaceURI != null) {
-                        prefix = xmlWriter.getPrefix(namespaceURI);
-                        if ((prefix == null) || (prefix.length() == 0)) {
-                            prefix = generatePrefix(namespaceURI);
-                            xmlWriter.writeNamespace(prefix, namespaceURI);
-                            xmlWriter.setPrefix(prefix,namespaceURI);
-                        }
-
-                        if (prefix.trim().length() > 0){
-                            stringToWrite.append(prefix).append(":").append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        } else {
-                            stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        }
-                    } else {
-                        stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                    }
-                }
-                xmlWriter.writeCharacters(stringToWrite.toString());
-            }
-
-        }
-
-
-         /**
-         * Register a namespace prefix
-         */
-         private java.lang.String registerPrefix(javax.xml.stream.XMLStreamWriter xmlWriter, java.lang.String namespace) throws javax.xml.stream.XMLStreamException {
-                java.lang.String prefix = xmlWriter.getPrefix(namespace);
-
-                if (prefix == null) {
-                    prefix = generatePrefix(namespace);
-                    javax.xml.namespace.NamespaceContext nsContext = xmlWriter.getNamespaceContext();
-                    while (true) {
-                        java.lang.String uri = nsContext.getNamespaceURI(prefix);
-                        if (uri == null || uri.length() == 0) {
-                            break;
-                        }
-                        prefix = org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-                    }
-                    xmlWriter.writeNamespace(prefix, namespace);
-                    xmlWriter.setPrefix(prefix, namespace);
-                }
-
-                return prefix;
-            }
-
-
-  
-     /**
-      *  Factory class that keeps the parse method
-      */
-    public static class Factory{
-
-        
-        
-                public static UnsignedShort fromString(java.lang.String value,
-                                                    java.lang.String namespaceURI){
-                    UnsignedShort returnValue = new  UnsignedShort();
-                    
-                            returnValue.setUnsignedShort(
-                                org.apache.axis2.databinding.utils.ConverterUtil.convertToUnsignedShort(value));
-                        
-
-                    return returnValue;
-                }
-
-                public static UnsignedShort fromString(javax.xml.stream.XMLStreamReader xmlStreamReader,
-                                                                    java.lang.String content) {
-                    if (content.indexOf(":") > -1){
-                        java.lang.String prefix = content.substring(0,content.indexOf(":"));
-                        java.lang.String namespaceUri = xmlStreamReader.getNamespaceContext().getNamespaceURI(prefix);
-                        return UnsignedShort.Factory.fromString(content,namespaceUri);
-                    } else {
-                       return UnsignedShort.Factory.fromString(content,"");
-                    }
-                }
-
-            
-
-        /**
-        * static method to create the object
-        * Precondition:  If this object is an element, the current or next start element starts this object and any intervening reader events are ignorable
-        *                If this object is not an element, it is a complex type and the reader is at the event just after the outer start element
-        * Postcondition: If this object is an element, the reader is positioned at its end element
-        *                If this object is a complex type, the reader is positioned at the end element of its outer element
-        */
-        public static UnsignedShort parse(javax.xml.stream.XMLStreamReader reader) throws java.lang.Exception{
-            UnsignedShort object =
-                new UnsignedShort();
-
-            int event;
-            java.lang.String nillableValue = null;
-            java.lang.String prefix ="";
-            java.lang.String namespaceuri ="";
-            try {
-                
-                while (!reader.isStartElement() && !reader.isEndElement())
-                    reader.next();
-
-                
-                if (reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance","type")!=null){
-                  java.lang.String fullTypeName = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance",
-                        "type");
-                  if (fullTypeName!=null){
-                    java.lang.String nsPrefix = null;
-                    if (fullTypeName.indexOf(":") > -1){
-                        nsPrefix = fullTypeName.substring(0,fullTypeName.indexOf(":"));
-                    }
-                    nsPrefix = nsPrefix==null?"":nsPrefix;
-
-                    java.lang.String type = fullTypeName.substring(fullTypeName.indexOf(":")+1);
-                    
-                            if (!"unsignedShort".equals(type)){
-                                //find namespace for the prefix
-                                java.lang.String nsUri = reader.getNamespaceContext().getNamespaceURI(nsPrefix);
-                                return (UnsignedShort)org.apache.axis2.databinding.types.xsd.ExtensionMapper.getTypeObject(
-                                     nsUri,type,reader);
-                              }
-                        
-
-                  }
-                
-
-                }
-
-                
-
-                
-                // Note all attributes that were handled. Used to differ normal attributes
-                // from anyAttributes.
-                java.util.Vector handledAttributes = new java.util.Vector();
-                
-
-                    
-                while(!reader.isEndElement()) {
-                    if (reader.isStartElement()  || reader.hasText()){
-                
-                                    if (reader.isStartElement()  || reader.hasText()){
-                                
-                                    java.lang.String content = reader.getElementText();
-                                    
-                                              object.setUnsignedShort(
-                                                    org.apache.axis2.databinding.utils.ConverterUtil.convertToUnsignedShort(content));
-                                            
-                              }  // End of if for expected property start element
-                                
-                             else{
-                                        // A start element we are not expecting indicates an invalid parameter was passed
-                                        throw new org.apache.axis2.databinding.ADBException("Unexpected subelement " + reader.getLocalName());
-                             }
-                          
-                             } else {
-                                reader.next();
-                             }  
-                           }  // end of while loop
-                        
-
-
-
-            } catch (javax.xml.stream.XMLStreamException e) {
-                throw new java.lang.Exception(e);
-            }
-
-            return object;
-        }
-
-        }//end of factory class
-
-        
-
-        }
-           
-          
\ No newline at end of file
diff --git a/modules/adb/src/org/apache/axis2/databinding/types/xsd/_boolean.java b/modules/adb/src/org/apache/axis2/databinding/types/xsd/_boolean.java
deleted file mode 100644
index 83ac9f4..0000000
--- a/modules/adb/src/org/apache/axis2/databinding/types/xsd/_boolean.java
+++ /dev/null
@@ -1,448 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/**
- * _boolean.java
- *
- * This file was auto-generated from WSDL
- * by the Apache Axis2 version: SNAPSHOT  Built on : Dec 21, 2007 (04:03:30 LKT)
- */
-
-package org.apache.axis2.databinding.types.xsd;
-
-import javax.xml.stream.XMLStreamWriter;
-
-
-/**
- * _boolean bean class
- */
-
-public class _boolean
-        implements org.apache.axis2.databinding.ADBBean {
-    /* This type was generated from the piece of schema that had
-    name = boolean
-    Namespace URI = http://www.w3.org/2001/XMLSchema
-    Namespace Prefix = ns1
-    */
-
-
-    private static java.lang.String generatePrefix(java.lang.String namespace) {
-        if (namespace.equals("http://www.w3.org/2001/XMLSchema")) {
-            return "xsd";
-        }
-        return org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-    }
-
-
-    /**
-     * field for _boolean
-     */
-
-
-    protected boolean local_boolean;
-
-
-    /**
-     * Auto generated getter method
-     *
-     * @return boolean
-     */
-    public boolean get_boolean() {
-        return local_boolean;
-    }
-
-
-    /**
-     * Auto generated setter method
-     *
-     * @param param _boolean
-     */
-    public void set_boolean(boolean param) {
-
-        this.local_boolean = param;
-
-
-    }
-
-
-    public java.lang.String toString() {
-
-        return local_boolean + "";
-
-    }
-
-
-    /**
-     * isReaderMTOMAware
-     *
-     * @return true if the reader supports MTOM
-     */
-    public static boolean isReaderMTOMAware(javax.xml.stream.XMLStreamReader reader) {
-        boolean isReaderMTOMAware = false;
-
-        try {
-            isReaderMTOMAware = java.lang.Boolean.TRUE.equals(reader.getProperty(org.apache.axiom.om.OMConstants.IS_DATA_HANDLERS_AWARE));
-        } catch (java.lang.IllegalArgumentException e) {
-            isReaderMTOMAware = false;
-        }
-        return isReaderMTOMAware;
-    }
-
-
-    /**
-     * @param parentQName
-     * @param factory
-     * @return org.apache.axiom.om.OMElement
-     */
-    public org.apache.axiom.om.OMElement getOMElement(
-            final javax.xml.namespace.QName parentQName,
-            final org.apache.axiom.om.OMFactory factory) throws org.apache.axis2.databinding.ADBException {
-
-
-        org.apache.axiom.om.OMDataSource dataSource =
-                new org.apache.axis2.databinding.ADBDataSource(this, parentQName);
-        return factory.createOMElement(dataSource, parentQName);
-
-    }
-
-    public void serialize(final javax.xml.namespace.QName parentQName,
-                          XMLStreamWriter xmlWriter)
-            throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException {
-        serialize(parentQName, xmlWriter, false);
-    }
-
-    public void serialize(final javax.xml.namespace.QName parentQName,
-                          XMLStreamWriter xmlWriter,
-                          boolean serializeType)
-            throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException {
-
-
-        java.lang.String prefix = null;
-        java.lang.String namespace = null;
-
-
-        prefix = parentQName.getPrefix();
-        namespace = parentQName.getNamespaceURI();
-
-        if ((namespace != null) && (namespace.trim().length() > 0)) {
-            java.lang.String writerPrefix = xmlWriter.getPrefix(namespace);
-            if (writerPrefix != null) {
-                xmlWriter.writeStartElement(namespace, parentQName.getLocalPart());
-            } else {
-                if (prefix == null) {
-                    prefix = generatePrefix(namespace);
-                }
-
-                xmlWriter.writeStartElement(prefix, parentQName.getLocalPart(), namespace);
-                xmlWriter.writeNamespace(prefix, namespace);
-                xmlWriter.setPrefix(prefix, namespace);
-            }
-        } else {
-            xmlWriter.writeStartElement(parentQName.getLocalPart());
-        }
-
-        if (serializeType) {
-
-            java.lang.String namespacePrefix = registerPrefix(xmlWriter, "http://www.w3.org/2001/XMLSchema");
-            if ((namespacePrefix != null) && (namespacePrefix.trim().length() > 0)) {
-                writeAttribute("xsi", "http://www.w3.org/2001/XMLSchema-instance", "type",
-                        namespacePrefix + ":boolean",
-                        xmlWriter);
-            } else {
-                writeAttribute("xsi", "http://www.w3.org/2001/XMLSchema-instance", "type",
-                        "boolean",
-                        xmlWriter);
-            }
-
-
-        }
-
-        if (false) {
-
-            throw new org.apache.axis2.databinding.ADBException("boolean cannot be null!!");
-
-        } else {
-            xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(local_boolean));
-        }
-
-        xmlWriter.writeEndElement();
-
-
-    }
-
-    /**
-     * Util method to write an attribute with the ns prefix
-     */
-    private void writeAttribute(java.lang.String prefix, java.lang.String namespace, java.lang.String attName,
-                                java.lang.String attValue, javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-        if (xmlWriter.getPrefix(namespace) == null) {
-            xmlWriter.writeNamespace(prefix, namespace);
-            xmlWriter.setPrefix(prefix, namespace);
-
-        }
-
-        xmlWriter.writeAttribute(namespace, attName, attValue);
-
-    }
-
-    /**
-     * Util method to write an attribute without the ns prefix
-     */
-    private void writeAttribute(java.lang.String namespace, java.lang.String attName,
-                                java.lang.String attValue, javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-        if (namespace.equals("")) {
-            xmlWriter.writeAttribute(attName, attValue);
-        } else {
-            registerPrefix(xmlWriter, namespace);
-            xmlWriter.writeAttribute(namespace, attName, attValue);
-        }
-    }
-
-
-    /**
-     * Util method to write an attribute without the ns prefix
-     */
-    private void writeQNameAttribute(java.lang.String namespace, java.lang.String attName,
-                                     javax.xml.namespace.QName qname, javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-        java.lang.String attributeNamespace = qname.getNamespaceURI();
-        java.lang.String attributePrefix = xmlWriter.getPrefix(attributeNamespace);
-        if (attributePrefix == null) {
-            attributePrefix = registerPrefix(xmlWriter, attributeNamespace);
-        }
-        java.lang.String attributeValue;
-        if (attributePrefix.trim().length() > 0) {
-            attributeValue = attributePrefix + ":" + qname.getLocalPart();
-        } else {
-            attributeValue = qname.getLocalPart();
-        }
-
-        if (namespace.equals("")) {
-            xmlWriter.writeAttribute(attName, attributeValue);
-        } else {
-            registerPrefix(xmlWriter, namespace);
-            xmlWriter.writeAttribute(namespace, attName, attributeValue);
-        }
-    }
-
-    /**
-     * method to handle Qnames
-     */
-
-    private void writeQName(javax.xml.namespace.QName qname,
-                            javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-        java.lang.String namespaceURI = qname.getNamespaceURI();
-        if (namespaceURI != null) {
-            java.lang.String prefix = xmlWriter.getPrefix(namespaceURI);
-            if (prefix == null) {
-                prefix = generatePrefix(namespaceURI);
-                xmlWriter.writeNamespace(prefix, namespaceURI);
-                xmlWriter.setPrefix(prefix, namespaceURI);
-            }
-
-            if (prefix.trim().length() > 0) {
-                xmlWriter.writeCharacters(prefix + ":" + org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-            } else {
-                // i.e this is the default namespace
-                xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-            }
-
-        } else {
-            xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-        }
-    }
-
-    private void writeQNames(javax.xml.namespace.QName[] qnames,
-                             javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-        if (qnames != null) {
-            // we have to store this data until last moment since it is not possible to write any
-            // namespace data after writing the charactor data
-            java.lang.StringBuffer stringToWrite = new java.lang.StringBuffer();
-            java.lang.String namespaceURI = null;
-            java.lang.String prefix = null;
-
-            for (int i = 0; i < qnames.length; i++) {
-                if (i > 0) {
-                    stringToWrite.append(" ");
-                }
-                namespaceURI = qnames[i].getNamespaceURI();
-                if (namespaceURI != null) {
-                    prefix = xmlWriter.getPrefix(namespaceURI);
-                    if ((prefix == null) || (prefix.length() == 0)) {
-                        prefix = generatePrefix(namespaceURI);
-                        xmlWriter.writeNamespace(prefix, namespaceURI);
-                        xmlWriter.setPrefix(prefix, namespaceURI);
-                    }
-
-                    if (prefix.trim().length() > 0) {
-                        stringToWrite.append(prefix).append(":").append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                    } else {
-                        stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                    }
-                } else {
-                    stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                }
-            }
-            xmlWriter.writeCharacters(stringToWrite.toString());
-        }
-
-    }
-
-
-    /**
-     * Register a namespace prefix
-     */
-    private java.lang.String registerPrefix(javax.xml.stream.XMLStreamWriter xmlWriter, java.lang.String namespace) throws javax.xml.stream.XMLStreamException {
-        java.lang.String prefix = xmlWriter.getPrefix(namespace);
-
-        if (prefix == null) {
-            prefix = generatePrefix(namespace);
-            javax.xml.namespace.NamespaceContext nsContext = xmlWriter.getNamespaceContext();
-            while (true) {
-                java.lang.String uri = nsContext.getNamespaceURI(prefix);
-                if (uri == null || uri.length() == 0) {
-                    break;
-                }
-                prefix = org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-            }
-            xmlWriter.writeNamespace(prefix, namespace);
-            xmlWriter.setPrefix(prefix, namespace);
-        }
-
-        return prefix;
-    }
-
-
-    /**
-     * Factory class that keeps the parse method
-     */
-    public static class Factory {
-
-
-        public static _boolean fromString(java.lang.String value,
-                                          java.lang.String namespaceURI) {
-            _boolean returnValue = new _boolean();
-
-            returnValue.set_boolean(
-                    org.apache.axis2.databinding.utils.ConverterUtil.convertToBoolean(value));
-
-
-            return returnValue;
-        }
-
-        public static _boolean fromString(javax.xml.stream.XMLStreamReader xmlStreamReader,
-                                          java.lang.String content) {
-            if (content.indexOf(":") > -1) {
-                java.lang.String prefix = content.substring(0, content.indexOf(":"));
-                java.lang.String namespaceUri = xmlStreamReader.getNamespaceContext().getNamespaceURI(prefix);
-                return _boolean.Factory.fromString(content, namespaceUri);
-            } else {
-                return _boolean.Factory.fromString(content, "");
-            }
-        }
-
-
-        /**
-         * static method to create the object
-         * Precondition:  If this object is an element, the current or next start element starts this object and any intervening reader events are ignorable
-         * If this object is not an element, it is a complex type and the reader is at the event just after the outer start element
-         * Postcondition: If this object is an element, the reader is positioned at its end element
-         * If this object is a complex type, the reader is positioned at the end element of its outer element
-         */
-        public static _boolean parse(javax.xml.stream.XMLStreamReader reader) throws java.lang.Exception {
-            _boolean object =
-                    new _boolean();
-
-            int event;
-            java.lang.String nillableValue = null;
-            java.lang.String prefix = "";
-            java.lang.String namespaceuri = "";
-            try {
-
-                while (!reader.isStartElement() && !reader.isEndElement())
-                    reader.next();
-
-
-                if (reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance", "type") != null) {
-                    java.lang.String fullTypeName = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance",
-                            "type");
-                    if (fullTypeName != null) {
-                        java.lang.String nsPrefix = null;
-                        if (fullTypeName.indexOf(":") > -1) {
-                            nsPrefix = fullTypeName.substring(0, fullTypeName.indexOf(":"));
-                        }
-                        nsPrefix = nsPrefix == null ? "" : nsPrefix;
-
-                        java.lang.String type = fullTypeName.substring(fullTypeName.indexOf(":") + 1);
-
-                        if (!"boolean".equals(type)) {
-                            //find namespace for the prefix
-                            java.lang.String nsUri = reader.getNamespaceContext().getNamespaceURI(nsPrefix);
-                            return (_boolean) org.apache.axis2.databinding.types.xsd.ExtensionMapper.getTypeObject(
-                                    nsUri, type, reader);
-                        }
-
-
-                    }
-
-
-                }
-
-                // Note all attributes that were handled. Used to differ normal attributes
-                // from anyAttributes.
-                java.util.Vector handledAttributes = new java.util.Vector();
-
-
-                while (!reader.isEndElement()) {
-                    if (reader.isStartElement() || reader.hasText()) {
-
-                        if (reader.isStartElement() || reader.hasText()) {
-
-                            java.lang.String content = reader.getElementText();
-
-                            object.set_boolean(
-                                    org.apache.axis2.databinding.utils.ConverterUtil.convertToBoolean(content));
-
-                        }  // End of if for expected property start element
-
-                        else {
-                            // A start element we are not expecting indicates an invalid parameter was passed
-                            throw new org.apache.axis2.databinding.ADBException("Unexpected subelement " + reader.getLocalName());
-                        }
-
-                    } else {
-                        reader.next();
-                    }
-                }  // end of while loop
-
-
-            } catch (javax.xml.stream.XMLStreamException e) {
-                throw new java.lang.Exception(e);
-            }
-
-            return object;
-        }
-
-    }//end of factory class
-
-
-}
-           
-          
\ No newline at end of file
diff --git a/modules/adb/src/org/apache/axis2/databinding/types/xsd/_byte.java b/modules/adb/src/org/apache/axis2/databinding/types/xsd/_byte.java
deleted file mode 100644
index a4c8102..0000000
--- a/modules/adb/src/org/apache/axis2/databinding/types/xsd/_byte.java
+++ /dev/null
@@ -1,464 +0,0 @@
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/**
- * _byte.java
- *
- * This file was auto-generated from WSDL
- * by the Apache Axis2 version: SNAPSHOT  Built on : Dec 21, 2007 (04:03:30 LKT)
- */
-            
-                package org.apache.axis2.databinding.types.xsd;
-
-import javax.xml.stream.XMLStreamWriter;
-            
-
-            /**
-            *  _byte bean class
-            */
-        
-        public  class _byte
-        implements org.apache.axis2.databinding.ADBBean{
-        /* This type was generated from the piece of schema that had
-                name = byte
-                Namespace URI = http://www.w3.org/2001/XMLSchema
-                Namespace Prefix = ns1
-                */
-            
-
-        private static java.lang.String generatePrefix(java.lang.String namespace) {
-            if(namespace.equals("http://www.w3.org/2001/XMLSchema")){
-                return "xsd";
-            }
-            return org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-        }
-
-        
-
-                        /**
-                        * field for _byte
-                        */
-
-                        
-                                    protected byte local_byte ;
-                                
-
-                           /**
-                           * Auto generated getter method
-                           * @return byte
-                           */
-                           public  byte get_byte(){
-                               return local_byte;
-                           }
-
-                           
-                        
-                            /**
-                               * Auto generated setter method
-                               * @param param _byte
-                               */
-                               public void set_byte(byte param){
-                            
-                                            this.local_byte=param;
-                                    
-
-                               }
-                            
-
-                            public java.lang.String toString(){
-                                
-                                        return local_byte + "";
-                                    
-                            }
-                        
-
-     /**
-     * isReaderMTOMAware
-     * @return true if the reader supports MTOM
-     */
-   public static boolean isReaderMTOMAware(javax.xml.stream.XMLStreamReader reader) {
-        boolean isReaderMTOMAware = false;
-        
-        try{
-          isReaderMTOMAware = java.lang.Boolean.TRUE.equals(reader.getProperty(org.apache.axiom.om.OMConstants.IS_DATA_HANDLERS_AWARE));
-        }catch(java.lang.IllegalArgumentException e){
-          isReaderMTOMAware = false;
-        }
-        return isReaderMTOMAware;
-   }
-     
-     
-        /**
-        *
-        * @param parentQName
-        * @param factory
-        * @return org.apache.axiom.om.OMElement
-        */
-       public org.apache.axiom.om.OMElement getOMElement (
-               final javax.xml.namespace.QName parentQName,
-               final org.apache.axiom.om.OMFactory factory) throws org.apache.axis2.databinding.ADBException{
-
-
-        
-               org.apache.axiom.om.OMDataSource dataSource =
-                       new org.apache.axis2.databinding.ADBDataSource(this,parentQName);
-               return factory.createOMElement(dataSource, parentQName);
-            
-       }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                                       XMLStreamWriter xmlWriter)
-                                throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-                           serialize(parentQName,xmlWriter,false);
-         }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                               XMLStreamWriter xmlWriter,
-                               boolean serializeType)
-            throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-            
-                
-
-
-                java.lang.String prefix = null;
-                java.lang.String namespace = null;
-                
-
-                    prefix = parentQName.getPrefix();
-                    namespace = parentQName.getNamespaceURI();
-
-                    if ((namespace != null) && (namespace.trim().length() > 0)) {
-                        java.lang.String writerPrefix = xmlWriter.getPrefix(namespace);
-                        if (writerPrefix != null) {
-                            xmlWriter.writeStartElement(namespace, parentQName.getLocalPart());
-                        } else {
-                            if (prefix == null) {
-                                prefix = generatePrefix(namespace);
-                            }
-
-                            xmlWriter.writeStartElement(prefix, parentQName.getLocalPart(), namespace);
-                            xmlWriter.writeNamespace(prefix, namespace);
-                            xmlWriter.setPrefix(prefix, namespace);
-                        }
-                    } else {
-                        xmlWriter.writeStartElement(parentQName.getLocalPart());
-                    }
-                
-                  if (serializeType){
-               
-                   java.lang.String namespacePrefix = registerPrefix(xmlWriter,"http://www.w3.org/2001/XMLSchema");
-                   if ((namespacePrefix != null) && (namespacePrefix.trim().length() > 0)){
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           namespacePrefix+":byte",
-                           xmlWriter);
-                   } else {
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           "byte",
-                           xmlWriter);
-                   }
-
-               
-                   }
-               
-                                               if (local_byte==java.lang.Byte.MIN_VALUE) {
-                                           
-                                                         throw new org.apache.axis2.databinding.ADBException("byte cannot be null!!");
-                                                      
-                                               } else {
-                                                    xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(local_byte));
-                                               }
-                                    
-                    xmlWriter.writeEndElement();
-               
-
-        }
-
-         /**
-          * Util method to write an attribute with the ns prefix
-          */
-          private void writeAttribute(java.lang.String prefix,java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-              if (xmlWriter.getPrefix(namespace) == null) {
-                       xmlWriter.writeNamespace(prefix, namespace);
-                       xmlWriter.setPrefix(prefix, namespace);
-
-              }
-
-              xmlWriter.writeAttribute(namespace,attName,attValue);
-
-         }
-
-        /**
-          * Util method to write an attribute without the ns prefix
-          */
-          private void writeAttribute(java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-                if (namespace.equals(""))
-              {
-                  xmlWriter.writeAttribute(attName,attValue);
-              }
-              else
-              {
-                  registerPrefix(xmlWriter, namespace);
-                  xmlWriter.writeAttribute(namespace,attName,attValue);
-              }
-          }
-
-
-           /**
-             * Util method to write an attribute without the ns prefix
-             */
-            private void writeQNameAttribute(java.lang.String namespace, java.lang.String attName,
-                                             javax.xml.namespace.QName qname, javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-                java.lang.String attributeNamespace = qname.getNamespaceURI();
-                java.lang.String attributePrefix = xmlWriter.getPrefix(attributeNamespace);
-                if (attributePrefix == null) {
-                    attributePrefix = registerPrefix(xmlWriter, attributeNamespace);
-                }
-                java.lang.String attributeValue;
-                if (attributePrefix.trim().length() > 0) {
-                    attributeValue = attributePrefix + ":" + qname.getLocalPart();
-                } else {
-                    attributeValue = qname.getLocalPart();
-                }
-
-                if (namespace.equals("")) {
-                    xmlWriter.writeAttribute(attName, attributeValue);
-                } else {
-                    registerPrefix(xmlWriter, namespace);
-                    xmlWriter.writeAttribute(namespace, attName, attributeValue);
-                }
-            }
-        /**
-         *  method to handle Qnames
-         */
-
-        private void writeQName(javax.xml.namespace.QName qname,
-                                javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-            java.lang.String namespaceURI = qname.getNamespaceURI();
-            if (namespaceURI != null) {
-                java.lang.String prefix = xmlWriter.getPrefix(namespaceURI);
-                if (prefix == null) {
-                    prefix = generatePrefix(namespaceURI);
-                    xmlWriter.writeNamespace(prefix, namespaceURI);
-                    xmlWriter.setPrefix(prefix,namespaceURI);
-                }
-
-                if (prefix.trim().length() > 0){
-                    xmlWriter.writeCharacters(prefix + ":" + org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                } else {
-                    // i.e this is the default namespace
-                    xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                }
-
-            } else {
-                xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-            }
-        }
-
-        private void writeQNames(javax.xml.namespace.QName[] qnames,
-                                 javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-            if (qnames != null) {
-                // we have to store this data until last moment since it is not possible to write any
-                // namespace data after writing the charactor data
-                java.lang.StringBuffer stringToWrite = new java.lang.StringBuffer();
-                java.lang.String namespaceURI = null;
-                java.lang.String prefix = null;
-
-                for (int i = 0; i < qnames.length; i++) {
-                    if (i > 0) {
-                        stringToWrite.append(" ");
-                    }
-                    namespaceURI = qnames[i].getNamespaceURI();
-                    if (namespaceURI != null) {
-                        prefix = xmlWriter.getPrefix(namespaceURI);
-                        if ((prefix == null) || (prefix.length() == 0)) {
-                            prefix = generatePrefix(namespaceURI);
-                            xmlWriter.writeNamespace(prefix, namespaceURI);
-                            xmlWriter.setPrefix(prefix,namespaceURI);
-                        }
-
-                        if (prefix.trim().length() > 0){
-                            stringToWrite.append(prefix).append(":").append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        } else {
-                            stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        }
-                    } else {
-                        stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                    }
-                }
-                xmlWriter.writeCharacters(stringToWrite.toString());
-            }
-
-        }
-
-
-         /**
-         * Register a namespace prefix
-         */
-         private java.lang.String registerPrefix(javax.xml.stream.XMLStreamWriter xmlWriter, java.lang.String namespace) throws javax.xml.stream.XMLStreamException {
-                java.lang.String prefix = xmlWriter.getPrefix(namespace);
-
-                if (prefix == null) {
-                    prefix = generatePrefix(namespace);
-                    javax.xml.namespace.NamespaceContext nsContext = xmlWriter.getNamespaceContext();
-                    while (true) {
-                        java.lang.String uri = nsContext.getNamespaceURI(prefix);
-                        if (uri == null || uri.length() == 0) {
-                            break;
-                        }
-                        prefix = org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-                    }
-                    xmlWriter.writeNamespace(prefix, namespace);
-                    xmlWriter.setPrefix(prefix, namespace);
-                }
-
-                return prefix;
-            }
-
-
-  
-     /**
-      *  Factory class that keeps the parse method
-      */
-    public static class Factory{
-
-        
-        
-                public static _byte fromString(java.lang.String value,
-                                                    java.lang.String namespaceURI){
-                    _byte returnValue = new  _byte();
-                    
-                            returnValue.set_byte(
-                                org.apache.axis2.databinding.utils.ConverterUtil.convertToByte(value));
-                        
-
-                    return returnValue;
-                }
-
-                public static _byte fromString(javax.xml.stream.XMLStreamReader xmlStreamReader,
-                                                                    java.lang.String content) {
-                    if (content.indexOf(":") > -1){
-                        java.lang.String prefix = content.substring(0,content.indexOf(":"));
-                        java.lang.String namespaceUri = xmlStreamReader.getNamespaceContext().getNamespaceURI(prefix);
-                        return _byte.Factory.fromString(content,namespaceUri);
-                    } else {
-                       return _byte.Factory.fromString(content,"");
-                    }
-                }
-
-            
-
-        /**
-        * static method to create the object
-        * Precondition:  If this object is an element, the current or next start element starts this object and any intervening reader events are ignorable
-        *                If this object is not an element, it is a complex type and the reader is at the event just after the outer start element
-        * Postcondition: If this object is an element, the reader is positioned at its end element
-        *                If this object is a complex type, the reader is positioned at the end element of its outer element
-        */
-        public static _byte parse(javax.xml.stream.XMLStreamReader reader) throws java.lang.Exception{
-            _byte object =
-                new _byte();
-
-            int event;
-            java.lang.String nillableValue = null;
-            java.lang.String prefix ="";
-            java.lang.String namespaceuri ="";
-            try {
-                
-                while (!reader.isStartElement() && !reader.isEndElement())
-                    reader.next();
-
-                
-                if (reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance","type")!=null){
-                  java.lang.String fullTypeName = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance",
-                        "type");
-                  if (fullTypeName!=null){
-                    java.lang.String nsPrefix = null;
-                    if (fullTypeName.indexOf(":") > -1){
-                        nsPrefix = fullTypeName.substring(0,fullTypeName.indexOf(":"));
-                    }
-                    nsPrefix = nsPrefix==null?"":nsPrefix;
-
-                    java.lang.String type = fullTypeName.substring(fullTypeName.indexOf(":")+1);
-                    
-                            if (!"byte".equals(type)){
-                                //find namespace for the prefix
-                                java.lang.String nsUri = reader.getNamespaceContext().getNamespaceURI(nsPrefix);
-                                return (_byte)org.apache.axis2.databinding.types.xsd.ExtensionMapper.getTypeObject(
-                                     nsUri,type,reader);
-                              }
-                        
-
-                  }
-                
-
-                }
-
-                
-
-                
-                // Note all attributes that were handled. Used to differ normal attributes
-                // from anyAttributes.
-                java.util.Vector handledAttributes = new java.util.Vector();
-                
-
-                    
-                while(!reader.isEndElement()) {
-                    if (reader.isStartElement()  || reader.hasText()){
-                
-                                    if (reader.isStartElement()  || reader.hasText()){
-                                
-                                    java.lang.String content = reader.getElementText();
-                                    
-                                              object.set_byte(
-                                                    org.apache.axis2.databinding.utils.ConverterUtil.convertToByte(content));
-                                            
-                              }  // End of if for expected property start element
-                                
-                             else{
-                                        // A start element we are not expecting indicates an invalid parameter was passed
-                                        throw new org.apache.axis2.databinding.ADBException("Unexpected subelement " + reader.getLocalName());
-                             }
-                          
-                             } else {
-                                reader.next();
-                             }  
-                           }  // end of while loop
-                        
-
-
-
-            } catch (javax.xml.stream.XMLStreamException e) {
-                throw new java.lang.Exception(e);
-            }
-
-            return object;
-        }
-
-        }//end of factory class
-
-        
-
-        }
-           
-          
\ No newline at end of file
diff --git a/modules/adb/src/org/apache/axis2/databinding/types/xsd/_double.java b/modules/adb/src/org/apache/axis2/databinding/types/xsd/_double.java
deleted file mode 100644
index 69edb3b..0000000
--- a/modules/adb/src/org/apache/axis2/databinding/types/xsd/_double.java
+++ /dev/null
@@ -1,464 +0,0 @@
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/**
- * _double.java
- *
- * This file was auto-generated from WSDL
- * by the Apache Axis2 version: SNAPSHOT  Built on : Dec 21, 2007 (04:03:30 LKT)
- */
-            
-                package org.apache.axis2.databinding.types.xsd;
-
-import javax.xml.stream.XMLStreamWriter;
-            
-
-            /**
-            *  _double bean class
-            */
-        
-        public  class _double
-        implements org.apache.axis2.databinding.ADBBean{
-        /* This type was generated from the piece of schema that had
-                name = double
-                Namespace URI = http://www.w3.org/2001/XMLSchema
-                Namespace Prefix = ns1
-                */
-            
-
-        private static java.lang.String generatePrefix(java.lang.String namespace) {
-            if(namespace.equals("http://www.w3.org/2001/XMLSchema")){
-                return "xsd";
-            }
-            return org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-        }
-
-        
-
-                        /**
-                        * field for _double
-                        */
-
-                        
-                                    protected double local_double ;
-                                
-
-                           /**
-                           * Auto generated getter method
-                           * @return double
-                           */
-                           public  double get_double(){
-                               return local_double;
-                           }
-
-                           
-                        
-                            /**
-                               * Auto generated setter method
-                               * @param param _double
-                               */
-                               public void set_double(double param){
-                            
-                                            this.local_double=param;
-                                    
-
-                               }
-                            
-
-                            public java.lang.String toString(){
-                                
-                                        return local_double + "";
-                                    
-                            }
-                        
-
-     /**
-     * isReaderMTOMAware
-     * @return true if the reader supports MTOM
-     */
-   public static boolean isReaderMTOMAware(javax.xml.stream.XMLStreamReader reader) {
-        boolean isReaderMTOMAware = false;
-        
-        try{
-          isReaderMTOMAware = java.lang.Boolean.TRUE.equals(reader.getProperty(org.apache.axiom.om.OMConstants.IS_DATA_HANDLERS_AWARE));
-        }catch(java.lang.IllegalArgumentException e){
-          isReaderMTOMAware = false;
-        }
-        return isReaderMTOMAware;
-   }
-     
-     
-        /**
-        *
-        * @param parentQName
-        * @param factory
-        * @return org.apache.axiom.om.OMElement
-        */
-       public org.apache.axiom.om.OMElement getOMElement (
-               final javax.xml.namespace.QName parentQName,
-               final org.apache.axiom.om.OMFactory factory) throws org.apache.axis2.databinding.ADBException{
-
-
-        
-               org.apache.axiom.om.OMDataSource dataSource =
-                       new org.apache.axis2.databinding.ADBDataSource(this,parentQName);
-               return factory.createOMElement(dataSource,parentQName);
-            
-       }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                                       XMLStreamWriter xmlWriter)
-                                throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-                           serialize(parentQName,xmlWriter,false);
-         }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                               XMLStreamWriter xmlWriter,
-                               boolean serializeType)
-            throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-            
-                
-
-
-                java.lang.String prefix = null;
-                java.lang.String namespace = null;
-                
-
-                    prefix = parentQName.getPrefix();
-                    namespace = parentQName.getNamespaceURI();
-
-                    if ((namespace != null) && (namespace.trim().length() > 0)) {
-                        java.lang.String writerPrefix = xmlWriter.getPrefix(namespace);
-                        if (writerPrefix != null) {
-                            xmlWriter.writeStartElement(namespace, parentQName.getLocalPart());
-                        } else {
-                            if (prefix == null) {
-                                prefix = generatePrefix(namespace);
-                            }
-
-                            xmlWriter.writeStartElement(prefix, parentQName.getLocalPart(), namespace);
-                            xmlWriter.writeNamespace(prefix, namespace);
-                            xmlWriter.setPrefix(prefix, namespace);
-                        }
-                    } else {
-                        xmlWriter.writeStartElement(parentQName.getLocalPart());
-                    }
-                
-                  if (serializeType){
-               
-                   java.lang.String namespacePrefix = registerPrefix(xmlWriter,"http://www.w3.org/2001/XMLSchema");
-                   if ((namespacePrefix != null) && (namespacePrefix.trim().length() > 0)){
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           namespacePrefix+":double",
-                           xmlWriter);
-                   } else {
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           "double",
-                           xmlWriter);
-                   }
-
-               
-                   }
-               
-                                               if (java.lang.Double.isNaN(local_double)) {
-                                           
-                                                         throw new org.apache.axis2.databinding.ADBException("double cannot be null!!");
-                                                      
-                                               } else {
-                                                    xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(local_double));
-                                               }
-                                    
-                    xmlWriter.writeEndElement();
-               
-
-        }
-
-         /**
-          * Util method to write an attribute with the ns prefix
-          */
-          private void writeAttribute(java.lang.String prefix,java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-              if (xmlWriter.getPrefix(namespace) == null) {
-                       xmlWriter.writeNamespace(prefix, namespace);
-                       xmlWriter.setPrefix(prefix, namespace);
-
-              }
-
-              xmlWriter.writeAttribute(namespace,attName,attValue);
-
-         }
-
-        /**
-          * Util method to write an attribute without the ns prefix
-          */
-          private void writeAttribute(java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-                if (namespace.equals(""))
-              {
-                  xmlWriter.writeAttribute(attName,attValue);
-              }
-              else
-              {
-                  registerPrefix(xmlWriter, namespace);
-                  xmlWriter.writeAttribute(namespace,attName,attValue);
-              }
-          }
-
-
-           /**
-             * Util method to write an attribute without the ns prefix
-             */
-            private void writeQNameAttribute(java.lang.String namespace, java.lang.String attName,
-                                             javax.xml.namespace.QName qname, javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-                java.lang.String attributeNamespace = qname.getNamespaceURI();
-                java.lang.String attributePrefix = xmlWriter.getPrefix(attributeNamespace);
-                if (attributePrefix == null) {
-                    attributePrefix = registerPrefix(xmlWriter, attributeNamespace);
-                }
-                java.lang.String attributeValue;
-                if (attributePrefix.trim().length() > 0) {
-                    attributeValue = attributePrefix + ":" + qname.getLocalPart();
-                } else {
-                    attributeValue = qname.getLocalPart();
-                }
-
-                if (namespace.equals("")) {
-                    xmlWriter.writeAttribute(attName, attributeValue);
-                } else {
-                    registerPrefix(xmlWriter, namespace);
-                    xmlWriter.writeAttribute(namespace, attName, attributeValue);
-                }
-            }
-        /**
-         *  method to handle Qnames
-         */
-
-        private void writeQName(javax.xml.namespace.QName qname,
-                                javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-            java.lang.String namespaceURI = qname.getNamespaceURI();
-            if (namespaceURI != null) {
-                java.lang.String prefix = xmlWriter.getPrefix(namespaceURI);
-                if (prefix == null) {
-                    prefix = generatePrefix(namespaceURI);
-                    xmlWriter.writeNamespace(prefix, namespaceURI);
-                    xmlWriter.setPrefix(prefix,namespaceURI);
-                }
-
-                if (prefix.trim().length() > 0){
-                    xmlWriter.writeCharacters(prefix + ":" + org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                } else {
-                    // i.e this is the default namespace
-                    xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                }
-
-            } else {
-                xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-            }
-        }
-
-        private void writeQNames(javax.xml.namespace.QName[] qnames,
-                                 javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-            if (qnames != null) {
-                // we have to store this data until last moment since it is not possible to write any
-                // namespace data after writing the charactor data
-                java.lang.StringBuffer stringToWrite = new java.lang.StringBuffer();
-                java.lang.String namespaceURI = null;
-                java.lang.String prefix = null;
-
-                for (int i = 0; i < qnames.length; i++) {
-                    if (i > 0) {
-                        stringToWrite.append(" ");
-                    }
-                    namespaceURI = qnames[i].getNamespaceURI();
-                    if (namespaceURI != null) {
-                        prefix = xmlWriter.getPrefix(namespaceURI);
-                        if ((prefix == null) || (prefix.length() == 0)) {
-                            prefix = generatePrefix(namespaceURI);
-                            xmlWriter.writeNamespace(prefix, namespaceURI);
-                            xmlWriter.setPrefix(prefix,namespaceURI);
-                        }
-
-                        if (prefix.trim().length() > 0){
-                            stringToWrite.append(prefix).append(":").append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        } else {
-                            stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        }
-                    } else {
-                        stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                    }
-                }
-                xmlWriter.writeCharacters(stringToWrite.toString());
-            }
-
-        }
-
-
-         /**
-         * Register a namespace prefix
-         */
-         private java.lang.String registerPrefix(javax.xml.stream.XMLStreamWriter xmlWriter, java.lang.String namespace) throws javax.xml.stream.XMLStreamException {
-                java.lang.String prefix = xmlWriter.getPrefix(namespace);
-
-                if (prefix == null) {
-                    prefix = generatePrefix(namespace);
-                    javax.xml.namespace.NamespaceContext nsContext = xmlWriter.getNamespaceContext();
-                    while (true) {
-                        java.lang.String uri = nsContext.getNamespaceURI(prefix);
-                        if (uri == null || uri.length() == 0) {
-                            break;
-                        }
-                        prefix = org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-                    }
-                    xmlWriter.writeNamespace(prefix, namespace);
-                    xmlWriter.setPrefix(prefix, namespace);
-                }
-
-                return prefix;
-            }
-
-
-  
-     /**
-      *  Factory class that keeps the parse method
-      */
-    public static class Factory{
-
-        
-        
-                public static _double fromString(java.lang.String value,
-                                                    java.lang.String namespaceURI){
-                    _double returnValue = new  _double();
-                    
-                            returnValue.set_double(
-                                org.apache.axis2.databinding.utils.ConverterUtil.convertToDouble(value));
-                        
-
-                    return returnValue;
-                }
-
-                public static _double fromString(javax.xml.stream.XMLStreamReader xmlStreamReader,
-                                                                    java.lang.String content) {
-                    if (content.indexOf(":") > -1){
-                        java.lang.String prefix = content.substring(0,content.indexOf(":"));
-                        java.lang.String namespaceUri = xmlStreamReader.getNamespaceContext().getNamespaceURI(prefix);
-                        return _double.Factory.fromString(content,namespaceUri);
-                    } else {
-                       return _double.Factory.fromString(content,"");
-                    }
-                }
-
-            
-
-        /**
-        * static method to create the object
-        * Precondition:  If this object is an element, the current or next start element starts this object and any intervening reader events are ignorable
-        *                If this object is not an element, it is a complex type and the reader is at the event just after the outer start element
-        * Postcondition: If this object is an element, the reader is positioned at its end element
-        *                If this object is a complex type, the reader is positioned at the end element of its outer element
-        */
-        public static _double parse(javax.xml.stream.XMLStreamReader reader) throws java.lang.Exception{
-            _double object =
-                new _double();
-
-            int event;
-            java.lang.String nillableValue = null;
-            java.lang.String prefix ="";
-            java.lang.String namespaceuri ="";
-            try {
-                
-                while (!reader.isStartElement() && !reader.isEndElement())
-                    reader.next();
-
-                
-                if (reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance","type")!=null){
-                  java.lang.String fullTypeName = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance",
-                        "type");
-                  if (fullTypeName!=null){
-                    java.lang.String nsPrefix = null;
-                    if (fullTypeName.indexOf(":") > -1){
-                        nsPrefix = fullTypeName.substring(0,fullTypeName.indexOf(":"));
-                    }
-                    nsPrefix = nsPrefix==null?"":nsPrefix;
-
-                    java.lang.String type = fullTypeName.substring(fullTypeName.indexOf(":")+1);
-                    
-                            if (!"double".equals(type)){
-                                //find namespace for the prefix
-                                java.lang.String nsUri = reader.getNamespaceContext().getNamespaceURI(nsPrefix);
-                                return (_double)org.apache.axis2.databinding.types.xsd.ExtensionMapper.getTypeObject(
-                                     nsUri,type,reader);
-                              }
-                        
-
-                  }
-                
-
-                }
-
-                
-
-                
-                // Note all attributes that were handled. Used to differ normal attributes
-                // from anyAttributes.
-                java.util.Vector handledAttributes = new java.util.Vector();
-                
-
-                    
-                while(!reader.isEndElement()) {
-                    if (reader.isStartElement()  || reader.hasText()){
-                
-                                    if (reader.isStartElement()  || reader.hasText()){
-                                
-                                    java.lang.String content = reader.getElementText();
-                                    
-                                              object.set_double(
-                                                    org.apache.axis2.databinding.utils.ConverterUtil.convertToDouble(content));
-                                            
-                              }  // End of if for expected property start element
-                                
-                             else{
-                                        // A start element we are not expecting indicates an invalid parameter was passed
-                                        throw new org.apache.axis2.databinding.ADBException("Unexpected subelement " + reader.getLocalName());
-                             }
-                          
-                             } else {
-                                reader.next();
-                             }  
-                           }  // end of while loop
-                        
-
-
-
-            } catch (javax.xml.stream.XMLStreamException e) {
-                throw new java.lang.Exception(e);
-            }
-
-            return object;
-        }
-
-        }//end of factory class
-
-        
-
-        }
-           
-          
\ No newline at end of file
diff --git a/modules/adb/src/org/apache/axis2/databinding/types/xsd/_float.java b/modules/adb/src/org/apache/axis2/databinding/types/xsd/_float.java
deleted file mode 100644
index cfe125c..0000000
--- a/modules/adb/src/org/apache/axis2/databinding/types/xsd/_float.java
+++ /dev/null
@@ -1,464 +0,0 @@
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/**
- * _float.java
- *
- * This file was auto-generated from WSDL
- * by the Apache Axis2 version: SNAPSHOT  Built on : Dec 21, 2007 (04:03:30 LKT)
- */
-            
-                package org.apache.axis2.databinding.types.xsd;
-
-import javax.xml.stream.XMLStreamWriter;
-            
-
-            /**
-            *  _float bean class
-            */
-        
-        public  class _float
-        implements org.apache.axis2.databinding.ADBBean{
-        /* This type was generated from the piece of schema that had
-                name = float
-                Namespace URI = http://www.w3.org/2001/XMLSchema
-                Namespace Prefix = ns1
-                */
-            
-
-        private static java.lang.String generatePrefix(java.lang.String namespace) {
-            if(namespace.equals("http://www.w3.org/2001/XMLSchema")){
-                return "xsd";
-            }
-            return org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-        }
-
-        
-
-                        /**
-                        * field for _float
-                        */
-
-                        
-                                    protected float local_float ;
-                                
-
-                           /**
-                           * Auto generated getter method
-                           * @return float
-                           */
-                           public  float get_float(){
-                               return local_float;
-                           }
-
-                           
-                        
-                            /**
-                               * Auto generated setter method
-                               * @param param _float
-                               */
-                               public void set_float(float param){
-                            
-                                            this.local_float=param;
-                                    
-
-                               }
-                            
-
-                            public java.lang.String toString(){
-                                
-                                        return local_float + "";
-                                    
-                            }
-                        
-
-     /**
-     * isReaderMTOMAware
-     * @return true if the reader supports MTOM
-     */
-   public static boolean isReaderMTOMAware(javax.xml.stream.XMLStreamReader reader) {
-        boolean isReaderMTOMAware = false;
-        
-        try{
-          isReaderMTOMAware = java.lang.Boolean.TRUE.equals(reader.getProperty(org.apache.axiom.om.OMConstants.IS_DATA_HANDLERS_AWARE));
-        }catch(java.lang.IllegalArgumentException e){
-          isReaderMTOMAware = false;
-        }
-        return isReaderMTOMAware;
-   }
-     
-     
-        /**
-        *
-        * @param parentQName
-        * @param factory
-        * @return org.apache.axiom.om.OMElement
-        */
-       public org.apache.axiom.om.OMElement getOMElement (
-               final javax.xml.namespace.QName parentQName,
-               final org.apache.axiom.om.OMFactory factory) throws org.apache.axis2.databinding.ADBException{
-
-
-        
-               org.apache.axiom.om.OMDataSource dataSource =
-                       new org.apache.axis2.databinding.ADBDataSource(this,parentQName);
-               return factory.createOMElement(dataSource,parentQName);
-            
-       }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                                       XMLStreamWriter xmlWriter)
-                                throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-                           serialize(parentQName,xmlWriter,false);
-         }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                               XMLStreamWriter xmlWriter,
-                               boolean serializeType)
-            throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-            
-                
-
-
-                java.lang.String prefix = null;
-                java.lang.String namespace = null;
-                
-
-                    prefix = parentQName.getPrefix();
-                    namespace = parentQName.getNamespaceURI();
-
-                    if ((namespace != null) && (namespace.trim().length() > 0)) {
-                        java.lang.String writerPrefix = xmlWriter.getPrefix(namespace);
-                        if (writerPrefix != null) {
-                            xmlWriter.writeStartElement(namespace, parentQName.getLocalPart());
-                        } else {
-                            if (prefix == null) {
-                                prefix = generatePrefix(namespace);
-                            }
-
-                            xmlWriter.writeStartElement(prefix, parentQName.getLocalPart(), namespace);
-                            xmlWriter.writeNamespace(prefix, namespace);
-                            xmlWriter.setPrefix(prefix, namespace);
-                        }
-                    } else {
-                        xmlWriter.writeStartElement(parentQName.getLocalPart());
-                    }
-                
-                  if (serializeType){
-               
-                   java.lang.String namespacePrefix = registerPrefix(xmlWriter,"http://www.w3.org/2001/XMLSchema");
-                   if ((namespacePrefix != null) && (namespacePrefix.trim().length() > 0)){
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           namespacePrefix+":float",
-                           xmlWriter);
-                   } else {
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           "float",
-                           xmlWriter);
-                   }
-
-               
-                   }
-               
-                                               if (java.lang.Float.isNaN(local_float)) {
-                                           
-                                                         throw new org.apache.axis2.databinding.ADBException("float cannot be null!!");
-                                                      
-                                               } else {
-                                                    xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(local_float));
-                                               }
-                                    
-                    xmlWriter.writeEndElement();
-               
-
-        }
-
-         /**
-          * Util method to write an attribute with the ns prefix
-          */
-          private void writeAttribute(java.lang.String prefix,java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-              if (xmlWriter.getPrefix(namespace) == null) {
-                       xmlWriter.writeNamespace(prefix, namespace);
-                       xmlWriter.setPrefix(prefix, namespace);
-
-              }
-
-              xmlWriter.writeAttribute(namespace,attName,attValue);
-
-         }
-
-        /**
-          * Util method to write an attribute without the ns prefix
-          */
-          private void writeAttribute(java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-                if (namespace.equals(""))
-              {
-                  xmlWriter.writeAttribute(attName,attValue);
-              }
-              else
-              {
-                  registerPrefix(xmlWriter, namespace);
-                  xmlWriter.writeAttribute(namespace,attName,attValue);
-              }
-          }
-
-
-           /**
-             * Util method to write an attribute without the ns prefix
-             */
-            private void writeQNameAttribute(java.lang.String namespace, java.lang.String attName,
-                                             javax.xml.namespace.QName qname, javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-                java.lang.String attributeNamespace = qname.getNamespaceURI();
-                java.lang.String attributePrefix = xmlWriter.getPrefix(attributeNamespace);
-                if (attributePrefix == null) {
-                    attributePrefix = registerPrefix(xmlWriter, attributeNamespace);
-                }
-                java.lang.String attributeValue;
-                if (attributePrefix.trim().length() > 0) {
-                    attributeValue = attributePrefix + ":" + qname.getLocalPart();
-                } else {
-                    attributeValue = qname.getLocalPart();
-                }
-
-                if (namespace.equals("")) {
-                    xmlWriter.writeAttribute(attName, attributeValue);
-                } else {
-                    registerPrefix(xmlWriter, namespace);
-                    xmlWriter.writeAttribute(namespace, attName, attributeValue);
-                }
-            }
-        /**
-         *  method to handle Qnames
-         */
-
-        private void writeQName(javax.xml.namespace.QName qname,
-                                javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-            java.lang.String namespaceURI = qname.getNamespaceURI();
-            if (namespaceURI != null) {
-                java.lang.String prefix = xmlWriter.getPrefix(namespaceURI);
-                if (prefix == null) {
-                    prefix = generatePrefix(namespaceURI);
-                    xmlWriter.writeNamespace(prefix, namespaceURI);
-                    xmlWriter.setPrefix(prefix,namespaceURI);
-                }
-
-                if (prefix.trim().length() > 0){
-                    xmlWriter.writeCharacters(prefix + ":" + org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                } else {
-                    // i.e this is the default namespace
-                    xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                }
-
-            } else {
-                xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-            }
-        }
-
-        private void writeQNames(javax.xml.namespace.QName[] qnames,
-                                 javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-            if (qnames != null) {
-                // we have to store this data until last moment since it is not possible to write any
-                // namespace data after writing the charactor data
-                java.lang.StringBuffer stringToWrite = new java.lang.StringBuffer();
-                java.lang.String namespaceURI = null;
-                java.lang.String prefix = null;
-
-                for (int i = 0; i < qnames.length; i++) {
-                    if (i > 0) {
-                        stringToWrite.append(" ");
-                    }
-                    namespaceURI = qnames[i].getNamespaceURI();
-                    if (namespaceURI != null) {
-                        prefix = xmlWriter.getPrefix(namespaceURI);
-                        if ((prefix == null) || (prefix.length() == 0)) {
-                            prefix = generatePrefix(namespaceURI);
-                            xmlWriter.writeNamespace(prefix, namespaceURI);
-                            xmlWriter.setPrefix(prefix,namespaceURI);
-                        }
-
-                        if (prefix.trim().length() > 0){
-                            stringToWrite.append(prefix).append(":").append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        } else {
-                            stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        }
-                    } else {
-                        stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                    }
-                }
-                xmlWriter.writeCharacters(stringToWrite.toString());
-            }
-
-        }
-
-
-         /**
-         * Register a namespace prefix
-         */
-         private java.lang.String registerPrefix(javax.xml.stream.XMLStreamWriter xmlWriter, java.lang.String namespace) throws javax.xml.stream.XMLStreamException {
-                java.lang.String prefix = xmlWriter.getPrefix(namespace);
-
-                if (prefix == null) {
-                    prefix = generatePrefix(namespace);
-                    javax.xml.namespace.NamespaceContext nsContext = xmlWriter.getNamespaceContext();
-                    while (true) {
-                        java.lang.String uri = nsContext.getNamespaceURI(prefix);
-                        if (uri == null || uri.length() == 0) {
-                            break;
-                        }
-                        prefix = org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-                    }
-                    xmlWriter.writeNamespace(prefix, namespace);
-                    xmlWriter.setPrefix(prefix, namespace);
-                }
-
-                return prefix;
-            }
-
-
-  
-     /**
-      *  Factory class that keeps the parse method
-      */
-    public static class Factory{
-
-        
-        
-                public static _float fromString(java.lang.String value,
-                                                    java.lang.String namespaceURI){
-                    _float returnValue = new  _float();
-                    
-                            returnValue.set_float(
-                                org.apache.axis2.databinding.utils.ConverterUtil.convertToFloat(value));
-                        
-
-                    return returnValue;
-                }
-
-                public static _float fromString(javax.xml.stream.XMLStreamReader xmlStreamReader,
-                                                                    java.lang.String content) {
-                    if (content.indexOf(":") > -1){
-                        java.lang.String prefix = content.substring(0,content.indexOf(":"));
-                        java.lang.String namespaceUri = xmlStreamReader.getNamespaceContext().getNamespaceURI(prefix);
-                        return _float.Factory.fromString(content,namespaceUri);
-                    } else {
-                       return _float.Factory.fromString(content,"");
-                    }
-                }
-
-            
-
-        /**
-        * static method to create the object
-        * Precondition:  If this object is an element, the current or next start element starts this object and any intervening reader events are ignorable
-        *                If this object is not an element, it is a complex type and the reader is at the event just after the outer start element
-        * Postcondition: If this object is an element, the reader is positioned at its end element
-        *                If this object is a complex type, the reader is positioned at the end element of its outer element
-        */
-        public static _float parse(javax.xml.stream.XMLStreamReader reader) throws java.lang.Exception{
-            _float object =
-                new _float();
-
-            int event;
-            java.lang.String nillableValue = null;
-            java.lang.String prefix ="";
-            java.lang.String namespaceuri ="";
-            try {
-                
-                while (!reader.isStartElement() && !reader.isEndElement())
-                    reader.next();
-
-                
-                if (reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance","type")!=null){
-                  java.lang.String fullTypeName = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance",
-                        "type");
-                  if (fullTypeName!=null){
-                    java.lang.String nsPrefix = null;
-                    if (fullTypeName.indexOf(":") > -1){
-                        nsPrefix = fullTypeName.substring(0,fullTypeName.indexOf(":"));
-                    }
-                    nsPrefix = nsPrefix==null?"":nsPrefix;
-
-                    java.lang.String type = fullTypeName.substring(fullTypeName.indexOf(":")+1);
-                    
-                            if (!"float".equals(type)){
-                                //find namespace for the prefix
-                                java.lang.String nsUri = reader.getNamespaceContext().getNamespaceURI(nsPrefix);
-                                return (_float)org.apache.axis2.databinding.types.xsd.ExtensionMapper.getTypeObject(
-                                     nsUri,type,reader);
-                              }
-                        
-
-                  }
-                
-
-                }
-
-                
-
-                
-                // Note all attributes that were handled. Used to differ normal attributes
-                // from anyAttributes.
-                java.util.Vector handledAttributes = new java.util.Vector();
-                
-
-                    
-                while(!reader.isEndElement()) {
-                    if (reader.isStartElement()  || reader.hasText()){
-                
-                                    if (reader.isStartElement()  || reader.hasText()){
-                                
-                                    java.lang.String content = reader.getElementText();
-                                    
-                                              object.set_float(
-                                                    org.apache.axis2.databinding.utils.ConverterUtil.convertToFloat(content));
-                                            
-                              }  // End of if for expected property start element
-                                
-                             else{
-                                        // A start element we are not expecting indicates an invalid parameter was passed
-                                        throw new org.apache.axis2.databinding.ADBException("Unexpected subelement " + reader.getLocalName());
-                             }
-                          
-                             } else {
-                                reader.next();
-                             }  
-                           }  // end of while loop
-                        
-
-
-
-            } catch (javax.xml.stream.XMLStreamException e) {
-                throw new java.lang.Exception(e);
-            }
-
-            return object;
-        }
-
-        }//end of factory class
-
-        
-
-        }
-           
-          
\ No newline at end of file
diff --git a/modules/adb/src/org/apache/axis2/databinding/types/xsd/_int.java b/modules/adb/src/org/apache/axis2/databinding/types/xsd/_int.java
deleted file mode 100644
index 4d0e12e..0000000
--- a/modules/adb/src/org/apache/axis2/databinding/types/xsd/_int.java
+++ /dev/null
@@ -1,464 +0,0 @@
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/**
- * _int.java
- *
- * This file was auto-generated from WSDL
- * by the Apache Axis2 version: SNAPSHOT  Built on : Dec 21, 2007 (04:03:30 LKT)
- */
-            
-                package org.apache.axis2.databinding.types.xsd;
-
-import javax.xml.stream.XMLStreamWriter;
-            
-
-            /**
-            *  _int bean class
-            */
-        
-        public  class _int
-        implements org.apache.axis2.databinding.ADBBean{
-        /* This type was generated from the piece of schema that had
-                name = int
-                Namespace URI = http://www.w3.org/2001/XMLSchema
-                Namespace Prefix = ns1
-                */
-            
-
-        private static java.lang.String generatePrefix(java.lang.String namespace) {
-            if(namespace.equals("http://www.w3.org/2001/XMLSchema")){
-                return "xsd";
-            }
-            return org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-        }
-
-        
-
-                        /**
-                        * field for _int
-                        */
-
-                        
-                                    protected int local_int ;
-                                
-
-                           /**
-                           * Auto generated getter method
-                           * @return int
-                           */
-                           public  int get_int(){
-                               return local_int;
-                           }
-
-                           
-                        
-                            /**
-                               * Auto generated setter method
-                               * @param param _int
-                               */
-                               public void set_int(int param){
-                            
-                                            this.local_int=param;
-                                    
-
-                               }
-                            
-
-                            public java.lang.String toString(){
-                                
-                                        return local_int + "";
-                                    
-                            }
-                        
-
-     /**
-     * isReaderMTOMAware
-     * @return true if the reader supports MTOM
-     */
-   public static boolean isReaderMTOMAware(javax.xml.stream.XMLStreamReader reader) {
-        boolean isReaderMTOMAware = false;
-        
-        try{
-          isReaderMTOMAware = java.lang.Boolean.TRUE.equals(reader.getProperty(org.apache.axiom.om.OMConstants.IS_DATA_HANDLERS_AWARE));
-        }catch(java.lang.IllegalArgumentException e){
-          isReaderMTOMAware = false;
-        }
-        return isReaderMTOMAware;
-   }
-     
-     
-        /**
-        *
-        * @param parentQName
-        * @param factory
-        * @return org.apache.axiom.om.OMElement
-        */
-       public org.apache.axiom.om.OMElement getOMElement (
-               final javax.xml.namespace.QName parentQName,
-               final org.apache.axiom.om.OMFactory factory) throws org.apache.axis2.databinding.ADBException{
-
-
-        
-               org.apache.axiom.om.OMDataSource dataSource =
-                       new org.apache.axis2.databinding.ADBDataSource(this,parentQName);
-               return factory.createOMElement(dataSource,parentQName);
-            
-       }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                                       XMLStreamWriter xmlWriter)
-                                throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-                           serialize(parentQName,xmlWriter,false);
-         }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                               XMLStreamWriter xmlWriter,
-                               boolean serializeType)
-            throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-            
-                
-
-
-                java.lang.String prefix = null;
-                java.lang.String namespace = null;
-                
-
-                    prefix = parentQName.getPrefix();
-                    namespace = parentQName.getNamespaceURI();
-
-                    if ((namespace != null) && (namespace.trim().length() > 0)) {
-                        java.lang.String writerPrefix = xmlWriter.getPrefix(namespace);
-                        if (writerPrefix != null) {
-                            xmlWriter.writeStartElement(namespace, parentQName.getLocalPart());
-                        } else {
-                            if (prefix == null) {
-                                prefix = generatePrefix(namespace);
-                            }
-
-                            xmlWriter.writeStartElement(prefix, parentQName.getLocalPart(), namespace);
-                            xmlWriter.writeNamespace(prefix, namespace);
-                            xmlWriter.setPrefix(prefix, namespace);
-                        }
-                    } else {
-                        xmlWriter.writeStartElement(parentQName.getLocalPart());
-                    }
-                
-                  if (serializeType){
-               
-                   java.lang.String namespacePrefix = registerPrefix(xmlWriter,"http://www.w3.org/2001/XMLSchema");
-                   if ((namespacePrefix != null) && (namespacePrefix.trim().length() > 0)){
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           namespacePrefix+":int",
-                           xmlWriter);
-                   } else {
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           "int",
-                           xmlWriter);
-                   }
-
-               
-                   }
-               
-                                               if (local_int==java.lang.Integer.MIN_VALUE) {
-                                           
-                                                         throw new org.apache.axis2.databinding.ADBException("int cannot be null!!");
-                                                      
-                                               } else {
-                                                    xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(local_int));
-                                               }
-                                    
-                    xmlWriter.writeEndElement();
-               
-
-        }
-
-         /**
-          * Util method to write an attribute with the ns prefix
-          */
-          private void writeAttribute(java.lang.String prefix,java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-              if (xmlWriter.getPrefix(namespace) == null) {
-                       xmlWriter.writeNamespace(prefix, namespace);
-                       xmlWriter.setPrefix(prefix, namespace);
-
-              }
-
-              xmlWriter.writeAttribute(namespace,attName,attValue);
-
-         }
-
-        /**
-          * Util method to write an attribute without the ns prefix
-          */
-          private void writeAttribute(java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-                if (namespace.equals(""))
-              {
-                  xmlWriter.writeAttribute(attName,attValue);
-              }
-              else
-              {
-                  registerPrefix(xmlWriter, namespace);
-                  xmlWriter.writeAttribute(namespace,attName,attValue);
-              }
-          }
-
-
-           /**
-             * Util method to write an attribute without the ns prefix
-             */
-            private void writeQNameAttribute(java.lang.String namespace, java.lang.String attName,
-                                             javax.xml.namespace.QName qname, javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-                java.lang.String attributeNamespace = qname.getNamespaceURI();
-                java.lang.String attributePrefix = xmlWriter.getPrefix(attributeNamespace);
-                if (attributePrefix == null) {
-                    attributePrefix = registerPrefix(xmlWriter, attributeNamespace);
-                }
-                java.lang.String attributeValue;
-                if (attributePrefix.trim().length() > 0) {
-                    attributeValue = attributePrefix + ":" + qname.getLocalPart();
-                } else {
-                    attributeValue = qname.getLocalPart();
-                }
-
-                if (namespace.equals("")) {
-                    xmlWriter.writeAttribute(attName, attributeValue);
-                } else {
-                    registerPrefix(xmlWriter, namespace);
-                    xmlWriter.writeAttribute(namespace, attName, attributeValue);
-                }
-            }
-        /**
-         *  method to handle Qnames
-         */
-
-        private void writeQName(javax.xml.namespace.QName qname,
-                                javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-            java.lang.String namespaceURI = qname.getNamespaceURI();
-            if (namespaceURI != null) {
-                java.lang.String prefix = xmlWriter.getPrefix(namespaceURI);
-                if (prefix == null) {
-                    prefix = generatePrefix(namespaceURI);
-                    xmlWriter.writeNamespace(prefix, namespaceURI);
-                    xmlWriter.setPrefix(prefix,namespaceURI);
-                }
-
-                if (prefix.trim().length() > 0){
-                    xmlWriter.writeCharacters(prefix + ":" + org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                } else {
-                    // i.e this is the default namespace
-                    xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                }
-
-            } else {
-                xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-            }
-        }
-
-        private void writeQNames(javax.xml.namespace.QName[] qnames,
-                                 javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-            if (qnames != null) {
-                // we have to store this data until last moment since it is not possible to write any
-                // namespace data after writing the charactor data
-                java.lang.StringBuffer stringToWrite = new java.lang.StringBuffer();
-                java.lang.String namespaceURI = null;
-                java.lang.String prefix = null;
-
-                for (int i = 0; i < qnames.length; i++) {
-                    if (i > 0) {
-                        stringToWrite.append(" ");
-                    }
-                    namespaceURI = qnames[i].getNamespaceURI();
-                    if (namespaceURI != null) {
-                        prefix = xmlWriter.getPrefix(namespaceURI);
-                        if ((prefix == null) || (prefix.length() == 0)) {
-                            prefix = generatePrefix(namespaceURI);
-                            xmlWriter.writeNamespace(prefix, namespaceURI);
-                            xmlWriter.setPrefix(prefix,namespaceURI);
-                        }
-
-                        if (prefix.trim().length() > 0){
-                            stringToWrite.append(prefix).append(":").append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        } else {
-                            stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        }
-                    } else {
-                        stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                    }
-                }
-                xmlWriter.writeCharacters(stringToWrite.toString());
-            }
-
-        }
-
-
-         /**
-         * Register a namespace prefix
-         */
-         private java.lang.String registerPrefix(javax.xml.stream.XMLStreamWriter xmlWriter, java.lang.String namespace) throws javax.xml.stream.XMLStreamException {
-                java.lang.String prefix = xmlWriter.getPrefix(namespace);
-
-                if (prefix == null) {
-                    prefix = generatePrefix(namespace);
-                    javax.xml.namespace.NamespaceContext nsContext = xmlWriter.getNamespaceContext();
-                    while (true) {
-                        java.lang.String uri = nsContext.getNamespaceURI(prefix);
-                        if (uri == null || uri.length() == 0) {
-                            break;
-                        }
-                        prefix = org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-                    }
-                    xmlWriter.writeNamespace(prefix, namespace);
-                    xmlWriter.setPrefix(prefix, namespace);
-                }
-
-                return prefix;
-            }
-
-
-  
-     /**
-      *  Factory class that keeps the parse method
-      */
-    public static class Factory{
-
-        
-        
-                public static _int fromString(java.lang.String value,
-                                                    java.lang.String namespaceURI){
-                    _int returnValue = new  _int();
-                    
-                            returnValue.set_int(
-                                org.apache.axis2.databinding.utils.ConverterUtil.convertToInt(value));
-                        
-
-                    return returnValue;
-                }
-
-                public static _int fromString(javax.xml.stream.XMLStreamReader xmlStreamReader,
-                                                                    java.lang.String content) {
-                    if (content.indexOf(":") > -1){
-                        java.lang.String prefix = content.substring(0,content.indexOf(":"));
-                        java.lang.String namespaceUri = xmlStreamReader.getNamespaceContext().getNamespaceURI(prefix);
-                        return _int.Factory.fromString(content,namespaceUri);
-                    } else {
-                       return _int.Factory.fromString(content,"");
-                    }
-                }
-
-            
-
-        /**
-        * static method to create the object
-        * Precondition:  If this object is an element, the current or next start element starts this object and any intervening reader events are ignorable
-        *                If this object is not an element, it is a complex type and the reader is at the event just after the outer start element
-        * Postcondition: If this object is an element, the reader is positioned at its end element
-        *                If this object is a complex type, the reader is positioned at the end element of its outer element
-        */
-        public static _int parse(javax.xml.stream.XMLStreamReader reader) throws java.lang.Exception{
-            _int object =
-                new _int();
-
-            int event;
-            java.lang.String nillableValue = null;
-            java.lang.String prefix ="";
-            java.lang.String namespaceuri ="";
-            try {
-                
-                while (!reader.isStartElement() && !reader.isEndElement())
-                    reader.next();
-
-                
-                if (reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance","type")!=null){
-                  java.lang.String fullTypeName = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance",
-                        "type");
-                  if (fullTypeName!=null){
-                    java.lang.String nsPrefix = null;
-                    if (fullTypeName.indexOf(":") > -1){
-                        nsPrefix = fullTypeName.substring(0,fullTypeName.indexOf(":"));
-                    }
-                    nsPrefix = nsPrefix==null?"":nsPrefix;
-
-                    java.lang.String type = fullTypeName.substring(fullTypeName.indexOf(":")+1);
-                    
-                            if (!"int".equals(type)){
-                                //find namespace for the prefix
-                                java.lang.String nsUri = reader.getNamespaceContext().getNamespaceURI(nsPrefix);
-                                return (_int)org.apache.axis2.databinding.types.xsd.ExtensionMapper.getTypeObject(
-                                     nsUri,type,reader);
-                              }
-                        
-
-                  }
-                
-
-                }
-
-                
-
-                
-                // Note all attributes that were handled. Used to differ normal attributes
-                // from anyAttributes.
-                java.util.Vector handledAttributes = new java.util.Vector();
-                
-
-                    
-                while(!reader.isEndElement()) {
-                    if (reader.isStartElement()  || reader.hasText()){
-                
-                                    if (reader.isStartElement()  || reader.hasText()){
-                                
-                                    java.lang.String content = reader.getElementText();
-                                    
-                                              object.set_int(
-                                                    org.apache.axis2.databinding.utils.ConverterUtil.convertToInt(content));
-                                            
-                              }  // End of if for expected property start element
-                                
-                             else{
-                                        // A start element we are not expecting indicates an invalid parameter was passed
-                                        throw new org.apache.axis2.databinding.ADBException("Unexpected subelement " + reader.getLocalName());
-                             }
-                          
-                             } else {
-                                reader.next();
-                             }  
-                           }  // end of while loop
-                        
-
-
-
-            } catch (javax.xml.stream.XMLStreamException e) {
-                throw new java.lang.Exception(e);
-            }
-
-            return object;
-        }
-
-        }//end of factory class
-
-        
-
-        }
-           
-          
\ No newline at end of file
diff --git a/modules/adb/src/org/apache/axis2/databinding/types/xsd/_long.java b/modules/adb/src/org/apache/axis2/databinding/types/xsd/_long.java
deleted file mode 100644
index 6665f13..0000000
--- a/modules/adb/src/org/apache/axis2/databinding/types/xsd/_long.java
+++ /dev/null
@@ -1,464 +0,0 @@
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/**
- * _long.java
- *
- * This file was auto-generated from WSDL
- * by the Apache Axis2 version: SNAPSHOT  Built on : Dec 21, 2007 (04:03:30 LKT)
- */
-            
-                package org.apache.axis2.databinding.types.xsd;
-
-import javax.xml.stream.XMLStreamWriter;
-            
-
-            /**
-            *  _long bean class
-            */
-        
-        public  class _long
-        implements org.apache.axis2.databinding.ADBBean{
-        /* This type was generated from the piece of schema that had
-                name = long
-                Namespace URI = http://www.w3.org/2001/XMLSchema
-                Namespace Prefix = ns1
-                */
-            
-
-        private static java.lang.String generatePrefix(java.lang.String namespace) {
-            if(namespace.equals("http://www.w3.org/2001/XMLSchema")){
-                return "xsd";
-            }
-            return org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-        }
-
-        
-
-                        /**
-                        * field for _long
-                        */
-
-                        
-                                    protected long local_long ;
-                                
-
-                           /**
-                           * Auto generated getter method
-                           * @return long
-                           */
-                           public  long get_long(){
-                               return local_long;
-                           }
-
-                           
-                        
-                            /**
-                               * Auto generated setter method
-                               * @param param _long
-                               */
-                               public void set_long(long param){
-                            
-                                            this.local_long=param;
-                                    
-
-                               }
-                            
-
-                            public java.lang.String toString(){
-                                
-                                        return local_long + "";
-                                    
-                            }
-                        
-
-     /**
-     * isReaderMTOMAware
-     * @return true if the reader supports MTOM
-     */
-   public static boolean isReaderMTOMAware(javax.xml.stream.XMLStreamReader reader) {
-        boolean isReaderMTOMAware = false;
-        
-        try{
-          isReaderMTOMAware = java.lang.Boolean.TRUE.equals(reader.getProperty(org.apache.axiom.om.OMConstants.IS_DATA_HANDLERS_AWARE));
-        }catch(java.lang.IllegalArgumentException e){
-          isReaderMTOMAware = false;
-        }
-        return isReaderMTOMAware;
-   }
-     
-     
-        /**
-        *
-        * @param parentQName
-        * @param factory
-        * @return org.apache.axiom.om.OMElement
-        */
-       public org.apache.axiom.om.OMElement getOMElement (
-               final javax.xml.namespace.QName parentQName,
-               final org.apache.axiom.om.OMFactory factory) throws org.apache.axis2.databinding.ADBException{
-
-
-        
-               org.apache.axiom.om.OMDataSource dataSource =
-                       new org.apache.axis2.databinding.ADBDataSource(this,parentQName);
-               return factory.createOMElement(dataSource,parentQName);
-            
-       }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                                       XMLStreamWriter xmlWriter)
-                                throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-                           serialize(parentQName,xmlWriter,false);
-         }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                               XMLStreamWriter xmlWriter,
-                               boolean serializeType)
-            throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-            
-                
-
-
-                java.lang.String prefix = null;
-                java.lang.String namespace = null;
-                
-
-                    prefix = parentQName.getPrefix();
-                    namespace = parentQName.getNamespaceURI();
-
-                    if ((namespace != null) && (namespace.trim().length() > 0)) {
-                        java.lang.String writerPrefix = xmlWriter.getPrefix(namespace);
-                        if (writerPrefix != null) {
-                            xmlWriter.writeStartElement(namespace, parentQName.getLocalPart());
-                        } else {
-                            if (prefix == null) {
-                                prefix = generatePrefix(namespace);
-                            }
-
-                            xmlWriter.writeStartElement(prefix, parentQName.getLocalPart(), namespace);
-                            xmlWriter.writeNamespace(prefix, namespace);
-                            xmlWriter.setPrefix(prefix, namespace);
-                        }
-                    } else {
-                        xmlWriter.writeStartElement(parentQName.getLocalPart());
-                    }
-                
-                  if (serializeType){
-               
-                   java.lang.String namespacePrefix = registerPrefix(xmlWriter,"http://www.w3.org/2001/XMLSchema");
-                   if ((namespacePrefix != null) && (namespacePrefix.trim().length() > 0)){
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           namespacePrefix+":long",
-                           xmlWriter);
-                   } else {
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           "long",
-                           xmlWriter);
-                   }
-
-               
-                   }
-               
-                                               if (local_long==java.lang.Long.MIN_VALUE) {
-                                           
-                                                         throw new org.apache.axis2.databinding.ADBException("long cannot be null!!");
-                                                      
-                                               } else {
-                                                    xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(local_long));
-                                               }
-                                    
-                    xmlWriter.writeEndElement();
-               
-
-        }
-
-         /**
-          * Util method to write an attribute with the ns prefix
-          */
-          private void writeAttribute(java.lang.String prefix,java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-              if (xmlWriter.getPrefix(namespace) == null) {
-                       xmlWriter.writeNamespace(prefix, namespace);
-                       xmlWriter.setPrefix(prefix, namespace);
-
-              }
-
-              xmlWriter.writeAttribute(namespace,attName,attValue);
-
-         }
-
-        /**
-          * Util method to write an attribute without the ns prefix
-          */
-          private void writeAttribute(java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-                if (namespace.equals(""))
-              {
-                  xmlWriter.writeAttribute(attName,attValue);
-              }
-              else
-              {
-                  registerPrefix(xmlWriter, namespace);
-                  xmlWriter.writeAttribute(namespace,attName,attValue);
-              }
-          }
-
-
-           /**
-             * Util method to write an attribute without the ns prefix
-             */
-            private void writeQNameAttribute(java.lang.String namespace, java.lang.String attName,
-                                             javax.xml.namespace.QName qname, javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-                java.lang.String attributeNamespace = qname.getNamespaceURI();
-                java.lang.String attributePrefix = xmlWriter.getPrefix(attributeNamespace);
-                if (attributePrefix == null) {
-                    attributePrefix = registerPrefix(xmlWriter, attributeNamespace);
-                }
-                java.lang.String attributeValue;
-                if (attributePrefix.trim().length() > 0) {
-                    attributeValue = attributePrefix + ":" + qname.getLocalPart();
-                } else {
-                    attributeValue = qname.getLocalPart();
-                }
-
-                if (namespace.equals("")) {
-                    xmlWriter.writeAttribute(attName, attributeValue);
-                } else {
-                    registerPrefix(xmlWriter, namespace);
-                    xmlWriter.writeAttribute(namespace, attName, attributeValue);
-                }
-            }
-        /**
-         *  method to handle Qnames
-         */
-
-        private void writeQName(javax.xml.namespace.QName qname,
-                                javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-            java.lang.String namespaceURI = qname.getNamespaceURI();
-            if (namespaceURI != null) {
-                java.lang.String prefix = xmlWriter.getPrefix(namespaceURI);
-                if (prefix == null) {
-                    prefix = generatePrefix(namespaceURI);
-                    xmlWriter.writeNamespace(prefix, namespaceURI);
-                    xmlWriter.setPrefix(prefix,namespaceURI);
-                }
-
-                if (prefix.trim().length() > 0){
-                    xmlWriter.writeCharacters(prefix + ":" + org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                } else {
-                    // i.e this is the default namespace
-                    xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                }
-
-            } else {
-                xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-            }
-        }
-
-        private void writeQNames(javax.xml.namespace.QName[] qnames,
-                                 javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-            if (qnames != null) {
-                // we have to store this data until last moment since it is not possible to write any
-                // namespace data after writing the charactor data
-                java.lang.StringBuffer stringToWrite = new java.lang.StringBuffer();
-                java.lang.String namespaceURI = null;
-                java.lang.String prefix = null;
-
-                for (int i = 0; i < qnames.length; i++) {
-                    if (i > 0) {
-                        stringToWrite.append(" ");
-                    }
-                    namespaceURI = qnames[i].getNamespaceURI();
-                    if (namespaceURI != null) {
-                        prefix = xmlWriter.getPrefix(namespaceURI);
-                        if ((prefix == null) || (prefix.length() == 0)) {
-                            prefix = generatePrefix(namespaceURI);
-                            xmlWriter.writeNamespace(prefix, namespaceURI);
-                            xmlWriter.setPrefix(prefix,namespaceURI);
-                        }
-
-                        if (prefix.trim().length() > 0){
-                            stringToWrite.append(prefix).append(":").append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        } else {
-                            stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        }
-                    } else {
-                        stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                    }
-                }
-                xmlWriter.writeCharacters(stringToWrite.toString());
-            }
-
-        }
-
-
-         /**
-         * Register a namespace prefix
-         */
-         private java.lang.String registerPrefix(javax.xml.stream.XMLStreamWriter xmlWriter, java.lang.String namespace) throws javax.xml.stream.XMLStreamException {
-                java.lang.String prefix = xmlWriter.getPrefix(namespace);
-
-                if (prefix == null) {
-                    prefix = generatePrefix(namespace);
-                    javax.xml.namespace.NamespaceContext nsContext = xmlWriter.getNamespaceContext();
-                    while (true) {
-                        java.lang.String uri = nsContext.getNamespaceURI(prefix);
-                        if (uri == null || uri.length() == 0) {
-                            break;
-                        }
-                        prefix = org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-                    }
-                    xmlWriter.writeNamespace(prefix, namespace);
-                    xmlWriter.setPrefix(prefix, namespace);
-                }
-
-                return prefix;
-            }
-
-
-  
-     /**
-      *  Factory class that keeps the parse method
-      */
-    public static class Factory{
-
-        
-        
-                public static _long fromString(java.lang.String value,
-                                                    java.lang.String namespaceURI){
-                    _long returnValue = new  _long();
-                    
-                            returnValue.set_long(
-                                org.apache.axis2.databinding.utils.ConverterUtil.convertToLong(value));
-                        
-
-                    return returnValue;
-                }
-
-                public static _long fromString(javax.xml.stream.XMLStreamReader xmlStreamReader,
-                                                                    java.lang.String content) {
-                    if (content.indexOf(":") > -1){
-                        java.lang.String prefix = content.substring(0,content.indexOf(":"));
-                        java.lang.String namespaceUri = xmlStreamReader.getNamespaceContext().getNamespaceURI(prefix);
-                        return _long.Factory.fromString(content,namespaceUri);
-                    } else {
-                       return _long.Factory.fromString(content,"");
-                    }
-                }
-
-            
-
-        /**
-        * static method to create the object
-        * Precondition:  If this object is an element, the current or next start element starts this object and any intervening reader events are ignorable
-        *                If this object is not an element, it is a complex type and the reader is at the event just after the outer start element
-        * Postcondition: If this object is an element, the reader is positioned at its end element
-        *                If this object is a complex type, the reader is positioned at the end element of its outer element
-        */
-        public static _long parse(javax.xml.stream.XMLStreamReader reader) throws java.lang.Exception{
-            _long object =
-                new _long();
-
-            int event;
-            java.lang.String nillableValue = null;
-            java.lang.String prefix ="";
-            java.lang.String namespaceuri ="";
-            try {
-                
-                while (!reader.isStartElement() && !reader.isEndElement())
-                    reader.next();
-
-                
-                if (reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance","type")!=null){
-                  java.lang.String fullTypeName = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance",
-                        "type");
-                  if (fullTypeName!=null){
-                    java.lang.String nsPrefix = null;
-                    if (fullTypeName.indexOf(":") > -1){
-                        nsPrefix = fullTypeName.substring(0,fullTypeName.indexOf(":"));
-                    }
-                    nsPrefix = nsPrefix==null?"":nsPrefix;
-
-                    java.lang.String type = fullTypeName.substring(fullTypeName.indexOf(":")+1);
-                    
-                            if (!"long".equals(type)){
-                                //find namespace for the prefix
-                                java.lang.String nsUri = reader.getNamespaceContext().getNamespaceURI(nsPrefix);
-                                return (_long)org.apache.axis2.databinding.types.xsd.ExtensionMapper.getTypeObject(
-                                     nsUri,type,reader);
-                              }
-                        
-
-                  }
-                
-
-                }
-
-                
-
-                
-                // Note all attributes that were handled. Used to differ normal attributes
-                // from anyAttributes.
-                java.util.Vector handledAttributes = new java.util.Vector();
-                
-
-                    
-                while(!reader.isEndElement()) {
-                    if (reader.isStartElement()  || reader.hasText()){
-                
-                                    if (reader.isStartElement()  || reader.hasText()){
-                                
-                                    java.lang.String content = reader.getElementText();
-                                    
-                                              object.set_long(
-                                                    org.apache.axis2.databinding.utils.ConverterUtil.convertToLong(content));
-                                            
-                              }  // End of if for expected property start element
-                                
-                             else{
-                                        // A start element we are not expecting indicates an invalid parameter was passed
-                                        throw new org.apache.axis2.databinding.ADBException("Unexpected subelement " + reader.getLocalName());
-                             }
-                          
-                             } else {
-                                reader.next();
-                             }  
-                           }  // end of while loop
-                        
-
-
-
-            } catch (javax.xml.stream.XMLStreamException e) {
-                throw new java.lang.Exception(e);
-            }
-
-            return object;
-        }
-
-        }//end of factory class
-
-        
-
-        }
-           
-          
\ No newline at end of file
diff --git a/modules/adb/src/org/apache/axis2/databinding/types/xsd/_short.java b/modules/adb/src/org/apache/axis2/databinding/types/xsd/_short.java
deleted file mode 100644
index 12cf3cf..0000000
--- a/modules/adb/src/org/apache/axis2/databinding/types/xsd/_short.java
+++ /dev/null
@@ -1,464 +0,0 @@
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/**
- * _short.java
- *
- * This file was auto-generated from WSDL
- * by the Apache Axis2 version: SNAPSHOT  Built on : Dec 21, 2007 (04:03:30 LKT)
- */
-            
-                package org.apache.axis2.databinding.types.xsd;
-
-import javax.xml.stream.XMLStreamWriter;
-            
-
-            /**
-            *  _short bean class
-            */
-        
-        public  class _short
-        implements org.apache.axis2.databinding.ADBBean{
-        /* This type was generated from the piece of schema that had
-                name = short
-                Namespace URI = http://www.w3.org/2001/XMLSchema
-                Namespace Prefix = ns1
-                */
-            
-
-        private static java.lang.String generatePrefix(java.lang.String namespace) {
-            if(namespace.equals("http://www.w3.org/2001/XMLSchema")){
-                return "xsd";
-            }
-            return org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-        }
-
-        
-
-                        /**
-                        * field for _short
-                        */
-
-                        
-                                    protected short local_short ;
-                                
-
-                           /**
-                           * Auto generated getter method
-                           * @return short
-                           */
-                           public  short get_short(){
-                               return local_short;
-                           }
-
-                           
-                        
-                            /**
-                               * Auto generated setter method
-                               * @param param _short
-                               */
-                               public void set_short(short param){
-                            
-                                            this.local_short=param;
-                                    
-
-                               }
-                            
-
-                            public java.lang.String toString(){
-                                
-                                        return local_short + "";
-                                    
-                            }
-                        
-
-     /**
-     * isReaderMTOMAware
-     * @return true if the reader supports MTOM
-     */
-   public static boolean isReaderMTOMAware(javax.xml.stream.XMLStreamReader reader) {
-        boolean isReaderMTOMAware = false;
-        
-        try{
-          isReaderMTOMAware = java.lang.Boolean.TRUE.equals(reader.getProperty(org.apache.axiom.om.OMConstants.IS_DATA_HANDLERS_AWARE));
-        }catch(java.lang.IllegalArgumentException e){
-          isReaderMTOMAware = false;
-        }
-        return isReaderMTOMAware;
-   }
-     
-     
-        /**
-        *
-        * @param parentQName
-        * @param factory
-        * @return org.apache.axiom.om.OMElement
-        */
-       public org.apache.axiom.om.OMElement getOMElement (
-               final javax.xml.namespace.QName parentQName,
-               final org.apache.axiom.om.OMFactory factory) throws org.apache.axis2.databinding.ADBException{
-
-
-        
-               org.apache.axiom.om.OMDataSource dataSource =
-                       new org.apache.axis2.databinding.ADBDataSource(this,parentQName);
-               return factory.createOMElement(dataSource,parentQName);
-            
-       }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                                       XMLStreamWriter xmlWriter)
-                                throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-                           serialize(parentQName,xmlWriter,false);
-         }
-
-         public void serialize(final javax.xml.namespace.QName parentQName,
-                               XMLStreamWriter xmlWriter,
-                               boolean serializeType)
-            throws javax.xml.stream.XMLStreamException, org.apache.axis2.databinding.ADBException{
-            
-                
-
-
-                java.lang.String prefix = null;
-                java.lang.String namespace = null;
-                
-
-                    prefix = parentQName.getPrefix();
-                    namespace = parentQName.getNamespaceURI();
-
-                    if ((namespace != null) && (namespace.trim().length() > 0)) {
-                        java.lang.String writerPrefix = xmlWriter.getPrefix(namespace);
-                        if (writerPrefix != null) {
-                            xmlWriter.writeStartElement(namespace, parentQName.getLocalPart());
-                        } else {
-                            if (prefix == null) {
-                                prefix = generatePrefix(namespace);
-                            }
-
-                            xmlWriter.writeStartElement(prefix, parentQName.getLocalPart(), namespace);
-                            xmlWriter.writeNamespace(prefix, namespace);
-                            xmlWriter.setPrefix(prefix, namespace);
-                        }
-                    } else {
-                        xmlWriter.writeStartElement(parentQName.getLocalPart());
-                    }
-                
-                  if (serializeType){
-               
-                   java.lang.String namespacePrefix = registerPrefix(xmlWriter,"http://www.w3.org/2001/XMLSchema");
-                   if ((namespacePrefix != null) && (namespacePrefix.trim().length() > 0)){
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           namespacePrefix+":short",
-                           xmlWriter);
-                   } else {
-                       writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","type",
-                           "short",
-                           xmlWriter);
-                   }
-
-               
-                   }
-               
-                                               if (local_short==java.lang.Short.MIN_VALUE) {
-                                           
-                                                         throw new org.apache.axis2.databinding.ADBException("short cannot be null!!");
-                                                      
-                                               } else {
-                                                    xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(local_short));
-                                               }
-                                    
-                    xmlWriter.writeEndElement();
-               
-
-        }
-
-         /**
-          * Util method to write an attribute with the ns prefix
-          */
-          private void writeAttribute(java.lang.String prefix,java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-              if (xmlWriter.getPrefix(namespace) == null) {
-                       xmlWriter.writeNamespace(prefix, namespace);
-                       xmlWriter.setPrefix(prefix, namespace);
-
-              }
-
-              xmlWriter.writeAttribute(namespace,attName,attValue);
-
-         }
-
-        /**
-          * Util method to write an attribute without the ns prefix
-          */
-          private void writeAttribute(java.lang.String namespace,java.lang.String attName,
-                                      java.lang.String attValue,javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException{
-                if (namespace.equals(""))
-              {
-                  xmlWriter.writeAttribute(attName,attValue);
-              }
-              else
-              {
-                  registerPrefix(xmlWriter, namespace);
-                  xmlWriter.writeAttribute(namespace,attName,attValue);
-              }
-          }
-
-
-           /**
-             * Util method to write an attribute without the ns prefix
-             */
-            private void writeQNameAttribute(java.lang.String namespace, java.lang.String attName,
-                                             javax.xml.namespace.QName qname, javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-                java.lang.String attributeNamespace = qname.getNamespaceURI();
-                java.lang.String attributePrefix = xmlWriter.getPrefix(attributeNamespace);
-                if (attributePrefix == null) {
-                    attributePrefix = registerPrefix(xmlWriter, attributeNamespace);
-                }
-                java.lang.String attributeValue;
-                if (attributePrefix.trim().length() > 0) {
-                    attributeValue = attributePrefix + ":" + qname.getLocalPart();
-                } else {
-                    attributeValue = qname.getLocalPart();
-                }
-
-                if (namespace.equals("")) {
-                    xmlWriter.writeAttribute(attName, attributeValue);
-                } else {
-                    registerPrefix(xmlWriter, namespace);
-                    xmlWriter.writeAttribute(namespace, attName, attributeValue);
-                }
-            }
-        /**
-         *  method to handle Qnames
-         */
-
-        private void writeQName(javax.xml.namespace.QName qname,
-                                javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-            java.lang.String namespaceURI = qname.getNamespaceURI();
-            if (namespaceURI != null) {
-                java.lang.String prefix = xmlWriter.getPrefix(namespaceURI);
-                if (prefix == null) {
-                    prefix = generatePrefix(namespaceURI);
-                    xmlWriter.writeNamespace(prefix, namespaceURI);
-                    xmlWriter.setPrefix(prefix,namespaceURI);
-                }
-
-                if (prefix.trim().length() > 0){
-                    xmlWriter.writeCharacters(prefix + ":" + org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                } else {
-                    // i.e this is the default namespace
-                    xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-                }
-
-            } else {
-                xmlWriter.writeCharacters(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qname));
-            }
-        }
-
-        private void writeQNames(javax.xml.namespace.QName[] qnames,
-                                 javax.xml.stream.XMLStreamWriter xmlWriter) throws javax.xml.stream.XMLStreamException {
-
-            if (qnames != null) {
-                // we have to store this data until last moment since it is not possible to write any
-                // namespace data after writing the charactor data
-                java.lang.StringBuffer stringToWrite = new java.lang.StringBuffer();
-                java.lang.String namespaceURI = null;
-                java.lang.String prefix = null;
-
-                for (int i = 0; i < qnames.length; i++) {
-                    if (i > 0) {
-                        stringToWrite.append(" ");
-                    }
-                    namespaceURI = qnames[i].getNamespaceURI();
-                    if (namespaceURI != null) {
-                        prefix = xmlWriter.getPrefix(namespaceURI);
-                        if ((prefix == null) || (prefix.length() == 0)) {
-                            prefix = generatePrefix(namespaceURI);
-                            xmlWriter.writeNamespace(prefix, namespaceURI);
-                            xmlWriter.setPrefix(prefix,namespaceURI);
-                        }
-
-                        if (prefix.trim().length() > 0){
-                            stringToWrite.append(prefix).append(":").append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        } else {
-                            stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                        }
-                    } else {
-                        stringToWrite.append(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(qnames[i]));
-                    }
-                }
-                xmlWriter.writeCharacters(stringToWrite.toString());
-            }
-
-        }
-
-
-         /**
-         * Register a namespace prefix
-         */
-         private java.lang.String registerPrefix(javax.xml.stream.XMLStreamWriter xmlWriter, java.lang.String namespace) throws javax.xml.stream.XMLStreamException {
-                java.lang.String prefix = xmlWriter.getPrefix(namespace);
-
-                if (prefix == null) {
-                    prefix = generatePrefix(namespace);
-                    javax.xml.namespace.NamespaceContext nsContext = xmlWriter.getNamespaceContext();
-                    while (true) {
-                        java.lang.String uri = nsContext.getNamespaceURI(prefix);
-                        if (uri == null || uri.length() == 0) {
-                            break;
-                        }
-                        prefix = org.apache.axis2.databinding.utils.BeanUtil.getUniquePrefix();
-                    }
-                    xmlWriter.writeNamespace(prefix, namespace);
-                    xmlWriter.setPrefix(prefix, namespace);
-                }
-
-                return prefix;
-            }
-
-
-  
-     /**
-      *  Factory class that keeps the parse method
-      */
-    public static class Factory{
-
-        
-        
-                public static _short fromString(java.lang.String value,
-                                                    java.lang.String namespaceURI){
-                    _short returnValue = new  _short();
-                    
-                            returnValue.set_short(
-                                org.apache.axis2.databinding.utils.ConverterUtil.convertToShort(value));
-                        
-
-                    return returnValue;
-                }
-
-                public static _short fromString(javax.xml.stream.XMLStreamReader xmlStreamReader,
-                                                                    java.lang.String content) {
-                    if (content.indexOf(":") > -1){
-                        java.lang.String prefix = content.substring(0,content.indexOf(":"));
-                        java.lang.String namespaceUri = xmlStreamReader.getNamespaceContext().getNamespaceURI(prefix);
-                        return _short.Factory.fromString(content,namespaceUri);
-                    } else {
-                       return _short.Factory.fromString(content,"");
-                    }
-                }
-
-            
-
-        /**
-        * static method to create the object
-        * Precondition:  If this object is an element, the current or next start element starts this object and any intervening reader events are ignorable
-        *                If this object is not an element, it is a complex type and the reader is at the event just after the outer start element
-        * Postcondition: If this object is an element, the reader is positioned at its end element
-        *                If this object is a complex type, the reader is positioned at the end element of its outer element
-        */
-        public static _short parse(javax.xml.stream.XMLStreamReader reader) throws java.lang.Exception{
-            _short object =
-                new _short();
-
-            int event;
-            java.lang.String nillableValue = null;
-            java.lang.String prefix ="";
-            java.lang.String namespaceuri ="";
-            try {
-                
-                while (!reader.isStartElement() && !reader.isEndElement())
-                    reader.next();
-
-                
-                if (reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance","type")!=null){
-                  java.lang.String fullTypeName = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance",
-                        "type");
-                  if (fullTypeName!=null){
-                    java.lang.String nsPrefix = null;
-                    if (fullTypeName.indexOf(":") > -1){
-                        nsPrefix = fullTypeName.substring(0,fullTypeName.indexOf(":"));
-                    }
-                    nsPrefix = nsPrefix==null?"":nsPrefix;
-
-                    java.lang.String type = fullTypeName.substring(fullTypeName.indexOf(":")+1);
-                    
-                            if (!"short".equals(type)){
-                                //find namespace for the prefix
-                                java.lang.String nsUri = reader.getNamespaceContext().getNamespaceURI(nsPrefix);
-                                return (_short)org.apache.axis2.databinding.types.xsd.ExtensionMapper.getTypeObject(
-                                     nsUri,type,reader);
-                              }
-                        
-
-                  }
-                
-
-                }
-
-                
-
-                
-                // Note all attributes that were handled. Used to differ normal attributes
-                // from anyAttributes.
-                java.util.Vector handledAttributes = new java.util.Vector();
-                
-
-                    
-                while(!reader.isEndElement()) {
-                    if (reader.isStartElement()  || reader.hasText()){
-                
-                                    if (reader.isStartElement()  || reader.hasText()){
-                                
-                                    java.lang.String content = reader.getElementText();
-                                    
-                                              object.set_short(
-                                                    org.apache.axis2.databinding.utils.ConverterUtil.convertToShort(content));
-                                            
-                              }  // End of if for expected property start element
-                                
-                             else{
-                                        // A start element we are not expecting indicates an invalid parameter was passed
-                                        throw new org.apache.axis2.databinding.ADBException("Unexpected subelement " + reader.getLocalName());
-                             }
-                          
-                             } else {
-                                reader.next();
-                             }  
-                           }  // end of while loop
-                        
-
-
-
-            } catch (javax.xml.stream.XMLStreamException e) {
-                throw new java.lang.Exception(e);
-            }
-
-            return object;
-        }
-
-        }//end of factory class
-
-        
-
-        }
-           
-          
\ No newline at end of file
diff --git a/modules/adb/src/org/apache/axis2/databinding/utils/BeanUtil.java b/modules/adb/src/org/apache/axis2/databinding/utils/BeanUtil.java
index 1e4c55e..e9c5e53 100644
--- a/modules/adb/src/org/apache/axis2/databinding/utils/BeanUtil.java
+++ b/modules/adb/src/org/apache/axis2/databinding/utils/BeanUtil.java
@@ -55,7 +55,6 @@
 import javax.xml.stream.XMLStreamReader;
 
 import org.apache.axiom.om.*;
-import org.apache.axiom.om.impl.builder.StAXOMBuilder;
 import org.apache.axiom.util.base64.Base64Utils;
 import org.apache.axis2.AxisFault;
 import org.apache.axis2.classloader.BeanInfoCache;
@@ -68,16 +67,7 @@
 import org.apache.axis2.engine.ObjectSupplier;
 import org.apache.axis2.util.Loader;
 import org.apache.axis2.util.StreamWrapper;
-import org.w3c.dom.Attr;
-import org.w3c.dom.Comment;
 import org.w3c.dom.Document;
-import org.w3c.dom.NamedNodeMap;
-import org.w3c.dom.Node;
-import org.w3c.dom.ProcessingInstruction;
-import org.w3c.dom.traversal.DocumentTraversal;
-import org.w3c.dom.traversal.NodeFilter;
-import org.w3c.dom.traversal.TreeWalker;
-
 
 public class BeanUtil {
    
@@ -209,11 +199,11 @@
                     propertyQnameValueList.add(
                             value == null ? null : SimpleTypeMapper.getStringValue(value));
                 } else if(SimpleTypeMapper.isDomDocument(ptype)){
-                	addTypeQname(elemntNameSpace, propertyQnameValueList, property,
+                    addTypeQname(elemntNameSpace, propertyQnameValueList, property,
                             beanName, processingDocLitBare);
-                	OMFactory fac = OMAbstractFactory.getOMFactory();
-                    propertyQnameValueList.add(convertDOMtoOM(fac, value));            	
-                	
+                    OMFactory fac = OMAbstractFactory.getOMFactory();
+                    propertyQnameValueList.add(convertDOMtoOM(fac, value));
+                    
                 } else if (ptype.isArray()) {
                     if (SimpleTypeMapper.isSimpleType(ptype.getComponentType())) {
                         if (value != null) {
@@ -250,39 +240,39 @@
                                 } else {
                                     propertyQName = new QName(propertyName);
 
-                                }                                                    
+                                }
                                 
-								if (SimpleTypeMapper
-										.isObjectArray(o.getClass())
-										|| SimpleTypeMapper
-												.isMultidimensionalObjectArray(o
-														.getClass())) {
-									/**
-            						 * If it is a Object[] we need to add instance type
-            						 * attributes to the response message.
-            						 * Copied from ADBXMLStreamReaderImpl. 
-            						 * For inner Arrary Complex types we use the special local name array - "array"
-            						 */
-								    QName itemName;
-								    if (qualified) {
-								        itemName = new QName(elemntNameSpace.getNamespaceURI(),
-	                                            Constants.INNER_ARRAY_COMPLEX_TYPE_NAME,
-	                                            elemntNameSpace.getPrefix()); 								        
-								    } else {
-								        itemName = new QName(Constants.INNER_ARRAY_COMPLEX_TYPE_NAME); 								        
-								    }            						           						
-    								propertyQnameValueList.add(getOMElement(propertyQName , (Object[]) o,
-            								itemName, qualified, typeTable));                                	
+                                if (SimpleTypeMapper
+                                        .isObjectArray(o.getClass())
+                                        || SimpleTypeMapper
+                                                .isMultidimensionalObjectArray(o
+                                                        .getClass())) {
+                                    /**
+                                     * If it is a Object[] we need to add instance type
+                                     * attributes to the response message.
+                                     * Copied from ADBXMLStreamReaderImpl. 
+                                     * For inner Arrary Complex types we use the special local name array - "array"
+                                     */
+                                    QName itemName;
+                                    if (qualified) {
+                                        itemName = new QName(elemntNameSpace.getNamespaceURI(),
+                                                Constants.INNER_ARRAY_COMPLEX_TYPE_NAME,
+                                                elemntNameSpace.getPrefix());
+                                    } else {
+                                        itemName = new QName(Constants.INNER_ARRAY_COMPLEX_TYPE_NAME);
+                                    }
+                                    propertyQnameValueList.add(getOMElement(propertyQName , (Object[]) o,
+                                            itemName, qualified, typeTable));
                                 } else {
-                                	if(SimpleTypeMapper.isObjectArray(value.getClass())){
-                                		OMFactory fac = OMAbstractFactory.getOMFactory();
-                                    	OMElement element = fac.createOMElement(propertyQName);
-                                    	element.addChild(fac.createOMText(SimpleTypeMapper.getStringValue(o)));  
-                                    	addInstanceTypeAttribute(fac, element, o, typeTable);
-                                    	propertyQnameValueList.add(element);
-                                	} else {
-                                		propertyQnameValueList.add(o);                                 		
-                                	}                                	
+                                    if(SimpleTypeMapper.isObjectArray(value.getClass())){
+                                        OMFactory fac = OMAbstractFactory.getOMFactory();
+                                        OMElement element = fac.createOMElement(propertyQName);
+                                        element.addChild(fac.createOMText(SimpleTypeMapper.getStringValue(o)));  
+                                        addInstanceTypeAttribute(fac, element, o, typeTable);
+                                        propertyQnameValueList.add(element);
+                                    } else {
+                                        propertyQnameValueList.add(o);
+                                    }
                                 }
                                
                             }
@@ -294,70 +284,69 @@
                     }
                 } else  if (SimpleTypeMapper.isCollection(ptype) && value != null) { 
                     if (typeTable != null) {
-                	OMFactory fac = OMAbstractFactory.getOMFactory();					
-			QName qNamefortheType = null;					
-			qNamefortheType = (QName) typeTable
-				.getComplexSchemaMap().get(getClassName(beanClass));					
-			Type genericType = property.getReadMethod().getGenericReturnType();
-			OMElement collection = BeanUtil.getCollectionElement(
-					fac, genericType,
-					(Collection) value, propertyName,null,
-					qNamefortheType,typeTable,
-					qualified);					
-//			addTypeQname(elemntNameSpace, propertyQnameValueList,
-//					property, beanName, processingDocLitBare);
-			Iterator childItr = collection.getChildren();
-			while(childItr.hasNext()){						
-				addTypeQname(elemntNameSpace, propertyQnameValueList,
-						property, beanName, processingDocLitBare);
-				propertyQnameValueList.add(childItr.next());						
-			}	
-                	
+                        OMFactory fac = OMAbstractFactory.getOMFactory();
+                        QName qNamefortheType = null;
+                        qNamefortheType = (QName) typeTable
+                                .getComplexSchemaMap().get(getClassName(beanClass));
+                        Type genericType = property.getReadMethod().getGenericReturnType();
+                        OMElement collection = BeanUtil.getCollectionElement(
+                                fac, genericType,
+                                (Collection) value, propertyName,null,
+                                qNamefortheType,typeTable,
+                                qualified);
+//                      addTypeQname(elemntNameSpace, propertyQnameValueList,
+//                              property, beanName, processingDocLitBare);
+                        Iterator childItr = collection.getChildren();
+                        while(childItr.hasNext()){
+                            addTypeQname(elemntNameSpace, propertyQnameValueList,
+                                    property, beanName, processingDocLitBare);
+                            propertyQnameValueList.add(childItr.next());
+                        }
+                    
                     } else {
-                	 Collection<?> objList = (Collection<?>) value;
-                         if (objList != null && objList.size() > 0) {
-                             //this was given error , when the array.size = 0
-                             // and if the array contain simple type , then the ADBPullParser asked
-                             // PullParser from That simpel type
-                             for (Object o : objList) {
-                                 if (SimpleTypeMapper.isSimpleType(o)) {
-                                     addTypeQname(elemntNameSpace, propertyQnameValueList,
-                                                  property, beanName, processingDocLitBare);
-                                     propertyQnameValueList.add(o);
-                                 } else {
-                                     addTypeQname(elemntNameSpace, propertyQnameValueList,
-                                                  property, beanName, processingDocLitBare);
-                                     propertyQnameValueList.add(o);
-                                 }
-                             }
+                        Collection<?> objList = (Collection<?>) value;
+                        if (objList != null && objList.size() > 0) {
+                            //this was given error , when the array.size = 0
+                            // and if the array contain simple type , then the ADBPullParser asked
+                            // PullParser from That simpel type
+                            for (Object o : objList) {
+                                if (SimpleTypeMapper.isSimpleType(o)) {
+                                    addTypeQname(elemntNameSpace, propertyQnameValueList,
+                                            property, beanName, processingDocLitBare);
+                                    propertyQnameValueList.add(o);
+                                } else {
+                                    addTypeQname(elemntNameSpace, propertyQnameValueList,
+                                            property, beanName, processingDocLitBare);
+                                    propertyQnameValueList.add(o);
+                                }
+                            }
 
-                         } else {
-                             addTypeQname(elemntNameSpace, propertyQnameValueList, property,
-                                          beanName, processingDocLitBare);
-                             propertyQnameValueList.add(value);
-                         }
+                        } else {
+                            addTypeQname(elemntNameSpace, propertyQnameValueList, property,
+                                    beanName, processingDocLitBare);
+                            propertyQnameValueList.add(value);
+                        }
                     }
-                          
-									
+                    
                 } else if (SimpleTypeMapper.isMap(ptype) && value != null) {
-					OMFactory fac = OMAbstractFactory.getOMFactory();
-					QName qNamefortheType = (QName) typeTable
-							.getComplexSchemaMap().get(getClassName(beanClass));
-					OMNamespace ns = fac.createOMNamespace(
-										qNamefortheType.getNamespaceURI(),
-										qNamefortheType.getPrefix());
-					List<OMElement> mapEntries = getMapElement(fac,
-							ptype, (Map) value, typeTable, qualified);
-					OMElement map = fac.createOMElement(propertyName,
-										qNamefortheType.getNamespaceURI(),
-										qNamefortheType.getPrefix());
-					for (OMElement ele : mapEntries) {
-						map.addChild(ele);
-					}
-					addTypeQname(elemntNameSpace, propertyQnameValueList,
-							property, beanName, processingDocLitBare);
-					propertyQnameValueList.add(map);
-				} else if (SimpleTypeMapper.isEnum(ptype)){
+                    OMFactory fac = OMAbstractFactory.getOMFactory();
+                    QName qNamefortheType = (QName) typeTable
+                            .getComplexSchemaMap().get(getClassName(beanClass));
+                    OMNamespace ns = fac.createOMNamespace(
+                                        qNamefortheType.getNamespaceURI(),
+                                        qNamefortheType.getPrefix());
+                    List<OMElement> mapEntries = getMapElement(fac,
+                            ptype, (Map) value, typeTable, qualified);
+                    OMElement map = fac.createOMElement(propertyName,
+                                        qNamefortheType.getNamespaceURI(),
+                                        qNamefortheType.getPrefix());
+                    for (OMElement ele : mapEntries) {
+                        map.addChild(ele);
+                    }
+                    addTypeQname(elemntNameSpace, propertyQnameValueList,
+                            property, beanName, processingDocLitBare);
+                    propertyQnameValueList.add(map);
+                } else if (SimpleTypeMapper.isEnum(ptype)){
                     addTypeQname(elemntNameSpace, propertyQnameValueList, property,
                                  beanName, processingDocLitBare);
                     propertyQnameValueList.add(
@@ -365,13 +354,13 @@
                 }else {
                     addTypeQname(elemntNameSpace, propertyQnameValueList, property,
                                  beanName, processingDocLitBare);
-					if (Object.class.equals(ptype)) {
-						//this is required to match this element prefix as
-						//root element's prefix.
-						QName qNamefortheType = (QName) typeTable
-								.getComplexSchemaMap().get(
-										getClassName(beanClass));
-						OMFactory fac = OMAbstractFactory.getOMFactory();
+                    if (Object.class.equals(ptype) && value != null) {
+                        //this is required to match this element prefix as
+                        //root element's prefix.
+                        QName qNamefortheType = (QName) typeTable
+                                .getComplexSchemaMap().get(
+                                        getClassName(beanClass));
+                        OMFactory fac = OMAbstractFactory.getOMFactory();
                         QName elementName;
                         OMElement element;
                         if (elemntNameSpace != null) {
@@ -381,26 +370,26 @@
                                     qNamefortheType.getPrefix());
                         } else {
                             elementName = new QName(property.getName());
-                        }					
-						
-						if(SimpleTypeMapper.isSimpleType(value)){
-							element = fac.createOMElement(elementName);
-							element.addChild(fac.createOMText(SimpleTypeMapper
-									.getStringValue(value)));            
-		            	}else{    
-		            		 XMLStreamReader xr = BeanUtil.getPullParser(value,
-		            				 elementName, typeTable, qualified, false);
-		                     OMXMLParserWrapper stAXOMBuilder =
-		                             OMXMLBuilderFactory.createStAXOMBuilder(
-		                                     OMAbstractFactory.getOMFactory(), new StreamWrapper(xr));
-		                     element = stAXOMBuilder.getDocumentElement();
-		                     
-		            		
-		            	}	      
-						addInstanceTypeAttribute(fac, element, value, typeTable);
-						propertyQnameValueList.add(element);
-						continue;
-					}
+                        }
+                        
+                        if(SimpleTypeMapper.isSimpleType(value)){
+                            element = fac.createOMElement(elementName);
+                            element.addChild(fac.createOMText(SimpleTypeMapper
+                                    .getStringValue(value)));
+                        }else{
+                             XMLStreamReader xr = BeanUtil.getPullParser(value,
+                                     elementName, typeTable, qualified, false);
+                             OMXMLParserWrapper stAXOMBuilder =
+                                     OMXMLBuilderFactory.createStAXOMBuilder(
+                                             OMAbstractFactory.getOMFactory(), new StreamWrapper(xr));
+                             element = stAXOMBuilder.getDocumentElement();
+                             
+                            
+                        }
+                        addInstanceTypeAttribute(fac, element, value, typeTable);
+                        propertyQnameValueList.add(element);
+                        continue;
+                    }
 
                     propertyQnameValueList.add(value);
                 }
@@ -479,7 +468,7 @@
                         QName typeQName = beanElement.resolveQName(instanceTypeName);
                         //Need this flag to differentiate "xsd:hexBinary" and "xsd:base64Binary" data. 
                         if(org.apache.ws.commons.schema.constants.Constants.XSD_HEXBIN.equals(typeQName)){
-                        	hexBin = true;
+                            hexBin = true;
                         }
                         TypeTable typeTable = axisService.getTypeTable();
                         String className = typeTable.getClassNameForQName(typeQName);
@@ -502,8 +491,8 @@
                 return null;
             }
             
-            if(beanClass.getName().equals(DataHandler.class.getName())){    
-            	return SimpleTypeMapper.getDataHandler(beanElement,hexBin);            	
+            if(beanClass.getName().equals(DataHandler.class.getName())){
+                return SimpleTypeMapper.getDataHandler(beanElement,hexBin);
             }
 
             if (beanClass.isArray()) {
@@ -539,7 +528,7 @@
                     }
                     return ConverterUtil.convertToArray(arrayClassType, valueList);
                 }
-            }else if(SimpleTypeMapper.isDomDocument(beanClass)){                  	
+            }else if(SimpleTypeMapper.isDomDocument(beanClass)){
                 return convertOMtoDOM(beanElement);
                 
             } else if (XMLGregorianCalendar.class.getName().equals(
@@ -614,8 +603,8 @@
                                 partObj = SimpleTypeMapper.getHashSet((OMElement)
                                         parts.getParent(), prty.getName());
                             } else if (SimpleTypeMapper.isCollection(parameters)) {
-                            	Type type = prty.getReadMethod().getGenericReturnType();
-                            	partObj = processGenericCollection(parts, type, null, objectSupplier);  
+                                Type type = prty.getReadMethod().getGenericReturnType();
+                                partObj = processGenericCollection(parts, type, null, objectSupplier);  
 
                             } else if (SimpleTypeMapper.isDataHandler(parameters)) {
                                 partObj = SimpleTypeMapper.getDataHandler(parts);
@@ -623,17 +612,17 @@
                                 partObj = deserialize(parameters, (OMElement) parts.getParent(),
                                                       objectSupplier, prty.getName());
                             } else if (SimpleTypeMapper.isMap(parameters)){
-                                partObj = null;								
+                                partObj = null;
                                 final Type type = prty.getReadMethod().getGenericReturnType();
                                 if (type instanceof ParameterizedType) {
                                     ParameterizedType aType = (ParameterizedType) type;
-                                    Type[] parameterArgTypes = aType.getActualTypeArguments();                                 
+                                    Type[] parameterArgTypes = aType.getActualTypeArguments();
                                     partObj = processGenericsMapElement(parameterArgTypes
-                                 		 , (OMElement) parts.getParent(), null, parts.getChildren(), objectSupplier, beanClass);
-                                } else {                                	 
-                                	 Type[] parameterArgTypes = {Object.class,Object.class}; 
-                                	 partObj = processGenericsMapElement(parameterArgTypes
-                                     		 , (OMElement) parts.getParent(), null, parts.getChildren(), objectSupplier, beanClass);                                	
+                                          , (OMElement) parts.getParent(), null, parts.getChildren(), objectSupplier, beanClass);
+                                } else {
+                                    Type[] parameterArgTypes = {Object.class,Object.class}; 
+                                    partObj = processGenericsMapElement(parameterArgTypes
+                                             , (OMElement) parts.getParent(), null, parts.getChildren(), objectSupplier, beanClass);
                                 }
                             }else if (SimpleTypeMapper.isEnum(parameters)) {
                                 partObj =processEnumObject(parameters , parts);
@@ -830,10 +819,10 @@
              */
             boolean bare = false;
             if(parameterNames == null){
-            	bare = true;            	
+                bare = true;
             }
            
-			omElement = processElement(classType, omElement, helper, parts,
+            omElement = processElement(classType, omElement, helper, parts,
                                        currentLocalName, retObjs, count, objectSupplier, genericType, bare);
             while (omElement != null) {
                 count++;
@@ -878,15 +867,15 @@
         return retObjs;
     }
 
-	private static OMElement processElement(Class classType,
-			OMElement omElement, MultirefHelper helper, Iterator parts,
-			String currentLocalName, Object[] retObjs, int count,
-			ObjectSupplier objectSupplier, Type genericType) throws AxisFault {
+    private static OMElement processElement(Class classType,
+            OMElement omElement, MultirefHelper helper, Iterator parts,
+            String currentLocalName, Object[] retObjs, int count,
+            ObjectSupplier objectSupplier, Type genericType) throws AxisFault {
 
-		return processElement(classType, omElement, helper, parts,
-				currentLocalName, retObjs, count, objectSupplier, genericType, false);
+        return processElement(classType, omElement, helper, parts,
+                currentLocalName, retObjs, count, objectSupplier, genericType, false);
 
-	}
+    }
     private static OMElement processElement(Class classType, OMElement omElement,
                                             MultirefHelper helper, Iterator parts,
                                             String currentLocalName,
@@ -896,10 +885,10 @@
                                             Type genericType, boolean bare) throws AxisFault {
         Object objValue;
         boolean isRef = false;
-        OMAttribute omatribute = MultirefHelper.processRefAtt(omElement);	        
+        OMAttribute omatribute = MultirefHelper.processRefAtt(omElement);
         if (omatribute != null) {
             isRef = true;
-        }	
+        }
         if (classType.isArray()) {
             boolean done = true;
             ArrayList<Object> valueList = new ArrayList<Object>();
@@ -938,26 +927,26 @@
             }
             
         } else if(SimpleTypeMapper.isCollection(classType) && ! isRef){
-        	if(bare){
-        		OMElement[] toReturn = new OMElement[1];
-        		parts = omElement.getChildren();
-            	retObjs[count] = processGenericCollection(omElement.getFirstElement(), toReturn, genericType, helper, objectSupplier, parts,bare);
-            	OMNode node = omElement.getNextOMSibling();
-            	while(node != null){
-            		if(OMElement.class.isAssignableFrom(node.getClass())){
-            			return (OMElement) node;
-            		} else {
-            			node = node.getNextOMSibling();
-            		}            		
-            	}      	
-            	            	 
-        	} else {
-        	OMElement[] toReturn = new OMElement[1];
-            	retObjs[count] = processGenericCollection(omElement, toReturn, genericType, helper, objectSupplier, parts,bare);
-            	 if (toReturn[0] != null) {        		
+            if(bare){
+                OMElement[] toReturn = new OMElement[1];
+                parts = omElement.getChildren();
+                retObjs[count] = processGenericCollection(omElement.getFirstElement(), toReturn, genericType, helper, objectSupplier, parts,bare);
+                OMNode node = omElement.getNextOMSibling();
+                while(node != null){
+                    if(OMElement.class.isAssignableFrom(node.getClass())){
+                        return (OMElement) node;
+                    } else {
+                        node = node.getNextOMSibling();
+                    }
+                }
+            
+            } else {
+            OMElement[] toReturn = new OMElement[1];
+                retObjs[count] = processGenericCollection(omElement, toReturn, genericType, helper, objectSupplier, parts,bare);
+                 if (toReturn[0] != null) {
                      return toReturn[0];
-                 }        		
-        	}        	
+                 }
+            }
         } else if (SimpleTypeMapper.isEnum(classType)) {
             /* handling enum types */
             retObjs[count] = processEnumObject(classType, omElement);
@@ -984,33 +973,33 @@
             } else {
                 continue;
             }
-			if (classType instanceof ParameterizedType) {
-				ParameterizedType parameterizedClassType = (ParameterizedType) classType;
-				if (Collection.class
-						.isAssignableFrom((Class<?>) parameterizedClassType
-								.getRawType())) {
-					o = processGenericCollection(omElement.getFirstElement(),
-							classType, helper, objectSupplier);
-				} else if (Map.class
-						.isAssignableFrom((Class<?>) parameterizedClassType
-								.getRawType())) {
-					o = processGenericsMapElement( 
-							parameterizedClassType.getActualTypeArguments(),
-							omElement, helper, omElement.getChildren(), objectSupplier,
-							parameterizedClassType);
-				} else {
-					o = processObject(omElement, (Class) classType,
-	                         helper, true, objectSupplier, genericType);
-				}
-    			   			
-    		} else {
-    			o = processObject(omElement, (Class) classType,
+            if (classType instanceof ParameterizedType) {
+                ParameterizedType parameterizedClassType = (ParameterizedType) classType;
+                if (Collection.class
+                        .isAssignableFrom((Class<?>) parameterizedClassType
+                                .getRawType())) {
+                    o = processGenericCollection(omElement.getFirstElement(),
+                            classType, helper, objectSupplier);
+                } else if (Map.class
+                        .isAssignableFrom((Class<?>) parameterizedClassType
+                                .getRawType())) {
+                    o = processGenericsMapElement( 
+                            parameterizedClassType.getActualTypeArguments(),
+                            omElement, helper, omElement.getChildren(), objectSupplier,
+                            parameterizedClassType);
+                } else {
+                    o = processObject(omElement, (Class) classType,
+                             helper, true, objectSupplier, genericType);
+                }
+                
+            } else {
+                o = processObject(omElement, (Class) classType,
                          helper, true, objectSupplier, genericType);
-    			
-    		}
+                
+            }
             
-			valueList.add(o);
-			
+            valueList.add(o);
+            
         }
         return valueList;
     }
@@ -1060,28 +1049,27 @@
                         return getSimpleTypeObjectChecked(classType, omElement);
                     }
                 } else if (SimpleTypeMapper.isCollection(classType)) {
-                	return processGenericCollection(omElement, generictype, null, objectSupplier); 
+                    return processGenericCollection(omElement, generictype, null, objectSupplier); 
 
                 } else if (SimpleTypeMapper.isDataHandler(classType)) {
                     return SimpleTypeMapper.getDataHandler(omElement);
                     
-                } else if(SimpleTypeMapper.isDomDocument(classType)){                  	
+                } else if(SimpleTypeMapper.isDomDocument(classType)){
                     return convertOMtoDOM(omElement);
                 } else if(SimpleTypeMapper.isMap(classType)){
-                	if (generictype != null && (generictype instanceof ParameterizedType)) {
-                      ParameterizedType aType = (ParameterizedType) generictype;
-                      Type[] parameterArgTypes = aType.getActualTypeArguments();                       
-                      Iterator parts = omElement.getChildElements();
-                      return processGenericsMapElement(parameterArgTypes
-                     		 , omElement, helper, parts, objectSupplier, generictype);
-                  } else {                	 
-                	  Type[] parameterArgTypes = {Object.class,Object.class}; 
-                	  Iterator parts = omElement.getChildElements();
-                  	  return processGenericsMapElement(parameterArgTypes,
-                      		 omElement, helper, parts, objectSupplier, generictype);   
-                  }
-                 
-                	
+                    if (generictype != null && (generictype instanceof ParameterizedType)) {
+                        ParameterizedType aType = (ParameterizedType) generictype;
+                        Type[] parameterArgTypes = aType.getActualTypeArguments();
+                        Iterator parts = omElement.getChildElements();
+                        return processGenericsMapElement(parameterArgTypes
+                             , omElement, helper, parts, objectSupplier, generictype);
+                    } else {
+                        Type[] parameterArgTypes = {Object.class,Object.class}; 
+                        Iterator parts = omElement.getChildElements();
+                        return processGenericsMapElement(parameterArgTypes,
+                                omElement, helper, parts, objectSupplier, generictype);   
+                    }
+                
                 }else if(SimpleTypeMapper.isEnum(classType)){
                     return processEnumObject(classType, omElement);
                 }else {
@@ -1163,43 +1151,43 @@
                     }
                 } else {
                     // this happens at the server side. this means it is an multidimentional array.
-					objects.add(partName);
-					if (SimpleTypeMapper.isObjectArray(arg.getClass())
-							|| SimpleTypeMapper
-									.isMultidimensionalObjectArray(arg
-											.getClass())) {
-						/**
-						 * If it is a Object[] we need to add instance type
-						 * attributes to the response message.
-						 * Copied from ADBXMLStreamReaderImpl. 
-						 * For inner Arrary Complex types we use the special local name array - "array"
-						 */
-						QName itemName = new QName(partName.getNamespaceURI(),
-								Constants.INNER_ARRAY_COMPLEX_TYPE_NAME,
-								partName.getPrefix());
-						objects.add(getOMElement(partName, (Object[]) arg,
-								itemName, qualifed, typeTable));
-					} else {
-						objects.add(arg);
-					}
+                    objects.add(partName);
+                    if (SimpleTypeMapper.isObjectArray(arg.getClass())
+                            || SimpleTypeMapper
+                                    .isMultidimensionalObjectArray(arg
+                                            .getClass())) {
+                        /**
+                         * If it is a Object[] we need to add instance type
+                         * attributes to the response message.
+                         * Copied from ADBXMLStreamReaderImpl. 
+                         * For inner Arrary Complex types we use the special local name array - "array"
+                         */
+                        QName itemName = new QName(partName.getNamespaceURI(),
+                                Constants.INNER_ARRAY_COMPLEX_TYPE_NAME,
+                                partName.getPrefix());
+                        objects.add(getOMElement(partName, (Object[]) arg,
+                                itemName, qualifed, typeTable));
+                    } else {
+                        objects.add(arg);
+                    }
                 }
             } else {
                 if (SimpleTypeMapper.isSimpleType(arg)) { 
-                	OMElement element;
-                	OMFactory fac = OMAbstractFactory.getOMFactory();
-                	if(partName != null){
-                		element = fac.createOMElement(partName, null);
-                	}else{
-                		String eleName = "arg" + argCount;
-                		element = fac.createOMElement(eleName, null);
-                	}					
-					element.addChild(fac.createOMText(SimpleTypeMapper
-							.getStringValue(arg)));
-					if (SimpleTypeMapper.isObjectArray(args.getClass())) {
-						addInstanceTypeAttribute(fac, element, arg, typeTable);
-					}
-					objects.add(element.getQName());
-					objects.add(element);
+                    OMElement element;
+                    OMFactory fac = OMAbstractFactory.getOMFactory();
+                    if(partName != null){
+                        element = fac.createOMElement(partName, null);
+                    }else{
+                        String eleName = "arg" + argCount;
+                        element = fac.createOMElement(eleName, null);
+                    }
+                    element.addChild(fac.createOMText(SimpleTypeMapper
+                            .getStringValue(arg)));
+                    if (SimpleTypeMapper.isObjectArray(args.getClass())) {
+                        addInstanceTypeAttribute(fac, element, arg, typeTable);
+                    }
+                    objects.add(element.getQName());
+                    objects.add(element);
                 } else {
                     if (partName == null) {
                         objects.add(new QName("arg" + argCount));
@@ -1227,7 +1215,7 @@
                         } else {
                             wrappingElement = fac.createOMElement(partName, null);
                         }
-                        OMText text = fac.createOMText(arg, true);
+                        OMText text = fac.createOMText((DataHandler)arg, true);
                         wrappingElement.addChild(text);
                         objects.add(wrappingElement);
                     }else if (SimpleTypeMapper.isEnum(arg.getClass())) {
@@ -1294,245 +1282,172 @@
         }
     }
     
-	/**
-	 * Adds the instance type attribute to the passed OMElement.	 
-	 *  
-	 *  e.g - <sam:obj xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	 *                xmlns:xsd="http://www.w3.org/2001/XMLSchema"
-	 *                xsi:type="xsd:string">
-	 *                String Value
-	 *        </sam:obj> 
-	 *
-	 *
-	 * @param fac the SOAPFactory instance.
-	 * @param element the child OMElement to add attributes.
-	 * @param resObject the java reflection method
-	 * @param resObject the res object
-	 * @param typeTable the type table of particular Axis2 service
-	 */
-	public static void addInstanceTypeAttribute(OMFactory fac,
-			OMElement element, Object resObject,
-			TypeTable typeTable) {
-		if(typeTable == null){
-			return;
-		}
-		OMNamespace xsiNS = fac.createOMNamespace(Constants.XSI_NAMESPACE,
-				Constants.DEFAULT_XSI_NAMESPACE_PREFIX);
-		OMNamespace xsdNS = fac.createOMNamespace(Constants.XSD_NAMESPACE,
-				Constants.DEFAULT_XSD_NAMESPACE_PREFIX);
-		element.declareNamespace(xsiNS);
-		element.declareNamespace(xsdNS);
-		QName xsdType = typeTable.getSchemaTypeName(resObject.getClass()
-				.getName());	
-		String attrValue = xsdType.getPrefix() + ":" + xsdType.getLocalPart();
-		element.addAttribute(Constants.XSI_TYPE_ATTRIBUTE, attrValue, xsiNS);
-	}
-	
-	/**
-	 * Gets the DOOM implementation of org.w3c.dom.Document  
-	 *
-	 * @param omElement the OMelement
-	 * @return the DOOM document
-	 */
-	public static OMDocument convertOMtoDOM(OMContainer omElement) {
-		// use an Axiom meta factory with feature "dom" to get org.w3c.dom.Document
-		OMFactory doomFactory = OMAbstractFactory.getMetaFactory(
-		        OMAbstractFactory.FEATURE_DOM).getOMFactory();
-		OMXMLParserWrapper doomBuilder = OMXMLBuilderFactory.createStAXOMBuilder(doomFactory,
-				omElement.getXMLStreamReader());
-		OMDocument domElement = doomBuilder.getDocument();
-		return domElement;
-	}
-	
-	/**
-	 * Convert DOM Document to a OMElement.
-	 *
-	 * @param fac the fac
-	 * @param document the document
-	 * @return the OMElement
-	 */
-	public static OMElement convertDOMtoOM(OMFactory fac, Object document) {
-	    if( document == null ) {
-	        return null;
-	    }
-	    if (document instanceof OMDocument) {
-		return ((OMDocument)document).getOMDocumentElement();
-		
-	    } else {
-		DocumentTraversal traversal = (DocumentTraversal) document;
-		TreeWalker walker = traversal.createTreeWalker(
-				((Document)document).getDocumentElement(), NodeFilter.SHOW_ALL, null, true);
-		return (OMElement) traverseDOMDocument(fac, walker, null);		
-	    }		
-	}
-	
-	/**
-	 * Traverse dom document and construct a OMElement.
-	 * Act as a helper method for convertDOMtoOM()
-	 *
-	 * @param fac the fac
-	 * @param walker the walker
-	 * @param parent the parent
-	 * @return the oM node
-	 */
-	private static OMNode traverseDOMDocument(OMFactory fac, TreeWalker walker,
-			OMContainer parent) {
-		OMNode curr = null;
-		Node node = walker.getCurrentNode();
-		
-		switch (node.getNodeType()) {
-		case Node.ELEMENT_NODE:
-			OMNamespace eleNS = null;
-			if (node.getNamespaceURI() != null) {
-				eleNS = fac.createOMNamespace(node.getNamespaceURI(),
-						node.getPrefix());
-			}
-			curr = fac.createOMElement(node.getNodeName(), eleNS);
-			curr = processDOMAttributes(fac, (OMElement) curr,	node.getAttributes());
-			if (parent != null) {
-				parent.addChild(curr);
-			}
-			if (node.getFirstChild() != null) {
-				walker.setCurrentNode(node.getFirstChild());
-				traverseDOMDocument(fac, walker, (OMContainer) curr);
-			}
-			break;
+    /**
+     * Adds the instance type attribute to the passed OMElement.
+     *  
+     *  e.g - <sam:obj xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+     *                xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+     *                xsi:type="xsd:string">
+     *                String Value
+     *        </sam:obj> 
+     *
+     *
+     * @param fac the SOAPFactory instance.
+     * @param element the child OMElement to add attributes.
+     * @param resObject the java reflection method
+     * @param resObject the res object
+     * @param typeTable the type table of particular Axis2 service
+     */
+    public static void addInstanceTypeAttribute(OMFactory fac,
+            OMElement element, Object resObject,
+            TypeTable typeTable) {
+        if(typeTable == null){
+            return;
+        }
+        OMNamespace xsiNS = fac.createOMNamespace(Constants.XSI_NAMESPACE,
+                Constants.DEFAULT_XSI_NAMESPACE_PREFIX);
+        OMNamespace xsdNS = fac.createOMNamespace(Constants.XSD_NAMESPACE,
+                Constants.DEFAULT_XSD_NAMESPACE_PREFIX);
+        element.declareNamespace(xsiNS);
+        element.declareNamespace(xsdNS);
+        QName xsdType = typeTable.getSchemaTypeName(resObject.getClass()
+                .getName());
+        String attrValue = xsdType.getPrefix() + ":" + xsdType.getLocalPart();
+        element.addAttribute(Constants.XSI_TYPE_ATTRIBUTE, attrValue, xsiNS);
+    }
+    
+    /**
+     * Gets the DOOM implementation of org.w3c.dom.Document  
+     *
+     * @param omElement the OMelement
+     * @return the DOOM document
+     */
+    public static OMDocument convertOMtoDOM(OMContainer omElement) {
+        // use an Axiom meta factory with feature "dom" to get org.w3c.dom.Document
+        OMFactory doomFactory = OMAbstractFactory.getMetaFactory(
+                OMAbstractFactory.FEATURE_DOM).getOMFactory();
+        OMXMLParserWrapper doomBuilder = OMXMLBuilderFactory.createStAXOMBuilder(doomFactory,
+                omElement.getXMLStreamReader());
+        OMDocument domElement = doomBuilder.getDocument();
+        return domElement;
+    }
+    
+    /**
+     * Convert DOM Document to a OMElement.
+     *
+     * @param fac the fac
+     * @param document the document
+     * @return the OMElement
+     */
+    public static OMElement convertDOMtoOM(OMFactory fac, Object document) {
+        if( document == null ) {
+            return null;
+        }
+        if (document instanceof OMDocument) {
+            return ((OMDocument)document).getOMDocumentElement();
+        
+        } else {
+            return OMXMLBuilderFactory.createOMBuilder((Document)document, false).getDocumentElement(true);
+        }
+    }
+    
+    /**
+     * This method deserialize OM model in to a instance of java.util.Map
+     *
+     * @param parameterArgTypes the parameter argument types of Map <k,V>
+     * @param omElement the OMElement
+     * @param helper the helper
+     * @param parts the parts
+     * @param objectSupplier the object supplier
+     * @param genericType the generic type
+     * @return a instance of java.util.Map
+     * @throws AxisFault the axis fault
+     */
+    public static Map<Object,Object> processGenericsMapElement(Type[] parameterArgTypes,
+            OMElement omElement, MultirefHelper helper, Iterator parts,
+            ObjectSupplier objectSupplier, Type genericType) throws AxisFault {
+        Object objValue;
+        Map<Object,Object> valueMap = getMapInstance(genericType) ;
+        while (parts.hasNext()) {
+            objValue = parts.next();
+            if (objValue instanceof OMElement) {
+                omElement = (OMElement) objValue;
+            } else {
+                continue;
+            }
+            
+            if(omElement != null){
+                Iterator entryParts = omElement.getChildren();
+                Object entryKey = null;
+                Object entryValue = null;
+                while (entryParts.hasNext()) {
+                    objValue = entryParts.next();
+                    if (objValue instanceof OMElement) {
+                        omElement = (OMElement) objValue;
+                    } else {
+                        continue;
+                    }
+                    if (omElement.getLocalName().equals(
+                            org.apache.axis2.Constants.MAP_KEY_ELEMENT_NAME)) {
+                        entryKey = processMapParameterObject( parameterArgTypes[0], omElement,
+                                helper, objectSupplier, genericType);
+                        continue;
+                    }
+                    if (omElement.getLocalName().equals(
+                            org.apache.axis2.Constants.MAP_VALUE_ELEMENT_NAME)) {
+                        entryValue = processMapParameterObject( parameterArgTypes[1],
+                                omElement, helper, objectSupplier, genericType);
+                        continue;
+                    }
+                }
+                if(entryKey != null){
+                    valueMap.put(entryKey, entryValue);
+                }
+            }
 
-		case Node.PROCESSING_INSTRUCTION_NODE:
-			ProcessingInstruction domPI = (ProcessingInstruction) node;
-			parent.addChild(fac.createOMProcessingInstruction(parent,
-					domPI.getTarget(), domPI.getData()));
-			break;
-
-		case Node.COMMENT_NODE:
-			parent.addChild(fac.createOMComment(parent,
-					((Comment) node).getNodeValue()));
-			break;
-
-		case Node.TEXT_NODE:
-			parent.addChild(fac.createOMText(node.getNodeValue()));
-			break;
-		}
-		if (node.getNextSibling() != null && parent != null) {
-			walker.setCurrentNode(node.getNextSibling());
-			traverseDOMDocument(fac, walker, parent);
-		}
-		return curr;
-	}
-	
-	private static OMElement processDOMAttributes(OMFactory fac,
-			OMElement curr, NamedNodeMap attMap) {
-		if (attMap != null && attMap.getLength() > 0) {			
-			for (int i = 0; i < attMap.getLength(); i++) {
-				Attr att = (Attr) attMap.item(i);
-				OMNamespace attrNS = null;				
-				if (att.getNamespaceURI() != null) {
-					attrNS = fac.createOMNamespace(att.getNamespaceURI(),
-							att.getPrefix());
-				}
-				curr.addAttribute(att.getNodeName(), att.getNodeValue(), attrNS);
-			}
-		}
-		return curr;
-	}
-	
-	/**
-	 * This method deserialize OM model in to a instance of java.util.Map
-	 *
-	 * @param parameterArgTypes the parameter argument types of Map <k,V>
-	 * @param omElement the OMElement
-	 * @param helper the helper
-	 * @param parts the parts
-	 * @param objectSupplier the object supplier
-	 * @param genericType the generic type
-	 * @return a instance of java.util.Map
-	 * @throws AxisFault the axis fault
-	 */
-	public static Map<Object,Object> processGenericsMapElement(Type[] parameterArgTypes,
-			OMElement omElement, MultirefHelper helper, Iterator parts,
-			ObjectSupplier objectSupplier, Type genericType) throws AxisFault {
-		Object objValue;			
-		Map<Object,Object> valueMap = getMapInstance(genericType) ;
-		while (parts.hasNext()) {
-			objValue = parts.next();
-			if (objValue instanceof OMElement) {
-				omElement = (OMElement) objValue;
-			} else {
-				continue;
-			}
-			
-			if(omElement != null){
-				Iterator entryParts = omElement.getChildren();
-				Object entryKey = null;
-				Object entryValue = null;
-				while (entryParts.hasNext()) {
-					objValue = entryParts.next();
-					if (objValue instanceof OMElement) {
-						omElement = (OMElement) objValue;
-					} else {
-						continue;
-					}
-					if (omElement.getLocalName().equals(
-							org.apache.axis2.Constants.MAP_KEY_ELEMENT_NAME)) {
-						entryKey = processMapParameterObject( parameterArgTypes[0], omElement,
-								helper, objectSupplier, genericType);
-						continue;
-					}
-					if (omElement.getLocalName().equals(
-							org.apache.axis2.Constants.MAP_VALUE_ELEMENT_NAME)) {
-						entryValue = processMapParameterObject( parameterArgTypes[1],
-								omElement, helper, objectSupplier, genericType);
-						continue;
-					}			
-				}
-				if(entryKey != null){
-					valueMap.put(entryKey, entryValue);
-				}				
-			}
-
-		}
-		return valueMap;
-	}
-	
-	
-	/**
-	 * This method convert a instance of java.util.Map into
-	 * OM object model for serialization. 
-	 *
-	 * @param fac the OMFactory
-	 * @param type of the java.util.Map
-	 * @param results the results values
-	 * @param typeTable the type table
-	 * @param elementFormDefault the element form default
-	 * @return list of OMElement
-	 */
-	public static List<OMElement> getMapElement(OMFactory fac, Type type,
-			Map results, TypeTable typeTable, boolean elementFormDefault) {
-		Iterator<Object> keyItr = results.keySet().iterator();
-		List<OMElement> list = new ArrayList<OMElement>();
+        }
+        return valueMap;
+    }
+    
+    
+    /**
+     * This method convert a instance of java.util.Map into
+     * OM object model for serialization. 
+     *
+     * @param fac the OMFactory
+     * @param type of the java.util.Map
+     * @param results the results values
+     * @param typeTable the type table
+     * @param elementFormDefault the element form default
+     * @return list of OMElement
+     */
+    public static List<OMElement> getMapElement(OMFactory fac, Type type,
+            Map results, TypeTable typeTable, boolean elementFormDefault) {
+        Iterator<Object> keyItr = results.keySet().iterator();
+        List<OMElement> list = new ArrayList<OMElement>();
         OMNamespace ns = null;
-		Type keyType = Object.class;
+        Type keyType = Object.class;
         Type valueType = Object.class;
         if (elementFormDefault) {
             ns = fac.createOMNamespace(
                     org.apache.axis2.Constants.AXIS2_MAP_NAMESPACE_URI,
                     org.apache.axis2.Constants.AXIS2_MAP_NAMESPACE_PREFIX);
-        }	
-		
-		if (type instanceof ParameterizedType) {
-			ParameterizedType aType = (ParameterizedType) type;
-			Type[] parameterArgTypes = aType.getActualTypeArguments();
-			keyType = parameterArgTypes[0];
-			valueType = parameterArgTypes[1];
-		}
+        }
+        
+        if (type instanceof ParameterizedType) {
+            ParameterizedType aType = (ParameterizedType) type;
+            Type[] parameterArgTypes = aType.getActualTypeArguments();
+            keyType = parameterArgTypes[0];
+            valueType = parameterArgTypes[1];
+        }
 
-		while (keyItr.hasNext()) {
-			OMElement omEntry;
-			Object key = keyItr.next();
-			Object value;
-			if (key != null) {
-				value = results.get(key);
-				List<Object> properties = new ArrayList<Object>();
+        while (keyItr.hasNext()) {
+            OMElement omEntry;
+            Object key = keyItr.next();
+            Object value;
+            if (key != null) {
+                value = results.get(key);
+                List<Object> properties = new ArrayList<Object>();
                 QName keyName;
                 QName valueName;
                 if (elementFormDefault) {
@@ -1549,37 +1464,37 @@
                             org.apache.axis2.Constants.MAP_VALUE_ELEMENT_NAME);
                 }
 
-				Object kValue = getMapParameterElement(fac,
-						org.apache.axis2.Constants.MAP_KEY_ELEMENT_NAME, key,
-						keyType, typeTable, ns, elementFormDefault);
-				
-				Object vValue = getMapParameterElement(fac,
-						org.apache.axis2.Constants.MAP_VALUE_ELEMENT_NAME,
-						value, valueType, typeTable, ns, elementFormDefault);
-				
-				if(Iterator.class.isAssignableFrom(kValue.getClass())){
-					Iterator valItr = (Iterator) kValue;
-					while (valItr.hasNext()) {
-						properties.add(keyName);
-						properties.add(valItr.next());						
-					}	
-				} else {
-					properties.add(keyName);
-					properties.add(kValue);
-				}			
+                Object kValue = getMapParameterElement(fac,
+                        org.apache.axis2.Constants.MAP_KEY_ELEMENT_NAME, key,
+                        keyType, typeTable, ns, elementFormDefault);
+                
+                Object vValue = getMapParameterElement(fac,
+                        org.apache.axis2.Constants.MAP_VALUE_ELEMENT_NAME,
+                        value, valueType, typeTable, ns, elementFormDefault);
+                
+                if(Iterator.class.isAssignableFrom(kValue.getClass())){
+                    Iterator valItr = (Iterator) kValue;
+                    while (valItr.hasNext()) {
+                        properties.add(keyName);
+                        properties.add(valItr.next());
+                    }
+                } else {
+                    properties.add(keyName);
+                    properties.add(kValue);
+                }
 
-				
-				if(vValue != null && Iterator.class.isAssignableFrom(vValue.getClass())){
-					Iterator valItr = (Iterator) vValue;
-					while (valItr.hasNext()) {
-						properties.add(valueName);
-						properties.add(valItr.next());						
-					}			
-				} else {
-					properties.add(valueName);
-					properties.add(vValue);
-				}
-				
+                
+                if(vValue != null && Iterator.class.isAssignableFrom(vValue.getClass())){
+                    Iterator valItr = (Iterator) vValue;
+                    while (valItr.hasNext()) {
+                        properties.add(valueName);
+                        properties.add(valItr.next());
+                    }
+                } else {
+                    properties.add(valueName);
+                    properties.add(vValue);
+                }
+                
                 QName entryQName;
                 if (elementFormDefault) {
                     entryQName = new QName(ns.getNamespaceURI(),
@@ -1590,302 +1505,301 @@
                             org.apache.axis2.Constants.MAP_ENTRY_ELEMENT_NAME);
 
                 }
-				XMLStreamReader pullParser = new ADBXMLStreamReaderImpl(
-				        entryQName, properties.toArray(), null,
-						typeTable, elementFormDefault);
+                XMLStreamReader pullParser = new ADBXMLStreamReaderImpl(
+                        entryQName, properties.toArray(), null,
+                        typeTable, elementFormDefault);
 
-				StAXOMBuilder stAXOMBuilder = new StAXOMBuilder(
-						OMAbstractFactory.getOMFactory(), new StreamWrapper(
-								pullParser));
-				omEntry = stAXOMBuilder.getDocumentElement();
-				list.add(omEntry);
-			}
-		}
-		return list;
-	}
-	
-	/**
-	 * Helper method to deserialize each parameter of Map.
-	 *
-	 * @param paraType the parameter type
-	 * @param omElement the OMElement
-	 * @param helper the helper
-	 * @param objectSupplier the object supplier
-	 * @param genericType the generic type
-	 * @return the object
-	 * @throws AxisFault the axis fault
-	 */
-	private static Object processMapParameterObject(Type paraType, OMElement omElement,
-			MultirefHelper helper, ObjectSupplier objectSupplier,
-			Type genericType) throws AxisFault {
-		if (paraType instanceof ParameterizedType) {
-			if (Map.class.isAssignableFrom((Class)
-					((ParameterizedType) paraType).getRawType())) {
-				return processGenericsMapElement(
-						((ParameterizedType) paraType).getActualTypeArguments(),
-						omElement, helper, omElement.getChildren(),
-						objectSupplier, paraType);
-			} else if (Collection.class	.isAssignableFrom((Class) 
-					((ParameterizedType) paraType).getRawType())) {				
-				return processGenericCollection(
-						omElement,
-						(ParameterizedType) paraType,
-						helper, objectSupplier);
-			} else {
+                OMXMLParserWrapper builder = OMXMLBuilderFactory.createStAXOMBuilder(
+                        new StreamWrapper(pullParser));
+                omEntry = builder.getDocumentElement();
+                list.add(omEntry);
+            }
+        }
+        return list;
+    }
+    
+    /**
+     * Helper method to deserialize each parameter of Map.
+     *
+     * @param paraType the parameter type
+     * @param omElement the OMElement
+     * @param helper the helper
+     * @param objectSupplier the object supplier
+     * @param genericType the generic type
+     * @return the object
+     * @throws AxisFault the axis fault
+     */
+    private static Object processMapParameterObject(Type paraType, OMElement omElement,
+            MultirefHelper helper, ObjectSupplier objectSupplier,
+            Type genericType) throws AxisFault {
+        if (paraType instanceof ParameterizedType) {
+            if (Map.class.isAssignableFrom((Class)
+                    ((ParameterizedType) paraType).getRawType())) {
+                return processGenericsMapElement(
+                        ((ParameterizedType) paraType).getActualTypeArguments(),
+                        omElement, helper, omElement.getChildren(),
+                        objectSupplier, paraType);
+            } else if (Collection.class.isAssignableFrom((Class) 
+                    ((ParameterizedType) paraType).getRawType())) {
+                return processGenericCollection(
+                        omElement,
+                        (ParameterizedType) paraType,
+                        helper, objectSupplier);
+            } else {
                 throw new AxisFault("Map parameter does not support for "
                         + ((ParameterizedType) paraType).getRawType());
-			}
+            }
 
-		} else {
-			return processObject(omElement, (Class) paraType, helper, true,
-					objectSupplier, genericType);
-		}
-	}
-	
-	/**
-	 * This method instantiate a Map instance according to the expected 
-	 * parameter type of the service method. a instance HashMap<Object, Object> 
-	 * returns as the default value and in case of Exception.   
-	 *
-	 * @param genericType the generic type
-	 * @return the map instance 
-	 */
-	private static Map<Object, Object> getMapInstance(Type genericType) {
-		 Class rowType;
-		 if (genericType instanceof ParameterizedType) {
-			 rowType = (Class) ((ParameterizedType) genericType).getRawType();			 
-		 } else {
-			 rowType = (Class) genericType;
-		 }
-		
-		if (Map.class.getName().equals(rowType.getName())) {
-			return new HashMap<Object, Object>();
-			
-		} else if (ConcurrentMap.class.getName().equals(rowType.getName())) {
-			return new ConcurrentHashMap<Object, Object>();
-			
-		} else if (SortedMap.class.getName().equals(rowType.getName())) {
-			return new TreeMap<Object, Object>();
-			
-		} 
-//		TODO - Enable this logic once the Axis2 move to Java 1.6.		
-//		else if (NavigableMap.class.getName().equals(rowType.getName())) {
-//			return new TreeMap<Object, Object>();
-//			
-//		}  else if (ConcurrentNavigableMap.class.getName().equals(rowType.getName())) {
-//			return new ConcurrentSkipListMap<Object, Object>();
-//		}
-//		
-		else {
-			try {
-				return (Map<Object, Object>) rowType.newInstance();
-			} catch (Exception e) {
-				return new HashMap<Object, Object>();
-			}
-		}
-	}
-	
-	/**
-	 * Process the provided return  value and constructs OMElement accordingly.  
-	 *
-	 * @param fac the OMFactory instance
-	 * @param elementName the element name for return OMElement
-	 * @param value the actual return value
-	 * @param valueType the value type of return value
-	 * @param typeTable the type table
-	 * @param ns the OMNamespace
-	 * @param elementFormDefault the element form default
-	 * @return the map parameter object
-	 */
-	private static Object getMapParameterElement(OMFactory fac,
-			String elementName, Object value, Type valueType,
-			TypeTable typeTable, OMNamespace ns, boolean elementFormDefault) {
+        } else {
+            return processObject(omElement, (Class) paraType, helper, true,
+                    objectSupplier, genericType);
+        }
+    }
+    
+    /**
+     * This method instantiate a Map instance according to the expected 
+     * parameter type of the service method. a instance HashMap<Object, Object> 
+     * returns as the default value and in case of Exception.   
+     *
+     * @param genericType the generic type
+     * @return the map instance 
+     */
+    private static Map<Object, Object> getMapInstance(Type genericType) {
+        Class rowType;
+        if (genericType instanceof ParameterizedType) {
+            rowType = (Class) ((ParameterizedType) genericType).getRawType();
+        } else {
+            rowType = (Class) genericType;
+        }
+        
+        if (Map.class.getName().equals(rowType.getName())) {
+            return new HashMap<Object, Object>();
+            
+        } else if (ConcurrentMap.class.getName().equals(rowType.getName())) {
+            return new ConcurrentHashMap<Object, Object>();
+            
+        } else if (SortedMap.class.getName().equals(rowType.getName())) {
+            return new TreeMap<Object, Object>();
+            
+        } 
+//        TODO - Enable this logic once the Axis2 move to Java 1.6.
+//        else if (NavigableMap.class.getName().equals(rowType.getName())) {
+//            return new TreeMap<Object, Object>();
+//            
+//        }  else if (ConcurrentNavigableMap.class.getName().equals(rowType.getName())) {
+//            return new ConcurrentSkipListMap<Object, Object>();
+//        }
+//        
+        else {
+            try {
+                return (Map<Object, Object>) rowType.newInstance();
+            } catch (Exception e) {
+                return new HashMap<Object, Object>();
+            }
+        }
+    }
+    
+    /**
+     * Process the provided return  value and constructs OMElement accordingly.  
+     *
+     * @param fac the OMFactory instance
+     * @param elementName the element name for return OMElement
+     * @param value the actual return value
+     * @param valueType the value type of return value
+     * @param typeTable the type table
+     * @param ns the OMNamespace
+     * @param elementFormDefault the element form default
+     * @return the map parameter object
+     */
+    private static Object getMapParameterElement(OMFactory fac,
+            String elementName, Object value, Type valueType,
+            TypeTable typeTable, OMNamespace ns, boolean elementFormDefault) {
          //TODO - key/value can be a Collection, Array , Dom document ,OMElement etc
-	    if(value == null) {
-	        return null;
-	    }
-		if (SimpleTypeMapper.isMap(value.getClass())) {
-			List<OMElement> childList = getMapElement(fac, valueType,
-					(Map) value, typeTable, elementFormDefault);
-			OMElement omValue;
-			if(elementFormDefault) {
-			    omValue = fac.createOMElement(elementName,
-	                    ns.getNamespaceURI(), ns.getPrefix());			    
-			} else {
-			    omValue = fac.createOMElement(elementName, null);
-			    
-			}
-			for (OMElement child : childList) {
-				omValue.addChild(child);
-			}
-			return omValue;
-			
-		} else if (SimpleTypeMapper.isCollection(value.getClass())) {	
-		    QName elementQName;
-		    if(elementFormDefault) {
-		       elementQName = new QName(ns.getNamespaceURI(), elementName,
-	                    ns.getPrefix());		        
-		    } else {
-		       elementQName = new QName(elementName);
-		        
-		    }
-			
-			return getCollectionElement(fac, valueType, (Collection) value,
-					elementName, null, elementQName, typeTable,
-					elementFormDefault).getChildren();
-			
-		} else if(SimpleTypeMapper.isDomDocument((Class)valueType)) {
-		    return convertDOMtoOM(fac, value);
-		    
-		} else if (SimpleTypeMapper.isObjectType((Class) valueType)) {
-			OMElement omValue;
-			omValue = fac.createOMElement(elementName, ns);
-			if (SimpleTypeMapper.isSimpleType(value)) {
-				omValue.addChild(fac.createOMText(SimpleTypeMapper
-						.getStringValue(value)));
+        if(value == null) {
+            return null;
+        }
+        if (SimpleTypeMapper.isMap(value.getClass())) {
+            List<OMElement> childList = getMapElement(fac, valueType,
+                    (Map) value, typeTable, elementFormDefault);
+            OMElement omValue;
+            if(elementFormDefault) {
+                omValue = fac.createOMElement(elementName,
+                        ns.getNamespaceURI(), ns.getPrefix());
             } else {
-			    QName name;
-			    if(elementFormDefault) {
-			        name = new QName(ns.getNamespaceURI(), elementName,
-	                        ns.getPrefix());			        
-			    } else {
-			        name = new QName(elementName);			        
-			    }
-				XMLStreamReader xr = BeanUtil.getPullParser(value, name,
-						typeTable, true, false);
-				OMXMLParserWrapper stAXOMBuilder = OMXMLBuilderFactory
-						.createStAXOMBuilder(OMAbstractFactory.getOMFactory(),
-								new StreamWrapper(xr));
-				omValue = stAXOMBuilder.getDocumentElement();
+                omValue = fac.createOMElement(elementName, null);
+                
+            }
+            for (OMElement child : childList) {
+                omValue.addChild(child);
+            }
+            return omValue;
+            
+        } else if (SimpleTypeMapper.isCollection(value.getClass())) {
+            QName elementQName;
+            if(elementFormDefault) {
+               elementQName = new QName(ns.getNamespaceURI(), elementName,
+                        ns.getPrefix());
+            } else {
+               elementQName = new QName(elementName);
+                
+            }
+            
+            return getCollectionElement(fac, valueType, (Collection) value,
+                    elementName, null, elementQName, typeTable,
+                    elementFormDefault).getChildren();
+            
+        } else if(SimpleTypeMapper.isDomDocument((Class)valueType)) {
+            return convertDOMtoOM(fac, value);
+            
+        } else if (SimpleTypeMapper.isObjectType((Class) valueType)) {
+            OMElement omValue;
+            omValue = fac.createOMElement(elementName, ns);
+            if (SimpleTypeMapper.isSimpleType(value)) {
+                omValue.addChild(fac.createOMText(SimpleTypeMapper
+                        .getStringValue(value)));
+            } else {
+                QName name;
+                if(elementFormDefault) {
+                    name = new QName(ns.getNamespaceURI(), elementName,
+                            ns.getPrefix());
+                } else {
+                    name = new QName(elementName);
+                }
+                XMLStreamReader xr = BeanUtil.getPullParser(value, name,
+                        typeTable, true, false);
+                OMXMLParserWrapper stAXOMBuilder = OMXMLBuilderFactory
+                        .createStAXOMBuilder(OMAbstractFactory.getOMFactory(),
+                                new StreamWrapper(xr));
+                omValue = stAXOMBuilder.getDocumentElement();
 
-			}
-			addInstanceTypeAttribute(fac, omValue, value, typeTable);
-			return omValue;
-			
-		} else if (SimpleTypeMapper.isSimpleType(value)) {
+            }
+            addInstanceTypeAttribute(fac, omValue, value, typeTable);
+            return omValue;
+            
+        } else if (SimpleTypeMapper.isSimpleType(value)) {
             OMElement omValue;
             omValue = fac.createOMElement(elementName, ns);
             omValue.addChild(fac.createOMText(SimpleTypeMapper
                     .getStringValue(value)));
-            return omValue;            
+            return omValue;
         } 
-		return value;
-	}
-	
-	/**
-	 * Process generic collection.
-	 *
-	 * @param omElement the om element
-	 * @param generictype the generictype
-	 * @param helper the helper
-	 * @param objectSupplier the object supplier
-	 * @return the collection
-	 * @throws AxisFault the axis fault
-	 */
-	public static Collection<Object> processGenericCollection(OMElement omElement,
-			Type generictype, MultirefHelper helper,
-			ObjectSupplier objectSupplier) throws AxisFault {
-	QName partName = omElement.getQName();
-	Type parameter = Object.class;
-	if (generictype != null && (generictype instanceof ParameterizedType)) {
-	    ParameterizedType aType = (ParameterizedType) generictype;
-	    Type[] parameterArgTypes = aType.getActualTypeArguments();
-	    parameter = parameterArgTypes[0];
-	}
-	/*
-	 * Fix for AXIS2-5090. Use siblings with same QName instead of look for
-	 * children because list elements available on same level.
-	 */
-	Iterator parts = omElement.getParent().getChildrenWithName(partName);
-	return processGenericsElement(parameter, omElement, helper, parts,
-		objectSupplier, generictype);
-	}	
-	
-	/**
-	 * Process collection.
-	 *
-	 * @param omElement the om element
-	 * @param toReturn the to return
-	 * @param generictype the generictype
-	 * @param helper the helper
-	 * @param objectSupplier the object supplier
-	 * @param parts the parts
-	 * @param bare the bare
-	 * @return the collection
-	 * @throws AxisFault the axis fault
-	 */
-	public static Collection<Object> processGenericCollection(OMElement omElement,
-		OMElement[] toReturn, Type generictype, MultirefHelper helper,
-		ObjectSupplier objectSupplier, Iterator parts, boolean bare)
-		throws AxisFault {
-	    String currentLocalName = omElement.getLocalName();
-	    Type parameter = Object.class;
-	    List<OMElement> eleList = new ArrayList<OMElement>();
-	    // in 'Bare' style no need to add first element to the list.
-	    if (!bare) {
-		eleList.add(omElement);
-	    }
+        return value;
+    }
+    
+    /**
+     * Process generic collection.
+     *
+     * @param omElement the om element
+     * @param generictype the generictype
+     * @param helper the helper
+     * @param objectSupplier the object supplier
+     * @return the collection
+     * @throws AxisFault the axis fault
+     */
+    public static Collection<Object> processGenericCollection(OMElement omElement,
+            Type generictype, MultirefHelper helper,
+            ObjectSupplier objectSupplier) throws AxisFault {
+    QName partName = omElement.getQName();
+    Type parameter = Object.class;
+    if (generictype != null && (generictype instanceof ParameterizedType)) {
+        ParameterizedType aType = (ParameterizedType) generictype;
+        Type[] parameterArgTypes = aType.getActualTypeArguments();
+        parameter = parameterArgTypes[0];
+    }
+    /*
+     * Fix for AXIS2-5090. Use siblings with same QName instead of look for
+     * children because list elements available on same level.
+     */
+    Iterator<OMElement> parts = omElement.getParent().getChildrenWithName(partName);
+    return processGenericsElement(parameter, omElement, helper, parts,
+        objectSupplier, generictype);
+    }
+    
+    /**
+     * Process collection.
+     *
+     * @param omElement the om element
+     * @param toReturn the to return
+     * @param generictype the generictype
+     * @param helper the helper
+     * @param objectSupplier the object supplier
+     * @param parts the parts
+     * @param bare the bare
+     * @return the collection
+     * @throws AxisFault the axis fault
+     */
+    public static Collection<Object> processGenericCollection(OMElement omElement,
+        OMElement[] toReturn, Type generictype, MultirefHelper helper,
+        ObjectSupplier objectSupplier, Iterator parts, boolean bare)
+        throws AxisFault {
+        String currentLocalName = omElement.getLocalName();
+        Type parameter = Object.class;
+        List<OMElement> eleList = new ArrayList<OMElement>();
+        // in 'Bare' style no need to add first element to the list.
+        if (!bare) {
+            eleList.add(omElement);
+        }
 
-	    if (generictype != null && (generictype instanceof ParameterizedType)) {
-		ParameterizedType aType = (ParameterizedType) generictype;
-		Type[] parameterArgTypes = aType.getActualTypeArguments();
-		parameter = parameterArgTypes[0];
-	    }
+        if (generictype != null && (generictype instanceof ParameterizedType)) {
+            ParameterizedType aType = (ParameterizedType) generictype;
+            Type[] parameterArgTypes = aType.getActualTypeArguments();
+            parameter = parameterArgTypes[0];
+        }
 
-	    while (parts.hasNext()) {
-		Object objValue = parts.next();
-		OMElement currElement;
-		if (objValue instanceof OMElement) {
-		    currElement = (OMElement) objValue;
-		} else {
-		    continue;
-		}
-		if (currentLocalName.equals(currElement.getLocalName())) {
-		    eleList.add(currElement);
-		} else {
-		    // This just a container to bring back un-proceeded OMEleemnt.
-		    toReturn[0] = currElement;
-		    break;
-		}
-	    }
-	    return processGenericsElement(parameter, omElement, helper,
-		    eleList.iterator(), objectSupplier, generictype);
-	}	
+        while (parts.hasNext()) {
+            Object objValue = parts.next();
+            OMElement currElement;
+            if (objValue instanceof OMElement) {
+                currElement = (OMElement) objValue;
+            } else {
+                continue;
+            }
+            if (currentLocalName.equals(currElement.getLocalName())) {
+                eleList.add(currElement);
+            } else {
+                // This just a container to bring back un-proceeded OMEleemnt.
+                toReturn[0] = currElement;
+                break;
+            }
+        }
+        return processGenericsElement(parameter, omElement, helper,
+            eleList.iterator(), objectSupplier, generictype);
+    }
 
-	/**
-	 * Gets the collection element.
-	 *
-	 * @param fac the fac
-	 * @param type the type
-	 * @param results the results
-	 * @param name the name
-	 * @param innerName the inner name
-	 * @param elementQName the element q name
-	 * @param typeTable the type table
-	 * @param elementFormDefault the element form default
-	 * @return the collection element
-	 */
-	public static OMElement getCollectionElement(OMFactory fac, Type type,
-		Collection results, String name, String innerName,
-		QName elementQName, TypeTable typeTable, boolean elementFormDefault) {
+    /**
+     * Gets the collection element.
+     *
+     * @param fac the fac
+     * @param type the type
+     * @param results the results
+     * @param name the name
+     * @param innerName the inner name
+     * @param elementQName the element q name
+     * @param typeTable the type table
+     * @param elementFormDefault the element form default
+     * @return the collection element
+     */
+    public static OMElement getCollectionElement(OMFactory fac, Type type,
+        Collection results, String name, String innerName,
+        QName elementQName, TypeTable typeTable, boolean elementFormDefault) {
 
-	    String elementName = (innerName == null) ? name : innerName;
-	    Iterator<Object> itr = results.iterator();
-	    List<Object> properties = new ArrayList<Object>();
-	    OMNamespace ns = fac.createOMNamespace(elementQName.getNamespaceURI(),
-		    elementQName.getPrefix());
-	    Type valueType = Object.class;
-	    if (type instanceof ParameterizedType) {
-		ParameterizedType aType = (ParameterizedType) type;
-		Type[] parameterArgTypes = aType.getActualTypeArguments();
-		valueType = parameterArgTypes[0];
-	    }
+        String elementName = (innerName == null) ? name : innerName;
+        Iterator<Object> itr = results.iterator();
+        List<Object> properties = new ArrayList<Object>();
+        OMNamespace ns = fac.createOMNamespace(elementQName.getNamespaceURI(),
+            elementQName.getPrefix());
+        Type valueType = Object.class;
+        if (type instanceof ParameterizedType) {
+            ParameterizedType aType = (ParameterizedType) type;
+            Type[] parameterArgTypes = aType.getActualTypeArguments();
+            valueType = parameterArgTypes[0];
+        }
 
-	    while (itr.hasNext()) {
-		Object value = itr.next();
-		if (value != null) {
-		    value = getCollectionItemElement(fac, elementName, value,
-			    valueType, typeTable, ns, elementFormDefault);
+        while (itr.hasNext()) {
+            Object value = itr.next();
+            if (value != null) {
+                value = getCollectionItemElement(fac, elementName, value,
+                        valueType, typeTable, ns, elementFormDefault);
                 QName valueQName;
                 if (elementFormDefault) {
                     valueQName = new QName(ns.getNamespaceURI(), elementName,
@@ -1893,10 +1807,10 @@
                 } else {
                     valueQName = new QName(elementName);
                 }
-		    properties.add(valueQName);
-		    properties.add(value);
-		}
-	    }
+                properties.add(valueQName);
+                properties.add(value);
+            }
+        }
         QName eleQName;
         if (elementFormDefault) {
             eleQName = new QName(ns.getNamespaceURI(),
@@ -1904,55 +1818,55 @@
         } else {
             eleQName = new QName(elementQName.getLocalPart());
         }
-	    XMLStreamReader pullParser = new ADBXMLStreamReaderImpl(eleQName, properties.toArray(), null, typeTable,
-		    elementFormDefault);
+        XMLStreamReader pullParser = new ADBXMLStreamReaderImpl(eleQName, properties.toArray(), null, typeTable,
+            elementFormDefault);
 
-	    StAXOMBuilder stAXOMBuilder = new StAXOMBuilder(
-		    OMAbstractFactory.getOMFactory(), new StreamWrapper(pullParser));
-	    return stAXOMBuilder.getDocumentElement();
-	}	
+        OMXMLParserWrapper builder = OMXMLBuilderFactory.createStAXOMBuilder(
+            new StreamWrapper(pullParser));
+        return builder.getDocumentElement();
+    }
 
-	/**
-	 * Gets the collection item element.
-	 *
-	 * @param fac the fac
-	 * @param elementName the element name
-	 * @param value the value
-	 * @param valueType the value type
-	 * @param typeTable the type table
-	 * @param ns the ns
-	 * @param elementFormDefault the element form default
-	 * @return the collection item element
-	 */
-	private static Object getCollectionItemElement(OMFactory fac,
-		String elementName, Object value, Type valueType,
-		TypeTable typeTable, OMNamespace ns, boolean elementFormDefault) {
-	    if (SimpleTypeMapper.isMap(value.getClass())) {
-		List<OMElement> childList = getMapElement(fac, valueType,
-			(Map) value, typeTable, elementFormDefault);
-		OMElement omValue = fac.createOMElement(elementName,
-			ns.getNamespaceURI(), ns.getPrefix());
-		for (OMElement child : childList) {
-		    omValue.addChild(child);
-		}
-		return omValue;
-
-	    } else if (SimpleTypeMapper.isCollection(value.getClass())) {
-		return getCollectionElement(
-			fac,
-			valueType,
-			(Collection) value,
-			elementName,
-			Constants.INNER_ARRAY_COMPLEX_TYPE_NAME,
-			new QName(ns.getNamespaceURI(), elementName, ns.getPrefix()),
-			typeTable, elementFormDefault);
-	    } else if (SimpleTypeMapper.isObjectType((Class) valueType)) {
-		OMElement omValue;
-		omValue = fac.createOMElement(elementName, ns);
-		if (SimpleTypeMapper.isSimpleType(value)) {
-		    omValue.addChild(fac.createOMText(SimpleTypeMapper
-			    .getStringValue(value)));
-		} else {
+    /**
+     * Gets the collection item element.
+     *
+     * @param fac the fac
+     * @param elementName the element name
+     * @param value the value
+     * @param valueType the value type
+     * @param typeTable the type table
+     * @param ns the ns
+     * @param elementFormDefault the element form default
+     * @return the collection item element
+     */
+    private static Object getCollectionItemElement(OMFactory fac,
+            String elementName, Object value, Type valueType,
+            TypeTable typeTable, OMNamespace ns, boolean elementFormDefault) {
+        if (SimpleTypeMapper.isMap(value.getClass())) {
+            List<OMElement> childList = getMapElement(fac, valueType,
+                (Map) value, typeTable, elementFormDefault);
+            OMElement omValue = fac.createOMElement(elementName,
+                ns.getNamespaceURI(), ns.getPrefix());
+            for (OMElement child : childList) {
+                omValue.addChild(child);
+            }
+            return omValue;
+    
+        } else if (SimpleTypeMapper.isCollection(value.getClass())) {
+            return getCollectionElement(
+                fac,
+                valueType,
+                (Collection) value,
+                elementName,
+                Constants.INNER_ARRAY_COMPLEX_TYPE_NAME,
+                new QName(ns.getNamespaceURI(), elementName, ns.getPrefix()),
+                typeTable, elementFormDefault);
+        } else if (SimpleTypeMapper.isObjectType((Class) valueType)) {
+            OMElement omValue;
+            omValue = fac.createOMElement(elementName, ns);
+            if (SimpleTypeMapper.isSimpleType(value)) {
+                omValue.addChild(fac.createOMText(SimpleTypeMapper
+                    .getStringValue(value)));
+            } else {
                 QName name;
                 if (elementFormDefault) {
                     name = new QName(ns.getNamespaceURI(), elementName,
@@ -1961,71 +1875,71 @@
                     name = new QName(elementName);
                 }
                 XMLStreamReader xr = BeanUtil.getPullParser(value, name,
-			    typeTable, true, false);
-		    OMXMLParserWrapper stAXOMBuilder = OMXMLBuilderFactory
-		    .createStAXOMBuilder(OMAbstractFactory.getOMFactory(),
-			    new StreamWrapper(xr));
-		    omValue = stAXOMBuilder.getDocumentElement();
+                        typeTable, true, false);
+                OMXMLParserWrapper stAXOMBuilder = OMXMLBuilderFactory
+                        .createStAXOMBuilder(OMAbstractFactory.getOMFactory(),
+                                new StreamWrapper(xr));
+                omValue = stAXOMBuilder.getDocumentElement();
 
-		}
-		addInstanceTypeAttribute(fac, omValue, value, typeTable);
-		return omValue;
-	    }
-	    return value;
-	}
-	
-	/**
-	 * Gets the collection instance object according to the genericType passed.
-	 *
-	 * @param genericType the generic type
-	 * @return the collection instance
-	 */
-	private static Collection<Object> getCollectionInstance(Type genericType) {
-	    Class rowType;
-	    if (genericType instanceof ParameterizedType) {
-		rowType = (Class) ((ParameterizedType) genericType).getRawType();
-	    } else {
-		rowType = (Class) genericType;
-	    }
+            }
+            addInstanceTypeAttribute(fac, omValue, value, typeTable);
+            return omValue;
+        }
+        return value;
+    }
+    
+    /**
+     * Gets the collection instance object according to the genericType passed.
+     *
+     * @param genericType the generic type
+     * @return the collection instance
+     */
+    private static Collection<Object> getCollectionInstance(Type genericType) {
+        Class rowType;
+        if (genericType instanceof ParameterizedType) {
+            rowType = (Class) ((ParameterizedType) genericType).getRawType();
+        } else {
+            rowType = (Class) genericType;
+        }
 
-	    if (Collection.class.getName().equals(rowType.getName())
-		    || List.class.getName().equals(rowType.getName())) {
-		return new ArrayList<Object>();
+        if (Collection.class.getName().equals(rowType.getName())
+            || List.class.getName().equals(rowType.getName())) {
+            return new ArrayList<Object>();
 
-	    } else if (Set.class.getName().equals(rowType.getName())) {
-		return new HashSet<Object>();
+        } else if (Set.class.getName().equals(rowType.getName())) {
+            return new HashSet<Object>();
 
-	    } else if (Queue.class.getName().equals(rowType.getName())) {
-		return new LinkedList<Object>();
+        } else if (Queue.class.getName().equals(rowType.getName())) {
+            return new LinkedList<Object>();
 
-	    }  else if (BlockingQueue.class.getName().equals(rowType.getName())) {
-		return new LinkedBlockingQueue<Object>();
+        } else if (BlockingQueue.class.getName().equals(rowType.getName())) {
+            return new LinkedBlockingQueue<Object>();
 
-	    } 
-//	    TODO - Enable this logic once the Axis2 move to Java 1.6.
-//	    else if (BlockingDeque.class.getName().equals(rowType.getName())) {
-//		return new LinkedBlockingDeque<Object>();
+        } 
+//        TODO - Enable this logic once the Axis2 move to Java 1.6.
+//        else if (BlockingDeque.class.getName().equals(rowType.getName())) {
+//        return new LinkedBlockingDeque<Object>();
 //
-//	    }else if (NavigableSet.class.getName().equals(rowType.getName())
-//		    || SortedSet.class.getName().equals(rowType.getName())) {
-//		return new TreeSet<Object>();
+//        }else if (NavigableSet.class.getName().equals(rowType.getName())
+//            || SortedSet.class.getName().equals(rowType.getName())) {
+//        return new TreeSet<Object>();
 //
-//	    } 	    
-	    else {
-		try {
-		    return (Collection<Object>) rowType.newInstance();
-		} catch (Exception e) {
-		    return new ArrayList<Object>();
-		}
-	    }
-	}
-	
+//        }
+        else {
+            try {
+                return (Collection<Object>) rowType.newInstance();
+            } catch (Exception e) {
+                return new ArrayList<Object>();
+            }
+        }
+    }
+    
     private static XMLGregorianCalendar getXMLGregorianCalendar(
             OMElement beanElement) throws DatatypeConfigurationException {
         String greCal = beanElement.getText();
         XMLGregorianCalendar xmlCal = DatatypeFactory.newInstance()
                 .newXMLGregorianCalendar(greCal);
         return xmlCal;
-    }	
+    }
 
 }
diff --git a/modules/adb/src/org/apache/axis2/databinding/utils/Constants.java b/modules/adb/src/org/apache/axis2/databinding/utils/Constants.java
index 20d3397..36fcc36 100644
--- a/modules/adb/src/org/apache/axis2/databinding/utils/Constants.java
+++ b/modules/adb/src/org/apache/axis2/databinding/utils/Constants.java
@@ -19,7 +19,6 @@
 
 package org.apache.axis2.databinding.utils;
 
-import org.apache.axiom.om.OMConstants;
 import org.apache.axis2.databinding.utils.reader.OMAttribKey;
 import org.apache.axis2.databinding.utils.reader.OMElementKey;
 
@@ -38,8 +37,4 @@
 
     static Object OM_ATTRIBUTE_KEY = new OMAttribKey();
     static Object OM_ELEMENT_KEY = new OMElementKey();
-
-    static final String IS_BINARY = OMConstants.IS_BINARY;
-    static final String DATA_HANDLER = OMConstants.DATA_HANDLER;
-    static final String OPTIMIZATION_ENABLED = OMConstants.IS_DATA_HANDLERS_AWARE;
 }
diff --git a/modules/adb/src/org/apache/axis2/databinding/utils/ConverterUtil.java b/modules/adb/src/org/apache/axis2/databinding/utils/ConverterUtil.java
index e1e211c..ffebc21 100644
--- a/modules/adb/src/org/apache/axis2/databinding/utils/ConverterUtil.java
+++ b/modules/adb/src/org/apache/axis2/databinding/utils/ConverterUtil.java
@@ -1286,7 +1286,9 @@
      * @return 0 if equal , + value if greater than , - value if less than
      */
     public static int compare(int intValue, String value) {
-        return intValue - Integer.parseInt(value);
+        int other = Integer.parseInt(value);
+        return intValue < other ? -1 : (intValue == other ? 0 : 1);
+
     }
 
     /**
diff --git a/modules/adb/src/org/apache/axis2/databinding/utils/FactoryUtil.java b/modules/adb/src/org/apache/axis2/databinding/utils/FactoryUtil.java
new file mode 100644
index 0000000..53a211a
--- /dev/null
+++ b/modules/adb/src/org/apache/axis2/databinding/utils/FactoryUtil.java
@@ -0,0 +1,37 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.axis2.databinding.utils;
+
+import javax.xml.stream.XMLStreamReader;
+
+import org.apache.axiom.om.OMDocument;
+import org.apache.axiom.om.OMElement;
+import org.apache.axiom.om.OMXMLBuilderFactory;
+import org.apache.axiom.util.stax.XMLFragmentStreamReader;
+
+public final class FactoryUtil {
+    private FactoryUtil() {}
+
+    public static OMElement extractElement(XMLStreamReader reader, boolean proceedToNext) {
+        OMDocument document = OMXMLBuilderFactory.createStAXOMBuilder(
+                new XMLFragmentStreamReader(reader, proceedToNext)).getDocument();
+        document.build();
+        return document.getOMDocumentElement();
+    }
+}
diff --git a/modules/adb/src/org/apache/axis2/databinding/utils/MultirefHelper.java b/modules/adb/src/org/apache/axis2/databinding/utils/MultirefHelper.java
index 1b6fca7..5e30c20 100644
--- a/modules/adb/src/org/apache/axis2/databinding/utils/MultirefHelper.java
+++ b/modules/adb/src/org/apache/axis2/databinding/utils/MultirefHelper.java
@@ -25,7 +25,7 @@
 import org.apache.axiom.om.OMFactory;
 import org.apache.axiom.om.OMNode;
 import org.apache.axiom.om.OMText;
-import org.apache.axiom.om.impl.builder.StAXOMBuilder;
+import org.apache.axiom.om.OMXMLBuilderFactory;
 import org.apache.axiom.soap.SOAPBody;
 import org.apache.axiom.soap.SOAPEnvelope;
 import org.apache.axis2.AxisFault;
@@ -105,7 +105,7 @@
     }
 
     private OMElement elementClone(OMElement ele) {
-        return new StAXOMBuilder(ele.getXMLStreamReader()).getDocumentElement();
+        return OMXMLBuilderFactory.createStAXOMBuilder(ele.getXMLStreamReader()).getDocumentElement();
     }
 
     public Object processRef(Class javatype, String id,
diff --git a/modules/adb/src/org/apache/axis2/databinding/utils/NamedStaxOMBuilder.java b/modules/adb/src/org/apache/axis2/databinding/utils/NamedStaxOMBuilder.java
deleted file mode 100644
index 97862fa..0000000
--- a/modules/adb/src/org/apache/axis2/databinding/utils/NamedStaxOMBuilder.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.axis2.databinding.utils;
-
-import org.apache.axiom.om.OMElement;
-import org.apache.axiom.om.impl.builder.StAXOMBuilder;
-
-import javax.xml.namespace.QName;
-import javax.xml.stream.XMLStreamConstants;
-import javax.xml.stream.XMLStreamReader;
-
-public class NamedStaxOMBuilder {
-
-    //wrap a StAXOMBuilder
-    private StAXOMBuilder builder;
-    private XMLStreamReader reader;
-    private QName nameToMatch;
-
-    /**
-     * @param xmlStreamReader
-     * @param nameToMatch
-     */
-    public NamedStaxOMBuilder(XMLStreamReader xmlStreamReader, QName nameToMatch) {
-        reader = xmlStreamReader;
-        builder = new StAXOMBuilder(xmlStreamReader);
-        this.nameToMatch = nameToMatch;
-    }
-
-    /**
-     *
-     */
-    public OMElement getOMElement() {
-        //force to build within the given QName
-        boolean done = false;
-        int depth = 0;
-        while (!done) {
-            if (reader.getEventType() == XMLStreamConstants.END_ELEMENT) {
-                depth--;
-            } else if (reader.getEventType() == XMLStreamConstants.START_ELEMENT) {
-                depth++;
-            }
-
-            if (depth == 0 && reader.getEventType() == XMLStreamConstants.END_ELEMENT &&
-                    nameToMatch.equals(reader.getName())) {
-                done = true;
-            } else {
-                builder.next();
-            }
-
-        }
-
-        return builder.getDocumentElement();
-    }
-
-
-}
diff --git a/modules/adb/src/org/apache/axis2/databinding/utils/SimpleArrayReaderStateMachine.java b/modules/adb/src/org/apache/axis2/databinding/utils/SimpleArrayReaderStateMachine.java
deleted file mode 100644
index d664b80..0000000
--- a/modules/adb/src/org/apache/axis2/databinding/utils/SimpleArrayReaderStateMachine.java
+++ /dev/null
@@ -1,218 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.axis2.databinding.utils;
-
-import javax.xml.namespace.QName;
-import javax.xml.stream.XMLStreamConstants;
-import javax.xml.stream.XMLStreamException;
-import javax.xml.stream.XMLStreamReader;
-import java.util.ArrayList;
-import java.util.List;
-
-/** A state machine that reads arrays with simple content. returns a string array */
-public class SimpleArrayReaderStateMachine implements States, Constants {
-
-    private QName elementNameToTest = null;
-    private int currentState = INIT_STATE;
-    private boolean nillable = false;
-
-    private boolean canbeAbsent = false;
-
-    private List list = new ArrayList();
-
-    /** @return an array of strings */
-    public String[] getTextArray() {
-        return (String[])list.toArray(new String[list.size()]);
-    }
-
-
-    public void setNillable() {
-        nillable = true;
-    }
-
-    public boolean isCanbeAbsent() {
-        return canbeAbsent;
-    }
-
-    public void setCanbeAbsent(boolean canbeAbsent) {
-        this.canbeAbsent = canbeAbsent;
-    }
-
-    /**
-     * Resets the state machine. Once the reset is called the state machine is good enough for a
-     * fresh run
-     */
-    public void reset() {
-        elementNameToTest = null;
-        currentState = INIT_STATE;
-        nillable = false;
-        list = new ArrayList();
-    }
-
-    public void setElementNameToTest(QName elementNameToTest) {
-        this.elementNameToTest = elementNameToTest;
-    }
-
-    /**
-     * public read method - reads a given reader to extract the text value
-     *
-     * @param reader
-     */
-    public void read(XMLStreamReader reader) throws XMLStreamException {
-
-        do {
-            updateState(reader);
-
-            //test for the nillable attribute
-            if (currentState == START_ELEMENT_FOUND_STATE &&
-                    nillable) {
-                if (TRUE.equals(reader.getAttributeValue(XSI_NAMESPACE, NIL))) {
-                    list.add(null);
-                    //force the state to be null found
-                    currentState = NULLED_STATE;
-                }
-            }
-
-            if (currentState == TEXT_FOUND_STATE) {
-                //read the text value and store it in the list
-                list.add(reader.getText());
-            }
-            //increment the parser only if the  state is
-            //not finished
-            if (currentState != FINISHED_STATE
-                    && currentState != ILLEGAL_STATE) {
-                reader.next();
-            }
-
-        } while (currentState != FINISHED_STATE
-                && currentState != ILLEGAL_STATE);
-
-        if (currentState == ILLEGAL_STATE) {
-            throw new RuntimeException("Illegal state!");
-        }
-
-    }
-
-
-    private void updateState(XMLStreamReader reader) throws XMLStreamException {
-        int event = reader.getEventType();
-
-        switch (currentState) {
-
-            case INIT_STATE:
-                if (event == XMLStreamConstants.START_DOCUMENT) {
-                    currentState = STARTED_STATE;
-                } else if (event == XMLStreamConstants.START_ELEMENT) {
-                    if (elementNameToTest.equals(reader.getName())) {
-                        currentState = START_ELEMENT_FOUND_STATE;
-                    } else {
-                        //we found a start element that does not have
-                        //the name of the element
-
-                        currentState = canbeAbsent ?
-                                FINISHED_STATE :
-                                STARTED_STATE;
-                    }
-                } else if (event == XMLStreamConstants.END_ELEMENT) {
-                    // an end element is found at the init state
-                    // we should break the process here ?
-                    if (!elementNameToTest.equals(reader.getName())) {
-                        currentState = FINISHED_STATE;
-                    }
-                }
-                break;
-
-            case STARTED_STATE:
-                if (event == XMLStreamConstants.END_ELEMENT) {
-                    if (elementNameToTest.equals(reader.getName())) {
-                        currentState = ILLEGAL_STATE;
-                    } else {
-                        currentState = FINISHED_STATE;
-                    }
-                } else if (event == XMLStreamConstants.START_ELEMENT) {
-                    QName name = reader.getName();
-                    if (elementNameToTest.equals(name)) {
-                        currentState = START_ELEMENT_FOUND_STATE;
-                    }
-                }
-                break;
-
-            case START_ELEMENT_FOUND_STATE:
-                if (event == XMLStreamConstants.CHARACTERS) {
-                    currentState = TEXT_FOUND_STATE;
-                }
-                break;
-
-            case TEXT_FOUND_STATE:
-                if (event == XMLStreamConstants.END_ELEMENT) {
-                    if (elementNameToTest.equals(reader.getName())) {
-                        currentState = END_ELEMENT_FOUND_STATE;
-                    } else {
-                        currentState = ILLEGAL_STATE;
-                    }
-                } else if (event == XMLStreamConstants.CHARACTERS) {
-                    //another char event -
-                    //so append it to the current text
-                }
-                break;
-            case NULLED_STATE:
-                //read upto the end and set the state to END_ELEMENT_FOUND_STATE
-                while (event != XMLStreamConstants.END_ELEMENT) {
-                    event = reader.next();
-                }
-                currentState = END_ELEMENT_FOUND_STATE;
-                break;
-            case END_ELEMENT_FOUND_STATE:
-                if (event == XMLStreamConstants.START_ELEMENT) {
-                    //restart the parsing
-                    if (elementNameToTest.equals(reader.getName())) {
-                        currentState = START_ELEMENT_FOUND_STATE;
-                    } else {
-                        currentState = FINISHED_STATE;
-                    }
-                    //another end element found after end-element
-                } else if (event == XMLStreamConstants.END_ELEMENT) {
-                    currentState = FINISHED_STATE;
-                    //end  document found
-                }
-                break;
-            default:
-
-                //characters found - if this is a characters event that was in the correct place then
-                //it would have been handled already. we need to check whether this is a ignorable
-                //whitespace and if not push the state machine to a illegal state.
-                if (event == XMLStreamConstants.CHARACTERS) {
-                    if (reader.getText().trim().length() == 0) {
-                        //the text is empty - don't change the state
-                    } else {
-                        //we do NOT handle mixed content
-                        currentState = ILLEGAL_STATE;
-                    }
-
-                } else {
-                    currentState = ILLEGAL_STATE;
-                }
-
-        }
-
-    }
-
-
-}
diff --git a/modules/adb/src/org/apache/axis2/databinding/utils/SimpleElementReaderStateMachine.java b/modules/adb/src/org/apache/axis2/databinding/utils/SimpleElementReaderStateMachine.java
deleted file mode 100644
index 0e8d38e..0000000
--- a/modules/adb/src/org/apache/axis2/databinding/utils/SimpleElementReaderStateMachine.java
+++ /dev/null
@@ -1,219 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.axis2.databinding.utils;
-
-import javax.xml.namespace.QName;
-import javax.xml.stream.XMLStreamConstants;
-import javax.xml.stream.XMLStreamException;
-import javax.xml.stream.XMLStreamReader;
-
-/**
- * A state machine to read elements with simple content. Returns the text of the element and the
- * stream reader will be one event beyond the end element at return
- */
-public class SimpleElementReaderStateMachine implements States, Constants {
-
-
-    private QName elementNameToTest = null;
-    private int currentState = INIT_STATE;
-    private boolean nillable = false;
-    private String text = "";
-    private String errorMessage = "";
-    private boolean elementSkipped = false;
-
-    public boolean isElementSkipped() {
-        return elementSkipped;
-    }
-
-    /**
-     *
-     */
-    public String getText() {
-        return text;
-    }
-
-    /** sets the nillable flag */
-    public void setNillable() {
-        nillable = true;
-    }
-
-    /**
-     * the Qname of the element to be tested
-     *
-     * @param elementNameToTest
-     */
-    public void setElementNameToTest(QName elementNameToTest) {
-        this.elementNameToTest = elementNameToTest;
-
-    }
-
-    /**
-     * Resets the state machine. Once the reset is called the state machine is good enough for a
-     * fresh run
-     */
-    public void reset() {
-        elementNameToTest = null;
-        currentState = INIT_STATE;
-        nillable = false;
-        text = "";
-        errorMessage = "";
-    }
-
-    /**
-     * public read method - reads a given reader to extract the text value
-     *
-     * @param reader
-     */
-    public void read(XMLStreamReader reader) throws XMLStreamException {
-
-        do {
-            updateState(reader);
-
-            //test for the nillable attribute
-            if (currentState == START_ELEMENT_FOUND_STATE &&
-                    nillable) {
-                if (TRUE.equals(reader.getAttributeValue(XSI_NAMESPACE, NIL))) {
-                    text = null;
-                    //force the state to be null found
-                    currentState = NULLED_STATE;
-                }
-            }
-
-            if (currentState == TEXT_FOUND_STATE) {
-                //read the text value and store it
-                text = reader.getText();
-            }
-            if (currentState != FINISHED_STATE
-                    && currentState != ILLEGAL_STATE) {
-                reader.next();
-            }
-
-        } while (currentState != FINISHED_STATE
-                && currentState != ILLEGAL_STATE);
-
-        if (currentState == ILLEGAL_STATE) {
-            throw new RuntimeException("Illegal state!" + errorMessage);
-        }
-
-    }
-
-
-    /**
-     * Updates the state depending on the parser
-     *
-     * @param reader
-     */
-    private void updateState(XMLStreamReader reader) throws XMLStreamException {
-        int event = reader.getEventType();
-
-
-        switch (currentState) {
-            case INIT_STATE:
-                if (event == XMLStreamConstants.START_DOCUMENT) {
-                    currentState = STARTED_STATE;
-                    //start element found at init
-                } else if (event == XMLStreamConstants.START_ELEMENT) {
-                    if (elementNameToTest.equals(reader.getName())) {
-                        currentState = START_ELEMENT_FOUND_STATE;
-                    } else {
-                        currentState = STARTED_STATE;
-                    }
-                } else if (event == XMLStreamConstants.END_ELEMENT) {
-                    // an end element is found at the init state
-                    // we should break the process here ?
-                    currentState = FINISHED_STATE;
-                    elementSkipped = true;
-                }
-                break;
-
-            case STARTED_STATE:
-                if (event == XMLStreamConstants.START_ELEMENT) {
-                    if (elementNameToTest.equals(reader.getName())) {
-                        currentState = START_ELEMENT_FOUND_STATE;
-                    }
-                }
-                break;
-
-            case START_ELEMENT_FOUND_STATE:
-                if (event == XMLStreamConstants.CHARACTERS) {
-                    currentState = TEXT_FOUND_STATE;
-                } else if (event == XMLStreamConstants.END_ELEMENT) {
-                    //force the text to be empty!
-                    text = "";
-                    if (elementNameToTest.equals(reader.getName())) {
-                        currentState = END_ELEMENT_FOUND_STATE;
-                    } else {
-                        currentState = ILLEGAL_STATE;
-                        errorMessage = "Wrong element name " + reader.getName();  //todo I18n this
-                    }
-                }
-                break;
-
-            case TEXT_FOUND_STATE:
-                if (event == XMLStreamConstants.END_ELEMENT) {
-                    if (elementNameToTest.equals(reader.getName())) {
-                        currentState = END_ELEMENT_FOUND_STATE;
-                    } else {
-                        currentState = ILLEGAL_STATE;
-                        //set the error message
-                        errorMessage = "Wrong element name " + reader.getName();  //todo I18n this
-                    }
-                } else if (event == XMLStreamConstants.CHARACTERS) {
-                    text = text + reader.getText();  //append the text
-                    //do not change the state
-                }
-                break;
-
-            case END_ELEMENT_FOUND_STATE:
-                currentState = FINISHED_STATE;
-                break;
-
-                //the element was found to be null and this state was forced.
-                //we are sure here that the parser was at the
-                //START_ELEMENT_FOUND_STATE before
-                //being forced. Hence we need to advance the parser upto the
-                // end element and set the state to be end element found
-            case NULLED_STATE:
-                while (event != XMLStreamConstants.END_ELEMENT) {
-                    event = reader.next();
-                }
-                currentState = END_ELEMENT_FOUND_STATE;
-                break;
-
-            default:
-                if (event == XMLStreamConstants.CHARACTERS) {
-                    if (reader.getText().trim().length() == 0) {
-                        //the text is empty - don't change the state
-                    } else {
-                        //we do NOT handle mixed content
-                        currentState = ILLEGAL_STATE;
-                        errorMessage = "Mixed Content " + reader.getText();
-                    }
-                } else {
-                    currentState = ILLEGAL_STATE;
-                    errorMessage = "Current state is " + currentState;
-                }
-                break;
-        }
-
-    }
-
-
-}
diff --git a/modules/adb/src/org/apache/axis2/databinding/utils/States.java b/modules/adb/src/org/apache/axis2/databinding/utils/States.java
deleted file mode 100644
index 5c5b219..0000000
--- a/modules/adb/src/org/apache/axis2/databinding/utils/States.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.axis2.databinding.utils;
-
-public interface States {
-
-    static int INIT_STATE = -1;
-    static int STARTED_STATE = 0;
-    static int START_ELEMENT_FOUND_STATE = 1;
-    static int TEXT_FOUND_STATE = 2;
-    static int END_ELEMENT_FOUND_STATE = 3;
-    static int FINISHED_STATE = 4;
-    static int ILLEGAL_STATE = 5;
-    static int CONTENT_FOUND_STATE = 6;
-    static int NULLED_STATE = 7;
-
-}
diff --git a/modules/adb/src/org/apache/axis2/databinding/utils/reader/ADBDataHandlerStreamReader.java b/modules/adb/src/org/apache/axis2/databinding/utils/reader/ADBDataHandlerStreamReader.java
index 204abd4..7f4aca6 100644
--- a/modules/adb/src/org/apache/axis2/databinding/utils/reader/ADBDataHandlerStreamReader.java
+++ b/modules/adb/src/org/apache/axis2/databinding/utils/reader/ADBDataHandlerStreamReader.java
@@ -19,6 +19,9 @@
 
 package org.apache.axis2.databinding.utils.reader;
 
+import org.apache.axiom.ext.stax.datahandler.DataHandlerProvider;
+import org.apache.axiom.ext.stax.datahandler.DataHandlerReader;
+import org.apache.axiom.util.stax.XMLStreamReaderUtils;
 import org.apache.axis2.databinding.utils.ConverterUtil;
 
 import javax.activation.DataHandler;
@@ -27,7 +30,7 @@
 import javax.xml.stream.Location;
 import javax.xml.stream.XMLStreamException;
 
-public class ADBDataHandlerStreamReader implements ADBXMLStreamReader {
+public class ADBDataHandlerStreamReader implements ADBXMLStreamReader, DataHandlerReader {
     private static final int START_ELEMENT_STATE = 0;
     private static final int TEXT_STATE = 1;
     private static final int END_ELEMENT_STATE = 2;
@@ -59,18 +62,37 @@
      * @throws IllegalArgumentException
      */
     public Object getProperty(String propKey) throws IllegalArgumentException {
-        if (OPTIMIZATION_ENABLED.equals(propKey)) {
-            return Boolean.TRUE;
-        }
-        if (state == TEXT_STATE) {
-            if (IS_BINARY.equals(propKey)) {
-                return Boolean.TRUE;
-            } else if (DATA_HANDLER.equals(propKey)) {
-                return value;
-            }
-        }
-        return null;
+        return XMLStreamReaderUtils.processGetProperty(this, propKey);
+    }
 
+    @Override
+    public boolean isBinary() {
+        return state == TEXT_STATE;
+    }
+
+    @Override
+    public boolean isOptimized() {
+        return true;
+    }
+
+    @Override
+    public boolean isDeferred() {
+        return false;
+    }
+
+    @Override
+    public String getContentID() {
+        return null;
+    }
+
+    @Override
+    public DataHandler getDataHandler() throws XMLStreamException {
+        return value;
+    }
+
+    @Override
+    public DataHandlerProvider getDataHandlerProvider() {
+        throw new UnsupportedOperationException();
     }
 
     public int next() throws XMLStreamException {
diff --git a/modules/adb/src/org/apache/axis2/databinding/utils/reader/ADBXMLStreamReaderImpl.java b/modules/adb/src/org/apache/axis2/databinding/utils/reader/ADBXMLStreamReaderImpl.java
index 10737d2..37ada3a 100644
--- a/modules/adb/src/org/apache/axis2/databinding/utils/reader/ADBXMLStreamReaderImpl.java
+++ b/modules/adb/src/org/apache/axis2/databinding/utils/reader/ADBXMLStreamReaderImpl.java
@@ -19,10 +19,12 @@
 
 package org.apache.axis2.databinding.utils.reader;
 
+import org.apache.axiom.ext.stax.datahandler.DataHandlerProvider;
+import org.apache.axiom.ext.stax.datahandler.DataHandlerReader;
 import org.apache.axiom.om.OMAttribute;
 import org.apache.axiom.om.OMElement;
 import org.apache.axiom.om.OMNamespace;
-import org.apache.axiom.om.impl.util.OMSerializerUtil;
+import org.apache.axiom.util.stax.XMLStreamReaderUtils;
 import org.apache.axis2.databinding.typemapping.SimpleTypeMapper;
 import org.apache.axis2.databinding.utils.BeanUtil;
 import org.apache.axis2.databinding.utils.ConverterUtil;
@@ -34,6 +36,7 @@
 import javax.xml.stream.Location;
 import javax.xml.stream.XMLStreamException;
 import java.util.*;
+import java.util.concurrent.atomic.AtomicInteger;
 import java.lang.reflect.Array;
 
 /**
@@ -57,8 +60,9 @@
  * possible
  * <p/>
  */
-public class ADBXMLStreamReaderImpl implements ADBXMLStreamReader {
-
+public class ADBXMLStreamReaderImpl implements ADBXMLStreamReader, DataHandlerReader {
+    private static final AtomicInteger nsPrefix = new AtomicInteger();
+    
     private Object[] properties;
     private Object[] attributes;
     private QName elementQName;
@@ -128,7 +132,7 @@
                     if(qname !=null){
                         String prefix =qname.getPrefix();
                         if(prefix == null || "".equals(prefix)){
-                            prefix = OMSerializerUtil.getNextNSPrefix();
+                            prefix = getNextNSPrefix();
                         }
                         qname = new QName(qname.getNamespaceURI(),qname.getLocalPart(),prefix);
                         this.typeTable.getComplexSchemaMap().put(key,qname);
@@ -140,6 +144,10 @@
         }
     }
 
+    private static String getNextNSPrefix() {
+        return "ns" + nsPrefix.incrementAndGet();
+    }
+
     /** add the namespace context */
 
     public void addNamespaceContext(NamespaceContext nsContext) {
@@ -168,20 +176,37 @@
      * @throws IllegalArgumentException
      */
     public Object getProperty(String key) throws IllegalArgumentException {
-        if (OPTIMIZATION_ENABLED.equals(key)) {
-            return Boolean.TRUE;
-        } else if (state == TEXT_STATE) {
-            if (IS_BINARY.equals(key)) {
-                return Boolean.FALSE;
-            } else {
-                return null;
-            }
-        } else if (state == DELEGATED_STATE) {
-            return childReader.getProperty(key);
-        } else {
-            return null;
-        }
+        return XMLStreamReaderUtils.processGetProperty(this, key);
+    }
 
+    @Override
+    public boolean isBinary() {
+        return state == DELEGATED_STATE && childReader instanceof DataHandlerReader && ((DataHandlerReader)childReader).isBinary();
+    }
+
+    @Override
+    public boolean isOptimized() {
+        return ((DataHandlerReader)childReader).isOptimized();
+    }
+
+    @Override
+    public boolean isDeferred() {
+        return ((DataHandlerReader)childReader).isDeferred();
+    }
+
+    @Override
+    public String getContentID() {
+        return ((DataHandlerReader)childReader).getContentID();
+    }
+
+    @Override
+    public DataHandler getDataHandler() throws XMLStreamException {
+        return ((DataHandlerReader)childReader).getDataHandler();
+    }
+
+    @Override
+    public DataHandlerProvider getDataHandlerProvider() {
+        return ((DataHandlerReader)childReader).getDataHandlerProvider();
     }
 
     public void require(int i, String string, String string1)
@@ -454,7 +479,7 @@
                            // first check it is already there if not add the namespace.
                            String prefix = namespaceContext.getPrefix(attributeQName.getNamespaceURI());
                            if (prefix == null){
-                               prefix = OMSerializerUtil.getNextNSPrefix();
+                               prefix = getNextNSPrefix();
                                addToNsMap(prefix,attributeQName.getNamespaceURI());
                            }
 
diff --git a/modules/adb/src/org/apache/axis2/databinding/utils/reader/NameValuePairStreamReader.java b/modules/adb/src/org/apache/axis2/databinding/utils/reader/NameValuePairStreamReader.java
index a801bbf..914bb5a 100644
--- a/modules/adb/src/org/apache/axis2/databinding/utils/reader/NameValuePairStreamReader.java
+++ b/modules/adb/src/org/apache/axis2/databinding/utils/reader/NameValuePairStreamReader.java
@@ -49,19 +49,7 @@
     }
 
     public Object getProperty(String key) throws IllegalArgumentException {
-        //since optimization is a global property
-        //we've to implement it everywhere
-        if (OPTIMIZATION_ENABLED.equals(key)) {
-            return Boolean.TRUE;
-        } else if (state == TEXT_STATE) {
-            if (IS_BINARY.equals(key)) {
-                return Boolean.FALSE;
-            } else {
-                return null;
-            }
-        } else {
-            return null;
-        }
+        return null;
     }
 
     public int next() throws XMLStreamException {
diff --git a/modules/adb/src/org/apache/axis2/databinding/utils/reader/NullXMLStreamReader.java b/modules/adb/src/org/apache/axis2/databinding/utils/reader/NullXMLStreamReader.java
index 02304b3..f89c39e 100644
--- a/modules/adb/src/org/apache/axis2/databinding/utils/reader/NullXMLStreamReader.java
+++ b/modules/adb/src/org/apache/axis2/databinding/utils/reader/NullXMLStreamReader.java
@@ -44,13 +44,7 @@
     }
 
     public Object getProperty(String key) throws IllegalArgumentException {
-        //since optimization is a global property
-        //we've to implement it everywhere
-        if (OPTIMIZATION_ENABLED.equals(key)) {
-            return Boolean.TRUE;
-        } else {
-            return null;
-        }
+        return null;
     }
 
     public int next() throws XMLStreamException {
diff --git a/modules/adb/src/org/apache/axis2/databinding/utils/reader/WrappingXMLStreamReader.java b/modules/adb/src/org/apache/axis2/databinding/utils/reader/WrappingXMLStreamReader.java
index c3d6d46..3edf14a 100644
--- a/modules/adb/src/org/apache/axis2/databinding/utils/reader/WrappingXMLStreamReader.java
+++ b/modules/adb/src/org/apache/axis2/databinding/utils/reader/WrappingXMLStreamReader.java
@@ -19,20 +19,27 @@
 
 package org.apache.axis2.databinding.utils.reader;
 
+import javax.activation.DataHandler;
 import javax.xml.namespace.NamespaceContext;
 import javax.xml.namespace.QName;
 import javax.xml.stream.Location;
 import javax.xml.stream.XMLStreamException;
 import javax.xml.stream.XMLStreamReader;
 
-public class WrappingXMLStreamReader implements ADBXMLStreamReader {
+import org.apache.axiom.ext.stax.datahandler.DataHandlerProvider;
+import org.apache.axiom.ext.stax.datahandler.DataHandlerReader;
+import org.apache.axiom.util.stax.XMLStreamReaderUtils;
+
+public class WrappingXMLStreamReader implements ADBXMLStreamReader, DataHandlerReader {
 
     private XMLStreamReader reader;
+    private DataHandlerReader dataHandlerReader;
     private int depth;
     private boolean done;
 
     public WrappingXMLStreamReader(XMLStreamReader reader) {
         this.reader = reader;
+        dataHandlerReader = XMLStreamReaderUtils.getDataHandlerReader(reader);
     }
 
     public boolean isDone() {
@@ -40,7 +47,37 @@
     }
 
     public Object getProperty(String string) throws IllegalArgumentException {
-        return reader.getProperty(string);
+        return XMLStreamReaderUtils.processGetProperty(this, string);
+    }
+
+    @Override
+    public boolean isBinary() {
+        return dataHandlerReader != null && dataHandlerReader.isBinary();
+    }
+
+    @Override
+    public boolean isOptimized() {
+        return dataHandlerReader.isOptimized();
+    }
+
+    @Override
+    public boolean isDeferred() {
+        return dataHandlerReader.isDeferred();
+    }
+
+    @Override
+    public String getContentID() {
+        return dataHandlerReader.getContentID();
+    }
+
+    @Override
+    public DataHandler getDataHandler() throws XMLStreamException {
+        return dataHandlerReader.getDataHandler();
+    }
+
+    @Override
+    public DataHandlerProvider getDataHandlerProvider() {
+        return dataHandlerReader.getDataHandlerProvider();
     }
 
     public int next() throws XMLStreamException {
diff --git a/modules/adb/src/org/apache/axis2/rpc/receivers/RPCMessageReceiver.java b/modules/adb/src/org/apache/axis2/rpc/receivers/RPCMessageReceiver.java
index 95f904c..e22f2bb 100644
--- a/modules/adb/src/org/apache/axis2/rpc/receivers/RPCMessageReceiver.java
+++ b/modules/adb/src/org/apache/axis2/rpc/receivers/RPCMessageReceiver.java
@@ -25,8 +25,8 @@
 
 import org.apache.axiom.om.OMElement;
 import org.apache.axiom.om.OMNamespace;
-import org.apache.axiom.om.OMAbstractFactory;
-import org.apache.axiom.om.impl.builder.StAXOMBuilder;
+import org.apache.axiom.om.OMXMLBuilderFactory;
+import org.apache.axiom.om.OMXMLParserWrapper;
 import org.apache.axiom.soap.SOAPBody;
 import org.apache.axiom.soap.SOAPEnvelope;
 import org.apache.axiom.soap.SOAPFactory;
@@ -201,8 +201,8 @@
                         QName innerElementQName = new QName(elementQName.getNamespaceURI(), getSimpleClassName(exceptionType));
                         XMLStreamReader xr = BeanUtil.getPullParser(cause,
                                 innerElementQName, typeTable, true, false);
-                        StAXOMBuilder stAXOMBuilder = new StAXOMBuilder(OMAbstractFactory.getOMFactory(), new StreamWrapper(xr));
-                        OMElement documentElement = stAXOMBuilder.getDocumentElement();
+                        OMXMLParserWrapper builder = OMXMLBuilderFactory.createStAXOMBuilder(new StreamWrapper(xr));
+                        OMElement documentElement = builder.getDocumentElement();
                         exceptionElement.addChild(documentElement);
                         }
                     }
diff --git a/modules/adb/src/org/apache/axis2/rpc/receivers/RPCUtil.java b/modules/adb/src/org/apache/axis2/rpc/receivers/RPCUtil.java
index dc11d3a..b2ba2d7 100644
--- a/modules/adb/src/org/apache/axis2/rpc/receivers/RPCUtil.java
+++ b/modules/adb/src/org/apache/axis2/rpc/receivers/RPCUtil.java
@@ -41,6 +41,7 @@
 import org.apache.axis2.engine.ObjectSupplier;
 import org.apache.axis2.util.StreamWrapper;
 
+import javax.activation.DataHandler;
 import javax.xml.datatype.XMLGregorianCalendar;
 import javax.xml.namespace.QName;
 import javax.xml.stream.XMLStreamReader;
@@ -355,7 +356,7 @@
                         } else {
                             resElemt = fac.createOMElement(partName, null);
                         }
-                        OMText text = fac.createOMText(resObject, true);
+                        OMText text = fac.createOMText((DataHandler)resObject, true);
                         resElemt.addChild(text);
                         envelope.getBody().addChild(resElemt);
                     } else {
@@ -514,7 +515,7 @@
                     	
                     } else if (SimpleTypeMapper.isDataHandler(resObject.getClass())) {
                         OMElement resElemt = fac.createOMElement(method.getName() + "Response", ns);
-                        OMText text = fac.createOMText(resObject, true);
+                        OMText text = fac.createOMText((DataHandler)resObject, true);
                         OMElement returnElement;
                         if (service.isElementFormDefault()) {
                             returnElement = fac.createOMElement(Constants.RETURN_WRAPPER, ns);
diff --git a/modules/adb/test/org/apache/axis2/databinding/types/soapencoding/ArrayTest.java b/modules/adb/test/org/apache/axis2/databinding/types/soapencoding/ArrayTest.java
deleted file mode 100644
index 6c99c0f..0000000
--- a/modules/adb/test/org/apache/axis2/databinding/types/soapencoding/ArrayTest.java
+++ /dev/null
@@ -1,196 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.axis2.databinding.types.soapencoding;
-
-import junit.framework.TestCase;
-import org.apache.axiom.om.OMAbstractFactory;
-import org.apache.axiom.om.OMElement;
-import org.apache.axiom.om.util.StAXUtils;
-
-import javax.xml.stream.XMLStreamReader;
-import java.io.ByteArrayInputStream;
-import java.util.List;
-
-
-public class ArrayTest extends TestCase {
-
-    public void testArray1() throws Exception {
-
-        ArrayE arrayElement = new ArrayE();
-        Array array = new Array();
-
-        _int testInt;
-        for (int i = 1; i < 6; i++) {
-            testInt = new _int();
-            testInt.set_int(i);
-            array.addObject(testInt);
-        }
-
-        array.setArrayTypeQName(new javax.xml.namespace.QName("http://schemas.xmlsoap.org/soap/encoding/","int"));
-        arrayElement.setArray(array);
-
-        OMElement omElement = arrayElement.getOMElement(ArrayE.MY_QNAME,
-                OMAbstractFactory.getOMFactory());
-        java.lang.String omElementString = omElement.toStringWithConsume();
-        System.out.println("OMElement ==> " + omElementString);
-        XMLStreamReader xmlReader = StAXUtils.createXMLStreamReader(
-                new ByteArrayInputStream(omElementString.getBytes()));
-        ArrayE result = ArrayE.Factory.parse(xmlReader);
-        List resultList = result.getArray().getObjectList();
-        for (int i = 1; i < 6; i++) {
-           assertEquals(((_int)resultList.get(i-1)).get_int(),i);
-        }
-
-    }
-
-    public void testArray2() throws Exception {
-
-        ArrayE arrayElement = new ArrayE();
-        Array array = new Array();
-
-        Date testDate;
-        for (int i = 1; i < 6; i++) {
-            testDate = new Date();
-            testDate.setDate(new java.util.Date());
-            array.addObject(testDate);
-        }
-
-        array.setArrayTypeQName(new javax.xml.namespace.QName("http://schemas.xmlsoap.org/soap/encoding/","date"));
-        arrayElement.setArray(array);
-
-        OMElement omElement = arrayElement.getOMElement(ArrayE.MY_QNAME,
-                OMAbstractFactory.getOMFactory());
-        java.lang.String omElementString = omElement.toStringWithConsume();
-        System.out.println("OMElement ==> " + omElementString);
-        XMLStreamReader xmlReader = StAXUtils.createXMLStreamReader(
-                new ByteArrayInputStream(omElementString.getBytes()));
-        ArrayE result = ArrayE.Factory.parse(xmlReader);
-        List resultList = result.getArray().getObjectList();
-        assertEquals(resultList.size(),5);
-    }
-
-    public void testArray3() throws Exception {
-
-        ArrayE arrayElement = new ArrayE();
-        Array array = new Array();
-
-        _int testInt;
-        for (int i = 1; i < 6; i++) {
-            testInt = new _int();
-            testInt.set_int(i);
-            array.addObject(testInt);
-        }
-
-        arrayElement.setArray(array);
-
-        OMElement omElement = arrayElement.getOMElement(ArrayE.MY_QNAME,
-                OMAbstractFactory.getOMFactory());
-        java.lang.String omElementString = omElement.toStringWithConsume();
-        System.out.println("OMElement ==> " + omElementString);
-        XMLStreamReader xmlReader = StAXUtils.createXMLStreamReader(
-                new ByteArrayInputStream(omElementString.getBytes()));
-        ArrayE result = ArrayE.Factory.parse(xmlReader);
-        List resultList = result.getArray().getObjectList();
-        for (int i = 1; i < 6; i++) {
-           assertEquals(((_int)resultList.get(i-1)).get_int(),i);
-        }
-
-    }
-
-    public void testArray4() throws Exception {
-
-        ArrayE arrayElement = new ArrayE();
-        Array array = new Array();
-
-        Date testDate;
-        for (int i = 1; i < 6; i++) {
-            testDate = new Date();
-            testDate.setDate(new java.util.Date());
-            array.addObject(testDate);
-        }
-
-        arrayElement.setArray(array);
-
-        OMElement omElement = arrayElement.getOMElement(ArrayE.MY_QNAME,
-                OMAbstractFactory.getOMFactory());
-        java.lang.String omElementString = omElement.toStringWithConsume();
-        System.out.println("OMElement ==> " + omElementString);
-        XMLStreamReader xmlReader = StAXUtils.createXMLStreamReader(
-                new ByteArrayInputStream(omElementString.getBytes()));
-        ArrayE result = ArrayE.Factory.parse(xmlReader);
-        List resultList = result.getArray().getObjectList();
-        assertEquals(resultList.size(),5);
-    }
-
-    public void testArray5() throws Exception {
-
-
-        java.lang.String omElementString = "<ns1:Array xmlns:ns1=\"http://schemas.xmlsoap.org/soap/encoding/\" \n" +
-                "           xmlns:s1=\"http://www.w3.org/2001/XMLSchema\"\n" +
-                "           ns1:arrayType=\"s1:ur-type[5]\">\n" +
-                "    <ns1:int>1</ns1:int>\n" +
-                "    <ns1:int>2</ns1:int>\n" +
-                "    <ns1:int>3</ns1:int>\n" +
-                "    <ns1:int>4</ns1:int>\n" +
-                "    <ns1:int>5</ns1:int>\n" +
-                "</ns1:Array>";
-        System.out.println("OMElement ==> " + omElementString);
-        XMLStreamReader xmlReader = StAXUtils.createXMLStreamReader(
-                new ByteArrayInputStream(omElementString.getBytes()));
-        ArrayE result = ArrayE.Factory.parse(xmlReader);
-        List resultList = result.getArray().getObjectList();
-        for (int i = 1; i < 6; i++) {
-           assertEquals(((_int)resultList.get(i-1)).get_int(),i);
-        }
-
-    }
-
-    public void testArray6() throws Exception {
-
-        ArrayE arrayElement = new ArrayE();
-        Array array = new Array();
-        array.addObject(null);
-
-        _int testInt;
-        for (int i = 1; i < 6; i++) {
-            testInt = new _int();
-            testInt.set_int(i);
-            array.addObject(testInt);
-        }
-
-        array.setArrayTypeQName(new javax.xml.namespace.QName("http://schemas.xmlsoap.org/soap/encoding/","int"));
-        arrayElement.setArray(array);
-
-        OMElement omElement = arrayElement.getOMElement(ArrayE.MY_QNAME,
-                OMAbstractFactory.getOMFactory());
-        java.lang.String omElementString = omElement.toStringWithConsume();
-        System.out.println("OMElement ==> " + omElementString);
-        XMLStreamReader xmlReader = StAXUtils.createXMLStreamReader(
-                new ByteArrayInputStream(omElementString.getBytes()));
-        ArrayE result = ArrayE.Factory.parse(xmlReader);
-        List resultList = result.getArray().getObjectList();
-        for (int i = 1; i < 6; i++) {
-           assertEquals(((_int)resultList.get(i)).get_int(),i);
-        }
-
-    }
-
-
-}
diff --git a/modules/adb/test/org/apache/axis2/databinding/types/xsd/ArrayTest.java b/modules/adb/test/org/apache/axis2/databinding/types/xsd/ArrayTest.java
deleted file mode 100644
index 94beb55..0000000
--- a/modules/adb/test/org/apache/axis2/databinding/types/xsd/ArrayTest.java
+++ /dev/null
@@ -1,164 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.axis2.databinding.types.xsd;
-
-
-import junit.framework.TestCase;
-import org.apache.axiom.om.OMAbstractFactory;
-import org.apache.axiom.om.OMElement;
-import org.apache.axiom.om.util.StAXUtils;
-import org.apache.axis2.databinding.types.soapencoding.Array;
-import org.apache.axis2.databinding.types.soapencoding.ArrayE;
-
-import javax.xml.stream.XMLStreamReader;
-import java.io.ByteArrayInputStream;
-import java.util.List;
-
-
-public class ArrayTest extends TestCase {
-    public void testArray1() throws Exception {
-
-        ArrayE arrayElement = new ArrayE();
-        Array array = new Array();
-
-        _int testInt;
-        for (int i = 1; i < 6; i++) {
-            testInt = new _int();
-            testInt.set_int(i);
-            array.addObject(testInt);
-        }
-
-        array.setArrayTypeQName(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema","int"));
-        arrayElement.setArray(array);
-
-        OMElement omElement = arrayElement.getOMElement(ArrayE.MY_QNAME,
-                OMAbstractFactory.getOMFactory());
-        java.lang.String omElementString = omElement.toStringWithConsume();
-        System.out.println("OMElement ==> " + omElementString);
-        XMLStreamReader xmlReader = StAXUtils.createXMLStreamReader(
-                new ByteArrayInputStream(omElementString.getBytes()));
-        ArrayE result = ArrayE.Factory.parse(xmlReader);
-        List resultList = result.getArray().getObjectList();
-        for (int i = 1; i < 6; i++) {
-           assertEquals(((_int)resultList.get(i-1)).get_int(),i);
-        }
-
-    }
-
-    public void testArray2() throws Exception {
-
-        ArrayE arrayElement = new ArrayE();
-        Array array = new Array();
-
-        Date testDate;
-        for (int i = 1; i < 6; i++) {
-            testDate = new Date();
-            testDate.setDate(new java.util.Date());
-            array.addObject(testDate);
-        }
-
-        array.setArrayTypeQName(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema","date"));
-        arrayElement.setArray(array);
-
-        OMElement omElement = arrayElement.getOMElement(ArrayE.MY_QNAME,
-                OMAbstractFactory.getOMFactory());
-        java.lang.String omElementString = omElement.toStringWithConsume();
-        System.out.println("OMElement ==> " + omElementString);
-        XMLStreamReader xmlReader = StAXUtils.createXMLStreamReader(
-                new ByteArrayInputStream(omElementString.getBytes()));
-        ArrayE result = ArrayE.Factory.parse(xmlReader);
-        List resultList = result.getArray().getObjectList();
-        assertEquals(resultList.size(),5);
-    }
-
-    public void testArray3() throws Exception {
-
-        ArrayE arrayElement = new ArrayE();
-        Array array = new Array();
-
-        _int testInt;
-        for (int i = 1; i < 6; i++) {
-            testInt = new _int();
-            testInt.set_int(i);
-            array.addObject(testInt);
-        }
-
-        arrayElement.setArray(array);
-
-        OMElement omElement = arrayElement.getOMElement(ArrayE.MY_QNAME,
-                OMAbstractFactory.getOMFactory());
-        java.lang.String omElementString = omElement.toStringWithConsume();
-        System.out.println("OMElement ==> " + omElementString);
-        XMLStreamReader xmlReader = StAXUtils.createXMLStreamReader(
-                new ByteArrayInputStream(omElementString.getBytes()));
-        ArrayE result = ArrayE.Factory.parse(xmlReader);
-        List resultList = result.getArray().getObjectList();
-        for (int i = 1; i < 6; i++) {
-           assertEquals(((_int)resultList.get(i-1)).get_int(),i);
-        }
-
-    }
-
-    public void testArray4() throws Exception {
-
-        ArrayE arrayElement = new ArrayE();
-        Array array = new Array();
-
-        Date testDate;
-        for (int i = 1; i < 6; i++) {
-            testDate = new Date();
-            testDate.setDate(new java.util.Date());
-            array.addObject(testDate);
-        }
-
-        arrayElement.setArray(array);
-
-        OMElement omElement = arrayElement.getOMElement(ArrayE.MY_QNAME,
-                OMAbstractFactory.getOMFactory());
-        java.lang.String omElementString = omElement.toStringWithConsume();
-        System.out.println("OMElement ==> " + omElementString);
-        XMLStreamReader xmlReader = StAXUtils.createXMLStreamReader(
-                new ByteArrayInputStream(omElementString.getBytes()));
-        ArrayE result = ArrayE.Factory.parse(xmlReader);
-        List resultList = result.getArray().getObjectList();
-        assertEquals(resultList.size(),5);
-    }
-
-    public void testArray5() throws Exception {
-
-        java.lang.String omElementString = "<ns1:Array xmlns:ns1=\"http://schemas.xmlsoap.org/soap/encoding/\" xmlns:s1=\"http://www.w3.org/2001/XMLSchema\"\n" +
-                "           ns1:arrayType=\"s1:ur-type[5]\">\n" +
-                "    <s1:int>1</s1:int>\n" +
-                "    <s1:int>2</s1:int>\n" +
-                "    <s1:int>3</s1:int>\n" +
-                "    <s1:int>4</s1:int>\n" +
-                "    <s1:int>5</s1:int>\n" +
-                "</ns1:Array>";
-        System.out.println("OMElement ==> " + omElementString);
-        XMLStreamReader xmlReader = StAXUtils.createXMLStreamReader(
-                new ByteArrayInputStream(omElementString.getBytes()));
-        ArrayE result = ArrayE.Factory.parse(xmlReader);
-        List resultList = result.getArray().getObjectList();
-        for (int i = 1; i < 6; i++) {
-           assertEquals(((_int)resultList.get(i-1)).get_int(),i);
-        }
-
-    }
-}
\ No newline at end of file
diff --git a/modules/adb/test/org/apache/axis2/databinding/utils/BeanUtilTest.java b/modules/adb/test/org/apache/axis2/databinding/utils/BeanUtilTest.java
index 8a0cf1c..88cf507 100644
--- a/modules/adb/test/org/apache/axis2/databinding/utils/BeanUtilTest.java
+++ b/modules/adb/test/org/apache/axis2/databinding/utils/BeanUtilTest.java
@@ -34,6 +34,9 @@
 import javax.mail.util.ByteArrayDataSource;

 import javax.xml.namespace.QName;

 

+import static com.google.common.truth.Truth.assertAbout;

+import static org.apache.axiom.truth.xml.XMLTruth.xml;

+

 import java.io.ByteArrayInputStream;

 import java.math.BigInteger;

 import java.util.List;

@@ -283,5 +286,14 @@
 	    return new String(theChars);

 	      }

   

-   

+    /**

+     * Regression test for AXIS2-5751.

+     */

+    public void testSerializeAnyTypeNull() {

+        assertAbout(xml())

+                .that(BeanUtil.getPullParser(new ComplexTypeWithAnyTypeElement(), new QName("root"), null, false, false))

+                .ignoringNamespaceDeclarations()

+                .ignoringNamespacePrefixes()

+                .hasSameContentAs("<root><prop xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:nil='true'/></root>");

+    }

 }

diff --git a/modules/transport/local/src/org/apache/axis2/transport/local/NonBlockingLocalTransportSender.java b/modules/adb/test/org/apache/axis2/databinding/utils/ComplexTypeWithAnyTypeElement.java
similarity index 76%
copy from modules/transport/local/src/org/apache/axis2/transport/local/NonBlockingLocalTransportSender.java
copy to modules/adb/test/org/apache/axis2/databinding/utils/ComplexTypeWithAnyTypeElement.java
index 1576c00..c05c0a4 100644
--- a/modules/transport/local/src/org/apache/axis2/transport/local/NonBlockingLocalTransportSender.java
+++ b/modules/adb/test/org/apache/axis2/databinding/utils/ComplexTypeWithAnyTypeElement.java
@@ -16,13 +16,16 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+package org.apache.axis2.databinding.utils;
 
-package org.apache.axis2.transport.local;
+public class ComplexTypeWithAnyTypeElement {
+    private Object prop;
 
-public class NonBlockingLocalTransportSender extends LocalTransportSender {
-
-    protected boolean isNonBlocking() {
-        return true;
+    public Object getProp() {
+        return prop;
     }
 
+    public void setProp(Object prop) {
+        this.prop = prop;
+    }
 }
diff --git a/modules/adb/test/org/apache/axis2/databinding/utils/ConverterUtilTest.java b/modules/adb/test/org/apache/axis2/databinding/utils/ConverterUtilTest.java
index 92c1e05..fb20820 100644
--- a/modules/adb/test/org/apache/axis2/databinding/utils/ConverterUtilTest.java
+++ b/modules/adb/test/org/apache/axis2/databinding/utils/ConverterUtilTest.java
@@ -21,6 +21,8 @@
 
 import junit.framework.TestCase;
 
+import static com.google.common.truth.Truth.assertThat;
+
 import java.math.BigDecimal;
 import java.math.BigInteger;
 import java.text.SimpleDateFormat;
@@ -560,5 +562,8 @@
 
     }
 
-
+    public void testCompareInt() {
+        // https://stackoverflow.com/questions/46372764/axis2-adb-and-mininclusive-2147483648
+        assertThat(ConverterUtil.compare(3, "-2147483648")).isGreaterThan(0);
+    }
 }
diff --git a/modules/adb/test/org/apache/axis2/databinding/utils/NamedStaxOMBuilderTest.java b/modules/adb/test/org/apache/axis2/databinding/utils/NamedStaxOMBuilderTest.java
deleted file mode 100644
index e2c7e5e..0000000
--- a/modules/adb/test/org/apache/axis2/databinding/utils/NamedStaxOMBuilderTest.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.axis2.databinding.utils;
-
-import junit.framework.TestCase;
-import org.apache.axiom.om.OMElement;
-import org.apache.axiom.om.util.StAXUtils;
-import org.apache.axis2.util.StreamWrapper;
-
-import javax.xml.namespace.QName;
-import javax.xml.stream.XMLStreamReader;
-import java.io.StringReader;
-
-public class NamedStaxOMBuilderTest extends TestCase {
-
-    public void testNamedOMBuilder() throws Exception {
-
-        String xmlDoc = "<wrapper><myIntVal>200</myIntVal></wrapper>";
-        XMLStreamReader reader = StAXUtils.createXMLStreamReader(
-                new StringReader(xmlDoc));
-
-        NamedStaxOMBuilder sm = new NamedStaxOMBuilder(reader, new QName("wrapper"));
-        OMElement elt = sm.getOMElement();
-
-        assertNotNull(elt);
-        assertEquals(elt.getLocalName(), "wrapper");
-
-
-    }
-
-    public void testNamedOMBuilder1() throws Exception {
-
-        String xmlDoc = "<wrapper><myIntVal>200</myIntVal></wrapper>";
-        XMLStreamReader reader = StAXUtils.createXMLStreamReader(
-                new StringReader(xmlDoc));
-
-        //move upto the  myIntVal start element first
-        boolean done = false;
-        QName nameToMatch = new QName("myIntVal");
-        while (!done) {
-            if (reader.isStartElement() && nameToMatch.equals(reader.getName())) {
-                done = true;
-            } else {
-                reader.next();
-            }
-        }
-
-        //we need the wrapper here - it is the nature of the builders that
-        //they expect the *next* event to be the start element (not the
-        //current one) So we need the wrapper to simulate a full fledged
-        //
-        NamedStaxOMBuilder sm = new NamedStaxOMBuilder(
-                new StreamWrapper(reader), nameToMatch);
-        OMElement elt = sm.getOMElement();
-
-        assertNotNull(elt);
-        assertEquals(elt.getLocalName(), "myIntVal");
-
-
-    }
-
-
-}
diff --git a/modules/adb/test/org/apache/axis2/databinding/utils/SimpleArrayReaderStateMachineTest.java b/modules/adb/test/org/apache/axis2/databinding/utils/SimpleArrayReaderStateMachineTest.java
deleted file mode 100644
index 4ccf421..0000000
--- a/modules/adb/test/org/apache/axis2/databinding/utils/SimpleArrayReaderStateMachineTest.java
+++ /dev/null
@@ -1,111 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.axis2.databinding.utils;
-
-import junit.framework.TestCase;
-import org.apache.axiom.om.util.StAXUtils;
-
-import javax.xml.namespace.QName;
-import javax.xml.stream.XMLStreamConstants;
-import javax.xml.stream.XMLStreamException;
-import javax.xml.stream.XMLStreamReader;
-import java.io.StringReader;
-
-public class SimpleArrayReaderStateMachineTest extends TestCase {
-
-    public void testStateMachine() throws Exception {
-        String xmlDoc =
-                "<wrapper><myIntVal>200</myIntVal><myIntVal>200</myIntVal><myIntVal>200</myIntVal>" +
-                        "<myIntVal>200</myIntVal><myIntVal>200</myIntVal><myIntVal>200</myIntVal></wrapper>";
-        XMLStreamReader reader = StAXUtils.createXMLStreamReader(
-                new StringReader(xmlDoc));
-        SimpleArrayReaderStateMachine sm = new SimpleArrayReaderStateMachine();
-        sm.setElementNameToTest(new QName("myIntVal"));
-        try {
-            sm.read(reader);
-        } catch (XMLStreamException e) {
-            e.printStackTrace();  //To change body of catch statement use File | Settings | File Templates.
-        }
-
-        assertEquals(6, sm.getTextArray().length);
-
-    }
-
-    public void testStateMachine3() throws Exception {
-        String xmlDoc =
-                "<wrapper><myIntVal>200</myIntVal><myIntVal>200</myIntVal><myIntVal>200</myIntVal>" +
-                        "<myIntVal>200</myIntVal><myIntVal>200</myIntVal><myIntVal>200</myIntVal></wrapper>";
-        XMLStreamReader reader = StAXUtils.createXMLStreamReader(
-                new StringReader(xmlDoc));
-
-        while (reader.hasNext()) {
-            int event = reader.next();
-            if (event == XMLStreamConstants.START_ELEMENT &&
-                    "myIntVal".equals(reader.getLocalName())) {
-                break;
-            }
-
-        }
-
-        SimpleArrayReaderStateMachine sm = new SimpleArrayReaderStateMachine();
-        sm.setElementNameToTest(new QName("myIntVal"));
-        try {
-            sm.read(reader);
-        } catch (XMLStreamException e) {
-            e.printStackTrace();  //To change body of catch statement use File | Settings | File Templates.
-        }
-
-        assertEquals(6, sm.getTextArray().length);
-
-    }
-
-    public void testStateMachine2() throws Exception {
-        String xmlDoc = "<wrapper><myIntVal>200</myIntVal></wrapper>";
-        XMLStreamReader reader = StAXUtils.createXMLStreamReader(
-                new StringReader(xmlDoc));
-        SimpleArrayReaderStateMachine sm = new SimpleArrayReaderStateMachine();
-        sm.setElementNameToTest(new QName("myIntVal"));
-        try {
-            sm.read(reader);
-        } catch (XMLStreamException e) {
-            e.printStackTrace();  //To change body of catch statement use File | Settings | File Templates.
-        }
-
-        assertEquals("200", sm.getTextArray()[0]);
-    }
-
-    public void testStateMachineEmptyArray() throws Exception {
-        String xmlDoc = "<wrapper></wrapper>";
-        XMLStreamReader reader = StAXUtils.createXMLStreamReader(
-                new StringReader(xmlDoc));
-        SimpleArrayReaderStateMachine sm = new SimpleArrayReaderStateMachine();
-        sm.setElementNameToTest(new QName("myIntVal"));
-        try {
-            sm.read(reader);
-        } catch (Exception e) {
-
-        }
-
-        assertEquals(0, sm.getTextArray().length);
-
-
-    }
-
-}
diff --git a/modules/adb/test/org/apache/axis2/databinding/utils/SimpleElementReaderStateMachineTest.java b/modules/adb/test/org/apache/axis2/databinding/utils/SimpleElementReaderStateMachineTest.java
deleted file mode 100644
index 11d0a94..0000000
--- a/modules/adb/test/org/apache/axis2/databinding/utils/SimpleElementReaderStateMachineTest.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.axis2.databinding.utils;
-
-import junit.framework.TestCase;
-import org.apache.axiom.om.util.StAXUtils;
-
-import javax.xml.namespace.QName;
-import javax.xml.stream.XMLStreamException;
-import javax.xml.stream.XMLStreamReader;
-import java.io.StringReader;
-
-public class SimpleElementReaderStateMachineTest extends TestCase {
-
-    public void testStateMachine() throws Exception {
-        String xmlDoc = "<myIntVal>200</myIntVal>";
-        XMLStreamReader reader = StAXUtils.createXMLStreamReader(
-                new StringReader(xmlDoc));
-        SimpleElementReaderStateMachine sm = new SimpleElementReaderStateMachine();
-        sm.setElementNameToTest(new QName("myIntVal"));
-        try {
-            sm.read(reader);
-        } catch (XMLStreamException e) {
-            e.printStackTrace();  //To change body of catch statement use File | Settings | File Templates.
-        }
-
-        assertEquals("200", sm.getText());
-    }
-
-    public void testStateMachine2() throws Exception {
-        String xmlDoc = "<wrapper><myIntVal>200</myIntVal></wrapper>";
-        XMLStreamReader reader = StAXUtils.createXMLStreamReader(
-                new StringReader(xmlDoc));
-        SimpleElementReaderStateMachine sm = new SimpleElementReaderStateMachine();
-        sm.setElementNameToTest(new QName("myIntVal"));
-        try {
-            sm.read(reader);
-        } catch (XMLStreamException e) {
-            e.printStackTrace();  //To change body of catch statement use File | Settings | File Templates.
-        }
-
-        assertEquals("200", sm.getText());
-    }
-
-    public void testStateMachine3() throws Exception {
-        String xmlDoc = "<myIntVal>200<a/></myIntVal>";
-        XMLStreamReader reader = StAXUtils.createXMLStreamReader(
-                new StringReader(xmlDoc));
-        SimpleElementReaderStateMachine sm = new SimpleElementReaderStateMachine();
-        sm.setElementNameToTest(new QName("myIntVal"));
-        try {
-            sm.read(reader);
-            fail();
-        } catch (Exception e) {
-
-        }
-
-
-    }
-
-}
diff --git a/modules/adb/test/org/apache/axis2/databinding/utils/reader/ADBXMLStreamReaderTest.java b/modules/adb/test/org/apache/axis2/databinding/utils/reader/ADBXMLStreamReaderTest.java
index 7c87d5e..caea21c 100644
--- a/modules/adb/test/org/apache/axis2/databinding/utils/reader/ADBXMLStreamReaderTest.java
+++ b/modules/adb/test/org/apache/axis2/databinding/utils/reader/ADBXMLStreamReaderTest.java
@@ -25,11 +25,9 @@
 import org.apache.axiom.om.OMElement;
 import org.apache.axiom.om.OMFactory;
 import org.apache.axiom.om.OMNamespace;
-import org.apache.axiom.om.impl.serialize.StreamingOMSerializer;
-import org.apache.axiom.om.util.StAXUtils;
+import org.apache.axiom.om.OMXMLBuilderFactory;
 import org.apache.axiom.util.base64.Base64Utils;
 import org.apache.axis2.databinding.utils.Constants;
-import org.apache.axis2.util.StreamWrapper;
 import org.custommonkey.xmlunit.XMLTestCase;
 import org.w3c.dom.Document;
 import org.xml.sax.SAXException;
@@ -41,9 +39,7 @@
 import javax.xml.parsers.ParserConfigurationException;
 import javax.xml.stream.XMLStreamException;
 import javax.xml.stream.XMLStreamReader;
-import javax.xml.stream.XMLStreamWriter;
 import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
 import java.io.IOException;
 import java.util.ArrayList;
 import java.util.List;
@@ -823,21 +819,7 @@
      * @return
      */
     private String getStringXML(XMLStreamReader reader) throws XMLStreamException {
-        //the returned pullparser starts at an Element rather than the start
-        //document event. This is somewhat disturbing but since an ADBBean
-        //denotes an XMLFragment, it is justifiable to keep the current event
-        //at the Start-element rather than the start document
-        //What it boils down to is that we need to wrap the reader in a
-        //stream wrapper to get a fake start-document event
-
-        StreamingOMSerializer ser = new StreamingOMSerializer();
-        ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
-        XMLStreamWriter writer = StAXUtils.createXMLStreamWriter(byteArrayOutputStream);
-        ser.serialize(
-                new StreamWrapper(reader),
-                writer);
-        writer.flush();
-        return byteArrayOutputStream.toString();
+        return OMXMLBuilderFactory.createStAXOMBuilder(reader).getDocumentElement().toString();
     }
 
 //     /**
diff --git a/modules/addressing/pom.xml b/modules/addressing/pom.xml
index db49732..dc5b854 100644
--- a/modules/addressing/pom.xml
+++ b/modules/addressing/pom.xml
@@ -23,9 +23,9 @@
     <modelVersion>4.0.0</modelVersion>
     <parent>
         <groupId>org.apache.axis2</groupId>
-        <artifactId>axis2-parent</artifactId>
-        <version>1.7.0-SNAPSHOT</version>
-        <relativePath>../parent/pom.xml</relativePath>
+        <artifactId>axis2</artifactId>
+        <version>1.8.0-SNAPSHOT</version>
+        <relativePath>../../pom.xml</relativePath>
     </parent>
     <artifactId>addressing</artifactId>
     <packaging>mar</packaging>
diff --git a/modules/addressing/src/org/apache/axis2/handlers/addressing/AddressingInFaultHandler.java b/modules/addressing/src/org/apache/axis2/handlers/addressing/AddressingInFaultHandler.java
index 4f4f682..e6a750a 100644
--- a/modules/addressing/src/org/apache/axis2/handlers/addressing/AddressingInFaultHandler.java
+++ b/modules/addressing/src/org/apache/axis2/handlers/addressing/AddressingInFaultHandler.java
@@ -90,12 +90,12 @@
             SOAPFaultCode code = fault.getCode();
             SOAPFaultSubCode subCode = code.getSubCode();
             if (subCode == null) {
-                faultLocalName = code.getTextAsQName().getLocalPart();
+                faultLocalName = code.getValueAsQName().getLocalPart();
             } else {
                 while (subCode.getSubCode() != null) {
                     subCode = subCode.getSubCode();
                 }
-                faultLocalName = subCode.getValue().getTextAsQName().getLocalPart();
+                faultLocalName = subCode.getValueAsQName().getLocalPart();
             }
 
             String newReason = AddressingFaultsHelper
diff --git a/modules/addressing/src/org/apache/axis2/handlers/addressing/AddressingOutHandler.java b/modules/addressing/src/org/apache/axis2/handlers/addressing/AddressingOutHandler.java
index bc93d84..bdaf038 100644
--- a/modules/addressing/src/org/apache/axis2/handlers/addressing/AddressingOutHandler.java
+++ b/modules/addressing/src/org/apache/axis2/handlers/addressing/AddressingOutHandler.java
@@ -568,7 +568,7 @@
         	if (multipleHeaders) {
         		if (replaceHeaders) {
         			QName qname = new QName(addressingNamespace, name, WSA_DEFAULT_PREFIX);
-        			Iterator iterator = header.getChildrenWithName(qname);
+        			Iterator<OMElement> iterator = header.getChildrenWithName(qname);
         			while (iterator.hasNext()) {
         				iterator.next();
         				iterator.remove();
diff --git a/modules/addressing/test-resources/axis2.xml b/modules/addressing/test-resources/axis2.xml
index e125e1c..73eda5d 100644
--- a/modules/addressing/test-resources/axis2.xml
+++ b/modules/addressing/test-resources/axis2.xml
@@ -22,7 +22,7 @@
     <parameter name="hotupdate">true</parameter>
 
     <messageReceiver mep="INOUT" class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/>
-    <transportSender name="http" class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
+    <transportSender name="http" class="org.apache.axis2.transport.http.impl.httpclient4.HTTPClient4TransportSender">
         <parameter name="PROTOCOL">HTTP/1.0</parameter>
     </transportSender>
 
diff --git a/modules/addressing/test/org/apache/axis2/handlers/addressing/AddressingOutHandlerTest.java b/modules/addressing/test/org/apache/axis2/handlers/addressing/AddressingOutHandlerTest.java
index 8fa51b1..1d3ff53 100644
--- a/modules/addressing/test/org/apache/axis2/handlers/addressing/AddressingOutHandlerTest.java
+++ b/modules/addressing/test/org/apache/axis2/handlers/addressing/AddressingOutHandlerTest.java
@@ -21,6 +21,7 @@
 
 import org.apache.axiom.om.OMAbstractFactory;
 import org.apache.axiom.om.OMAttribute;
+import org.apache.axiom.om.OMElement;
 import org.apache.axiom.om.OMNamespace;
 import org.apache.axiom.om.OMXMLParserWrapper;
 import org.apache.axiom.soap.SOAPEnvelope;
@@ -303,7 +304,7 @@
 
         assertEquals("http://whatever.org", defaultEnvelope.getHeader()
                 .getFirstChildWithName(Final.QNAME_WSA_TO).getText());
-        Iterator iterator =
+        Iterator<OMElement> iterator =
                 defaultEnvelope.getHeader().getChildrenWithName(Final.QNAME_WSA_RELATES_TO);
         int i = 0;
         while (iterator.hasNext()) {
@@ -346,7 +347,7 @@
 
         assertEquals("http://whatever.org", defaultEnvelope.getHeader()
                 .getFirstChildWithName(Final.QNAME_WSA_TO).getText());
-        Iterator iterator =
+        Iterator<OMElement> iterator =
                 defaultEnvelope.getHeader().getChildrenWithName(Final.QNAME_WSA_RELATES_TO);
         int i = 0;
         while (iterator.hasNext()) {
@@ -384,7 +385,7 @@
 
         assertEquals("http://oldEPR.org", defaultEnvelope.getHeader()
                 .getFirstChildWithName(Final.QNAME_WSA_TO).getText());
-        Iterator iterator =
+        Iterator<OMElement> iterator =
                 defaultEnvelope.getHeader().getChildrenWithName(Final.QNAME_WSA_RELATES_TO);
         int i = 0;
         while (iterator.hasNext()) {
diff --git a/modules/all/pom.xml b/modules/all/pom.xml
deleted file mode 100644
index 8c1c91f..0000000
--- a/modules/all/pom.xml
+++ /dev/null
@@ -1,240 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<!--
-  ~ Licensed to the Apache Software Foundation (ASF) under one
-  ~ or more contributor license agreements. See the NOTICE file
-  ~ distributed with this work for additional information
-  ~ regarding copyright ownership. The ASF licenses this file
-  ~ to you under the Apache License, Version 2.0 (the
-  ~ "License"); you may not use this file except in compliance
-  ~ with the License. You may obtain a copy of the License at
-  ~
-  ~ http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing,
-  ~ software distributed under the License is distributed on an
-  ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  ~ KIND, either express or implied. See the License for the
-  ~ specific language governing permissions and limitations
-  ~ under the License.
-  -->
-
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-
-    <parent>
-        <groupId>org.apache.axis2</groupId>
-        <artifactId>axis2-parent</artifactId>
-        <version>SNAPSHOT</version>
-        <relativePath>../parent/pom.xml</relativePath>
-    </parent>
-
-    <modelVersion>4.0.0</modelVersion>
-    <groupId>org.apache.axis2</groupId>
-    <artifactId>axis2-all</artifactId>
-    <packaging>bundle</packaging>
-    <name>Apache Axis2 - all</name>
-    <description>
-        This bundle exports all the axis2 packages;
-    </description>
-
-    <dependencies>
-
-        <dependency>
-            <groupId>org.apache.axis2</groupId>
-            <artifactId>axis2-adb</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.axis2</groupId>
-            <artifactId>axis2-adb-codegen</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.axis2</groupId>
-            <artifactId>axis2-clustering</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.axis2</groupId>
-            <artifactId>axis2-codegen</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.axis2</groupId>
-            <artifactId>axis2-corba</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.axis2</groupId>
-            <artifactId>axis2-fastinfoset</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.axis2</groupId>
-            <artifactId>axis2-fastinfoset</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.axis2</groupId>
-            <artifactId>axis2-java2wsdl</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.axis2</groupId>
-            <artifactId>axis2-jaxbri</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.axis2</groupId>
-            <artifactId>axis2-jaxws</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.axis2</groupId>
-            <artifactId>axis2-jibx</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.axis2</groupId>
-            <artifactId>axis2-json</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.axis2</groupId>
-            <artifactId>axis2-kernel</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.axis2</groupId>
-            <artifactId>axis2-metadata</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.axis2</groupId>
-            <artifactId>axis2-mtompolicy</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.axis2</groupId>
-            <artifactId>axis2-saaj</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.axis2</groupId>
-            <artifactId>axis2-spring</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.axis2</groupId>
-            <artifactId>axis2-transport-http</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.axis2</groupId>
-            <artifactId>axis2-transport-local</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.axis2</groupId>
-            <artifactId>axis2-xmlbeans</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.axis2</groupId>
-            <artifactId>mex</artifactId>
-            <type>jar</type>
-            <version>${project.version}</version>
-            <classifier>impl</classifier>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.felix</groupId>
-            <artifactId>org.apache.felix.framework</artifactId>
-            <version>1.0.3</version>
-            <scope>provided</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.felix</groupId>
-            <artifactId>org.osgi.core</artifactId>
-            <version>1.0.0</version>
-            <scope>provided</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.xmlbeans</groupId>
-            <artifactId>xmlbeans</artifactId>
-            <version>${xmlbeans.version}</version>
-        </dependency>
-
-    </dependencies>
-
-    <url>http://axis.apache.org/axis2/java/core/</url>
-    <scm>
-        <connection>scm:svn:http://svn.apache.org/repos/asf/axis/axis2/java/core/trunk/modules/all</connection>
-        <developerConnection>scm:svn:https://svn.apache.org/repos/asf/axis/axis2/java/core/trunk/modules/all</developerConnection>
-        <url>http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/all</url>
-    </scm>
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.felix</groupId>
-                <artifactId>maven-bundle-plugin</artifactId>
-                <extensions>true</extensions>
-                <configuration>
-                    <instructions>
-                        <Bundle-SymbolicName>${project.artifactId}</Bundle-SymbolicName>
-                        <Bundle-Name>${project.artifactId}</Bundle-Name>
-                        <Export-Package>
-                            org.apache.axis2.*; version="${project.version}",
-                            org.apache.ws.java2wsdl.*; version="${project.version}",
-                            javax.xml.ws.*; version=1.0.0,
-                            org.apache.xmlbeans.*; version=${xmlbeans.version},
-                        </Export-Package>
-                        <Import-Package>
-                            !org.apache.axis2.*; version="${project.version}",
-                            !org.apache.ws.java2wsdl.*; version="${project.version}",
-                            !javax.xml.ws.*; version=1.0.0,
-                            org.apache.axiom.*; version="${axiom.version}",
-                            org.apache.neethi.*; version="${neethi.version}",
-                            javax.servlet; version=2.4.0,
-                            javax.servlet.http; version=2.4.0,
-                            javax.xml.stream.*; version="1.0.1",
-                            javax.mail.*; version="1.4.0",
-                            javax.wsdl.*; version="1.6.2",
-                            javax.xml.bind.*;version="2.1.0";resolution:=optional,
-                            org.apache.catalina.tribes; version=6.0.16,
-                            *;resolution:=optional
-                        </Import-Package>
-                        <Embed-Dependency>
-                            xmlbeans;scope=compile|runtime;inline=false;
-                        </Embed-Dependency>
-                        <DynamicImport-Package>*</DynamicImport-Package>
-                    </instructions>
-                </configuration>
-            </plugin>
-        </plugins>
-    </build>
-</project>
diff --git a/modules/clustering/pom.xml b/modules/clustering/pom.xml
index af01b15..3552581 100644
--- a/modules/clustering/pom.xml
+++ b/modules/clustering/pom.xml
@@ -23,9 +23,9 @@
     <modelVersion>4.0.0</modelVersion>
     <parent>
         <groupId>org.apache.axis2</groupId>
-        <artifactId>axis2-parent</artifactId>
-        <version>1.7.0-SNAPSHOT</version>
-        <relativePath>../parent/pom.xml</relativePath>
+        <artifactId>axis2</artifactId>
+        <version>1.8.0-SNAPSHOT</version>
+        <relativePath>../../pom.xml</relativePath>
     </parent>
     <artifactId>axis2-clustering</artifactId>
     <name>Apache Axis2 - Clustering</name>
diff --git a/modules/codegen/build-wsdls.xml b/modules/codegen/build-wsdls.xml
index 37047b8..e58e941 100644
--- a/modules/codegen/build-wsdls.xml
+++ b/modules/codegen/build-wsdls.xml
@@ -40,6 +40,7 @@
     <mkdir dir="target/test-classes"/>

 

 		<java fork="yes" classname="org.apache.axis2.wsdl.WSDL2Java" failonerror="yes">

+			<jvmarg value="-Djavax.xml.accessExternalSchema=all" />

 			<classpath refid="maven.test.classpath" />

 			<classpath location="${compiled.classes.dir}" />

 			<arg line="-ap -o ${wsdl.output.base.dir}/version -d none -s -u -uri test-resources/wsdls/Version.wsdl" />

diff --git a/modules/codegen/pom.xml b/modules/codegen/pom.xml
index 33fb1c6..fe1fab4 100644
--- a/modules/codegen/pom.xml
+++ b/modules/codegen/pom.xml
@@ -23,9 +23,9 @@
     <modelVersion>4.0.0</modelVersion>
     <parent>
         <groupId>org.apache.axis2</groupId>
-        <artifactId>axis2-parent</artifactId>
-        <version>1.7.0-SNAPSHOT</version>
-        <relativePath>../parent/pom.xml</relativePath>
+        <artifactId>axis2</artifactId>
+        <version>1.8.0-SNAPSHOT</version>
+        <relativePath>../../pom.xml</relativePath>
     </parent>
     <artifactId>axis2-codegen</artifactId>
     <name>Apache Axis2 - Code Generation</name>
@@ -42,6 +42,11 @@
             <version>${project.version}</version>
         </dependency>
         <dependency>
+            <groupId>com.google.googlejavaformat</groupId>
+            <artifactId>google-java-format</artifactId>
+            <version>1.3</version>
+        </dependency>
+        <dependency>
             <groupId>${project.groupId}</groupId>
             <artifactId>axis2-transport-local</artifactId>
             <version>${project.version}</version>
@@ -55,7 +60,7 @@
         </dependency>
         <dependency>
             <groupId>com.sun.xml.ws</groupId>
-            <artifactId>jaxws-tools</artifactId>            
+            <artifactId>jaxws-tools</artifactId>
             <exclusions>
                 <exclusion>
                     <groupId>com.sun.xml.ws</groupId>
@@ -68,20 +73,25 @@
             </exclusions>
         </dependency>
         <dependency>
-        	<groupId>com.sun.xml.bind</groupId>
-            <artifactId>jaxb-xjc</artifactId>           
+            <groupId>com.sun.xml.bind</groupId>
+            <artifactId>jaxb-xjc</artifactId>
             <scope>test</scope>
         </dependency>
         <dependency>
              <groupId>com.sun.xml.ws</groupId>
-             <artifactId>jaxws-rt</artifactId>            
+             <artifactId>jaxws-rt</artifactId>
              <scope>test</scope>
         </dependency>
-	<dependency>
-	        <groupId>xmlunit</groupId>
-	        <artifactId>xmlunit</artifactId>
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
             <scope>test</scope>
-	 </dependency>
+        </dependency>
+        <dependency>
+            <groupId>xmlunit</groupId>
+            <artifactId>xmlunit</artifactId>
+            <scope>test</scope>
+        </dependency>
     </dependencies>
     <url>http://axis.apache.org/axis2/java/core/</url>
     <scm>
@@ -138,10 +148,10 @@
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-surefire-plugin</artifactId>
                 <inherited>true</inherited>
-                <configuration>                  
+                <configuration>
                     <includes>
-                        <include>**/*Test.java</include>                       
-                    </includes>                    
+                        <include>**/*Test.java</include>
+                    </includes>
                 </configuration>
             </plugin>
 
@@ -209,7 +219,7 @@
                         </goals>
                         <configuration>
                             <outputDirectory>${project.build.directory}/templates</outputDirectory>
-                            <resources>          
+                            <resources>
                                 <resource>
                                     <directory>../adb-codegen/src</directory>
                                     <includes>
@@ -229,13 +239,13 @@
                                     </includes>
                                 </resource>
                                 <resource>
-                                    <directory>../jibx/src</directory>
+                                    <directory>../jibx-codegen/src</directory>
                                     <includes>
                                         <include>**/*.xsl</include>
                                     </includes>
                                 </resource>
-                            </resources>              
-                        </configuration>            
+                            </resources>
+                        </configuration>
                     </execution>
                 </executions>
             </plugin>
diff --git a/modules/codegen/src/org/apache/axis2/util/PrettyPrinter.java b/modules/codegen/src/org/apache/axis2/util/PrettyPrinter.java
new file mode 100644
index 0000000..d51336c
--- /dev/null
+++ b/modules/codegen/src/org/apache/axis2/util/PrettyPrinter.java
@@ -0,0 +1,55 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.axis2.util;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+import com.google.common.base.Charsets;
+import com.google.common.io.Files;
+import com.google.googlejavaformat.java.Formatter;
+
+import java.io.File;
+
+/**
+ * Tidies up the java source code.
+ */
+public class PrettyPrinter {
+    private static final Log log = LogFactory.getLog(PrettyPrinter.class);
+
+
+    /**
+     * Pretty prints contents of the java source file.
+     *
+     * @param file
+     */
+    public static void prettify(File file) {
+        File formattedFile = new File(file.getParentFile(), file.getName() + ".new");
+        try {
+            new Formatter().formatSource(
+                    Files.asCharSource(file, Charsets.UTF_8),
+                    Files.asCharSink(formattedFile, Charsets.UTF_8));
+        } catch (Exception e) {
+            log.warn("Exception occurred while trying to pretty print file " + file, e);
+        }
+        file.delete();
+        formattedFile.renameTo(file);
+    }
+}
diff --git a/modules/kernel/src/org/apache/axis2/util/XSLTTemplateProcessor.java b/modules/codegen/src/org/apache/axis2/util/XSLTTemplateProcessor.java
similarity index 100%
rename from modules/kernel/src/org/apache/axis2/util/XSLTTemplateProcessor.java
rename to modules/codegen/src/org/apache/axis2/util/XSLTTemplateProcessor.java
diff --git a/modules/codegen/src/org/apache/axis2/wsdl/WSDL2Code.java b/modules/codegen/src/org/apache/axis2/wsdl/WSDL2Code.java
index 875cf63..8a482ac 100644
--- a/modules/codegen/src/org/apache/axis2/wsdl/WSDL2Code.java
+++ b/modules/codegen/src/org/apache/axis2/wsdl/WSDL2Code.java
@@ -28,7 +28,9 @@
 import org.apache.axis2.util.CommandLineOption;
 import org.apache.axis2.util.CommandLineOptionConstants;
 import org.apache.axis2.util.CommandLineOptionParser;
+import org.apache.axis2.wsdl.codegen.CodeGenConfiguration;
 import org.apache.axis2.wsdl.codegen.CodeGenerationEngine;
+import org.apache.axis2.wsdl.codegen.CodegenConfigLoader;
 import org.apache.axis2.wsdl.codegen.jaxws.JAXWSCodeGenerationEngine;
 import org.apache.axis2.wsdl.i18n.CodegenMessages;
 import org.apache.axis2.wsdl.util.WSDL2JavaOptionsValidator;
@@ -47,7 +49,9 @@
          return;
       }
         if (isOptionsValid(commandLineOptionParser)){
-            new CodeGenerationEngine(commandLineOptionParser).generate();
+            CodeGenConfiguration config = new CodeGenConfiguration();
+            CodegenConfigLoader.loadConfig(config, commandLineOptionParser.getAllOptions());
+            new CodeGenerationEngine(config).generate();
         } else {
             printUsage();
         }
diff --git a/modules/codegen/src/org/apache/axis2/wsdl/codegen/CodeGenConfiguration.java b/modules/codegen/src/org/apache/axis2/wsdl/codegen/CodeGenConfiguration.java
index 98bcfd8..c432ac2 100644
--- a/modules/codegen/src/org/apache/axis2/wsdl/codegen/CodeGenConfiguration.java
+++ b/modules/codegen/src/org/apache/axis2/wsdl/codegen/CodeGenConfiguration.java
@@ -19,19 +19,32 @@
 
 package org.apache.axis2.wsdl.codegen;
 
+import org.apache.axis2.AxisFault;
 import org.apache.axis2.description.AxisService;
-import org.apache.axis2.util.CommandLineOption;
+import org.apache.axis2.description.WSDL11ToAllAxisServicesBuilder;
+import org.apache.axis2.description.WSDL11ToAxisServiceBuilder;
+import org.apache.axis2.description.WSDL20ToAllAxisServicesBuilder;
+import org.apache.axis2.description.WSDL20ToAxisServiceBuilder;
 import org.apache.axis2.util.CommandLineOptionConstants;
 import org.apache.axis2.util.URLProcessor;
+import org.apache.axis2.wsdl.WSDLUtil;
 import org.apache.axis2.wsdl.databinding.TypeMapper;
+import org.apache.axis2.wsdl.i18n.CodegenMessages;
 import org.apache.axis2.wsdl.util.ConfigPropertyFileLoader;
 import org.apache.ws.commons.schema.XmlSchema;
 
 import javax.wsdl.Definition;
+import javax.wsdl.WSDLException;
+import javax.wsdl.xml.WSDLReader;
+import javax.xml.namespace.QName;
+
 import java.io.File;
+import java.io.IOException;
+import java.net.HttpURLConnection;
+import java.net.URISyntaxException;
+import java.net.URL;
 import java.util.ArrayList;
 import java.util.HashMap;
-import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 
@@ -174,6 +187,10 @@
         this.outputLanguage = outputLanguage;
     }
 
+    public void setOutputEncoding(String outputEncoding) {
+        this.outputEncoding = outputEncoding;
+    }
+
     public void setAdvancedCodeGenEnabled(boolean advancedCodeGenEnabled) {
         this.advancedCodeGenEnabled = advancedCodeGenEnabled;
     }
@@ -206,6 +223,7 @@
 
     //get the defaults for these from the property file
     private String outputLanguage = ConfigPropertyFileLoader.getDefaultLanguage();
+    private String outputEncoding = System.getProperty("file.encoding");
     private String databindingType = ConfigPropertyFileLoader.getDefaultDBFrameworkName();
     private boolean advancedCodeGenEnabled = false;
 
@@ -377,8 +395,7 @@
      *
      * @param optionMap
      */
-    public CodeGenConfiguration(Map<String,CommandLineOption> optionMap) {
-        CodegenConfigLoader.loadConfig(this, optionMap);
+    public CodeGenConfiguration() {
         this.axisServices = new ArrayList<AxisService>();
         this.outputFileNamesList = new ArrayList<String>();
     }
@@ -393,6 +410,10 @@
         return outputLanguage;
     }
 
+    public String getOutputEncoding() {
+        return outputEncoding;
+    }
+
     public boolean isAdvancedCodeGenEnabled() {
         return advancedCodeGenEnabled;
     }
@@ -640,4 +661,126 @@
     public void setUseOperationName(boolean useOperationName) {
         isUseOperationName = useOperationName;
     }
+
+    public void loadWsdl(String wsdlUri) throws CodeGenerationException {
+        try {
+            // the redirected urls gives problems in code generation some times with jaxbri
+            // eg. https://www.paypal.com/wsdl/PayPalSvc.wsdl
+            // if there is a redirect url better to find it and use.
+            if (wsdlUri.startsWith("http")) {
+                URL url = new URL(wsdlUri);
+                HttpURLConnection connection = (HttpURLConnection) url.openConnection();
+                connection.setInstanceFollowRedirects(false);
+                connection.getResponseCode();
+                String newLocation = connection.getHeaderField("Location");
+                if (newLocation != null){
+                    wsdlUri = newLocation;
+                }
+            }
+
+            if (CommandLineOptionConstants.WSDL2JavaConstants.WSDL_VERSION_2.
+                    equals(getWSDLVersion())) {
+
+                WSDL20ToAxisServiceBuilder builder;
+
+                // jibx currently does not support multiservice
+                if ((getServiceName() != null) || (getDatabindingType().equals("jibx"))) {
+                    builder = new WSDL20ToAxisServiceBuilder(
+                            wsdlUri,
+                            getServiceName(),
+                            getPortName(),
+                            isAllPorts());
+                    builder.setCodegen(true);
+                    addAxisService(builder.populateService());
+                } else {
+                    builder = new WSDL20ToAllAxisServicesBuilder(wsdlUri, getPortName());
+                    builder.setCodegen(true);
+                    builder.setAllPorts(isAllPorts());
+                    setAxisServices(
+                            ((WSDL20ToAllAxisServicesBuilder)builder).populateAllServices());
+                }
+
+            } else {
+                //It'll be WSDL 1.1
+                Definition wsdl4jDef = readInTheWSDLFile(wsdlUri);
+
+                // we save the original wsdl definition to write it to the resource folder later
+                // this is required only if it has imports
+                Map imports = wsdl4jDef.getImports();
+                if ((imports != null) && (imports.size() > 0)) {
+                    setWsdlDefinition(readInTheWSDLFile(wsdlUri));
+                } else {
+                    setWsdlDefinition(wsdl4jDef);
+                }
+
+                // we generate the code for one service and one port if the
+                // user has specified them.
+                // otherwise generate the code for every service.
+                // TODO: find out a permanant solution for this.
+                QName serviceQname = null;
+
+                if (getServiceName() != null) {
+                    serviceQname = new QName(wsdl4jDef.getTargetNamespace(),
+                                             getServiceName());
+                }
+
+                WSDL11ToAxisServiceBuilder builder;
+                // jibx currently does not support multiservice
+                if ((serviceQname != null) || (getDatabindingType().equals("jibx"))) {
+                    builder = new WSDL11ToAxisServiceBuilder(
+                            wsdl4jDef,
+                            serviceQname,
+                            getPortName(),
+                            isAllPorts());
+                    builder.setCodegen(true);
+                    addAxisService(builder.populateService());
+                } else {
+                    builder = new WSDL11ToAllAxisServicesBuilder(wsdl4jDef, getPortName());
+                    builder.setCodegen(true);
+                    builder.setAllPorts(isAllPorts());
+                    setAxisServices(
+                            ((WSDL11ToAllAxisServicesBuilder)builder).populateAllServices());
+                }
+            }
+            setBaseURI(getBaseURI(wsdlUri));
+        } catch (AxisFault axisFault) {
+            throw new CodeGenerationException(
+                    CodegenMessages.getMessage("engine.wsdlParsingException"), axisFault);
+        } catch (WSDLException e) {
+            throw new CodeGenerationException(
+                    CodegenMessages.getMessage("engine.wsdlParsingException"), e);
+        } catch (Exception e) {
+            throw new CodeGenerationException(                            
+                    CodegenMessages.getMessage("engine.wsdlParsingException"), e);
+        }
+    }
+
+    /**
+     * calculates the base URI Needs improvement but works fine for now ;)
+     *
+     * @param currentURI
+     */
+    private String getBaseURI(String currentURI) throws URISyntaxException, IOException {
+        File file = new File(currentURI);
+        if (file.exists()) {
+            return file.getCanonicalFile().getParentFile().toURI().toString();
+        }
+        String uriFragment = currentURI.substring(0, currentURI.lastIndexOf("/"));
+        return uriFragment + (uriFragment.endsWith("/") ? "" : "/");
+    }
+
+    /**
+     * Read the WSDL file
+     *
+     * @param uri
+     * @throws WSDLException
+     */
+    private Definition readInTheWSDLFile(final String uri) throws WSDLException {
+
+        WSDLReader reader = WSDLUtil.newWSDLReaderWithPopulatedExtensionRegistry();
+        reader.setFeature("javax.wsdl.importDocuments", true);
+
+        return reader.readWSDL(uri);
+        
+    }
 }
diff --git a/modules/codegen/src/org/apache/axis2/wsdl/codegen/CodeGenerationEngine.java b/modules/codegen/src/org/apache/axis2/wsdl/codegen/CodeGenerationEngine.java
index ba75bae..ed61f70 100644
--- a/modules/codegen/src/org/apache/axis2/wsdl/codegen/CodeGenerationEngine.java
+++ b/modules/codegen/src/org/apache/axis2/wsdl/codegen/CodeGenerationEngine.java
@@ -19,15 +19,6 @@
 
 package org.apache.axis2.wsdl.codegen;
 
-import org.apache.axis2.AxisFault;
-import org.apache.axis2.addressing.AddressingConstants;
-import org.apache.axis2.description.WSDL11ToAllAxisServicesBuilder;
-import org.apache.axis2.description.WSDL11ToAxisServiceBuilder;
-import org.apache.axis2.description.WSDL20ToAllAxisServicesBuilder;
-import org.apache.axis2.description.WSDL20ToAxisServiceBuilder;
-import org.apache.axis2.util.CommandLineOption;
-import org.apache.axis2.util.CommandLineOptionConstants;
-import org.apache.axis2.util.CommandLineOptionParser;
 import org.apache.axis2.wsdl.codegen.emitter.Emitter;
 import org.apache.axis2.wsdl.codegen.extension.CodeGenExtension;
 import org.apache.axis2.wsdl.databinding.TypeMapper;
@@ -36,20 +27,9 @@
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 
-import javax.wsdl.Definition;
-import javax.wsdl.WSDLException;
-import javax.wsdl.Output;
-import javax.wsdl.Input;
-import javax.wsdl.extensions.AttributeExtensible;
-import javax.wsdl.extensions.ExtensionRegistry;
-import javax.wsdl.factory.WSDLFactory;
-import javax.wsdl.xml.WSDLReader;
-import javax.xml.namespace.QName;
 import java.io.File;
 import java.io.IOException;
 import java.net.URISyntaxException;
-import java.net.URL;
-import java.net.HttpURLConnection;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
@@ -76,116 +56,6 @@
     }
 
     /**
-     * @param parser
-     * @throws CodeGenerationException
-     */
-    public CodeGenerationEngine(CommandLineOptionParser parser) throws CodeGenerationException {
-        Map allOptions = parser.getAllOptions();
-        String wsdlUri;
-        try {
-
-            CommandLineOption option =
-                    (CommandLineOption)allOptions.
-                            get(CommandLineOptionConstants.WSDL2JavaConstants.WSDL_LOCATION_URI_OPTION);
-            wsdlUri = option.getOptionValue();
-
-            // the redirected urls gives problems in code generation some times with jaxbri
-            // eg. https://www.paypal.com/wsdl/PayPalSvc.wsdl
-            // if there is a redirect url better to find it and use.
-            if (wsdlUri.startsWith("http")) {
-                URL url = new URL(wsdlUri);
-                HttpURLConnection connection = (HttpURLConnection) url.openConnection();
-                connection.setInstanceFollowRedirects(false);
-                connection.getResponseCode();
-                String newLocation = connection.getHeaderField("Location");
-                if (newLocation != null){
-                    wsdlUri = newLocation;
-                }
-            }
-
-            configuration = new CodeGenConfiguration(allOptions);
-
-
-            if (CommandLineOptionConstants.WSDL2JavaConstants.WSDL_VERSION_2.
-                    equals(configuration.getWSDLVersion())) {
-
-                WSDL20ToAxisServiceBuilder builder;
-
-                // jibx currently does not support multiservice
-                if ((configuration.getServiceName() != null) || (configuration.getDatabindingType().equals("jibx"))) {
-                    builder = new WSDL20ToAxisServiceBuilder(
-                            wsdlUri,
-                            configuration.getServiceName(),
-                            configuration.getPortName(),
-                            configuration.isAllPorts());
-                    builder.setCodegen(true);
-                    configuration.addAxisService(builder.populateService());
-                } else {
-                    builder = new WSDL20ToAllAxisServicesBuilder(wsdlUri, configuration.getPortName());
-                    builder.setCodegen(true);
-                    builder.setAllPorts(configuration.isAllPorts());
-                    configuration.setAxisServices(
-                            ((WSDL20ToAllAxisServicesBuilder)builder).populateAllServices());
-                }
-
-            } else {
-                //It'll be WSDL 1.1
-                Definition wsdl4jDef = readInTheWSDLFile(wsdlUri);
-
-                // we save the original wsdl definition to write it to the resource folder later
-                // this is required only if it has imports
-                Map imports = wsdl4jDef.getImports();
-                if ((imports != null) && (imports.size() > 0)) {
-                    configuration.setWsdlDefinition(readInTheWSDLFile(wsdlUri));
-                } else {
-                    configuration.setWsdlDefinition(wsdl4jDef);
-                }
-
-                // we generate the code for one service and one port if the
-                // user has specified them.
-                // otherwise generate the code for every service.
-                // TODO: find out a permanant solution for this.
-                QName serviceQname = null;
-
-                if (configuration.getServiceName() != null) {
-                    serviceQname = new QName(wsdl4jDef.getTargetNamespace(),
-                                             configuration.getServiceName());
-                }
-
-                WSDL11ToAxisServiceBuilder builder;
-                // jibx currently does not support multiservice
-                if ((serviceQname != null) || (configuration.getDatabindingType().equals("jibx"))) {
-                    builder = new WSDL11ToAxisServiceBuilder(
-                            wsdl4jDef,
-                            serviceQname,
-                            configuration.getPortName(),
-                            configuration.isAllPorts());
-                    builder.setCodegen(true);
-                    configuration.addAxisService(builder.populateService());
-                } else {
-                    builder = new WSDL11ToAllAxisServicesBuilder(wsdl4jDef, configuration.getPortName());
-                    builder.setCodegen(true);
-                    builder.setAllPorts(configuration.isAllPorts());
-                    configuration.setAxisServices(
-                            ((WSDL11ToAllAxisServicesBuilder)builder).populateAllServices());
-                }
-            }
-            configuration.setBaseURI(getBaseURI(wsdlUri));
-        } catch (AxisFault axisFault) {
-            throw new CodeGenerationException(
-                    CodegenMessages.getMessage("engine.wsdlParsingException"), axisFault);
-        } catch (WSDLException e) {
-            throw new CodeGenerationException(
-                    CodegenMessages.getMessage("engine.wsdlParsingException"), e);
-        } catch (Exception e) {
-            throw new CodeGenerationException(                            
-                    CodegenMessages.getMessage("engine.wsdlParsingException"), e);
-        }
-
-        loadExtensions();
-    }
-
-    /**
      * Loads the relevant preExtensions
      *
      * @throws CodeGenerationException
@@ -296,32 +166,6 @@
 
     }
 
-
-    /**
-     * Read the WSDL file
-     *
-     * @param uri
-     * @throws WSDLException
-     */
-    public Definition readInTheWSDLFile(final String uri) throws WSDLException {
-
-        WSDLReader reader = WSDLFactory.newInstance().newWSDLReader();
-        reader.setFeature("javax.wsdl.importDocuments", true);
-
-        ExtensionRegistry extReg = WSDLFactory.newInstance().newPopulatedExtensionRegistry();
-        extReg.registerExtensionAttributeType(Input.class,
-                new QName(AddressingConstants.Final.WSAW_NAMESPACE, AddressingConstants.WSA_ACTION),
-                AttributeExtensible.STRING_TYPE);
-        extReg.registerExtensionAttributeType(Output.class,
-                new QName(AddressingConstants.Final.WSAW_NAMESPACE, AddressingConstants.WSA_ACTION),
-                AttributeExtensible.STRING_TYPE);
-        reader.setExtensionRegistry(extReg);
-
-        return reader.readWSDL(uri);
-        
-    }
-
-
     /**
      * gets a object from the class
      *
@@ -361,20 +205,6 @@
     }
 
     /**
-     * calculates the base URI Needs improvement but works fine for now ;)
-     *
-     * @param currentURI
-     */
-    private String getBaseURI(String currentURI) throws URISyntaxException, IOException {
-        File file = new File(currentURI);
-        if (file.exists()) {
-            return file.getCanonicalFile().getParentFile().toURI().toString();
-        }
-        String uriFragment = currentURI.substring(0, currentURI.lastIndexOf("/"));
-        return uriFragment + (uriFragment.endsWith("/") ? "" : "/");
-    }
-
-    /**
      * calculates the URI
      * needs improvement
      *
diff --git a/modules/codegen/src/org/apache/axis2/wsdl/codegen/CodegenConfigLoader.java b/modules/codegen/src/org/apache/axis2/wsdl/codegen/CodegenConfigLoader.java
index 67b96e5..99a78ba 100644
--- a/modules/codegen/src/org/apache/axis2/wsdl/codegen/CodegenConfigLoader.java
+++ b/modules/codegen/src/org/apache/axis2/wsdl/codegen/CodegenConfigLoader.java
@@ -31,9 +31,8 @@
 import java.util.Map;
 import java.util.Properties;
 
-class CodegenConfigLoader implements CommandLineOptionConstants {
-
-    public static void loadConfig(CodeGenConfiguration config, Map<String,CommandLineOption> optionMap) {
+public class CodegenConfigLoader implements CommandLineOptionConstants {
+    public static void loadConfig(CodeGenConfiguration config, Map<String,CommandLineOption> optionMap) throws CodeGenerationException {
         String outputLocation = "."; //default output directory is the current working directory
         CommandLineOption commandLineOption = loadOption(WSDL2JavaConstants.OUTPUT_LOCATION_OPTION,
                                                          WSDL2JavaConstants.OUTPUT_LOCATION_OPTION_LONG,
@@ -326,7 +325,7 @@
             }
         }
 
-
+        config.loadWsdl(optionMap.get(WSDL2JavaConstants.WSDL_LOCATION_URI_OPTION).getOptionValue());
     }
 
     private static CommandLineOption loadOption(String shortOption, String longOption,
diff --git a/modules/codegen/src/org/apache/axis2/wsdl/codegen/extension/JavaPrettyPrinterExtension.java b/modules/codegen/src/org/apache/axis2/wsdl/codegen/extension/JavaPrettyPrinterExtension.java
index 6065e51..4c9701e 100644
--- a/modules/codegen/src/org/apache/axis2/wsdl/codegen/extension/JavaPrettyPrinterExtension.java
+++ b/modules/codegen/src/org/apache/axis2/wsdl/codegen/extension/JavaPrettyPrinterExtension.java
@@ -40,11 +40,6 @@
      * @param file
      */
     protected void prettifyFile(File file) {
-        // Special case jaxbri generated package-info.java 
-        // as jalopy corrupts the package level annotations
-        if (file.getName().equals("package-info.java")) {
-            return;
-        }
         PrettyPrinter.prettify(file);
     }
 }
diff --git a/modules/codegen/src/org/apache/axis2/wsdl/template/java/InterfaceImplementationTemplate.xsl b/modules/codegen/src/org/apache/axis2/wsdl/template/java/InterfaceImplementationTemplate.xsl
index f547ed0..47f3a57 100644
--- a/modules/codegen/src/org/apache/axis2/wsdl/template/java/InterfaceImplementationTemplate.xsl
+++ b/modules/codegen/src/org/apache/axis2/wsdl/template/java/InterfaceImplementationTemplate.xsl
@@ -59,9 +59,9 @@
         protected org.apache.axis2.description.AxisOperation[] _operations;
 
         //hashmaps to keep the fault mapping
-        private java.util.HashMap faultExceptionNameMap = new java.util.HashMap();
-        private java.util.HashMap faultExceptionClassNameMap = new java.util.HashMap();
-        private java.util.HashMap faultMessageMap = new java.util.HashMap();
+        private java.util.Map&lt;org.apache.axis2.client.FaultMapKey,String> faultExceptionNameMap = new java.util.HashMap&lt;org.apache.axis2.client.FaultMapKey,String>();
+        private java.util.Map&lt;org.apache.axis2.client.FaultMapKey,String> faultExceptionClassNameMap = new java.util.HashMap&lt;org.apache.axis2.client.FaultMapKey,String>();
+        private java.util.Map&lt;org.apache.axis2.client.FaultMapKey,String> faultMessageMap = new java.util.HashMap&lt;org.apache.axis2.client.FaultMapKey,String>();
 
         private static int counter = 0;
 
@@ -315,7 +315,7 @@
                     <xsl:for-each select="fault/param[@type!='']">
                         ,<xsl:value-of select="@name"/>
                     </xsl:for-each>{
-              org.apache.axis2.context.MessageContext _messageContext = null;
+              org.apache.axis2.context.MessageContext _messageContext = new org.apache.axis2.context.MessageContext();
               try{
                org.apache.axis2.client.OperationClient _operationClient = _serviceClient.createClient(_operations[<xsl:value-of select="position()-1"/>].getName());
               _operationClient.getOptions().setAction("<xsl:value-of select="$soapAction"/>");
@@ -326,9 +326,6 @@
                   addPropertyToOperationClient(_operationClient,<xsl:value-of select="@name"/>,<xsl:value-of select="@value"/>);
               </xsl:for-each>
 
-              // create a message context
-              _messageContext = new org.apache.axis2.context.MessageContext();
-
               <!--todo if the stub was generated with unwrapping, wrap all parameters into a single element-->
 
               // create SOAP envelope with that payload
@@ -383,9 +380,6 @@
                                         </xsl:otherwise>
                                     </xsl:choose>
 
-                                   <xsl:if test="count(input/param[@location='soap_header']) &gt; 0">
-                                               env.build();
-                                    </xsl:if>
                                     <xsl:for-each select="input/param[@location='soap_header']">
                                         // add the children only if the parameter is not null
                                         if (<xsl:value-of select="@name"/>!=null){
@@ -486,7 +480,7 @@
                                 java.lang.Object object = fromOM(
                                              _returnEnv.getBody().getFirstElement() ,
                                              <xsl:value-of select="$outputtype"/>.class);
-
+                                org.apache.axis2.transport.TransportUtils.detachInputStream(_returnMessageContext);
                                <xsl:choose>
                                    <xsl:when test="$outputparamcount=1">
                                         return get<xsl:value-of select="$outputparamshorttype"/><xsl:value-of
@@ -519,12 +513,12 @@
                 if (faultExceptionNameMap.containsKey(new org.apache.axis2.client.FaultMapKey(faultElt.getQName(),"<xsl:value-of select="@originalName"/>"))){
                     //make the fault by reflection
                     try{
-                        java.lang.String exceptionClassName = (java.lang.String)faultExceptionClassNameMap.get(new org.apache.axis2.client.FaultMapKey(faultElt.getQName(),"<xsl:value-of select="@originalName"/>"));
+                        java.lang.String exceptionClassName = faultExceptionClassNameMap.get(new org.apache.axis2.client.FaultMapKey(faultElt.getQName(),"<xsl:value-of select="@originalName"/>"));
                         java.lang.Class exceptionClass = java.lang.Class.forName(exceptionClassName);
                         java.lang.reflect.Constructor constructor = exceptionClass.getConstructor(java.lang.String.class);
                         java.lang.Exception ex = (java.lang.Exception) constructor.newInstance(f.getMessage());
                         //message class
-                        java.lang.String messageClassName = (java.lang.String)faultMessageMap.get(new org.apache.axis2.client.FaultMapKey(faultElt.getQName(),"<xsl:value-of select="@originalName"/>"));
+                        java.lang.String messageClassName = faultMessageMap.get(new org.apache.axis2.client.FaultMapKey(faultElt.getQName(),"<xsl:value-of select="@originalName"/>"));
                         java.lang.Class messageClass = java.lang.Class.forName(messageClassName);
                         java.lang.Object messageObject = fromOM(faultElt,messageClass);
                         java.lang.reflect.Method m = exceptionClass.getMethod("setFaultMessage",
@@ -789,12 +783,12 @@
 										if (faultExceptionNameMap.containsKey(new org.apache.axis2.client.FaultMapKey(faultElt.getQName(),"<xsl:value-of select="@originalName"/>"))){
 											//make the fault by reflection
 											try{
-													java.lang.String exceptionClassName = (java.lang.String)faultExceptionClassNameMap.get(new org.apache.axis2.client.FaultMapKey(faultElt.getQName(),"<xsl:value-of select="@originalName"/>"));
+													java.lang.String exceptionClassName = faultExceptionClassNameMap.get(new org.apache.axis2.client.FaultMapKey(faultElt.getQName(),"<xsl:value-of select="@originalName"/>"));
 													java.lang.Class exceptionClass = java.lang.Class.forName(exceptionClassName);
 													java.lang.reflect.Constructor constructor = exceptionClass.getConstructor(java.lang.String.class);
                                                     java.lang.Exception ex = (java.lang.Exception) constructor.newInstance(f.getMessage());
 													//message class
-													java.lang.String messageClassName = (java.lang.String)faultMessageMap.get(new org.apache.axis2.client.FaultMapKey(faultElt.getQName(),"<xsl:value-of select="@originalName"/>"));
+													java.lang.String messageClassName = faultMessageMap.get(new org.apache.axis2.client.FaultMapKey(faultElt.getQName(),"<xsl:value-of select="@originalName"/>"));
 														java.lang.Class messageClass = java.lang.Class.forName(messageClassName);
 													java.lang.Object messageObject = fromOM(faultElt,messageClass);
 													java.lang.reflect.Method m = exceptionClass.getMethod("setFaultMessage",
@@ -923,7 +917,7 @@
                     </xsl:for-each>
                 </xsl:if>
                 {
-                org.apache.axis2.context.MessageContext _messageContext = null;
+                org.apache.axis2.context.MessageContext _messageContext = new org.apache.axis2.context.MessageContext();
 
                 <xsl:if test="$mep='11'">try {</xsl:if>
                 org.apache.axis2.client.OperationClient _operationClient = _serviceClient.createClient(_operations[<xsl:value-of select="position()-1"/>].getName());
@@ -937,7 +931,6 @@
 
                 <xsl:for-each select="input/param[@Action!='']">_operationClient.getOptions().setAction("<xsl:value-of select="@Action"/>");</xsl:for-each>
                 org.apache.axiom.soap.SOAPEnvelope env = null;
-                 _messageContext = new org.apache.axis2.context.MessageContext();
 
                 <xsl:variable name="count" select="count(input/param[@type!=''])"/>
                                     <xsl:choose>
@@ -1049,12 +1042,12 @@
                       if (faultExceptionNameMap.containsKey(new org.apache.axis2.client.FaultMapKey(faultElt.getQName(),"<xsl:value-of select="@originalName"/>"))){
                           //make the fault by reflection
                           try{
-                              java.lang.String exceptionClassName = (java.lang.String)faultExceptionClassNameMap.get(new org.apache.axis2.client.FaultMapKey(faultElt.getQName(),"<xsl:value-of select="@originalName"/>"));
+                              java.lang.String exceptionClassName = faultExceptionClassNameMap.get(new org.apache.axis2.client.FaultMapKey(faultElt.getQName(),"<xsl:value-of select="@originalName"/>"));
                               java.lang.Class exceptionClass = java.lang.Class.forName(exceptionClassName);
                               java.lang.Exception ex=
                                       (java.lang.Exception) exceptionClass.newInstance();
                               //message class
-                              java.lang.String messageClassName = (java.lang.String)faultMessageMap.get(new org.apache.axis2.client.FaultMapKey(faultElt.getQName(),"<xsl:value-of select="@originalName"/>"));
+                              java.lang.String messageClassName = faultMessageMap.get(new org.apache.axis2.client.FaultMapKey(faultElt.getQName(),"<xsl:value-of select="@originalName"/>"));
                               java.lang.Class messageClass = java.lang.Class.forName(messageClassName);
                               java.lang.Object messageObject = fromOM(faultElt,messageClass);
                               java.lang.reflect.Method m = exceptionClass.getMethod("setFaultMessage",
diff --git a/modules/codegen/test-resources/schemas/custom_schemas/generated.xsd b/modules/codegen/test-resources/schemas/custom_schemas/generated.xsd
index 4b9b061..493af59 100644
--- a/modules/codegen/test-resources/schemas/custom_schemas/generated.xsd
+++ b/modules/codegen/test-resources/schemas/custom_schemas/generated.xsd
@@ -1,5 +1,4 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://www.w3schools.com" attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://www.w3schools.com">
+<?xml version="1.0" encoding="UTF-8"?><xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://www.w3schools.com" attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://www.w3schools.com">
     <xs:element name="note">
         <xs:complexType>
             <xs:sequence>
diff --git a/modules/codegen/test/org/apache/axis2/wsdl/codegen/CodeGenConfigurationTest.java b/modules/codegen/test/org/apache/axis2/wsdl/codegen/CodeGenConfigurationTest.java
index 5411978..c62bb13 100644
--- a/modules/codegen/test/org/apache/axis2/wsdl/codegen/CodeGenConfigurationTest.java
+++ b/modules/codegen/test/org/apache/axis2/wsdl/codegen/CodeGenConfigurationTest.java
@@ -21,13 +21,10 @@
 package org.apache.axis2.wsdl.codegen;
 
 import java.util.ArrayList;
-import java.util.HashMap;
 import java.util.List;
-import java.util.Map;
 
 import org.apache.axis2.description.AxisService;
 import org.apache.axis2.wsdl.codegen.XMLSchemaTest;
-import org.apache.axis2.util.CommandLineOption;
 import org.apache.ws.commons.schema.XmlSchema;
 import org.junit.Test;
 
@@ -55,8 +52,7 @@
     
     @Test
     public void testGetSchemaListForAllServices(){
-        Map<String, CommandLineOption> optionMap = new HashMap<String, CommandLineOption>();
-        CodeGenConfiguration configuration = new CodeGenConfiguration(optionMap);
+        CodeGenConfiguration configuration = new CodeGenConfiguration();
         configuration.addAxisService(service);
         List<XmlSchema> list=configuration.getSchemaListForAllServices();
         assertEquals(schemas.get(0), list.get(0));
diff --git a/modules/codegen/test/org/apache/axis2/wsdl/codegen/extension/JAXWSWapperExtensionTest.java b/modules/codegen/test/org/apache/axis2/wsdl/codegen/extension/JAXWSWapperExtensionTest.java
index effb97a..051dc70 100644
--- a/modules/codegen/test/org/apache/axis2/wsdl/codegen/extension/JAXWSWapperExtensionTest.java
+++ b/modules/codegen/test/org/apache/axis2/wsdl/codegen/extension/JAXWSWapperExtensionTest.java
@@ -21,8 +21,6 @@
 package org.apache.axis2.wsdl.codegen.extension;
 
 import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Map;
 
 import javax.xml.namespace.QName;
 
@@ -35,7 +33,6 @@
 import org.apache.axis2.description.AxisMessage;
 import org.apache.axis2.description.AxisOperation;
 import org.apache.axis2.description.AxisService;
-import org.apache.axis2.util.CommandLineOption;
 import org.apache.axis2.wsdl.codegen.CodeGenConfiguration;
 import org.apache.axis2.wsdl.codegen.XMLSchemaTest;
 import org.apache.ws.commons.schema.XmlSchema;
@@ -144,8 +141,7 @@
         axisOperation.addMessage(axisMessage, "test_message");
         service.addOperation(axisOperation);
         JAXWSWapperExtension extension = new JAXWSWapperExtension();
-        Map<String, CommandLineOption> optionMap = new HashMap<String, CommandLineOption>();
-        CodeGenConfiguration configuration = new CodeGenConfiguration(optionMap);
+        CodeGenConfiguration configuration = new CodeGenConfiguration();
         configuration.setOutputLanguage("jax-ws");
         configuration.setParametersWrapped(false);
         configuration.addAxisService(service);
@@ -156,8 +152,7 @@
     @Test
     public void  testWalkSchema() throws Exception{
         JAXWSWapperExtension extension = new JAXWSWapperExtension();
-        Map<String, CommandLineOption> optionMap = new HashMap<String, CommandLineOption>();
-        CodeGenConfiguration configuration = new CodeGenConfiguration(optionMap);
+        CodeGenConfiguration configuration = new CodeGenConfiguration();
         configuration.setOutputLanguage("jax-ws");
         configuration.setParametersWrapped(false);
         configuration.addAxisService(service);        
diff --git a/modules/codegen/test/org/apache/axis2/wsdl/codegen/extension/WSDLValidatorExtensionTest.java b/modules/codegen/test/org/apache/axis2/wsdl/codegen/extension/WSDLValidatorExtensionTest.java
index c21ea00..a676316 100644
--- a/modules/codegen/test/org/apache/axis2/wsdl/codegen/extension/WSDLValidatorExtensionTest.java
+++ b/modules/codegen/test/org/apache/axis2/wsdl/codegen/extension/WSDLValidatorExtensionTest.java
@@ -21,7 +21,6 @@
 package org.apache.axis2.wsdl.codegen.extension;
 
 import org.apache.axis2.description.AxisService;
-import org.apache.axis2.util.CommandLineOption;
 import org.apache.axis2.wsdl.codegen.CodeGenConfiguration;
 import org.apache.axis2.wsdl.codegen.CodeGenerationException;
 import org.apache.axis2.wsdl.codegen.XMLSchemaTest;
@@ -29,8 +28,6 @@
 import org.junit.Test;
 
 import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Map;
 
 public class WSDLValidatorExtensionTest extends XMLSchemaTest {
 
@@ -43,10 +40,9 @@
             try {
                 AxisService service = new AxisService();
                 ArrayList<XmlSchema> list = new ArrayList<XmlSchema>();
-                Map<String, CommandLineOption> optionMap = new HashMap<String, CommandLineOption>();
                 list.add(schema);
                 service.addSchema(list);
-                CodeGenConfiguration configuration = new CodeGenConfiguration(optionMap);
+                CodeGenConfiguration configuration = new CodeGenConfiguration();
                 configuration.addAxisService(service);
                 WSDLValidatorExtension extension = new WSDLValidatorExtension();
 
diff --git a/modules/codegen/test/org/apache/axis2/wsdl/codegen/jaxws/JAXWSCodeGenerationEngineTest.java b/modules/codegen/test/org/apache/axis2/wsdl/codegen/jaxws/JAXWSCodeGenerationEngineTest.java
index eeaad74..eea78c8 100644
--- a/modules/codegen/test/org/apache/axis2/wsdl/codegen/jaxws/JAXWSCodeGenerationEngineTest.java
+++ b/modules/codegen/test/org/apache/axis2/wsdl/codegen/jaxws/JAXWSCodeGenerationEngineTest.java
@@ -36,6 +36,7 @@
     @Override
     protected void setUp() throws Exception {
         super.setUp();
+        System.setProperty("javax.xml.accessExternalSchema", "all");
         File dir = new File(filePath);
         assertEquals("Generated directory dtill exists ", false, dir.exists());
     }
diff --git a/modules/codegen/test/org/apache/axis2/wsdl/codegen/writer/SchemaWriterTest.java b/modules/codegen/test/org/apache/axis2/wsdl/codegen/writer/SchemaWriterTest.java
index 88e2b03..7dd260b 100644
--- a/modules/codegen/test/org/apache/axis2/wsdl/codegen/writer/SchemaWriterTest.java
+++ b/modules/codegen/test/org/apache/axis2/wsdl/codegen/writer/SchemaWriterTest.java
@@ -23,29 +23,24 @@
 
 import org.apache.axis2.wsdl.codegen.XMLSchemaTest;
 import org.apache.ws.commons.schema.XmlSchema;
+import org.junit.Rule;
 import org.junit.Test;
+import org.junit.rules.TemporaryFolder;
+import org.junit.runner.RunWith;
+import org.junit.runners.JUnit4;
 
+@RunWith(JUnit4.class)
 public class SchemaWriterTest extends XMLSchemaTest{
-    private SchemaWriter writer;
-    
-
-    @Override
-    protected void setUp() throws Exception {
-        writer=new SchemaWriter(new File(customDirectoryLocation));
-        super.setUp();
-    }
-
-    @Override
-    protected void tearDown() throws Exception {
-        writer=null;
-        super.tearDown();
-    }
+    @Rule
+    public final TemporaryFolder tmpFolder = new TemporaryFolder();
 
     @Test
     public void testWriteSchema() throws Exception{
+        File baseFolder = tmpFolder.getRoot();
+        SchemaWriter writer = new SchemaWriter(baseFolder);
         XmlSchema schema=loadSingleSchemaFile(1);
         writer.writeSchema(schema, "generated.xsd");
-        String s1=readXMLfromSchemaFile(customDirectoryLocation+"generated.xsd");
+        String s1=readXMLfromSchemaFile(new File(baseFolder, "generated.xsd").getPath());
         String s2=readXMLfromSchemaFile(customDirectoryLocation+"sampleSchema1.xsd");
         assertSimilarXML(s1, s2);
         
diff --git a/modules/corba/pom.xml b/modules/corba/pom.xml
index e078b37..5a06897 100644
--- a/modules/corba/pom.xml
+++ b/modules/corba/pom.xml
@@ -23,9 +23,9 @@
     <modelVersion>4.0.0</modelVersion>
     <parent>
         <groupId>org.apache.axis2</groupId>
-        <artifactId>axis2-parent</artifactId>
-        <version>1.7.0-SNAPSHOT</version>
-        <relativePath>../parent/pom.xml</relativePath>
+        <artifactId>axis2</artifactId>
+        <version>1.8.0-SNAPSHOT</version>
+        <relativePath>../../pom.xml</relativePath>
     </parent>
     <artifactId>axis2-corba</artifactId>
     <name>Apache Axis2 - CORBA</name>
diff --git a/modules/corba/src/org/apache/axis2/corba/deployer/CorbaDeployer.java b/modules/corba/src/org/apache/axis2/corba/deployer/CorbaDeployer.java
index d4d6cd5..08230cb 100644
--- a/modules/corba/src/org/apache/axis2/corba/deployer/CorbaDeployer.java
+++ b/modules/corba/src/org/apache/axis2/corba/deployer/CorbaDeployer.java
@@ -95,7 +95,7 @@
             AxisServiceGroup serviceGroup = new AxisServiceGroup(axisConfig);

             serviceGroup.setServiceGroupClassLoader(deploymentFileData.getClassLoader());

             ArrayList serviceList = processService(deploymentFileData, serviceGroup, configCtx);

-            DeploymentEngine.addServiceGroup(serviceGroup, serviceList, deploymentFileData.getFile().toURL(), deploymentFileData, axisConfig);

+            DeploymentEngine.addServiceGroup(serviceGroup, serviceList, deploymentFileData.getFile().toURI().toURL(), deploymentFileData, axisConfig);

             name = deploymentFileData.getName();

             super.deploy(deploymentFileData);

             log.info("Deploying " + name);

@@ -155,7 +155,7 @@
             throws DeploymentException {

         try {

             // Processing service level parameters

-            Iterator itr = service_element.getChildrenWithName(new QName(TAG_PARAMETER));

+            Iterator<OMElement> itr = service_element.getChildrenWithName(new QName(TAG_PARAMETER));

             processParameters(itr, service, service.getParent());

 

             // process service description

@@ -242,9 +242,9 @@
             ArrayList excludeops = null;

             if (excludeOperations != null) {

                 excludeops = new ArrayList();

-                Iterator excludeOp_itr = excludeOperations.getChildrenWithName(new QName(TAG_OPERATION));

+                Iterator<OMElement> excludeOp_itr = excludeOperations.getChildrenWithName(new QName(TAG_OPERATION));

                 while (excludeOp_itr.hasNext()) {

-                    OMElement opName = (OMElement) excludeOp_itr.next();

+                    OMElement opName = excludeOp_itr.next();

                     excludeops.add(opName.getText().trim());

                 }

             }

@@ -253,9 +253,9 @@
             }

 

             // processing service-wide modules which required to engage globally

-            Iterator moduleRefs = service_element.getChildrenWithName(new QName(TAG_MODULE));

+            Iterator<OMElement> moduleRefs = service_element.getChildrenWithName(new QName(TAG_MODULE));

             while (moduleRefs.hasNext()) {

-                OMElement moduleref = (OMElement) moduleRefs.next();

+                OMElement moduleref = moduleRefs.next();

                 OMAttribute moduleRefAttribute = moduleref.getAttribute(new QName(TAG_REFERENCE));

                 String refName = moduleRefAttribute.getAttributeValue();

                 axisConfig.addGlobalModuleRef(refName);

@@ -287,10 +287,10 @@
             // processing transports

             OMElement transports = service_element.getFirstChildWithName(new QName(TAG_TRANSPORTS));

             if (transports != null) {

-                Iterator transport_itr = transports.getChildrenWithName(new QName(TAG_TRANSPORT));

+                Iterator<OMElement> transport_itr = transports.getChildrenWithName(new QName(TAG_TRANSPORT));

                 ArrayList trs = new ArrayList();

                 while (transport_itr.hasNext()) {

-                    OMElement trsEle = (OMElement) transport_itr.next();

+                    OMElement trsEle = transport_itr.next();

                     String tarnsportName = trsEle.getText().trim();

                     trs.add(tarnsportName);

                 }

@@ -333,9 +333,9 @@
 

     protected HashMap processMessageReceivers(ClassLoader loader, OMElement element) throws DeploymentException {

         HashMap meps = new HashMap();

-        Iterator iterator = element.getChildrenWithName(new QName(TAG_MESSAGE_RECEIVER));

+        Iterator<OMElement> iterator = element.getChildrenWithName(new QName(TAG_MESSAGE_RECEIVER));

         while (iterator.hasNext()) {

-            OMElement receiverElement = (OMElement) iterator.next();

+            OMElement receiverElement = iterator.next();

             OMAttribute receiverName = receiverElement.getAttribute(new QName(TAG_CLASS_NAME));

             String className = receiverName.getAttributeValue();

             MessageReceiver receiver = loadMessageReceiver(loader, className);

diff --git a/modules/corba/src/org/apache/axis2/corba/deployer/SchemaGenerator.java b/modules/corba/src/org/apache/axis2/corba/deployer/SchemaGenerator.java
index 8518dca..ab65300 100644
--- a/modules/corba/src/org/apache/axis2/corba/deployer/SchemaGenerator.java
+++ b/modules/corba/src/org/apache/axis2/corba/deployer/SchemaGenerator.java
@@ -40,21 +40,7 @@
 import org.apache.axis2.description.java2wsdl.Java2WSDLConstants;

 import org.apache.axis2.description.java2wsdl.NamespaceGenerator;

 import org.apache.axis2.description.java2wsdl.TypeTable;

-import org.apache.ws.commons.schema.XmlSchema;

-import org.apache.ws.commons.schema.XmlSchemaChoice;

-import org.apache.ws.commons.schema.XmlSchemaCollection;

-import org.apache.ws.commons.schema.XmlSchemaComplexType;

-import org.apache.ws.commons.schema.XmlSchemaElement;

-import org.apache.ws.commons.schema.XmlSchemaEnumerationFacet;

-import org.apache.ws.commons.schema.XmlSchemaFacet;

-import org.apache.ws.commons.schema.XmlSchemaForm;

-import org.apache.ws.commons.schema.XmlSchemaFractionDigitsFacet;

-import org.apache.ws.commons.schema.XmlSchemaImport;

-import org.apache.ws.commons.schema.XmlSchemaObject;

-import org.apache.ws.commons.schema.XmlSchemaSequence;

-import org.apache.ws.commons.schema.XmlSchemaSimpleType;

-import org.apache.ws.commons.schema.XmlSchemaSimpleTypeRestriction;

-import org.apache.ws.commons.schema.XmlSchemaTotalDigitsFacet;

+import org.apache.ws.commons.schema.*;

 import org.apache.ws.commons.schema.utils.NamespaceMap;

 

 import javax.xml.namespace.QName;

@@ -355,7 +341,7 @@
             } else if (dataType instanceof UnionType) {

                 XmlSchemaComplexType complexType = new XmlSchemaComplexType(xmlSchema, false);

                 XmlSchemaChoice choice = new XmlSchemaChoice();

-                List<XmlSchemaObject> items = choice.getItems();

+                List<XmlSchemaChoiceMember> items = choice.getItems();

 

                 UnionType unionType = (UnionType) dataType;

                 Member[] members = unionType.getMembers();

diff --git a/modules/distribution/pom.xml b/modules/distribution/pom.xml
index ccab976..34768c6 100755
--- a/modules/distribution/pom.xml
+++ b/modules/distribution/pom.xml
@@ -21,9 +21,9 @@
     <modelVersion>4.0.0</modelVersion>
     <parent>
         <groupId>org.apache.axis2</groupId>
-        <artifactId>axis2-parent</artifactId>
-        <version>1.7.0-SNAPSHOT</version>
-        <relativePath>../parent/pom.xml</relativePath>
+        <artifactId>axis2</artifactId>
+        <version>1.8.0-SNAPSHOT</version>
+        <relativePath>../../pom.xml</relativePath>
     </parent>
 
     <groupId>org.apache.axis2</groupId>
@@ -74,6 +74,11 @@
         </dependency>
         <dependency>
             <groupId>org.apache.axis2</groupId>
+            <artifactId>axis2-jibx-codegen</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.axis2</groupId>
             <artifactId>axis2-json</artifactId>
             <version>${project.version}</version>
         </dependency>
@@ -186,6 +191,12 @@
             <version>${project.version}</version>
             <type>mar</type>
         </dependency>
+        <dependency>
+            <groupId>org.apache.axis2</groupId>
+            <artifactId>axis2-jaxws-mar</artifactId>
+            <version>${project.version}</version>
+            <type>mar</type>
+        </dependency>
         
         <dependency>
             <groupId>org.apache.axis2</groupId>
@@ -245,24 +256,6 @@
             </exclusions>
         </dependency>
         
-        <!-- Axis2 has always been shipped with Sun's implementations of
-             JavaMail and JAF, although Axiom depends on (and has been tested
-             with) Geronimo's implementations. This should probably reevaluated. -->
-        <dependency>
-            <groupId>javax.mail</groupId>
-            <artifactId>mail</artifactId>
-            <version>${javax.mail.version}</version>
-        </dependency>
-        
-        <!-- Jalopy is used by the PrettyPrinter class in the kernel,
-             but it is invoked using reflection (and only if it is
-             found on the classpath). Therefore it is not automatically
-             added as a transitive dependency. -->
-        <dependency>
-            <groupId>jalopy</groupId>
-            <artifactId>jalopy</artifactId>
-        </dependency>
-        
         <!-- None of the Axis2 artifacts should have a dependency on log4j
              because we don't want to impose a particular logging implementation
              on our users. However, for the binary distribution, we need to
@@ -281,7 +274,9 @@
         </dependency>
         
         <!-- These are needed to run JAX-WS tools -->
-        <dependency>
+        <!-- TODO: don't add them unless you also add the corresponding license files
+                   (and check that inclusion of these dependencies conforms to ASF policies) -->
+        <!-- dependency>
             <groupId>com.sun.xml.ws</groupId>
             <artifactId>jaxws-rt</artifactId>
             <exclusions>
@@ -299,12 +294,28 @@
             <groupId>org.jvnet.staxex</groupId>
             <artifactId>stax-ex</artifactId>
             <version>1.4</version>           
+            <exclusions>
+                <exclusion>
+                    <groupId>junit</groupId>
+                    <artifactId>junit</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>javax.activation</groupId>
+                    <artifactId>activation</artifactId>
+                </exclusion>
+            </exclusions>
         </dependency>
         <dependency>
             <groupId>com.sun.xml.stream.buffer</groupId>
             <artifactId>streambuffer</artifactId>
             <version>1.2</version>           
-        </dependency>
+            <exclusions>
+                <exclusion>
+                    <groupId>javax.activation</groupId>
+                    <artifactId>activation</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency -->
     </dependencies>
     <url>http://axis.apache.org/axis2/java/core/</url>
     <scm>
@@ -315,21 +326,79 @@
     <build>
         <plugins>
             <plugin>
-                <groupId>org.codehaus.gmaven</groupId>
-                <artifactId>gmaven-plugin</artifactId>
+                <groupId>com.github.veithen.alta</groupId>
+                <artifactId>alta-maven-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <id>war-location</id>
+                        <goals>
+                            <goal>generate-properties</goal>
+                        </goals>
+                        <configuration>
+                            <name>webapp</name>
+                            <value>%file%</value>
+                            <dependencySet>
+                                <scope>test</scope>
+                                <includes>
+                                    <include>*:axis2-webapp:war:*</include>
+                                </includes>
+                            </dependencySet>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+            <plugin>
+                <groupId>org.codehaus.gmavenplus</groupId>
+                <artifactId>gmavenplus-plugin</artifactId>
                 <executions>
                     <execution>
                         <id>generate-timestamp</id>
-                        <phase>package</phase>
+                        <phase>prepare-package</phase>
                         <goals>
                             <goal>execute</goal>
                         </goals>
                         <configuration>
-                            <source>
-                                import java.util.Date 
-                                import java.text.MessageFormat 
-                                project.properties['buildTimestamp'] = MessageFormat.format("{0,date,dd-MM-yyyy}", new Date())
-                            </source>
+                            <scripts>
+                                <script>
+                                    import java.util.Date 
+                                    import java.text.MessageFormat 
+                                    project.properties['buildTimestamp'] = MessageFormat.format("{0,date,dd-MM-yyyy}", new Date())
+                                    project.properties['release_version'] = project.version.replaceAll("-SNAPSHOT", "")
+                                </script>
+                            </scripts>
+                        </configuration>
+                    </execution>
+                    <execution>
+                        <id>check-webapp-content</id>
+                        <phase>verify</phase>
+                        <goals>
+                            <goal>execute</goal>
+                        </goals>
+                        <configuration>
+                            <scripts>
+                                <script>
+                                    import java.util.jar.*
+                                    
+                                    def jar = new JarInputStream(new FileInputStream(project.properties['webapp']))
+                                    def expected = new HashSet()
+                                    def entry
+                                    while(entry = jar.nextJarEntry) {
+                                        expected.add(entry.name)
+                                    }
+                                    jar.close()
+                                    
+                                    jar = new JarInputStream(new FileInputStream(new File(project.build.directory, "axis2-" + project.version + "/dist/axis2.war")))
+                                    while(entry = jar.nextJarEntry) {
+                                        if (!expected.remove(entry.name)) {
+                                            throw new Error("Unexpected entry in Web app: " + entry.name)
+                                        }
+                                    }
+                                    if (!expected.empty) {
+                                        throw new Error("Missing entries in Web app: " + expected)
+                                    }
+                                    jar.close()
+                                </script>
+                            </scripts>
                         </configuration>
                     </execution>
                 </executions>
@@ -344,6 +413,7 @@
                         </goals>
                         <configuration>
                             <outputDirectory>${project.build.directory}/tmp-repository</outputDirectory>
+                            <stripServiceVersion>false</stripServiceVersion>
                             <generateFileLists>true</generateFileLists>
                         </configuration>
                     </execution>
@@ -371,6 +441,27 @@
                 </executions>
             </plugin>
             
+            <!-- Always remove files from a previous run of the integration tests. -->
+            <plugin>
+                <artifactId>maven-clean-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <id>clean-test-files</id>
+                        <phase>pre-integration-test</phase>
+                        <goals>
+                            <goal>clean</goal>
+                        </goals>
+                        <configuration>
+                            <excludeDefaultDirectories>true</excludeDefaultDirectories>
+                            <filesets>
+                                <fileset>
+                                    <directory>${project.build.directory}/axis2-${project.version}</directory>
+                                </fileset>
+                            </filesets>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
             <!-- Prepare some additional dependencies required by specific samples. We could
                  also do this by invoking the relevant download.jars targets in the provided
                  ant scripts, but this may cause issues with HTTP proxies and has the disadvantage
@@ -393,11 +484,6 @@
                                     <version>1.0.4</version>
                                 </artifactItem>
                                 <artifactItem>
-                                    <groupId>net.java.dev.stax-utils</groupId>
-                                    <artifactId>stax-utils</artifactId>
-                                    <version>20060502</version>
-                                </artifactItem>
-                                <artifactItem>
                                     <groupId>xerces</groupId>
                                     <artifactId>xercesImpl</artifactId>
                                     <version>2.9.1</version>
@@ -423,15 +509,18 @@
                             <tasks>
                                 <unzip src="${project.build.directory}/axis2-${project.version}-bin.zip" dest="${project.build.directory}" />
                                 
+                                <!-- Build the web app -->
+                                <ant dir="${project.build.directory}/axis2-${project.version}/webapp" useNativeBasedir="true" />
+                                
                                 <!-- Test of the databinding sample -->
-                                <ant dir="${project.build.directory}/axis2-${project.version}/samples/databinding"/>
+                                <ant dir="${project.build.directory}/axis2-${project.version}/samples/databinding" />
                                 
                                 <!-- Test of the mtom sample -->
-                                <ant dir="${project.build.directory}/axis2-${project.version}/samples/mtom" target="generate.service"/>
-                                <ant dir="${project.build.directory}/axis2-${project.version}/samples/mtom" target="generate.client"/>
+                                <ant dir="${project.build.directory}/axis2-${project.version}/samples/mtom" target="generate.service" />
+                                <ant dir="${project.build.directory}/axis2-${project.version}/samples/mtom" target="generate.client" />
                                 
                                 <!-- Test of the faulthandling sample -->
-                                <ant dir="${project.build.directory}/axis2-${project.version}/samples/faulthandling" target="generate.service"/>
+                                <ant dir="${project.build.directory}/axis2-${project.version}/samples/faulthandling" target="generate.service" />
                             </tasks>
                         </configuration>
                     </execution>
@@ -439,7 +528,6 @@
             </plugin>
             <plugin>
                 <artifactId>maven-invoker-plugin</artifactId>
-                <version>1.5</version>
                 <executions>
                     <execution>
                         <id>build-maven-samples</id>
@@ -450,7 +538,7 @@
                         <configuration>
                             <projectsDirectory>${project.build.directory}/axis2-${project.version}/samples</projectsDirectory>
                             <pomIncludes>
-                                <pomInclude>*/pom.xml</pomInclude>
+                                <pomInclude>pom.xml</pomInclude>
                             </pomIncludes>
                             <streamLogs>true</streamLogs>
                         </configuration>
@@ -478,10 +566,15 @@
             <build>
                 <plugins>
                     <plugin>
-                        <artifactId>maven-install-plugin</artifactId>
-                        <configuration>
-                            <createChecksum>true</createChecksum>
-                        </configuration>
+                        <groupId>net.nicoulaj.maven.plugins</groupId>
+                        <artifactId>checksum-maven-plugin</artifactId>
+                        <executions>
+                            <execution>
+                                <goals>
+                                    <goal>artifacts</goal>
+                                </goals>
+                            </execution>
+                        </executions>
                     </plugin>
                 </plugins>
             </build>
diff --git a/modules/distribution/src/main/assembly/bin-assembly.xml b/modules/distribution/src/main/assembly/bin-assembly.xml
index dc56462..f88959a 100755
--- a/modules/distribution/src/main/assembly/bin-assembly.xml
+++ b/modules/distribution/src/main/assembly/bin-assembly.xml
@@ -114,7 +114,6 @@
                 <include>LICENSE.txt</include>
                 <include>NOTICE.txt</include>
                 <include>README.txt</include>
-                <include>release-notes.html</include>
             </includes>
             <filtered>true</filtered>
         </fileSet>
@@ -124,6 +123,7 @@
             <directory>../../modules/samples</directory>
             <outputDirectory>samples</outputDirectory>
             <includes>
+                <include>pom.xml</include>
                 <include>databinding/**/*</include>
                 <include>faulthandling/**/*</include>
                 <include>jaxws-calculator/**/*</include>
@@ -145,6 +145,7 @@
                 <include>quickstartxmlbeans/**/*</include>
                 <include>servicelifecycle/**/*</include>
                 <include>soapwithattachments/**/*</include>
+                <include>transport/**/*</include>
                 <include>userguide/**/*</include>
                 <include>version/**/*</include>
                 <include>wsdl/**/*</include>
@@ -158,16 +159,24 @@
         </fileSet>
     </fileSets>
     
+    <files>
+        <file>
+            <source>../../src/site/markdown/release-notes/${release_version}.md</source>
+            <destName>RELEASE-NOTE.txt</destName>
+        </file>
+    </files>
+    
     <dependencySets>
         <dependencySet>
             <useProjectArtifact>false</useProjectArtifact>
             <outputDirectory>lib</outputDirectory>
+            <!-- Use artifact.baseVersion instead of artifact.version to avoid inconsistency with
+                 the Web app built by Maven. This only affects snapshot builds. -->
+            <outputFileNameMapping>${artifact.artifactId}-${artifact.baseVersion}${dashClassifier?}.${artifact.extension}</outputFileNameMapping>
             <includes>
                 <include>*:*:jar</include>
             </includes>
             <excludes>
-                 <exclude>org.apache.geronimo.specs:geronimo-activation_1.1_spec:jar</exclude>
-                 <exclude>org.apache.geronimo.specs:geronimo-javamail_1.4_spec:jar</exclude>
                  <exclude>org.springframework:spring-beans:jar</exclude>
                  <exclude>org.springframework:spring-context:jar</exclude>
                  <exclude>org.springframework:spring-core:jar</exclude>
@@ -207,7 +216,14 @@
             <outputDirectory>webapp</outputDirectory>
             <unpackOptions>
                 <includes>
+                    <include>org/apache/axis2/soapmonitor/applet/**/*</include>
                     <include>WEB-INF/classes/**/*</include>
+                    <include>WEB-INF/include/**/*</include>
+                    <include>WEB-INF/lib/taglibs-standard-impl-*.jar</include>
+                    <include>WEB-INF/lib/taglibs-standard-spec-*.jar</include>
+                    <include>WEB-INF/lib/axis2-soapmonitor-servlet-*.jar</include>
+                    <include>WEB-INF/tags/**/*</include>
+                    <include>WEB-INF/views/**/*</include>
                     <include>WEB-INF/web.xml</include>
                     <include>axis2-web/**/*</include>
                 </includes>
diff --git a/modules/distribution/src/main/assembly/src-assembly.xml b/modules/distribution/src/main/assembly/src-assembly.xml
index a6190ed..2e5ca3c 100755
--- a/modules/distribution/src/main/assembly/src-assembly.xml
+++ b/modules/distribution/src/main/assembly/src-assembly.xml
@@ -34,7 +34,6 @@
                 <include>NOTICE.txt</include>
                 <include>LICENSE.txt</include>
                 <include>README.txt</include>
-                <include>release-notes.html</include>
             </includes>
             <filtered>true</filtered>
         </fileSet>
@@ -42,20 +41,7 @@
             <directory>../..</directory>
             <outputDirectory></outputDirectory>
             <useDefaultExcludes>true</useDefaultExcludes>
-            <includes>
-                <include>pom.xml</include>
-                <include>etc/**</include>
-                <include>modules/**</include>
-                <include>legal/**</include>
-                <include>release-docs/**</include>
-                <include>src/**</include>
-            </includes>
-
             <excludes>
-                <!-- Exclude sources for modules that are not part of the build -->
-                <exclude>modules/all/**</exclude>
-                <exclude>modules/rmi/**</exclude>
-                
                 <!-- For PDE support, we need to generate some files outside of the
                      target directory. They are removed during the clean phase, but
                      we also need to exclude them here. -->
@@ -69,11 +55,6 @@
                 <exclude>modules/tool/axis2-wsdl2code-maven-plugin/src/test/test1/target/**</exclude>
                 <exclude>modules/tool/axis2-java2wsdl-maven-plugin/src/test/test1/target/**</exclude>
                 
-                <!-- TODO: not sure what those are for -->
-                <exclude>../../modules/samples/eventing/**</exclude>
-                <exclude>../../modules/samples/security/**</exclude>
-                <exclude>xdocs/**</exclude>
-                
                 <!-- Exclusions from org.apache.resources:apache-source-release-assembly-descriptor.
                      Note that they assume that all sources are located under an "src" directory. This
                      is not the case for Axis2, which doesn't use the standard Maven 2 conventions.
@@ -113,4 +94,11 @@
             <filtered>true</filtered>
         </fileSet>
     </fileSets>
+    
+    <files>
+        <file>
+            <source>../../src/site/markdown/release-notes/${release_version}.md</source>
+            <destName>RELEASE-NOTE.txt</destName>
+        </file>
+    </files>
 </assembly>
diff --git a/modules/distribution/src/main/assembly/war-assembly.xml b/modules/distribution/src/main/assembly/war-assembly.xml
index 727a81f..f3d759d 100755
--- a/modules/distribution/src/main/assembly/war-assembly.xml
+++ b/modules/distribution/src/main/assembly/war-assembly.xml
@@ -40,9 +40,14 @@
                 <include>LICENSE.txt</include>
                 <include>NOTICE.txt</include>
                 <include>README.txt</include>
-                <include>release-notes.html</include>
             </includes>
             <filtered>true</filtered>
         </fileSet>
     </fileSets>
+    <files>
+        <file>
+            <source>../../src/site/markdown/release-notes/${release_version}.md</source>
+            <destName>RELEASE-NOTE.txt</destName>
+        </file>
+    </files>
 </assembly>
diff --git a/modules/fastinfoset/pom.xml b/modules/fastinfoset/pom.xml
index c6e0ff4..d9c1f28 100644
--- a/modules/fastinfoset/pom.xml
+++ b/modules/fastinfoset/pom.xml
@@ -23,9 +23,9 @@
     <modelVersion>4.0.0</modelVersion>
     <parent>
         <groupId>org.apache.axis2</groupId>
-        <artifactId>axis2-parent</artifactId>
-        <version>1.7.0-SNAPSHOT</version>
-        <relativePath>../parent/pom.xml</relativePath>
+        <artifactId>axis2</artifactId>
+        <version>1.8.0-SNAPSHOT</version>
+        <relativePath>../../pom.xml</relativePath>
     </parent>
     <artifactId>axis2-fastinfoset</artifactId>
     <name>Apache Axis2 - Fast Infoset</name>
@@ -54,10 +54,6 @@
             <artifactId>commons-logging</artifactId>
         </dependency>
         <dependency>
-            <groupId>commons-httpclient</groupId>
-            <artifactId>commons-httpclient</artifactId>
-        </dependency>
-        <dependency>
             <groupId>commons-fileupload</groupId>
             <artifactId>commons-fileupload</artifactId>
         </dependency>
@@ -69,24 +65,13 @@
             <groupId>org.apache.axis2</groupId>
             <artifactId>axis2-java2wsdl</artifactId>
             <version>${project.version}</version>
+            <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>org.apache.axis2</groupId>
             <artifactId>axis2-adb-codegen</artifactId>
             <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.axis2</groupId>
-            <artifactId>axis2-codegen</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.httpcomponents</groupId>
-            <artifactId>httpcore</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>commons-codec</groupId>
-            <artifactId>commons-codec</artifactId>
+            <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>org.apache.neethi</groupId>
@@ -105,8 +90,8 @@
             <scope>test</scope>
         </dependency>
         <dependency>
-            <groupId>xmlunit</groupId>
-            <artifactId>xmlunit</artifactId>
+            <groupId>org.apache.ws.commons.axiom</groupId>
+            <artifactId>axiom-truth</artifactId>
             <scope>test</scope>
         </dependency>
     </dependencies>
@@ -170,14 +155,6 @@
                 </executions>
             </plugin>
             <plugin>
-                <artifactId>maven-compiler-plugin</artifactId>
-                <inherited>true</inherited>
-                <configuration>
-                    <source>1.5</source>
-                    <target>1.5</target>
-                </configuration>
-            </plugin>
-            <plugin>
                 <groupId>org.apache.axis2</groupId>
                 <artifactId>axis2-repo-maven-plugin</artifactId>
                 <executions>
@@ -200,9 +177,6 @@
                         <phase>generate-test-sources</phase>
                         <configuration>
                             <tasks unless="maven.test.skip">
-                                <!-- Set a property that can be picked up from the ant build.xml's -->
-                                <property name="maven.class.path" refid="maven.runtime.classpath" />
-                                <property name="maven.test.path" refid="maven.compile.classpath" />
                                 <mkdir dir="target/test-classes" />
 
                                 <property name="axis2.home" value="${basedir}/target" />
@@ -224,7 +198,7 @@
                                 <echo>Generating the WSDL</echo>
                                 <java classname="org.apache.ws.java2wsdl.Java2WSDL" fork="true">
                                     <classpath>
-                                        <path refid="maven.dependency.classpath" />
+                                        <path refid="maven.test.classpath" />
                                         <pathelement location="target/test-classes" />
                                     </classpath>
                                     <arg line="-o target/test-classes -of SimpleAddService.wsdl -efd unqualified -cn org.apache.axis2.fastinfoset.SimpleAddService" />
@@ -234,7 +208,7 @@
                                 <mkdir dir="${wsdl.output.base.dir}/simpleAddService" />
 
                                 <java classname="org.apache.axis2.wsdl.WSDL2Java" fork="true">
-                                    <classpath refid="maven.runtime.classpath" />
+                                    <classpath refid="maven.test.classpath" />
                                     <classpath location="${compiled.classes.dir}" />
                                     <arg line="-uri target/test-classes/SimpleAddService.wsdl -o target/wsdl/simpleAddService -S . -or" />
                                 </java>
diff --git a/modules/fastinfoset/src/org/apache/axis2/fastinfoset/FastInfosetBuilder.java b/modules/fastinfoset/src/org/apache/axis2/fastinfoset/FastInfosetBuilder.java
index 9c5e7c7..6b712f9 100644
--- a/modules/fastinfoset/src/org/apache/axis2/fastinfoset/FastInfosetBuilder.java
+++ b/modules/fastinfoset/src/org/apache/axis2/fastinfoset/FastInfosetBuilder.java
@@ -21,41 +21,40 @@
 
 import com.sun.xml.fastinfoset.stax.StAXDocumentParser;
 import org.apache.axiom.om.OMElement;
-import org.apache.axiom.om.impl.builder.StAXBuilder;
-import org.apache.axiom.soap.impl.builder.StAXSOAPModelBuilder;
+import org.apache.axiom.om.OMXMLBuilderFactory;
+import org.apache.axiom.soap.SOAPModelBuilder;
 import org.apache.axis2.AxisFault;
+import org.apache.axis2.Constants;
 import org.apache.axis2.builder.Builder;
 import org.apache.axis2.context.MessageContext;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 
-import javax.xml.stream.XMLStreamReader;
 import java.io.InputStream;
 
 public class FastInfosetBuilder implements Builder {
 
-	private static  Log logger = LogFactory.getLog(FastInfosetBuilder.class);
-	
-	/**
-	 * Returns a OMElement handler to the document element of the Fast Infoset message.
-	 * 
-	 * @param inputStream InputStream to the message
-	 * @param contentType Content type of the message
-	 * @param messageContext MessageContext to be used
-	 * 
-	 * @return OMElement handler to the document element
-	 * 
-	 * @see org.apache.axis2.builder.Builder#processDocument(InputStream, String, MessageContext)
-	 */
-	public OMElement processDocument(InputStream inputStream, String contentType, 
-			MessageContext messageContext) throws AxisFault {
-		if (logger.isDebugEnabled()) {
-			logger.debug("Processing a Document with the content type: " + contentType);
-		}
-		//Create a instance of the StAX Parser which can handle the fast infoset stream 
-		XMLStreamReader streamReader = new StAXDocumentParser(inputStream);
-		StAXBuilder builder = new StAXSOAPModelBuilder(streamReader);
-
-		return builder.getDocumentElement();
-	}
+    private static  Log logger = LogFactory.getLog(FastInfosetBuilder.class);
+    
+    /**
+     * Returns a OMElement handler to the document element of the Fast Infoset message.
+     * 
+     * @param inputStream InputStream to the message
+     * @param contentType Content type of the message
+     * @param messageContext MessageContext to be used
+     * 
+     * @return OMElement handler to the document element
+     * 
+     * @see org.apache.axis2.builder.Builder#processDocument(InputStream, String, MessageContext)
+     */
+    public OMElement processDocument(InputStream inputStream, String contentType, 
+            MessageContext messageContext) throws AxisFault {
+        if (logger.isDebugEnabled()) {
+            logger.debug("Processing a Document with the content type: " + contentType);
+        }
+        //Create a instance of the StAX Parser which can handle the fast infoset stream 
+        SOAPModelBuilder builder = OMXMLBuilderFactory.createStAXSOAPModelBuilder(new StAXDocumentParser(inputStream));
+        messageContext.setProperty(Constants.BUILDER, builder);
+        return builder.getDocumentElement();
+    }
 }
diff --git a/modules/fastinfoset/src/org/apache/axis2/fastinfoset/FastInfosetMessageFormatter.java b/modules/fastinfoset/src/org/apache/axis2/fastinfoset/FastInfosetMessageFormatter.java
index a36d096..c9ae7c62 100644
--- a/modules/fastinfoset/src/org/apache/axis2/fastinfoset/FastInfosetMessageFormatter.java
+++ b/modules/fastinfoset/src/org/apache/axis2/fastinfoset/FastInfosetMessageFormatter.java
@@ -39,133 +39,135 @@
 
 public class FastInfosetMessageFormatter implements MessageFormatter {
 
-	private static Log logger = LogFactory.getLog(FastInfosetMessageFormatter.class);
-	
-	/**
-	 * Fast Infoset message formatter doesn't need to handle SOAP. Hence do nothing.
-	 * 
-	 * @see org.apache.axis2.transport.MessageFormatter#formatSOAPAction(org.apache.axis2.context.MessageContext, org.apache.axiom.om.OMOutputFormat, java.lang.String)
-	 */
-	public String formatSOAPAction(MessageContext messageContext,
-			OMOutputFormat format, String soapAction) {
+    private static Log logger = LogFactory.getLog(FastInfosetMessageFormatter.class);
+    
+    /**
+     * Fast Infoset message formatter doesn't need to handle SOAP. Hence do nothing.
+     * 
+     * @see org.apache.axis2.transport.MessageFormatter#formatSOAPAction(org.apache.axis2.context.MessageContext, org.apache.axiom.om.OMOutputFormat, java.lang.String)
+     */
+    public String formatSOAPAction(MessageContext messageContext,
+            OMOutputFormat format, String soapAction) {
 
-		return null;
-	}
+        return null;
+    }
 
-	/**
-	 * Retrieves the raw bytes from the SOAP envelop.
-	 * 
-	 * @see org.apache.axis2.transport.MessageFormatter#getBytes(org.apache.axis2.context.MessageContext, org.apache.axiom.om.OMOutputFormat)
-	 */
-	public byte[] getBytes(MessageContext messageContext, OMOutputFormat format)
-			throws AxisFault {
-		OMElement element = messageContext.getEnvelope();
-		ByteArrayOutputStream outStream = new ByteArrayOutputStream();
-		
-		try {
-			//Creates StAX document serializer which actually implements the XMLStreamWriter
-			XMLStreamWriter streamWriter = new StAXDocumentSerializer(outStream);
-			element.serializeAndConsume(streamWriter);
-			//TODO Looks like the SOAP envelop doesn't have an end document tag. Find out why?
-			streamWriter.writeEndDocument();
-			
-			return outStream.toByteArray();
-			
-		} catch (XMLStreamException xmlse) {
-			logger.error(xmlse.getMessage());
-			throw new AxisFault(xmlse.getMessage(), xmlse);
-		}
-	}
+    /**
+     * Retrieves the raw bytes from the SOAP envelop.
+     * 
+     * @see org.apache.axis2.transport.MessageFormatter#getBytes(org.apache.axis2.context.MessageContext, org.apache.axiom.om.OMOutputFormat)
+     */
+    public byte[] getBytes(MessageContext messageContext, OMOutputFormat format)
+            throws AxisFault {
+        OMElement element = messageContext.getEnvelope();
+        ByteArrayOutputStream outStream = new ByteArrayOutputStream();
+        
+        try {
+            //Creates StAX document serializer which actually implements the XMLStreamWriter
+            XMLStreamWriter streamWriter = new StAXDocumentSerializer(outStream);
+            streamWriter.writeStartDocument();
+            element.serializeAndConsume(streamWriter);
+            //TODO Looks like the SOAP envelop doesn't have an end document tag. Find out why?
+            streamWriter.writeEndDocument();
+            
+            return outStream.toByteArray();
+            
+        } catch (XMLStreamException xmlse) {
+            logger.error(xmlse.getMessage());
+            throw new AxisFault(xmlse.getMessage(), xmlse);
+        }
+    }
 
-	/**
-	 * Returns the content type
-	 * 
-	 * @see org.apache.axis2.transport.MessageFormatter#getContentType(org.apache.axis2.context.MessageContext, org.apache.axiom.om.OMOutputFormat, java.lang.String)
-	 */
-	public String getContentType(MessageContext messageContext,
-			OMOutputFormat format, String soapAction) {
-		String contentType = (String) messageContext.getProperty(Constants.Configuration.CONTENT_TYPE);
-		String encoding = format.getCharSetEncoding();
-		
-		//If the Content Type is not available with the property "Content Type" retrieve it from the property "Message Type"
-		if (contentType == null) {
-			contentType = (String) messageContext.getProperty(Constants.Configuration.MESSAGE_TYPE);
-		}
+    /**
+     * Returns the content type
+     * 
+     * @see org.apache.axis2.transport.MessageFormatter#getContentType(org.apache.axis2.context.MessageContext, org.apache.axiom.om.OMOutputFormat, java.lang.String)
+     */
+    public String getContentType(MessageContext messageContext,
+            OMOutputFormat format, String soapAction) {
+        String contentType = (String) messageContext.getProperty(Constants.Configuration.CONTENT_TYPE);
+        String encoding = format.getCharSetEncoding();
+        
+        //If the Content Type is not available with the property "Content Type" retrieve it from the property "Message Type"
+        if (contentType == null) {
+            contentType = (String) messageContext.getProperty(Constants.Configuration.MESSAGE_TYPE);
+        }
 
-		if (encoding != null) {
-			contentType += "; charset=" + encoding;
-		}
-	        
-		return contentType;
-	}
+        if (encoding != null) {
+            contentType += "; charset=" + encoding;
+        }
+            
+        return contentType;
+    }
 
-	/**
-	 * Returns the target address to send the response
-	 * FIXME This is very HTTP specific. What about other transport?
-	 * 
-	 * @see org.apache.axis2.transport.MessageFormatter#getTargetAddress(org.apache.axis2.context.MessageContext, org.apache.axiom.om.OMOutputFormat, java.net.URL)
-	 */
-	public URL getTargetAddress(MessageContext messageContext,
-			OMOutputFormat format, URL targetURL) throws AxisFault {
+    /**
+     * Returns the target address to send the response
+     * FIXME This is very HTTP specific. What about other transport?
+     * 
+     * @see org.apache.axis2.transport.MessageFormatter#getTargetAddress(org.apache.axis2.context.MessageContext, org.apache.axiom.om.OMOutputFormat, java.net.URL)
+     */
+    public URL getTargetAddress(MessageContext messageContext,
+            OMOutputFormat format, URL targetURL) throws AxisFault {
         String httpMethod =
             (String) messageContext.getProperty(Constants.Configuration.HTTP_METHOD);
 
         URL targetAddress = targetURL; //Let's initialize to this
-	    //if the http method is GET, parameters are attached to the target URL
-	    if ((httpMethod != null)
-	            && Constants.Configuration.HTTP_METHOD_GET.equalsIgnoreCase(httpMethod)) {
-	        String param = getParam(messageContext);
-	
-	        if (param.length() > 0) {
-	            String returnURLFile = targetURL.getFile() + "?" + param;
-	            try {
-	                targetAddress = 
-	                	new URL(targetURL.getProtocol(), targetURL.getHost(), targetURL.getPort(), returnURLFile);
-	            } catch (MalformedURLException murle) {
-	            	logger.error(murle.getMessage());
-	                throw new AxisFault(murle.getMessage(), murle);
-	            }
-	        }
-	    }
-	    
-	    return targetAddress;
-	}
+        //if the http method is GET, parameters are attached to the target URL
+        if ((httpMethod != null)
+                && Constants.Configuration.HTTP_METHOD_GET.equalsIgnoreCase(httpMethod)) {
+            String param = getParam(messageContext);
+    
+            if (param.length() > 0) {
+                String returnURLFile = targetURL.getFile() + "?" + param;
+                try {
+                    targetAddress = 
+                        new URL(targetURL.getProtocol(), targetURL.getHost(), targetURL.getPort(), returnURLFile);
+                } catch (MalformedURLException murle) {
+                    logger.error(murle.getMessage());
+                    throw new AxisFault(murle.getMessage(), murle);
+                }
+            }
+        }
+        
+        return targetAddress;
+    }
 
-	/**
-	 * Write the SOAP envelop to the given OutputStream.
-	 * 
-	 * @see org.apache.axis2.transport.MessageFormatter#writeTo(org.apache.axis2.context.MessageContext, org.apache.axiom.om.OMOutputFormat, java.io.OutputStream, boolean)
-	 */
-	public void writeTo(MessageContext messageContext, OMOutputFormat format,
-			OutputStream outputStream, boolean preserve) throws AxisFault {
+    /**
+     * Write the SOAP envelop to the given OutputStream.
+     * 
+     * @see org.apache.axis2.transport.MessageFormatter#writeTo(org.apache.axis2.context.MessageContext, org.apache.axiom.om.OMOutputFormat, java.io.OutputStream, boolean)
+     */
+    public void writeTo(MessageContext messageContext, OMOutputFormat format,
+            OutputStream outputStream, boolean preserve) throws AxisFault {
         OMElement element = messageContext.getEnvelope();
-		
-		try {
-			//Create the StAX document serializer
-			XMLStreamWriter streamWriter = new StAXDocumentSerializer(outputStream);
-			if (preserve) {
-				element.serialize(streamWriter);
-			} else {
-				element.serializeAndConsume(streamWriter);
-			}
-//			TODO Looks like the SOAP envelop doesn't have a end document tag. Find out why?
-			streamWriter.writeEndDocument();
-		} catch (XMLStreamException xmlse) {
-			logger.error(xmlse.getMessage());
-			throw new AxisFault(xmlse.getMessage(), xmlse);
-		}
-	}
-	
-	/**
-	 * Construct URL parameters like, "param1=value1&param2=value2"
-	 * FIXME This is very HTTP specific. What about other transports
-	 * 
-	 * @param messageContext
-	 * @return Formatted URL parameters
-	 */
+        
+        try {
+            //Create the StAX document serializer
+            XMLStreamWriter streamWriter = new StAXDocumentSerializer(outputStream);
+            streamWriter.writeStartDocument();
+            if (preserve) {
+                element.serialize(streamWriter);
+            } else {
+                element.serializeAndConsume(streamWriter);
+            }
+//            TODO Looks like the SOAP envelop doesn't have a end document tag. Find out why?
+            streamWriter.writeEndDocument();
+        } catch (XMLStreamException xmlse) {
+            logger.error(xmlse.getMessage());
+            throw new AxisFault(xmlse.getMessage(), xmlse);
+        }
+    }
+    
+    /**
+     * Construct URL parameters like, "param1=value1&param2=value2"
+     * FIXME This is very HTTP specific. What about other transports
+     * 
+     * @param messageContext
+     * @return Formatted URL parameters
+     */
     private String getParam(MessageContext messageContext) {
         
-    	OMElement dataOut = messageContext.getEnvelope().getBody().getFirstElement();
+        OMElement dataOut = messageContext.getEnvelope().getBody().getFirstElement();
         Iterator it = dataOut.getChildElements();
         StringBuffer paramBuffer = new StringBuffer();
  
diff --git a/modules/fastinfoset/src/org/apache/axis2/fastinfoset/FastInfosetPOXBuilder.java b/modules/fastinfoset/src/org/apache/axis2/fastinfoset/FastInfosetPOXBuilder.java
index a91a9c4..0ecdafe 100644
--- a/modules/fastinfoset/src/org/apache/axis2/fastinfoset/FastInfosetPOXBuilder.java
+++ b/modules/fastinfoset/src/org/apache/axis2/fastinfoset/FastInfosetPOXBuilder.java
@@ -21,41 +21,40 @@
 
 import com.sun.xml.fastinfoset.stax.StAXDocumentParser;
 import org.apache.axiom.om.OMElement;
-import org.apache.axiom.om.impl.builder.StAXBuilder;
-import org.apache.axiom.om.impl.builder.StAXOMBuilder;
+import org.apache.axiom.om.OMXMLBuilderFactory;
+import org.apache.axiom.om.OMXMLParserWrapper;
 import org.apache.axis2.AxisFault;
+import org.apache.axis2.Constants;
 import org.apache.axis2.builder.Builder;
 import org.apache.axis2.context.MessageContext;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 
-import javax.xml.stream.XMLStreamReader;
 import java.io.InputStream;
 
 public class FastInfosetPOXBuilder implements Builder {
 
-	private static Log logger = LogFactory.getLog(FastInfosetBuilder.class);
-	
-	/**
-	 * Returns a OMElement handler to the document element of the Fast Infoset message.
-	 * 
-	 * @param inputStream InputStream to the message
-	 * @param contentType Content type of the message
-	 * @param messageContext MessageContext to be used
-	 * 
-	 * @return OMElement handler to the document element
-	 * 
-	 * @see org.apache.axis2.builder.Builder#processDocument(InputStream, String, MessageContext)
-	 */
-	public OMElement processDocument(InputStream inputStream, String contentType, 
-			MessageContext messageContext) throws AxisFault {
-		if (logger.isDebugEnabled()) {
-			logger.debug("Processing a Document with the content type: " + contentType);
-		}
-		//Create a instance of the StAX Parser which can handle the fast infoset stream
-		XMLStreamReader streamReader = new StAXDocumentParser(inputStream);
-		StAXBuilder builder = new StAXOMBuilder(streamReader);
-
-		return builder.getDocumentElement();
-	}
+    private static Log logger = LogFactory.getLog(FastInfosetBuilder.class);
+    
+    /**
+     * Returns a OMElement handler to the document element of the Fast Infoset message.
+     * 
+     * @param inputStream InputStream to the message
+     * @param contentType Content type of the message
+     * @param messageContext MessageContext to be used
+     * 
+     * @return OMElement handler to the document element
+     * 
+     * @see org.apache.axis2.builder.Builder#processDocument(InputStream, String, MessageContext)
+     */
+    public OMElement processDocument(InputStream inputStream, String contentType, 
+            MessageContext messageContext) throws AxisFault {
+        if (logger.isDebugEnabled()) {
+            logger.debug("Processing a Document with the content type: " + contentType);
+        }
+        //Create a instance of the StAX Parser which can handle the fast infoset stream
+        OMXMLParserWrapper builder = OMXMLBuilderFactory.createStAXOMBuilder(new StAXDocumentParser(inputStream));
+        messageContext.setProperty(Constants.BUILDER, builder);
+        return builder.getDocumentElement();
+    }
 }
diff --git a/modules/fastinfoset/src/org/apache/axis2/fastinfoset/FastInfosetPOXMessageFormatter.java b/modules/fastinfoset/src/org/apache/axis2/fastinfoset/FastInfosetPOXMessageFormatter.java
index 2a6c8e2..1f2714a 100644
--- a/modules/fastinfoset/src/org/apache/axis2/fastinfoset/FastInfosetPOXMessageFormatter.java
+++ b/modules/fastinfoset/src/org/apache/axis2/fastinfoset/FastInfosetPOXMessageFormatter.java
@@ -39,137 +39,137 @@
 
 public class FastInfosetPOXMessageFormatter implements MessageFormatter {
 
-	private static Log logger = LogFactory.getLog(FastInfosetMessageFormatter.class);
-	
-	/**
-	 * Plain Fast Infoset message formatter doesn't need to handle SOAP. Hence do nothing.
-	 * 
-	 * @see org.apache.axis2.transport.MessageFormatter#formatSOAPAction(org.apache.axis2.context.MessageContext, org.apache.axiom.om.OMOutputFormat, java.lang.String)
-	 */
-	public String formatSOAPAction(MessageContext messageContext,
-			OMOutputFormat format, String soapAction) {
+    private static Log logger = LogFactory.getLog(FastInfosetMessageFormatter.class);
+    
+    /**
+     * Plain Fast Infoset message formatter doesn't need to handle SOAP. Hence do nothing.
+     * 
+     * @see org.apache.axis2.transport.MessageFormatter#formatSOAPAction(org.apache.axis2.context.MessageContext, org.apache.axiom.om.OMOutputFormat, java.lang.String)
+     */
+    public String formatSOAPAction(MessageContext messageContext,
+            OMOutputFormat format, String soapAction) {
 
-		return null;
-	}
+        return null;
+    }
 
-	/**
-	 * Retrieves the raw bytes from the SOAP envelop.
-	 * 
-	 * @see org.apache.axis2.transport.MessageFormatter#getBytes(org.apache.axis2.context.MessageContext, org.apache.axiom.om.OMOutputFormat)
-	 */
-	public byte[] getBytes(MessageContext messageContext, OMOutputFormat format)
-			throws AxisFault {
-		//For POX drop the SOAP envelope and use the message body
-		OMElement element = messageContext.getEnvelope().getBody().getFirstElement();
-		ByteArrayOutputStream outStream = new ByteArrayOutputStream();
-		
-		try {
-			//Creates StAX document serializer which actually implements the XMLStreamWriter
-			XMLStreamWriter streamWriter = new StAXDocumentSerializer(outStream);
-			//Since we drop the SOAP envelop we have to manually write the start document and the end document events
-			streamWriter.writeStartDocument();
-			element.serializeAndConsume(streamWriter);
-			streamWriter.writeEndDocument();
-			
-			return outStream.toByteArray();
-			
-		} catch (XMLStreamException xmlse) {
-			logger.error(xmlse.getMessage());
-			throw new AxisFault(xmlse.getMessage(), xmlse);
-		}
-	}
+    /**
+     * Retrieves the raw bytes from the SOAP envelop.
+     * 
+     * @see org.apache.axis2.transport.MessageFormatter#getBytes(org.apache.axis2.context.MessageContext, org.apache.axiom.om.OMOutputFormat)
+     */
+    public byte[] getBytes(MessageContext messageContext, OMOutputFormat format)
+            throws AxisFault {
+        //For POX drop the SOAP envelope and use the message body
+        OMElement element = messageContext.getEnvelope().getBody().getFirstElement();
+        ByteArrayOutputStream outStream = new ByteArrayOutputStream();
+        
+        try {
+            //Creates StAX document serializer which actually implements the XMLStreamWriter
+            XMLStreamWriter streamWriter = new StAXDocumentSerializer(outStream);
+            //Since we drop the SOAP envelop we have to manually write the start document and the end document events
+            streamWriter.writeStartDocument();
+            element.serializeAndConsume(streamWriter);
+            streamWriter.writeEndDocument();
+            
+            return outStream.toByteArray();
+            
+        } catch (XMLStreamException xmlse) {
+            logger.error(xmlse.getMessage());
+            throw new AxisFault(xmlse.getMessage(), xmlse);
+        }
+    }
 
-	/**
-	 * Returns the content type
-	 * 
-	 * @see org.apache.axis2.transport.MessageFormatter#getContentType(org.apache.axis2.context.MessageContext, org.apache.axiom.om.OMOutputFormat, java.lang.String)
-	 */
-	public String getContentType(MessageContext messageContext,
-			OMOutputFormat format, String soapAction) {
-		String contentType = (String) messageContext.getProperty(Constants.Configuration.CONTENT_TYPE);
-		String encoding = format.getCharSetEncoding();
-		
-		//If the Content Type is not available with the property "Content Type" retrieve it from the property "Message Type"
-		if (contentType == null) {
-			contentType = (String) messageContext.getProperty(Constants.Configuration.MESSAGE_TYPE);
-		}
+    /**
+     * Returns the content type
+     * 
+     * @see org.apache.axis2.transport.MessageFormatter#getContentType(org.apache.axis2.context.MessageContext, org.apache.axiom.om.OMOutputFormat, java.lang.String)
+     */
+    public String getContentType(MessageContext messageContext,
+            OMOutputFormat format, String soapAction) {
+        String contentType = (String) messageContext.getProperty(Constants.Configuration.CONTENT_TYPE);
+        String encoding = format.getCharSetEncoding();
+        
+        //If the Content Type is not available with the property "Content Type" retrieve it from the property "Message Type"
+        if (contentType == null) {
+            contentType = (String) messageContext.getProperty(Constants.Configuration.MESSAGE_TYPE);
+        }
 
-		if (encoding != null) {
-			contentType += "; charset=" + encoding;
-		}
-	        
-		return contentType;
-	}
+        if (encoding != null) {
+            contentType += "; charset=" + encoding;
+        }
+            
+        return contentType;
+    }
 
-	/**
-	 * Returns the target address to send the response
-	 * FIXME This is very HTTP specific. What about other transport?
-	 * 
-	 * @see org.apache.axis2.transport.MessageFormatter#getTargetAddress(org.apache.axis2.context.MessageContext, org.apache.axiom.om.OMOutputFormat, java.net.URL)
-	 */
-	public URL getTargetAddress(MessageContext messageContext,
-			OMOutputFormat format, URL targetURL) throws AxisFault {
+    /**
+     * Returns the target address to send the response
+     * FIXME This is very HTTP specific. What about other transport?
+     * 
+     * @see org.apache.axis2.transport.MessageFormatter#getTargetAddress(org.apache.axis2.context.MessageContext, org.apache.axiom.om.OMOutputFormat, java.net.URL)
+     */
+    public URL getTargetAddress(MessageContext messageContext,
+            OMOutputFormat format, URL targetURL) throws AxisFault {
         String httpMethod =
             (String) messageContext.getProperty(Constants.Configuration.HTTP_METHOD);
 
         URL targetAddress = targetURL; //Let's initialize to this
-	    //if the http method is GET, parameters are attached to the target URL
-	    if ((httpMethod != null)
-	            && Constants.Configuration.HTTP_METHOD_GET.equalsIgnoreCase(httpMethod)) {
-	        String param = getParam(messageContext);
-	
-	        if (param.length() > 0) {
-	            String returnURLFile = targetURL.getFile() + "?" + param;
-	            try {
-	                targetAddress = 
-	                	new URL(targetURL.getProtocol(), targetURL.getHost(), targetURL.getPort(), returnURLFile);
-	            } catch (MalformedURLException murle) {
-	            	logger.error(murle.getMessage());
-	                throw new AxisFault(murle.getMessage(), murle);
-	            }
-	        }
-	    }
-	    
-	    return targetAddress;
-	}
+        //if the http method is GET, parameters are attached to the target URL
+        if ((httpMethod != null)
+                && Constants.Configuration.HTTP_METHOD_GET.equalsIgnoreCase(httpMethod)) {
+            String param = getParam(messageContext);
+    
+            if (param.length() > 0) {
+                String returnURLFile = targetURL.getFile() + "?" + param;
+                try {
+                    targetAddress = 
+                        new URL(targetURL.getProtocol(), targetURL.getHost(), targetURL.getPort(), returnURLFile);
+                } catch (MalformedURLException murle) {
+                    logger.error(murle.getMessage());
+                    throw new AxisFault(murle.getMessage(), murle);
+                }
+            }
+        }
+        
+        return targetAddress;
+    }
 
-	/**
-	 * Write the SOAP envelop to the given OutputStream.
-	 * 
-	 * @see org.apache.axis2.transport.MessageFormatter#writeTo(org.apache.axis2.context.MessageContext, org.apache.axiom.om.OMOutputFormat, java.io.OutputStream, boolean)
-	 */
-	public void writeTo(MessageContext messageContext, OMOutputFormat format,
-			OutputStream outputStream, boolean preserve) throws AxisFault {
-		//For POX drop the SOAP envelope and use the message body
-		OMElement element = messageContext.getEnvelope().getBody().getFirstElement();
-		
-		try {
-			//Create the StAX document serializer
-			XMLStreamWriter streamWriter = new StAXDocumentSerializer(outputStream);
-			//Since we drop the SOAP envelop we have to manually write the start document and the end document events			
-			streamWriter.writeStartDocument();
-			if (preserve) {
-				element.serialize(streamWriter);
-			} else {
-				element.serializeAndConsume(streamWriter);
-			}
-			streamWriter.writeEndDocument();
-		} catch (XMLStreamException xmlse) {
-			logger.error(xmlse.getMessage());
-			throw new AxisFault(xmlse.getMessage(), xmlse);
-		}
-	}
-	
-	/**
-	 * Construct URL parameters like, "param1=value1&param2=value2"
-	 * FIXME This is very HTTP specific. What about other transports
-	 * 
-	 * @param messageContext
-	 * @return Formatted URL parameters
-	 */
+    /**
+     * Write the SOAP envelop to the given OutputStream.
+     * 
+     * @see org.apache.axis2.transport.MessageFormatter#writeTo(org.apache.axis2.context.MessageContext, org.apache.axiom.om.OMOutputFormat, java.io.OutputStream, boolean)
+     */
+    public void writeTo(MessageContext messageContext, OMOutputFormat format,
+            OutputStream outputStream, boolean preserve) throws AxisFault {
+        //For POX drop the SOAP envelope and use the message body
+        OMElement element = messageContext.getEnvelope().getBody().getFirstElement();
+        
+        try {
+            //Create the StAX document serializer
+            XMLStreamWriter streamWriter = new StAXDocumentSerializer(outputStream);
+            //Since we drop the SOAP envelop we have to manually write the start document and the end document events            
+            streamWriter.writeStartDocument();
+            if (preserve) {
+                element.serialize(streamWriter);
+            } else {
+                element.serializeAndConsume(streamWriter);
+            }
+            streamWriter.writeEndDocument();
+        } catch (XMLStreamException xmlse) {
+            logger.error(xmlse.getMessage());
+            throw new AxisFault(xmlse.getMessage(), xmlse);
+        }
+    }
+    
+    /**
+     * Construct URL parameters like, "param1=value1&param2=value2"
+     * FIXME This is very HTTP specific. What about other transports
+     * 
+     * @param messageContext
+     * @return Formatted URL parameters
+     */
     private String getParam(MessageContext messageContext) {
         
-    	OMElement dataOut = messageContext.getEnvelope().getBody().getFirstElement();
+        OMElement dataOut = messageContext.getEnvelope().getBody().getFirstElement();
         Iterator it = dataOut.getChildElements();
         StringBuffer paramBuffer = new StringBuffer();
  
diff --git a/modules/fastinfoset/test-resources/axis2.xml b/modules/fastinfoset/test-resources/axis2.xml
index 40df3f3..21bc381 100644
--- a/modules/fastinfoset/test-resources/axis2.xml
+++ b/modules/fastinfoset/test-resources/axis2.xml
@@ -164,7 +164,7 @@
     <transportSender name="local"
                      class="org.apache.axis2.transport.local.LocalTransportSender"/>
     <transportSender name="http"
-                     class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
+                     class="org.apache.axis2.transport.http.impl.httpclient4.HTTPClient4TransportSender">
         <parameter name="PROTOCOL">HTTP/1.1</parameter>
         <parameter name="Transfer-Encoding">chunked</parameter>
 
@@ -173,7 +173,7 @@
     </transportSender>
 
     <transportSender name="https"
-                     class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
+                     class="org.apache.axis2.transport.http.impl.httpclient4.HTTPClient4TransportSender">
         <parameter name="PROTOCOL">HTTP/1.1</parameter>
         <parameter name="Transfer-Encoding">chunked</parameter>
     </transportSender>
diff --git a/modules/fastinfoset/test/org/apache/axis2/fastinfoset/FastInfosetInputOutputTest.java b/modules/fastinfoset/test/org/apache/axis2/fastinfoset/FastInfosetInputOutputTest.java
index 40228f5..d12c571 100644
--- a/modules/fastinfoset/test/org/apache/axis2/fastinfoset/FastInfosetInputOutputTest.java
+++ b/modules/fastinfoset/test/org/apache/axis2/fastinfoset/FastInfosetInputOutputTest.java
@@ -21,20 +21,24 @@
 
 import com.sun.xml.fastinfoset.stax.StAXDocumentParser;
 import com.sun.xml.fastinfoset.stax.StAXDocumentSerializer;
+
+import org.apache.axiom.blob.Blobs;
+import org.apache.axiom.blob.MemoryBlob;
 import org.apache.axiom.om.OMElement;
-import org.apache.axiom.om.impl.builder.StAXBuilder;
-import org.apache.axiom.om.impl.builder.StAXOMBuilder;
-import org.custommonkey.xmlunit.XMLTestCase;
+import org.apache.axiom.om.OMXMLBuilderFactory;
+import org.apache.axiom.om.OMXMLParserWrapper;
+import org.junit.Test;
 
 import javax.xml.stream.XMLStreamReader;
 import javax.xml.stream.XMLStreamWriter;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.FileReader;
-import java.io.FileWriter;
 
-public class FastInfosetInputOutputTest extends XMLTestCase {
+import static com.google.common.truth.Truth.assertAbout;
+import static org.apache.axiom.truth.xml.XMLTruth.xml;
+
+import java.io.FileInputStream;
+import java.io.OutputStream;
+
+public class FastInfosetInputOutputTest {
 
     /**
      * This is to test how fast infoset interoperate with Axiom.
@@ -46,32 +50,27 @@
      * <p/>
      * Then the initial XML file and the last XML will be compared to see whether they are the same.
      */
+    @Test
     public void testInputOutput() throws Exception {
         String inputFile = "pom.xml";
-        File outputFile = new File("target/output.xml");
-        File tempFile = new File("target/test.bin");
 
-        try {
-            // first let's read the xml document in to Axiom
-            OMElement element = new StAXOMBuilder(inputFile).getDocumentElement();
+        // first let's read the xml document in to Axiom
+        OMElement element = OMXMLBuilderFactory.createOMBuilder(
+                new FileInputStream(inputFile)).getDocumentElement();
 
-            // output it using binary xml outputter
-            XMLStreamWriter streamWriter = new StAXDocumentSerializer(new FileOutputStream(tempFile));
-            streamWriter.writeStartDocument();
-            element.serializeAndConsume(streamWriter);
-            streamWriter.writeEndDocument();
+        // output it using binary xml outputter
+        MemoryBlob blob = Blobs.createMemoryBlob();
+        OutputStream out = blob.getOutputStream();
+        XMLStreamWriter streamWriter = new StAXDocumentSerializer(out);
+        streamWriter.writeStartDocument();
+        element.serialize(streamWriter);
+        streamWriter.writeEndDocument();
+        out.close();
 
-            // now let's read the binary file in to Axiom
-            XMLStreamReader streamReader = new StAXDocumentParser(new FileInputStream(tempFile));
-            StAXBuilder builder = new StAXOMBuilder(streamReader);
-            builder.getDocumentElement().serialize(new FileWriter(outputFile));
+        // now let's read the binary file in to Axiom
+        XMLStreamReader streamReader = new StAXDocumentParser(blob.getInputStream());
+        OMXMLParserWrapper builder = OMXMLBuilderFactory.createStAXOMBuilder(streamReader);
 
-            // let's see this is the same that we fed in to this test initially
-            assertXMLEqual(new FileReader(inputFile), new FileReader(outputFile));
-
-        } finally {
-            if (outputFile.exists()) outputFile.delete();
-            if (tempFile.exists()) tempFile.delete();
-        }
+        assertAbout(xml()).that(builder.getDocumentElement()).hasSameContentAs(element);
     }
 }
diff --git a/modules/integration/conf/axis2.xml b/modules/integration/conf/axis2.xml
index 00a2ec0..b5598dd 100755
--- a/modules/integration/conf/axis2.xml
+++ b/modules/integration/conf/axis2.xml
@@ -144,12 +144,12 @@
     <transportSender name="local"
                      class="org.apache.axis2.transport.local.LocalTransportSender"/>
     <transportSender name="http"
-                     class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
+                     class="org.apache.axis2.transport.http.impl.httpclient4.HTTPClient4TransportSender">
         <parameter name="PROTOCOL">HTTP/1.1</parameter>
         <parameter name="Transfer-Encoding">chunked</parameter>
     </transportSender>
     <transportSender name="https"
-                     class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
+                     class="org.apache.axis2.transport.http.impl.httpclient4.HTTPClient4TransportSender">
         <parameter name="PROTOCOL">HTTP/1.1</parameter>
         <parameter name="Transfer-Encoding">chunked</parameter>
     </transportSender>
diff --git a/modules/integration/itest-build.xml b/modules/integration/itest-build.xml
index 0cb0c76..b7097a6 100644
--- a/modules/integration/itest-build.xml
+++ b/modules/integration/itest-build.xml
@@ -83,11 +83,6 @@
 
 		<ant antfile="itest-build.xml" inheritall="true" inheritrefs="true" dir="." target="rpc-wsdl-codegen" />
 		<ant antfile="itest-build.xml" inheritall="true" inheritrefs="true" dir="." target="wsdl20-codegen" />
-
-		<ant antfile="build.xml" inheritall="true" inheritrefs="true" dir="test-resources/SOAP12Testing/SOAP12TestModuleB" />
-		<ant antfile="build.xml" inheritall="true" inheritrefs="true" dir="test-resources/SOAP12Testing/SOAP12TestModuleC" />
-		<ant antfile="build.xml" inheritall="true" inheritrefs="true" dir="test-resources/SOAP12Testing/SOAP12TestServiceB" />
-		<ant antfile="build.xml" inheritall="true" inheritrefs="true" dir="test-resources/SOAP12Testing/SOAP12TestServiceC" />
 	</target>
 
 	<target name="rpc-wsdl-codegen">
diff --git a/modules/integration/pom.xml b/modules/integration/pom.xml
index e84e47f..952fbc2 100644
--- a/modules/integration/pom.xml
+++ b/modules/integration/pom.xml
@@ -23,9 +23,9 @@
     <modelVersion>4.0.0</modelVersion>
     <parent>
         <groupId>org.apache.axis2</groupId>
-        <artifactId>axis2-parent</artifactId>
-        <version>1.7.0-SNAPSHOT</version>
-        <relativePath>../parent/pom.xml</relativePath>
+        <artifactId>axis2</artifactId>
+        <version>1.8.0-SNAPSHOT</version>
+        <relativePath>../../pom.xml</relativePath>
     </parent>
     <artifactId>axis2-integration</artifactId>
     <name>Apache Axis2 - Integration</name>
@@ -47,10 +47,6 @@
             <version>${project.version}</version>
         </dependency>
         <dependency>
-            <groupId>org.apache.geronimo.specs</groupId>
-            <artifactId>geronimo-activation_1.1_spec</artifactId>
-        </dependency>
-        <dependency>
             <groupId>org.apache.axis2</groupId>
             <artifactId>scripting</artifactId>
             <type>mar</type>
@@ -78,16 +74,6 @@
         </dependency>
         <dependency>
             <groupId>org.apache.axis2</groupId>
-            <version>${project.version}</version>
-            <artifactId>axis2-jaxws</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.axis2</groupId>
-            <version>${project.version}</version>
-            <artifactId>axis2-jaxws-integration</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.axis2</groupId>
             <artifactId>axis2-kernel</artifactId>
             <version>${project.version}</version>
         </dependency>
@@ -129,7 +115,7 @@
         </dependency>
         <dependency>
             <groupId>org.apache.woden</groupId>
-            <artifactId>woden-impl-dom</artifactId>
+            <artifactId>woden-core</artifactId>
             <version>${woden.version}</version>
         </dependency>
         <dependency>
@@ -147,138 +133,40 @@
             <artifactId>log4j</artifactId>
             <scope>test</scope>
         </dependency>
+        <dependency>
+            <groupId>commons-httpclient</groupId>
+            <artifactId>commons-httpclient</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>SOAP12TestModuleB</artifactId>
+            <version>${project.version}</version>
+            <type>mar</type>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>SOAP12TestModuleC</artifactId>
+            <version>${project.version}</version>
+            <type>mar</type>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>SOAP12TestServiceB</artifactId>
+            <version>${project.version}</version>
+            <type>aar</type>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>SOAP12TestServiceC</artifactId>
+            <version>${project.version}</version>
+            <type>aar</type>
+            <scope>test</scope>
+        </dependency>
     </dependencies>
-    <profiles>
-        <profile>
-            <id>java15</id>
-            <activation>
-                <jdk>1.5</jdk>
-            </activation>
-            <build>
-                <plugins>
-                    <plugin>
-                        <artifactId>maven-surefire-plugin</artifactId>
-                        <inherited>true</inherited>
-                        <configuration>
-                            <!-- The pertest forkMode is not ideal but seems to be necessary
-                       because the test server doesn't shut down properly :-(
-                       Should be removed if possible -->
-                            <forkMode>pertest</forkMode>
-                            <argLine>-Xms256m -Xmx512m</argLine>
-                            <!-- Enable the next 2 lines if you want to attach a debugger
-                         <argLine>-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5006</argLine>-->
-                            <includes>
-                                <include>**/*Test.java</include>
-                            </includes>
-                            <excludes>
-                                <exclude>**/*Abstract*.java</exclude>
-                                <exclude>**/*Util*.java</exclude>
-                                <exclude>**/*InteropStubTest.java</exclude>
-                                <exclude>**/*ServiceGroupContextTest.java</exclude>
-                                <exclude>**/*EchoRawSwAFileInputTest.java</exclude>
-                                <exclude>**org/apache/axis2/soap12testing/soap12testsuite/*.java</exclude>
-                                <exclude>**/ScenarioST1Test.java</exclude>
-                                <exclude>**/samples/wsdl/perf2/*.java</exclude>
-                            </excludes>
-                            <systemProperties>
-                                <property>
-                                    <name>build.repository</name>
-                                    <value>./target/test-classes</value>
-                                </property>
-                                <!-- Prevent Mac OS X from showing an icon in the dock during the test run -->
-                                <property>
-                                    <name>java.awt.headless</name>
-                                    <value>true</value>
-                                </property>
-                            </systemProperties>
-                        </configuration>
-                    </plugin>
-                </plugins>
-            </build>
-        </profile>
-        <profile>
-            <id>java16</id>
-            <activation>
-                <jdk>1.6</jdk>
-            </activation>
-            <build>
-                <plugins>
-                    <plugin>
-                        <artifactId>maven-surefire-plugin</artifactId>
-                        <inherited>true</inherited>
-                        <configuration>
-                            <!-- The pertest forkMode is not ideal but seems to be necessary
-                       because the test server doesn't shut down properly :-(
-                       Should be removed if possible -->
-                            <forkMode>pertest</forkMode>
-                            <argLine>-Xms256m -Xmx512m</argLine>
-                            <!-- Enable the next 2 lines if you want to attach a debugger
-                         <argLine>-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5006</argLine>-->
-                            <includes>
-                                <include>**/*Test.java</include>
-                            </includes>
-                            <excludes>
-                                <exclude>**/*Abstract*.java</exclude>
-                                <exclude>**/*Util*.java</exclude>
-                                <exclude>**/*InteropStubTest.java</exclude>
-                                <exclude>**/*ServiceGroupContextTest.java</exclude>
-                                <exclude>**/*EchoRawSwAFileInputTest.java</exclude>
-                                <exclude>**org/apache/axis2/soap12testing/soap12testsuite/*.java</exclude>
-                                <exclude>**/ScenarioST1Test.java</exclude>
-                                <exclude>**/samples/wsdl/perf2/*.java</exclude>
-                                <exclude>**/ComplexDataTypesDocLitBareTest.java</exclude>
-                                <exclude>**/ComplexDataTypesTest.java</exclude>
-                            </excludes>
-                            <systemProperties>
-                                <property>
-                                    <name>build.repository</name>
-                                    <value>./target/test-classes</value>
-                                </property>
-                                <!-- Prevent Mac OS X from showing an icon in the dock during the test run -->
-                                <property>
-                                    <name>java.awt.headless</name>
-                                    <value>true</value>
-                                </property>
-                            </systemProperties>
-                        </configuration>
-                    </plugin>
-                </plugins>
-            </build>
-        </profile>
-        <profile>
-            <id>enterprise</id>
-            <build>
-                <plugins>
-                    <plugin>
-                        <groupId>org.apache.maven.plugins</groupId>
-                        <artifactId>maven-antrun-plugin</artifactId>
-                        <executions>
-                            <execution>
-                                <id>gen-enterprise-ts</id>
-                                <phase>generate-test-sources</phase>
-                                <configuration>
-                                    <tasks unless="maven.test.skip">
-                                        <!-- Set a property that can be picked up from the ant build.xml's -->
-                                        <property name="maven.class.path" refid="maven.runtime.classpath" />
-                                        <echo>Building enterprise WSDLs...</echo>
-                                        <property name="axis2.home" value="${basedir}/target" />
-                                        <property name="maven.junit.jvmargs" value="" />
-                                        <path id="maven.dependency.classpath">
-                                            <path refid="maven.compile.classpath" />
-                                        </path>
-                                        <ant antfile="itest-build.xml" inheritall="true" inheritrefs="true" dir="." target="enterprise-wsdl-codegen" />
-                                    </tasks>
-                                </configuration>
-                                <goals>
-                                    <goal>run</goal>
-                                </goals>
-                            </execution>
-                        </executions>
-                    </plugin>
-                </plugins>
-            </build>
-        </profile>
-    </profiles>
     <url>http://axis.apache.org/axis2/java/core/</url>
     <scm>
         <connection>scm:svn:http://svn.apache.org/repos/asf/axis/axis2/java/core/trunk/modules/integration</connection>
@@ -327,8 +215,6 @@
                 <artifactId>maven-compiler-plugin</artifactId>
                 <inherited>true</inherited>
                 <configuration>
-                    <source>1.5</source>
-                    <target>1.5</target>
                     <!-- There is a lot of generated code to compile; use fork mode
                          to avoid out of memory issues: -->
                     <fork>true</fork>
@@ -501,7 +387,9 @@
                         <configuration>
                             <outputDirectory>target/Repository</outputDirectory>
                             <axis2xml>conf/axis2.xml</axis2xml>
-                            <modules>addressing</modules>
+                            <modules>addressing,SOAP12TestModuleB,SOAP12TestModuleC</modules>
+                            <includeServices>true</includeServices>
+                            <services>SOAP12TestServiceB,SOAP12TestServiceC</services>
                         </configuration>
                     </execution>
                     <execution>
@@ -616,6 +504,55 @@
                     </execution>
                 </executions>
             </plugin>
+            <plugin>
+                <artifactId>maven-surefire-plugin</artifactId>
+                <inherited>true</inherited>
+                <configuration>
+                    <!-- The pertest forkMode is not ideal but seems to be necessary
+                         because the test server doesn't shut down properly :-(
+                         Should be removed if possible -->
+                    <forkMode>pertest</forkMode>
+                    <argLine>-Xms256m -Xmx512m</argLine>
+                    <!-- Enable the next 2 lines if you want to attach a debugger
+                 <argLine>-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5006</argLine>-->
+                    <includes>
+                        <include>**/*Test.java</include>
+                    </includes>
+                    <excludes>
+                        <exclude>**/*Abstract*.java</exclude>
+                        <exclude>**/*Util*.java</exclude>
+                        <exclude>**/*InteropStubTest.java</exclude>
+                        <exclude>**/*ServiceGroupContextTest.java</exclude>
+                        <exclude>**/*EchoRawSwAFileInputTest.java</exclude>
+                        <exclude>**org/apache/axis2/soap12testing/soap12testsuite/*.java</exclude>
+                        <exclude>**/ScenarioST1Test.java</exclude>
+                        <exclude>**/samples/wsdl/perf2/*.java</exclude>
+                        <exclude>**/ComplexDataTypesDocLitBareTest.java</exclude>
+                        <exclude>**/ComplexDataTypesTest.java</exclude>
+                    </excludes>
+                    <systemProperties>
+                        <property>
+                            <name>build.repository</name>
+                            <value>./target/test-classes</value>
+                        </property>
+                        <!-- Prevent Mac OS X from showing an icon in the dock during the test run -->
+                        <property>
+                            <name>java.awt.headless</name>
+                            <value>true</value>
+                        </property>
+                        <property>
+                            <name>org.apache.axis2.transport.http.server.fastShutdown</name>
+                            <value>true</value>
+                        </property>
+                    </systemProperties>
+                </configuration>
+            </plugin>
+            <plugin>
+                <artifactId>maven-deploy-plugin</artifactId>
+                <configuration>
+                    <skip>true</skip>
+                </configuration>
+            </plugin>
         </plugins>
     </build>
 </project>
diff --git a/modules/integration/test-resources/SOAP12Testing/SOAP12TestModuleB/build.xml b/modules/integration/test-resources/SOAP12Testing/SOAP12TestModuleB/build.xml
deleted file mode 100644
index 884bec8..0000000
--- a/modules/integration/test-resources/SOAP12Testing/SOAP12TestModuleB/build.xml
+++ /dev/null
@@ -1,73 +0,0 @@
-<?xml version="1.0"?>
-
-<!--
-  ~ Licensed to the Apache Software Foundation (ASF) under one
-  ~ or more contributor license agreements. See the NOTICE file
-  ~ distributed with this work for additional information
-  ~ regarding copyright ownership. The ASF licenses this file
-  ~ to you under the Apache License, Version 2.0 (the
-  ~ "License"); you may not use this file except in compliance
-  ~ with the License. You may obtain a copy of the License at
-  ~
-  ~ http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing,
-  ~ software distributed under the License is distributed on an
-  ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  ~ KIND, either express or implied. See the License for the
-  ~ specific language governing permissions and limitations
-  ~ under the License.
-  -->
-
-<project basedir="." default="jar">
-    <property name="src" location="."/>
-    <property name="build" location="build"/>
-    <property name="build.classes" location="${build}/classes"/>
-    <property name="build.lib" location="${build}/lib"/>
-    <property name="lib" location="lib"/>
-    <property name="root" location="../../../"/>
-    <property name="jar.dir" location="${root}/target/Repository/modules/"/>
-
-    <path id="axis.test.classpath">
-        <pathelement path="${java.class.path}"/>
-        <pathelement path="${maven.class.path}"/>
-        <pathelement location="../../../target/classes"/>
-    </path>
-
-    <target name="compile" depends="init" unless="jars.uptodate">
-        <mkdir dir="${build.classes}"/>
-        <mkdir dir="${build.lib}"/>
-        <javac fork="true" destdir="${build.classes}" debug="on">
-            <classpath refid="axis.test.classpath"/>
-            <src path="${src}"/>
-        </javac>
-    </target>
-
-    <target name="jar" depends="compile" unless="jars.uptodate">
-        <copy todir="${build.classes}/META-INF">
-            <fileset dir="${basedir}/META-INF/">
-                <include name="**/*.xml"/>
-                <exclude name="build.xml"/>
-            </fileset>
-        </copy>
-
-        <mkdir dir="${jar.dir}"/>
-        <jar jarfile="${jar.dir}/SOAP12TestModuleB.jar" basedir="${build.classes}">
-            <include name="**"/>
-        </jar>
-        <delete dir="${build}"/>
-    </target>
-
-    <target name="init">
-        <uptodate property="jars.uptodate" targetfile="${jar.dir}/SOAP12TestModuleB.jar">
-            <srcfiles dir="${src}">
-                <include name="**/*.java"/>
-                <include name="**/*.xml"/>
-                <include name="**/*.wsdl"/>
-                <exclude name="${build}/**"/>
-            </srcfiles>
-        </uptodate>
-        <echo message="the files are up to date = ${jars.uptodate}"></echo>
-    </target>
-
-</project>
diff --git a/modules/integration/test-resources/SOAP12Testing/SOAP12TestModuleC/build.xml b/modules/integration/test-resources/SOAP12Testing/SOAP12TestModuleC/build.xml
deleted file mode 100644
index 9c5ae28..0000000
--- a/modules/integration/test-resources/SOAP12Testing/SOAP12TestModuleC/build.xml
+++ /dev/null
@@ -1,73 +0,0 @@
-<?xml version="1.0"?>
-
-<!--
-  ~ Licensed to the Apache Software Foundation (ASF) under one
-  ~ or more contributor license agreements. See the NOTICE file
-  ~ distributed with this work for additional information
-  ~ regarding copyright ownership. The ASF licenses this file
-  ~ to you under the Apache License, Version 2.0 (the
-  ~ "License"); you may not use this file except in compliance
-  ~ with the License. You may obtain a copy of the License at
-  ~
-  ~ http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing,
-  ~ software distributed under the License is distributed on an
-  ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  ~ KIND, either express or implied. See the License for the
-  ~ specific language governing permissions and limitations
-  ~ under the License.
-  -->
-
-<project basedir="." default="jar">
-    <property name="src" location="."/>
-    <property name="build" location="build"/>
-    <property name="build.classes" location="${build}/classes"/>
-    <property name="build.lib" location="${build}/lib"/>
-    <property name="lib" location="lib"/>
-    <property name="root" location="../../../"/>
-    <property name="jar.dir" location="${root}/target/Repository/modules/"/>
-
-    <path id="axis.test.classpath">
-        <pathelement path="${java.class.path}"/>
-        <pathelement path="${maven.class.path}"/>
-        <pathelement location="../../../target/classes"/>
-    </path>
-
-    <target name="compile" depends="init" unless="jars.uptodate">
-        <mkdir dir="${build.classes}"/>
-        <mkdir dir="${build.lib}"/>
-        <javac fork="true" destdir="${build.classes}" debug="on">
-            <classpath refid="axis.test.classpath"/>
-            <src path="${src}"/>
-        </javac>
-    </target>
-
-    <target name="jar" depends="compile" unless="jars.uptodate">
-        <copy todir="${build.classes}/META-INF">
-            <fileset dir="${basedir}/META-INF/">
-                <include name="**/*.xml"/>
-                <exclude name="build.xml"/>
-            </fileset>
-        </copy>
-
-        <mkdir dir="${jar.dir}"/>
-        <jar jarfile="${jar.dir}/SOAP12TestModuleC.jar" basedir="${build.classes}">
-            <include name="**"/>
-        </jar>
-        <delete dir="${build}"/>
-    </target>
-
-    <target name="init">
-        <uptodate property="jars.uptodate" targetfile="${jar.dir}/SOAP12TestModuleC.jar">
-            <srcfiles dir="${src}">
-                <include name="**/*.java"/>
-                <include name="**/*.xml"/>
-                <include name="**/*.wsdl"/>
-                <exclude name="${build}/**"/>
-            </srcfiles>
-        </uptodate>
-        <echo message="the files are up to date = ${jars.uptodate}"></echo>
-    </target>
-
-</project>
diff --git a/modules/integration/test-resources/SOAP12Testing/SOAP12TestModuleC/org/apache/axis2/soap12testing/handlers/HeaderConstants.java b/modules/integration/test-resources/SOAP12Testing/SOAP12TestModuleC/org/apache/axis2/soap12testing/handlers/HeaderConstants.java
deleted file mode 100644
index 583db05..0000000
--- a/modules/integration/test-resources/SOAP12Testing/SOAP12TestModuleC/org/apache/axis2/soap12testing/handlers/HeaderConstants.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.axis2.soap12testing.handlers;
-
-public interface HeaderConstants {
-
-    String REQUEST_HEADERBLOCK_NAME = "echoOk";
-    String RESPONSE_HEADERBLOCK_NAME = "responseOk";
-    String SAMPLE_ROLE = "http://example.org/ts-tests";
-    String SOAP12_ROLE = "http://www.w3.org/2003/05/soap-envelope/role";
-    String ULTIMATERECEIVER_ROLE = "ultimateReceiver";
-    String NEXT_ROLE = "next";
-    String NONE_ROLE = "none";
-    String ROLE_BY_B = "B";
-    String ROLE_BY_C = "C";
-}
diff --git a/modules/integration/test-resources/SOAP12Testing/SOAP12TestModuleC/org/apache/axis2/soap12testing/handlers/SOAP12OutFlowHandlerDefault.java b/modules/integration/test-resources/SOAP12Testing/SOAP12TestModuleC/org/apache/axis2/soap12testing/handlers/SOAP12OutFlowHandlerDefault.java
deleted file mode 100644
index 895e7a2..0000000
--- a/modules/integration/test-resources/SOAP12Testing/SOAP12TestModuleC/org/apache/axis2/soap12testing/handlers/SOAP12OutFlowHandlerDefault.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.axis2.soap12testing.handlers;
-
-import org.apache.axis2.context.MessageContext;
-import org.apache.axis2.handlers.AbstractHandler;
-import org.apache.axiom.soap.SOAPHeader;
-import org.apache.axiom.soap.SOAPHeaderBlock;
-
-import java.util.Iterator;
-
-public class SOAP12OutFlowHandlerDefault extends AbstractHandler {
-
-
-    public void revoke(MessageContext msgContext) {
-
-    }
-
-    public InvocationResponse invoke(MessageContext msgContext) {
-        Integer headerBlockPresent = (Integer) msgContext.getOperationContext().getProperty("HEADER_BLOCK_PRESENT");
-        if (headerBlockPresent.equals(new Integer(1))) {
-            SOAPHeader headerAdd = (SOAPHeader) msgContext.getOperationContext().getProperty("HEADER_BLOCK");
-           Iterator headerBlocks = headerAdd.examineAllHeaderBlocks();
-            while(headerBlocks.hasNext()){
-                SOAPHeaderBlock headerBlock=(SOAPHeaderBlock) headerBlocks.next();
-                msgContext.getEnvelope().getHeader().addChild(headerBlock);
-            }
-        } else {
-            msgContext.getEnvelope().getHeader().discard();
-        }
-        return InvocationResponse.CONTINUE;
-    }
-}
diff --git a/modules/integration/test-resources/SOAP12Testing/SOAP12TestServiceB/build.xml b/modules/integration/test-resources/SOAP12Testing/SOAP12TestServiceB/build.xml
deleted file mode 100644
index 974b130..0000000
--- a/modules/integration/test-resources/SOAP12Testing/SOAP12TestServiceB/build.xml
+++ /dev/null
@@ -1,74 +0,0 @@
-<?xml version="1.0"?>
-
-<!--
-  ~ Licensed to the Apache Software Foundation (ASF) under one
-  ~ or more contributor license agreements. See the NOTICE file
-  ~ distributed with this work for additional information
-  ~ regarding copyright ownership. The ASF licenses this file
-  ~ to you under the Apache License, Version 2.0 (the
-  ~ "License"); you may not use this file except in compliance
-  ~ with the License. You may obtain a copy of the License at
-  ~
-  ~ http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing,
-  ~ software distributed under the License is distributed on an
-  ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  ~ KIND, either express or implied. See the License for the
-  ~ specific language governing permissions and limitations
-  ~ under the License.
-  -->
-
-<project basedir="." default="jar">
-    <property name="src" location="."/>
-    <property name="build" location="build"/>
-    <property name="build.classes" location="${build}/classes"/>
-    <property name="build.lib" location="${build}/lib"/>
-    <property name="lib" location="lib"/>
-    <property name="root" location="../../../"/>
-    <property name="jar.dir" location="${root}/target/Repository/services/"/>
-
-    <path id="axis.test.classpath">
-        <pathelement path="${java.class.path}"/>
-        <pathelement path="${maven.class.path}"/>
-        <pathelement location="../../../target/classes"/>
-        <pathelement location="../../../target/test-classes"/>
-    </path>
-
-    <target name="compile" depends="init" unless="jars.uptodate">
-        <mkdir dir="${build.classes}"/>
-        <mkdir dir="${build.lib}"/>
-        <javac fork="true" destdir="${build.classes}" debug="on">
-            <classpath refid="axis.test.classpath"/>
-            <src path="${src}"/>
-        </javac>
-    </target>
-
-    <target name="jar" depends="compile" unless="jars.uptodate">
-        <copy todir="${build.classes}/META-INF">
-            <fileset dir="${basedir}/META-INF/">
-                <include name="**/*.xml"/>
-                <exclude name="build.xml"/>
-            </fileset>
-        </copy>
-
-        <mkdir dir="${jar.dir}"/>
-        <jar jarfile="${jar.dir}/SOAP12TestServiceB.jar" basedir="${build.classes}">
-            <include name="**"/>
-        </jar>
-        <delete dir="${build}"/>
-    </target>
-
-    <target name="init">
-        <uptodate property="jars.uptodate" targetfile="${jar.dir}/SOAP12TestServiceB.jar">
-            <srcfiles dir="${src}">
-                <include name="**/*.java"/>
-                <include name="**/*.xml"/>
-                <include name="**/*.wsdl"/>
-                <exclude name="${build}/**"/>
-            </srcfiles>
-        </uptodate>
-        <echo message="the files are up to date = ${jars.uptodate}"></echo>
-    </target>
-
-</project>
diff --git a/modules/integration/test-resources/SOAP12Testing/SOAP12TestServiceC/build.xml b/modules/integration/test-resources/SOAP12Testing/SOAP12TestServiceC/build.xml
deleted file mode 100644
index 92011fc..0000000
--- a/modules/integration/test-resources/SOAP12Testing/SOAP12TestServiceC/build.xml
+++ /dev/null
@@ -1,74 +0,0 @@
-<?xml version="1.0"?>
-
-<!--
-  ~ Licensed to the Apache Software Foundation (ASF) under one
-  ~ or more contributor license agreements. See the NOTICE file
-  ~ distributed with this work for additional information
-  ~ regarding copyright ownership. The ASF licenses this file
-  ~ to you under the Apache License, Version 2.0 (the
-  ~ "License"); you may not use this file except in compliance
-  ~ with the License. You may obtain a copy of the License at
-  ~
-  ~ http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing,
-  ~ software distributed under the License is distributed on an
-  ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  ~ KIND, either express or implied. See the License for the
-  ~ specific language governing permissions and limitations
-  ~ under the License.
-  -->
-
-<project basedir="." default="jar">
-    <property name="src" location="."/>
-    <property name="build" location="build"/>
-    <property name="build.classes" location="${build}/classes"/>
-    <property name="build.lib" location="${build}/lib"/>
-    <property name="lib" location="lib"/>
-    <property name="root" location="../../../"/>
-    <property name="jar.dir" location="${root}/target/Repository/services/"/>
-
-    <path id="axis.test.classpath">
-        <pathelement path="${java.class.path}"/>
-        <pathelement path="${maven.class.path}"/>
-        <pathelement location="../../../target/classes"/>
-        <pathelement location="../../../target/test-classes"/>
-    </path>
-
-    <target name="compile" depends="init" unless="jars.uptodate">
-        <mkdir dir="${build.classes}"/>
-        <mkdir dir="${build.lib}"/>
-        <javac fork="true" destdir="${build.classes}" debug="on">
-            <classpath refid="axis.test.classpath"/>
-            <src path="${src}"/>
-        </javac>
-    </target>
-
-    <target name="jar" depends="compile" unless="jars.uptodate">
-        <copy todir="${build.classes}/META-INF">
-            <fileset dir="${basedir}/META-INF/">
-                <include name="**/*.xml"/>
-                <exclude name="build.xml"/>
-            </fileset>
-        </copy>
-
-        <mkdir dir="${jar.dir}"/>
-        <jar jarfile="${jar.dir}/SOAP12TestServiceC.jar" basedir="${build.classes}">
-            <include name="**"/>
-        </jar>
-        <delete dir="${build}"/>
-    </target>
-
-    <target name="init">
-        <uptodate property="jars.uptodate" targetfile="${jar.dir}/SOAP12TestServiceC.jar">
-            <srcfiles dir="${src}">
-                <include name="**/*.java"/>
-                <include name="**/*.xml"/>
-                <include name="**/*.wsdl"/>
-                <exclude name="${build}/**"/>
-            </srcfiles>
-        </uptodate>
-        <echo message="the files are up to date = ${jars.uptodate}"></echo>
-    </target>
-
-</project>
diff --git a/modules/integration/test-resources/SOAP12Testing/SOAP12TestServiceC/org/apache/axis2/soap12testing/webservices/SOAP12TestWebServiceDefault.java b/modules/integration/test-resources/SOAP12Testing/SOAP12TestServiceC/org/apache/axis2/soap12testing/webservices/SOAP12TestWebServiceDefault.java
deleted file mode 100644
index 48ab5df..0000000
--- a/modules/integration/test-resources/SOAP12Testing/SOAP12TestServiceC/org/apache/axis2/soap12testing/webservices/SOAP12TestWebServiceDefault.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.axis2.soap12testing.webservices;
-
-import org.apache.axiom.om.OMElement;
-
-public class SOAP12TestWebServiceDefault {
-    public OMElement echo(OMElement element) {
-        if (element != null) {
-            if (element.getLocalName().equals("echoOk")) {
-                element.setLocalName("responseOk");
-
-            } else if (element.getLocalName().equals("returnVoid")) {
-                element.setLocalName("returnVoidResponse");
-            }
-        }
-        return element;
-    }
-}
diff --git a/modules/integration/test-resources/SwA-enabled-axis2.xml b/modules/integration/test-resources/SwA-enabled-axis2.xml
index 3db3e52..e755b0b 100755
--- a/modules/integration/test-resources/SwA-enabled-axis2.xml
+++ b/modules/integration/test-resources/SwA-enabled-axis2.xml
@@ -63,7 +63,7 @@
     <!-- Transport Outs -->
     <!-- ================================================= -->
 
-  <transportSender name="http" class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
+  <transportSender name="http" class="org.apache.axis2.transport.http.impl.httpclient4.HTTPClient4TransportSender">
             <parameter name="PROTOCOL">HTTP/1.1</parameter>
     </transportSender>
     <transportSender name="local" class="org.apache.axis2.transport.local.LocalTransportSender"/>
diff --git a/modules/integration/test-resources/SwA-fileCache-enabled-axis2.xml b/modules/integration/test-resources/SwA-fileCache-enabled-axis2.xml
index 6a26605..cdab155 100755
--- a/modules/integration/test-resources/SwA-fileCache-enabled-axis2.xml
+++ b/modules/integration/test-resources/SwA-fileCache-enabled-axis2.xml
@@ -65,7 +65,7 @@
     <!-- Transport Outs -->
     <!-- ================================================= -->
 
-  <transportSender name="http" class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
+  <transportSender name="http" class="org.apache.axis2.transport.http.impl.httpclient4.HTTPClient4TransportSender">
             <parameter name="PROTOCOL">HTTP/1.1</parameter>
     </transportSender>
     <transportSender name="local" class="org.apache.axis2.transport.local.LocalTransportSender"/>
diff --git a/modules/integration/test-resources/deployment/deployment.both.axis2.xml b/modules/integration/test-resources/deployment/deployment.both.axis2.xml
index a8838eb..43ec3af 100644
--- a/modules/integration/test-resources/deployment/deployment.both.axis2.xml
+++ b/modules/integration/test-resources/deployment/deployment.both.axis2.xml
@@ -54,10 +54,10 @@
     <!-- ================================================= -->
 
     <transportSender name="local" class="org.apache.axis2.transport.local.LocalTransportSender"/>
-    <transportSender name="http" class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
+    <transportSender name="http" class="org.apache.axis2.transport.http.impl.httpclient4.HTTPClient4TransportSender">
         <parameter name="PROTOCOL">HTTP/1.0</parameter>
     </transportSender>
-    <transportSender name="https" class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
+    <transportSender name="https" class="org.apache.axis2.transport.http.impl.httpclient4.HTTPClient4TransportSender">
         <parameter name="PROTOCOL">HTTP/1.1</parameter>
     </transportSender>
 
diff --git a/modules/integration/test-resources/deployment/server-transport.xml b/modules/integration/test-resources/deployment/server-transport.xml
index 2165553..8cf09bd 100644
--- a/modules/integration/test-resources/deployment/server-transport.xml
+++ b/modules/integration/test-resources/deployment/server-transport.xml
@@ -19,7 +19,7 @@
 
 <axisconfig name="AxisJava2.0">
     <messageReceiver mep="INOUT" class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/>
-    <transportSender name="custom" class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
+    <transportSender name="custom" class="org.apache.axis2.transport.http.impl.httpclient4.HTTPClient4TransportSender">
         <parameter name="PROTOCOL">HTTP/1.0</parameter>
     </transportSender>
  
diff --git a/modules/integration/test-resources/generics/generics.wsdl b/modules/integration/test-resources/generics/generics.wsdl
index 77231d0..2bac286 100644
--- a/modules/integration/test-resources/generics/generics.wsdl
+++ b/modules/integration/test-resources/generics/generics.wsdl
@@ -17,11 +17,12 @@
                     </xs:sequence>

                 </xs:complexType>

             </xs:element>

-            <xs:element name="processStringArray">

+            <!-- TODO: This isn't correct; the processStringArray method has an argument -->

+            <!-- xs:element name="processStringArray">

                  <xs:complexType>

                     <xs:sequence/>

                 </xs:complexType>

-            </xs:element>           

+            </xs:element -->           

             <xs:element name="processPersonList">

                 <xs:complexType>

                     <xs:sequence>

@@ -58,9 +59,9 @@
             </xs:complexType>

         </xs:schema>

     </wsdl:types>

-    <wsdl:message name="processStringArrayRequest">

+    <!-- wsdl:message name="processStringArrayRequest">

         <wsdl:part name="parameters" element="ns:processStringArray"/>

-    </wsdl:message>

+    </wsdl:message -->

     <wsdl:message name="processStringListRequest">

         <wsdl:part name="parameters" element="ns:processStringList"/>

     </wsdl:message>

@@ -80,9 +81,9 @@
         <wsdl:part name="parameters" element="ns:getStringListResponse"/>

     </wsdl:message>

     <wsdl:portType name="GenericServicePortType">

-        <wsdl:operation name="processStringArray">

+        <!-- wsdl:operation name="processStringArray">

             <wsdl:input message="ns:processStringArrayRequest" wsaw:Action="urn:processStringArray"/>

-        </wsdl:operation>

+        </wsdl:operation -->

         <wsdl:operation name="processStringList">

             <wsdl:input message="ns:processStringListRequest" wsaw:Action="urn:processStringList"/>

             <wsdl:output message="ns:processStringListResponse" wsaw:Action="urn:processStringListResponse"/>

@@ -98,12 +99,12 @@
     </wsdl:portType>

     <wsdl:binding name="GenericServiceSoap11Binding" type="ns:GenericServicePortType">

         <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/>

-        <wsdl:operation name="processStringArray">

+        <!-- wsdl:operation name="processStringArray">

             <soap:operation soapAction="urn:processStringArray" style="document"/>

             <wsdl:input>

                 <soap:body use="literal"/>

             </wsdl:input>

-        </wsdl:operation>

+        </wsdl:operation -->

         <wsdl:operation name="processStringList">

             <soap:operation soapAction="urn:processStringList" style="document"/>

             <wsdl:input>

@@ -134,12 +135,12 @@
     </wsdl:binding>

     <wsdl:binding name="GenericServiceSoap12Binding" type="ns:GenericServicePortType">

         <soap12:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/>

-        <wsdl:operation name="processStringArray">

+        <!-- wsdl:operation name="processStringArray">

             <soap12:operation soapAction="urn:processStringArray" style="document"/>

             <wsdl:input>

                 <soap12:body use="literal"/>

             </wsdl:input>

-        </wsdl:operation>

+        </wsdl:operation -->

         <wsdl:operation name="processStringList">

             <soap12:operation soapAction="urn:processStringList" style="document"/>

             <wsdl:input>

@@ -170,12 +171,12 @@
     </wsdl:binding>

     <wsdl:binding name="GenericServiceHttpBinding" type="ns:GenericServicePortType">

         <http:binding verb="POST"/>

-        <wsdl:operation name="processStringArray">

+        <!-- wsdl:operation name="processStringArray">

             <http:operation location="processStringArray"/>

             <wsdl:input>

                 <mime:content type="application/xml" part="parameters"/>

             </wsdl:input>

-        </wsdl:operation>

+        </wsdl:operation -->

         <wsdl:operation name="processStringList">

             <http:operation location="processStringList"/>

             <wsdl:input>

diff --git a/modules/integration/test-resources/jaxrs/pojo-enabled-axis2.xml b/modules/integration/test-resources/jaxrs/pojo-enabled-axis2.xml
index 1b0bf3a..41f7733 100644
--- a/modules/integration/test-resources/jaxrs/pojo-enabled-axis2.xml
+++ b/modules/integration/test-resources/jaxrs/pojo-enabled-axis2.xml
@@ -277,7 +277,7 @@
     <transportSender name="local"
                      class="org.apache.axis2.transport.local.LocalTransportSender"/>
     <transportSender name="http"
-                     class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
+                     class="org.apache.axis2.transport.http.impl.httpclient4.HTTPClient4TransportSender">
         <parameter name="PROTOCOL">HTTP/1.1</parameter>
         <parameter name="Transfer-Encoding">chunked</parameter>
 
@@ -286,7 +286,7 @@
     </transportSender>
 
     <transportSender name="https"
-                     class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
+                     class="org.apache.axis2.transport.http.impl.httpclient4.HTTPClient4TransportSender">
         <parameter name="PROTOCOL">HTTP/1.1</parameter>
         <parameter name="Transfer-Encoding">chunked</parameter>
     </transportSender>
diff --git a/modules/integration/test-resources/mtom/MTOM-enabled-axis2.xml b/modules/integration/test-resources/mtom/MTOM-enabled-axis2.xml
index 1652838..0ad78c3 100644
--- a/modules/integration/test-resources/mtom/MTOM-enabled-axis2.xml
+++ b/modules/integration/test-resources/mtom/MTOM-enabled-axis2.xml
@@ -59,7 +59,7 @@
     <!-- Transport Outs -->
     <!-- ================================================= -->
 
-  <transportSender name="http" class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
+  <transportSender name="http" class="org.apache.axis2.transport.http.impl.httpclient4.HTTPClient4TransportSender">
             <parameter name="PROTOCOL">HTTP/1.1</parameter>
     </transportSender>
     <transportSender name="local" class="org.apache.axis2.transport.local.LocalTransportSender"/>
diff --git a/modules/integration/test-resources/mtom/MTOM-fileCache-enabled-axis2.xml b/modules/integration/test-resources/mtom/MTOM-fileCache-enabled-axis2.xml
index f665f77..d379b2b 100644
--- a/modules/integration/test-resources/mtom/MTOM-fileCache-enabled-axis2.xml
+++ b/modules/integration/test-resources/mtom/MTOM-fileCache-enabled-axis2.xml
@@ -61,7 +61,7 @@
     <!-- Transport Outs -->
     <!-- ================================================= -->
 
-  <transportSender name="http" class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
+  <transportSender name="http" class="org.apache.axis2.transport.http.impl.httpclient4.HTTPClient4TransportSender">
             <parameter name="PROTOCOL">HTTP/1.1</parameter>
     </transportSender>
     <transportSender name="local" class="org.apache.axis2.transport.local.LocalTransportSender"/>
diff --git a/modules/integration/test-resources/swa/SwA-enabled-axis2.xml b/modules/integration/test-resources/swa/SwA-enabled-axis2.xml
index e78b52c..99aae16 100755
--- a/modules/integration/test-resources/swa/SwA-enabled-axis2.xml
+++ b/modules/integration/test-resources/swa/SwA-enabled-axis2.xml
@@ -63,7 +63,7 @@
     <!-- Transport Outs -->
     <!-- ================================================= -->
 
-  <transportSender name="http" class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
+  <transportSender name="http" class="org.apache.axis2.transport.http.impl.httpclient4.HTTPClient4TransportSender">
             <parameter name="PROTOCOL">HTTP/1.1</parameter>
     </transportSender>
     <transportSender name="local" class="org.apache.axis2.transport.local.LocalTransportSender"/>
diff --git a/modules/integration/test-resources/swa/SwA-fileCache-enabled-axis2.xml b/modules/integration/test-resources/swa/SwA-fileCache-enabled-axis2.xml
index 9923ee5..31a6795 100755
--- a/modules/integration/test-resources/swa/SwA-fileCache-enabled-axis2.xml
+++ b/modules/integration/test-resources/swa/SwA-fileCache-enabled-axis2.xml
@@ -65,7 +65,7 @@
     <!-- Transport Outs -->
     <!-- ================================================= -->
 
-  <transportSender name="http" class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
+  <transportSender name="http" class="org.apache.axis2.transport.http.impl.httpclient4.HTTPClient4TransportSender">
             <parameter name="PROTOCOL">HTTP/1.1</parameter>
     </transportSender>
     <transportSender name="local" class="org.apache.axis2.transport.local.LocalTransportSender"/>
diff --git a/modules/integration/test/org/apache/axis2/async/AsyncServiceTest.java b/modules/integration/test/org/apache/axis2/async/AsyncServiceTest.java
index 2013349..810a89f 100644
--- a/modules/integration/test/org/apache/axis2/async/AsyncServiceTest.java
+++ b/modules/integration/test/org/apache/axis2/async/AsyncServiceTest.java
@@ -136,7 +136,7 @@
                 }
 
                 /** This is called at the end of the MEP no matter what happens, quite like a finally block. */
-                public void onComplete() {
+                public synchronized void onComplete() {
                     finish = true;
                     notify();
                 }
diff --git a/modules/integration/test/org/apache/axis2/deployment/LifecycleTest.java b/modules/integration/test/org/apache/axis2/deployment/LifecycleTest.java
index 8b496a2..ac0b172 100644
--- a/modules/integration/test/org/apache/axis2/deployment/LifecycleTest.java
+++ b/modules/integration/test/org/apache/axis2/deployment/LifecycleTest.java
@@ -19,24 +19,10 @@
 
 package org.apache.axis2.deployment;
 
-import org.apache.axis2.AxisFault;
 import org.apache.axis2.Constants;
 import org.apache.axis2.integration.LocalTestCase;
-import org.apache.axis2.context.ServiceContext;
-import org.apache.axis2.service.Lifecycle;
 
 public class LifecycleTest extends LocalTestCase {
-    static public class Service implements Lifecycle {
-        static boolean initCalled, destroyCalled;
-
-        public void init(ServiceContext context) throws AxisFault {
-            initCalled = true;
-        }
-
-        public void destroy(ServiceContext context) {
-            destroyCalled = true;
-        }
-    }
 
     public void testServiceObjectLifecycle() throws Exception {
         deployClassAsService("lifecycle", Service.class, Constants.SCOPE_APPLICATION);
diff --git a/modules/kernel/src/org/apache/axis2/classloader/JarStreamHandlerFactory.java b/modules/integration/test/org/apache/axis2/deployment/Service.java
similarity index 64%
copy from modules/kernel/src/org/apache/axis2/classloader/JarStreamHandlerFactory.java
copy to modules/integration/test/org/apache/axis2/deployment/Service.java
index e32813e..6543232 100644
--- a/modules/kernel/src/org/apache/axis2/classloader/JarStreamHandlerFactory.java
+++ b/modules/integration/test/org/apache/axis2/deployment/Service.java
@@ -17,16 +17,22 @@
  * under the License.
  */
 
-package org.apache.axis2.classloader;
+package org.apache.axis2.deployment;
 
-import java.net.URLStreamHandler;
-import java.net.URLStreamHandlerFactory;
+import org.apache.axis2.AxisFault;
+import org.apache.axis2.context.ServiceContext;
+import org.apache.axis2.service.Lifecycle;
 
-public class JarStreamHandlerFactory implements URLStreamHandlerFactory {
-    public URLStreamHandler createURLStreamHandler(String protocol) {
-        if("jar".equalsIgnoreCase(protocol)){
-            return new JarFileUrlStreamHandler();
-        }
-        return null;
+public class Service implements Lifecycle {
+
+    static boolean initCalled, destroyCalled;
+
+    public void init(ServiceContext context) throws AxisFault {
+        initCalled = true;
     }
+
+    public void destroy(ServiceContext context) {
+        destroyCalled = true;
+    }
+
 }
diff --git a/modules/integration/test/org/apache/axis2/engine/EnginePausingTest.java b/modules/integration/test/org/apache/axis2/engine/EnginePausingTest.java
index e652ac0..e415e10 100644
--- a/modules/integration/test/org/apache/axis2/engine/EnginePausingTest.java
+++ b/modules/integration/test/org/apache/axis2/engine/EnginePausingTest.java
@@ -43,7 +43,7 @@
 import org.apache.axis2.handlers.AbstractHandler;
 import org.apache.axis2.receivers.RawXMLINOnlyMessageReceiver;
 import org.apache.axis2.receivers.RawXMLINOutMessageReceiver;
-import org.apache.axis2.transport.http.CommonsHTTPTransportSender;
+import org.apache.axis2.transport.http.impl.httpclient4.HTTPClient4TransportSender;
 
 import javax.xml.namespace.QName;
 import java.util.ArrayList;
@@ -70,7 +70,7 @@
         configContext.setServicePath(Constants.DEFAULT_SERVICES_PATH);
         configContext.setContextRoot("axis2");
         transportOut = new TransportOutDescription("null");
-        transportOut.setSender(new CommonsHTTPTransportSender());
+        transportOut.setSender(new HTTPClient4TransportSender());
         transportIn = new TransportInDescription("null");
 
     }
diff --git a/modules/integration/test/org/apache/axis2/engine/EngineWithoutPhaseResolvingTest.java b/modules/integration/test/org/apache/axis2/engine/EngineWithoutPhaseResolvingTest.java
index 4bed0ae..82d748e 100644
--- a/modules/integration/test/org/apache/axis2/engine/EngineWithoutPhaseResolvingTest.java
+++ b/modules/integration/test/org/apache/axis2/engine/EngineWithoutPhaseResolvingTest.java
@@ -23,6 +23,7 @@
 import org.apache.axiom.soap.SOAPFactory;
 import org.apache.axis2.AxisFault;
 import org.apache.axis2.receivers.AbstractInOutMessageReceiver;
+import org.apache.axis2.transport.http.impl.httpclient4.HTTPClient4TransportSender;
 import org.apache.axis2.addressing.EndpointReference;
 import org.apache.axis2.context.ConfigurationContext;
 import org.apache.axis2.context.MessageContext;
@@ -34,7 +35,6 @@
 import org.apache.axis2.description.InOutAxisOperation;
 import org.apache.axis2.description.TransportInDescription;
 import org.apache.axis2.description.TransportOutDescription;
-import org.apache.axis2.transport.http.CommonsHTTPTransportSender;
 
 import javax.xml.namespace.QName;
 
@@ -59,7 +59,7 @@
         configContext = new ConfigurationContext(engineRegistry);
 
         TransportOutDescription transport = new TransportOutDescription("null");
-        transport.setSender(new CommonsHTTPTransportSender());
+        transport.setSender(new HTTPClient4TransportSender());
 
         TransportInDescription transportIn = new TransportInDescription("null");
         AxisOperation axisOp = new InOutAxisOperation(operationName);
diff --git a/modules/integration/test/org/apache/axis2/engine/FaultHandlingTest.java b/modules/integration/test/org/apache/axis2/engine/FaultHandlingTest.java
index a3b959b..39fbb73 100644
--- a/modules/integration/test/org/apache/axis2/engine/FaultHandlingTest.java
+++ b/modules/integration/test/org/apache/axis2/engine/FaultHandlingTest.java
@@ -19,8 +19,8 @@
 
 package org.apache.axis2.engine;
 
-import java.io.ByteArrayInputStream;
 import java.io.File;
+import java.io.StringReader;
 import java.util.List;
 
 import javax.xml.stream.XMLStreamException;
@@ -30,11 +30,10 @@
 
 import org.apache.axiom.om.OMAbstractFactory;
 import org.apache.axiom.om.OMElement;
-import org.apache.axiom.om.util.StAXUtils;
+import org.apache.axiom.om.OMXMLBuilderFactory;
 import org.apache.axiom.soap.SOAP11Constants;
 import org.apache.axiom.soap.SOAP12Constants;
 import org.apache.axiom.soap.SOAPEnvelope;
-import org.apache.axiom.soap.impl.builder.StAXSOAPModelBuilder;
 import org.apache.axis2.AxisFault;
 import org.apache.axis2.Constants;
 import org.apache.axis2.client.OperationClient;
@@ -147,10 +146,7 @@
                         "         <m:echoIn xmlns:m=\"http://example.org/echo\" />  \n" +
                         "      </env:Body>\n" +
                         "   </env:Envelope>";
-        return (SOAPEnvelope)new StAXSOAPModelBuilder(StAXUtils.createXMLStreamReader(
-                new ByteArrayInputStream(soap.getBytes())),
-                                                      SOAP12Constants.SOAP_ENVELOPE_NAMESPACE_URI)
-                .getDocumentElement();
+        return OMXMLBuilderFactory.createSOAPModelBuilder(new StringReader(soap)).getSOAPEnvelope();
     }
 
     private SOAPEnvelope getResponse(SOAPEnvelope inEnvelope) throws AxisFault {
@@ -198,8 +194,8 @@
 
             sender.sendReceive(payload).toString();
         } catch (AxisFault axisFault) {
-            assertTrue(axisFault.getFaultCodeElement().toString()
-                    .indexOf(FaultHandler.M_FAULT_EXCEPTION) > -1);
+            assertEquals(FaultHandler.FAULT_EXCEPTION, axisFault.getFaultCode());
+            assertEquals(FaultHandler.FAULT_EXCEPTION, axisFault.getFaultCodeElement().getValueAsQName());
             assertTrue(axisFault.getFaultDetailElement().toString()
                     .indexOf(FaultHandler.DETAIL_MORE_INFO) > -1);
             assertTrue(axisFault.getFaultReasonElement().toString()
diff --git a/modules/integration/test/org/apache/axis2/engine/HandlerFailureTest.java b/modules/integration/test/org/apache/axis2/engine/HandlerFailureTest.java
index 0eb6f1c..1352965 100644
--- a/modules/integration/test/org/apache/axis2/engine/HandlerFailureTest.java
+++ b/modules/integration/test/org/apache/axis2/engine/HandlerFailureTest.java
@@ -20,7 +20,6 @@
 package org.apache.axis2.engine;
 
 import org.apache.axiom.om.OMElement;
-import org.apache.axiom.om.util.StAXUtils;
 import org.apache.axis2.AxisFault;
 import org.apache.axis2.client.ServiceClient;
 import org.apache.axis2.context.MessageContext;
@@ -69,7 +68,7 @@
             ServiceClient sender = getClient(Echo.SERVICE_NAME, Echo.ECHO_OM_ELEMENT_OP_NAME);
             
             OMElement result = sender.sendReceive(TestingUtils.createDummyOMElement());
-            result.serializeAndConsume(StAXUtils.createXMLStreamWriter(System.out));
+            result.serializeAndConsume(System.out);
             fail("the test must fail due to the intentional failure of the \"culprit\" handler");
         } catch (AxisFault e) {
             log.info(e.getMessage());
diff --git a/modules/integration/test/org/apache/axis2/engine/MessageContextSaveATest.java b/modules/integration/test/org/apache/axis2/engine/MessageContextSaveATest.java
index 57f0f3d..1473ead 100644
--- a/modules/integration/test/org/apache/axis2/engine/MessageContextSaveATest.java
+++ b/modules/integration/test/org/apache/axis2/engine/MessageContextSaveATest.java
@@ -46,8 +46,8 @@
 import org.apache.axis2.handlers.AbstractHandler;
 import org.apache.axis2.receivers.RawXMLINOnlyMessageReceiver;
 import org.apache.axis2.receivers.RawXMLINOutMessageReceiver;
-import org.apache.axis2.transport.http.CommonsHTTPTransportSender;
 import org.apache.axis2.transport.http.SimpleHTTPServer;
+import org.apache.axis2.transport.http.impl.httpclient4.HTTPClient4TransportSender;
 import org.apache.axis2.wsdl.WSDLConstants;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
@@ -179,9 +179,9 @@
         TransportOutDescription transportOut = new TransportOutDescription("null");
         TransportOutDescription transportOut2 = new TransportOutDescription("happy");
         TransportOutDescription transportOut3 = new TransportOutDescription("golucky");
-        transportOut.setSender(new CommonsHTTPTransportSender());
-        transportOut2.setSender(new CommonsHTTPTransportSender());
-        transportOut3.setSender(new CommonsHTTPTransportSender());
+        transportOut.setSender(new HTTPClient4TransportSender());
+        transportOut2.setSender(new HTTPClient4TransportSender());
+        transportOut3.setSender(new HTTPClient4TransportSender());
         axisConfiguration.addTransportOut(transportOut3);
         axisConfiguration.addTransportOut(transportOut2);
         axisConfiguration.addTransportOut(transportOut);
diff --git a/modules/integration/test/org/apache/axis2/engine/MessageContextSaveBTest.java b/modules/integration/test/org/apache/axis2/engine/MessageContextSaveBTest.java
index 3296cf3..3913078 100644
--- a/modules/integration/test/org/apache/axis2/engine/MessageContextSaveBTest.java
+++ b/modules/integration/test/org/apache/axis2/engine/MessageContextSaveBTest.java
@@ -46,8 +46,8 @@
 import org.apache.axis2.handlers.AbstractHandler;
 import org.apache.axis2.receivers.RawXMLINOnlyMessageReceiver;
 import org.apache.axis2.receivers.RawXMLINOutMessageReceiver;
-import org.apache.axis2.transport.http.CommonsHTTPTransportSender;
 import org.apache.axis2.transport.http.SimpleHTTPServer;
+import org.apache.axis2.transport.http.impl.httpclient4.HTTPClient4TransportSender;
 import org.apache.axis2.wsdl.WSDLConstants;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
@@ -294,9 +294,9 @@
         transportOut = new TransportOutDescription("null");
         transportOut2 = new TransportOutDescription("happy");
         transportOut3 = new TransportOutDescription("golucky");
-        transportOut.setSender(new CommonsHTTPTransportSender());
-        transportOut2.setSender(new CommonsHTTPTransportSender());
-        transportOut3.setSender(new CommonsHTTPTransportSender());
+        transportOut.setSender(new HTTPClient4TransportSender());
+        transportOut2.setSender(new HTTPClient4TransportSender());
+        transportOut3.setSender(new HTTPClient4TransportSender());
 
         axisConfiguration.addTransportOut(transportOut3);
         axisConfiguration.addTransportOut(transportOut2);
diff --git a/modules/integration/test/org/apache/axis2/engine/MessageContextSaveCTest.java b/modules/integration/test/org/apache/axis2/engine/MessageContextSaveCTest.java
index a80d2b4..1b890b6 100644
--- a/modules/integration/test/org/apache/axis2/engine/MessageContextSaveCTest.java
+++ b/modules/integration/test/org/apache/axis2/engine/MessageContextSaveCTest.java
@@ -45,8 +45,8 @@
 import org.apache.axis2.handlers.AbstractHandler;
 import org.apache.axis2.receivers.RawXMLINOnlyMessageReceiver;
 import org.apache.axis2.receivers.RawXMLINOutMessageReceiver;
-import org.apache.axis2.transport.http.CommonsHTTPTransportSender;
 import org.apache.axis2.transport.http.SimpleHTTPServer;
+import org.apache.axis2.transport.http.impl.httpclient4.HTTPClient4TransportSender;
 import org.apache.axis2.util.MetaDataEntry;
 import org.apache.axis2.wsdl.WSDLConstants;
 import org.apache.commons.logging.Log;
@@ -260,9 +260,9 @@
         transportOut = new TransportOutDescription("null");
         transportOut2 = new TransportOutDescription("happy");
         transportOut3 = new TransportOutDescription("golucky");
-        transportOut.setSender(new CommonsHTTPTransportSender());
-        transportOut2.setSender(new CommonsHTTPTransportSender());
-        transportOut3.setSender(new CommonsHTTPTransportSender());
+        transportOut.setSender(new HTTPClient4TransportSender());
+        transportOut2.setSender(new HTTPClient4TransportSender());
+        transportOut3.setSender(new HTTPClient4TransportSender());
 
         saveAxisConfiguration.addTransportOut(transportOut3);
         saveAxisConfiguration.addTransportOut(transportOut2);
diff --git a/modules/integration/test/org/apache/axis2/engine/MessageContextSelfManagedDataTest.java b/modules/integration/test/org/apache/axis2/engine/MessageContextSelfManagedDataTest.java
index 59d6afd..d088e37 100644
--- a/modules/integration/test/org/apache/axis2/engine/MessageContextSelfManagedDataTest.java
+++ b/modules/integration/test/org/apache/axis2/engine/MessageContextSelfManagedDataTest.java
@@ -44,8 +44,8 @@
 import org.apache.axis2.handlers.AbstractHandler;
 import org.apache.axis2.receivers.RawXMLINOnlyMessageReceiver;
 import org.apache.axis2.receivers.RawXMLINOutMessageReceiver;
-import org.apache.axis2.transport.http.CommonsHTTPTransportSender;
 import org.apache.axis2.transport.http.SimpleHTTPServer;
+import org.apache.axis2.transport.http.impl.httpclient4.HTTPClient4TransportSender;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 
@@ -238,9 +238,9 @@
         transportOut = new TransportOutDescription("null");
         transportOut2 = new TransportOutDescription("happy");
         transportOut3 = new TransportOutDescription("golucky");
-        transportOut.setSender(new CommonsHTTPTransportSender());
-        transportOut2.setSender(new CommonsHTTPTransportSender());
-        transportOut3.setSender(new CommonsHTTPTransportSender());
+        transportOut.setSender(new HTTPClient4TransportSender());
+        transportOut2.setSender(new HTTPClient4TransportSender());
+        transportOut3.setSender(new HTTPClient4TransportSender());
         axisConfiguration.addTransportOut(transportOut3);
         axisConfiguration.addTransportOut(transportOut2);
         axisConfiguration.addTransportOut(transportOut);
diff --git a/modules/integration/test/org/apache/axis2/engine/OperationContextSaveTest.java b/modules/integration/test/org/apache/axis2/engine/OperationContextSaveTest.java
index 4c717d6..0087618 100644
--- a/modules/integration/test/org/apache/axis2/engine/OperationContextSaveTest.java
+++ b/modules/integration/test/org/apache/axis2/engine/OperationContextSaveTest.java
@@ -44,7 +44,7 @@
 import org.apache.axis2.handlers.AbstractHandler;
 import org.apache.axis2.receivers.RawXMLINOnlyMessageReceiver;
 import org.apache.axis2.receivers.RawXMLINOutMessageReceiver;
-import org.apache.axis2.transport.http.CommonsHTTPTransportSender;
+import org.apache.axis2.transport.http.impl.httpclient4.HTTPClient4TransportSender;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 
@@ -169,7 +169,7 @@
         //-----------------------------------------------------------------
 
         transportOut = new TransportOutDescription("null");
-        transportOut.setSender(new CommonsHTTPTransportSender());
+        transportOut.setSender(new HTTPClient4TransportSender());
 
         transportIn = new TransportInDescription("null");
 
diff --git a/modules/integration/test/org/apache/axis2/engine/OptionsSaveTest.java b/modules/integration/test/org/apache/axis2/engine/OptionsSaveTest.java
index c42fcb9..3b845bf 100644
--- a/modules/integration/test/org/apache/axis2/engine/OptionsSaveTest.java
+++ b/modules/integration/test/org/apache/axis2/engine/OptionsSaveTest.java
@@ -27,8 +27,8 @@
 import org.apache.axis2.context.ConfigurationContext;
 import org.apache.axis2.description.TransportInDescription;
 import org.apache.axis2.description.TransportOutDescription;
-import org.apache.axis2.transport.http.CommonsHTTPTransportSender;
 import org.apache.axis2.transport.http.SimpleHTTPServer;
+import org.apache.axis2.transport.http.impl.httpclient4.HTTPClient4TransportSender;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 
@@ -97,9 +97,9 @@
         TransportOutDescription transportOut = new TransportOutDescription("null");
         TransportOutDescription transportOut2 = new TransportOutDescription("happy");
         TransportOutDescription transportOut3 = new TransportOutDescription("golucky");
-        transportOut.setSender(new CommonsHTTPTransportSender());
-        transportOut2.setSender(new CommonsHTTPTransportSender());
-        transportOut3.setSender(new CommonsHTTPTransportSender());
+        transportOut.setSender(new HTTPClient4TransportSender());
+        transportOut2.setSender(new HTTPClient4TransportSender());
+        transportOut3.setSender(new HTTPClient4TransportSender());
         options.setTransportOut(transportOut);
         axisConfiguration.addTransportOut(transportOut3);
         axisConfiguration.addTransportOut(transportOut2);
diff --git a/modules/integration/test/org/apache/axis2/engine/ThreadingTest.java b/modules/integration/test/org/apache/axis2/engine/ThreadingTest.java
index 4560c88..2aa6697 100644
--- a/modules/integration/test/org/apache/axis2/engine/ThreadingTest.java
+++ b/modules/integration/test/org/apache/axis2/engine/ThreadingTest.java
@@ -21,42 +21,73 @@
 
 import junit.framework.Test;
 import junit.framework.TestSuite;
-import org.apache.axis2.context.MessageContext;
-import org.apache.axis2.context.ServiceContext;
+
+import org.apache.axiom.om.OMElement;
+import org.apache.axis2.AxisFault;
+import org.apache.axis2.Constants;
+import org.apache.axis2.addressing.EndpointReference;
+import org.apache.axis2.client.Options;
+import org.apache.axis2.client.ServiceClient;
 import org.apache.axis2.description.AxisService;
-import org.apache.axis2.engine.util.InvokerThread;
 import org.apache.axis2.engine.util.TestConstants;
+import org.apache.axis2.integration.TestingUtils;
 import org.apache.axis2.integration.UtilServer;
 import org.apache.axis2.integration.UtilServerBasedTestCase;
 import org.apache.axis2.util.Utils;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 
-import javax.xml.namespace.QName;
-import java.util.Calendar;
-import java.util.GregorianCalendar;
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.TimeUnit;
 
 public class ThreadingTest extends UtilServerBasedTestCase implements TestConstants {
-
-
     private static final Log log = LogFactory.getLog(ThreadingTest.class);
 
-    protected QName transportName = new QName("http://localhost/my",
-                                              "NullTransport");
+    private static class Invoker implements Runnable {
+        private final int threadNumber;
+        private final CountDownLatch latch;
+        private Exception thrownException;
 
-    protected AxisConfiguration engineRegistry;
-    protected MessageContext mc;
-    protected ServiceContext serviceContext;
-    protected AxisService service;
+        Invoker(int threadNumber, CountDownLatch latch) throws AxisFault {
+            this.threadNumber = threadNumber;
+            this.latch = latch;
+        }
 
-    protected boolean finish = false;
+        @Override
+        public void run() {
+            try {
+                log.info("Starting Thread number " + threadNumber + " .............");
+                OMElement payload = TestingUtils.createDummyOMElement();
+
+                Options options = new Options();
+                options.setTo(new EndpointReference("http://127.0.0.1:"
+                        + UtilServer.TESTING_PORT
+                        + "/axis2/services/EchoXMLService/echoOMElement"));
+                options.setTransportInProtocol(Constants.TRANSPORT_HTTP);
+                ServiceClient sender = new ServiceClient();
+                sender.setOptions(options);
+                OMElement result = sender.sendReceive(payload);
+
+                TestingUtils.compareWithCreatedOMElement(result);
+                log.info("Finishing Thread number " + threadNumber + " .....");
+            } catch (Exception axisFault) {
+                thrownException = axisFault;
+                log.error("Error has occured invoking the service ", axisFault);
+            }
+            latch.countDown();
+        }
+
+        Exception getThrownException() {
+            return thrownException;
+        }
+    }
 
     public static Test suite() {
         return getTestSetup(new TestSuite(ThreadingTest.class));
     }
 
     protected void setUp() throws Exception {
-        service =
+        AxisService service =
                 Utils.createSimpleService(serviceName,
                                           Echo.class.getName(),
                                           operationName);
@@ -69,41 +100,22 @@
     }
 
     public void testEchoXMLSync() throws Exception {
-        int numberOfThreads = 5;
-        InvokerThread[] invokerThreads = new InvokerThread[numberOfThreads];
+        Invoker[] invokers = new Invoker[5];
+        CountDownLatch latch = new CountDownLatch(invokers.length);
 
-        for (int i = 0; i < numberOfThreads; i++) {
-            InvokerThread invokerThread = new InvokerThread(i + 1);
-            invokerThreads[i] = invokerThread;
-            invokerThread.start();
+        for (int i = 0; i < invokers.length; i++) {
+            Invoker invoker = new Invoker(i + 1, latch);
+            invokers[i] = invoker;
+            new Thread(invoker).start();
         }
 
-        boolean threadsAreRunning;
-        Calendar cal = new GregorianCalendar();
-        int min = cal.get(Calendar.MINUTE);
+        latch.await(30, TimeUnit.SECONDS);
 
-        do {
-            threadsAreRunning = false;
-            for (int i = 0; i < numberOfThreads; i++) {
-                if (invokerThreads[i].isAlive()) {
-                    threadsAreRunning = true;
-                    break;
-                }
-                Exception exception = invokerThreads[i].getThrownException();
-                if (exception != null) {
-                    throw new Exception("Exception thrown in thread " + i + " ....", exception);
-                }
+        for (Invoker invoker : invokers) {
+            Exception exception = invoker.getThrownException();
+            if (exception != null) {
+                throw exception;
             }
-
-            // waiting 3 seconds, if not finish, time out.
-            if (Math.abs(min - new GregorianCalendar().get(Calendar.MINUTE)) > 1) {
-                log.info("I'm timing out. Can't wait more than this to finish.");
-                fail("Timing out");
-            }
-
-            Thread.sleep(100);
-        } while (threadsAreRunning);
-
-        assertTrue(true);
+        }
     }
 }
diff --git a/modules/integration/test/org/apache/axis2/engine/chunking-disabled-axis2.xml b/modules/integration/test/org/apache/axis2/engine/chunking-disabled-axis2.xml
index 1de518c..dc69cde 100644
--- a/modules/integration/test/org/apache/axis2/engine/chunking-disabled-axis2.xml
+++ b/modules/integration/test/org/apache/axis2/engine/chunking-disabled-axis2.xml
@@ -81,11 +81,11 @@
     <!-- ================================================= -->
 
     <transportSender name="local" class="org.apache.axis2.transport.local.LocalTransportSender"/>
-    <transportSender name="http" class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
+    <transportSender name="http" class="org.apache.axis2.transport.http.impl.httpclient4.HTTPClient4TransportSender">
         <parameter name="PROTOCOL">HTTP/1.1</parameter>
     </transportSender>
     <transportSender name="https"
-                     class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
+                     class="org.apache.axis2.transport.http.impl.httpclient4.HTTPClient4TransportSender">
         <parameter name="PROTOCOL">HTTP/1.1</parameter>
     </transportSender>
 
diff --git a/modules/integration/test/org/apache/axis2/engine/chunking-enabled-axis2.xml b/modules/integration/test/org/apache/axis2/engine/chunking-enabled-axis2.xml
index 526a142..f1eb702 100644
--- a/modules/integration/test/org/apache/axis2/engine/chunking-enabled-axis2.xml
+++ b/modules/integration/test/org/apache/axis2/engine/chunking-enabled-axis2.xml
@@ -55,7 +55,7 @@
     <!-- Transport Outs -->
     <!-- ================================================= -->
 
-    <transportSender name="http" class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
+    <transportSender name="http" class="org.apache.axis2.transport.http.impl.httpclient4.HTTPClient4TransportSender">
         <parameter name="PROTOCOL">HTTP/1.1</parameter>
         <parameter name="Transfer-Encoding">chunked</parameter>
     </transportSender>
diff --git a/modules/integration/test/org/apache/axis2/engine/commons-http-enabled-axis2.xml b/modules/integration/test/org/apache/axis2/engine/commons-http-enabled-axis2.xml
index c15cccb..53cc2bd 100644
--- a/modules/integration/test/org/apache/axis2/engine/commons-http-enabled-axis2.xml
+++ b/modules/integration/test/org/apache/axis2/engine/commons-http-enabled-axis2.xml
@@ -58,7 +58,7 @@
 
     <transportSender name="local" class="org.apache.axis2.transport.local.LocalTransportSender"/>
 
-    <transportSender name="http" class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
+    <transportSender name="http" class="org.apache.axis2.transport.http.impl.httpclient4.HTTPClient4TransportSender">
         <parameter name="PROTOCOL">HTTP/1.1</parameter>
     </transportSender>
 
diff --git a/modules/integration/test/org/apache/axis2/engine/map/MapServiceTest.java b/modules/integration/test/org/apache/axis2/engine/map/MapServiceTest.java
index cfd1a30..9cf3724 100644
--- a/modules/integration/test/org/apache/axis2/engine/map/MapServiceTest.java
+++ b/modules/integration/test/org/apache/axis2/engine/map/MapServiceTest.java
@@ -127,6 +127,7 @@
             OMFactory fac = OMAbstractFactory.getOMFactory();
             OMElement map = AXIOMUtil
                     .stringToOM("<map><entry><key>key1</key><value>value1</value></entry></map>");
+            map.build();
             OMNamespace omNs = fac.createOMNamespace(
                     "http://map.engine.axis2.apache.org", "map");
             OMElement msg = fac.createOMElement(opName, omNs);
diff --git a/modules/integration/test/org/apache/axis2/engine/util/FaultHandler.java b/modules/integration/test/org/apache/axis2/engine/util/FaultHandler.java
index d5a9251..9d7f105 100644
--- a/modules/integration/test/org/apache/axis2/engine/util/FaultHandler.java
+++ b/modules/integration/test/org/apache/axis2/engine/util/FaultHandler.java
@@ -27,7 +27,6 @@
 import org.apache.axiom.soap.SOAPFaultDetail;
 import org.apache.axiom.soap.SOAPFaultReason;
 import org.apache.axiom.soap.SOAPFaultText;
-import org.apache.axiom.soap.SOAPFaultValue;
 import org.apache.axis2.AxisFault;
 import org.apache.axis2.context.MessageContext;
 import org.apache.axis2.handlers.AbstractHandler;
@@ -39,7 +38,8 @@
             "This is a test fault message which happened suddenly";
     public static final String DETAIL_MORE_INFO =
             "This error is a result due to a fake problem in Axis2 engine. Do not worry ;)";
-    public static final String M_FAULT_EXCEPTION = "m:FaultException";
+    public static final QName FAULT_EXCEPTION = new QName("http://someuri.org", "FaultException", "m");
+    public static final String M_FAULT_EXCEPTION = FAULT_EXCEPTION.getPrefix() + ":" + FAULT_EXCEPTION.getLocalPart();
 
     public static final String ERR_HANDLING_WITH_MSG_CTXT = "ErrorHandlingWithParamsSetToMsgCtxt";
     public static final String ERR_HANDLING_WITH_AXIS_FAULT =
@@ -60,13 +60,7 @@
 
         if (ERR_HANDLING_WITH_MSG_CTXT.equals(firstElement.getLocalName())) {
             SOAPFaultCode soapFaultCode = soapFac.createSOAPFaultCode();
-            soapFaultCode.declareNamespace("http://someuri.org", "m");
-            if (msgContext.isSOAP11()) {
-                soapFaultCode.setText(M_FAULT_EXCEPTION);
-            } else {
-                SOAPFaultValue soapFaultValue = soapFac.createSOAPFaultValue(soapFaultCode);
-                soapFaultValue.setText(M_FAULT_EXCEPTION);
-            }
+            soapFaultCode.setValue(FAULT_EXCEPTION);
 
             SOAPFaultReason soapFaultReason = soapFac.createSOAPFaultReason();
 
@@ -88,8 +82,7 @@
 
             throw new AxisFault("A dummy exception has occurred");
         } else if (ERR_HANDLING_WITH_AXIS_FAULT.equals(firstElement.getLocalName())) {
-            throw new AxisFault(new QName(M_FAULT_EXCEPTION), FAULT_REASON, null, null,
-                                detailEntry);
+            throw new AxisFault(FAULT_EXCEPTION, FAULT_REASON, null, null, detailEntry);
         }
         return InvocationResponse.CONTINUE;
     }
diff --git a/modules/integration/test/org/apache/axis2/engine/util/InvokerThread.java b/modules/integration/test/org/apache/axis2/engine/util/InvokerThread.java
deleted file mode 100644
index 64e07e2..0000000
--- a/modules/integration/test/org/apache/axis2/engine/util/InvokerThread.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.axis2.engine.util;
-
-import org.apache.axiom.om.OMElement;
-import org.apache.axis2.AxisFault;
-import org.apache.axis2.Constants;
-import org.apache.axis2.addressing.EndpointReference;
-import org.apache.axis2.client.Options;
-import org.apache.axis2.client.ServiceClient;
-import org.apache.axis2.context.ConfigurationContext;
-import org.apache.axis2.context.ConfigurationContextFactory;
-import org.apache.axis2.integration.TestingUtils;
-import org.apache.axis2.integration.UtilServer;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-
-import javax.xml.namespace.QName;
-
-public class InvokerThread extends Thread {
-
-    private int threadNumber;
-    protected EndpointReference targetEPR =
-            new EndpointReference("http://127.0.0.1:"
-                    + (UtilServer.TESTING_PORT)
-                    + "/axis2/services/EchoXMLService/echoOMElement");
-    protected QName operationName = new QName("echoOMElement");
-    private static final Log log = LogFactory.getLog(InvokerThread.class);
-    private Exception thrownException = null;
-    ConfigurationContext configContext;
-
-    public InvokerThread(int threadNumber) throws AxisFault {
-        this.threadNumber = threadNumber;
-        configContext =
-                ConfigurationContextFactory.createConfigurationContextFromFileSystem(
-                        null, null);
-    }
-
-    public void run() {
-        try {
-            log.info("Starting Thread number " + threadNumber + " .............");
-            OMElement payload = TestingUtils.createDummyOMElement();
-
-            Options options = new Options();
-            options.setTo(targetEPR);
-            options.setTransportInProtocol(Constants.TRANSPORT_HTTP);
-            ServiceClient sender = new ServiceClient(configContext, null);
-            sender.setOptions(options);
-            OMElement result = sender.sendReceive(payload);
-
-            TestingUtils.compareWithCreatedOMElement(result);
-            log.info("Finishing Thread number " + threadNumber + " .....");
-        } catch (AxisFault axisFault) {
-            thrownException = axisFault;
-            log.error("Error has occured invoking the service ", axisFault);
-        }
-    }
-
-    public Exception getThrownException() {
-        return thrownException;
-    }
-}
diff --git a/modules/integration/test/org/apache/axis2/generics/GenericService.java b/modules/integration/test/org/apache/axis2/generics/GenericService.java
index 2a0514a..c7e089e 100644
--- a/modules/integration/test/org/apache/axis2/generics/GenericService.java
+++ b/modules/integration/test/org/apache/axis2/generics/GenericService.java
@@ -40,7 +40,10 @@
         return persons.get(0);

     }

 

+// See generics.wsdl

+/*

     public void processStringArray(List<String[]> values) {

 

     }

+*/

 }

diff --git a/modules/integration/test/org/apache/axis2/generics/GenericWSDLGenerationTest.java b/modules/integration/test/org/apache/axis2/generics/GenericWSDLGenerationTest.java
index 03ceedb..1d80453 100644
--- a/modules/integration/test/org/apache/axis2/generics/GenericWSDLGenerationTest.java
+++ b/modules/integration/test/org/apache/axis2/generics/GenericWSDLGenerationTest.java
@@ -39,6 +39,7 @@
 

     public void test1() throws Exception {

         XMLUnit.setIgnoreWhitespace(true);

+        XMLUnit.setIgnoreComments(true);

         try {

             ByteArrayOutputStream out = new ByteArrayOutputStream();

             Java2WSDLBuilder builder = new Java2WSDLBuilder(out, GenericService.class.getName(), GenericService.class.getClassLoader());

@@ -52,6 +53,7 @@
 	            fail(myDiff.toString());

         } finally {

             XMLUnit.setIgnoreWhitespace(false);

+            XMLUnit.setIgnoreComments(false);

         }

     }

 }
\ No newline at end of file
diff --git a/modules/integration/test/org/apache/axis2/mtom/EchoRawMTOMToBase64Test.java b/modules/integration/test/org/apache/axis2/mtom/EchoRawMTOMToBase64Test.java
index 7245962..5e40ecf 100644
--- a/modules/integration/test/org/apache/axis2/mtom/EchoRawMTOMToBase64Test.java
+++ b/modules/integration/test/org/apache/axis2/mtom/EchoRawMTOMToBase64Test.java
@@ -103,7 +103,7 @@
         return rpcWrapEle;
     }
 
-    public void testEchoXMLASync() throws Exception {
+    public void _testEchoXMLASync() throws Exception {
         OMElement payload = createPayload();
         Options clientOptions = new Options();
         clientOptions.setTo(targetEPR);
diff --git a/modules/integration/test/org/apache/axis2/om/OMAttributeTest.java b/modules/integration/test/org/apache/axis2/om/OMAttributeTest.java
index d297f34..1f4b468 100644
--- a/modules/integration/test/org/apache/axis2/om/OMAttributeTest.java
+++ b/modules/integration/test/org/apache/axis2/om/OMAttributeTest.java
@@ -20,10 +20,10 @@
 package org.apache.axis2.om;
 
 import junit.framework.TestCase;
-import org.apache.axiom.om.OMAbstractFactory;
 import org.apache.axiom.om.OMAttribute;
 import org.apache.axiom.om.OMElement;
-import org.apache.axiom.om.impl.builder.StAXOMBuilder;
+import org.apache.axiom.om.OMXMLBuilderFactory;
+import org.apache.axiom.om.OMXMLParserWrapper;
 import org.apache.axis2.util.StreamWrapper;
 import za.co.eskom.nrs.xmlvend.base.x20.schema.AdviceReqDocument;
 import za.co.eskom.nrs.xmlvend.base.x20.schema.ConfirmationAdviceReq;
@@ -48,10 +48,8 @@
         doc.setAdviceReq(req);
 
         //get the pull parser and construct the OMElement
-        StAXOMBuilder builder = new StAXOMBuilder(
-                OMAbstractFactory.getOMFactory(),
-                new StreamWrapper(doc.newXMLStreamReader())
-        );
+        OMXMLParserWrapper builder = OMXMLBuilderFactory.createStAXOMBuilder(
+                new StreamWrapper(doc.newXMLStreamReader()));
         OMElement elt = builder.getDocumentElement();
 
         //traverse the element and look at the namespace of the attribute
diff --git a/modules/integration/test/org/apache/axis2/rest/RESTfulServiceTest.java b/modules/integration/test/org/apache/axis2/rest/RESTfulServiceTest.java
index 27afefa..a6fed47 100644
--- a/modules/integration/test/org/apache/axis2/rest/RESTfulServiceTest.java
+++ b/modules/integration/test/org/apache/axis2/rest/RESTfulServiceTest.java
@@ -23,7 +23,6 @@
 import junit.framework.TestSuite;
 import org.apache.axiom.om.OMElement;
 import org.apache.axiom.om.util.AXIOMUtil;
-import org.apache.axis2.AxisFault;
 import org.apache.axis2.Constants;
 import org.apache.axis2.context.ConfigurationContext;
 import org.apache.axis2.context.ConfigurationContextFactory;
@@ -59,7 +58,7 @@
                 createConfigurationContextFromFileSystem(null, null);
     }
 
-    public void testServiceCreate() throws AxisFault {
+    public void test() throws Exception {
         AxisConfiguration axisConfig = configContext.getAxisConfiguration();
         AxisService axisService =
                 AxisService.createService("org.apache.axis2.rest.StockService", axisConfig);
@@ -133,10 +132,6 @@
         axisConfig.addService(axisService);
         assertEquals("StockService", axisService.getName());
 
-    }
-
-    public void testRESTMethods() throws AxisFault {
-
         HttpClient httpClient = new HttpClient();
 
         String url1 = "http://127.0.0.1:" + (UtilServer.TESTING_PORT)
@@ -153,10 +148,6 @@
             OMElement returnElem = response.getFirstChildWithName(new QName("return"));
             assertEquals("IBM stock added with value : 34.7", returnElem.getText());
 
-        } catch (Exception e) {
-            System.err.println("Error occurred while trying to invoke method: " + e.getMessage());
-            e.printStackTrace();
-            fail("Caught exception " + e.toString());
         } finally {
             method1.releaseConnection();
         }
@@ -176,10 +167,6 @@
             OMElement returnElem = response.getFirstChildWithName(new QName("return"));
             assertEquals("34.7", returnElem.getText());
 
-        } catch (Exception e) {
-            System.err.println("Error occurred while trying to invoke method: " + e.getMessage());
-            e.printStackTrace();
-            fail("Caught exception " + e.toString());
         } finally {
             method2.releaseConnection();
         }
diff --git a/modules/integration/test/org/apache/axis2/rpc/MultirefTest.java b/modules/integration/test/org/apache/axis2/rpc/MultirefTest.java
index 8af4af1..2df2be9 100644
--- a/modules/integration/test/org/apache/axis2/rpc/MultirefTest.java
+++ b/modules/integration/test/org/apache/axis2/rpc/MultirefTest.java
@@ -23,8 +23,8 @@
 import org.apache.axiom.om.OMElement;
 import org.apache.axiom.om.OMFactory;
 import org.apache.axiom.om.OMNamespace;
-import org.apache.axiom.om.impl.builder.StAXOMBuilder;
-import org.apache.axiom.om.util.StAXUtils;
+import org.apache.axiom.om.OMXMLBuilderFactory;
+import org.apache.axiom.om.OMXMLParserWrapper;
 import org.apache.axiom.soap.SOAPEnvelope;
 import org.apache.axiom.soap.SOAPFactory;
 import org.apache.axis2.AxisFault;
@@ -37,10 +37,7 @@
 import org.apache.axis2.rpc.client.RPCServiceClient;
 import org.apache.axis2.wsdl.WSDLConstants;
 
-import javax.xml.stream.FactoryConfigurationError;
-import javax.xml.stream.XMLStreamException;
-import javax.xml.stream.XMLStreamReader;
-import java.io.ByteArrayInputStream;
+import java.io.StringReader;
 import java.util.ArrayList;
 
 public class MultirefTest extends RPCLocalTestCase {
@@ -389,11 +386,7 @@
     }
 
     private OMElement getOMElement(String str, OMFactory fac) throws Exception {
-        StAXOMBuilder staxOMBuilder;
-        XMLStreamReader xmlReader = StAXUtils.createXMLStreamReader(new
-                ByteArrayInputStream(str.getBytes()));
-        staxOMBuilder = new StAXOMBuilder(fac, xmlReader);
-        return staxOMBuilder.getDocumentElement();
+        return OMXMLBuilderFactory.createOMBuilder(fac, new StringReader(str)).getDocumentElement();
     }
 
 
@@ -472,17 +465,7 @@
                 "    <item0>ghi</item0>\n" +
                 "    <item0>klm</item0>\n" +
                 "</reference>";
-        StAXOMBuilder staxOMBuilder;
-        try {
-            XMLStreamReader xmlReader = StAXUtils.createXMLStreamReader(new
-                    ByteArrayInputStream(str.getBytes()));
-            staxOMBuilder = new
-                    StAXOMBuilder(fac, xmlReader);
-        } catch (XMLStreamException e) {
-            throw AxisFault.makeFault(e);
-        } catch (FactoryConfigurationError factoryConfigurationError) {
-            throw AxisFault.makeFault(factoryConfigurationError);
-        }
+        OMXMLParserWrapper staxOMBuilder = OMXMLBuilderFactory.createOMBuilder(fac, new StringReader(str));
         envelope.getBody().addChild(staxOMBuilder.getDocumentElement());
 
         MessageContext reqMessageContext = new MessageContext();
diff --git a/modules/integration/test/org/apache/axis2/rpc/RPCCallTest.java b/modules/integration/test/org/apache/axis2/rpc/RPCCallTest.java
index d9a2c1e..aeafcad 100644
--- a/modules/integration/test/org/apache/axis2/rpc/RPCCallTest.java
+++ b/modules/integration/test/org/apache/axis2/rpc/RPCCallTest.java
@@ -19,11 +19,8 @@
 
 package org.apache.axis2.rpc;
 
-import org.apache.axiom.om.OMAbstractFactory;
 import org.apache.axiom.om.OMElement;
-import org.apache.axiom.om.OMFactory;
-import org.apache.axiom.om.impl.builder.StAXOMBuilder;
-import org.apache.axiom.om.util.StAXUtils;
+import org.apache.axiom.om.OMXMLBuilderFactory;
 import org.apache.axis2.AxisFault;
 import org.apache.axis2.databinding.utils.BeanUtil;
 import org.apache.axis2.databinding.utils.ConverterUtil;
@@ -32,13 +29,10 @@
 import org.apache.axis2.rpc.client.RPCServiceClient;
 
 import javax.xml.namespace.QName;
-import javax.xml.stream.XMLStreamReader;
-import java.io.ByteArrayInputStream;
+import java.io.StringReader;
 import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.Calendar;
-import java.util.Date;
-import java.util.TimeZone;
 
 public class RPCCallTest extends RPCLocalTestCase {
 
@@ -455,14 +449,9 @@
                 "    <arg0><abc>vaue3</abc></arg0>\n" +
                 "    <arg0><abc>vaue4</abc></arg0>\n" +
                 "</req:omElementArray>";
-        StAXOMBuilder staxOMBuilder;
-        XMLStreamReader xmlReader = StAXUtils.createXMLStreamReader(new
-                ByteArrayInputStream(str.getBytes()));
-        OMFactory fac = OMAbstractFactory.getOMFactory();
-
-        staxOMBuilder = new StAXOMBuilder(fac, xmlReader);
-
-        OMElement elem = sender.sendReceive(staxOMBuilder.getDocumentElement());
+        OMElement elem = sender.sendReceive(
+                OMXMLBuilderFactory.createOMBuilder(
+                        new StringReader(str)).getDocumentElement());
         assertEquals("4", elem.getFirstElement().getText());
     }
 
@@ -474,13 +463,7 @@
                 "    <item0 xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"  xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xsi:type=\"xsd:string\">klm</item0>\n" +
                 " <arg1 xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"  xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xsi:type=\"xsd:int\">10</arg1>" +
                 "</req:handleArrayList>";
-        StAXOMBuilder staxOMBuilder;
-        XMLStreamReader xmlReader = StAXUtils.createXMLStreamReader(
-                new ByteArrayInputStream(str.getBytes()));
-        OMFactory fac = OMAbstractFactory.getOMFactory();
-
-        staxOMBuilder = new StAXOMBuilder(fac, xmlReader);
-        return staxOMBuilder.getDocumentElement();
+        return OMXMLBuilderFactory.createOMBuilder(new StringReader(str)).getDocumentElement();
     }
 
 
diff --git a/modules/integration/test/org/apache/axis2/wsdl/ExtensionTypesTest.java b/modules/integration/test/org/apache/axis2/wsdl/ExtensionTypesTest.java
new file mode 100644
index 0000000..614e18a
--- /dev/null
+++ b/modules/integration/test/org/apache/axis2/wsdl/ExtensionTypesTest.java
@@ -0,0 +1,94 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.axis2.wsdl;
+
+import java.net.MalformedURLException;
+import java.net.URL;
+
+import javax.wsdl.Definition;
+import javax.wsdl.Operation;
+import javax.wsdl.PortType;
+import javax.xml.namespace.QName;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+
+import org.apache.axis2.AxisFault;
+import org.apache.axis2.client.ServiceClient;
+import org.apache.axis2.description.AxisService;
+import org.apache.axis2.engine.Echo;
+import org.apache.axis2.engine.util.TestConstants;
+import org.apache.axis2.integration.UtilServer;
+import org.apache.axis2.integration.UtilServerBasedTestCase;
+
+/**
+ * Tests whether extension attributes in {@link javax.wsdl.extensions.ExtensionRegistry} are of correct type
+ * for WSDL Definition instances created by Axis2.
+ * 
+ * @see {@link org.apache.axis2.wsdl.WSDLUtil#registerDefaultExtensionAttributeTypes(javax.wsdl.extensions.ExtensionRegistry)}
+ */
+public class ExtensionTypesTest extends UtilServerBasedTestCase implements TestConstants {
+	protected AxisService service;
+
+	public static Test suite() {
+		return getTestSetup(new TestSuite(ExtensionTypesTest.class));
+	}
+
+	protected void setUp() throws Exception {
+		service = AxisService.createService(Echo.class.getName(), UtilServer.getConfigurationContext().getAxisConfiguration());
+		service.setName(serviceName.getLocalPart());
+		UtilServer.deployService(service);
+	}
+
+	protected void tearDown() throws Exception {
+		UtilServer.unDeployService(serviceName);
+		UtilServer.unDeployClientService();
+	}
+
+	/**
+	 * Creates a service client for EchoXMLService, obtains the WSDL Definition and verifies whether the Addressing <code>Action</code> extension
+	 * attributes on operation's input and output elements are of correct type and value (expected to be String rather than QName).
+	 * @throws MalformedURLException 
+	 * @throws AxisFault 
+	 * 
+	 * @throws Exception
+	 */
+	public void testExtensionTypes() throws MalformedURLException, AxisFault {					 
+		URL wsdlURL = new URL(String.format("http://localhost:%s/axis2/services/EchoXMLService?wsdl", UtilServer.TESTING_PORT));
+		ServiceClient serviceClient = new ServiceClient(null, wsdlURL, new QName("http://engine.axis2.apache.org", "EchoXMLService"), "EchoHttpSoap11Endpoint");
+		Definition definition = (Definition) serviceClient.getAxisService().getParameter("wsdl4jDefinition").getValue();
+		PortType pt = definition.getPortType(new QName("http://engine.axis2.apache.org", "EchoXMLServicePortType"));
+		Operation op = pt.getOperation("echoOM", null, null);
+
+		QName addressingActionAttName = new QName("http://www.w3.org/2006/05/addressing/wsdl", "Action");
+		Object addressingActionAttValue = op.getInput().getExtensionAttributes().get(addressingActionAttName);
+		assertNotNull(String.format("The value of extension attribute %s on %s operation's input is null", addressingActionAttName, op.getName()), addressingActionAttValue);
+		assertTrue(String.format("The value of extension attribute %s on %s operation's input is not a String: %s", addressingActionAttName, op.getName(), addressingActionAttValue.getClass().getName()),
+				addressingActionAttValue instanceof String);
+		
+		assertEquals("urn:echoOM", (String) addressingActionAttValue);
+			
+		addressingActionAttValue = op.getOutput().getExtensionAttributes().get(addressingActionAttName);
+		assertNotNull(String.format("The value of extension attribute %s on %s operation's output is null", addressingActionAttName, op.getName()), addressingActionAttValue);
+		assertTrue(String.format("The value of extension attribute %s on %s operation's input is not a String: %s", addressingActionAttName, op.getName(), addressingActionAttValue.getClass().getName()),
+				addressingActionAttValue instanceof String);
+		assertEquals("urn:echoOMResponse", (String) addressingActionAttValue);
+	}
+}
diff --git a/modules/java2wsdl/pom.xml b/modules/java2wsdl/pom.xml
index 1651b66..e5191c6 100644
--- a/modules/java2wsdl/pom.xml
+++ b/modules/java2wsdl/pom.xml
@@ -23,9 +23,9 @@
     <modelVersion>4.0.0</modelVersion>
     <parent>
         <groupId>org.apache.axis2</groupId>
-        <artifactId>axis2-parent</artifactId>
-        <version>1.7.0-SNAPSHOT</version>
-        <relativePath>../parent/pom.xml</relativePath>
+        <artifactId>axis2</artifactId>
+        <version>1.8.0-SNAPSHOT</version>
+        <relativePath>../../pom.xml</relativePath>
     </parent>
     <artifactId>axis2-java2wsdl</artifactId>
     <name>Apache Axis2 - Java2WSDL</name>
@@ -46,10 +46,6 @@
             <artifactId>axis2-transport-local</artifactId>
             <version>${project.version}</version>
         </dependency>
-        <dependency>
-            <groupId>org.apache.ant</groupId>
-            <artifactId>ant</artifactId>
-        </dependency>
         <!-- external JARs -->
         <dependency>
             <groupId>commons-logging</groupId>
@@ -62,10 +58,6 @@
             <artifactId>xmlschema-core</artifactId>
         </dependency>
         <dependency>
-            <groupId>org.apache.geronimo.specs</groupId>
-            <artifactId>geronimo-javamail_1.4_spec</artifactId>
-        </dependency>
-        <dependency>
             <groupId>xalan</groupId>
             <artifactId>xalan</artifactId>
             <scope>test</scope>
@@ -101,6 +93,11 @@
              <artifactId>jaxws-rt</artifactId>            
              <scope>test</scope>
         </dependency>
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+            <scope>test</scope>
+        </dependency>
     </dependencies>
     <url>http://axis.apache.org/axis2/java/core/</url>
     <scm>
@@ -184,8 +181,8 @@
                 </executions>
             </plugin>
             <plugin>
-                <groupId>org.codehaus.gmaven</groupId>
-                <artifactId>gmaven-plugin</artifactId>
+                <groupId>org.codehaus.gmavenplus</groupId>
+                <artifactId>gmavenplus-plugin</artifactId>
                 <executions>
                     <execution>
                         <phase>test</phase>
@@ -193,25 +190,27 @@
                             <goal>execute</goal>
                         </goals>
                         <configuration>
-                            <source>
-                                import groovy.xml.*
-                                
-                                if (project.properties['maven.test.skip']) {
-                                    println 'Tests are skipped'
-                                    return
-                                }
-                                
-                                def parser = new XmlParser()
-                                def wsdl = new Namespace('http://schemas.xmlsoap.org/wsdl/')
-                                def xs = new Namespace('http://www.w3.org/2001/XMLSchema')
-
-                                println 'Checking p2n.wsdl'
-                                
-                                def wsdlDoc = parser.parse(new File(project.build.directory, "java2wsdl/p2n.wsdl"))
-                                def namespaces = wsdlDoc[wsdl.types][xs.schema].'@targetNamespace'
-                                assert namespaces.contains('http://www.example.org/calculator')
-                                assert namespaces.contains('http://www.example.org/calculator-service')
-                            </source>
+                            <scripts>
+                                <script>
+                                    import groovy.xml.*
+                                    
+                                    if (System.properties['maven.test.skip']) {
+                                        println 'Tests are skipped'
+                                        return
+                                    }
+                                    
+                                    def parser = new XmlParser()
+                                    def wsdl = new Namespace('http://schemas.xmlsoap.org/wsdl/')
+                                    def xs = new Namespace('http://www.w3.org/2001/XMLSchema')
+    
+                                    println 'Checking p2n.wsdl'
+                                    
+                                    def wsdlDoc = parser.parse(new File(project.build.directory, "java2wsdl/p2n.wsdl"))
+                                    def namespaces = wsdlDoc[wsdl.types][xs.schema].'@targetNamespace'
+                                    assert namespaces.contains('http://www.example.org/calculator')
+                                    assert namespaces.contains('http://www.example.org/calculator-service')
+                                </script>
+                            </scripts>
                         </configuration>
                     </execution>
                 </executions>
diff --git a/modules/java2wsdl/src/org/apache/ws/java2wsdl/Java2WSDLCodegenEngine.java b/modules/java2wsdl/src/org/apache/ws/java2wsdl/Java2WSDLCodegenEngine.java
index 3cab00e..2b29aa1 100644
--- a/modules/java2wsdl/src/org/apache/ws/java2wsdl/Java2WSDLCodegenEngine.java
+++ b/modules/java2wsdl/src/org/apache/ws/java2wsdl/Java2WSDLCodegenEngine.java
@@ -121,7 +121,7 @@
                     if (Java2WSDLUtils.isURL(classPathEntry)) {
                         urls[i] = new URL(classPathEntry);
                     } else {
-                        urls[i] = new File(classPathEntry).toURL();
+                        urls[i] = new File(classPathEntry).toURI().toURL();
                     }
                 }
             } catch (MalformedURLException e) {
diff --git a/modules/java2wsdl/test/org/apache/axis2/description/Java2WSDLTest.java b/modules/java2wsdl/test/org/apache/axis2/description/Java2WSDLTest.java
index 126e957..1609e8b 100644
--- a/modules/java2wsdl/test/org/apache/axis2/description/Java2WSDLTest.java
+++ b/modules/java2wsdl/test/org/apache/axis2/description/Java2WSDLTest.java
@@ -17,27 +17,29 @@
  * under the License.

  */

 

-package org.apache.axis2.description;

-

-import junit.framework.TestCase;

-import org.apache.ws.java2wsdl.Java2WSDLBuilder;

-import org.xml.sax.InputSource;

-

-import javax.wsdl.Definition;

-import javax.wsdl.xml.WSDLReader;

-import javax.wsdl.factory.WSDLFactory;

-import java.io.ByteArrayInputStream;

-import java.io.ByteArrayOutputStream;

-import java.util.HashMap;

+package org.apache.axis2.description;
+
+import junit.framework.TestCase;
+
+import org.apache.axis2.wsdl.WSDLUtil;
+import org.apache.ws.java2wsdl.Java2WSDLBuilder;
+import org.xml.sax.InputSource;
+
+import javax.wsdl.Definition;
+import javax.wsdl.xml.WSDLReader;
+
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.util.HashMap;
 

 public class Java2WSDLTest extends TestCase {

     public void test1() throws Exception {

         ByteArrayOutputStream out = new ByteArrayOutputStream();

-        Java2WSDLBuilder builder = new Java2WSDLBuilder(out, CalculatorService.class.getName(), CalculatorService.class.getClassLoader(), new HashMap());

-        builder.generateWSDL();

-        InputSource inputSource = new InputSource(new ByteArrayInputStream(out.toByteArray()));

-        WSDLReader wsdlReader = WSDLFactory.newInstance().newWSDLReader();

-        Definition definition = wsdlReader.readWSDL(null, inputSource);

-        assertNotNull(definition);

-    }

+        Java2WSDLBuilder builder = new Java2WSDLBuilder(out, CalculatorService.class.getName(), CalculatorService.class.getClassLoader(), new HashMap());
+        builder.generateWSDL();
+        InputSource inputSource = new InputSource(new ByteArrayInputStream(out.toByteArray()));
+        WSDLReader wsdlReader = WSDLUtil.newWSDLReaderWithPopulatedExtensionRegistry();
+        Definition definition = wsdlReader.readWSDL(null, inputSource);
+        assertNotNull(definition);
+    }
 }

diff --git a/modules/jaxbri/pom.xml b/modules/jaxbri/pom.xml
index 6553ca9..08d4124 100644
--- a/modules/jaxbri/pom.xml
+++ b/modules/jaxbri/pom.xml
@@ -23,9 +23,9 @@
     <modelVersion>4.0.0</modelVersion>
     <parent>
         <groupId>org.apache.axis2</groupId>
-        <artifactId>axis2-parent</artifactId>
-        <version>1.7.0-SNAPSHOT</version>
-        <relativePath>../parent/pom.xml</relativePath>
+        <artifactId>axis2</artifactId>
+        <version>1.8.0-SNAPSHOT</version>
+        <relativePath>../../pom.xml</relativePath>
     </parent>
     <artifactId>axis2-jaxbri</artifactId>
     <name>Apache Axis2 - JAXB-RI Data Binding</name>
@@ -37,10 +37,6 @@
             <version>${project.version}</version>
         </dependency>
         <dependency>
-            <groupId>org.apache.ws.commons.axiom</groupId>
-            <artifactId>axiom-jaxb</artifactId>
-        </dependency>
-        <dependency>
             <groupId>org.apache.axis2</groupId>
             <artifactId>axis2-java2wsdl</artifactId>
             <version>${project.version}</version>
@@ -63,21 +59,15 @@
                 <artifactId>commons-logging</artifactId>
             </dependency>
         <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
             <groupId>xmlunit</groupId>
             <artifactId>xmlunit</artifactId>
             <scope>test</scope>
         </dependency>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>axis2-testutils</artifactId>
-            <version>${project.version}</version>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.ws.commons.axiom</groupId>
-            <artifactId>axiom-testutils</artifactId>
-            <scope>test</scope>
-        </dependency>
     </dependencies>
     <url>http://axis.apache.org/axis2/java/core/</url>
     <scm>
@@ -103,45 +93,27 @@
                 </executions>
             </plugin>
             <plugin>
-                <artifactId>maven-compiler-plugin</artifactId>
-                <inherited>true</inherited>
-                <configuration>
-                    <source>1.5</source>
-                    <target>1.5</target>
-                </configuration>
+                <groupId>org.codehaus.mojo</groupId>
+                <artifactId>jaxb2-maven-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>testXjc</goal>
+                        </goals>
+                        <configuration>
+                            <sourceType>WSDL</sourceType>
+                            <testSources>
+                                <testSource>src/test/wsdl/DocLitBareService.wsdl</testSource>
+                            </testSources>
+                        </configuration>
+                    </execution>
+                </executions>
             </plugin>
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-antrun-plugin</artifactId>
                 <executions>
                     <execution>
-                        <id>gen-ts</id>
-                        <phase>generate-test-sources</phase>
-                        <goals>
-                            <goal>run</goal>
-                        </goals>
-                        <configuration>
-                            <tasks unless="maven.test.skip">
-                                <!-- Theres got to be a better way to do this -->
-                                <property name="schema.source.dir" value="src/test/xsd" />
-                                <property name="schema.output.base.dir" value="target/schema" />
-                                <property name="schema.generated.src.dir" value="${schema.output.base.dir}/src" />
-                                <property name="schema.generated.classes.dir" value="${schema.output.base.dir}/classes" />
-                                <!-- make the dirs -->
-                                <mkdir dir="${schema.output.base.dir}" />
-                                <mkdir dir="${schema.generated.src.dir}" />
-                                <mkdir dir="${schema.generated.classes.dir}" />
-                                <!-- Run JAXB schema compiler with designated schemas -->
-                                <echo>Generating JAX-B classes for DocLitBareService test</echo>
-                                <java classname="com.sun.tools.xjc.Driver" fork="true">
-                                    <classpath refid="maven.runtime.classpath" />
-                                    <classpath location="${compiled.classes.dir}" />
-                                    <arg line="-d ${schema.generated.src.dir} -quiet -wsdl src/test/wsdl/DocLitBareService.wsdl" />
-                                </java>
-                            </tasks>
-                        </configuration>
-                    </execution>
-                    <execution>
                         <id>wsdl2java</id>
                         <phase>generate-test-sources</phase>
                         <goals>
@@ -151,27 +123,11 @@
                             <tasks unless="maven.test.skip">
                                 <java classname="org.apache.axis2.wsdl.WSDL2Java" fork="true">
                                     <classpath refid="maven.test.classpath" />
-                                    <arg line="-d jaxbri -ss -ssi -sd -o ${project.build.directory}/gen/Test01 -u -uri src/test/wsdl/Test01.wsdl" />
+                                    <arg line="-d jaxbri -ss -ssi -sd -o '${project.build.directory}/gen/Test01' -u -uri src/test/wsdl/Test01.wsdl" />
                                 </java>
                                 <java classname="org.apache.axis2.wsdl.WSDL2Java" fork="true">
                                     <classpath refid="maven.test.classpath" />
-                                    <arg line="-d jaxbri -o ${project.build.directory}/gen/Test01 -u -uri src/test/wsdl/Test01.wsdl" />
-                                </java>
-                                <java classname="org.apache.axis2.wsdl.WSDL2Java" fork="true">
-                                    <classpath refid="maven.test.classpath" />
-                                    <arg line="-d jaxbri -ss -ssi -sd -o ${project.build.directory}/gen/processor -u -uri src/test/wsdl/processor.wsdl -ns2p http://www.example.org/data=org.apache.axis2.jaxbri.processor.data,http://www.example.org/ws=org.apache.axis2.jaxbri.processor.service" />
-                                </java>
-                                <java classname="org.apache.axis2.wsdl.WSDL2Java" fork="true">
-                                    <classpath refid="maven.test.classpath" />
-                                    <arg line="-d jaxbri -o ${project.build.directory}/gen/processor -u -uri src/test/wsdl/processor.wsdl -ns2p http://www.example.org/data=org.apache.axis2.jaxbri.processor.data,http://www.example.org/ws=org.apache.axis2.jaxbri.processor.client" />
-                                </java>
-                                <java classname="org.apache.axis2.wsdl.WSDL2Java" fork="true">
-                                    <classpath refid="maven.test.classpath" />
-                                    <arg line="-d jaxbri -ss -ssi -sd -g -o ${project.build.directory}/gen/identityservice -u -uri src/test/wsdl/identityService.wsdl -p org.apache.axis2.jaxbri.identityservice -ns2p http://www.example.org/identity=org.apache.axis2.jaxbri.identityservice" />
-                                </java>
-                                <java classname="org.apache.axis2.wsdl.WSDL2Java" fork="true">
-                                    <classpath refid="maven.test.classpath" />
-                                    <arg line="-d jaxbri -ss -ssi -sd -g -o ${project.build.directory}/gen/mtom -u -uri src/test/wsdl/mtom.wsdl -p org.apache.axis2.jaxbri.mtom -ns2p http://www.example.org/mtom/=org.apache.axis2.jaxbri.mtom -EbindingFileName " />
+                                    <arg line="-d jaxbri -o '${project.build.directory}/gen/Test01' -u -uri src/test/wsdl/Test01.wsdl" />
                                 </java>
                             </tasks>
                         </configuration>
@@ -193,109 +149,6 @@
                 </executions>
             </plugin>
             <plugin>
-                <groupId>org.codehaus.mojo</groupId>
-                <artifactId>build-helper-maven-plugin</artifactId>
-                <executions>
-                    <execution>
-                        <id>add-test-source</id>
-                        <phase>process-test-resources</phase>
-                        <goals>
-                            <goal>add-test-source</goal>
-                        </goals>
-                        <configuration>
-                            <sources>
-                                <source>${project.build.directory}/schema/src</source>
-                                <source>${project.build.directory}/gen/Test01/src</source>
-                                <source>${project.build.directory}/gen/processor/src</source>
-                                <source>${project.build.directory}/gen/identityservice/src</source>
-                                <source>${project.build.directory}/gen/mtom/src</source>
-                            </sources>
-                        </configuration>
-                    </execution>
-                </executions>
-            </plugin>
-            <plugin>
-                <artifactId>maven-resources-plugin</artifactId>
-                <executions>
-                    <execution>
-                        <id>Test01-repo</id>
-                        <phase>generate-test-resources</phase>
-                        <goals>
-                            <goal>copy-resources</goal>
-                        </goals>
-                        <configuration>
-                            <outputDirectory>${project.build.directory}/repo/Test01</outputDirectory>
-                            <resources>
-                                <resource>
-                                    <directory>src/test/repo</directory>
-                                </resource>
-                                <resource>
-                                    <directory>${project.build.directory}/gen/Test01/resources</directory>
-                                    <targetPath>services/Test01.aar/META-INF</targetPath>
-                                </resource>
-                            </resources>
-                        </configuration>
-                    </execution>
-                    <execution>
-                        <id>processor-repo</id>
-                        <phase>generate-test-resources</phase>
-                        <goals>
-                            <goal>copy-resources</goal>
-                        </goals>
-                        <configuration>
-                            <outputDirectory>${project.build.directory}/repo/processor</outputDirectory>
-                            <resources>
-                                <resource>
-                                    <directory>src/test/repo</directory>
-                                </resource>
-                                <resource>
-                                    <directory>${project.build.directory}/gen/processor/resources</directory>
-                                    <targetPath>services/processor.aar/META-INF</targetPath>
-                                </resource>
-                            </resources>
-                        </configuration>
-                    </execution>
-                    <execution>
-                        <id>identityservice-repo</id>
-                        <phase>generate-test-resources</phase>
-                        <goals>
-                            <goal>copy-resources</goal>
-                        </goals>
-                        <configuration>
-                            <outputDirectory>${project.build.directory}/repo/identityservice</outputDirectory>
-                            <resources>
-                                <resource>
-                                    <directory>src/test/repo</directory>
-                                </resource>
-                                <resource>
-                                    <directory>${project.build.directory}/gen/identityservice/resources</directory>
-                                    <targetPath>services/identityservice.aar/META-INF</targetPath>
-                                </resource>
-                            </resources>
-                        </configuration>
-                    </execution>
-                    <execution>
-                        <id>mtom-repo</id>
-                        <phase>generate-test-resources</phase>
-                        <goals>
-                            <goal>copy-resources</goal>
-                        </goals>
-                        <configuration>
-                            <outputDirectory>${project.build.directory}/repo/mtom</outputDirectory>
-                            <resources>
-                                <resource>
-                                    <directory>src/test/repo</directory>
-                                </resource>
-                                <resource>
-                                    <directory>${project.build.directory}/gen/mtom/resources</directory>
-                                    <targetPath>services/mtom.aar/META-INF</targetPath>
-                                </resource>
-                            </resources>
-                        </configuration>
-                    </execution>
-                </executions>
-            </plugin>
-            <plugin>
                 <artifactId>maven-surefire-plugin</artifactId>
                 <inherited>true</inherited>
                 <configuration>
diff --git a/modules/jaxbri/src/main/java/org/apache/axis2/jaxbri/CodeGenerationUtility.java b/modules/jaxbri/src/main/java/org/apache/axis2/jaxbri/CodeGenerationUtility.java
index 6d2da5c..2f3093c 100644
--- a/modules/jaxbri/src/main/java/org/apache/axis2/jaxbri/CodeGenerationUtility.java
+++ b/modules/jaxbri/src/main/java/org/apache/axis2/jaxbri/CodeGenerationUtility.java
@@ -249,7 +249,7 @@
 
                 // Emit the code artifacts
                 JCodeModel codeModel = jaxbModel.generateCode(null, null);
-                FileCodeWriter writer = new FileCodeWriter(outputDir);
+                FileCodeWriter writer = new FileCodeWriter(outputDir, cgconfig.getOutputEncoding());
                 codeModel.build(writer);
 
                 Collection mappings = jaxbModel.getMappings();
@@ -359,7 +359,7 @@
     private static void scanEpisodeFile(File jar, SchemaCompiler sc)
             throws BadCommandLineException, IOException {
 
-        URLClassLoader ucl = new URLClassLoader(new URL[]{jar.toURL()});
+        URLClassLoader ucl = new URLClassLoader(new URL[]{jar.toURI().toURL()});
         Enumeration<URL> resources = ucl.findResources("META-INF/sun-jaxb.episode");
         while (resources.hasMoreElements()) {
             URL url = resources.nextElement();
diff --git a/modules/jaxbri/src/main/resources/org/apache/axis2/jaxbri/template/JaxbRIDatabindingTemplate.xsl b/modules/jaxbri/src/main/resources/org/apache/axis2/jaxbri/template/JaxbRIDatabindingTemplate.xsl
index ba7ff29..19bb33b 100644
--- a/modules/jaxbri/src/main/resources/org/apache/axis2/jaxbri/template/JaxbRIDatabindingTemplate.xsl
+++ b/modules/jaxbri/src/main/resources/org/apache/axis2/jaxbri/template/JaxbRIDatabindingTemplate.xsl
@@ -208,11 +208,7 @@
             org.apache.axiom.om.OMElement param,
             java.lang.Class type) throws org.apache.axis2.AxisFault{
             try {
-                javax.xml.bind.JAXBContext context = wsContext;
-                javax.xml.bind.Unmarshaller unmarshaller = context.createUnmarshaller();
-                org.apache.axiom.util.jaxb.UnmarshallerAdapter adapter = org.apache.axiom.util.jaxb.JAXBUtils.getUnmarshallerAdapter(param.getXMLStreamReaderWithoutCaching());
-                unmarshaller.setAttachmentUnmarshaller(adapter.getAttachmentUnmarshaller());
-                return unmarshaller.unmarshal(adapter.getReader(), type).getValue();
+                return param.unmarshal(wsContext, null, type, false).getValue();
             } catch (javax.xml.bind.JAXBException bex){
                 throw org.apache.axis2.AxisFault.makeFault(bex);
             }
diff --git a/modules/jaxbri/src/test/java/org/temp/CodeGenerationUtilityTest.java b/modules/jaxbri/src/test/java/org/temp/CodeGenerationUtilityTest.java
index a841b3b..59e5383 100644
--- a/modules/jaxbri/src/test/java/org/temp/CodeGenerationUtilityTest.java
+++ b/modules/jaxbri/src/test/java/org/temp/CodeGenerationUtilityTest.java
@@ -21,13 +21,11 @@
 
 import java.io.File;
 import java.util.ArrayList;
-import java.util.HashMap;
 import java.util.Map;
 
 import javax.xml.namespace.QName;
 
 import org.apache.axis2.jaxbri.CodeGenerationUtility;
-import org.apache.axis2.util.CommandLineOption;
 import org.apache.axis2.wsdl.codegen.CodeGenConfiguration;
 import org.apache.axis2.wsdl.databinding.TypeMapper;
 import org.apache.ws.commons.schema.XmlSchema;
@@ -38,9 +36,8 @@
     @Test
     public void testProcessSchemas() throws Exception {
         ArrayList<XmlSchema> list = new ArrayList<XmlSchema>();
-        Map<String, CommandLineOption> optionMap = new HashMap<String, CommandLineOption>();
         loadSampleSchemaFile(list);
-        CodeGenConfiguration codeGenConfiguration = new CodeGenConfiguration(optionMap);
+        CodeGenConfiguration codeGenConfiguration = new CodeGenConfiguration();
         codeGenConfiguration.setBaseURI("localhost/test");
         codeGenConfiguration.setOutputLocation(new File("target"));
         TypeMapper mapper = CodeGenerationUtility.processSchemas(list, null, codeGenConfiguration);
diff --git a/modules/jaxws-integration/build.xml b/modules/jaxws-integration/build.xml
deleted file mode 100644
index 264896a..0000000
--- a/modules/jaxws-integration/build.xml
+++ /dev/null
@@ -1,38 +0,0 @@
-<?xml version="1.0"?>

-

-<!--

-  ~ Licensed to the Apache Software Foundation (ASF) under one

-  ~ or more contributor license agreements. See the NOTICE file

-  ~ distributed with this work for additional information

-  ~ regarding copyright ownership. The ASF licenses this file

-  ~ to you under the Apache License, Version 2.0 (the

-  ~ "License"); you may not use this file except in compliance

-  ~ with the License. You may obtain a copy of the License at

-  ~

-  ~ http://www.apache.org/licenses/LICENSE-2.0

-  ~

-  ~ Unless required by applicable law or agreed to in writing,

-  ~ software distributed under the License is distributed on an

-  ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

-  ~ KIND, either express or implied. See the License for the

-  ~ specific language governing permissions and limitations

-  ~ under the License.

-  -->

-

-<project name="itest" default="build-repo" basedir=".">

-

-	<target name="build-repo" unless="test.skip">

-

-		<!-- Standard repository -->

-		<mkdir dir="target/repository"/>

-		<mkdir dir="target/repository/conf"/>

-		<mkdir dir="target/repository/services"/>

-		<mkdir dir="target/repository/modules"/>

-		<copy file="../addressing/target/addressing-${addressing_version}.mar"

-    	                  tofile="target/repository/modules/addressing-${addressing_version}.mar"/>

-		<copy file="../kernel/conf/axis2.xml"

-    	                  tofile="target/repository/conf/axis2.xml"/>

-

-	</target>

-

-</project>

diff --git a/modules/jaxws-integration/pom.xml b/modules/jaxws-integration/pom.xml
index f3ba3ee..8f96a5a 100644
--- a/modules/jaxws-integration/pom.xml
+++ b/modules/jaxws-integration/pom.xml
@@ -23,9 +23,9 @@
     <modelVersion>4.0.0</modelVersion>
     <parent>
         <groupId>org.apache.axis2</groupId>
-        <artifactId>axis2-parent</artifactId>
-        <version>1.7.0-SNAPSHOT</version>
-        <relativePath>../parent/pom.xml</relativePath>
+        <artifactId>axis2</artifactId>
+        <version>1.8.0-SNAPSHOT</version>
+        <relativePath>../../pom.xml</relativePath>
     </parent>
     <artifactId>axis2-jaxws-integration</artifactId>
     <name>Apache Axis2 - JAXWS Integration Tests</name>
@@ -87,6 +87,11 @@
             <scope>test</scope>
         </dependency>
         <dependency>
+            <groupId>org.apache.ws.commons.axiom</groupId>
+            <artifactId>xml-truth</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
             <groupId>log4j</groupId>
             <artifactId>log4j</artifactId>
             <scope>test</scope>
@@ -134,34 +139,27 @@
         </testResources>
         <plugins>
             <plugin>
-                <artifactId>maven-dependency-plugin</artifactId>
+                <groupId>com.github.veithen.alta</groupId>
+                <artifactId>alta-maven-plugin</artifactId>
                 <executions>
                     <execution>
-                        <phase>generate-resources</phase>
                         <goals>
-                            <goal>copy</goal>
+                            <goal>generate-properties</goal>
                         </goals>
                         <configuration>
-                            <artifactItems>
-                                <artifactItem>
+                            <artifacts>
+                                <artifact>
                                     <groupId>javax.xml.bind</groupId>
                                     <artifactId>jaxb-api</artifactId>
-                                    <type>jar</type>
-                                </artifactItem>
-                                <artifactItem>
-                                    <groupId>org.apache.geronimo.specs</groupId>
-                                    <artifactId>geronimo-saaj_1.3_spec</artifactId>
-                                    <type>jar</type>
-                                </artifactItem>
-                                <artifactItem>
+                                </artifact>
+                                <artifact>
                                     <groupId>org.apache.geronimo.specs</groupId>
                                     <artifactId>geronimo-jaxws_2.2_spec</artifactId>
-                                    <type>jar</type>
-                                </artifactItem>
-                            </artifactItems>
-                            <overWrite>true</overWrite>
-                            <outputDirectory>${project.build.directory}/endorsed</outputDirectory>
-                            <stripVersion>true</stripVersion>
+                                </artifact>
+                            </artifacts>
+                            <name>jaxws.bootclasspath</name>
+                            <value>%file%</value>
+                            <separator>${path.separator}</separator>
                         </configuration>
                     </execution>
                 </executions>
@@ -171,11 +169,8 @@
                 <inherited>true</inherited>
                 <configuration>
                     <compilerArgument>
-                        -Xbootclasspath/p:${basedir}/../jaxws-api/target/classes${path.separator}${basedir}/../jws-api/target/classes
+                        -Xbootclasspath/p:${jaxws.bootclasspath}
                     </compilerArgument>
-                    <compilerVersion>1.5</compilerVersion>
-                    <source>1.5</source>
-                    <target>1.5</target>
                 </configuration>
             </plugin>
             <plugin>
@@ -184,21 +179,558 @@
                 <version>${project.version}</version>
                 <executions>
                     <execution>
-                        <phase>generate-test-sources</phase>
                         <goals>
-                            <goal>wsdl2code</goal>
+                            <goal>generate-test-sources</goal>
                         </goals>
                         <configuration>
                             <packageName>server</packageName>
                             <wsdlFile>test-resources/wsdl/echo.wsdl</wsdlFile>
                             <databindingName>adb</databindingName>
                             <generateServerSide>true</generateServerSide>
-                            <namespaceURIs>
-                                <namespaceURI>
+                            <namespaceMappings>
+                                <namespaceMapping>
                                     <uri>http://test</uri>
                                     <packageName>server</packageName>
-                                </namespaceURI>
-                            </namespaceURIs>
+                                </namespaceMapping>
+                            </namespaceMappings>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.axis2</groupId>
+                <artifactId>axis2-repo-maven-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <id>build-repo</id>
+                        <goals>
+                            <goal>create-test-repository</goal>
+                        </goals>
+                        <configuration>
+                            <outputDirectory>${project.build.directory}/repo</outputDirectory>
+                            <modules>addressing</modules>
+                            <axis2xml>test-resources/axis2.xml</axis2xml>
+                            <jaxwsServices>
+                                <jaxwsService>
+                                    <name>XPayloadStringProvider</name>
+                                    <packages>
+                                        <package>org.apache.axis2.jaxws.xmlhttp.provider.payload.string</package>
+                                    </packages>
+                                </jaxwsService>
+                                <jaxwsService>
+                                    <name>XMessageStringProvider</name>
+                                    <packages>
+                                        <package>org.apache.axis2.jaxws.xmlhttp.provider.message.string</package>
+                                    </packages>
+                                </jaxwsService>
+                                <jaxwsService>
+                                    <name>XPayloadSourceProvider</name>
+                                    <packages>
+                                        <package>org.apache.axis2.jaxws.xmlhttp.provider.payload.source</package>
+                                    </packages>
+                                </jaxwsService>
+                                <jaxwsService>
+                                    <name>XMessageSourceProvider</name>
+                                    <packages>
+                                        <package>org.apache.axis2.jaxws.xmlhttp.provider.message.source</package>
+                                    </packages>
+                                </jaxwsService>
+                                <jaxwsService>
+                                    <name>XMessageDataSourceProvider</name>
+                                    <packages>
+                                        <package>org.apache.axis2.jaxws.xmlhttp.provider.message.datasource</package>
+                                    </packages>
+                                </jaxwsService>
+                            </jaxwsServices>
+                        </configuration>
+                    </execution>
+                    <execution>
+                        <id>build-client-repo</id>
+                        <phase>generate-test-resources</phase>
+                        <goals>
+                            <goal>create-test-repository</goal>
+                        </goals>
+                        <configuration>
+                            <outputDirectory>${project.build.directory}/client-repo</outputDirectory>
+                            <modules>addressing</modules>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+            <plugin>
+                <groupId>org.codehaus.mojo</groupId>
+                <artifactId>jaxb2-maven-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <id>xjc-soap11</id>
+                        <goals>
+                            <goal>testXjc</goal>
+                        </goals>
+                        <configuration>
+                            <sourceType>XmlSchema</sourceType>
+                            <testSources>
+                                <testSource>test-resources/xsd/soap11.xsd</testSource>
+                            </testSources>
+                            <outputDirectory>${project.build.directory}/generated-test-sources/jaxb/soap11</outputDirectory>
+                        </configuration>
+                    </execution>
+                    <execution>
+                        <id>xjc-echo</id>
+                        <goals>
+                            <goal>testXjc</goal>
+                        </goals>
+                        <configuration>
+                            <sourceType>XmlSchema</sourceType>
+                            <testSources>
+                                <testSource>test-resources/xsd/echo.xsd</testSource>
+                            </testSources>
+                            <outputDirectory>${project.build.directory}/generated-test-sources/jaxb/echo</outputDirectory>
+                        </configuration>
+                    </execution>
+                    <execution>
+                        <id>xjc-stock1</id>
+                        <goals>
+                            <goal>testXjc</goal>
+                        </goals>
+                        <configuration>
+                            <sourceType>XmlSchema</sourceType>
+                            <testSources>
+                                <testSource>test-resources/xsd/stock1.xsd</testSource>
+                            </testSources>
+                            <outputDirectory>${project.build.directory}/generated-test-sources/jaxb/stock1</outputDirectory>
+                        </configuration>
+                    </execution>
+                    <execution>
+                        <id>xjc-stock2</id>
+                        <goals>
+                            <goal>testXjc</goal>
+                        </goals>
+                        <configuration>
+                            <sourceType>XmlSchema</sourceType>
+                            <testSources>
+                                <testSource>test-resources/xsd/stock2.xsd</testSource>
+                            </testSources>
+                            <outputDirectory>${project.build.directory}/generated-test-sources/jaxb/stock2</outputDirectory>
+                        </configuration>
+                    </execution>
+                    <execution>
+                        <id>xjc-samplemtom</id>
+                        <goals>
+                            <goal>testXjc</goal>
+                        </goals>
+                        <configuration>
+                            <sourceType>XmlSchema</sourceType>
+                            <testSources>
+                                <testSource>test-resources/xsd/samplemtom.xsd</testSource>
+                            </testSources>
+                            <outputDirectory>${project.build.directory}/generated-test-sources/jaxb/samplemtom</outputDirectory>
+                        </configuration>
+                    </execution>
+                    <execution>
+                        <id>xjc-greeterTypes</id>
+                        <goals>
+                            <goal>testXjc</goal>
+                        </goals>
+                        <configuration>
+                            <sourceType>XmlSchema</sourceType>
+                            <testSources>
+                                <testSource>test-resources/xsd/greeterTypes.xsd</testSource>
+                            </testSources>
+                            <outputDirectory>${project.build.directory}/generated-test-sources/jaxb/greeterTypes</outputDirectory>
+                        </configuration>
+                    </execution>
+                    <execution>
+                        <id>xjc-ProxyDocLitWrapped</id>
+                        <goals>
+                            <goal>testXjc</goal>
+                        </goals>
+                        <configuration>
+                            <sourceType>WSDL</sourceType>
+                            <testSources>
+                                <testSource>test-resources/wsdl/ProxyDocLitWrapped.wsdl</testSource>
+                            </testSources>
+                            <packageName>org.test.proxy.doclitwrapped</packageName>
+                            <outputDirectory>${project.build.directory}/generated-test-sources/jaxb/ProxyDocLitWrapped</outputDirectory>
+                        </configuration>
+                    </execution>
+                    <execution>
+                        <id>xjc-AddNumbers</id>
+                        <goals>
+                            <goal>testXjc</goal>
+                        </goals>
+                        <configuration>
+                            <sourceType>WSDL</sourceType>
+                            <testSources>
+                                <testSource>test-resources/wsdl/AddNumbers.wsdl</testSource>
+                            </testSources>
+                            <outputDirectory>${project.build.directory}/generated-test-sources/jaxb/AddNumbers</outputDirectory>
+                        </configuration>
+                    </execution>
+                    <execution>
+                        <id>xjc-samplemtomjpeg</id>
+                        <goals>
+                            <goal>testXjc</goal>
+                        </goals>
+                        <configuration>
+                            <sourceType>WSDL</sourceType>
+                            <testSources>
+                                <testSource>test-resources/wsdl/samplemtomjpeg.wsdl</testSource>
+                            </testSources>
+                            <packageName>org.apache.axis2.jaxws.sample.mtom1</packageName>
+                            <outputDirectory>${project.build.directory}/generated-test-sources/jaxb/samplemtomjpeg</outputDirectory>
+                        </configuration>
+                    </execution>
+                    <execution>
+                        <id>xjc-RPCLit</id>
+                        <goals>
+                            <goal>testXjc</goal>
+                        </goals>
+                        <configuration>
+                            <sourceType>WSDL</sourceType>
+                            <testSources>
+                                <testSource>test-resources/wsdl/RPCLit.wsdl</testSource>
+                            </testSources>
+                            <packageName>org.test.proxy.rpclit</packageName>
+                            <outputDirectory>${project.build.directory}/generated-test-sources/jaxb/RPCLit</outputDirectory>
+                        </configuration>
+                    </execution>
+                    <execution>
+                        <id>xjc-RPCLitSWA</id>
+                        <goals>
+                            <goal>testXjc</goal>
+                        </goals>
+                        <configuration>
+                            <sourceType>WSDL</sourceType>
+                            <testSources>
+                                <testSource>test-resources/wsdl/RPCLitSWA.wsdl</testSource>
+                            </testSources>
+                            <packageName>org.test.proxy.rpclitswa</packageName>
+                            <outputDirectory>${project.build.directory}/generated-test-sources/jaxb/RPCLitSWA</outputDirectory>
+                        </configuration>
+                    </execution>
+                    <execution>
+                        <id>xjc-gorilla_dlw</id>
+                        <goals>
+                            <goal>testXjc</goal>
+                        </goals>
+                        <configuration>
+                            <sourceType>WSDL</sourceType>
+                            <testSources>
+                                <testSource>test/org/apache/axis2/jaxws/proxy/gorilla_dlw/META-INF/gorilla_dlw.wsdl</testSource>
+                            </testSources>
+                            <outputDirectory>${project.build.directory}/generated-test-sources/jaxb/gorilla_dlw</outputDirectory>
+                        </configuration>
+                    </execution>
+                    <execution>
+                        <id>xjc-SOAP12Echo</id>
+                        <goals>
+                            <goal>testXjc</goal>
+                        </goals>
+                        <configuration>
+                            <sourceType>WSDL</sourceType>
+                            <testSources>
+                                <testSource>test-resources/wsdl/SOAP12Echo.wsdl</testSource>
+                            </testSources>
+                            <outputDirectory>${project.build.directory}/generated-test-sources/jaxb/SOAP12Echo</outputDirectory>
+                        </configuration>
+                    </execution>
+                    <execution>
+                        <id>xjc-AddNumbersHandler</id>
+                        <goals>
+                            <goal>testXjc</goal>
+                        </goals>
+                        <configuration>
+                            <sourceType>WSDL</sourceType>
+                            <testSources>
+                                <testSource>test-resources/wsdl/AddNumbersHandler.wsdl</testSource>
+                            </testSources>
+                            <outputDirectory>${project.build.directory}/generated-test-sources/jaxb/AddNumbersHandler</outputDirectory>
+                        </configuration>
+                    </execution>
+                    <execution>
+                        <id>xjc-HeadersHandler</id>
+                        <goals>
+                            <goal>testXjc</goal>
+                        </goals>
+                        <configuration>
+                            <sourceType>WSDL</sourceType>
+                            <testSources>
+                                <testSource>test-resources/wsdl/HeadersHandler.wsdl</testSource>
+                            </testSources>
+                            <outputDirectory>${project.build.directory}/generated-test-sources/jaxb/HeadersHandler</outputDirectory>
+                        </configuration>
+                    </execution>
+                    <execution>
+                        <id>xjc-async_doclitwr</id>
+                        <goals>
+                            <goal>testXjc</goal>
+                        </goals>
+                        <configuration>
+                            <sourceType>WSDL</sourceType>
+                            <testSources>
+                                <testSource>test-resources/wsdl/async_doclitwr.wsdl</testSource>
+                            </testSources>
+                            <outputDirectory>${project.build.directory}/generated-test-sources/jaxb/async_doclitwr</outputDirectory>
+                        </configuration>
+                    </execution>
+                    <execution>
+                        <id>xjc-async_doclitwr2</id>
+                        <goals>
+                            <goal>testXjc</goal>
+                        </goals>
+                        <configuration>
+                            <sourceType>WSDL</sourceType>
+                            <testSources>
+                                <testSource>test-resources/wsdl/async_doclitwr2.wsdl</testSource>
+                            </testSources>
+                            <outputDirectory>${project.build.directory}/generated-test-sources/jaxb/async_doclitwr2</outputDirectory>
+                        </configuration>
+                    </execution>
+                    <execution>
+                        <id>xjc-FaultyWebService</id>
+                        <goals>
+                            <goal>testXjc</goal>
+                        </goals>
+                        <configuration>
+                            <sourceType>WSDL</sourceType>
+                            <testSources>
+                                <testSource>test-resources/wsdl/FaultyWebService.wsdl</testSource>
+                            </testSources>
+                            <outputDirectory>${project.build.directory}/generated-test-sources/jaxb/FaultyWebService</outputDirectory>
+                        </configuration>
+                    </execution>
+                    <execution>
+                        <id>xjc-FaultsService</id>
+                        <goals>
+                            <goal>testXjc</goal>
+                        </goals>
+                        <configuration>
+                            <sourceType>WSDL</sourceType>
+                            <testSources>
+                                <testSource>test-resources/wsdl/FaultsService.wsdl</testSource>
+                            </testSources>
+                            <outputDirectory>${project.build.directory}/generated-test-sources/jaxb/FaultsService</outputDirectory>
+                        </configuration>
+                    </execution>
+                    <execution>
+                        <id>xjc-jaxbsource</id>
+                        <goals>
+                            <goal>testXjc</goal>
+                        </goals>
+                        <configuration>
+                            <sourceType>XmlSchema</sourceType>
+                            <testSources>
+                                <testSource>test-resources/xsd/jaxbsource.xsd</testSource>
+                            </testSources>
+                            <packageName>org.test.dispatch.jaxbsource</packageName>
+                            <outputDirectory>${project.build.directory}/generated-test-sources/jaxb/jaxbsource</outputDirectory>
+                        </configuration>
+                    </execution>
+                    <execution>
+                        <id>xjc-doclit_nonwrap</id>
+                        <goals>
+                            <goal>testXjc</goal>
+                        </goals>
+                        <configuration>
+                            <sourceType>WSDL</sourceType>
+                            <testSources>
+                                <testSource>test-resources/wsdl/doclit_nonwrap.wsdl</testSource>
+                            </testSources>
+                            <outputDirectory>${project.build.directory}/generated-test-sources/jaxb/doclit_nonwrap</outputDirectory>
+                        </configuration>
+                    </execution>
+                    <execution>
+                        <id>xjc-doclitwrap</id>
+                        <goals>
+                            <goal>testXjc</goal>
+                        </goals>
+                        <configuration>
+                            <sourceType>WSDL</sourceType>
+                            <testSources>
+                                <testSource>test-resources/wsdl/doclitwrap.wsdl</testSource>
+                            </testSources>
+                            <outputDirectory>${project.build.directory}/generated-test-sources/jaxb/doclitwrap</outputDirectory>
+                        </configuration>
+                    </execution>
+                    <execution>
+                        <id>xjc-doclitbare</id>
+                        <goals>
+                            <goal>testXjc</goal>
+                        </goals>
+                        <configuration>
+                            <sourceType>WSDL</sourceType>
+                            <testSources>
+                                <testSource>test-resources/wsdl/doclitbare.wsdl</testSource>
+                            </testSources>
+                            <outputDirectory>${project.build.directory}/generated-test-sources/jaxb/doclitbare</outputDirectory>
+                        </configuration>
+                    </execution>
+                    <execution>
+                        <id>xjc-resourceinjection</id>
+                        <goals>
+                            <goal>testXjc</goal>
+                        </goals>
+                        <configuration>
+                            <sourceType>WSDL</sourceType>
+                            <testSources>
+                                <testSource>test-resources/wsdl/resourceinjection.wsdl</testSource>
+                            </testSources>
+                            <outputDirectory>${project.build.directory}/generated-test-sources/jaxb/resourceinjection</outputDirectory>
+                        </configuration>
+                    </execution>
+                    <execution>
+                        <id>xjc-MessageContext</id>
+                        <goals>
+                            <goal>testXjc</goal>
+                        </goals>
+                        <configuration>
+                            <sourceType>WSDL</sourceType>
+                            <testSources>
+                                <testSource>test-resources/wsdl/MessageContext.wsdl</testSource>
+                            </testSources>
+                            <outputDirectory>${project.build.directory}/generated-test-sources/jaxb/MessageContext</outputDirectory>
+                        </configuration>
+                    </execution>
+                    <execution>
+                        <id>xjc-WSDLMultiTests</id>
+                        <goals>
+                            <goal>testXjc</goal>
+                        </goals>
+                        <configuration>
+                            <sourceType>WSDL</sourceType>
+                            <testSources>
+                                <testSource>test-resources/wsdl/WSDLMultiTests.wsdl</testSource>
+                            </testSources>
+                            <packageName>multi</packageName>
+                            <outputDirectory>${project.build.directory}/generated-test-sources/jaxb/WSDLMultiTests</outputDirectory>
+                        </configuration>
+                    </execution>
+                    <execution>
+                        <id>xjc-rpclitenum</id>
+                        <goals>
+                            <goal>testXjc</goal>
+                        </goals>
+                        <configuration>
+                            <sourceType>WSDL</sourceType>
+                            <testSources>
+                                <testSource>test-resources/wsdl/rpclitenum.wsdl</testSource>
+                            </testSources>
+                            <outputDirectory>${project.build.directory}/generated-test-sources/jaxb/rpclitenum</outputDirectory>
+                        </configuration>
+                    </execution>
+                    <execution>
+                        <id>xjc-rpclitstringarray</id>
+                        <goals>
+                            <goal>testXjc</goal>
+                        </goals>
+                        <configuration>
+                            <sourceType>WSDL</sourceType>
+                            <testSources>
+                                <testSource>test-resources/wsdl/rpclitstringarray.wsdl</testSource>
+                            </testSources>
+                            <outputDirectory>${project.build.directory}/generated-test-sources/jaxb/rpclitstringarray</outputDirectory>
+                        </configuration>
+                    </execution>
+                    <execution>
+                        <id>xjc-swamtomservice</id>
+                        <goals>
+                            <goal>testXjc</goal>
+                        </goals>
+                        <configuration>
+                            <sourceType>WSDL</sourceType>
+                            <testSources>
+                                <testSource>test-resources/wsdl/swamtomservice.wsdl</testSource>
+                            </testSources>
+                            <outputDirectory>${project.build.directory}/generated-test-sources/jaxb/swamtomservice</outputDirectory>
+                        </configuration>
+                    </execution>
+                    <execution>
+                        <id>xjc-ProcessDocumentService</id>
+                        <goals>
+                            <goal>testXjc</goal>
+                        </goals>
+                        <configuration>
+                            <sourceType>WSDL</sourceType>
+                            <testSources>
+                                <testSource>test-resources/wsdl/ProcessDocumentService.wsdl</testSource>
+                            </testSources>
+                            <outputDirectory>${project.build.directory}/generated-test-sources/jaxb/ProcessDocumentService</outputDirectory>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+            <plugin>
+                <groupId>org.codehaus.mojo</groupId>
+                <artifactId>jaxws-maven-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <id>wsimport-SOAPActionTest</id>
+                        <goals>
+                            <goal>wsimport-test</goal>
+                        </goals>
+                        <configuration>
+                            <wsdlFiles>
+                                <wsdlFile>${basedir}/src/test/repository/services/BookStoreService/META-INF/SOAPActionTest.wsdl</wsdlFile>
+                            </wsdlFiles>
+                        </configuration>
+                    </execution>
+                    <execution>
+                        <id>wsimport-AnyType</id>
+                        <goals>
+                            <goal>wsimport-test</goal>
+                        </goals>
+                        <configuration>
+                            <wsdlFiles>
+                                <wsdlFile>${basedir}/test/org/apache/axis2/jaxws/anytype/META-INF/AnyType.wsdl</wsdlFile>
+                            </wsdlFiles>
+                            <packageName>org.apache.axis2.jaxws.anytype</packageName>
+                        </configuration>
+                    </execution>
+                    <execution>
+                        <id>wsimport-shapes</id>
+                        <goals>
+                            <goal>wsimport-test</goal>
+                        </goals>
+                        <configuration>
+                            <wsdlFiles>
+                                <wsdlFile>${basedir}/test/org/apache/axis2/jaxws/polymorphic/shape/META-INF/shapes.wsdl</wsdlFile>
+                            </wsdlFiles>
+                        </configuration>
+                    </execution>
+                    <execution>
+                        <id>wsimport-EchoMessage</id>
+                        <goals>
+                            <goal>wsimport-test</goal>
+                        </goals>
+                        <configuration>
+                            <wsdlFiles>
+                                <wsdlFile>${basedir}/test/org/apache/axis2/jaxws/nonanonymous/complextype/META-INF/EchoMessage.wsdl</wsdlFile>
+                            </wsdlFiles>
+                            <packageName>org.apache.axis2.jaxws.nonanonymous.complextype</packageName>
+                        </configuration>
+                    </execution>
+                    <execution>
+                        <id>wsimport-proxy_doclit_unwr</id>
+                        <goals>
+                            <goal>wsimport-test</goal>
+                        </goals>
+                        <configuration>
+                            <wsdlFiles>
+                                <wsdlFile>${basedir}/test/org/apache/axis2/jaxws/proxy/doclitnonwrapped/META-INF/proxy_doclit_unwr.wsdl</wsdlFile>
+                            </wsdlFiles>
+                            <packageName>org.apache.axis2.jaxws.proxy.doclitnonwrapped</packageName>
+                        </configuration>
+                    </execution>
+                    <execution>
+                        <id>wsimport-ProxyDocLitWrapped</id>
+                        <goals>
+                            <goal>wsimport-test</goal>
+                        </goals>
+                        <configuration>
+                            <wsdlFiles>
+                                <wsdlFile>${basedir}/test/org/apache/axis2/jaxws/proxy/doclitwrapped/META-INF/ProxyDocLitWrapped.wsdl</wsdlFile>
+                            </wsdlFiles>
+                            <packageName>org.apache.axis2.jaxws.proxy.doclitwrapped</packageName>
                         </configuration>
                     </execution>
                 </executions>
@@ -208,257 +740,6 @@
                 <artifactId>maven-antrun-plugin</artifactId>
                 <executions>
                     <execution>
-                        <id>gen-ts</id>
-                        <phase>generate-test-sources</phase>
-                        <configuration>
-                            <tasks unless="maven.test.skip">
-                                <!-- Theres got to be a better way to do this -->
-                                <property name="schema.source.dir" value="test-resources/xsd" />
-                                <property name="wsdl.source.dir" value="test-resources/wsdl" />
-                                <property name="schema.output.base.dir" value="target/schema" />
-                                <property name="schema.generated.src.dir" value="${schema.output.base.dir}/src" />
-                                <property name="schema.generated.classes.dir" value="${schema.output.base.dir}/classes" />
-                                <!-- make the dirs -->
-                                <mkdir dir="${schema.output.base.dir}" />
-                                <mkdir dir="${schema.generated.src.dir}" />
-                                <mkdir dir="${schema.generated.classes.dir}" />
-                                <!-- Run JAXB schema compiler with designated schemas -->
-                                <echo>Generating JAX-B classes from XSDs</echo>
-                                <echo>Generating java from soap 11</echo>
-                                <java classname="com.sun.tools.xjc.Driver" fork="true">
-                                    <classpath refid="maven.runtime.classpath" />
-                                    <classpath location="${compiled.classes.dir}" />
-                                    <arg line="-d ${schema.generated.src.dir} -quiet ${schema.source.dir}/soap11.xsd" />
-                                </java>
-                                <echo>Generating java from echo.xsd</echo>
-                                <java classname="com.sun.tools.xjc.Driver" fork="true">
-                                    <classpath refid="maven.runtime.classpath" />
-                                    <classpath location="${compiled.classes.dir}" />
-                                    <arg line="-d ${schema.generated.src.dir} -quiet ${schema.source.dir}/echo.xsd" />
-                                </java>
-                                <echo>Generating java from stock1.xsd</echo>
-                                <java classname="com.sun.tools.xjc.Driver" fork="true">
-                                    <classpath refid="maven.runtime.classpath" />
-                                    <classpath location="${compiled.classes.dir}" />
-                                    <arg line="-d ${schema.generated.src.dir} -quiet ${schema.source.dir}/stock1.xsd" />
-                                </java>
-                                <echo>Generating java from stock2.xsd</echo>
-                                <java classname="com.sun.tools.xjc.Driver" fork="true">
-                                    <classpath refid="maven.runtime.classpath" />
-                                    <classpath location="${compiled.classes.dir}" />
-                                    <arg line="-d ${schema.generated.src.dir} -quiet ${schema.source.dir}/stock2.xsd" />
-                                </java>
-                                <echo>Generating java from samplemtom.xsd</echo>
-                                <java classname="com.sun.tools.xjc.Driver" fork="true">
-                                    <classpath refid="maven.runtime.classpath" />
-                                    <classpath location="${compiled.classes.dir}" />
-                                    <arg line="-d ${schema.generated.src.dir} -quiet ${schema.source.dir}/samplemtom.xsd" />
-                                </java>
-                                <echo>Generating java from greeterTypes.xsd</echo>
-                                <java classname="com.sun.tools.xjc.Driver" fork="true">
-                                    <classpath refid="maven.runtime.classpath" />
-                                    <classpath location="${compiled.classes.dir}" />
-                                    <arg line="-d ${schema.generated.src.dir} -quiet ${schema.source.dir}/greeterTypes.xsd" />
-                                </java>
-                                <echo>Generating java from ProxyDocLitWrapped.wsdl</echo>
-                                <java classname="com.sun.tools.xjc.Driver" fork="true">
-                                    <classpath refid="maven.runtime.classpath" />
-                                    <classpath location="${compiled.classes.dir}" />
-                                    <arg line="-d ${schema.generated.src.dir} -quiet -p org.test.proxy.doclitwrapped -quiet -wsdl ${wsdl.source.dir}/ProxyDocLitWrapped.wsdl" />
-                                </java>
-                                <echo>Generating java from AddNumbers.wsdl</echo>
-                                <java classname="com.sun.tools.xjc.Driver" fork="true">
-                                    <classpath refid="maven.runtime.classpath" />
-                                    <classpath location="${compiled.classes.dir}" />
-                                    <arg line="-d ${schema.generated.src.dir} -quiet -wsdl ${wsdl.source.dir}/AddNumbers.wsdl" />
-                                </java>
-                                <echo>Generating java from ProxyDocLitnonWrapped.wsdl</echo>
-                                <java classname="com.sun.tools.xjc.Driver" fork="true">
-                                    <classpath refid="maven.runtime.classpath" />
-                                    <classpath location="${compiled.classes.dir}" />
-                                    <arg line="-d ${schema.generated.src.dir} -quiet -wsdl ${wsdl.source.dir}/ProxyDocLitnonWrapped.wsdl" />
-                                </java>
-                                <echo>Generating java from samplemtomjpeg.wsdl</echo>
-                                <java classname="com.sun.tools.xjc.Driver" fork="true">
-                                    <classpath refid="maven.runtime.classpath" />
-                                    <classpath location="${compiled.classes.dir}" />
-                                    <arg line="-d ${schema.generated.src.dir} -quiet -wsdl ${wsdl.source.dir}/samplemtomjpeg.wsdl" />
-                                </java>
-                                <echo>Generating java from RPCLit.wsdl</echo>
-                                <java classname="com.sun.tools.xjc.Driver" fork="true">
-                                    <classpath refid="maven.runtime.classpath" />
-                                    <classpath location="${compiled.classes.dir}" />
-                                    <arg line="-d ${schema.generated.src.dir} -p org.test.proxy.rpclit -quiet -wsdl ${wsdl.source.dir}/RPCLit.wsdl" />
-                                </java>
-                                <echo>Generating java from RPCLitSWA.wsdl</echo>
-                                <java classname="com.sun.tools.xjc.Driver" fork="true">
-                                    <classpath refid="maven.runtime.classpath" />
-                                    <classpath location="${compiled.classes.dir}" />
-                                    <arg line="-d ${schema.generated.src.dir} -p org.test.proxy.rpclitswa -quiet -wsdl ${wsdl.source.dir}/RPCLitSWA.wsdl" />
-                                </java>
-                                <echo>Generating java from gorilla_dlw.wsdl</echo>
-                                <java classname="com.sun.tools.xjc.Driver" fork="true">
-                                    <classpath refid="maven.runtime.classpath" />
-                                    <classpath location="${compiled.classes.dir}" />
-                                    <arg line="-d ${schema.generated.src.dir} -quiet -wsdl ${wsdl.source.dir}/gorilla_dlw.wsdl" />
-                                </java>
-                                <echo>Generating java from SOAP12Echo.wsdl</echo>
-                                <java classname="com.sun.tools.xjc.Driver" fork="true">
-                                    <classpath refid="maven.runtime.classpath" />
-                                    <classpath location="${compiled.classes.dir}" />
-                                    <arg line="-d ${schema.generated.src.dir} -quiet -wsdl ${wsdl.source.dir}/SOAP12Echo.wsdl" />
-                                </java>
-                                <echo>Generating java from AddNumbersHandler.wsdl</echo>
-                                <java classname="com.sun.tools.xjc.Driver" fork="true">
-                                    <classpath refid="maven.runtime.classpath" />
-                                    <classpath location="${compiled.classes.dir}" />
-                                    <arg line="-d ${schema.generated.src.dir} -quiet -wsdl ${wsdl.source.dir}/AddNumbersHandler.wsdl" />
-                                </java>
-                                <echo>Generating java from HeadersHandler.wsdl</echo>
-                                <java classname="com.sun.tools.xjc.Driver" fork="true">
-                                    <classpath refid="maven.runtime.classpath" />
-                                    <classpath location="${compiled.classes.dir}" />
-                                    <arg line="-d ${schema.generated.src.dir} -quiet -wsdl ${wsdl.source.dir}/HeadersHandler.wsdl" />
-                                </java>
-                                <echo>Generating java from async_doclitwr.wsdl</echo>
-                                <java classname="com.sun.tools.xjc.Driver" fork="true">
-                                    <classpath refid="maven.runtime.classpath" />
-                                    <classpath location="${compiled.classes.dir}" />
-                                    <arg line="-d ${schema.generated.src.dir} -quiet -wsdl ${wsdl.source.dir}/async_doclitwr.wsdl" />
-                                </java>
-                                <echo>Generating java from async_doclitwr2.wsdl</echo>
-                                <java classname="com.sun.tools.xjc.Driver" fork="true">
-                                    <classpath refid="maven.runtime.classpath" />
-                                    <classpath location="${compiled.classes.dir}" />
-                                    <arg line="-d ${schema.generated.src.dir} -quiet -wsdl ${wsdl.source.dir}/async_doclitwr2.wsdl" />
-                                </java>
-                                <echo>Generating java from FaultyWebService.wsdl</echo>
-                                <java classname="com.sun.tools.xjc.Driver" fork="true">
-                                    <classpath refid="maven.runtime.classpath" />
-                                    <classpath location="${compiled.classes.dir}" />
-                                    <arg line="-d ${schema.generated.src.dir} -quiet -wsdl ${wsdl.source.dir}/FaultyWebService.wsdl" />
-                                </java>
-                                <echo>Generating java from FaultsService.wsdl</echo>
-                                <java classname="com.sun.tools.xjc.Driver" fork="true">
-                                    <classpath refid="maven.runtime.classpath" />
-                                    <classpath location="${compiled.classes.dir}" />
-                                    <arg line="-d ${schema.generated.src.dir} -quiet -wsdl ${wsdl.source.dir}/FaultsService.wsdl" />
-                                </java>
-                                <echo>Generating java from jaxbsource</echo>
-                                <java classname="com.sun.tools.xjc.Driver" fork="true">
-                                    <classpath refid="maven.runtime.classpath" />
-                                    <classpath location="${compiled.classes.dir}" />
-                                    <arg line="-d ${schema.generated.src.dir} -quiet -p org.test.dispatch.jaxbsource ${schema.source.dir}/jaxbsource.xsd" />
-                                </java>
-                                <echo>Generating java from doclit_nonwrap.wsdl for javabean endpoint
-                                    support
-                                </echo>
-                                <java classname="com.sun.tools.xjc.Driver" fork="true">
-                                    <classpath refid="maven.runtime.classpath" />
-                                    <classpath location="${compiled.classes.dir}" />
-                                    <arg line="-d ${schema.generated.src.dir} -quiet -wsdl ${wsdl.source.dir}/doclit_nonwrap.wsdl" />
-                                </java>
-                                <echo>Generating java from doclitwrap.wsdl for javabean endpoint
-                                    support
-                                </echo>
-                                <java classname="com.sun.tools.xjc.Driver" fork="true">
-                                    <classpath refid="maven.runtime.classpath" />
-                                    <classpath location="${compiled.classes.dir}" />
-                                    <arg line="-d ${schema.generated.src.dir} -quiet -wsdl ${wsdl.source.dir}/doclitwrap.wsdl" />
-                                </java>
-                                <echo>Generating java from doclitbare.wsdl for javabean endpoint
-                                    support
-                                </echo>
-                                <java classname="com.sun.tools.xjc.Driver" fork="true">
-                                    <classpath refid="maven.runtime.classpath" />
-                                    <classpath location="${compiled.classes.dir}" />
-                                    <arg line="-d ${schema.generated.src.dir} -quiet -wsdl ${wsdl.source.dir}/doclitbare.wsdl" />
-                                </java>
-                                
-                                <echo>Generating java from EchoMessage.wsdl for javabean endpoint
-                                    support
-                                </echo>
-                                <java classname="com.sun.tools.xjc.Driver" fork="true">
-                                    <classpath refid="maven.runtime.classpath" />
-                                    <classpath location="${compiled.classes.dir}" />
-                                    <arg line="-d ${schema.generated.src.dir} -quiet -wsdl ${wsdl.source.dir}/EchoMessage.wsdl" />
-                                </java>
-                                
-                                <echo>Generating java from resourceinjection.wsdl for javabean
-                                    endpoint Resource Injection support
-                                </echo>
-                                <java classname="com.sun.tools.xjc.Driver" fork="true">
-                                    <classpath refid="maven.runtime.classpath" />
-                                    <classpath location="${compiled.classes.dir}" />
-                                    <arg line="-d ${schema.generated.src.dir} -quiet -wsdl ${wsdl.source.dir}/resourceinjection.wsdl" />
-                                </java>
-                                <echo>Generating java from AnyType.wsdl for javabean endpoint
-                                    AnyType support
-                                </echo>
-                                <java classname="com.sun.tools.xjc.Driver" fork="true">
-                                    <classpath refid="maven.runtime.classpath" />
-                                    <classpath location="${compiled.classes.dir}" />
-                                    <arg line="-d ${schema.generated.src.dir} -quiet -wsdl ${wsdl.source.dir}/AnyType.wsdl" />
-                                </java>
-                                <echo>Generating java from MessageContext.wsdl for message context
-                                    properties support
-                                </echo>
-                                <java classname="com.sun.tools.xjc.Driver" fork="true">
-                                    <classpath refid="maven.runtime.classpath" />
-                                    <classpath location="${compiled.classes.dir}" />
-                                    <arg line="-d ${schema.generated.src.dir} -quiet -wsdl ${wsdl.source.dir}/MessageContext.wsdl" />
-                                </java>
-                                <echo>Generating java from WSDLMultiTests.wsdl</echo>
-                                <java classname="com.sun.tools.xjc.Driver" fork="true">
-                                    <classpath refid="maven.runtime.classpath" />
-                                    <classpath location="${compiled.classes.dir}" />
-                                    <arg line="-d ${schema.generated.src.dir} -quiet -wsdl ${wsdl.source.dir}/WSDLMultiTests.wsdl" />
-                                </java>
-                                <echo>Generating java from Polymorphic shapes.wsdl for javabean
-                                    endpoint support
-                                </echo>
-                                <java classname="com.sun.tools.xjc.Driver" fork="true">
-                                    <classpath refid="maven.runtime.classpath" />
-                                    <classpath location="${compiled.classes.dir}" />
-                                    <arg line="-d ${schema.generated.src.dir} -quiet -wsdl ${wsdl.source.dir}/shapes.wsdl" />
-                                </java>
-                                <echo>Generating java from SOAPActionTest.wsdl</echo>
-                                <java classname="com.sun.tools.xjc.Driver" fork="true">
-                                    <classpath refid="maven.runtime.classpath" />
-                                    <classpath location="${compiled.classes.dir}" />
-                                    <arg line="-d ${schema.generated.src.dir} -quiet -wsdl ${wsdl.source.dir}/SOAPActionTest.wsdl" />
-                                </java>
-                                <echo>Generating java from rpclitenum.wsdl</echo>
-                                <java classname="com.sun.tools.xjc.Driver" fork="true">
-                                    <classpath refid="maven.runtime.classpath" />
-                                    <classpath location="${compiled.classes.dir}" />
-                                    <arg line="-d ${schema.generated.src.dir} -quiet -wsdl ${wsdl.source.dir}/rpclitenum.wsdl" />
-                                </java>
-                                <echo>Generating java from rpclitstringarray.wsdl</echo>
-                                <java classname="com.sun.tools.xjc.Driver" fork="true">
-                                    <classpath refid="maven.runtime.classpath" />
-                                    <classpath location="${compiled.classes.dir}" />
-                                    <arg line="-d ${schema.generated.src.dir} -quiet -wsdl ${wsdl.source.dir}/rpclitstringarray.wsdl" />
-                                </java>
-                                <echo>Generating java from swamtomservice.wsdl</echo>
-                                <java classname="com.sun.tools.xjc.Driver" fork="true">
-                                    <classpath refid="maven.runtime.classpath" />
-                                    <classpath location="${compiled.classes.dir}" />
-                                    <arg line="-d ${schema.generated.src.dir} -quiet -wsdl ${wsdl.source.dir}/swamtomservice.wsdl" />
-                                </java>
-                                <echo>Generating java from ProcessDocumentService.wsdl</echo>
-                                <java classname="com.sun.tools.xjc.Driver" fork="true">
-                                    <classpath refid="maven.runtime.classpath" />
-                                    <classpath location="${compiled.classes.dir}" />
-                                    <arg line="-d ${schema.generated.src.dir} -quiet -wsdl ${wsdl.source.dir}/ProcessDocumentService.wsdl" />
-                                </java>
-                            </tasks>
-                        </configuration>
-                        <goals>
-                            <goal>run</goal>
-                        </goals>
-                    </execution>
-                    <execution>
                         <id>build-repo</id>
                         <phase>test-compile</phase>
                         <configuration>
@@ -467,35 +748,6 @@
                                 <property name="services.dir" value="${repo.dir}/services" />
                                 <property name="servicejars.dir" value="${repo.dir}/servicejars" />
 
-                                <!-- Enable Addressing on the client side -->
-                                <mkdir dir="./target/client-repo/modules/" />
-                                <copy file="../addressing/target/addressing-${project.version}.mar" tofile="./target/client-repo/modules/addressing-${project.version}.mar" />
-
-                                <!-- Enable Addressing on the server side -->
-                                <mkdir dir="${repo.dir}/modules/" />
-                                <copy file="../addressing/target/addressing-${project.version}.mar" tofile="${repo.dir}/modules/addressing-${project.version}.mar" />
-
-                                <!-- ================================================================ -->
-                                <!-- Non-JAXWS services -->
-                                <!-- ================================================================ -->
-
-                                <copy toDir="${services.dir}/EchoService/">
-                                    <fileset dir="target/test-classes">
-                                        <include name="server/**" />
-                                    </fileset>
-                                    <fileset dir="test/server">
-                                        <exclude name="**/*.java" />
-                                    </fileset>
-                                </copy>
-                                <copy toDir="${services.dir}/BookStoreService/">
-                                    <fileset dir="target/test-classes">
-                                        <include name="org/apache/axis2/jaxws/client/soapaction/**" />
-                                    </fileset>
-                                    <fileset dir="test/org/apache/axis2/jaxws/client/soapaction/server">
-                                        <include name="META-INF/**" />
-                                    </fileset>
-                                </copy>
-
                                 <mkdir dir="${servicejars.dir}" />
                                 <!-- ================================================================ -->
                                 <!-- JAXWS services -->
@@ -514,7 +766,7 @@
                                     </fileset>
                                 </copy>
 
-                                <zip destfile="${servicejars.dir}/WSGenService.jar" basedir="${servicejars.dir}/WSGenService" />
+                                <jar destfile="${servicejars.dir}/WSGenService.jar" basedir="${servicejars.dir}/WSGenService" />
                                 <delete dir="${servicejars.dir}/WSGenService" />
 
                                 <copy toDir="${servicejars.dir}/BasicAuthSecurityService/">
@@ -526,7 +778,7 @@
                                     </fileset>
                                 </copy>
 
-                                <zip destfile="${servicejars.dir}/BasicAuthSecurityService.jar" basedir="${servicejars.dir}/BasicAuthSecurityService" />
+                                <jar destfile="${servicejars.dir}/BasicAuthSecurityService.jar" basedir="${servicejars.dir}/BasicAuthSecurityService" />
                                 <delete dir="${servicejars.dir}/BasicAuthSecurityService" />
 
                                 <copy toDir="${servicejars.dir}/StringProviderService/">
@@ -538,7 +790,7 @@
                                     </fileset>
                                 </copy>
 
-                                <zip destfile="${servicejars.dir}/StringProviderService.jar" basedir="${servicejars.dir}/StringProviderService" />
+                                <jar destfile="${servicejars.dir}/StringProviderService.jar" basedir="${servicejars.dir}/StringProviderService" />
                                 <delete dir="${servicejars.dir}/StringProviderService" />
 
                                 <copy toDir="${servicejars.dir}/StringMessageProviderService/">
@@ -550,7 +802,7 @@
                                     </fileset>
                                 </copy>
 
-                                <zip destfile="${servicejars.dir}/StringMessageProviderService.jar" basedir="${servicejars.dir}/StringMessageProviderService" />
+                                <jar destfile="${servicejars.dir}/StringMessageProviderService.jar" basedir="${servicejars.dir}/StringMessageProviderService" />
                                 <delete dir="${servicejars.dir}/StringMessageProviderService" />
 
                                 <copy toDir="${servicejars.dir}/SourceProviderService/">
@@ -562,7 +814,7 @@
                                     </fileset>
                                 </copy>
 
-                                <zip destfile="${servicejars.dir}/SourceProviderService.jar" basedir="${servicejars.dir}/SourceProviderService" />
+                                <jar destfile="${servicejars.dir}/SourceProviderService.jar" basedir="${servicejars.dir}/SourceProviderService" />
                                 <delete dir="${servicejars.dir}/SourceProviderService" />
 
                                 <copy toDir="${servicejars.dir}/SourceMessageProviderService/">
@@ -574,7 +826,7 @@
                                     </fileset>
                                 </copy>
 
-                                <zip destfile="${servicejars.dir}/SourceMessageProviderService.jar" basedir="${servicejars.dir}/SourceMessageProviderService" />
+                                <jar destfile="${servicejars.dir}/SourceMessageProviderService.jar" basedir="${servicejars.dir}/SourceMessageProviderService" />
                                 <delete dir="${servicejars.dir}/SourceMessageProviderService" />
 
                                 <copy toDir="${servicejars.dir}/SoapMessageProviderService/">
@@ -586,7 +838,7 @@
                                     </fileset>
                                 </copy>
 
-                                <zip destfile="${servicejars.dir}/SoapMessageProviderService.jar" basedir="${servicejars.dir}/SoapMessageProviderService" />
+                                <jar destfile="${servicejars.dir}/SoapMessageProviderService.jar" basedir="${servicejars.dir}/SoapMessageProviderService" />
                                 <delete dir="${servicejars.dir}/SoapMessageProviderService" />
 
                                 <copy toDir="${servicejars.dir}/SoapMessageCheckMTOMProviderService/">
@@ -598,7 +850,7 @@
                                     </fileset>
                                 </copy>
 
-                                <zip destfile="${servicejars.dir}/SoapMessageCheckMTOMProviderService.jar" basedir="${servicejars.dir}/SoapMessageCheckMTOMProviderService" />
+                                <jar destfile="${servicejars.dir}/SoapMessageCheckMTOMProviderService.jar" basedir="${servicejars.dir}/SoapMessageCheckMTOMProviderService" />
                                 <delete dir="${servicejars.dir}/SoapMessageCheckMTOMProviderService" />
                                 
                                 <copy toDir="${servicejars.dir}/SoapMessageMUProviderService/">
@@ -610,7 +862,7 @@
                                     </fileset>
                                 </copy>
 
-                                <zip destfile="${servicejars.dir}/SoapMessageMUProviderService.jar" basedir="${servicejars.dir}/SoapMessageMUProviderService" />
+                                <jar destfile="${servicejars.dir}/SoapMessageMUProviderService.jar" basedir="${servicejars.dir}/SoapMessageMUProviderService" />
                                 <delete dir="${servicejars.dir}/SoapMessageMUProviderService" />
 
                                 <copy toDir="${servicejars.dir}/SoapMessageNullProviderService/">
@@ -622,7 +874,7 @@
                                     </fileset>
                                 </copy>
 
-                                <zip destfile="${servicejars.dir}/SoapMessageNullProviderService.jar" basedir="${servicejars.dir}/SoapMessageNullProviderService" />
+                                <jar destfile="${servicejars.dir}/SoapMessageNullProviderService.jar" basedir="${servicejars.dir}/SoapMessageNullProviderService" />
                                 <delete dir="${servicejars.dir}/SoapMessageNullProviderService" />
 
                                 <copy toDir="${servicejars.dir}/JAXBProviderService/">
@@ -632,12 +884,12 @@
                                     <fileset dir="test/org/apache/axis2/jaxws/provider/jaxb">
                                         <include name="META-INF/**" />
                                     </fileset>
-                                    <fileset dir="target/schema/classes">
+                                    <fileset dir="target/test-classes">
                                         <include name="org/test/mtom/**" />
                                     </fileset>
                                 </copy>
 
-                                <zip destfile="${servicejars.dir}/JAXBProviderService.jar" basedir="${servicejars.dir}/JAXBProviderService" />
+                                <jar destfile="${servicejars.dir}/JAXBProviderService.jar" basedir="${servicejars.dir}/JAXBProviderService" />
                                 <delete dir="${servicejars.dir}/JAXBProviderService" />
 
                                 <copy toDir="${servicejars.dir}/SendImageService/">
@@ -647,12 +899,12 @@
                                     <fileset dir="test/org/apache/axis2/jaxws/sample/mtom1">
                                         <include name="META-INF/**" />
                                     </fileset>
-                                    <fileset dir="target/schema/classes">
+                                    <fileset dir="target/test-classes">
                                         <include name="org/apache/axis2/jaxws/sample/mtom1/**" />
                                     </fileset>
                                 </copy>
 
-                                <zip destfile="${servicejars.dir}/SendImageService.jar" basedir="${servicejars.dir}/SendImageService" />
+                                <jar destfile="${servicejars.dir}/SendImageService.jar" basedir="${servicejars.dir}/SendImageService" />
                                 <delete dir="${servicejars.dir}/SendImageService" />
 
                                 <copy toDir="${servicejars.dir}/SOAP12Service/">
@@ -664,7 +916,7 @@
                                     </fileset>
                                 </copy>
 
-                                <zip destfile="${servicejars.dir}/SOAP12Service.jar" basedir="${servicejars.dir}/SOAP12Service" />
+                                <jar destfile="${servicejars.dir}/SOAP12Service.jar" basedir="${servicejars.dir}/SOAP12Service" />
                                 <delete dir="${servicejars.dir}/SOAP12Service" />
 
 
@@ -677,7 +929,7 @@
                                     </fileset>
                                 </copy>
 
-                                <zip destfile="${servicejars.dir}/SWAMTOMService.jar" basedir="${servicejars.dir}/SWAMTOMService" />
+                                <jar destfile="${servicejars.dir}/SWAMTOMService.jar" basedir="${servicejars.dir}/SWAMTOMService" />
                                 <delete dir="${servicejars.dir}/SWAMTOMService" />
                                 <!-- ================================================================ -->
                                 <!-- Proxy endpoint Service Samples -->
@@ -691,7 +943,7 @@
                                     </fileset>
                                 </copy>
 
-                                <zip destfile="${servicejars.dir}/ProxyDocLitWrapped.jar" basedir="${servicejars.dir}/ProxyDocLitWrapped" />
+                                <jar destfile="${servicejars.dir}/ProxyDocLitWrapped.jar" basedir="${servicejars.dir}/ProxyDocLitWrapped" />
                                 <delete dir="${servicejars.dir}/ProxyDocLitWrapped" />
 
                                 <copy toDir="${servicejars.dir}/ProxyDocLitnonWrapped/">
@@ -703,7 +955,7 @@
                                     </fileset>
                                 </copy>
 
-                                <zip destfile="${servicejars.dir}/ProxyDocLitnonWrapped.jar" basedir="${servicejars.dir}/ProxyDocLitnonWrapped" />
+                                <jar destfile="${servicejars.dir}/ProxyDocLitnonWrapped.jar" basedir="${servicejars.dir}/ProxyDocLitnonWrapped" />
                                 <delete dir="${servicejars.dir}/ProxyDocLitnonWrapped" />
 
                                 <copy toDir="${servicejars.dir}/RPCLit/">
@@ -715,7 +967,7 @@
                                     </fileset>
                                 </copy>
 
-                                <zip destfile="${servicejars.dir}/RPCLit.jar" basedir="${servicejars.dir}/RPCLit" />
+                                <jar destfile="${servicejars.dir}/RPCLit.jar" basedir="${servicejars.dir}/RPCLit" />
                                 <delete dir="${servicejars.dir}/RPCLit" />
 
                                 <copy toDir="${servicejars.dir}/RPCLitSWA/">
@@ -727,7 +979,7 @@
                                     </fileset>
                                 </copy>
 
-                                <zip destfile="${servicejars.dir}/RPCLitSWA.jar" basedir="${servicejars.dir}/RPCLitSWA" />
+                                <jar destfile="${servicejars.dir}/RPCLitSWA.jar" basedir="${servicejars.dir}/RPCLitSWA" />
                                 <delete dir="${servicejars.dir}/RPCLitSWA" />
 
                                 <copy toDir="${servicejars.dir}/AddressingProvider/">
@@ -739,7 +991,7 @@
                                     </fileset>
                                 </copy>
 
-                                <zip destfile="${servicejars.dir}/AddressingProvider.jar" basedir="${servicejars.dir}/AddressingProvider" />
+                                <jar destfile="${servicejars.dir}/AddressingProvider.jar" basedir="${servicejars.dir}/AddressingProvider" />
                                 <delete dir="${servicejars.dir}/AddressingProvider" />
 
                                 <copy toDir="${servicejars.dir}/SOAP12EchoService/">
@@ -751,7 +1003,7 @@
                                     </fileset>
                                 </copy>
 
-                                <zip destfile="${servicejars.dir}/SOAP12EchoService.jar" basedir="${servicejars.dir}/SOAP12EchoService" />
+                                <jar destfile="${servicejars.dir}/SOAP12EchoService.jar" basedir="${servicejars.dir}/SOAP12EchoService" />
                                 <delete dir="${servicejars.dir}/SOAP12EchoService" />
 
                                 <copy toDir="${servicejars.dir}/gorilla_dlw/">
@@ -763,73 +1015,10 @@
                                     </fileset>
                                 </copy>
 
-                                <zip destfile="${servicejars.dir}/gorilla_dlw.jar" basedir="${servicejars.dir}/gorilla_dlw" />
+                                <jar destfile="${servicejars.dir}/gorilla_dlw.jar" basedir="${servicejars.dir}/gorilla_dlw" />
                                 <delete dir="${servicejars.dir}/gorilla_dlw" />
 
                                 <!-- ================================================================ -->
-                                <!-- XML HTTP Tests -->
-                                <!-- ================================================================ -->
-                                <copy toDir="${servicejars.dir}/XPayloadStringProvider/">
-                                    <fileset dir="target/test-classes">
-                                        <include name="org/apache/axis2/jaxws/xmlhttp/provider/payload/string/*.class" />
-                                    </fileset>
-                                    <fileset dir="test/org/apache/axis2/jaxws/xmlhttp/provider/payload/string">
-                                        <include name="META-INF/**" />
-                                    </fileset>
-                                </copy>
-
-                                <zip destfile="${servicejars.dir}/XPayloadStringProvider.jar" basedir="${servicejars.dir}/XPayloadStringProvider" />
-                                <delete dir="${servicejars.dir}/XPayloadStringProvider" />
-
-                                <copy toDir="${servicejars.dir}/XMessageStringProvider/">
-                                    <fileset dir="target/test-classes">
-                                        <include name="org/apache/axis2/jaxws/xmlhttp/provider/message/string/*.class" />
-                                    </fileset>
-                                    <fileset dir="test/org/apache/axis2/jaxws/xmlhttp/provider/message/string">
-                                        <include name="META-INF/**" />
-                                    </fileset>
-                                </copy>
-
-                                <zip destfile="${servicejars.dir}/XMessageStringProvider.jar" basedir="${servicejars.dir}/XMessageStringProvider" />
-                                <delete dir="${servicejars.dir}/XMessageStringProvider" />
-
-                                <copy toDir="${servicejars.dir}/XPayloadSourceProvider/">
-                                    <fileset dir="target/test-classes">
-                                        <include name="org/apache/axis2/jaxws/xmlhttp/provider/payload/source/*.class" />
-                                    </fileset>
-                                    <fileset dir="test/org/apache/axis2/jaxws/xmlhttp/provider/payload/source">
-                                        <include name="META-INF/**" />
-                                    </fileset>
-                                </copy>
-
-                                <zip destfile="${servicejars.dir}/XPayloadSourceProvider.jar" basedir="${servicejars.dir}/XPayloadSourceProvider" />
-                                <delete dir="${servicejars.dir}/XPayloadSourceProvider" />
-
-                                <copy toDir="${servicejars.dir}/XMessageSourceProvider/">
-                                    <fileset dir="target/test-classes">
-                                        <include name="org/apache/axis2/jaxws/xmlhttp/provider/message/source/*.class" />
-                                    </fileset>
-                                    <fileset dir="test/org/apache/axis2/jaxws/xmlhttp/provider/message/source">
-                                        <include name="META-INF/**" />
-                                    </fileset>
-                                </copy>
-
-                                <zip destfile="${servicejars.dir}/XMessageSourceProvider.jar" basedir="${servicejars.dir}/XMessageSourceProvider" />
-                                <delete dir="${servicejars.dir}/XMessageSourceProvider" />
-
-                                <copy toDir="${servicejars.dir}/XMessageDataSourceProvider/">
-                                    <fileset dir="target/test-classes">
-                                        <include name="org/apache/axis2/jaxws/xmlhttp/provider/message/datasource/*.class" />
-                                    </fileset>
-                                    <fileset dir="test/org/apache/axis2/jaxws/xmlhttp/provider/message/datasource">
-                                        <include name="META-INF/**" />
-                                    </fileset>
-                                </copy>
-
-                                <zip destfile="${servicejars.dir}/XMessageDataSourceProvider.jar" basedir="${servicejars.dir}/XMessageDataSourceProvider" />
-                                <delete dir="${servicejars.dir}/XMessageDataSourceProvider" />
-
-                                <!-- ================================================================ -->
                                 <!-- Java Bean Endpoint Samples -->
                                 <!-- ================================================================ -->
                                 <copy toDir="${servicejars.dir}/AddressBookService/">
@@ -840,7 +1029,7 @@
                                         <include name="META-INF/**" />
                                     </fileset>
                                 </copy>
-                                <zip destfile="${servicejars.dir}/AddressBookService.jar" basedir="${servicejars.dir}/AddressBookService" />
+                                <jar destfile="${servicejars.dir}/AddressBookService.jar" basedir="${servicejars.dir}/AddressBookService" />
                                 <delete dir="${servicejars.dir}/AddressBookService" />
 
 
@@ -850,20 +1039,15 @@
                                         <include name="org/apache/axis2/jaxws/type_substitution/jaxws/*" />
                                     </fileset>
                                 </copy>
-                                <zip destfile="${servicejars.dir}/AppleFinderService.jar" basedir="${servicejars.dir}/AppleFinderService" />
+                                <jar destfile="${servicejars.dir}/AppleFinderService.jar" basedir="${servicejars.dir}/AppleFinderService" />
                                 <delete dir="${servicejars.dir}/AppleFinderService" />
 
                                 <copy toDir="${servicejars.dir}/MtomSampleService/">
                                     <fileset dir="target/test-classes">
                                         <include name="org/apache/axis2/jaxws/sample/mtom/**" />
                                     </fileset>
-
-                                    <fileset dir="test/org/apache/axis2/jaxws/sample/mtom">
-                                        <include name="META-INF/**" />
-                                    </fileset>
-
                                 </copy>
-                                <zip destfile="${servicejars.dir}/MtomSampleService.jar" basedir="${servicejars.dir}/MtomSampleService" />
+                                <jar destfile="${servicejars.dir}/MtomSampleService.jar" basedir="${servicejars.dir}/MtomSampleService" />
                                 <delete dir="${servicejars.dir}/MtomSampleService" />
                                 <copy toDir="${servicejars.dir}/DocLitNonWrapService/">
                                     <fileset dir="target/test-classes">
@@ -873,7 +1057,7 @@
                                         <include name="META-INF/**" />
                                     </fileset>
                                 </copy>
-                                <zip destfile="${servicejars.dir}/DocLitNonWrapService.jar" basedir="${servicejars.dir}/DocLitNonWrapService" />
+                                <jar destfile="${servicejars.dir}/DocLitNonWrapService.jar" basedir="${servicejars.dir}/DocLitNonWrapService" />
                                 <delete dir="${servicejars.dir}/DocLitNonWrapService" />
                                 <copy toDir="${servicejars.dir}/DocLitWrapService/">
                                     <fileset dir="target/test-classes">
@@ -883,7 +1067,7 @@
                                         <include name="META-INF/**" />
                                     </fileset>
                                 </copy>
-                                <zip destfile="${servicejars.dir}/DocLitWrapService.jar" basedir="${servicejars.dir}/DocLitWrapService" />
+                                <jar destfile="${servicejars.dir}/DocLitWrapService.jar" basedir="${servicejars.dir}/DocLitWrapService" />
                                 <delete dir="${servicejars.dir}/DocLitWrapService" />
                                 <copy toDir="${servicejars.dir}/AddNumbersService/">
                                     <fileset dir="target/test-classes">
@@ -893,7 +1077,7 @@
                                         <include name="META-INF/**" />
                                     </fileset>
                                 </copy>
-                                <zip destfile="${servicejars.dir}/AddNumbersService.jar" basedir="${servicejars.dir}/AddNumbersService" />
+                                <jar destfile="${servicejars.dir}/AddNumbersService.jar" basedir="${servicejars.dir}/AddNumbersService" />
                                 <delete dir="${servicejars.dir}/AddNumbersService" />
                                 <copy toDir="${servicejars.dir}/AddNumbersHandlerService/">
                                     <fileset dir="target/test-classes">
@@ -903,7 +1087,7 @@
                                         <include name="META-INF/**" />
                                     </fileset>
                                 </copy>
-                                <zip destfile="${servicejars.dir}/AddNumbersHandlerService.jar" basedir="${servicejars.dir}/AddNumbersHandlerService" />
+                                <jar destfile="${servicejars.dir}/AddNumbersHandlerService.jar" basedir="${servicejars.dir}/AddNumbersHandlerService" />
                                 <delete dir="${servicejars.dir}/AddNumbersHandlerService" />
                                 <copy toDir="${servicejars.dir}/HeadersHandlerService/">
                                     <fileset dir="target/test-classes">
@@ -913,7 +1097,7 @@
                                         <include name="META-INF/**" />
                                     </fileset>
                                 </copy>
-                                <zip destfile="${servicejars.dir}/HeadersHandlerService.jar" basedir="${servicejars.dir}/HeadersHandlerService" />
+                                <jar destfile="${servicejars.dir}/HeadersHandlerService.jar" basedir="${servicejars.dir}/HeadersHandlerService" />
                                 <delete dir="${servicejars.dir}/HeadersHandlerService" />
                                 <copy toDir="${servicejars.dir}/GreeterService/">
                                     <fileset dir="target/test-classes">
@@ -924,19 +1108,16 @@
                                     </fileset>
                                 </copy>
 
-                                <zip destfile="${servicejars.dir}/GreeterService.jar" basedir="${servicejars.dir}/GreeterService" />
+                                <jar destfile="${servicejars.dir}/GreeterService.jar" basedir="${servicejars.dir}/GreeterService" />
                                 <delete dir="${servicejars.dir}/GreeterService" />
                                 
                                 <copy toDir="${servicejars.dir}/GenericService/">
                                     <fileset dir="target/test-classes">
                                         <include name="org/apache/axis2/jaxws/sample/dlwminArrays/**" />
                                     </fileset>
-                                    <fileset dir="test/org/apache/axis2/jaxws/sample/dlwminArrays">
-                                        <include name="META-INF/**" />
-                                    </fileset>
                                 </copy>
 
-                                <zip destfile="${servicejars.dir}/GenericService.jar" basedir="${servicejars.dir}/GenericService" />
+                                <jar destfile="${servicejars.dir}/GenericService.jar" basedir="${servicejars.dir}/GenericService" />
                                 <delete dir="${servicejars.dir}/GenericService" />
 
                                 <copy toDir="${servicejars.dir}/AsyncService/">
@@ -948,7 +1129,7 @@
                                     </fileset>
                                 </copy>
 
-                                <zip destfile="${servicejars.dir}/AsyncService.jar" basedir="${servicejars.dir}/AsyncService" />
+                                <jar destfile="${servicejars.dir}/AsyncService.jar" basedir="${servicejars.dir}/AsyncService" />
                                 <delete dir="${servicejars.dir}/AsyncService" />
 
                                 <copy toDir="${servicejars.dir}/AsyncService2/">
@@ -960,7 +1141,7 @@
                                     </fileset>
                                 </copy>
 
-                                <zip destfile="${servicejars.dir}/AsyncService2.jar" basedir="${servicejars.dir}/AsyncService2" />
+                                <jar destfile="${servicejars.dir}/AsyncService2.jar" basedir="${servicejars.dir}/AsyncService2" />
                                 <delete dir="${servicejars.dir}/AsyncService2" />
 
                                 <copy toDir="${servicejars.dir}/FaultyWebServiceService/">
@@ -972,7 +1153,7 @@
                                     </fileset>
                                 </copy>
 
-                                <zip destfile="${servicejars.dir}/FaultyWebServiceService.jar" basedir="${servicejars.dir}/FaultyWebServiceService" />
+                                <jar destfile="${servicejars.dir}/FaultyWebServiceService.jar" basedir="${servicejars.dir}/FaultyWebServiceService" />
                                 <delete dir="${servicejars.dir}/FaultyWebServiceService" />
 
                                 <copy toDir="${servicejars.dir}/FaultsService/">
@@ -984,7 +1165,7 @@
                                     </fileset>
                                 </copy>
 
-                                <zip destfile="${servicejars.dir}/FaultsService.jar" basedir="${servicejars.dir}/FaultsService" />
+                                <jar destfile="${servicejars.dir}/FaultsService.jar" basedir="${servicejars.dir}/FaultsService" />
                                 <delete dir="${servicejars.dir}/FaultsService" />
 
                                 <copy toDir="${servicejars.dir}/BareDocLitService/">
@@ -996,7 +1177,7 @@
                                     </fileset>
                                 </copy>
 
-                                <zip destfile="${servicejars.dir}/BareDocLitService.jar" basedir="${servicejars.dir}/BareDocLitService" />
+                                <jar destfile="${servicejars.dir}/BareDocLitService.jar" basedir="${servicejars.dir}/BareDocLitService" />
                                 <delete dir="${servicejars.dir}/BareDocLitService" />
 
                                 <copy toDir="${servicejars.dir}/BareDocLitNoArgService/">
@@ -1008,7 +1189,7 @@
                                     </fileset>
                                 </copy>
 
-                                <zip destfile="${servicejars.dir}/BareDocLitNoArgService.jar" basedir="${servicejars.dir}/BareDocLitNoArgService" />
+                                <jar destfile="${servicejars.dir}/BareDocLitNoArgService.jar" basedir="${servicejars.dir}/BareDocLitNoArgService" />
                                 <delete dir="${servicejars.dir}/BareDocLitNoArgService" />
 
                                 <copy toDir="${servicejars.dir}/EchoMessageService/">
@@ -1020,7 +1201,7 @@
                                     </fileset>
                                 </copy>
 
-                                <zip destfile="${servicejars.dir}/EchoMessageService.jar" basedir="${servicejars.dir}/EchoMessageService" />
+                                <jar destfile="${servicejars.dir}/EchoMessageService.jar" basedir="${servicejars.dir}/EchoMessageService" />
                                 <delete dir="${servicejars.dir}/EchoMessageService" />
 
                                 <copy toDir="${servicejars.dir}/ResourceInjectionService/">
@@ -1032,7 +1213,7 @@
                                     </fileset>
                                 </copy>
 
-                                <zip destfile="${servicejars.dir}/ResourceInjectionService.jar" basedir="${servicejars.dir}/ResourceInjectionService" />
+                                <jar destfile="${servicejars.dir}/ResourceInjectionService.jar" basedir="${servicejars.dir}/ResourceInjectionService" />
                                 <delete dir="${servicejars.dir}/ResourceInjectionService" />
 
                                 <copy toDir="${servicejars.dir}/AnyTypeMessageService/">
@@ -1044,7 +1225,7 @@
                                     </fileset>
                                 </copy>
 
-                                <zip destfile="${servicejars.dir}/AnyTypeMessageService.jar" basedir="${servicejars.dir}/AnyTypeMessageService" />
+                                <jar destfile="${servicejars.dir}/AnyTypeMessageService.jar" basedir="${servicejars.dir}/AnyTypeMessageService" />
                                 <delete dir="${servicejars.dir}/AnyTypeMessageService" />
 
                                 <copy toDir="${servicejars.dir}/MessageContextService/">
@@ -1056,7 +1237,7 @@
                                     </fileset>
                                 </copy>
 
-                                <zip destfile="${servicejars.dir}/MessageContextService.jar" basedir="${servicejars.dir}/MessageContextService" />
+                                <jar destfile="${servicejars.dir}/MessageContextService.jar" basedir="${servicejars.dir}/MessageContextService" />
                                 <delete dir="${servicejars.dir}/MessageContextService" />
 
                                 <copy toDir="${servicejars.dir}/PolymorphicShapeService/">
@@ -1068,7 +1249,7 @@
                                     </fileset>
                                 </copy>
 
-                                <zip destfile="${servicejars.dir}/PolymorphicShapeService.jar" basedir="${servicejars.dir}/PolymorphicShapeService" />
+                                <jar destfile="${servicejars.dir}/PolymorphicShapeService.jar" basedir="${servicejars.dir}/PolymorphicShapeService" />
                                 <delete dir="${servicejars.dir}/PolymorphicShapeService" />
 
                                 <copy toDir="${servicejars.dir}/RPCLitEnumService/">
@@ -1080,7 +1261,7 @@
                                     </fileset>
                                 </copy>
 
-                                <zip destfile="${servicejars.dir}/RPCLitEnumService.jar" basedir="${servicejars.dir}/RPCLitEnumService" />
+                                <jar destfile="${servicejars.dir}/RPCLitEnumService.jar" basedir="${servicejars.dir}/RPCLitEnumService" />
                                 <delete dir="${servicejars.dir}/RPCLitEnumService" />
 
                                 <copy toDir="${servicejars.dir}/RPCLitStringArrayService/">
@@ -1093,7 +1274,7 @@
                                     </fileset>
                                 </copy>
 
-                                <zip destfile="${servicejars.dir}/RPCLitStringArrayService.jar" basedir="${servicejars.dir}/RPCLitStringArrayService" />
+                                <jar destfile="${servicejars.dir}/RPCLitStringArrayService.jar" basedir="${servicejars.dir}/RPCLitStringArrayService" />
                                 <delete dir="${servicejars.dir}/RPCLitStringArrayService" />
 
 
@@ -1106,7 +1287,7 @@
                                     </fileset>
                                 </copy>
 
-                                <zip destfile="${servicejars.dir}/BareDocLitMinService.jar" basedir="${servicejars.dir}/BareDocLitMinService" />
+                                <jar destfile="${servicejars.dir}/BareDocLitMinService.jar" basedir="${servicejars.dir}/BareDocLitMinService" />
                                 <delete dir="${servicejars.dir}/BareDocLitMinService" />
 
                                 <copy toDir="${servicejars.dir}/StringListService/">
@@ -1117,94 +1298,85 @@
                                         <include name="META-INF/**" />
                                     </fileset>
                                 </copy>
-                                <zip destfile="${servicejars.dir}/StringListService.jar" basedir="${servicejars.dir}/StringListService" />
+                                <jar destfile="${servicejars.dir}/StringListService.jar" basedir="${servicejars.dir}/StringListService" />
                                 <delete dir="${servicejars.dir}/StringListService" />
                                 
-								<copy toDir="${servicejars.dir}/SOAPBindingProviderService/">
-									<fileset dir="target/test-classes">
-									   <include name="org/apache/axis2/jaxws/provider/soapbinding/SOAPBindingProvider**" />
-									</fileset>
-									<fileset dir="test/org/apache/axis2/jaxws/provider/soapbinding">
-									   <include name="META-INF/**" />
-									</fileset>
-								</copy>
-								<zip destfile="${servicejars.dir}/SOAPBindingProviderService.jar" basedir="${servicejars.dir}/SOAPBindingProviderService" />
-						        
-						        <delete dir="${servicejars.dir}/SOAPBindingProviderService" />
-						        
-								<copy toDir="${servicejars.dir}/SOAPBindingStringProviderService/">
-									<fileset dir="target/test-classes">
-									   <include name="org/apache/axis2/jaxws/provider/soapbinding/string/**" />
-									</fileset>
-									<fileset dir="test/org/apache/axis2/jaxws/provider/soapbinding/string">
-									   <include name="META-INF/**" />
-									</fileset>
-								</copy>
-								
-								<zip destfile="${servicejars.dir}/SOAPBindingStringProviderService.jar" basedir="${servicejars.dir}/SOAPBindingStringProviderService" />
-						        <delete dir="${servicejars.dir}/SOAPBindingStringProviderService" />
-						        
-								<copy toDir="${servicejars.dir}/SoapMessageProviderService/">
-									<fileset dir="target/test-classes">
-									   <include name="org/apache/axis2/jaxws/provider/soapbinding/soapmsg/**" />
-									</fileset>
-									<fileset dir="test/org/apache/axis2/jaxws/provider/soapbinding/soapmsg">
-									   <include name="META-INF/**" />
-									</fileset>
-								</copy>
-								<zip destfile="${servicejars.dir}/SoapMessageProviderService.jar" basedir="${servicejars.dir}/SoapMessageProviderService" />
-						        <delete dir="${servicejars.dir}/SoapMessageProviderService" />
-						        
-								<copy toDir="${servicejars.dir}/HandlerHeaderService/">
-									<fileset dir="target/test-classes">
-									   <include name="org/apache/axis2/jaxws/handler/header/**" />
-									</fileset>
-									<fileset dir="test/org/apache/axis2/jaxws/handler/header">
-									   <include name="META-INF/**" />
-									   <include name="handler.xml" />			   
-									</fileset>
-									
-								</copy>	
-								<!-- We have to explicitly copy the xml file refered to by the client interface HandlerChain annotation -->
-								<copy toDir="target/test-classes/">
-									<fileset dir="test">
-										<include name="org/apache/axis2/jaxws/handler/header/handler.xml" />
-									</fileset>
-								</copy>
-								
-								<zip destfile="${servicejars.dir}/HandlerHeaderService.jar" basedir="${servicejars.dir}/HandlerHeaderService" />
-								
-								<delete dir="${servicejars.dir}/HandlerHeaderService" />
-								
-								<copy toDir="${servicejars.dir}/ProcessDocumentService/">
-									<fileset dir="target/test-classes">
-									   <include name="org/apache/axis2/jaxws/sample/mtomfeature/**" />
-									</fileset>
-									<fileset dir="test/org/apache/axis2/jaxws/sample/mtomfeature/">
-									   <include name="META-INF/**" />
-									</fileset>
-								</copy>
-								<zip destfile="${servicejars.dir}/ProcessDocumentService.jar" basedir="${servicejars.dir}/ProcessDocumentService" />
-								
-								<delete dir="${servicejars.dir}/ProcessDocumentService" />
-								
+                                <copy toDir="${servicejars.dir}/SOAPBindingProviderService/">
+                                    <fileset dir="target/test-classes">
+                                       <include name="org/apache/axis2/jaxws/provider/soapbinding/SOAPBindingProvider**" />
+                                    </fileset>
+                                </copy>
+                                <jar destfile="${servicejars.dir}/SOAPBindingProviderService.jar" basedir="${servicejars.dir}/SOAPBindingProviderService" />
+                                
+                                <delete dir="${servicejars.dir}/SOAPBindingProviderService" />
+                                
+                                <copy toDir="${servicejars.dir}/SOAPBindingStringProviderService/">
+                                    <fileset dir="target/test-classes">
+                                       <include name="org/apache/axis2/jaxws/provider/soapbinding/string/**" />
+                                    </fileset>
+                                </copy>
+                                
+                                <jar destfile="${servicejars.dir}/SOAPBindingStringProviderService.jar" basedir="${servicejars.dir}/SOAPBindingStringProviderService" />
+                                <delete dir="${servicejars.dir}/SOAPBindingStringProviderService" />
+                                
+                                <copy toDir="${servicejars.dir}/SoapMessageProviderService/">
+                                    <fileset dir="target/test-classes">
+                                       <include name="org/apache/axis2/jaxws/provider/soapbinding/soapmsg/**" />
+                                    </fileset>
+                                </copy>
+                                <jar destfile="${servicejars.dir}/SoapMessageProviderService.jar" basedir="${servicejars.dir}/SoapMessageProviderService" />
+                                <delete dir="${servicejars.dir}/SoapMessageProviderService" />
+                                
+                                <copy toDir="${servicejars.dir}/HandlerHeaderService/">
+                                    <fileset dir="target/test-classes">
+                                       <include name="org/apache/axis2/jaxws/handler/header/**" />
+                                    </fileset>
+                                    <fileset dir="test/org/apache/axis2/jaxws/handler/header">
+                                       <include name="META-INF/**" />
+                                       <include name="handler.xml" />               
+                                    </fileset>
+                                    
+                                </copy>    
+                                <!-- We have to explicitly copy the xml file refered to by the client interface HandlerChain annotation -->
+                                <copy toDir="target/test-classes/">
+                                    <fileset dir="test">
+                                        <include name="org/apache/axis2/jaxws/handler/header/handler.xml" />
+                                    </fileset>
+                                </copy>
+                                
+                                <jar destfile="${servicejars.dir}/HandlerHeaderService.jar" basedir="${servicejars.dir}/HandlerHeaderService" />
+                                
+                                <delete dir="${servicejars.dir}/HandlerHeaderService" />
+                                
+                                <copy toDir="${servicejars.dir}/ProcessDocumentService/">
+                                    <fileset dir="target/test-classes">
+                                       <include name="org/apache/axis2/jaxws/sample/mtomfeature/**" />
+                                    </fileset>
+                                    <fileset dir="test/org/apache/axis2/jaxws/sample/mtomfeature/">
+                                       <include name="META-INF/**" />
+                                    </fileset>
+                                </copy>
+                                <jar destfile="${servicejars.dir}/ProcessDocumentService.jar" basedir="${servicejars.dir}/ProcessDocumentService" />
+                                
+                                <delete dir="${servicejars.dir}/ProcessDocumentService" />
+                                
                                 <copy toDir="${servicejars.dir}/JAXBStringService/">
                                     <fileset dir="target/test-classes">
                                         <include name="org/apache/axis2/jaxws/jaxb/string/**" />
                                     </fileset>
                                 </copy>
 
-                                <zip destfile="${servicejars.dir}/JAXBStringService.jar" basedir="${servicejars.dir}/JAXBStringService" />
+                                <jar destfile="${servicejars.dir}/JAXBStringService.jar" basedir="${servicejars.dir}/JAXBStringService" />
                                         
                                 <delete dir="${servicejars.dir}/JAXBStringService" />
                                 
                                 <copy toDir="${servicejars.dir}/OMProviderService/">
-									<fileset dir="target/test-classes">
-									   <include name="org/apache/axis2/jaxws/provider/om/**" />
-									</fileset>
-								</copy>
-								<zip destfile="${servicejars.dir}/OMProviderService.jar" basedir="${servicejars.dir}/OMProviderService" />
-						        <delete dir="${servicejars.dir}/OMProviderService" />
+                                    <fileset dir="target/test-classes">
+                                       <include name="org/apache/axis2/jaxws/provider/om/**" />
+                                    </fileset>
+                                </copy>
+                                <jar destfile="${servicejars.dir}/OMProviderService.jar" basedir="${servicejars.dir}/OMProviderService" />
+                                <delete dir="${servicejars.dir}/OMProviderService" />
                                 <copy toDir="target/test-classes/">
                                     <fileset dir="test-resources/">
                                         <include name="**/*.properties" />
@@ -1220,149 +1392,25 @@
                 </executions>
             </plugin>
             <plugin>
-                <artifactId>maven-resources-plugin</artifactId>
-                <executions>
-                    <execution>
-                        <id>copy-repo</id>
-                        <phase>test-compile</phase>
-                        <goals>
-                            <goal>copy-resources</goal>
-                        </goals>
-                        <configuration>
-                            <outputDirectory>${project.build.directory}/repo</outputDirectory>
-                            <resources>
-                                <resource>
-                                    <directory>test-resources</directory>
-                                    <includes>
-                                        <include>axis2.xml</include>
-                                    </includes>
-                                </resource>
-                            </resources>              
-                        </configuration>            
-                    </execution>
-                </executions>
-            </plugin>
-            <plugin>
-                <groupId>org.codehaus.mojo</groupId>
-                <artifactId>build-helper-maven-plugin</artifactId>
-                <executions>
-                    <execution>
-                        <id>add-test-source</id>
-                        <phase>process-test-resources</phase>
-                        <goals>
-                            <goal>add-test-source</goal>
-                        </goals>
-                        <configuration>
-                            <sources>
-                                <source>${project.build.directory}/schema/src</source>
-                                <source>${project.build.directory}/generated-sources/axis2/wsdl2code/src</source>
-                            </sources>
-                        </configuration>
-                    </execution>
-                </executions>
-            </plugin>
-            <plugin>
                 <artifactId>maven-surefire-plugin</artifactId>
                 <inherited>true</inherited>
                 <configuration>
                     <forkMode>pertest</forkMode>
-                    <argLine>-Xms256m -Xmx512m -Xbootclasspath/p:${project.build.directory}/endorsed/jaxb-api.jar${path.separator}${project.build.directory}/endorsed/geronimo-saaj_1.3_spec.jar${path.separator}${project.build.directory}/endorsed/geronimo-jaxws_2.2_spec.jar</argLine>
+                    <argLine>-Xms256m -Xmx512m -Xbootclasspath/p:${jaxws.bootclasspath}</argLine>
                     <!-- Enable the next 2 lines if you want to attach a debugger
                     <argLine>-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5006</argLine>-->
                     <includes>
-                        <include>**/MultiRedirectionCatalogTest.java</include>
-                        <include>**/DispatchSoapActionTest.java</include>
-                        <include>**/ProxySoapActionTest.java</include>
-                        <include>**/DispatchMTOMFeatureTest.java</include>
-                        <include>**/InvocationControllerTest.java</include>
-                        <include>**/ProxyMTOMFeatureTest.java</include>
-                        <include>**/SOAP12DispatchTest.java</include>
-                        <include>**/OMElementDispatchTest.java</include>
-                        <include>**/JAXBContextTest.java</include>
-                        <include>**/JAXBStringUTF16Tests.java</include>
-                        <include>**/JAXBStringUTF8Tests.java</include>
-
-                        <include>**/StringProviderTests.java</include>
-                        <include>**/SOAPFaultProviderTests.java</include>
-                        <include>**/StringMessageProviderTests.java</include>
-                        <include>**/SourceProviderTests.java</include>
-                        <include>**/SourceMessageProviderTests.java</include>
-                        <include>**/SoapMessageMUProviderTests.java</include>
-                        <include>**/SoapMessageNullProviderTests.java</include>
-                        
-                        <include>**/ProxyTests.java</include>
-                        <include>**/ProxyNonWrappedTests.java</include>
-                        <include>**/RPCProxyTests.java</include>
-                        <include>**/RPCLitSWAProxyTests.java</include>
-
-                        <include>**/GorillaDLWProxyTests.java</include>
-                        <include>**/SOAP12ProxyTests.java</include>
-                        <include>**/BasicAuthSecurityTests.java</include>
-                        <include>**/AddressBookTests.java</include>
-                        <include>**/MtomSampleTests.java</include>
-                        <include>**/MTOMFeatureTests.java</include>
-                        <include>**/JAXBProviderTests.java</include>
-                        <include>**/BareTests.java</include>
-                        <include>**/BareNoArgTests.java</include>
-                        <include>**/AddNumbersHandlerTests.java</include>
-                        <include>**/HeadersHandlerTests.java</include>
-                        <include>**/AddNumbersTests.java</include>
-                        <include>**/DLWMinTests.java</include>
-                        <include>**/DLWMinArrayTests.java</include>
-                        <include>**/FaultsServiceTests.java</include>
-                        <include>**/WrapTests.java</include>
-                        <include>**/SoapMessageProviderTests.java</include>
-                        <include>**/WSGenTests.java</include>
-                        <include>**/NonAnonymousComplexTypeTests.java</include>
-                        <include>**/ResourceInjectionTests.java</include>
-                        <include>**/AnyTypeTests.java</include>
-                        <include>**/PolymorphicTests.java</include>
-
-                        <include>**/DispatchXPayloadStringTests.java</include>
-                        <include>**/DispatchXMessageStringTests.java</include>
-                        <include>**/DispatchXPayloadSourceTests.java</include>
-                        <include>**/DispatchXMessageSourceTests.java</include>
-                        <include>**/DispatchXPayloadJAXBTests.java</include>
-                        <include>**/DispatchXMessageDataSourceTests.java</include>
-                        <include>**/RPCLitEnumTests.java</include>
-                        <include>**/RPCLitStringArrayTests.java</include>
-
-                        <include>**/StreamSourceDispatchTests.java</include>
-                        <include>**/DOMSourceDispatchTests.java</include>
-                        <include>**/SAXSourceDispatchTests.java</include>
-                        <include>**/SOAPMessageDispatchTests.java</include>
-                        <include>**/JAXBDispatchTests.java</include>
-                        <include>**/JAXBSourceDispatchTests.java</include>
-                        <include>**/StringDispatchTests.java</include>
-                        <include>**/ParamTests.java</include>
-                        <include>**/MessageContextTests.java</include>
-                        <include>**/DocLitBareMinTests.java</include>
-                        <include>**/MtomSampleByteArrayTests.java</include>
-                        <include>**/HandlerTests.java</include>
-                        <include>**/StringListTests.java</include>
-                        <include>**/NonWrapTests.java</include>
-                        <include>**/FaultyWebServiceTests.java</include> 
-                        <include>**/AsyncExecutorTests.java</include>
-                        <include>**/ParallelAsyncTests.java</include>
-                        <include>**/SWAMTOMTests.java</include>
-                        <include>**/RuntimeExceptionsAsyncMepTest.java</include>
-                        <include>**/AddressingProviderTests.java</include>
-                        <include>**/TypeSubstitutionTests.java</include>
-                        <include>**/SOAPBindingProviderTests.java</include>
-                        <include>**/SoapMessageProviderTests.java</include>
-                        <include>**/StringProviderTests.java</include>
-                        <include>**/OMProviderTests.java</include>
-                        <include>**/CustomHTTPHeaderTests.java</include>
-                       
+                        <include>**/*Test.java</include>
+                        <include>**/*Tests.java</include>
                     </includes>
                     <systemProperties>
                         <property>
-                            <name>OASISCatalogManager.catalog.debug.level</name>
-                            <value>0</value>
+                            <name>javax.xml.accessExternalSchema</name>
+                            <value>all</value>
                         </property>
                         <property>
-                            <name>build.repository</name>
-                            <value>${project.build.directory}/repo</value>
+                            <name>OASISCatalogManager.catalog.debug.level</name>
+                            <value>0</value>
                         </property>
                         <property>
                             <name>javax.xml.soap.MessageFactory</name>
@@ -1395,9 +1443,19 @@
                             <name>java.awt.headless</name>
                             <value>true</value>
                         </property>
+                        <property>
+                            <name>org.apache.axis2.transport.http.server.fastShutdown</name>
+                            <value>true</value>
+                        </property>
                     </systemProperties>
                 </configuration>
             </plugin>
+            <plugin>
+                <artifactId>maven-deploy-plugin</artifactId>
+                <configuration>
+                    <skip>true</skip>
+                </configuration>
+            </plugin>
         </plugins>
     </build>
 </project>
diff --git a/modules/jaxws-integration/test/org/apache/axis2/jaxws/client/soapaction/server/META-INF/SOAPActionTest.wsdl b/modules/jaxws-integration/src/test/repository/services/BookStoreService/META-INF/SOAPActionTest.wsdl
similarity index 100%
rename from modules/jaxws-integration/test/org/apache/axis2/jaxws/client/soapaction/server/META-INF/SOAPActionTest.wsdl
rename to modules/jaxws-integration/src/test/repository/services/BookStoreService/META-INF/SOAPActionTest.wsdl
diff --git a/modules/jaxws-integration/test/org/apache/axis2/jaxws/client/soapaction/server/META-INF/services.xml b/modules/jaxws-integration/src/test/repository/services/BookStoreService/META-INF/services.xml
similarity index 100%
rename from modules/jaxws-integration/test/org/apache/axis2/jaxws/client/soapaction/server/META-INF/services.xml
rename to modules/jaxws-integration/src/test/repository/services/BookStoreService/META-INF/services.xml
diff --git a/modules/jaxws-integration/test/server/META-INF/services.xml b/modules/jaxws-integration/src/test/repository/services/EchoService/META-INF/services.xml
similarity index 100%
rename from modules/jaxws-integration/test/server/META-INF/services.xml
rename to modules/jaxws-integration/src/test/repository/services/EchoService/META-INF/services.xml
diff --git a/modules/jaxws-integration/test-resources/axis2.xml b/modules/jaxws-integration/test-resources/axis2.xml
index 981d6ff..0879d7c 100644
--- a/modules/jaxws-integration/test-resources/axis2.xml
+++ b/modules/jaxws-integration/test-resources/axis2.xml
@@ -21,7 +21,7 @@
     <!-- ================================================= -->

     <!-- Parameters -->

     <!-- ================================================= -->

-    <parameter name="hotdeployment">true</parameter>

+    <parameter name="hotdeployment">false</parameter>

     <parameter name="hotupdate">false</parameter>

     <parameter name="enableMTOM">false</parameter>

 

@@ -152,12 +152,12 @@
     <transportSender name="local"

                      class="org.apache.axis2.transport.local.LocalTransportSender"/>

     <transportSender name="http"

-                     class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">

+                     class="org.apache.axis2.transport.http.impl.httpclient4.HTTPClient4TransportSender">

         <parameter name="PROTOCOL">HTTP/1.1</parameter>

         <parameter name="Transfer-Encoding">chunked</parameter>

     </transportSender>

     <transportSender name="https"

-                     class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">

+                     class="org.apache.axis2.transport.http.impl.httpclient4.HTTPClient4TransportSender">

         <parameter name="PROTOCOL">HTTP/1.1</parameter>

         <parameter name="Transfer-Encoding">chunked</parameter>

     </transportSender>

diff --git a/modules/jaxws-integration/test-resources/axis2_addressing.xml b/modules/jaxws-integration/test-resources/axis2_addressing.xml
index 88c473c..d41ce1d 100644
--- a/modules/jaxws-integration/test-resources/axis2_addressing.xml
+++ b/modules/jaxws-integration/test-resources/axis2_addressing.xml
@@ -205,7 +205,7 @@
     <transportSender name="local"

                      class="org.apache.axis2.transport.local.LocalTransportSender"/>

     <transportSender name="http"

-                     class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">

+                     class="org.apache.axis2.transport.http.impl.httpclient4.HTTPClient4TransportSender">

         <parameter name="PROTOCOL">HTTP/1.1</parameter>

         <parameter name="Transfer-Encoding">chunked</parameter>

 

@@ -214,7 +214,7 @@
     </transportSender>

 

     <transportSender name="https"

-                     class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">

+                     class="org.apache.axis2.transport.http.impl.httpclient4.HTTPClient4TransportSender">

         <parameter name="PROTOCOL">HTTP/1.1</parameter>

         <parameter name="Transfer-Encoding">chunked</parameter>

     </transportSender>

diff --git a/modules/jaxws-integration/test-resources/log4j.properties b/modules/jaxws-integration/test-resources/log4j.properties
index 14a1131..b18d4bf 100644
--- a/modules/jaxws-integration/test-resources/log4j.properties
+++ b/modules/jaxws-integration/test-resources/log4j.properties
@@ -36,7 +36,6 @@
 

 # Set the enterprise logger priority to FATAL

 log4j.logger.org.apache.axis2.enterprise=FATAL

-log4j.logger.de.hunsicker.jalopy.io=FATAL

 log4j.logger.httpclient.wire.header=FATAL

 log4j.logger.org.apache.commons.httpclient=FATAL

 

@@ -58,4 +57,4 @@
 log4j.appender.SMALL.File=axis2.small.log

 log4j.appender.SMALL.Append=true

 log4j.appender.SMALL.layout=org.apache.log4j.PatternLayout

-log4j.appender.SMALL.layout.ConversionPattern=%d [%t] %-5p %c %x - %m%n
\ No newline at end of file
+log4j.appender.SMALL.layout.ConversionPattern=%d [%t] %-5p %c %x - %m%n

diff --git a/modules/jaxws-integration/test-resources/wsdl/ProxyDocLitnonWrapped.wsdl b/modules/jaxws-integration/test-resources/wsdl/ProxyDocLitnonWrapped.wsdl
deleted file mode 100644
index 48b297a..0000000
--- a/modules/jaxws-integration/test-resources/wsdl/ProxyDocLitnonWrapped.wsdl
+++ /dev/null
@@ -1,102 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<!--

-  ~ Licensed to the Apache Software Foundation (ASF) under one

-  ~ or more contributor license agreements. See the NOTICE file

-  ~ distributed with this work for additional information

-  ~ regarding copyright ownership. The ASF licenses this file

-  ~ to you under the Apache License, Version 2.0 (the

-  ~ "License"); you may not use this file except in compliance

-  ~ with the License. You may obtain a copy of the License at

-  ~

-  ~ http://www.apache.org/licenses/LICENSE-2.0

-  ~

-  ~ Unless required by applicable law or agreed to in writing,

-  ~ software distributed under the License is distributed on an

-  ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

-  ~ KIND, either express or implied. See the License for the

-  ~ specific language governing permissions and limitations

-  ~ under the License.

-  -->

-

-<!--

-	This is a copy of proxy_doclitwr.wsdl. Service and port names

-	have been chnaged to be Alpha compatible and endpoint address

-	has been changed

--->

-<wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"

-	xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"

-	xmlns:tns="http://doclitnonwrapped.proxy.test.org"

-	xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="proxy"

-	targetNamespace="http://doclitnonwrapped.proxy.test.org">

-	

-	<wsdl:types>

-		<xsd:schema

-			targetNamespace="http://doclitnonwrapped.proxy.test.org"

-			xmlns:tns="http://doclitnonwrapped.proxy.test.org"

-			xmlns:xsd="http://www.w3.org/2001/XMLSchema">

-

-			<xsd:element name="MyFault" type="xsd:string" />

-			

-			

-			

-			<xsd:element name="invoke" nillable="true">

-				<xsd:complexType>

-					<xsd:sequence>

-						<xsd:element name="invoke_str" type="xsd:string" />

-					</xsd:sequence>

-				</xsd:complexType>

-			</xsd:element>			

-			

-			<xsd:element name="ReturnType" nillable="true">

-				<xsd:complexType>

-					<xsd:sequence>

-						<xsd:element name="return_str" type="xsd:string" />

-					</xsd:sequence>

-				</xsd:complexType>

-			</xsd:element>				

-

-		</xsd:schema>

-	</wsdl:types>

-

-	

-	

-	<wsdl:message name="invokeRequest">

-		<wsdl:part name="allByMyself" element="tns:invoke" />

-	</wsdl:message>

-

-	<wsdl:message name="invokeResponse">

-		<wsdl:part name="allByMyself" element="tns:ReturnType" />

-	</wsdl:message>	

-	

-	<wsdl:portType name="DocLitnonWrappedProxy">

-

-		

-		<wsdl:operation name="invoke">

-			<wsdl:input message="tns:invokeRequest" />

-			<wsdl:output message="tns:invokeResponse" />

-		</wsdl:operation>		

-			

-	</wsdl:portType>

-	

-	<wsdl:binding name="ProxyDocLitnonWrapped" type="tns:DocLitnonWrappedProxy">

-		<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />		

-		<wsdl:operation name="invoke">

-			<soap:operation soapAction="http://doclitnonwrapped.proxy.test.org/invokeReturn" />

-			<wsdl:input>

-				<soap:body use="literal"  />

-			</wsdl:input>

-			<wsdl:output>

-				<soap:body use="literal"  />

-			</wsdl:output>

-	

-		</wsdl:operation>		

-	

-	</wsdl:binding>

-	

-	<wsdl:service name="ProxyDocLitUnwrappedService">

-		<wsdl:port binding="tns:ProxyDocLitnonWrapped" name="ProxyDocLitnonWrappedPort">

-			<soap:address location="http://@HOST@:@PORT@/jaxws.proxy/services/ProxyDocLitUnwrappedService" />

-		</wsdl:port>

-	</wsdl:service>

-	

-</wsdl:definitions>

diff --git a/modules/jaxws-integration/test-resources/wsdl/SOAPActionTest.wsdl b/modules/jaxws-integration/test-resources/wsdl/SOAPActionTest.wsdl
deleted file mode 100644
index dc0c63c..0000000
--- a/modules/jaxws-integration/test-resources/wsdl/SOAPActionTest.wsdl
+++ /dev/null
@@ -1,153 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>

-

-<!--

-  ~ Licensed to the Apache Software Foundation (ASF) under one

-  ~ or more contributor license agreements. See the NOTICE file

-  ~ distributed with this work for additional information

-  ~ regarding copyright ownership. The ASF licenses this file

-  ~ to you under the Apache License, Version 2.0 (the

-  ~ "License"); you may not use this file except in compliance

-  ~ with the License. You may obtain a copy of the License at

-  ~

-  ~ http://www.apache.org/licenses/LICENSE-2.0

-  ~

-  ~ Unless required by applicable law or agreed to in writing,

-  ~ software distributed under the License is distributed on an

-  ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

-  ~ KIND, either express or implied. See the License for the

-  ~ specific language governing permissions and limitations

-  ~ under the License.

-  -->

-

-<definitions targetNamespace="http://jaxws.axis2.apache.org/client/soapaction"

-      xmlns:tns="http://jaxws.axis2.apache.org/client/soapaction"

-      xmlns="http://schemas.xmlsoap.org/wsdl/" 

-      xmlns:xsd="http://www.w3.org/2001/XMLSchema"

-      xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/">

-   <types>

-      <xsd:schema targetNamespace="http://jaxws.axis2.apache.org/client/soapaction"

-         xmlns:tns="http://jaxws.axis2.apache.org/client/soapaction"

-         xmlns="http://www.w3.org/2001/XMLSchema"

-         elementFormDefault="qualified">

-         <complexType name="GetPriceType">

-            <sequence>

-               <element name="item" type="xsd:string"/>

-            </sequence>

-         </complexType>

-         <complexType name="GetPriceResponseType">

-            <sequence>

-               <element name="price" type="xsd:float"/>

-            </sequence>

-         </complexType>

-

-         <element name="getPrice" type="tns:GetPriceType"/>

-         <element name="getPriceResponse" type="tns:GetPriceResponseType"/>

-   

-         <element name="getPriceWithAction" type="tns:GetPriceType"/>

-         <element name="getPriceWithActionResponse" type="tns:GetPriceResponseType"/>

-

-         <element name="item" type="xsd:string"/>

-         <element name="inventory" type="xsd:int"/>

-

-         <element name="itemWithAction" type="xsd:string"/>

-         <element name="inventoryWithAction" type="xsd:int"/>

-      </xsd:schema>

-   </types>

-

-   <message name="getPriceRequest">

-      <part name="parameters" element="tns:getPrice"/>

-   </message>

-

-   <message name="getPriceResponse">

-      <part name="parameters" element="tns:getPriceResponse"/>

-   </message>

-  

-   <message name="getPriceWithActionRequest">

-      <part name="parameters" element="tns:getPriceWithAction"/>

-   </message>

-

-   <message name="getPriceWithActionResponse">

-      <part name="parameters" element="tns:getPriceWithActionResponse"/>

-   </message>

- 

-   <message name="getInventoryRequest">

-      <part name="item" element="tns:item"/>

-   </message>

-   

-   <message name="getInventoryResponse">

-      <part name="inventory" element="tns:inventory"/>

-   </message>

-

-   <message name="getInventoryWithActionRequest">

-      <part name="item" element="tns:itemWithAction"/>

-   </message>

-

-   <message name="getInventoryWithActionResponse">

-      <part name="inventory" element="tns:inventoryWithAction"/>

-   </message>

-

-   <portType name="BookStore">

-      <operation name="getPrice">

-         <input message="tns:getPriceRequest" />

-         <output message="tns:getPriceResponse" />

-      </operation>

-      <operation name="getPriceWithAction">

-         <input message="tns:getPriceWithActionRequest" />

-         <output message="tns:getPriceWithActionResponse" />

-      </operation>

-      <operation name="getInventory">

-         <input message="tns:getInventoryRequest" />

-         <output message="tns:getInventoryResponse" />

-      </operation>

-      <operation name="getInventoryWithAction">

-         <input message="tns:getInventoryWithActionRequest" />

-         <output message="tns:getInventoryWithActionResponse" />

-      </operation>

-   </portType>

-

-   <binding name="BookStoreBinding" type="tns:BookStore">

-      <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>

-      <operation name="getPrice">

-         <soap:operation soapAction=""/>

-         <input>

-            <soap:body use="literal"/>

-         </input>

-         <output>

-            <soap:body use="literal"/>

-         </output>

-      </operation>

-      <operation name="getPriceWithAction">

-         <soap:operation soapAction="http://jaxws.axis2.apache.org/client/soapaction/getPrice"/>

-         <input>

-            <soap:body use="literal"/>

-         </input>

-         <output>

-            <soap:body use="literal"/>

-         </output>

-      </operation>

-      <operation name="getInventory">

-         <soap:operation soapAction=""/>

-         <input>

-            <soap:body use="literal"/>

-         </input>

-         <output>

-            <soap:body use="literal"/>

-         </output>

-      </operation>

-      <operation name="getInventoryWithAction">

-         <soap:operation soapAction="http://jaxws.axis2.apache.org/client/soapaction/getInventory"/>

-         <input>

-            <soap:body use="literal"/>

-         </input>

-         <output>

-            <soap:body use="literal"/>

-         </output>

-      </operation>

-   </binding>

-

-   <service name="BookStoreService">

-      <port binding="tns:BookStoreBinding" name="BookStorePort">

-         <soap:address location="http://localhost:6060/axis2/services/BookStoreService"/>

-      </port>

-   </service>

-</definitions>

diff --git a/modules/jaxws-integration/test-resources/wsdl/gorilla_dlw.wsdl b/modules/jaxws-integration/test-resources/wsdl/gorilla_dlw.wsdl
deleted file mode 100644
index b46f654..0000000
--- a/modules/jaxws-integration/test-resources/wsdl/gorilla_dlw.wsdl
+++ /dev/null
@@ -1,904 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>

-

-<!--

-  ~ Licensed to the Apache Software Foundation (ASF) under one

-  ~ or more contributor license agreements. See the NOTICE file

-  ~ distributed with this work for additional information

-  ~ regarding copyright ownership. The ASF licenses this file

-  ~ to you under the Apache License, Version 2.0 (the

-  ~ "License"); you may not use this file except in compliance

-  ~ with the License. You may obtain a copy of the License at

-  ~

-  ~ http://www.apache.org/licenses/LICENSE-2.0

-  ~

-  ~ Unless required by applicable law or agreed to in writing,

-  ~ software distributed under the License is distributed on an

-  ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

-  ~ KIND, either express or implied. See the License for the

-  ~ specific language governing permissions and limitations

-  ~ under the License.

-  -->

-

-<definitions xmlns:http="http://schemas.xmlsoap.org/wsdl/http/"

-    xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" 

-    xmlns:s="http://www.w3.org/2001/XMLSchema" 

-    targetNamespace="http://org/apache/axis2/jaxws/proxy/gorilla_dlw" 

-    xmlns:tns="http://org/apache/axis2/jaxws/proxy/gorilla_dlw" 

-    xmlns:data="http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data"

-    xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"  jaxb:version="2.0"

-    xmlns="http://schemas.xmlsoap.org/wsdl/">

-  <types>

-    <!-- Use elementFormDefault=qualified.  Many users use this setting for interop compatibility -->

-    <s:schema elementFormDefault="qualified" 

-        xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"  jaxb:version="2.0"

-        targetNamespace="http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data" >

-

-      <s:import namespace="http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data2"  />

-

-      <s:element name="assertFault">

-        <s:complexType>

-           <s:sequence>

-             <s:element name="faultData" type="s:string" />

-           </s:sequence>

-        </s:complexType>

-      </s:element>

-

-      <s:simpleType name="stringList">   

-        <s:list itemType="s:string"/> 

-      </s:simpleType>

-

-      <s:simpleType name="fruit">

-         <s:restriction base="s:string">

-            <s:enumeration value="apple"/>                      

-            <s:enumeration value="orange"/>                    

-            <s:enumeration value="pear"/>                    

-         </s:restriction>

-      </s:simpleType>

-

-      <s:complexType name="Object0">

-         <s:sequence>

-           <s:element name="data0" type="s:string" />

-         </s:sequence>

-      </s:complexType>

-

-      <!-- Echo a String.  This also supports the situation where there is no string -->

-      <s:element name="echoString">

-        <s:complexType>

-          <s:sequence>

-            <s:element minOccurs="0" maxOccurs="1" name="data" type="s:string" />

-          </s:sequence>

-        </s:complexType>

-      </s:element>

-      <s:element name="echoStringResponse">

-        <s:complexType>

-          <s:sequence>

-            <s:element minOccurs="0" maxOccurs="1" name="result" type="s:string" />

-          </s:sequence>

-        </s:complexType>

-      </s:element>

-

-      <!-- Echo combined String-->

-      <s:element name="echoString2">

-        <s:complexType>

-          <s:sequence>

-            <s:element minOccurs="0" maxOccurs="1" name="data" type="s:string" />

-            <s:element minOccurs="0" maxOccurs="1" name="inout" type="s:string" />

-          </s:sequence>

-        </s:complexType>

-      </s:element>

-      <s:element name="echoString2Response">

-        <s:complexType>

-          <s:sequence>

-            <s:element minOccurs="0" maxOccurs="1" name="inout" type="s:string" />

-          </s:sequence>

-        </s:complexType>

-      </s:element>

-

-      <!-- Echo int -->

-      <s:element name="echoInt">

-        <s:complexType>

-          <s:sequence>

-            <s:element minOccurs="0" maxOccurs="1" name="data" type="s:int" />

-          </s:sequence>

-        </s:complexType>

-      </s:element>

-      <s:element name="echoIntResponse">

-        <s:complexType>

-          <s:sequence>

-            <s:element minOccurs="0" maxOccurs="1" name="result" type="s:int" />

-          </s:sequence>

-        </s:complexType>

-      </s:element>

-

-      <!-- Echo enum -->

-      <s:element name="echoEnum">

-        <s:complexType>

-          <s:sequence>

-            <s:element minOccurs="0" maxOccurs="1" name="data" type="data:fruit" />

-          </s:sequence>

-        </s:complexType>

-      </s:element>

-      <s:element name="echoEnumResponse">

-        <s:complexType>

-          <s:sequence>

-            <s:element minOccurs="0" maxOccurs="1" name="result" type="data:fruit" />

-          </s:sequence>

-        </s:complexType>

-      </s:element>

-

-      <!-- Echo anyType.  Test polymorphism -->

-      <s:element name="echoAnyType">

-        <s:complexType>

-          <s:sequence>

-            <s:element minOccurs="0" maxOccurs="1" name="data" type="s:anyType" />

-          </s:sequence>

-        </s:complexType>

-      </s:element>

-      <s:element name="echoAnyTypeResponse">

-        <s:complexType>

-          <s:sequence>

-            <s:element minOccurs="0" maxOccurs="1" name="result" type="s:anyType" />

-          </s:sequence>

-        </s:complexType>

-      </s:element>

-

-      <!-- Echo stringList.  Tests xsd:list-->

-      <!-- Both the SEI and the bean use List String to represent the data.  -->

-      <!-- But there are some semantic differences between this and echoStringArray -->

-      <!-- due to xml differences between xsd:list and maxOccurs unbounded -->

-      <s:element name="echoStringList">

-        <s:complexType>

-          <s:sequence>

-            <s:element minOccurs="0" maxOccurs="1" name="data" type="data:stringList" />

-          </s:sequence>

-        </s:complexType>

-      </s:element>

-

-      <s:element name="echoStringListResponse">

-        <s:complexType>

-          <s:sequence>

-            <s:element minOccurs="0" maxOccurs="1" name="result" type="data:stringList" />

-          </s:sequence>

-        </s:complexType>

-      </s:element>

-

-      <!-- Just like stringList, except the SEI parameter is manually changed to String[] -->

-      <!-- This will test List <-> java Array processing -->

-      <s:element name="echoStringListAlt">

-        <s:complexType>

-          <s:sequence>

-            <s:element minOccurs="0" maxOccurs="1" name="data" type="data:stringList" />

-          </s:sequence>

-        </s:complexType>

-      </s:element>

-

-      <s:element name="echoStringListAltResponse">

-        <s:complexType>

-          <s:sequence>

-            <s:element minOccurs="0" maxOccurs="1" name="result" type="data:stringList" />

-          </s:sequence>

-        </s:complexType>

-      </s:element>

-

-      <!-- Just like stringList, except the SEI parameter is manually changed to LinkedList String -->

-      <!-- This will test List <-> java Array processing -->

-      <s:element name="echoStringListAsLinkedList">

-        <s:complexType>

-          <s:sequence>

-            <s:element minOccurs="0" maxOccurs="1" name="data" type="data:stringList" />

-          </s:sequence>

-        </s:complexType>

-      </s:element>

-	  

-	  <s:element name="echoStringListAsLinkedListResponse">

-        <s:complexType>

-          <s:sequence>

-            <s:element minOccurs="0" maxOccurs="1" name="data" type="data:stringList" />

-          </s:sequence>

-        </s:complexType>

-      </s:element>

-

-      <s:element name="echoStringListAltAsLinkedListResponse">

-        <s:complexType>

-          <s:sequence>

-            <s:element minOccurs="0" maxOccurs="1" name="result" type="data:stringList" />

-          </s:sequence>

-        </s:complexType>

-      </s:element>

-

-      <!-- The SEI and bean property map to List List String -->

-      <s:element name="echoStringListArray">

-        <s:complexType>

-          <s:sequence>

-            <s:element minOccurs="0" maxOccurs="unbounded" name="data" type="data:stringList" />

-          </s:sequence>

-        </s:complexType>

-      </s:element>

-

-      <s:element name="echoStringListArrayResponse">

-        <s:complexType>

-          <s:sequence>

-            <s:element minOccurs="0" maxOccurs="unbounded" name="result" type="data:stringList" />

-          </s:sequence>

-        </s:complexType>

-      </s:element>

-

-      <!-- Echo a String aray. -->

-      <!-- Probably the most common case.  Both the SEI and bean are mapped to List String -->

-      <!-- The xml maxOccurs semantics are used to marshal and unmarshal the values... -->

-      <!-- Which makes this a little different than the echoStringList case -->

-      <s:element name="echoStringArray">

-        <s:complexType>

-          <s:sequence>

-            <s:element minOccurs="0" maxOccurs="unbounded" name="data" type="s:string" />

-          </s:sequence>

-        </s:complexType>

-      </s:element>

-      <s:element name="echoStringArrayResponse">

-        <s:complexType>

-          <s:sequence>

-            <s:element minOccurs="0" maxOccurs="unbounded" name="result" type="s:string" />

-          </s:sequence>

-        </s:complexType>

-      </s:element>

-

-      <!-- Same as echoStringArray, except the SEI is manually changed to String[] -->

-      <s:element name="echoStringArrayAlt">

-        <s:complexType>

-          <s:sequence>

-            <s:element minOccurs="0" maxOccurs="unbounded" name="data" type="s:string" />

-          </s:sequence>

-        </s:complexType>

-      </s:element>

-      <s:element name="echoStringArrayAltResponse">

-        <s:complexType>

-          <s:sequence>

-            <s:element minOccurs="0" maxOccurs="unbounded" name="result" type="s:string" />

-          </s:sequence>

-        </s:complexType>

-      </s:element>

-

-      <!-- Same as echoStringArray, except the SEI is manually changed to LinkedList String -->

-      <s:element name="echoStringArrayAsLinkedList">

-        <s:complexType>

-          <s:sequence>

-            <s:element minOccurs="0" maxOccurs="unbounded" name="data" type="s:string" />

-          </s:sequence>

-        </s:complexType>

-      </s:element>

-      <s:element name="echoStringArrayAsLinkedListResponse">

-        <s:complexType>

-          <s:sequence>

-            <s:element minOccurs="0" maxOccurs="unbounded" name="result" type="s:string" />

-          </s:sequence>

-        </s:complexType>

-      </s:element>

-

-      <!-- Echo Indexed String Array -->

-      <!-- In this case the parameter is a List String, but the bean property uses the indexed -->

-      <!-- setter/getter style methods -->

-      <s:element name="echoIndexedStringArray">

-        <s:complexType>

-          <s:sequence>

-            <s:element minOccurs="0" maxOccurs="unbounded" name="data" type="s:string" >

-              <s:annotation>

-                <s:appinfo>

-                  <jaxb:property collectionType="indexed" />

-                </s:appinfo>

-              </s:annotation>

-            </s:element>

-          </s:sequence>

-        </s:complexType>

-      </s:element>

-      <s:element name="echoIndexedStringArrayResponse">

-        <s:complexType>

-          <s:sequence>

-            <s:element minOccurs="0" maxOccurs="unbounded" name="result" type="s:string" >

-              <s:annotation>

-                <s:appinfo>

-                  <jaxb:property collectionType="indexed" />

-                </s:appinfo>

-              </s:annotation>

-            </s:element>

-          </s:sequence>

-        </s:complexType>

-      </s:element>

-

-      <!-- Echo combined String-->

-      <s:element name="echoString2Array">

-        <s:complexType>

-          <s:sequence>

-            <s:element minOccurs="0" maxOccurs="unbounded" name="data" type="s:string" />

-            <s:element minOccurs="0" maxOccurs="unbounded" name="inout" type="s:string" />

-          </s:sequence>

-        </s:complexType>

-      </s:element>

-      <s:element name="echoString2ArrayResponse">

-        <s:complexType>

-          <s:sequence>

-            <s:element minOccurs="0" maxOccurs="unbounded" name="inout" type="s:string" />

-          </s:sequence>

-        </s:complexType>

-      </s:element>

-

-      <!-- Echo int -->

-      <s:element name="echoIntArray">

-        <s:complexType>

-          <s:sequence>

-            <s:element minOccurs="0" maxOccurs="unbounded" name="data" type="s:int" />

-          </s:sequence>

-        </s:complexType>

-      </s:element>

-      <s:element name="echoIntArrayResponse">

-        <s:complexType>

-          <s:sequence>

-            <s:element minOccurs="0" maxOccurs="unbounded" name="result" type="s:int" />

-          </s:sequence>

-        </s:complexType>

-      </s:element>

-

-      <!-- Echo enum -->

-      <s:element name="echoEnumArray">

-        <s:complexType>

-          <s:sequence>

-            <s:element minOccurs="0" maxOccurs="unbounded" name="data" type="data:fruit" />

-          </s:sequence>

-        </s:complexType>

-      </s:element>

-      <s:element name="echoEnumArrayResponse">

-        <s:complexType>

-          <s:sequence>

-            <s:element minOccurs="0" maxOccurs="unbounded" name="result" type="data:fruit" />

-          </s:sequence>

-        </s:complexType>

-      </s:element>

-

-      <!-- Echo anyType.  Test polymorphism -->

-      <s:element name="echoAnyTypeArray">

-        <s:complexType>

-          <s:sequence>

-            <s:element minOccurs="0" maxOccurs="unbounded" name="data" type="s:anyType" />

-          </s:sequence>

-        </s:complexType>

-      </s:element>

-      <s:element name="echoAnyTypeArrayResponse">

-        <s:complexType>

-          <s:sequence>

-            <s:element minOccurs="0" maxOccurs="unbounded" name="result" type="s:anyType" />

-          </s:sequence>

-        </s:complexType>

-      </s:element>

-	  

-     <s:element name="echoDate">     	 

-           <s:complexType>

-		   <s:choice>

-				<s:element name="RequestedTerminationTime" nillable="true" type="s:dateTime" />

-				<s:element name="RequestedLifetimeDuration" type="s:duration" />

-			</s:choice>

-			

-             <!--<s:sequence>

-               <s:element name="request" nillable="true" type="s:date" />

-             </s:sequence> -->

-			 

-           </s:complexType>

-	  </s:element>

-

-	  <s:element name="echoDateResponse">

-           <s:complexType>

-             <s:sequence>

-               <s:element name="response" type="s:date" />

-             </s:sequence>

-           </s:complexType>

-	  </s:element>

-	  

-	  <s:complexType name="echoBasetype">

-	            <s:sequence>

-	               <s:element name="request" type="s:date" />

-	            </s:sequence>

-	         </s:complexType>

-			 

-	  	 <s:element name="echoPolymorphicDate">

-			 <s:complexType>

-				<s:complexContent>

-					<s:extension base="data:echoBasetype"/>

-				</s:complexContent>

-			</s:complexType>

-		 </s:element>

-		 	  

-    </s:schema>

-

-    <s:schema elementFormDefault="qualified" 

-        targetNamespace="http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data2" >

-        

-        <!-- For anyType processing,  Object1 is in an imported schema, thus it should be allowed in the anyType -->

-        <s:complexType name="Object1">

-           <s:sequence>

-             <s:element name="data1" type="s:string" />

-           </s:sequence>

-        </s:complexType>

-    </s:schema>

-

-   <s:schema elementFormDefault="qualified" 

-        targetNamespace="http://org/apache/axis2/jaxws/proxy/gorilla_dlw/dataUnref" >

-        

-        <!-- For anyType processing,  Object2 is in an unreferenced schema, thus may fail when used with anyType -->

-        <s:complexType name="Object2">

-           <s:sequence>

-             <s:element name="data2" type="s:string" />

-           </s:sequence>

-        </s:complexType>

-    </s:schema>

- 

-  </types>

-

-  <!-- messages -->

-  <message name="assertFault">

-    <part name="x" element="data:assertFault" />

-  </message>

-

-  <message name="echoString">

-    <part name="x" element="data:echoString" />

-  </message>

-  <message name="echoStringResponse">

-    <part name="x" element="data:echoStringResponse" />

-  </message>

-

-  <message name="echoString2">

-    <part name="x" element="data:echoString2" />

-  </message>

-  <message name="echoString2Response">

-    <part name="x" element="data:echoString2Response" />

-  </message>

-

-  <message name="echoInt">

-    <part name="x" element="data:echoInt" />

-  </message>

-  <message name="echoIntResponse">

-    <part name="x" element="data:echoIntResponse" />

-  </message>

-

-  <message name="echoEnum">

-    <part name="x" element="data:echoEnum" />

-  </message>

-  <message name="echoEnumResponse">

-    <part name="x" element="data:echoEnumResponse" />

-  </message>

-

-  <message name="echoAnyType">

-    <part name="x" element="data:echoAnyType" />

-  </message>

-  <message name="echoAnyTypeResponse">

-    <part name="x" element="data:echoAnyTypeResponse" />

-  </message>

-

-  <message name="echoStringList">

-    <part name="x" element="data:echoStringList" />

-  </message>

-  <message name="echoStringListResponse">

-    <part name="x" element="data:echoStringListResponse" />

-  </message>

-  <message name="echoStringListAlt">

-    <part name="x" element="data:echoStringListAlt" />

-  </message>

-  <message name="echoStringListAltResponse">

-    <part name="x" element="data:echoStringListAltResponse" />

-  </message>

-  <message name="echoStringListAsLinkedList">

-    <part name="x" element="data:echoStringListAsLinkedList" />

-  </message>

-  <message name="echoStringListAsLinkedListResponse">

-    <part name="x" element="data:echoStringListAsLinkedListResponse" />

-  </message>

-

-  <message name="echoStringListArray">

-    <part name="x" element="data:echoStringListArray" />

-  </message>

-  <message name="echoStringListArrayResponse">

-    <part name="x" element="data:echoStringListArrayResponse" />

-  </message>

-

-  <message name="echoStringArray">

-    <part name="x" element="data:echoStringArray" />

-  </message>

-  <message name="echoStringArrayResponse">

-    <part name="x" element="data:echoStringArrayResponse" />

-  </message>

-

-  <message name="echoStringArrayAlt">

-    <part name="x" element="data:echoStringArrayAlt" />

-  </message>

-  <message name="echoStringArrayAltResponse">

-    <part name="x" element="data:echoStringArrayAltResponse" />

-  </message>

-

-  <message name="echoStringArrayAsLinkedList">

-    <part name="x" element="data:echoStringArrayAsLinkedList" />

-  </message>

-  <message name="echoStringArrayAsLinkedListResponse">

-    <part name="x" element="data:echoStringArrayAsLinkedListResponse" />

-  </message>

-  

-  <message name="echoIndexedStringArray">

-    <part name="x" element="data:echoIndexedStringArray" />

-  </message>

-  <message name="echoIndexedStringArrayResponse">

-    <part name="x" element="data:echoIndexedStringArrayResponse" />

-  </message>

-

-  <message name="echoString2Array">

-    <part name="x" element="data:echoString2Array" />

-  </message>

-  <message name="echoString2ArrayResponse">

-    <part name="x" element="data:echoString2ArrayResponse" />

-  </message>

-

-  <message name="echoIntArray">

-    <part name="x" element="data:echoIntArray" />

-  </message>

-  <message name="echoIntArrayResponse">

-    <part name="x" element="data:echoIntArrayResponse" />

-  </message>

-

-  <message name="echoEnumArray">

-    <part name="x" element="data:echoEnumArray" />

-  </message>

-  <message name="echoEnumArrayResponse">

-    <part name="x" element="data:echoEnumArrayResponse" />

-  </message>

-

-  <message name="echoAnyTypeArray">

-    <part name="x" element="data:echoAnyTypeArray" />

-  </message>

-  <message name="echoAnyTypeArrayResponse">

-    <part name="x" element="data:echoAnyTypeArrayResponse" />

-  </message>

-  

-  

-   <message name="echoPolymorphicDateMessage">

-      <part name="dateRequest" element="data:echoPolymorphicDate"/>

-   </message>

-   

-   <message name="echoDateMessage">

-      <part name="dateRequest" element="data:echoDate"/>

-   </message>

-

-   <message name="echoDateResponseMessage">

-      <part name="dateResponse" element="data:echoDateResponse"/>

-   </message>

-

-  <!-- operation -->

-  <portType name="GorillaInterface">

-    <operation name="echoString">

-      <input message="tns:echoString" />

-      <output message="tns:echoStringResponse" />

-      <fault name="assertFault" message="tns:assertFault" />

-    </operation>

-    <operation name="echoString2">

-      <input message="tns:echoString2" />

-      <output message="tns:echoString2Response" />

-      <fault  name="assertFault" message="tns:assertFault" />

-    </operation>

-    <operation name="echoInt">

-      <input message="tns:echoInt" />

-      <output message="tns:echoIntResponse" />

-      <fault  name="assertFault" message="tns:assertFault" />

-    </operation>

-    <operation name="echoEnum">

-      <input message="tns:echoEnum" />

-      <output message="tns:echoEnumResponse" />

-      <fault  name="assertFault" message="tns:assertFault" />

-    </operation>

-    <operation name="echoAnyType">

-      <input message="tns:echoAnyType" />

-      <output message="tns:echoAnyTypeResponse" />

-      <fault  name="assertFault" message="tns:assertFault" />

-    </operation>

-

-    <operation name="echoStringList">

-      <input message="tns:echoStringList" />

-      <output message="tns:echoStringListResponse" />

-      <fault  name="assertFault" message="tns:assertFault" />

-    </operation>

-    <operation name="echoStringListAlt">

-      <input message="tns:echoStringListAlt" />

-      <output message="tns:echoStringListAltResponse" />

-      <fault  name="assertFault" message="tns:assertFault" />

-    </operation>

-    <operation name="echoStringListAsLinkedList">

-      <input message="tns:echoStringListAsLinkedList" />

-      <output message="tns:echoStringListAsLinkedListResponse" />

-      <fault  name="assertFault" message="tns:assertFault" />

-    </operation>

-   

-    <operation name="echoStringListArray">

-      <input message="tns:echoStringListArray" />

-      <output message="tns:echoStringListArrayResponse" />

-      <fault  name="assertFault" message="tns:assertFault" />

-    </operation>

-

-    <operation name="echoStringArray">

-      <input message="tns:echoStringArray" />

-      <output message="tns:echoStringArrayResponse" />

-      <fault name="assertFault" message="tns:assertFault" />

-    </operation>

-    <operation name="echoStringArrayAlt">

-      <input message="tns:echoStringArrayAlt" />

-      <output message="tns:echoStringArrayAltResponse" />

-      <fault name="assertFault" message="tns:assertFault" />

-    </operation>

-

-   <operation name="echoStringArrayAsLinkedList">

-      <input message="tns:echoStringArrayAsLinkedList" />

-      <output message="tns:echoStringArrayAsLinkedListResponse" />

-      <fault name="assertFault" message="tns:assertFault" />

-    </operation>

-

-

-    <operation name="echoIndexedStringArray">

-      <input message="tns:echoIndexedStringArray" />

-      <output message="tns:echoIndexedStringArrayResponse" />

-      <fault name="assertFault" message="tns:assertFault" />

-    </operation>

-

-    <operation name="echoString2Array">

-      <input message="tns:echoString2Array" />

-      <output message="tns:echoString2ArrayResponse" />

-      <fault  name="assertFault" message="tns:assertFault" />

-    </operation>

-    <operation name="echoIntArray">

-      <input message="tns:echoIntArray" />

-      <output message="tns:echoIntArrayResponse" />

-      <fault  name="assertFault" message="tns:assertFault" />

-    </operation>

-    <operation name="echoEnumArray">

-      <input message="tns:echoEnumArray" />

-      <output message="tns:echoEnumArrayResponse" />

-      <fault  name="assertFault" message="tns:assertFault" />

-    </operation>

-    <operation name="echoAnyTypeArray">

-      <input message="tns:echoAnyTypeArray" />

-      <output message="tns:echoAnyTypeArrayResponse" />

-      <fault  name="assertFault" message="tns:assertFault" />

-    </operation>

-    <operation name="echoPolymorphicDate">

-      <input message="tns:echoPolymorphicDateMessage" />

-    </operation>

-	<operation name="echoDate">

-      <input message="tns:echoDateMessage" />

-      <output message="tns:echoDateResponseMessage" />

-	</operation>

-  </portType>

-

-  <!-- binding -->

-  <binding name="GorillaSOAP" type="tns:GorillaInterface">

-    <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document" />

-    <operation name="echoString">

-      <soap:operation style="document" />

-      <input>

-        <soap:body use="literal" />

-      </input>

-      <output>

-        <soap:body use="literal" />

-      </output>

-      <fault name="assertFault">

-        <soap:fault name="assertFault" use="literal" />

-      </fault>

-    </operation>

-    <operation name="echoString2">

-      <soap:operation style="document" />

-      <input>

-        <soap:body use="literal" />

-      </input>

-      <output>

-        <soap:body use="literal" />

-      </output>

-      <fault name="assertFault">

-        <soap:fault name="assertFault" use="literal" />

-      </fault>

-    </operation>

-    <operation name="echoInt">

-      <soap:operation style="document" />

-      <input>

-        <soap:body use="literal" />

-      </input>

-      <output>

-        <soap:body use="literal" />

-      </output>

-      <fault name="assertFault">

-        <soap:fault name="assertFault" use="literal" />

-      </fault>

-    </operation>

-    <operation name="echoEnum">

-      <soap:operation style="document" />

-      <input>

-        <soap:body use="literal" />

-      </input>

-      <output>

-        <soap:body use="literal" />

-      </output>

-      <fault name="assertFault">

-        <soap:fault name="assertFault" use="literal" />

-      </fault>

-    </operation>

-    <operation name="echoAnyType">

-      <soap:operation style="document" />

-      <input>

-        <soap:body use="literal" />

-      </input>

-      <output>

-        <soap:body use="literal" />

-      </output>

-      <fault name="assertFault">

-        <soap:fault name="assertFault" use="literal" />

-      </fault>

-    </operation>

-    <operation name="echoStringList">

-      <soap:operation style="document" />

-      <input>

-        <soap:body use="literal" />

-      </input>

-      <output>

-        <soap:body use="literal" />

-      </output>

-      <fault name="assertFault">

-        <soap:fault name="assertFault" use="literal" />

-      </fault>

-    </operation>

-    <operation name="echoStringListAlt">

-      <soap:operation style="document" />

-      <input>

-        <soap:body use="literal" />

-      </input>

-      <output>

-        <soap:body use="literal" />

-      </output>

-      <fault name="assertFault">

-        <soap:fault name="assertFault" use="literal" />

-      </fault>

-    </operation>

-    <operation name="echoStringListAsLinkedList">

-      <soap:operation style="document" />

-      <input>

-        <soap:body use="literal" />

-      </input>

-      <output>

-        <soap:body use="literal" />

-      </output>

-      <fault name="assertFault">

-        <soap:fault name="assertFault" use="literal" />

-      </fault>

-    </operation>

-    <operation name="echoStringListArray">

-      <soap:operation style="document" />

-      <input>

-        <soap:body use="literal" />

-      </input>

-      <output>

-        <soap:body use="literal" />

-      </output>

-      <fault name="assertFault">

-        <soap:fault name="assertFault" use="literal" />

-      </fault>

-    </operation>

-

-    <operation name="echoStringArray">

-      <soap:operation style="document" />

-      <input>

-        <soap:body use="literal" />

-      </input>

-      <output>

-        <soap:body use="literal" />

-      </output>

-      <fault name="assertFault">

-        <soap:fault name="assertFault" use="literal" />

-      </fault>

-    </operation>

-    <operation name="echoStringArrayAlt">

-      <soap:operation style="document" />

-      <input>

-        <soap:body use="literal" />

-      </input>

-      <output>

-        <soap:body use="literal" />

-      </output>

-      <fault name="assertFault">

-        <soap:fault name="assertFault" use="literal" />

-      </fault>

-    </operation>

-    <operation name="echoStringArrayAsLinkedList">

-      <soap:operation style="document" />

-      <input>

-        <soap:body use="literal" />

-      </input>

-      <output>

-        <soap:body use="literal" />

-      </output>

-      <fault name="assertFault">

-        <soap:fault name="assertFault" use="literal" />

-      </fault>

-    </operation>

-

-    <operation name="echoIndexedStringArray">

-      <soap:operation style="document" />

-      <input>

-        <soap:body use="literal" />

-      </input>

-      <output>

-        <soap:body use="literal" />

-      </output>

-      <fault name="assertFault">

-        <soap:fault name="assertFault" use="literal" />

-      </fault>

-    </operation>

-

-    <operation name="echoString2Array">

-      <soap:operation style="document" />

-      <input>

-        <soap:body use="literal" />

-      </input>

-      <output>

-        <soap:body use="literal" />

-      </output>

-      <fault name="assertFault">

-        <soap:fault name="assertFault" use="literal" />

-      </fault>

-    </operation>

-    <operation name="echoIntArray">

-      <soap:operation style="document" />

-      <input>

-        <soap:body use="literal" />

-      </input>

-      <output>

-        <soap:body use="literal" />

-      </output>

-      <fault name="assertFault">

-        <soap:fault name="assertFault" use="literal" />

-      </fault>

-    </operation>

-    <operation name="echoEnumArray">

-      <soap:operation style="document" />

-      <input>

-        <soap:body use="literal" />

-      </input>

-      <output>

-        <soap:body use="literal" />

-      </output>

-      <fault name="assertFault">

-        <soap:fault name="assertFault" use="literal" />

-      </fault>

-    </operation>

-    <operation name="echoAnyTypeArray">

-      <soap:operation style="document" />

-      <input>

-        <soap:body use="literal" />

-      </input>

-      <output>

-        <soap:body use="literal" />

-      </output>

-      <fault name="assertFault">

-        <soap:fault name="assertFault" use="literal" />

-      </fault>

-    </operation>

-    <operation name="echoDate">

-      <soap:operation soapAction=""/>

-      <input>

-         <soap:body use="literal"/>

-      </input>

-      <output>

-         <soap:body use="literal"/>

-      </output>

-    </operation>  

-	<operation name="echoPolymorphicDate">

-      <soap:operation soapAction=""/>

-      <input>

-        <soap:body use="literal"/>

-      </input>

-    </operation>

- </binding>

-

-  <service name="GorillaService">

-    <port name="GorillaPort" binding="tns:GorillaSOAP">

-      <soap:address location="http://localhost:9080/axis2/services/GorillaService" />

-    </port>

-  </service>

-</definitions>

diff --git a/modules/jaxws-integration/test/org/apache/axis2/META-INF/MANIFEST.MF b/modules/jaxws-integration/test/org/apache/axis2/META-INF/MANIFEST.MF
deleted file mode 100644
index 25cae61..0000000
--- a/modules/jaxws-integration/test/org/apache/axis2/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,4 +0,0 @@
-Manifest-Version: 1.0

-Ant-Version: Apache Ant 1.6.5

-Created-By: 2.3 (IBM Corporation)

-

diff --git a/modules/jaxws-integration/test/org/apache/axis2/jaxws/anytype/AnyTypeMessagePortTypeImpl.java b/modules/jaxws-integration/test/org/apache/axis2/jaxws/anytype/AnyTypeMessagePortTypeImpl.java
index bc0a4b1..f4825a8 100644
--- a/modules/jaxws-integration/test/org/apache/axis2/jaxws/anytype/AnyTypeMessagePortTypeImpl.java
+++ b/modules/jaxws-integration/test/org/apache/axis2/jaxws/anytype/AnyTypeMessagePortTypeImpl.java
@@ -19,13 +19,11 @@
 

 package org.apache.axis2.jaxws.anytype;

 

-import org.apache.axis2.jaxws.anytype.sei.AnyTypeMessagePortType;

-

 import javax.jws.WebService;

 

 @WebService(serviceName="AnyTypeMessageService",

 		targetNamespace="http://anytype.test.org",

-		endpointInterface="org.apache.axis2.jaxws.anytype.sei.AnyTypeMessagePortType")

+		endpointInterface="org.apache.axis2.jaxws.anytype.AnyTypeMessagePortType")

 public class AnyTypeMessagePortTypeImpl implements AnyTypeMessagePortType {

 

 	/* (non-Javadoc)

diff --git a/modules/jaxws-integration/test/org/apache/axis2/jaxws/anytype/sei/AnyTypeMessagePortType.java b/modules/jaxws-integration/test/org/apache/axis2/jaxws/anytype/sei/AnyTypeMessagePortType.java
deleted file mode 100644
index a6e2904..0000000
--- a/modules/jaxws-integration/test/org/apache/axis2/jaxws/anytype/sei/AnyTypeMessagePortType.java
+++ /dev/null
@@ -1,55 +0,0 @@
-

-/*

- * Licensed to the Apache Software Foundation (ASF) under one

- * or more contributor license agreements. See the NOTICE file

- * distributed with this work for additional information

- * regarding copyright ownership. The ASF licenses this file

- * to you under the Apache License, Version 2.0 (the

- * "License"); you may not use this file except in compliance

- * with the License. You may obtain a copy of the License at

- *

- * http://www.apache.org/licenses/LICENSE-2.0

- *

- * Unless required by applicable law or agreed to in writing,

- * software distributed under the License is distributed on an

- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

- * KIND, either express or implied. See the License for the

- * specific language governing permissions and limitations

- * under the License.

- */

-

-package org.apache.axis2.jaxws.anytype.sei;

-

-import javax.jws.WebMethod;

-import javax.jws.WebParam;

-import javax.jws.WebResult;

-import javax.jws.WebService;

-import javax.xml.ws.RequestWrapper;

-import javax.xml.ws.ResponseWrapper;

-

-

-/**

- * This class was generated by the JAXWS SI.

- * JAX-WS RI 2.0_01-b15-fcs

- * Generated source version: 2.0

- * 

- */

-@WebService(name = "AnyTypeMessagePortType", targetNamespace = "http://anytype.test.org")

-public interface AnyTypeMessagePortType {

-

-

-    /**

-     * 

-     * @param request

-     * @return

-     *     returns java.lang.Object

-     */

-    @WebMethod

-    @WebResult(name = "response", targetNamespace = "http://anytype.test.org")

-    @RequestWrapper(localName = "echoMessage", targetNamespace = "http://anytype.test.org", className = "org.test.anytype.EchoMessage")

-    @ResponseWrapper(localName = "echoMessageResponse", targetNamespace = "http://anytype.test.org", className = "org.test.anytype.EchoMessageResponse")

-    public Object echoMessage(

-        @WebParam(name = "request", targetNamespace = "http://anytype.test.org")

-        Object request);

-

-}

diff --git a/modules/jaxws-integration/test/org/apache/axis2/jaxws/anytype/sei/AnyTypeMessageService.java b/modules/jaxws-integration/test/org/apache/axis2/jaxws/anytype/sei/AnyTypeMessageService.java
deleted file mode 100644
index fba28b0..0000000
--- a/modules/jaxws-integration/test/org/apache/axis2/jaxws/anytype/sei/AnyTypeMessageService.java
+++ /dev/null
@@ -1,80 +0,0 @@
-

-/*

- * Licensed to the Apache Software Foundation (ASF) under one

- * or more contributor license agreements. See the NOTICE file

- * distributed with this work for additional information

- * regarding copyright ownership. The ASF licenses this file

- * to you under the Apache License, Version 2.0 (the

- * "License"); you may not use this file except in compliance

- * with the License. You may obtain a copy of the License at

- *

- * http://www.apache.org/licenses/LICENSE-2.0

- *

- * Unless required by applicable law or agreed to in writing,

- * software distributed under the License is distributed on an

- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

- * KIND, either express or implied. See the License for the

- * specific language governing permissions and limitations

- * under the License.

- */

-

-package org.apache.axis2.jaxws.anytype.sei;

-

-import javax.xml.namespace.QName;

-import javax.xml.ws.Service;

-import javax.xml.ws.WebEndpoint;

-import javax.xml.ws.WebServiceClient;

-import java.io.File;

-import java.net.MalformedURLException;

-import java.net.URL;

-

-/**

- * This class was generated by the JAXWS SI.

- * JAX-WS RI 2.0_01-b15-fcs

- * Generated source version: 2.0

- * 

- */

-@WebServiceClient(name = "AnyTypeMessageService", targetNamespace = "http://anytype.test.org", wsdlLocation = "AnyType.wsdl")

-public class AnyTypeMessageService

-    extends Service

-{

-

-    private final static URL ANYTYPEMESSAGESERVICE_WSDL_LOCATION;

-

-    private static String wsdlLocation="/test/org/apache/axis2/jaxws/anytype/META-INF/AnyType.wsdl";

-    static {

-        URL url = null;

-        try {

-        	try{

-	        	String baseDir = new File(System.getProperty("basedir",".")).getCanonicalPath();

-	        	wsdlLocation = new File(baseDir + wsdlLocation).getAbsolutePath();

-        	}catch(Exception e){

-        		e.printStackTrace();

-        	}

-        	File file = new File(wsdlLocation);

-        	url = file.toURL();

-        } catch (MalformedURLException e) {

-            e.printStackTrace();

-        }

-        ANYTYPEMESSAGESERVICE_WSDL_LOCATION = url;

-    }

-

-    public AnyTypeMessageService(URL wsdlLocation, QName serviceName) {

-        super(wsdlLocation, serviceName);

-    }

-

-    public AnyTypeMessageService() {

-        super(ANYTYPEMESSAGESERVICE_WSDL_LOCATION, new QName("http://anytype.test.org", "AnyTypeMessageService"));

-    }

-

-    /**

-     * 

-     * @return

-     *     returns AnyTypeMessagePortType

-     */

-    @WebEndpoint(name = "AnyTypePort")

-    public AnyTypeMessagePortType getAnyTypePort() {

-        return (AnyTypeMessagePortType)super.getPort(new QName("http://anytype.test.org", "AnyTypePort"), AnyTypeMessagePortType.class);

-    }

-

-}

diff --git a/modules/jaxws-integration/test/org/apache/axis2/jaxws/anytype/tests/AnyTypeTests.java b/modules/jaxws-integration/test/org/apache/axis2/jaxws/anytype/tests/AnyTypeTests.java
index fc59535..00cea53 100644
--- a/modules/jaxws-integration/test/org/apache/axis2/jaxws/anytype/tests/AnyTypeTests.java
+++ b/modules/jaxws-integration/test/org/apache/axis2/jaxws/anytype/tests/AnyTypeTests.java
@@ -19,49 +19,39 @@
 

 package org.apache.axis2.jaxws.anytype.tests;

 

-import junit.framework.Test;

-import junit.framework.TestSuite;

 import org.apache.axis2.jaxws.TestLogger;

-import org.apache.axis2.jaxws.anytype.sei.AnyTypeMessagePortType;

-import org.apache.axis2.jaxws.anytype.sei.AnyTypeMessageService;

-import org.apache.axis2.jaxws.framework.AbstractTestCase;

+import org.apache.axis2.jaxws.anytype.AnyTypeMessagePortType;

+import org.apache.axis2.jaxws.anytype.AnyTypeMessageService;

+import org.apache.axis2.testutils.Axis2Server;

+import org.junit.ClassRule;

+import org.junit.Test;

+

+import static org.junit.Assert.assertTrue;

 

 import javax.xml.ws.BindingProvider;

 

-public class AnyTypeTests extends AbstractTestCase {

+public class AnyTypeTests {

+    @ClassRule

+    public static Axis2Server server = new Axis2Server("target/repo");

     

-	String axisEndpoint = "http://localhost:6060/axis2/services/AnyTypeMessageService.AnyTypeMessagePortTypeImplPort";

-	

-    public static Test suite() {

-        return getTestSetup(new TestSuite(AnyTypeTests.class));

-    }

-

+    @Test

     public void testAnyTypeElementinWrappedWSDL(){

-        TestLogger.logger.debug("------------------------------");

-        TestLogger.logger.debug("Test : " + getName());

-        

         // Run test a few times to ensure correct 

         _testAnyTypeElementinWrappedWSDL();

         _testAnyTypeElementinWrappedWSDL();

         _testAnyTypeElementinWrappedWSDL();

-        

-        System.out.print("---------------------------------");

     }

     

     public void _testAnyTypeElementinWrappedWSDL(){

-        try{

-            AnyTypeMessageService service = new AnyTypeMessageService();

-            AnyTypeMessagePortType portType = service.getAnyTypePort();

-            BindingProvider p = (BindingProvider) portType;

-            p.getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, axisEndpoint);

+        AnyTypeMessageService service = new AnyTypeMessageService();

+        AnyTypeMessagePortType portType = service.getAnyTypePort();

+        BindingProvider p = (BindingProvider) portType;

+        p.getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY,

+                "http://localhost:" + server.getPort() + "/axis2/services/AnyTypeMessageService.AnyTypeMessagePortTypeImplPort");

 

-            String req = new String("Request as String");

-            Object response = portType.echoMessage(req);

-            assertTrue(response instanceof String);

-            TestLogger.logger.debug("Response =" + response);

-        }catch(Exception e){

-            e.printStackTrace();

-            fail();

-        }

+        String req = new String("Request as String");

+        Object response = portType.echoMessage(req);

+        assertTrue(response instanceof String);

+        TestLogger.logger.debug("Response =" + response);

     }

 }

diff --git a/modules/jaxws-integration/test/org/apache/axis2/jaxws/client/soapaction/BookStore.java b/modules/jaxws-integration/test/org/apache/axis2/jaxws/client/soapaction/BookStore.java
deleted file mode 100644
index 0356fa6..0000000
--- a/modules/jaxws-integration/test/org/apache/axis2/jaxws/client/soapaction/BookStore.java
+++ /dev/null
@@ -1,88 +0,0 @@
-/*

- * Licensed to the Apache Software Foundation (ASF) under one

- * or more contributor license agreements. See the NOTICE file

- * distributed with this work for additional information

- * regarding copyright ownership. The ASF licenses this file

- * to you under the Apache License, Version 2.0 (the

- * "License"); you may not use this file except in compliance

- * with the License. You may obtain a copy of the License at

- *

- * http://www.apache.org/licenses/LICENSE-2.0

- *

- * Unless required by applicable law or agreed to in writing,

- * software distributed under the License is distributed on an

- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

- * KIND, either express or implied. See the License for the

- * specific language governing permissions and limitations

- * under the License.

- */

-

-package org.apache.axis2.jaxws.client.soapaction;

-

-import javax.jws.WebMethod;

-import javax.jws.WebParam;

-import javax.jws.WebResult;

-import javax.jws.WebService;

-import javax.jws.soap.SOAPBinding;

-import javax.jws.soap.SOAPBinding.ParameterStyle;

-import javax.xml.ws.RequestWrapper;

-import javax.xml.ws.ResponseWrapper;

-

-@WebService(name = "BookStore", targetNamespace = "http://jaxws.axis2.apache.org/client/soapaction")

-public interface BookStore {

-

-    /**

-     * 

-     * @param item

-     * @return

-     *     returns float

-     */

-    @WebMethod

-    @WebResult(name = "price", targetNamespace = "http://jaxws.axis2.apache.org/client/soapaction")

-    @RequestWrapper(localName = "getPrice", targetNamespace = "http://jaxws.axis2.apache.org/client/soapaction", className = "org.apache.axis2.jaxws.client.soapaction.GetPriceType")

-    @ResponseWrapper(localName = "getPriceResponse", targetNamespace = "http://jaxws.axis2.apache.org/client/soapaction", className = "org.apache.axis2.jaxws.client.soapaction.GetPriceResponseType")

-    public float getPrice(

-        @WebParam(name = "item", targetNamespace = "http://jaxws.axis2.apache.org/client/soapaction")

-        String item);

-

-    /**

-     * 

-     * @param item

-     * @return

-     *     returns float

-     */

-    @WebMethod(action = "http://jaxws.axis2.apache.org/client/soapaction/getPrice")

-    @WebResult(name = "price", targetNamespace = "http://jaxws.axis2.apache.org/client/soapaction")

-    @RequestWrapper(localName = "getPriceWithAction", targetNamespace = "http://jaxws.axis2.apache.org/client/soapaction", className = "org.apache.axis2.jaxws.client.soapaction.GetPriceType")

-    @ResponseWrapper(localName = "getPriceWithActionResponse", targetNamespace = "http://jaxws.axis2.apache.org/client/soapaction", className = "org.apache.axis2.jaxws.client.soapaction.GetPriceResponseType")

-    public float getPriceWithAction(

-        @WebParam(name = "item", targetNamespace = "http://jaxws.axis2.apache.org/client/soapaction")

-        String item);

-

-    /**

-     * 

-     * @param item

-     * @return

-     *     returns int

-     */

-    @WebMethod

-    @WebResult(name = "inventory", targetNamespace = "http://jaxws.axis2.apache.org/client/soapaction", partName = "inventory")

-    @SOAPBinding(parameterStyle = ParameterStyle.BARE)

-    public int getInventory(

-        @WebParam(name = "item", targetNamespace = "http://jaxws.axis2.apache.org/client/soapaction", partName = "item")

-        String item);

-

-    /**

-     * 

-     * @param item

-     * @return

-     *     returns int

-     */

-    @WebMethod(action = "http://jaxws.axis2.apache.org/client/soapaction/getInventory")

-    @WebResult(name = "inventoryWithAction", targetNamespace = "http://jaxws.axis2.apache.org/client/soapaction", partName = "inventory")

-    @SOAPBinding(parameterStyle = ParameterStyle.BARE)

-    public int getInventoryWithAction(

-        @WebParam(name = "itemWithAction", targetNamespace = "http://jaxws.axis2.apache.org/client/soapaction", partName = "item")

-        String item);

-

-}

diff --git a/modules/jaxws-integration/test/org/apache/axis2/jaxws/client/soapaction/BookStoreService.java b/modules/jaxws-integration/test/org/apache/axis2/jaxws/client/soapaction/BookStoreService.java
deleted file mode 100644
index e944ecc..0000000
--- a/modules/jaxws-integration/test/org/apache/axis2/jaxws/client/soapaction/BookStoreService.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/*

- * Licensed to the Apache Software Foundation (ASF) under one

- * or more contributor license agreements. See the NOTICE file

- * distributed with this work for additional information

- * regarding copyright ownership. The ASF licenses this file

- * to you under the Apache License, Version 2.0 (the

- * "License"); you may not use this file except in compliance

- * with the License. You may obtain a copy of the License at

- *

- * http://www.apache.org/licenses/LICENSE-2.0

- *

- * Unless required by applicable law or agreed to in writing,

- * software distributed under the License is distributed on an

- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

- * KIND, either express or implied. See the License for the

- * specific language governing permissions and limitations

- * under the License.

- */

-

-package org.apache.axis2.jaxws.client.soapaction;

-

-import javax.xml.namespace.QName;

-import javax.xml.ws.Service;

-import javax.xml.ws.WebEndpoint;

-import javax.xml.ws.WebServiceClient;

-import java.io.File;

-import java.net.MalformedURLException;

-import java.net.URL;

-

-@WebServiceClient(name = "BookStoreService", targetNamespace = "http://jaxws.axis2.apache.org/client/soapaction", wsdlLocation = "SOAPActionTest.wsdl")

-public class BookStoreService

-    extends Service

-{

-

-    private static URL BOOKSTORESERVICE_WSDL_LOCATION;

-    private static String wsdlLocation="/test/org/apache/axis2/jaxws/client/soapaction/server/META-INF/SOAPActionTest.wsdl";

-    static {

-        URL url = null;

-        try {

-            try{

-                String baseDir = new File(System.getProperty("basedir",".")).getCanonicalPath();

-                wsdlLocation = new File(baseDir + wsdlLocation).getAbsolutePath();

-            }catch(Exception e){

-                e.printStackTrace();

-            }

-            File file = new File(wsdlLocation);

-            url = file.toURL();

-        } catch (MalformedURLException e) {

-            e.printStackTrace();

-        }

-        BOOKSTORESERVICE_WSDL_LOCATION = url;

-    }

-    

-    public BookStoreService(URL wsdlLocation, QName serviceName) {

-        super(wsdlLocation, serviceName);

-    }

-

-    public BookStoreService() {

-        super(BOOKSTORESERVICE_WSDL_LOCATION, new QName("http://jaxws.axis2.apache.org/client/soapaction", "BookStoreService"));

-    }

-

-    /**

-     * 

-     * @return

-     *     returns BookStore

-     */

-    @WebEndpoint(name = "BookStorePort")

-    public BookStore getBookStorePort() {

-        return (BookStore)super.getPort(new QName("http://jaxws.axis2.apache.org/client/soapaction", "BookStorePort"), BookStore.class);

-    }

-

-}

diff --git a/modules/jaxws-integration/test/org/apache/axis2/jaxws/context/MessageContextImpl.java b/modules/jaxws-integration/test/org/apache/axis2/jaxws/context/MessageContextImpl.java
index 46d561d..8af799e 100644
--- a/modules/jaxws-integration/test/org/apache/axis2/jaxws/context/MessageContextImpl.java
+++ b/modules/jaxws-integration/test/org/apache/axis2/jaxws/context/MessageContextImpl.java
@@ -35,7 +35,7 @@
     @Resource

     WebServiceContext ctxt;

     

-    public static WebServiceContext webServiceContext = null;

+    public static volatile WebServiceContext webServiceContext = null;

 

     public void isPropertyPresent(

             Holder<String> propertyName,

diff --git a/modules/jaxws-integration/test/org/apache/axis2/jaxws/context/sei/MessageContextService.java b/modules/jaxws-integration/test/org/apache/axis2/jaxws/context/sei/MessageContextService.java
index 1c33677..d833593 100644
--- a/modules/jaxws-integration/test/org/apache/axis2/jaxws/context/sei/MessageContextService.java
+++ b/modules/jaxws-integration/test/org/apache/axis2/jaxws/context/sei/MessageContextService.java
@@ -51,7 +51,7 @@
                 e.printStackTrace();

             }

             File file = new File(wsdlLocation);

-            url = file.toURL();

+            url = file.toURI().toURL();

         } catch (MalformedURLException e) {

             e.printStackTrace();

         }

diff --git a/modules/jaxws-integration/test/org/apache/axis2/jaxws/dispatch/CallbackHandler.java b/modules/jaxws-integration/test/org/apache/axis2/jaxws/dispatch/CallbackHandler.java
deleted file mode 100644
index 7d82d44..0000000
--- a/modules/jaxws-integration/test/org/apache/axis2/jaxws/dispatch/CallbackHandler.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*

- * Licensed to the Apache Software Foundation (ASF) under one

- * or more contributor license agreements. See the NOTICE file

- * distributed with this work for additional information

- * regarding copyright ownership. The ASF licenses this file

- * to you under the Apache License, Version 2.0 (the

- * "License"); you may not use this file except in compliance

- * with the License. You may obtain a copy of the License at

- *

- * http://www.apache.org/licenses/LICENSE-2.0

- *

- * Unless required by applicable law or agreed to in writing,

- * software distributed under the License is distributed on an

- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

- * KIND, either express or implied. See the License for the

- * specific language governing permissions and limitations

- * under the License.

- */

-

-package org.apache.axis2.jaxws.dispatch;

-

-import org.apache.axis2.jaxws.TestLogger;

-import org.apache.axis2.jaxws.message.util.Reader2Writer;

-

-import javax.xml.soap.SOAPMessage;

-import javax.xml.stream.XMLInputFactory;

-import javax.xml.stream.XMLStreamReader;

-import javax.xml.transform.Source;

-import javax.xml.ws.AsyncHandler;

-import javax.xml.ws.Response;

-

-public class CallbackHandler<T> implements AsyncHandler <T> {

-

-    public void handleResponse(Response response) {

-        TestLogger.logger.debug(">> Processing async reponse");

-        try{

-            T res = (T) response.get();

-            

-            if(res instanceof SOAPMessage){

-            	SOAPMessage message = (SOAPMessage) res;

-            	message.writeTo(System.out);

-            	

-            }

-            

-            if(res instanceof String){

-                TestLogger.logger.debug("Response [" + res + "]");

-            }

-            else if(Source.class.isAssignableFrom(res.getClass())){

-                Source source = (Source) res;

-                

-                XMLInputFactory inputFactory = XMLInputFactory.newInstance();

-                XMLStreamReader reader = inputFactory.createXMLStreamReader(source);

-                Reader2Writer r2w = new Reader2Writer(reader);

-                String responseText = r2w.getAsString();

-

-                TestLogger.logger.debug(responseText);

-            }

-            TestLogger.logger.debug("---------------------------------------------");

-        }catch(Exception e){

-            e.printStackTrace();

-        }

-    }

-}

diff --git a/modules/jaxws-integration/test/org/apache/axis2/jaxws/dispatch/DOMSourceDispatchTests.java b/modules/jaxws-integration/test/org/apache/axis2/jaxws/dispatch/DOMSourceDispatchTests.java
index 0bf04e8..0a5553e 100644
--- a/modules/jaxws-integration/test/org/apache/axis2/jaxws/dispatch/DOMSourceDispatchTests.java
+++ b/modules/jaxws-integration/test/org/apache/axis2/jaxws/dispatch/DOMSourceDispatchTests.java
@@ -21,16 +21,15 @@
 

 import junit.framework.Test;

 import junit.framework.TestSuite;

+

+import org.apache.axiom.om.OMXMLBuilderFactory;

 import org.apache.axis2.jaxws.TestLogger;

 import org.apache.axis2.jaxws.framework.AbstractTestCase;

-import org.apache.axis2.jaxws.message.util.Reader2Writer;

 import org.w3c.dom.Document;

 import org.w3c.dom.Node;

 

 import javax.xml.parsers.DocumentBuilder;

 import javax.xml.parsers.DocumentBuilderFactory;

-import javax.xml.stream.XMLInputFactory;

-import javax.xml.stream.XMLStreamReader;

 import javax.xml.transform.Source;

 import javax.xml.transform.dom.DOMSource;

 import javax.xml.ws.Dispatch;

@@ -38,6 +37,7 @@
 import javax.xml.ws.Service;

 import javax.xml.ws.WebServiceException;

 import java.io.ByteArrayInputStream;

+import java.io.StringWriter;

 import java.util.concurrent.Future;

 

 /**

@@ -45,9 +45,6 @@
  * javax.xml.transform.dom.DOMSource 

  */

 public class DOMSourceDispatchTests extends AbstractTestCase{

-

-    private static final XMLInputFactory inputFactory = XMLInputFactory.newInstance();

-

     public static Test suite() {

         return getTestSetup(new TestSuite(DOMSourceDispatchTests.class));

     }

@@ -467,9 +464,8 @@
      * @return

      */

     private String createStringFromSource(Source input) throws Exception {

-        XMLStreamReader reader = inputFactory.createXMLStreamReader(input);

-        Reader2Writer r2w = new Reader2Writer(reader);

-        String text = r2w.getAsString();

-        return text;

+        StringWriter sw = new StringWriter();

+        OMXMLBuilderFactory.createOMBuilder(input).getDocument().serializeAndConsume(sw);

+        return sw.toString();

     }

 }

diff --git a/modules/jaxws-integration/test/org/apache/axis2/jaxws/dispatch/OMElementDispatchTest.java b/modules/jaxws-integration/test/org/apache/axis2/jaxws/dispatch/OMElementDispatchTest.java
index 8a513b0..48c3bd8 100644
--- a/modules/jaxws-integration/test/org/apache/axis2/jaxws/dispatch/OMElementDispatchTest.java
+++ b/modules/jaxws-integration/test/org/apache/axis2/jaxws/dispatch/OMElementDispatchTest.java
@@ -21,12 +21,9 @@
 

 import java.io.ByteArrayInputStream;

 import java.io.ByteArrayOutputStream;

-import java.io.InputStream;

 import java.io.StringReader;

 

 import javax.xml.namespace.QName;

-import javax.xml.stream.XMLInputFactory;

-import javax.xml.stream.XMLStreamReader;

 import javax.xml.transform.Source;

 import javax.xml.transform.Transformer;

 import javax.xml.transform.TransformerFactory;

@@ -41,15 +38,11 @@
 import junit.framework.TestSuite;

 

 import org.apache.axiom.om.OMElement;

-import org.apache.axiom.om.OMSourcedElement;

-import org.apache.axiom.om.impl.builder.StAXOMBuilder;

-import org.apache.axiom.soap.SOAPBody;

+import org.apache.axiom.om.OMXMLBuilderFactory;

+import org.apache.axiom.om.OMXMLParserWrapper;

 import org.apache.axiom.soap.SOAPEnvelope;

-import org.apache.axiom.soap.impl.builder.StAXSOAPModelBuilder;

+import org.apache.axiom.soap.SOAPModelBuilder;

 import org.apache.axis2.jaxws.framework.AbstractTestCase;

-import org.apache.axis2.jaxws.message.databinding.ParsedEntityReader;

-import org.apache.axis2.jaxws.message.factory.ParsedEntityReaderFactory;

-import org.apache.axis2.jaxws.registry.FactoryRegistry;

 

 /**

  * This class uses the JAX-WS Dispatch API to test sending and receiving

@@ -67,10 +60,6 @@
         "<test:echoOMElement xmlns:test=\"http://org/apache/axis2/jaxws/test/OMELEMENT\">" +

         "<test:input>SAMPLE REQUEST MESSAGE</test:input>" +

         "</test:echoOMElement>";

-    private static final String testResponse = 

-        "<test:echoOMElement xmlns:test=\"http://org/apache/axis2/jaxws/test/OMELEMENT\">" +

-        "<test:output>TEST RESPONSE MESSAGE</test:output>" +

-        "</test:echoOMElement>";

     private static final String sampleEnvelopeHead = 

         "<soapenv:Envelope xmlns:soapenv=\"http://www.w3.org/2003/05/soap-envelope\">" +

         "<soapenv:Header /><soapenv:Body>";

@@ -81,8 +70,6 @@
         sampleRequest + 

         sampleEnvelopeTail;

 

-    private static XMLInputFactory inputFactory = XMLInputFactory.newInstance();

-    

     public static Test suite() {

         return getTestSetup(new TestSuite(OMElementDispatchTest.class));

     }

@@ -237,8 +224,7 @@
         // Create the OMElement object with the payload contents.  Since

         // we're in PAYLOAD mode, we don't have to worry about the envelope.

         StringReader sr = new StringReader(sampleRequest);

-        XMLStreamReader inputReader = inputFactory.createXMLStreamReader(sr);

-        StAXOMBuilder builder = new StAXOMBuilder(inputReader);  

+        OMXMLParserWrapper builder = OMXMLBuilderFactory.createOMBuilder(sr);  

         OMElement om = builder.getDocumentElement();

         

         // Send the SOAP 1.2 request

@@ -285,8 +271,7 @@
         // Create the OMElement object with the payload contents.  Since

         // we're in PAYLOAD mode, we don't have to worry about the envelope.

         StringReader sr = new StringReader(sampleEnvelope);

-        XMLStreamReader inputReader = inputFactory.createXMLStreamReader(sr);

-        StAXSOAPModelBuilder builder = new StAXSOAPModelBuilder(inputReader, null); 

+        SOAPModelBuilder builder = OMXMLBuilderFactory.createSOAPModelBuilder(sr); 

         SOAPEnvelope soap12Envelope = (SOAPEnvelope) builder.getDocumentElement();

         

         

@@ -308,8 +293,7 @@
         assertTrue(!responseText.contains("http://schemas.xmlsoap.org/soap/envelope"));

         

         StringReader sr2 = new StringReader(sampleEnvelope);

-        inputReader = inputFactory.createXMLStreamReader(sr2);

-        builder = new StAXSOAPModelBuilder(inputReader, null);  

+        builder = OMXMLBuilderFactory.createSOAPModelBuilder(sr2);  

         SOAPEnvelope om = (SOAPEnvelope)builder.getDocumentElement();

         response = dispatch.invoke(om);

         

@@ -327,80 +311,4 @@
         assertTrue(responseText.contains("http://www.w3.org/2003/05/soap-envelope"));

         assertTrue(!responseText.contains("http://schemas.xmlsoap.org/soap/envelope"));

     }

-    

-    /**

-     * Test sending a SOAP 1.2 request in MESSAGE mode with

-     * a Parser that can provide the InputStream for the payload

-     */

-    public void testOMElementDispatchWithParsedEntityReader() throws Exception {

-        

-        // Subsitute a ParsedEntityReader that will provide the

-        // payload InputStream.  This simulates parsers that provide this

-        // feature.

-        ParsedEntityReaderFactory factory = (ParsedEntityReaderFactory)

-        FactoryRegistry.getFactory(ParsedEntityReaderFactory.class);

-        ParsedEntityReader per = new ParsedEntityReaderTest();

-        factory.setParsetEntityReader(per);

-        

-        try {

-            // Create the JAX-WS client needed to send the request

-            Service service = Service.create(QNAME_SERVICE);

-            service.addPort(QNAME_PORT, SOAPBinding.SOAP12HTTP_BINDING, URL_ENDPOINT);

-            Dispatch<OMElement> dispatch = service.createDispatch(

-                    QNAME_PORT, OMElement.class, Mode.MESSAGE);

-

-            // Create the OMElement object with the payload contents.  Since

-            // we're in PAYLOAD mode, we don't have to worry about the envelope.

-            StringReader sr = new StringReader(sampleEnvelope);

-            XMLStreamReader inputReader = inputFactory.createXMLStreamReader(sr);

-            StAXSOAPModelBuilder builder = new StAXSOAPModelBuilder(inputReader, null); 

-            SOAPEnvelope soap12Envelope = (SOAPEnvelope) builder.getDocumentElement();

-

-

-            // Invoke

-            OMElement response = dispatch.invoke(soap12Envelope);

-            

-

-            SOAPEnvelope responseEnv = (SOAPEnvelope) response;

-            SOAPBody responseBody = responseEnv.getBody();

-            OMElement payload = responseBody.getFirstElement();

-

-            // At this point, the payload should be an OMSourcedElement

-            // that was created from the ParsedEntityReader's stream

-            assertTrue(payload instanceof OMSourcedElement);

-

-

-            // Check to make sure the contents of the message are correct

-            String responseText = payload.toStringWithConsume();

-            assertTrue(responseText.contains("TEST RESPONSE"));

-        } finally {

-            

-            // Uninstall the Test ParsedEntityReader

-            factory.setParsetEntityReader(null);

-        }

-    }

-    

-    /**

-     * The purpose of a ParsedEntityReader is to get the 

-     * InputStream from the parser if it is available.

-     * Woodstox and other parsers don't provide that feature.

-     * To simulate this feature, this ParserEntityReaderTest is

-     * inserted to simulate getting a response from the Parser.

-     */

-    public class ParsedEntityReaderTest implements ParsedEntityReader {

-        int count =0;

-        public boolean isParsedEntityStreamAvailable() {

-            return true;

-        }

-

-        public InputStream readParsedEntityStream(XMLStreamReader reader) {

-            count++;

-            if (count == 2) {

-                return new ByteArrayInputStream(testResponse.getBytes()); 

-            } else  {

-                return null;

-            }

-        }

-

-    }

 }

diff --git a/modules/jaxws-integration/test/org/apache/axis2/jaxws/dispatch/SAXSourceDispatchTests.java b/modules/jaxws-integration/test/org/apache/axis2/jaxws/dispatch/SAXSourceDispatchTests.java
index 868f705..bd0fff0 100644
--- a/modules/jaxws-integration/test/org/apache/axis2/jaxws/dispatch/SAXSourceDispatchTests.java
+++ b/modules/jaxws-integration/test/org/apache/axis2/jaxws/dispatch/SAXSourceDispatchTests.java
@@ -21,13 +21,12 @@
 

 import junit.framework.Test;

 import junit.framework.TestSuite;

+

+import org.apache.axiom.om.OMXMLBuilderFactory;

 import org.apache.axis2.jaxws.TestLogger;

 import org.apache.axis2.jaxws.framework.AbstractTestCase;

-import org.apache.axis2.jaxws.message.util.Reader2Writer;

 import org.xml.sax.InputSource;

 

-import javax.xml.stream.XMLInputFactory;

-import javax.xml.stream.XMLStreamReader;

 import javax.xml.transform.Source;

 import javax.xml.transform.sax.SAXSource;

 import javax.xml.ws.Dispatch;

@@ -35,6 +34,7 @@
 import javax.xml.ws.Service;

 import javax.xml.ws.WebServiceException;

 import java.io.ByteArrayInputStream;

+import java.io.StringWriter;

 import java.util.concurrent.Future;

 

 /**

@@ -42,9 +42,6 @@
  * forms of a javax.xml.transform.sax.SAXSource.

  */

 public class SAXSourceDispatchTests extends AbstractTestCase{

-

-    private static final XMLInputFactory inputFactory = XMLInputFactory.newInstance();

-

     public static Test suite() {

         return getTestSetup(new TestSuite(SAXSourceDispatchTests.class));

     }

@@ -71,9 +68,9 @@
         assertNotNull("dispatch invoke returned null", response);

         

         // Prepare the response content for checking

-        XMLStreamReader reader = inputFactory.createXMLStreamReader(response);

-        Reader2Writer r2w = new Reader2Writer(reader);

-        String responseText = r2w.getAsString();

+        StringWriter sw = new StringWriter();

+        OMXMLBuilderFactory.createOMBuilder(response).getDocument().serializeAndConsume(sw);

+        String responseText = sw.toString();

         TestLogger.logger.debug(responseText);

         

         // Check to make sure the content is correct

@@ -93,9 +90,9 @@
         assertNotNull("dispatch invoke returned null", response);

         

         // Prepare the response content for checking

-        reader = inputFactory.createXMLStreamReader(response);

-        r2w = new Reader2Writer(reader);

-        responseText = r2w.getAsString();

+        sw = new StringWriter();

+        OMXMLBuilderFactory.createOMBuilder(response).getDocument().serializeAndConsume(sw);

+        responseText = sw.toString();

         TestLogger.logger.debug(responseText);

         

         // Check to make sure the content is correct

@@ -128,9 +125,9 @@
         assertNotNull("dispatch invoke returned null", response);

         

         // Prepare the response content for checking

-        XMLStreamReader reader = inputFactory.createXMLStreamReader(response);

-        Reader2Writer r2w = new Reader2Writer(reader);

-        String responseText = r2w.getAsString();

+        StringWriter sw = new StringWriter();

+        OMXMLBuilderFactory.createOMBuilder(response).getDocument().serializeAndConsume(sw);

+        String responseText = sw.toString();

         TestLogger.logger.debug(responseText);

         

         // Check to make sure the content is correct

@@ -151,9 +148,9 @@
         assertNotNull("dispatch invoke returned null", response);

         

         // Prepare the response content for checking

-        reader = inputFactory.createXMLStreamReader(response);

-        r2w = new Reader2Writer(reader);

-        responseText = r2w.getAsString();

+        sw = new StringWriter();

+        OMXMLBuilderFactory.createOMBuilder(response).getDocument().serializeAndConsume(sw);

+        responseText = sw.toString();

         TestLogger.logger.debug(responseText);

         

         // Check to make sure the content is correct

@@ -194,9 +191,9 @@
         assertNotNull("dispatch invoke returned null", response);

         

         // Prepare the response content for checking

-        XMLStreamReader reader = inputFactory.createXMLStreamReader(response);

-        Reader2Writer r2w = new Reader2Writer(reader);

-        String responseText = r2w.getAsString();

+        StringWriter sw = new StringWriter();

+        OMXMLBuilderFactory.createOMBuilder(response).getDocument().serializeAndConsume(sw);

+        String responseText = sw.toString();

         TestLogger.logger.debug(responseText);

         

         // Check to make sure the content is correct

@@ -225,9 +222,9 @@
         assertNotNull("dispatch invoke returned null", response);

         

         // Prepare the response content for checking

-        reader = inputFactory.createXMLStreamReader(response);

-        r2w = new Reader2Writer(reader);

-        responseText = r2w.getAsString();

+        sw = new StringWriter();

+        OMXMLBuilderFactory.createOMBuilder(response).getDocument().serializeAndConsume(sw);

+        responseText = sw.toString();

         TestLogger.logger.debug(responseText);

         

         // Check to make sure the content is correct

@@ -268,9 +265,9 @@
         assertNotNull("dispatch invoke returned null", response);

         

         // Prepare the response content for checking

-        XMLStreamReader reader = inputFactory.createXMLStreamReader(response);

-        Reader2Writer r2w = new Reader2Writer(reader);

-        String responseText = r2w.getAsString();

+        StringWriter sw = new StringWriter();

+        OMXMLBuilderFactory.createOMBuilder(response).getDocument().serializeAndConsume(sw);

+        String responseText = sw.toString();

         TestLogger.logger.debug(responseText);

         

         // Check to make sure the content is correct

@@ -299,9 +296,9 @@
         assertNotNull("dispatch invoke returned null", response);

         

         // Prepare the response content for checking

-        reader = inputFactory.createXMLStreamReader(response);

-        r2w = new Reader2Writer(reader);

-        responseText = r2w.getAsString();

+        sw = new StringWriter();

+        OMXMLBuilderFactory.createOMBuilder(response).getDocument().serializeAndConsume(sw);

+        responseText = sw.toString();

         TestLogger.logger.debug(responseText);

         

         // Check to make sure the content is correct

@@ -339,9 +336,9 @@
         assertNotNull("dispatch invoke returned null", response);

         

         // Prepare the response content for checking

-        XMLStreamReader reader = inputFactory.createXMLStreamReader(response);

-        Reader2Writer r2w = new Reader2Writer(reader);

-        String responseText = r2w.getAsString();

+        StringWriter sw = new StringWriter();

+        OMXMLBuilderFactory.createOMBuilder(response).getDocument().serializeAndConsume(sw);

+        String responseText = sw.toString();

         TestLogger.logger.debug(responseText);

         

         // Check to make sure the content is correct

@@ -368,9 +365,9 @@
         assertNotNull("dispatch invoke returned null", response);

         

         // Prepare the response content for checking

-        reader = inputFactory.createXMLStreamReader(response);

-        r2w = new Reader2Writer(reader);

-        responseText = r2w.getAsString();

+        sw = new StringWriter();

+        OMXMLBuilderFactory.createOMBuilder(response).getDocument().serializeAndConsume(sw);

+        responseText = sw.toString();

         TestLogger.logger.debug(responseText);

         

         // Check to make sure the content is correct

@@ -408,9 +405,9 @@
         assertNotNull("dispatch invoke returned null", response);

         

         // Prepare the response content for checking

-        XMLStreamReader reader = inputFactory.createXMLStreamReader(response);

-        Reader2Writer r2w = new Reader2Writer(reader);

-        String responseText = r2w.getAsString();

+        StringWriter sw = new StringWriter();

+        OMXMLBuilderFactory.createOMBuilder(response).getDocument().serializeAndConsume(sw);

+        String responseText = sw.toString();

         TestLogger.logger.debug(responseText);

         

         // Check to make sure the content is correct

@@ -437,9 +434,9 @@
         assertNotNull("dispatch invoke returned null", response);

         

         // Prepare the response content for checking

-        reader = inputFactory.createXMLStreamReader(response);

-        r2w = new Reader2Writer(reader);

-        responseText = r2w.getAsString();

+        sw = new StringWriter();

+        OMXMLBuilderFactory.createOMBuilder(response).getDocument().serializeAndConsume(sw);

+        responseText = sw.toString();

         TestLogger.logger.debug(responseText);

         

         // Check to make sure the content is correct

diff --git a/modules/jaxws-integration/test/org/apache/axis2/jaxws/dispatch/StreamSourceDispatchTests.java b/modules/jaxws-integration/test/org/apache/axis2/jaxws/dispatch/StreamSourceDispatchTests.java
index 35fa1ce..1bcd6a7 100644
--- a/modules/jaxws-integration/test/org/apache/axis2/jaxws/dispatch/StreamSourceDispatchTests.java
+++ b/modules/jaxws-integration/test/org/apache/axis2/jaxws/dispatch/StreamSourceDispatchTests.java
@@ -21,12 +21,11 @@
 

 import junit.framework.Test;

 import junit.framework.TestSuite;

+

+import org.apache.axiom.om.OMXMLBuilderFactory;

 import org.apache.axis2.jaxws.TestLogger;

 import org.apache.axis2.jaxws.framework.AbstractTestCase;

-import org.apache.axis2.jaxws.message.util.Reader2Writer;

 

-import javax.xml.stream.XMLInputFactory;

-import javax.xml.stream.XMLStreamReader;

 import javax.xml.transform.Source;

 import javax.xml.transform.stream.StreamSource;

 import javax.xml.ws.Dispatch;

@@ -35,6 +34,7 @@
 import javax.xml.ws.Service.Mode;

 import java.io.ByteArrayInputStream;

 import java.io.InputStream;

+import java.io.StringWriter;

 import java.util.concurrent.Future;

 

 /**

@@ -43,10 +43,6 @@
  *

  */

 public class StreamSourceDispatchTests extends AbstractTestCase {

-

-    private static XMLInputFactory inputFactory = XMLInputFactory.newInstance();

-    

-    

     public static Test suite() {

         return getTestSetup(new TestSuite(StreamSourceDispatchTests.class));

     }

@@ -75,9 +71,9 @@
 		assertNotNull(response);

         

         // Prepare the response content for checking

-        XMLStreamReader reader = inputFactory.createXMLStreamReader(response);

-        Reader2Writer r2w = new Reader2Writer(reader);

-        String responseText = r2w.getAsString();

+        StringWriter sw = new StringWriter();

+        OMXMLBuilderFactory.createOMBuilder(response).getDocument().serializeAndConsume(sw);

+        String responseText = sw.toString();

         TestLogger.logger.debug(responseText);

         

         // Check to make sure the content is correct

@@ -96,9 +92,9 @@
         assertNotNull(response);

         

         // Prepare the response content for checking

-        reader = inputFactory.createXMLStreamReader(response);

-        r2w = new Reader2Writer(reader);

-        responseText = r2w.getAsString();

+        sw = new StringWriter();

+        OMXMLBuilderFactory.createOMBuilder(response).getDocument().serializeAndConsume(sw);

+        responseText = sw.toString();

         TestLogger.logger.debug(responseText);

         

         // Check to make sure the content is correct

@@ -131,9 +127,9 @@
         assertNotNull(response);

 

         // Prepare the response content for checking

-        XMLStreamReader reader = inputFactory.createXMLStreamReader(response);

-        Reader2Writer r2w = new Reader2Writer(reader);

-        String responseText = r2w.getAsString();

+        StringWriter sw = new StringWriter();

+        OMXMLBuilderFactory.createOMBuilder(response).getDocument().serializeAndConsume(sw);

+        String responseText = sw.toString();

         TestLogger.logger.debug(responseText);

         

         // Check to make sure the content is correct

@@ -151,9 +147,9 @@
         assertNotNull(response);

 

         // Prepare the response content for checking

-        reader = inputFactory.createXMLStreamReader(response);

-        r2w = new Reader2Writer(reader);

-        responseText = r2w.getAsString();

+        sw = new StringWriter();

+        OMXMLBuilderFactory.createOMBuilder(response).getDocument().serializeAndConsume(sw);

+        responseText = sw.toString();

         TestLogger.logger.debug(responseText);

         

         // Check to make sure the content is correct

@@ -197,9 +193,9 @@
         assertNotNull(response);

         

         // Prepare the response content for checking

-        XMLStreamReader reader = inputFactory.createXMLStreamReader(response);

-        Reader2Writer r2w = new Reader2Writer(reader);

-        String responseText = r2w.getAsString();

+        StringWriter sw = new StringWriter();

+        OMXMLBuilderFactory.createOMBuilder(response).getDocument().serializeAndConsume(sw);

+        String responseText = sw.toString();

         TestLogger.logger.debug(responseText);

         

         // Check to make sure the content is correct

@@ -226,9 +222,9 @@
         assertNotNull(response);

         

         // Prepare the response content for checking

-        reader = inputFactory.createXMLStreamReader(response);

-        r2w = new Reader2Writer(reader);

-        responseText = r2w.getAsString();

+        sw = new StringWriter();

+        OMXMLBuilderFactory.createOMBuilder(response).getDocument().serializeAndConsume(sw);

+        responseText = sw.toString();

         TestLogger.logger.debug(responseText);

         

         // Check to make sure the content is correct

@@ -272,9 +268,9 @@
         assertNotNull(response);

 

         // Prepare the response content for checking

-        XMLStreamReader reader = inputFactory.createXMLStreamReader(response);

-        Reader2Writer r2w = new Reader2Writer(reader);

-        String responseText = r2w.getAsString();

+        StringWriter sw = new StringWriter();

+        OMXMLBuilderFactory.createOMBuilder(response).getDocument().serializeAndConsume(sw);

+        String responseText = sw.toString();

         TestLogger.logger.debug(responseText);

         

         // Check to make sure the content is correct

@@ -306,9 +302,9 @@
         assertNotNull(response);

 

         // Prepare the response content for checking

-        reader = inputFactory.createXMLStreamReader(response);

-        r2w = new Reader2Writer(reader);

-        responseText = r2w.getAsString();

+        sw = new StringWriter();

+        OMXMLBuilderFactory.createOMBuilder(response).getDocument().serializeAndConsume(sw);

+        responseText = sw.toString();

         TestLogger.logger.debug(responseText);

         

         // Check to make sure the content is correct

@@ -348,9 +344,9 @@
         assertNotNull(response);

         

         // Prepare the response content for checking

-        XMLStreamReader reader = inputFactory.createXMLStreamReader(response);

-        Reader2Writer r2w = new Reader2Writer(reader);

-        String responseText = r2w.getAsString();

+        StringWriter sw = new StringWriter();

+        OMXMLBuilderFactory.createOMBuilder(response).getDocument().serializeAndConsume(sw);

+        String responseText = sw.toString();

         TestLogger.logger.debug(responseText);

         

         // Check to make sure the content is correct

@@ -376,9 +372,9 @@
         assertNotNull(response);

         

         // Prepare the response content for checking

-        reader = inputFactory.createXMLStreamReader(response);

-        r2w = new Reader2Writer(reader);

-        responseText = r2w.getAsString();

+        sw = new StringWriter();

+        OMXMLBuilderFactory.createOMBuilder(response).getDocument().serializeAndConsume(sw);

+        responseText = sw.toString();

         TestLogger.logger.debug(responseText);

         

         // Check to make sure the content is correct

@@ -419,9 +415,9 @@
         assertNotNull(response);

 

         // Prepare the response content for checking

-        XMLStreamReader reader = inputFactory.createXMLStreamReader(response);

-        Reader2Writer r2w = new Reader2Writer(reader);

-        String responseText = r2w.getAsString();

+        StringWriter sw = new StringWriter();

+        OMXMLBuilderFactory.createOMBuilder(response).getDocument().serializeAndConsume(sw);

+        String responseText = sw.toString();

         TestLogger.logger.debug(responseText);

         

         // Check to make sure the content is correct

@@ -448,9 +444,9 @@
         assertNotNull(response);

 

         // Prepare the response content for checking

-        reader = inputFactory.createXMLStreamReader(response);

-        r2w = new Reader2Writer(reader);

-        responseText = r2w.getAsString();

+        sw = new StringWriter();

+        OMXMLBuilderFactory.createOMBuilder(response).getDocument().serializeAndConsume(sw);

+        responseText = sw.toString();

         TestLogger.logger.debug(responseText);

         

         // Check to make sure the content is correct

diff --git a/modules/jaxws-integration/test/org/apache/axis2/jaxws/dispatch/server/OMElementProvider.java b/modules/jaxws-integration/test/org/apache/axis2/jaxws/dispatch/server/OMElementProvider.java
index b5e2294..173fea0 100644
--- a/modules/jaxws-integration/test/org/apache/axis2/jaxws/dispatch/server/OMElementProvider.java
+++ b/modules/jaxws-integration/test/org/apache/axis2/jaxws/dispatch/server/OMElementProvider.java
@@ -36,7 +36,6 @@
 import org.apache.axiom.soap.SOAPBody;

 import org.apache.axiom.soap.SOAPEnvelope;

 import org.apache.axiom.soap.SOAPFactory;

-import org.apache.axiom.soap.impl.llom.soap12.SOAP12Factory;

 

 /**

  * A Provider&lt;OMElement&gt; implementation used to test sending and 

@@ -68,7 +67,7 @@
 

         OMElement payload = createPayload();

         

-        SOAPFactory factory = new SOAP12Factory();

+        SOAPFactory factory = OMAbstractFactory.getSOAP12Factory();

         SOAPEnvelope env = factory.createSOAPEnvelope();

         SOAPBody body = factory.createSOAPBody(env);

         

diff --git a/modules/jaxws-integration/test/org/apache/axis2/jaxws/jaxb/string/JAXBStringService.java b/modules/jaxws-integration/test/org/apache/axis2/jaxws/jaxb/string/JAXBStringService.java
index be0e319..c1e1a85 100644
--- a/modules/jaxws-integration/test/org/apache/axis2/jaxws/jaxb/string/JAXBStringService.java
+++ b/modules/jaxws-integration/test/org/apache/axis2/jaxws/jaxb/string/JAXBStringService.java
@@ -32,7 +32,7 @@
                         e.printStackTrace();

                 }

                 File file = new File(wsdlLocation);

-                url = file.toURL();

+                url = file.toURI().toURL();

         } catch (MalformedURLException e) {

             e.printStackTrace();

         }

diff --git a/modules/jaxws-integration/test/org/apache/axis2/jaxws/misc/JAXBContextTest.java b/modules/jaxws-integration/test/org/apache/axis2/jaxws/misc/JAXBContextTest.java
index 197b5cf..77e1c8a 100644
--- a/modules/jaxws-integration/test/org/apache/axis2/jaxws/misc/JAXBContextTest.java
+++ b/modules/jaxws-integration/test/org/apache/axis2/jaxws/misc/JAXBContextTest.java
@@ -49,22 +49,22 @@
     	// Get a JAXBContext

     	TreeSet<String> context1 = new TreeSet<String>();

     	context1.add("org.test.addnumbers");

-    	context1.add("org.test.anytype");

+    	context1.add("org.apache.axis2.jaxws.anytype");

 

     	JAXBContext jaxbContext1 = JAXBUtils.getJAXBContext(context1);

 

     	// Assert that the JAXBContext was found and the context contains the two valid packages

     	assertTrue(jaxbContext1 != null);

     	assertTrue(context1.contains("org.test.addnumbers"));

-    	assertTrue(context1.contains("org.test.anytype"));

+    	assertTrue(context1.contains("org.apache.axis2.jaxws.anytype"));

     	String context1String = jaxbContext1.toString();

         assertTrue(context1String.contains("org.test.addnumbers"));

-        assertTrue(context1String.contains("org.test.anytype")); 

+        assertTrue(context1String.contains("org.apache.axis2.jaxws.anytype")); 

 

     	// Repeat with the same packages

     	TreeSet<String> context2 = new TreeSet<String>();

     	context2.add("org.test.addnumbers");

-    	context2.add("org.test.anytype");

+    	context2.add("org.apache.axis2.jaxws.anytype");

 

     	JAXBContext jaxbContext2 = JAXBUtils.getJAXBContext(context2);

 

@@ -73,16 +73,16 @@
     	assertTrue(jaxbContext2 != null);

     	assertTrue(jaxbContext2.toString().equals(jaxbContext1.toString()));

     	assertTrue(context2.contains("org.test.addnumbers"));

-    	assertTrue(context2.contains("org.test.anytype"));

+    	assertTrue(context2.contains("org.apache.axis2.jaxws.anytype"));

     	String context2String = jaxbContext2.toString();

         assertTrue(context2String.contains("org.test.addnumbers"));

-        assertTrue(context2String.contains("org.test.anytype")); 

+        assertTrue(context2String.contains("org.apache.axis2.jaxws.anytype")); 

         

 

     	// Repeat with the same packages + an invalid package

     	TreeSet<String> context3 = new TreeSet<String>();

     	context3.add("org.test.addnumbers");

-    	context3.add("org.test.anytype");

+    	context3.add("org.apache.axis2.jaxws.anytype");

     	context3.add("my.grandma.loves.jaxws");

 

     	JAXBContext jaxbContext3 = JAXBUtils.getJAXBContext(context3);

@@ -92,11 +92,11 @@
     	assertTrue(jaxbContext3 != null);

 

     	assertTrue(context3.contains("org.test.addnumbers"));

-    	assertTrue(context3.contains("org.test.anytype")); 

+    	assertTrue(context3.contains("org.apache.axis2.jaxws.anytype")); 

     	assertTrue(context3.contains("my.grandma.loves.jaxws")); 

     	String context3String = jaxbContext3.toString();

     	assertTrue(context3String.contains("org.test.addnumbers"));

-        assertTrue(context3String.contains("org.test.anytype")); 

+        assertTrue(context3String.contains("org.apache.axis2.jaxws.anytype")); 

         assertTrue(!context3String.contains("my.grandma.loves.jaxws")); 

 

     	// Repeat with a subset of packages

@@ -119,7 +119,7 @@
         // Get a JAXBContext

         TreeSet<String> context1 = new TreeSet<String>();

         context1.add("org.test.addnumbers");

-        context1.add("org.test.anytype");

+        context1.add("org.apache.axis2.jaxws.anytype");

         context1.add("org.apache.axis2.jaxws.misc.jaxbexclude");

 

         JAXBContext jaxbContext1 = JAXBUtils.getJAXBContext(context1);

@@ -127,17 +127,17 @@
         // Assert that the JAXBContext was found and the context contains the two valid packages

         assertTrue(jaxbContext1 != null);

         assertTrue(context1.contains("org.test.addnumbers"));

-        assertTrue(context1.contains("org.test.anytype"));

+        assertTrue(context1.contains("org.apache.axis2.jaxws.anytype"));

         assertTrue(context1.contains("org.apache.axis2.jaxws.misc.jaxbexclude"));

         String context1String = jaxbContext1.toString();

         assertTrue(context1String.contains("org.test.addnumbers"));

-        assertTrue(context1String.contains("org.test.anytype")); 

+        assertTrue(context1String.contains("org.apache.axis2.jaxws.anytype")); 

         assertTrue(!context1String.contains("org.apache.axis2.jaxws.misc.jaxbexclude")); 

 

         // Repeat with the same packages

         TreeSet<String> context2 = new TreeSet<String>();

         context2.add("org.test.addnumbers");

-        context2.add("org.test.anytype");

+        context2.add("org.apache.axis2.jaxws.anytype");

         context2.add("org.apache.axis2.jaxws.misc.jaxbexclude");

 

         JAXBContext jaxbContext2 = JAXBUtils.getJAXBContext(context2);

@@ -147,16 +147,16 @@
         assertTrue(jaxbContext2 != null);

         assertTrue(jaxbContext2.toString().equals(jaxbContext1.toString()));

         assertTrue(context2.contains("org.test.addnumbers"));

-        assertTrue(context2.contains("org.test.anytype"));

+        assertTrue(context2.contains("org.apache.axis2.jaxws.anytype"));

         String context2String = jaxbContext2.toString();

         assertTrue(context2String.contains("org.test.addnumbers"));

-        assertTrue(context2String.contains("org.test.anytype")); 

+        assertTrue(context2String.contains("org.apache.axis2.jaxws.anytype")); 

         assertTrue(!context2String.contains("org.apache.axis2.jaxws.misc.jaxbexclude")); 

 

         // Repeat with the same packages + an invalid package

         TreeSet<String> context3 = new TreeSet<String>();

         context3.add("org.test.addnumbers");

-        context3.add("org.test.anytype");

+        context3.add("org.apache.axis2.jaxws.anytype");

         context3.add("my.grandma.loves.jaxws");

         context3.add("org.apache.axis2.jaxws.misc.jaxbexclude");

 

@@ -167,11 +167,11 @@
         assertTrue(jaxbContext3 != null);

         assertTrue(jaxbContext3.toString().equals(jaxbContext3.toString()));

         assertTrue(context3.contains("org.test.addnumbers"));

-        assertTrue(context3.contains("org.test.anytype")); 

+        assertTrue(context3.contains("org.apache.axis2.jaxws.anytype")); 

         assertTrue(context3.contains("my.grandma.loves.jaxws"));  

         String context3String = jaxbContext3.toString();

         assertTrue(context3String.contains("org.test.addnumbers"));

-        assertTrue(context3String.contains("org.test.anytype")); 

+        assertTrue(context3String.contains("org.apache.axis2.jaxws.anytype")); 

         assertTrue(!context3String.contains("my.grandma.loves.jaxws")); 

         assertTrue(!context3String.contains("org.apache.axis2.jaxws.misc.jaxbexclude")); 

 

diff --git a/modules/jaxws-integration/test/org/apache/axis2/jaxws/nonanonymous/complextype/EchoMessageImpl.java b/modules/jaxws-integration/test/org/apache/axis2/jaxws/nonanonymous/complextype/EchoMessageImpl.java
index 70adb3c..fe02337 100644
--- a/modules/jaxws-integration/test/org/apache/axis2/jaxws/nonanonymous/complextype/EchoMessageImpl.java
+++ b/modules/jaxws-integration/test/org/apache/axis2/jaxws/nonanonymous/complextype/EchoMessageImpl.java
@@ -23,13 +23,12 @@
 package org.apache.axis2.jaxws.nonanonymous.complextype;

 

 import org.apache.axis2.jaxws.TestLogger;

-import org.apache.axis2.jaxws.nonanonymous.complextype.sei.EchoMessagePortType;

 

 import javax.jws.WebService;

 

 @WebService(serviceName="EchoMessageService",

 	 	targetNamespace="http://testApp.jaxws",

-        endpointInterface="org.apache.axis2.jaxws.nonanonymous.complextype.sei.EchoMessagePortType")

+        endpointInterface="org.apache.axis2.jaxws.nonanonymous.complextype.EchoMessagePortType")

 

 public class EchoMessageImpl implements EchoMessagePortType {

 

diff --git a/modules/jaxws-integration/test/org/apache/axis2/jaxws/nonanonymous/complextype/NonAnonymousComplexTypeTests.java b/modules/jaxws-integration/test/org/apache/axis2/jaxws/nonanonymous/complextype/NonAnonymousComplexTypeTests.java
index 3f2fba6..fd12afd 100644
--- a/modules/jaxws-integration/test/org/apache/axis2/jaxws/nonanonymous/complextype/NonAnonymousComplexTypeTests.java
+++ b/modules/jaxws-integration/test/org/apache/axis2/jaxws/nonanonymous/complextype/NonAnonymousComplexTypeTests.java
@@ -26,8 +26,6 @@
 import junit.framework.TestSuite;

 import org.apache.axis2.jaxws.TestLogger;

 import org.apache.axis2.jaxws.framework.AbstractTestCase;

-import org.apache.axis2.jaxws.nonanonymous.complextype.sei.EchoMessagePortType;

-import org.apache.axis2.jaxws.nonanonymous.complextype.sei.EchoMessageService;

 

 import javax.xml.ws.BindingProvider;

 import javax.xml.ws.WebServiceException;

diff --git a/modules/jaxws-integration/test/org/apache/axis2/jaxws/nonanonymous/complextype/sei/EchoMessagePortType.java b/modules/jaxws-integration/test/org/apache/axis2/jaxws/nonanonymous/complextype/sei/EchoMessagePortType.java
deleted file mode 100644
index b64f8f8..0000000
--- a/modules/jaxws-integration/test/org/apache/axis2/jaxws/nonanonymous/complextype/sei/EchoMessagePortType.java
+++ /dev/null
@@ -1,55 +0,0 @@
-

-/*

- * Licensed to the Apache Software Foundation (ASF) under one

- * or more contributor license agreements. See the NOTICE file

- * distributed with this work for additional information

- * regarding copyright ownership. The ASF licenses this file

- * to you under the Apache License, Version 2.0 (the

- * "License"); you may not use this file except in compliance

- * with the License. You may obtain a copy of the License at

- *

- * http://www.apache.org/licenses/LICENSE-2.0

- *

- * Unless required by applicable law or agreed to in writing,

- * software distributed under the License is distributed on an

- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

- * KIND, either express or implied. See the License for the

- * specific language governing permissions and limitations

- * under the License.

- */

-

-package org.apache.axis2.jaxws.nonanonymous.complextype.sei;

-

-import javax.jws.WebMethod;

-import javax.jws.WebParam;

-import javax.jws.WebResult;

-import javax.jws.WebService;

-import javax.xml.ws.RequestWrapper;

-import javax.xml.ws.ResponseWrapper;

-

-

-/**

- * This class was generated by the JAXWS SI.

- * JAX-WS RI 2.0_01-b15-fcs

- * Generated source version: 2.0

- * 

- */

-@WebService(name = "EchoMessagePortType", targetNamespace = "http://nonanonymous.complextype.test.org")

-public interface EchoMessagePortType {

-

-

-    /**

-     * 

-     * @param request

-     * @return

-     *     returns java.lang.String

-     */

-    @WebMethod

-    @WebResult(name = "response", targetNamespace = "http://nonanonymous.complextype.test.org")

-    @RequestWrapper(localName = "echoMessage", targetNamespace = "http://nonanonymous.complextype.test.org", className = "org.test.complextype.nonanonymous.EchoMessage")

-    @ResponseWrapper(localName = "echoMessageResponse", targetNamespace = "http://nonanonymous.complextype.test.org", className = "org.test.complextype.nonanonymous.EchoMessageResponse")

-    public String echoMessage(

-        @WebParam(name = "request", targetNamespace = "http://nonanonymous.complextype.test.org")

-        String request);

-

-}

diff --git a/modules/jaxws-integration/test/org/apache/axis2/jaxws/nonanonymous/complextype/sei/EchoMessageService.java b/modules/jaxws-integration/test/org/apache/axis2/jaxws/nonanonymous/complextype/sei/EchoMessageService.java
deleted file mode 100644
index d102303..0000000
--- a/modules/jaxws-integration/test/org/apache/axis2/jaxws/nonanonymous/complextype/sei/EchoMessageService.java
+++ /dev/null
@@ -1,80 +0,0 @@
-

-/*

- * Licensed to the Apache Software Foundation (ASF) under one

- * or more contributor license agreements. See the NOTICE file

- * distributed with this work for additional information

- * regarding copyright ownership. The ASF licenses this file

- * to you under the Apache License, Version 2.0 (the

- * "License"); you may not use this file except in compliance

- * with the License. You may obtain a copy of the License at

- *

- * http://www.apache.org/licenses/LICENSE-2.0

- *

- * Unless required by applicable law or agreed to in writing,

- * software distributed under the License is distributed on an

- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

- * KIND, either express or implied. See the License for the

- * specific language governing permissions and limitations

- * under the License.

- */

-

-package org.apache.axis2.jaxws.nonanonymous.complextype.sei;

-

-import javax.xml.namespace.QName;

-import javax.xml.ws.Service;

-import javax.xml.ws.WebEndpoint;

-import javax.xml.ws.WebServiceClient;

-import java.io.File;

-import java.net.MalformedURLException;

-import java.net.URL;

-

-/**

- * This class was generated by the JAXWS SI.

- * JAX-WS RI 2.0_01-b15-fcs

- * Generated source version: 2.0

- * 

- */

-@WebServiceClient(name = "EchoMessageService", targetNamespace = "http://nonanonymous.complextype.test.org", wsdlLocation = "EchoMessage.wsdl")

-public class EchoMessageService

-    extends Service

-{

-

-    private final static URL ECHOMESSAGESERVICE_WSDL_LOCATION;

-

-    private static String wsdlLocation="/test/org/apache/axis2/jaxws/nonanonymous/complextype/META-INF/EchoMessage.wsdl";

-    static {

-        URL url = null;

-        try {

-        	try{

-	        	String baseDir = new File(System.getProperty("basedir",".")).getCanonicalPath();

-	        	wsdlLocation = new File(baseDir + wsdlLocation).getAbsolutePath();

-        	}catch(Exception e){

-        		e.printStackTrace();

-        	}

-        	File file = new File(wsdlLocation);

-        	url = file.toURL();

-        } catch (MalformedURLException e) {

-            e.printStackTrace();

-        }

-        ECHOMESSAGESERVICE_WSDL_LOCATION = url;

-    }

-

-    public EchoMessageService(URL wsdlLocation, QName serviceName) {

-        super(wsdlLocation, serviceName);

-    }

-

-    public EchoMessageService() {

-        super(ECHOMESSAGESERVICE_WSDL_LOCATION, new QName("http://nonanonymous.complextype.test.org", "EchoMessageService"));

-    }

-

-    /**

-     * 

-     * @return

-     *     returns EchoMessagePortType

-     */

-    @WebEndpoint(name = "EchoMessagePort")

-    public EchoMessagePortType getEchoMessagePort() {

-        return (EchoMessagePortType)super.getPort(new QName("http://nonanonymous.complextype.test.org", "EchoMessagePort"), EchoMessagePortType.class);

-    }

-

-}

diff --git a/modules/jaxws-integration/test/org/apache/axis2/jaxws/polymorphic/shape/sei/PolymorphicShapePortType.java b/modules/jaxws-integration/test/org/apache/axis2/jaxws/polymorphic/shape/sei/PolymorphicShapePortType.java
deleted file mode 100644
index 834aaad..0000000
--- a/modules/jaxws-integration/test/org/apache/axis2/jaxws/polymorphic/shape/sei/PolymorphicShapePortType.java
+++ /dev/null
@@ -1,70 +0,0 @@
-

-/*

- * Licensed to the Apache Software Foundation (ASF) under one

- * or more contributor license agreements. See the NOTICE file

- * distributed with this work for additional information

- * regarding copyright ownership. The ASF licenses this file

- * to you under the Apache License, Version 2.0 (the

- * "License"); you may not use this file except in compliance

- * with the License. You may obtain a copy of the License at

- *

- * http://www.apache.org/licenses/LICENSE-2.0

- *

- * Unless required by applicable law or agreed to in writing,

- * software distributed under the License is distributed on an

- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

- * KIND, either express or implied. See the License for the

- * specific language governing permissions and limitations

- * under the License.

- */

-

-package org.apache.axis2.jaxws.polymorphic.shape.sei;

-

-import org.test.shape.Shape;

-

-import javax.jws.WebMethod;

-import javax.jws.WebParam;

-import javax.jws.WebResult;

-import javax.jws.WebService;

-import javax.xml.ws.RequestWrapper;

-import javax.xml.ws.ResponseWrapper;

-

-/**

- * This class was generated by the JAXWS SI.

- * JAX-WS RI 2.0_01-b15-fcs

- * Generated source version: 2.0

- * 

- */

-@WebService(name = "PolymorphicShapePortType", targetNamespace = "http://sei.shape.polymorphic.jaxws.axis2.apache.org")

-public interface PolymorphicShapePortType {

-

-

-    /**

-     * 

-     * @param request

-     * @return

-     *     returns org.test.shape.Shape

-     */

-    @WebMethod(action = "http://sei.polymorphicshape.jaxws.axis2.apache.org/typesExtension")

-    @WebResult(name = "response", targetNamespace = "")

-    @RequestWrapper(localName = "draw", targetNamespace = "http://wrapper.shape.test.org", className = "org.test.shape.wrapper.Draw")

-    @ResponseWrapper(localName = "drawResponse", targetNamespace = "http://wrapper.shape.test.org", className = "org.test.shape.wrapper.DrawResponse")

-    public Shape draw(

-        @WebParam(name = "request", targetNamespace = "")

-        Shape request);

-

-    /**

-     * 

-     * @param request

-     * @return

-     *     returns org.test.shape.Shape

-     */

-    @WebMethod(action = "http://sei.polymorphicshape.jaxws.axis2.apache.org/typesExtension")

-    @WebResult(name = "response", targetNamespace = "")

-    @RequestWrapper(localName = "draw3D", targetNamespace = "http://wrapper.shape.test.org", className = "org.test.shape.wrapper.Draw3D")

-    @ResponseWrapper(localName = "drawResponse", targetNamespace = "http://wrapper.shape.test.org", className = "org.test.shape.wrapper.DrawResponse")

-    public Shape draw3D(

-        @WebParam(name = "request", targetNamespace = "")

-        Shape request);

-

-}

diff --git a/modules/jaxws-integration/test/org/apache/axis2/jaxws/polymorphic/shape/sei/PolymorphicShapeService.java b/modules/jaxws-integration/test/org/apache/axis2/jaxws/polymorphic/shape/sei/PolymorphicShapeService.java
deleted file mode 100644
index 7497130..0000000
--- a/modules/jaxws-integration/test/org/apache/axis2/jaxws/polymorphic/shape/sei/PolymorphicShapeService.java
+++ /dev/null
@@ -1,80 +0,0 @@
-

-/*

- * Licensed to the Apache Software Foundation (ASF) under one

- * or more contributor license agreements. See the NOTICE file

- * distributed with this work for additional information

- * regarding copyright ownership. The ASF licenses this file

- * to you under the Apache License, Version 2.0 (the

- * "License"); you may not use this file except in compliance

- * with the License. You may obtain a copy of the License at

- *

- * http://www.apache.org/licenses/LICENSE-2.0

- *

- * Unless required by applicable law or agreed to in writing,

- * software distributed under the License is distributed on an

- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

- * KIND, either express or implied. See the License for the

- * specific language governing permissions and limitations

- * under the License.

- */

-

-package org.apache.axis2.jaxws.polymorphic.shape.sei;

-

-import javax.xml.namespace.QName;

-import javax.xml.ws.Service;

-import javax.xml.ws.WebEndpoint;

-import javax.xml.ws.WebServiceClient;

-import java.io.File;

-import java.net.MalformedURLException;

-import java.net.URL;

-

-/**

- * This class was generated by the JAXWS SI.

- * JAX-WS RI 2.0_01-b15-fcs

- * Generated source version: 2.0

- * 

- */

-@WebServiceClient(name = "PolymorphicShapeService", targetNamespace = "http://sei.shape.polymorphic.jaxws.axis2.apache.org", wsdlLocation = "shapes.wsdl")

-public class PolymorphicShapeService

-    extends Service

-{

-

-    private final static URL POLYMORPHICSHAPESERVICE_WSDL_LOCATION;

-

-    private static String wsdlLocation="/test/org/apache/axis2/jaxws/polymorphic/shape/META-INF/shapes.wsdl";

-    static {

-        URL url = null;

-        try {

-        	try{

-	        	String baseDir = new File(System.getProperty("basedir",".")).getCanonicalPath();

-	        	wsdlLocation = new File(baseDir + wsdlLocation).getAbsolutePath();

-        	}catch(Exception e){

-        		e.printStackTrace();

-        	}

-        	File file = new File(wsdlLocation);

-        	url = file.toURL();

-        } catch (MalformedURLException e) {

-            e.printStackTrace();

-        }

-        POLYMORPHICSHAPESERVICE_WSDL_LOCATION = url;

-    }

-

-    public PolymorphicShapeService(URL wsdlLocation, QName serviceName) {

-        super(wsdlLocation, serviceName);

-    }

-

-    public PolymorphicShapeService() {

-        super(POLYMORPHICSHAPESERVICE_WSDL_LOCATION, new QName("http://sei.shape.polymorphic.jaxws.axis2.apache.org", "PolymorphicShapeService"));

-    }

-

-    /**

-     * 

-     * @return

-     *     returns PolymorphicShapePortType

-     */

-    @WebEndpoint(name = "PolymorphicShapePort")

-    public PolymorphicShapePortType getPolymorphicShapePort() {

-        return (PolymorphicShapePortType)super.getPort(new QName("http://sei.shape.polymorphic.jaxws.axis2.apache.org", "PolymorphicShapePort"), PolymorphicShapePortType.class);

-    }

-

-}

diff --git a/modules/jaxws-integration/test/org/apache/axis2/jaxws/polymorphic/shape/tests/PolymorphicTests.java b/modules/jaxws-integration/test/org/apache/axis2/jaxws/polymorphic/shape/tests/PolymorphicTests.java
index 3b648fd..c58ed6a 100644
--- a/modules/jaxws-integration/test/org/apache/axis2/jaxws/polymorphic/shape/tests/PolymorphicTests.java
+++ b/modules/jaxws-integration/test/org/apache/axis2/jaxws/polymorphic/shape/tests/PolymorphicTests.java
@@ -100,7 +100,7 @@
 				fail();

 			}

 			File file = new File(wsdlLocation);

-			url = file.toURL();

+			url = file.toURI().toURL();

 			WSDLWrapper wsdlWrapper = new WSDL4JWrapper(url);

 			org.apache.axis2.jaxws.wsdl.SchemaReader sr= new SchemaReaderImpl();

 			Set<String> set= sr.readPackagesFromSchema(wsdlWrapper.getDefinition());

@@ -149,7 +149,7 @@
 				fail();

 			}

 			File file = new File(wsdlLocation);

-			url = file.toURL();

+			url = file.toURI().toURL();

 			WSDLWrapper wsdlWrapper = new WSDL4JWrapper(url);

 			org.apache.axis2.jaxws.wsdl.SchemaReader sr= new SchemaReaderImpl();

 			Set<String> set= sr.readPackagesFromSchema(wsdlWrapper.getDefinition());

diff --git a/modules/jaxws-integration/test/org/apache/axis2/jaxws/provider/AddressingProviderTests.java b/modules/jaxws-integration/test/org/apache/axis2/jaxws/provider/AddressingProviderTests.java
index 21fb378..d8c4862 100644
--- a/modules/jaxws-integration/test/org/apache/axis2/jaxws/provider/AddressingProviderTests.java
+++ b/modules/jaxws-integration/test/org/apache/axis2/jaxws/provider/AddressingProviderTests.java
@@ -230,7 +230,7 @@
         String baseDir = new File(System.getProperty("basedir",".")).getCanonicalPath();
         wsdlLocation = new File(baseDir + wsdlLocation).getAbsolutePath();    
         File file = new File(wsdlLocation);
-        return file.toURL();
+        return file.toURI().toURL();
     }
     
 }
diff --git a/modules/jaxws-integration/test/org/apache/axis2/jaxws/provider/OMProviderTests.java b/modules/jaxws-integration/test/org/apache/axis2/jaxws/provider/OMProviderTests.java
index ed03272..e191b48 100644
--- a/modules/jaxws-integration/test/org/apache/axis2/jaxws/provider/OMProviderTests.java
+++ b/modules/jaxws-integration/test/org/apache/axis2/jaxws/provider/OMProviderTests.java
@@ -1,13 +1,12 @@
 package org.apache.axis2.jaxws.provider;

 

 import org.apache.axiom.om.OMElement;

+import org.apache.axiom.om.OMXMLBuilderFactory;

 import org.apache.axiom.soap.SOAPEnvelope;

-import org.apache.axiom.soap.impl.builder.StAXSOAPModelBuilder;

+import org.apache.axiom.soap.SOAPModelBuilder;

 import org.apache.axis2.jaxws.Constants;

 

 import javax.xml.namespace.QName;

-import javax.xml.stream.XMLInputFactory;

-import javax.xml.stream.XMLStreamReader;

 import javax.xml.ws.BindingProvider;

 import javax.xml.ws.Dispatch;

 import javax.xml.ws.Service;

@@ -46,7 +45,6 @@
 

         private static String request = "<invokeOp>Hello Provider OM</invokeOp>";

         private static String SOAPFaultRequest ="<invokeOp>SOAPFault</invokeOp>";

-        private static XMLInputFactory inputFactory = XMLInputFactory.newInstance();

         

    public static Test suite() {

       return getTestSetup(new TestSuite(OMProviderTests.class));

@@ -68,8 +66,7 @@
         // Create the OMElement object with the payload contents.  Since

         // we're in PAYLOAD mode, we don't have to worry about the envelope.

         StringReader sr = new StringReader(SOAP11_ENVELOPE_HEAD+request+SOAP11_ENVELOPE_TAIL);

-        XMLStreamReader inputReader = inputFactory.createXMLStreamReader(sr);

-        StAXSOAPModelBuilder builder = new StAXSOAPModelBuilder(inputReader, null); 

+        SOAPModelBuilder builder = OMXMLBuilderFactory.createSOAPModelBuilder(sr); 

         SOAPEnvelope om = (SOAPEnvelope) builder.getDocumentElement();

 

         

@@ -95,8 +92,7 @@
                 portName, OMElement.class, Mode.MESSAGE);

         

         StringReader sr = new StringReader(SOAP11_ENVELOPE_HEAD+SOAPFaultRequest+SOAP11_ENVELOPE_TAIL);

-        XMLStreamReader inputReader = inputFactory.createXMLStreamReader(sr);

-        StAXSOAPModelBuilder builder = new StAXSOAPModelBuilder(inputReader, null); 

+        SOAPModelBuilder builder = OMXMLBuilderFactory.createSOAPModelBuilder(sr); 

         SOAPEnvelope om = (SOAPEnvelope) builder.getDocumentElement();

         OMElement response = null;

         try{

@@ -118,8 +114,7 @@
         bp.getRequestContext().put(Constants.THROW_EXCEPTION_IF_SOAP_FAULT, Boolean.FALSE);

        

         StringReader sr = new StringReader(SOAP11_ENVELOPE_HEAD+SOAPFaultRequest+SOAP11_ENVELOPE_TAIL);

-        XMLStreamReader inputReader = inputFactory.createXMLStreamReader(sr);

-        StAXSOAPModelBuilder builder = new StAXSOAPModelBuilder(inputReader, null); 

+        SOAPModelBuilder builder = OMXMLBuilderFactory.createSOAPModelBuilder(sr); 

         SOAPEnvelope om = (SOAPEnvelope) builder.getDocumentElement();

         OMElement response = null;

         try{

diff --git a/modules/jaxws-integration/test/org/apache/axis2/jaxws/provider/addressing/META-INF/MANIFEST.MF b/modules/jaxws-integration/test/org/apache/axis2/jaxws/provider/addressing/META-INF/MANIFEST.MF
deleted file mode 100644
index 348f1bd..0000000
--- a/modules/jaxws-integration/test/org/apache/axis2/jaxws/provider/addressing/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1 +0,0 @@
-Manifest-Version: 1.0
\ No newline at end of file
diff --git a/modules/jaxws-integration/test/org/apache/axis2/jaxws/provider/jaxb/META-INF/MANIFEST.MF b/modules/jaxws-integration/test/org/apache/axis2/jaxws/provider/jaxb/META-INF/MANIFEST.MF
deleted file mode 100644
index 2f4b568..0000000
--- a/modules/jaxws-integration/test/org/apache/axis2/jaxws/provider/jaxb/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1 +0,0 @@
-Manifest-Version: 1.0

diff --git a/modules/jaxws-integration/test/org/apache/axis2/jaxws/provider/om/OMProvider.java b/modules/jaxws-integration/test/org/apache/axis2/jaxws/provider/om/OMProvider.java
index b363935..7199125 100644
--- a/modules/jaxws-integration/test/org/apache/axis2/jaxws/provider/om/OMProvider.java
+++ b/modules/jaxws-integration/test/org/apache/axis2/jaxws/provider/om/OMProvider.java
@@ -19,8 +19,9 @@
 package org.apache.axis2.jaxws.provider.om;

 

 import org.apache.axiom.om.OMElement;

+import org.apache.axiom.om.OMXMLBuilderFactory;

 import org.apache.axiom.soap.SOAPEnvelope;

-import org.apache.axiom.soap.impl.builder.StAXSOAPModelBuilder;

+import org.apache.axiom.soap.SOAPModelBuilder;

 

 import javax.xml.namespace.QName;

 import javax.xml.soap.Detail;

@@ -32,8 +33,6 @@
 import javax.xml.soap.SOAPFactory;

 import javax.xml.soap.SOAPFault;

 import javax.xml.soap.SOAPMessage;

-import javax.xml.stream.XMLInputFactory;

-import javax.xml.stream.XMLStreamReader;

 import javax.xml.ws.Provider;

 import javax.xml.ws.Service;

 import javax.xml.ws.ServiceMode;

@@ -65,7 +64,7 @@
 

 

     private static String response = "<invokeOp>Hello Dispatch OM</invokeOp>";

-    private static XMLInputFactory inputFactory = XMLInputFactory.newInstance();

+

     public OMElement invoke(OMElement om) throws SOAPFaultException{

         try{

             StringReader sr = null;

@@ -83,8 +82,7 @@
            }else{

                sr = new StringReader(SOAP11_ENVELOPE_HEAD+"null request"+SOAP11_ENVELOPE_TAIL);

            }

-            XMLStreamReader inputReader = inputFactory.createXMLStreamReader(sr);

-            StAXSOAPModelBuilder builder = new StAXSOAPModelBuilder(inputReader, null); 

+            SOAPModelBuilder builder = OMXMLBuilderFactory.createSOAPModelBuilder(sr); 

             SOAPEnvelope responseOM = (SOAPEnvelope) builder.getDocumentElement();

 

             return responseOM;

diff --git a/modules/jaxws-integration/test/org/apache/axis2/jaxws/provider/soapbinding/META-INF/MANIFEST.MF b/modules/jaxws-integration/test/org/apache/axis2/jaxws/provider/soapbinding/META-INF/MANIFEST.MF
deleted file mode 100644
index 2f4b568..0000000
--- a/modules/jaxws-integration/test/org/apache/axis2/jaxws/provider/soapbinding/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1 +0,0 @@
-Manifest-Version: 1.0

diff --git a/modules/jaxws-integration/test/org/apache/axis2/jaxws/provider/soapmsg/META-INF/MANIFEST.MF b/modules/jaxws-integration/test/org/apache/axis2/jaxws/provider/soapmsg/META-INF/MANIFEST.MF
deleted file mode 100644
index 2f4b568..0000000
--- a/modules/jaxws-integration/test/org/apache/axis2/jaxws/provider/soapmsg/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1 +0,0 @@
-Manifest-Version: 1.0

diff --git a/modules/jaxws-integration/test/org/apache/axis2/jaxws/provider/soapmsgcheckmtom/META-INF/MANIFEST.MF b/modules/jaxws-integration/test/org/apache/axis2/jaxws/provider/soapmsgcheckmtom/META-INF/MANIFEST.MF
deleted file mode 100644
index 2f4b568..0000000
--- a/modules/jaxws-integration/test/org/apache/axis2/jaxws/provider/soapmsgcheckmtom/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1 +0,0 @@
-Manifest-Version: 1.0

diff --git a/modules/jaxws-integration/test/org/apache/axis2/jaxws/provider/soapmsgmu/META-INF/MANIFEST.MF b/modules/jaxws-integration/test/org/apache/axis2/jaxws/provider/soapmsgmu/META-INF/MANIFEST.MF
deleted file mode 100644
index 2f4b568..0000000
--- a/modules/jaxws-integration/test/org/apache/axis2/jaxws/provider/soapmsgmu/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1 +0,0 @@
-Manifest-Version: 1.0

diff --git a/modules/jaxws-integration/test/org/apache/axis2/jaxws/provider/soapmsgreturnnull/META-INF/MANIFEST.MF b/modules/jaxws-integration/test/org/apache/axis2/jaxws/provider/soapmsgreturnnull/META-INF/MANIFEST.MF
deleted file mode 100644
index 2f4b568..0000000
--- a/modules/jaxws-integration/test/org/apache/axis2/jaxws/provider/soapmsgreturnnull/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1 +0,0 @@
-Manifest-Version: 1.0

diff --git a/modules/jaxws-integration/test/org/apache/axis2/jaxws/provider/source/META-INF/MANIFEST.MF b/modules/jaxws-integration/test/org/apache/axis2/jaxws/provider/source/META-INF/MANIFEST.MF
deleted file mode 100644
index 348f1bd..0000000
--- a/modules/jaxws-integration/test/org/apache/axis2/jaxws/provider/source/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1 +0,0 @@
-Manifest-Version: 1.0
\ No newline at end of file
diff --git a/modules/jaxws-integration/test/org/apache/axis2/jaxws/provider/sourcemsg/META-INF/MANIFEST.MF b/modules/jaxws-integration/test/org/apache/axis2/jaxws/provider/sourcemsg/META-INF/MANIFEST.MF
deleted file mode 100644
index 2f4b568..0000000
--- a/modules/jaxws-integration/test/org/apache/axis2/jaxws/provider/sourcemsg/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1 +0,0 @@
-Manifest-Version: 1.0

diff --git a/modules/jaxws-integration/test/org/apache/axis2/jaxws/provider/string/META-INF/MANIFEST.MF b/modules/jaxws-integration/test/org/apache/axis2/jaxws/provider/string/META-INF/MANIFEST.MF
deleted file mode 100644
index 348f1bd..0000000
--- a/modules/jaxws-integration/test/org/apache/axis2/jaxws/provider/string/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1 +0,0 @@
-Manifest-Version: 1.0
\ No newline at end of file
diff --git a/modules/jaxws-integration/test/org/apache/axis2/jaxws/provider/stringmsg/META-INF/MANIFEST.MF b/modules/jaxws-integration/test/org/apache/axis2/jaxws/provider/stringmsg/META-INF/MANIFEST.MF
deleted file mode 100644
index 2f4b568..0000000
--- a/modules/jaxws-integration/test/org/apache/axis2/jaxws/provider/stringmsg/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1 +0,0 @@
-Manifest-Version: 1.0

diff --git a/modules/jaxws-integration/test/org/apache/axis2/jaxws/proxy/AsyncCallback.java b/modules/jaxws-integration/test/org/apache/axis2/jaxws/proxy/AsyncCallback.java
index cf66a60..4004a42 100644
--- a/modules/jaxws-integration/test/org/apache/axis2/jaxws/proxy/AsyncCallback.java
+++ b/modules/jaxws-integration/test/org/apache/axis2/jaxws/proxy/AsyncCallback.java
@@ -46,8 +46,8 @@
                 TestLogger.logger.debug(">>Return String = " + type.getReturnStr());

                 return;

             }

-            if(obj instanceof org.test.proxy.doclitnonwrapped.ReturnType){

-                org.test.proxy.doclitnonwrapped.ReturnType returnType = (org.test.proxy.doclitnonwrapped.ReturnType)obj;

+            if(obj instanceof org.apache.axis2.jaxws.proxy.doclitnonwrapped.ReturnType){

+                org.apache.axis2.jaxws.proxy.doclitnonwrapped.ReturnType returnType = (org.apache.axis2.jaxws.proxy.doclitnonwrapped.ReturnType)obj;

                 TestLogger.logger.debug(">>Return String = " + returnType.getReturnStr());

                 return;

             }

diff --git a/modules/jaxws-integration/test/org/apache/axis2/jaxws/proxy/GorillaDLWProxyTests.java b/modules/jaxws-integration/test/org/apache/axis2/jaxws/proxy/GorillaDLWProxyTests.java
index 418c136..a2feaae 100644
--- a/modules/jaxws-integration/test/org/apache/axis2/jaxws/proxy/GorillaDLWProxyTests.java
+++ b/modules/jaxws-integration/test/org/apache/axis2/jaxws/proxy/GorillaDLWProxyTests.java
@@ -21,10 +21,12 @@
 

 import junit.framework.Test;

 import junit.framework.TestSuite;

+

 import org.apache.axis2.jaxws.TestLogger;

 import org.apache.axis2.jaxws.framework.AbstractTestCase;

 import org.apache.axis2.jaxws.message.databinding.JAXBUtilsMonitor;

 import org.apache.axis2.jaxws.proxy.gorilla_dlw.sei.GorillaInterface;

+import org.junit.Ignore;

 

 import javax.xml.datatype.DatatypeFactory;

 import javax.xml.datatype.Duration;

@@ -33,6 +35,7 @@
 import javax.xml.ws.BindingProvider;

 import javax.xml.ws.Dispatch;

 import javax.xml.ws.Service;

+

 import java.io.File;

 import java.net.MalformedURLException;

 import java.net.URL;

@@ -62,7 +65,7 @@
      */

     public GorillaInterface getProxy() throws MalformedURLException {

         File wsdl= new File(wsdlLocation); 

-        URL wsdlUrl = wsdl.toURL(); 

+        URL wsdlUrl = wsdl.toURI().toURL(); 

         Service service = Service.create(null, serviceName);

         Object proxy =service.getPort(portName, GorillaInterface.class);

         BindingProvider p = (BindingProvider)proxy; 

@@ -78,7 +81,7 @@
      */

     public Dispatch<String> getDispatch() throws MalformedURLException {

         File wsdl= new File(wsdlLocation); 

-        URL wsdlUrl = wsdl.toURL(); 

+        URL wsdlUrl = wsdl.toURI().toURL(); 

         Service service = Service.create(null, serviceName);

         service.addPort(portName, null, axisEndpoint);

         Dispatch<String> dispatch = service.createDispatch(portName, String.class, Service.Mode.PAYLOAD);

@@ -307,7 +310,14 @@
      * Test of String Array (string maxOccurs=unbounded)

      * @throws Exception

      */

-    public void testEchoIndexedStringArray() throws Exception {

+    // With collectionType="indexed" XJC generates a setter with the following signature:

+    //   public String setData(int idx, String value)

+    // Because of the return type, this is not the expected setter for an indexed JavaBeans

+    // property. This nevertheless works with Java 6, but the introspector in Java 7 no longer

+    // recognizes the property as an indexed property. Instead it considers it as a simple

+    // property with type String[] (because XJC also generates the corresponding getters and

+    // setters).

+    public void ignored_testEchoIndexedStringArray() throws Exception {

         // Run the test multiple times to verify correct behavior

         _testEchoIndexedStringArray();

         _testEchoIndexedStringArray();

diff --git a/modules/jaxws-integration/test/org/apache/axis2/jaxws/proxy/ProxyNonWrappedTests.java b/modules/jaxws-integration/test/org/apache/axis2/jaxws/proxy/ProxyNonWrappedTests.java
index f9db845..f5d8c0d 100644
--- a/modules/jaxws-integration/test/org/apache/axis2/jaxws/proxy/ProxyNonWrappedTests.java
+++ b/modules/jaxws-integration/test/org/apache/axis2/jaxws/proxy/ProxyNonWrappedTests.java
@@ -23,18 +23,16 @@
 import junit.framework.TestSuite;

 import org.apache.axis2.jaxws.TestLogger;

 import org.apache.axis2.jaxws.framework.AbstractTestCase;

-import org.apache.axis2.jaxws.proxy.doclitnonwrapped.sei.DocLitnonWrappedProxy;

-import org.apache.axis2.jaxws.proxy.doclitnonwrapped.sei.ProxyDocLitUnwrappedService;

-import org.test.proxy.doclitnonwrapped.Invoke;

-import org.test.proxy.doclitnonwrapped.ObjectFactory;

-import org.test.proxy.doclitnonwrapped.ReturnType;

+import org.apache.axis2.jaxws.proxy.doclitnonwrapped.DocLitnonWrappedProxy;

+import org.apache.axis2.jaxws.proxy.doclitnonwrapped.Invoke;

+import org.apache.axis2.jaxws.proxy.doclitnonwrapped.ObjectFactory;

+import org.apache.axis2.jaxws.proxy.doclitnonwrapped.ProxyDocLitUnwrappedService;

+import org.apache.axis2.jaxws.proxy.doclitnonwrapped.ReturnType;

 

 import javax.xml.namespace.QName;

 import javax.xml.ws.AsyncHandler;

 import javax.xml.ws.BindingProvider;

 import javax.xml.ws.Service;

-import java.io.File;

-import java.net.URL;

 import java.util.concurrent.Future;

 

 /**

@@ -46,7 +44,6 @@
     QName serviceName = new QName("http://doclitnonwrapped.proxy.test.org", "ProxyDocLitUnwrappedService");

     private String axisEndpoint = "http://localhost:6060/axis2/services/ProxyDocLitUnwrappedService.DocLitnonWrappedImplPort";

     private QName portName = new QName("http://org.apache.axis2.proxy.doclitwrapped", "ProxyDocLitWrappedPort");

-    private String wsdlLocation = System.getProperty("basedir",".")+"/"+"test-resources/wsdl/ProxyDocLitnonWrapped.wsdl";

 

     public static Test suite() {

         return getTestSetup(new TestSuite(ProxyNonWrappedTests.class));

@@ -104,17 +101,14 @@
         try{

             TestLogger.logger.debug("---------------------------------------");

             TestLogger.logger.debug("DocLitNonWrapped test case: " + getName());

-            //Create wsdl url

-            File wsdl= new File(wsdlLocation); 

-            URL wsdlUrl = wsdl.toURL(); 

             ObjectFactory factory = new ObjectFactory();

             //create input object to web service operation

             Invoke invokeObj = factory.createInvoke();

             invokeObj.setInvokeStr("test request for twoWay Async Operation");

             //Create Service

-            ProxyDocLitUnwrappedService service = new ProxyDocLitUnwrappedService(wsdlUrl, serviceName);

+            ProxyDocLitUnwrappedService service = new ProxyDocLitUnwrappedService();

             //Create proxy

-            DocLitnonWrappedProxy proxy = service.getProxyDocLitnonWrappedPort();

+            DocLitnonWrappedProxy proxy = service.getDocLitnonWrappedImplPort();

             TestLogger.logger.debug(">>Invoking Binding Provider property");

             //Setup Endpoint url -- optional.

             BindingProvider p = (BindingProvider)proxy;

diff --git a/modules/jaxws-integration/test/org/apache/axis2/jaxws/proxy/ProxyTests.java b/modules/jaxws-integration/test/org/apache/axis2/jaxws/proxy/ProxyTests.java
index d4fcde9..7e74907 100644
--- a/modules/jaxws-integration/test/org/apache/axis2/jaxws/proxy/ProxyTests.java
+++ b/modules/jaxws-integration/test/org/apache/axis2/jaxws/proxy/ProxyTests.java
@@ -23,9 +23,9 @@
 import junit.framework.TestSuite;

 import org.apache.axis2.jaxws.TestLogger;

 import org.apache.axis2.jaxws.framework.AbstractTestCase;

-import org.apache.axis2.jaxws.proxy.doclitwrapped.sei.DocLitWrappedProxy;

-import org.apache.axis2.jaxws.proxy.doclitwrapped.sei.ProxyDocLitWrappedService;

-import org.test.proxy.doclitwrapped.ReturnType;

+import org.apache.axis2.jaxws.proxy.doclitwrapped.DocLitWrappedProxy;

+import org.apache.axis2.jaxws.proxy.doclitwrapped.ProxyDocLitWrappedService;

+import org.apache.axis2.jaxws.proxy.doclitwrapped.ReturnType;

 

 import javax.xml.namespace.QName;

 import javax.xml.ws.AsyncHandler;

@@ -82,7 +82,7 @@
         TestLogger.logger.debug("---------------------------------------");

         TestLogger.logger.debug("Test Name: " + getName());

         File wsdl= new File(wsdlLocation); 

-        URL wsdlUrl = wsdl.toURL(); 

+        URL wsdlUrl = wsdl.toURI().toURL(); 

         Service service = Service.create(null, serviceName); 

         Object proxy =service.getPort(portName, DocLitWrappedProxy.class);

         TestLogger.logger.debug(">>Invoking Binding Provider property");

@@ -108,7 +108,7 @@
         TestLogger.logger.debug("---------------------------------------");

         

         File wsdl= new File(wsdlLocation); 

-        URL wsdlUrl = wsdl.toURL(); 

+        URL wsdlUrl = wsdl.toURI().toURL(); 

         Service service = Service.create(null, serviceName);

         String request = new String("some string request"); 

         Object proxy =service.getPort(portName, DocLitWrappedProxy.class);

@@ -133,7 +133,7 @@
         }

         TestLogger.logger.debug("---------------------------------------");

         File wsdl= new File(wsdlLocation); 

-        URL wsdlUrl = wsdl.toURL(); 

+        URL wsdlUrl = wsdl.toURI().toURL(); 

         Service service = Service.create(wsdlUrl, serviceName);

         String request = new String("some string request"); 

         Object proxy =service.getPort(portName, DocLitWrappedProxy.class);

@@ -159,7 +159,7 @@
         TestLogger.logger.debug("---------------------------------------");

         

         File wsdl= new File(wsdlLocation); 

-        URL wsdlUrl = wsdl.toURL(); 

+        URL wsdlUrl = wsdl.toURI().toURL(); 

         Service service = Service.create(null, serviceName);

         String request = new String("some string request"); 

         Object proxy =service.getPort(portName, DocLitWrappedProxy.class);

@@ -182,7 +182,7 @@
         TestLogger.logger.debug("---------------------------------------");

         

         File wsdl= new File(wsdlLocation); 

-        URL wsdlUrl = wsdl.toURL(); 

+        URL wsdlUrl = wsdl.toURI().toURL(); 

         Service service = Service.create(null, serviceName);

         DocLitWrappedProxy proxy =service.getPort(portName, DocLitWrappedProxy.class);

         

@@ -220,7 +220,7 @@
             return;

         }

         File wsdl= new File(wsdlLocation); 

-        URL wsdlUrl = wsdl.toURL(); 

+        URL wsdlUrl = wsdl.toURI().toURL(); 

         Service service = Service.create(null, serviceName);

         String request = new String("some string request"); 

         

@@ -250,7 +250,7 @@
             return;

         }

         File wsdl= new File(wsdlLocation); 

-        URL wsdlUrl = wsdl.toURL(); 

+        URL wsdlUrl = wsdl.toURI().toURL(); 

         Service service = Service.create(null, serviceName);

         

         String request = new String("some string request"); 

diff --git a/modules/jaxws-integration/test/org/apache/axis2/jaxws/proxy/RPCLitSWAProxyTests.java b/modules/jaxws-integration/test/org/apache/axis2/jaxws/proxy/RPCLitSWAProxyTests.java
index d7f864a..d0a6de3 100644
--- a/modules/jaxws-integration/test/org/apache/axis2/jaxws/proxy/RPCLitSWAProxyTests.java
+++ b/modules/jaxws-integration/test/org/apache/axis2/jaxws/proxy/RPCLitSWAProxyTests.java
@@ -80,7 +80,7 @@
     public RPCLitSWA getProxy() throws MalformedURLException {

         File wsdl= new File(wsdlLocation);

         assertTrue("WSDL does not exist:" + wsdlLocation,wsdl.exists());

-        URL wsdlUrl = wsdl.toURL(); 

+        URL wsdlUrl = wsdl.toURI().toURL(); 

         Service service = Service.create(wsdlUrl, serviceName);

         Object proxy =service.getPort(portName, RPCLitSWA.class);

         BindingProvider p = (BindingProvider)proxy; 

@@ -96,7 +96,7 @@
      */

     public Dispatch<String> getDispatch() throws MalformedURLException {

         File wsdl= new File(wsdlLocation); 

-        URL wsdlUrl = wsdl.toURL(); 

+        URL wsdlUrl = wsdl.toURI().toURL(); 

         Service service = Service.create(null, serviceName);

         service.addPort(portName, null, axisEndpoint);

         Dispatch<String> dispatch = service.createDispatch(portName, String.class, 

diff --git a/modules/jaxws-integration/test/org/apache/axis2/jaxws/proxy/RPCProxyTests.java b/modules/jaxws-integration/test/org/apache/axis2/jaxws/proxy/RPCProxyTests.java
index 762608d..e0edb92 100644
--- a/modules/jaxws-integration/test/org/apache/axis2/jaxws/proxy/RPCProxyTests.java
+++ b/modules/jaxws-integration/test/org/apache/axis2/jaxws/proxy/RPCProxyTests.java
@@ -61,7 +61,7 @@
      */

     public RPCLit getProxy() throws MalformedURLException {

         File wsdl= new File(wsdlLocation); 

-        URL wsdlUrl = wsdl.toURL(); 

+        URL wsdlUrl = wsdl.toURI().toURL(); 

         Service service = Service.create(null, serviceName);

         Object proxy =service.getPort(portName, RPCLit.class);

         BindingProvider p = (BindingProvider)proxy; 

@@ -77,7 +77,7 @@
      */

     public Dispatch<String> getDispatch() throws MalformedURLException {

         File wsdl= new File(wsdlLocation); 

-        URL wsdlUrl = wsdl.toURL(); 

+        URL wsdlUrl = wsdl.toURI().toURL(); 

         Service service = Service.create(null, serviceName);

         service.addPort(portName, null, axisEndpoint);

         Dispatch<String> dispatch = service.createDispatch(portName, String.class, Service.Mode.PAYLOAD);

diff --git a/modules/jaxws-integration/test/org/apache/axis2/jaxws/proxy/doclitnonwrapped/META-INF/MANIFEST.MF b/modules/jaxws-integration/test/org/apache/axis2/jaxws/proxy/doclitnonwrapped/META-INF/MANIFEST.MF
deleted file mode 100644
index 2f4b568..0000000
--- a/modules/jaxws-integration/test/org/apache/axis2/jaxws/proxy/doclitnonwrapped/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1 +0,0 @@
-Manifest-Version: 1.0

diff --git a/modules/jaxws-integration/test/org/apache/axis2/jaxws/proxy/doclitnonwrapped/META-INF/proxy_doclit_unwr.wsdl b/modules/jaxws-integration/test/org/apache/axis2/jaxws/proxy/doclitnonwrapped/META-INF/proxy_doclit_unwr.wsdl
index 1e89793..6e00c95 100644
--- a/modules/jaxws-integration/test/org/apache/axis2/jaxws/proxy/doclitnonwrapped/META-INF/proxy_doclit_unwr.wsdl
+++ b/modules/jaxws-integration/test/org/apache/axis2/jaxws/proxy/doclitnonwrapped/META-INF/proxy_doclit_unwr.wsdl
@@ -69,7 +69,10 @@
 	</wsdl:message>	

 	

 	<wsdl:portType name="DocLitnonWrappedProxy">

-

+	    <jaxws:bindings xmlns:jaxws="http://java.sun.com/xml/ns/jaxws">

+	        <jaxws:enableWrapperStyle>false</jaxws:enableWrapperStyle>

+	        <jaxws:enableAsyncMapping>true</jaxws:enableAsyncMapping>

+	    </jaxws:bindings>

 		

 		<wsdl:operation name="invoke">

 			<wsdl:input message="tns:invokeRequest" />

diff --git a/modules/jaxws-integration/test/org/apache/axis2/jaxws/proxy/doclitnonwrapped/sei/DocLitnonWrappedProxy.java b/modules/jaxws-integration/test/org/apache/axis2/jaxws/proxy/doclitnonwrapped/sei/DocLitnonWrappedProxy.java
deleted file mode 100644
index af56ebf..0000000
--- a/modules/jaxws-integration/test/org/apache/axis2/jaxws/proxy/doclitnonwrapped/sei/DocLitnonWrappedProxy.java
+++ /dev/null
@@ -1,84 +0,0 @@
-

-/*

- * Licensed to the Apache Software Foundation (ASF) under one

- * or more contributor license agreements. See the NOTICE file

- * distributed with this work for additional information

- * regarding copyright ownership. The ASF licenses this file

- * to you under the Apache License, Version 2.0 (the

- * "License"); you may not use this file except in compliance

- * with the License. You may obtain a copy of the License at

- *

- * http://www.apache.org/licenses/LICENSE-2.0

- *

- * Unless required by applicable law or agreed to in writing,

- * software distributed under the License is distributed on an

- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

- * KIND, either express or implied. See the License for the

- * specific language governing permissions and limitations

- * under the License.

- */

-

-package org.apache.axis2.jaxws.proxy.doclitnonwrapped.sei;

-

-import org.test.proxy.doclitnonwrapped.Invoke;

-import org.test.proxy.doclitnonwrapped.ReturnType;

-

-import javax.jws.WebMethod;

-import javax.jws.WebParam;

-import javax.jws.WebResult;

-import javax.jws.WebService;

-import javax.jws.soap.SOAPBinding;

-import javax.jws.soap.SOAPBinding.ParameterStyle;

-import javax.xml.ws.AsyncHandler;

-import javax.xml.ws.Response;

-import java.util.concurrent.Future;

-

-

-/**

- * This class was generated by the JAXWS SI.

- * JAX-WS RI 2.0_01-b15-fcs

- * Generated source version: 2.0

- * 

- */

-@WebService(name = "DocLitnonWrappedProxy", targetNamespace = "http://doclitnonwrapped.proxy.test.org")

-@SOAPBinding(parameterStyle = ParameterStyle.BARE)

-public interface DocLitnonWrappedProxy {

-	/**

-     * 

-     * @param allByMyself

-     * @return

-     *     returns javax.xml.ws.Response<org.test.proxy.doclitnonwrapped.ReturnType>

-     */

-    @WebMethod(operationName = "invoke", action = "http://doclitnonwrapped.proxy.test.org/invokeReturn")

-    public Response<ReturnType> invokeAsync(

-        @WebParam(name = "invoke", targetNamespace = "http://doclitnonwrapped.proxy.test.org", partName = "allByMyself")

-        Invoke allByMyself);

-

-    /**

-     * 

-     * @param allByMyself

-     * @param asyncHandler

-     * @return

-     *     returns java.util.concurrent.Future<? extends java.lang.Object>

-     */

-    @WebMethod(operationName = "invoke", action = "http://doclitnonwrapped.proxy.test.org/invokeReturn")

-    public Future<?> invokeAsync(

-        @WebParam(name = "invoke", targetNamespace = "http://doclitnonwrapped.proxy.test.org", partName = "allByMyself")

-        Invoke allByMyself,

-        @WebParam(name = "invokeResponse", targetNamespace = "", partName = "asyncHandler")

-        AsyncHandler<ReturnType> asyncHandler);

-

-

-    /**

-     * 

-     * @param allByMyself

-     * @return

-     *     returns org.test.proxy.doclitnonwrapped.ReturnType

-     */

-    @WebMethod(action = "http://doclitnonwrapped.proxy.test.org/invokeReturn")

-    @WebResult(name = "ReturnType", targetNamespace = "http://doclitnonwrapped.proxy.test.org", partName = "allByMyself")

-    public ReturnType invoke(

-        @WebParam(name = "invoke", targetNamespace = "http://doclitnonwrapped.proxy.test.org", partName = "allByMyself")

-        Invoke allByMyself);

-

-}

diff --git a/modules/jaxws-integration/test/org/apache/axis2/jaxws/proxy/doclitnonwrapped/sei/ProxyDocLitUnwrappedService.java b/modules/jaxws-integration/test/org/apache/axis2/jaxws/proxy/doclitnonwrapped/sei/ProxyDocLitUnwrappedService.java
deleted file mode 100644
index 7772a9e..0000000
--- a/modules/jaxws-integration/test/org/apache/axis2/jaxws/proxy/doclitnonwrapped/sei/ProxyDocLitUnwrappedService.java
+++ /dev/null
@@ -1,71 +0,0 @@
-

-/*

- * Licensed to the Apache Software Foundation (ASF) under one

- * or more contributor license agreements. See the NOTICE file

- * distributed with this work for additional information

- * regarding copyright ownership. The ASF licenses this file

- * to you under the Apache License, Version 2.0 (the

- * "License"); you may not use this file except in compliance

- * with the License. You may obtain a copy of the License at

- *

- * http://www.apache.org/licenses/LICENSE-2.0

- *

- * Unless required by applicable law or agreed to in writing,

- * software distributed under the License is distributed on an

- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

- * KIND, either express or implied. See the License for the

- * specific language governing permissions and limitations

- * under the License.

- */

-

-package org.apache.axis2.jaxws.proxy.doclitnonwrapped.sei;

-

-import javax.xml.namespace.QName;

-import javax.xml.ws.Service;

-import javax.xml.ws.WebEndpoint;

-import javax.xml.ws.WebServiceClient;

-import java.net.MalformedURLException;

-import java.net.URL;

-

-/**

- * This class was generated by the JAXWS SI.

- * JAX-WS RI 2.0_01-b15-fcs

- * Generated source version: 2.0

- * 

- */

-@WebServiceClient(name = "ProxyDocLitUnwrappedService", targetNamespace = "http://doclitnonwrapped.proxy.test.org", wsdlLocation = "proxy_doclit_unwr.wsdl")

-public class ProxyDocLitUnwrappedService

-    extends Service

-{

-

-    private final static URL PROXYDOCLITUNWRAPPEDSERVICE_WSDL_LOCATION;

-

-    static {

-        URL url = null;

-        try {

-            url = new URL("file:/C:/temp/proxy_doclit_unwr.wsdl");

-        } catch (MalformedURLException e) {

-            e.printStackTrace();

-        }

-        PROXYDOCLITUNWRAPPEDSERVICE_WSDL_LOCATION = url;

-    }

-

-    public ProxyDocLitUnwrappedService(URL wsdlLocation, QName serviceName) {

-        super(wsdlLocation, serviceName);

-    }

-

-    public ProxyDocLitUnwrappedService() {

-        super(PROXYDOCLITUNWRAPPEDSERVICE_WSDL_LOCATION, new QName("http://doclitnonwrapped.proxy.test.org", "ProxyDocLitUnwrappedService"));

-    }

-

-    /**

-     * 

-     * @return

-     *     returns DocLitnonWrappedProxy

-     */

-    @WebEndpoint(name = "ProxyDocLitnonWrappedPort")

-    public DocLitnonWrappedProxy getProxyDocLitnonWrappedPort() {

-        return (DocLitnonWrappedProxy)super.getPort(new QName("http://doclitnonwrapped.proxy.test.org", "ProxyDocLitnonWrappedPort"), DocLitnonWrappedProxy.class);

-    }

-

-}

diff --git a/modules/jaxws-integration/test/org/apache/axis2/jaxws/proxy/doclitwrapped/META-INF/MANIFEST.MF b/modules/jaxws-integration/test/org/apache/axis2/jaxws/proxy/doclitwrapped/META-INF/MANIFEST.MF
deleted file mode 100644
index 2f4b568..0000000
--- a/modules/jaxws-integration/test/org/apache/axis2/jaxws/proxy/doclitwrapped/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1 +0,0 @@
-Manifest-Version: 1.0

diff --git a/modules/jaxws-integration/test/org/apache/axis2/jaxws/proxy/doclitwrapped/META-INF/ProxyDocLitWrapped.wsdl b/modules/jaxws-integration/test/org/apache/axis2/jaxws/proxy/doclitwrapped/META-INF/ProxyDocLitWrapped.wsdl
index 209bbcc..edc8ddd 100644
--- a/modules/jaxws-integration/test/org/apache/axis2/jaxws/proxy/doclitwrapped/META-INF/ProxyDocLitWrapped.wsdl
+++ b/modules/jaxws-integration/test/org/apache/axis2/jaxws/proxy/doclitwrapped/META-INF/ProxyDocLitWrapped.wsdl
@@ -189,6 +189,9 @@
 	</wsdl:message>

 

 	<wsdl:portType name="DocLitWrappedProxy">

+        <jaxws:bindings xmlns:jaxws="http://java.sun.com/xml/ns/jaxws">

+            <jaxws:enableAsyncMapping>true</jaxws:enableAsyncMapping>

+        </jaxws:bindings>

 

 		<wsdl:operation name="oneWayVoid">

 			<wsdl:input message="tns:oneWayVoidRequest" />

diff --git a/modules/jaxws-integration/test/org/apache/axis2/jaxws/proxy/doclitwrapped/sei/DocLitWrappedProxy.java b/modules/jaxws-integration/test/org/apache/axis2/jaxws/proxy/doclitwrapped/sei/DocLitWrappedProxy.java
deleted file mode 100644
index a76491e..0000000
--- a/modules/jaxws-integration/test/org/apache/axis2/jaxws/proxy/doclitwrapped/sei/DocLitWrappedProxy.java
+++ /dev/null
@@ -1,249 +0,0 @@
-

-/*

- * Licensed to the Apache Software Foundation (ASF) under one

- * or more contributor license agreements. See the NOTICE file

- * distributed with this work for additional information

- * regarding copyright ownership. The ASF licenses this file

- * to you under the Apache License, Version 2.0 (the

- * "License"); you may not use this file except in compliance

- * with the License. You may obtain a copy of the License at

- *

- * http://www.apache.org/licenses/LICENSE-2.0

- *

- * Unless required by applicable law or agreed to in writing,

- * software distributed under the License is distributed on an

- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

- * KIND, either express or implied. See the License for the

- * specific language governing permissions and limitations

- * under the License.

- */

-

-package org.apache.axis2.jaxws.proxy.doclitwrapped.sei;

-

-import org.test.proxy.doclitwrapped.FinOpResponse;

-import org.test.proxy.doclitwrapped.FinancialOperation;

-import org.test.proxy.doclitwrapped.ReturnType;

-import org.test.proxy.doclitwrapped.TwoWayHolder;

-

-import javax.jws.Oneway;

-import javax.jws.WebMethod;

-import javax.jws.WebParam;

-import javax.jws.WebParam.Mode;

-import javax.jws.WebResult;

-import javax.jws.WebService;

-import javax.xml.ws.AsyncHandler;

-import javax.xml.ws.Holder;

-import javax.xml.ws.RequestWrapper;

-import javax.xml.ws.Response;

-import javax.xml.ws.ResponseWrapper;

-import java.util.concurrent.Future;

-

-/**

- * This class was generated by the JAXWS SI.

- * JAX-WS RI 2.0_01-b15-fcs

- * Generated source version: 2.0

- * 

- */

-@WebService(name = "DocLitWrappedProxy", targetNamespace = "http://doclitwrapped.proxy.test.org")

-public interface DocLitWrappedProxy {

-

-

-    /**

-     * 

-     */

-    @WebMethod(action = "http://doclitwrapped.proxy.test.org/twoWayReturn")

-    @Oneway

-    @RequestWrapper(localName = "oneWayVoid", targetNamespace = "http://doclitwrapped.proxy.test.org", className = "org.test.proxy.doclitwrapped.OneWayVoid")

-    public void oneWayVoid();

-

-    /**

-     * 

-     * @param onewayStr

-     */

-    @WebMethod(action = "http://doclitwrapped.proxy.test.org/twoWayReturn")

-    @Oneway

-    @RequestWrapper(localName = "oneWay", targetNamespace = "http://doclitwrapped.proxy.test.org", className = "org.test.proxy.doclitwrapped.sei.OneWay")

-    public void oneWay(

-        @WebParam(name = "oneway_str", targetNamespace = "")

-        String onewayStr);

-

-    /**

-     * 

-     * @param twoWayHolderInt

-     * @param twoWayHolderStr

-     * @return

-     *     returns javax.xml.ws.Response<doclitwrapped.proxy.test.org.sei.TwoWayHolder>

-     */

-    @WebMethod(operationName = "twoWayHolder", action = "http://doclitwrapped.proxy.test.org/twoWayReturn")

-    @RequestWrapper(localName = "twoWayHolder", targetNamespace = "http://doclitwrapped.proxy.test.org", className = "org.test.proxy.doclitwrapped.TwoWayHolder")

-    @ResponseWrapper(localName = "twoWayHolder", targetNamespace = "http://doclitwrapped.proxy.test.org", className = "org.test.proxy.doclitwrapped.TwoWayHolder")

-    public Response<TwoWayHolder> twoWayHolderAsync(

-        @WebParam(name = "twoWayHolder_str", targetNamespace = "")

-        String twoWayHolderStr,

-        @WebParam(name = "twoWayHolder_int", targetNamespace = "")

-        int twoWayHolderInt);

-

-    /**

-     * 

-     * @param twoWayHolderInt

-     * @param asyncHandler

-     * @param twoWayHolderStr

-     * @return

-     *     returns java.util.concurrent.Future<? extends java.lang.Object>

-     */

-    @WebMethod(operationName = "twoWayHolder", action = "http://doclitwrapped.proxy.test.org/twoWayReturn")

-    @RequestWrapper(localName = "twoWayHolder", targetNamespace = "http://doclitwrapped.proxy.test.org", className = "org.test.proxy.doclitwrapped.TwoWayHolder")

-    @ResponseWrapper(localName = "twoWayHolder", targetNamespace = "http://doclitwrapped.proxy.test.org", className = "org.test.proxy.doclitwrapped.TwoWayHolder")

-    public Future<?> twoWayHolderAsync(

-        @WebParam(name = "twoWayHolder_str", targetNamespace = "")

-        String twoWayHolderStr,

-        @WebParam(name = "twoWayHolder_int", targetNamespace = "")

-        int twoWayHolderInt,

-        @WebParam(name = "asyncHandler", targetNamespace = "")

-        AsyncHandler<TwoWayHolder> asyncHandler);

-

-    /**

-     * 

-     * @param twoWayHolderInt

-     * @param twoWayHolderStr

-     */

-    @WebMethod(action = "http://doclitwrapped.proxy.test.org/twoWayReturn")

-    @RequestWrapper(localName = "twoWayHolder", targetNamespace = "http://doclitwrapped.proxy.test.org", className = "org.test.proxy.doclitwrapped.TwoWayHolder")

-    @ResponseWrapper(localName = "twoWayHolder", targetNamespace = "http://doclitwrapped.proxy.test.org", className = "org.test.proxy.doclitwrapped.TwoWayHolder")

-    public void twoWayHolder(

-        @WebParam(name = "twoWayHolder_str", targetNamespace = "", mode = Mode.INOUT)

-        Holder<String> twoWayHolderStr,

-        @WebParam(name = "twoWayHolder_int", targetNamespace = "", mode = Mode.INOUT)

-        Holder<Integer> twoWayHolderInt);

-

-    /**

-     * 

-     * @param twowayStr

-     * @return

-     *     returns javax.xml.ws.Response<doclitwrapped.proxy.test.org.sei.ReturnType>

-     */

-    @WebMethod(operationName = "twoWay", action = "http://doclitwrapped.proxy.test.org/twoWayReturn")

-    @RequestWrapper(localName = "twoWay", targetNamespace = "http://doclitwrapped.proxy.test.org", className = "org.test.proxy.doclitwrapped.TwoWay")

-    @ResponseWrapper(localName = "ReturnType", targetNamespace = "http://doclitwrapped.proxy.test.org", className = "org.test.proxy.doclitwrapped.sei.ReturnType")

-    public Response<ReturnType> twoWayAsync(

-        @WebParam(name = "twoway_str", targetNamespace = "")

-        String twowayStr);

-

-    /**

-     * 

-     * @param twowayStr

-     * @param asyncHandler

-     * @return

-     *     returns java.util.concurrent.Future<? extends java.lang.Object>

-     */

-    @WebMethod(operationName = "twoWay", action = "http://doclitwrapped.proxy.test.org/twoWayReturn")

-    @RequestWrapper(localName = "twoWay", targetNamespace = "http://doclitwrapped.proxy.test.org", className = "org.test.proxy.doclitwrapped.TwoWay")

-    @ResponseWrapper(localName = "ReturnType", targetNamespace = "http://doclitwrapped.proxy.test.org", className = "org.test.proxy.doclitwrapped.ReturnType")

-    public Future<?> twoWayAsync(

-        @WebParam(name = "twoway_str", targetNamespace = "")

-        String twowayStr,

-        @WebParam(name = "asyncHandler", targetNamespace = "")

-        AsyncHandler<ReturnType> asyncHandler);

-

-    /**

-     * 

-     * @param twowayStr

-     * @return

-     *     returns java.lang.String

-     */

-    @WebMethod(action = "http://doclitwrapped.proxy.test.org/twoWayReturn")

-    @WebResult(name = "return_str", targetNamespace = "")

-    @RequestWrapper(localName = "twoWay", targetNamespace = "http://doclitwrapped.proxy.test.org", className = "org.test.proxy.doclitwrapped.TwoWay")

-    @ResponseWrapper(localName = "ReturnType", targetNamespace = "http://doclitwrapped.proxy.test.org", className = "org.test.proxy.doclitwrapped.ReturnType")

-    public String twoWay(

-        @WebParam(name = "twoway_str", targetNamespace = "")

-        String twowayStr);

-

-

-    /**

-     * 

-     * @param invokeStr

-     * @return

-     *     returns javax.xml.ws.Response<org.apache.axis2.jaxws.proxy.doclitwrapped.sei.ReturnType>

-     */

-    @WebMethod(operationName = "invoke", action = "http://doclitwrapped.proxy.test.org/twoWayReturn")

-    @RequestWrapper(localName = "invoke", targetNamespace = "http://doclitwrapped.proxy.test.org", className = "org.test.proxy.doclitwrapped.Invoke")

-    @ResponseWrapper(localName = "ReturnType", targetNamespace = "http://doclitwrapped.proxy.test.org", className = "org.test.proxy.doclitwrapped.ReturnType")

-    public Response<ReturnType> invokeAsync(

-        @WebParam(name = "invoke_str", targetNamespace = "")

-        String invokeStr);

-

-    /**

-     * 

-     * @param invokeStr

-     * @param asyncHandler

-     * @return

-     *     returns java.util.concurrent.Future<? extends java.lang.Object>

-     */

-    @WebMethod(operationName = "invoke", action = "http://doclitwrapped.proxy.test.org/twoWayReturn")

-    @RequestWrapper(localName = "invoke", targetNamespace = "http://doclitwrapped.proxy.test.org", className = "org.test.proxy.doclitwrapped.Invoke")

-    @ResponseWrapper(localName = "ReturnType", targetNamespace = "http://doclitwrapped.proxy.test.org", className = "org.test.proxy.doclitwrapped.ReturnType")

-    public Future<?> invokeAsync(

-        @WebParam(name = "invoke_str", targetNamespace = "")

-        String invokeStr,

-        @WebParam(name = "asyncHandler", targetNamespace = "")

-        AsyncHandler<ReturnType> asyncHandler);

-

-    /**

-     * 

-     * @param invokeStr

-     * @return

-     *     returns java.lang.String

-     */

-    @WebMethod(action = "http://doclitwrapped.proxy.test.org/twoWayReturn")

-    @WebResult(name = "return_str", targetNamespace = "")

-    @RequestWrapper(localName = "invoke", targetNamespace = "http://doclitwrapped.proxy.test.org", className = "org.test.proxy.doclitwrapped.Invoke")

-    @ResponseWrapper(localName = "ReturnType", targetNamespace = "http://doclitwrapped.proxy.test.org", className = "org.test.proxy.doclitwrapped.ReturnType")

-    public String invoke(

-        @WebParam(name = "invoke_str", targetNamespace = "")

-        String invokeStr);

-

-    /**

-     * 

-     * @param op

-     * @return

-     *     returns javax.xml.ws.Response<doclitwrapped.proxy.test.org.sei.FinOpResponse>

-     */

-    @WebMethod(operationName = "finOp", action = "http://doclitwrapped.proxy.test.org/finOp")

-    @RequestWrapper(localName = "finOp", targetNamespace = "http://doclitwrapped.proxy.test.org", className = "org.test.proxy.doclitwrapped.FinOp")

-    @ResponseWrapper(localName = "finOpResponse", targetNamespace = "http://doclitwrapped.proxy.test.org", className = "org.test.proxy.doclitwrapped.FinOpResponse")

-    public Response<FinOpResponse> finOpAsync(

-        @WebParam(name = "op", targetNamespace = "")

-        FinancialOperation op);

-

-    /**

-     * 

-     * @param op

-     * @param asyncHandler

-     * @return

-     *     returns java.util.concurrent.Future<? extends java.lang.Object>

-     */

-    @WebMethod(operationName = "finOp", action = "http://doclitwrapped.proxy.test.org/finOp")

-    @RequestWrapper(localName = "finOp", targetNamespace = "http://doclitwrapped.proxy.test.org", className = "org.test.proxy.doclitwrapped.FinOp")

-    @ResponseWrapper(localName = "finOpResponse", targetNamespace = "http://doclitwrapped.proxy.test.org", className = "org.test.proxy.doclitwrapped.FinOpResponse")

-    public Future<?> finOpAsync(

-        @WebParam(name = "op", targetNamespace = "")

-        FinancialOperation op,

-        @WebParam(name = "asyncHandler", targetNamespace = "")

-        AsyncHandler<FinOpResponse> asyncHandler);

-

-    /**

-     * 

-     * @param op

-     * @return

-     *     returns doclitwrapped.proxy.test.org.sei.FinancialOperation

-     */

-    @WebMethod(action = "http://doclitwrapped.proxy.test.org/finOp")

-    @WebResult(name = "response", targetNamespace = "")

-    @RequestWrapper(localName = "finOp", targetNamespace = "http://doclitwrapped.proxy.test.org", className = "org.test.proxy.doclitwrapped.FinOp")

-    @ResponseWrapper(localName = "finOpResponse", targetNamespace = "http://doclitwrapped.proxy.test.org", className = "org.test.proxy.doclitwrapped.FinOpResponse")

-    public FinancialOperation finOp(

-        @WebParam(name = "op", targetNamespace = "")

-        FinancialOperation op);

-

-}

diff --git a/modules/jaxws-integration/test/org/apache/axis2/jaxws/proxy/doclitwrapped/sei/ProxyDocLitWrappedService.java b/modules/jaxws-integration/test/org/apache/axis2/jaxws/proxy/doclitwrapped/sei/ProxyDocLitWrappedService.java
deleted file mode 100644
index 4383cfb..0000000
--- a/modules/jaxws-integration/test/org/apache/axis2/jaxws/proxy/doclitwrapped/sei/ProxyDocLitWrappedService.java
+++ /dev/null
@@ -1,82 +0,0 @@
-

-/*

- * Licensed to the Apache Software Foundation (ASF) under one

- * or more contributor license agreements. See the NOTICE file

- * distributed with this work for additional information

- * regarding copyright ownership. The ASF licenses this file

- * to you under the Apache License, Version 2.0 (the

- * "License"); you may not use this file except in compliance

- * with the License. You may obtain a copy of the License at

- *

- * http://www.apache.org/licenses/LICENSE-2.0

- *

- * Unless required by applicable law or agreed to in writing,

- * software distributed under the License is distributed on an

- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

- * KIND, either express or implied. See the License for the

- * specific language governing permissions and limitations

- * under the License.

- */

-

-package org.apache.axis2.jaxws.proxy.doclitwrapped.sei;

-

-import javax.xml.namespace.QName;

-import javax.xml.ws.Service;

-import javax.xml.ws.WebEndpoint;

-import javax.xml.ws.WebServiceClient;

-import java.io.File;

-import java.net.MalformedURLException;

-import java.net.URL;

-

-

-/**

- * This class was generated by the JAXWS SI.

- * JAX-WS RI 2.0_01-b15-fcs

- * Generated source version: 2.0

- * 

- */

-

-@WebServiceClient(name = "ProxyDocLitWrappedService", targetNamespace = "http://doclitwrapped.proxy.test.org", wsdlLocation = "ProxyDocLitWrapped.wsdl")

-public class ProxyDocLitWrappedService

-    extends Service

-{

-

-    private final static URL PROXYDOCLITWRAPPEDSERVICE_WSDL_LOCATION;

-    private static String wsdlLocation = "/test/org/apache/axis2/jaxws/proxy/doclitwrapped/META-INF/ProxyDocLitWrapped.wsdl";

-    static {

-        URL url = null;

-        try {

-        	try{

-	        	String baseDir  = new File(System.getProperty("basedir",".")).getCanonicalPath();

-	        	wsdlLocation = new File(baseDir + wsdlLocation).getAbsolutePath();

-        	}catch(Exception e){

-        		

-        	}

-        	File file = new File(wsdlLocation);

-        	url = file.toURL();

-            

-        } catch (MalformedURLException e) {

-            e.printStackTrace();

-        }

-        PROXYDOCLITWRAPPEDSERVICE_WSDL_LOCATION = url;

-    }

-

-    public ProxyDocLitWrappedService(URL wsdlLocation, QName serviceName) {

-        super(wsdlLocation, serviceName);

-    }

-

-    public ProxyDocLitWrappedService() {

-        super(PROXYDOCLITWRAPPEDSERVICE_WSDL_LOCATION, new QName("http://doclitwrapped.proxy.test.org", "ProxyDocLitWrappedService"));

-    }

-

-    /**

-     * 

-     * @return

-     *     returns DocLitWrappedProxy

-     */

-    @WebEndpoint(name = "ProxyDocLitWrappedPort")

-    public DocLitWrappedProxy getDocLitWrappedProxyImplPort() {

-        return (DocLitWrappedProxy)super.getPort(new QName("http://doclitwrapped.proxy.test.org", "DocLitWrappedProxyImplPort"), DocLitWrappedProxy.class);

-    }

-

-}

diff --git a/modules/jaxws-integration/test/org/apache/axis2/jaxws/proxy/gorilla_dlw/META-INF/MANIFEST.MF b/modules/jaxws-integration/test/org/apache/axis2/jaxws/proxy/gorilla_dlw/META-INF/MANIFEST.MF
deleted file mode 100644
index 2f4b568..0000000
--- a/modules/jaxws-integration/test/org/apache/axis2/jaxws/proxy/gorilla_dlw/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1 +0,0 @@
-Manifest-Version: 1.0

diff --git a/modules/jaxws-integration/test/org/apache/axis2/jaxws/proxy/gorilla_dlw/sei/AssertFault.java b/modules/jaxws-integration/test/org/apache/axis2/jaxws/proxy/gorilla_dlw/sei/AssertFault.java
index 8622945..da76c00 100644
--- a/modules/jaxws-integration/test/org/apache/axis2/jaxws/proxy/gorilla_dlw/sei/AssertFault.java
+++ b/modules/jaxws-integration/test/org/apache/axis2/jaxws/proxy/gorilla_dlw/sei/AssertFault.java
@@ -1,73 +1,73 @@
-

-/*

- * Licensed to the Apache Software Foundation (ASF) under one

- * or more contributor license agreements. See the NOTICE file

- * distributed with this work for additional information

- * regarding copyright ownership. The ASF licenses this file

- * to you under the Apache License, Version 2.0 (the

- * "License"); you may not use this file except in compliance

- * with the License. You may obtain a copy of the License at

- *

- * http://www.apache.org/licenses/LICENSE-2.0

- *

- * Unless required by applicable law or agreed to in writing,

- * software distributed under the License is distributed on an

- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

- * KIND, either express or implied. See the License for the

- * specific language governing permissions and limitations

- * under the License.

- */

-

-package org.apache.axis2.jaxws.proxy.gorilla_dlw.sei;

-

-import javax.xml.ws.WebFault;

-

-

-/**

- * This class was generated by the JAXWS SI.

- * JAX-WS RI 2.0_01-b15-fcs

- * Generated source version: 2.0

- * 

- */

-@WebFault(name = "assertFault", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data")

-public class AssertFault

-    extends Exception

-{

-

-    /**

-     * Java type that goes as soapenv:Fault detail element.

-     * 

-     */

-    private org.apache.axis2.jaxws.proxy.gorilla_dlw.data.AssertFault faultInfo;

-

-    /**

-     * 

-     * @param message

-     * @param faultInfo

-     */

-    public AssertFault(String message, org.apache.axis2.jaxws.proxy.gorilla_dlw.data.AssertFault faultInfo) {

-        super(message);

-        this.faultInfo = faultInfo;

-    }

-

-    /**

-     * 

-     * @param cause

-     * @param message

-     * @param faultInfo

-     */

-    public AssertFault(String message, org.apache.axis2.jaxws.proxy.gorilla_dlw.data.AssertFault faultInfo, Throwable cause) {

-        super(message, cause);

-        this.faultInfo = faultInfo;

-    }

-

-    /**

-     * 

-     * @return

-     *     returns fault bean: org.apache.axis2.jaxws.proxy.gorilla_dlw.data.AssertFault

-     */

-    public org.apache.axis2.jaxws.proxy.gorilla_dlw.data.AssertFault getFaultInfo() {

-        return faultInfo;

-    }

-

-}

+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.axis2.jaxws.proxy.gorilla_dlw.sei;
+
+import javax.xml.ws.WebFault;
+
+
+/**
+ * This class was generated by the JAXWS SI.
+ * JAX-WS RI 2.0_01-b15-fcs
+ * Generated source version: 2.0
+ * 
+ */
+@WebFault(name = "assertFault", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data")
+public class AssertFault
+    extends Exception
+{
+
+    /**
+     * Java type that goes as soapenv:Fault detail element.
+     * 
+     */
+    private org.apache.axis2.jaxws.proxy.gorilla_dlw.data.AssertFault faultInfo;
+
+    /**
+     * 
+     * @param message
+     * @param faultInfo
+     */
+    public AssertFault(String message, org.apache.axis2.jaxws.proxy.gorilla_dlw.data.AssertFault faultInfo) {
+        super(message);
+        this.faultInfo = faultInfo;
+    }
+
+    /**
+     * 
+     * @param cause
+     * @param message
+     * @param faultInfo
+     */
+    public AssertFault(String message, org.apache.axis2.jaxws.proxy.gorilla_dlw.data.AssertFault faultInfo, Throwable cause) {
+        super(message, cause);
+        this.faultInfo = faultInfo;
+    }
+
+    /**
+     * 
+     * @return
+     *     returns fault bean: org.apache.axis2.jaxws.proxy.gorilla_dlw.data.AssertFault
+     */
+    public org.apache.axis2.jaxws.proxy.gorilla_dlw.data.AssertFault getFaultInfo() {
+        return faultInfo;
+    }
+
+}
diff --git a/modules/jaxws-integration/test/org/apache/axis2/jaxws/proxy/gorilla_dlw/sei/GorillaInterface.java b/modules/jaxws-integration/test/org/apache/axis2/jaxws/proxy/gorilla_dlw/sei/GorillaInterface.java
index c28ed1a..ce1c435 100644
--- a/modules/jaxws-integration/test/org/apache/axis2/jaxws/proxy/gorilla_dlw/sei/GorillaInterface.java
+++ b/modules/jaxws-integration/test/org/apache/axis2/jaxws/proxy/gorilla_dlw/sei/GorillaInterface.java
@@ -1,341 +1,341 @@
-

-/*

- * Licensed to the Apache Software Foundation (ASF) under one

- * or more contributor license agreements. See the NOTICE file

- * distributed with this work for additional information

- * regarding copyright ownership. The ASF licenses this file

- * to you under the Apache License, Version 2.0 (the

- * "License"); you may not use this file except in compliance

- * with the License. You may obtain a copy of the License at

- *

- * http://www.apache.org/licenses/LICENSE-2.0

- *

- * Unless required by applicable law or agreed to in writing,

- * software distributed under the License is distributed on an

- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

- * KIND, either express or implied. See the License for the

- * specific language governing permissions and limitations

- * under the License.

- */

-

-package org.apache.axis2.jaxws.proxy.gorilla_dlw.sei;

-

-import org.apache.axis2.jaxws.proxy.gorilla_dlw.data.Fruit;

-

-import javax.jws.Oneway;

-import javax.jws.WebMethod;

-import javax.jws.WebParam;

-import javax.jws.WebParam.Mode;

-import javax.jws.WebResult;

-import javax.jws.WebService;

-import javax.xml.bind.annotation.XmlSeeAlso;

-import javax.xml.datatype.Duration;

-import javax.xml.datatype.XMLGregorianCalendar;

-import javax.xml.ws.Holder;

-import javax.xml.ws.RequestWrapper;

-import javax.xml.ws.ResponseWrapper;

-import java.util.List;

-

-/**

- * This class was generated by the JAXWS SI.

- * JAX-WS RI 2.0_01-b15-fcs

- * Generated source version: 2.0

- * 

- */

-@WebService(name = "GorillaInterface", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw")

-@XmlSeeAlso(org.test.stock2.GetPrice.class)  // Test see also processing

-public interface GorillaInterface {

-

-

-    /**

-     * 

-     * @param data

-     * @return

-     *     returns java.lang.String

-     * @throws AssertFault

-     */

-    @WebMethod

-    @WebResult(name = "result", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data")

-    @RequestWrapper(localName = "echoString", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data", className = "org.apache.axis2.jaxws.proxy.gorilla_dlw.data.EchoString")

-    @ResponseWrapper(localName = "echoStringResponse", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data", className = "org.apache.axis2.jaxws.proxy.gorilla_dlw.data.EchoStringResponse")

-    public String echoString(

-        @WebParam(name = "data", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data")

-        String data)

-        throws AssertFault

-    ;

-

-    /**

-     * 

-     * @param data

-     * @param inout

-     * @throws AssertFault

-     */

-    @WebMethod

-    @RequestWrapper(localName = "echoString2", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data", className = "org.apache.axis2.jaxws.proxy.gorilla_dlw.data.EchoString2")

-    @ResponseWrapper(localName = "echoString2Response", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data", className = "org.apache.axis2.jaxws.proxy.gorilla_dlw.data.EchoString2Response")

-    public void echoString2(

-        @WebParam(name = "data", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data")

-        String data,

-        @WebParam(name = "inout", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data", mode = Mode.INOUT)

-        Holder<String> inout)

-        throws AssertFault

-    ;

-

-    /**

-     * 

-     * @param data

-     * @return

-     *     returns java.lang.Integer

-     * @throws AssertFault

-     */

-    @WebMethod

-    @WebResult(name = "result", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data")

-    @RequestWrapper(localName = "echoInt", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data", className = "org.apache.axis2.jaxws.proxy.gorilla_dlw.data.EchoInt")

-    @ResponseWrapper(localName = "echoIntResponse", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data", className = "org.apache.axis2.jaxws.proxy.gorilla_dlw.data.EchoIntResponse")

-    public Integer echoInt(

-        @WebParam(name = "data", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data")

-        Integer data)

-        throws AssertFault

-    ;

-

-    /**

-     * 

-     * @param data

-     * @return

-     *     returns org.apache.axis2.jaxws.proxy.gorilla_dlw.data.Fruit

-     * @throws AssertFault

-     */

-    @WebMethod

-    @WebResult(name = "result", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data")

-    @RequestWrapper(localName = "echoEnum", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data", className = "org.apache.axis2.jaxws.proxy.gorilla_dlw.data.EchoEnum")

-    @ResponseWrapper(localName = "echoEnumResponse", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data", className = "org.apache.axis2.jaxws.proxy.gorilla_dlw.data.EchoEnumResponse")

-    public Fruit echoEnum(

-        @WebParam(name = "data", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data")

-        Fruit data)

-        throws AssertFault

-    ;

-

-    /**

-     * 

-     * @param data

-     * @return

-     *     returns java.lang.Object

-     * @throws AssertFault

-     */

-    @WebMethod

-    @WebResult(name = "result", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data")

-    @RequestWrapper(localName = "echoAnyType", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data", className = "org.apache.axis2.jaxws.proxy.gorilla_dlw.data.EchoAnyType")

-    @ResponseWrapper(localName = "echoAnyTypeResponse", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data", className = "org.apache.axis2.jaxws.proxy.gorilla_dlw.data.EchoAnyTypeResponse")

-    public Object echoAnyType(

-        @WebParam(name = "data", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data")

-        Object data)

-        throws AssertFault

-    ;

-

-    /**

-     * 

-     * @param data

-     * @return

-     *     returns java.util.List<java.util.List<java.lang.String>>

-     * @throws AssertFault

-     */

-    @WebMethod

-    @WebResult(name = "result", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data")

-    @RequestWrapper(localName = "echoStringList", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data", className = "org.apache.axis2.jaxws.proxy.gorilla_dlw.data.EchoStringList")

-    @ResponseWrapper(localName = "echoStringListResponse", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data", className = "org.apache.axis2.jaxws.proxy.gorilla_dlw.data.EchoStringListResponse")

-    public List<String> echoStringList(

-        @WebParam(name = "data", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data")

-        List<String> data)

-        throws AssertFault

-    ;

-

-    /**

-     * 

-     * @param data

-     * @return

-     *     returns String[]

-     * @throws AssertFault

-     */

-    // NOTE: The return and param are manually changed from List<String> to String[]

-    @WebMethod

-    @WebResult(name = "result", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data")

-    @RequestWrapper(localName = "echoStringListAlt", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data", className = "org.apache.axis2.jaxws.proxy.gorilla_dlw.data.EchoStringListAlt")

-    @ResponseWrapper(localName = "echoStringListAltResponse", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data", className = "org.apache.axis2.jaxws.proxy.gorilla_dlw.data.EchoStringListAltResponse")

-    public String[] echoStringListAlt(

-        @WebParam(name = "data", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data")

-        String[] data)

-        throws AssertFault

-    ;

-

-    /**

-     * 

-     * @param data

-     * @return

-     *     returns java.util.List<java.util.List<java.lang.String>>

-     * @throws AssertFault

-     */

-    @WebMethod

-    @WebResult(name = "result", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data")

-    @RequestWrapper(localName = "echoStringListArray", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data", className = "org.apache.axis2.jaxws.proxy.gorilla_dlw.data.EchoStringListArray")

-    @ResponseWrapper(localName = "echoStringListArrayResponse", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data", className = "org.apache.axis2.jaxws.proxy.gorilla_dlw.data.EchoStringListArrayResponse")

-    public List<List<String>> echoStringListArray(

-        @WebParam(name = "data", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data")

-        List<List<String>> data)

-        throws AssertFault

-    ;

-

-    /**

-     * 

-     * @param data

-     * @return

-     *     returns java.util.List<java.lang.String>

-     * @throws AssertFault

-     */

-    @WebMethod

-    @WebResult(name = "result", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data")

-    @RequestWrapper(localName = "echoStringArray", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data", className = "org.apache.axis2.jaxws.proxy.gorilla_dlw.data.EchoStringArray")

-    @ResponseWrapper(localName = "echoStringArrayResponse", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data", className = "org.apache.axis2.jaxws.proxy.gorilla_dlw.data.EchoStringArrayResponse")

-    public List<String> echoStringArray(

-        @WebParam(name = "data", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data")

-        List<String> data)

-        throws AssertFault

-    ;

-    

-    /**

-     * 

-     * @param data

-     * @return

-     *     returns String[]

-     * @throws AssertFault

-     */

-    //  NOTE: The return and param are manually changed from List<String> to String[]

-    @WebMethod

-    @WebResult(name = "result", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data")

-    @RequestWrapper(localName = "echoStringArrayAlt", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data", className = "org.apache.axis2.jaxws.proxy.gorilla_dlw.data.EchoStringArrayAlt")

-    @ResponseWrapper(localName = "echoStringArrayAltResponse", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data", className = "org.apache.axis2.jaxws.proxy.gorilla_dlw.data.EchoStringArrayAltResponse")

-    public String[] echoStringArrayAlt(

-        @WebParam(name = "data", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data")

-        String[] data)

-        throws AssertFault

-    ;

-

-    /**

-     * 

-     * @param data

-     * @return

-     *     returns java.util.List<java.lang.String>

-     * @throws AssertFault

-     */

-    @WebMethod

-    @WebResult(name = "result", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data")

-    @RequestWrapper(localName = "echoIndexedStringArray", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data", className = "org.apache.axis2.jaxws.proxy.gorilla_dlw.data.EchoIndexedStringArray")

-    @ResponseWrapper(localName = "echoIndexedStringArrayResponse", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data", className = "org.apache.axis2.jaxws.proxy.gorilla_dlw.data.EchoIndexedStringArrayResponse")

-    public List<String> echoIndexedStringArray(

-        @WebParam(name = "data", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data")

-        List<String> data)

-        throws AssertFault

-    ;

-    

-

-    /**

-     * 

-     * @param data

-     * @param inout

-     * @throws AssertFault

-     */

-    @WebMethod

-    @RequestWrapper(localName = "echoString2Array", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data", className = "org.apache.axis2.jaxws.proxy.gorilla_dlw.data.EchoString2Array")

-    @ResponseWrapper(localName = "echoString2ArrayResponse", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data", className = "org.apache.axis2.jaxws.proxy.gorilla_dlw.data.EchoString2ArrayResponse")

-    public void echoString2Array(

-        @WebParam(name = "data", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data")

-        List<String> data,

-        @WebParam(name = "inout", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data", mode = Mode.INOUT)

-        Holder<List<String>> inout)

-        throws AssertFault

-    ;

-

-    /**

-     * 

-     * @param data

-     * @return

-     *     returns java.util.List<java.lang.Integer>

-     * @throws AssertFault

-     */

-    @WebMethod

-    @WebResult(name = "result", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data")

-    @RequestWrapper(localName = "echoIntArray", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data", className = "org.apache.axis2.jaxws.proxy.gorilla_dlw.data.EchoIntArray")

-    @ResponseWrapper(localName = "echoIntArrayResponse", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data", className = "org.apache.axis2.jaxws.proxy.gorilla_dlw.data.EchoIntArrayResponse")

-    public List<Integer> echoIntArray(

-        @WebParam(name = "data", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data")

-        List<Integer> data)

-        throws AssertFault

-    ;

-

-    /**

-     * 

-     * @param data

-     * @return

-     *     returns java.util.List<org.apache.axis2.jaxws.proxy.gorilla_dlw.data.Fruit>

-     * @throws AssertFault

-     */

-    @WebMethod

-    @WebResult(name = "result", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data")

-    @RequestWrapper(localName = "echoEnumArray", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data", className = "org.apache.axis2.jaxws.proxy.gorilla_dlw.data.EchoEnumArray")

-    @ResponseWrapper(localName = "echoEnumArrayResponse", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data", className = "org.apache.axis2.jaxws.proxy.gorilla_dlw.data.EchoEnumArrayResponse")

-    public List<Fruit> echoEnumArray(

-        @WebParam(name = "data", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data")

-        List<Fruit> data)

-        throws AssertFault

-    ;

-

-    /**

-     * 

-     * @param data

-     * @return

-     *     returns java.util.List<java.lang.Object>

-     * @throws AssertFault

-     */

-    @WebMethod

-    @WebResult(name = "result", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data")

-    @RequestWrapper(localName = "echoAnyTypeArray", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data", className = "org.apache.axis2.jaxws.proxy.gorilla_dlw.data.EchoAnyTypeArray")

-    @ResponseWrapper(localName = "echoAnyTypeArrayResponse", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data", className = "org.apache.axis2.jaxws.proxy.gorilla_dlw.data.EchoAnyTypeArrayResponse")

-    public List<Object> echoAnyTypeArray(

-        @WebParam(name = "data", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data")

-        List<Object> data)

-        throws AssertFault

-    ;

-    /**

-     * 

-     * @param requestedTerminationTime

-     * @param requestedLifetimeDuration

-     * @return

-     *     returns javax.xml.datatype.XMLGregorianCalendar

-     */

-    @WebMethod

-    @WebResult(name = "response", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data")

-    @RequestWrapper(localName = "echoDate", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data", className = "org.apache.axis2.jaxws.proxy.gorilla_dlw.data.EchoDate")

-    @ResponseWrapper(localName = "echoDateResponse", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data", className = "org.apache.axis2.jaxws.proxy.gorilla_dlw.data.EchoDateResponse")

-    public XMLGregorianCalendar echoDate(

-        @WebParam(name = "RequestedTerminationTime", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data")

-        XMLGregorianCalendar requestedTerminationTime,

-        @WebParam(name = "RequestedLifetimeDuration", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data")

-        Duration requestedLifetimeDuration);

-

-    /**

-     * 

-     * @param request

-     */

-    @WebMethod

-    @Oneway

-    @RequestWrapper(localName = "echoPolymorphicDate", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data", className = "org.apache.axis2.jaxws.proxy.gorilla_dlw.data.EchoPolymorphicDate")

-    public void echoPolymorphicDate(

-        @WebParam(name = "request", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data")

-        XMLGregorianCalendar request);

-    

-    /**

-     * The following non-doc method is not invoked.  It is only present to test the 

-     * generic reflection code. 

-     */

-    @WebMethod

-    public List<org.test.stock1.GetPrice> sampleMethod();

-}

+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.axis2.jaxws.proxy.gorilla_dlw.sei;
+
+import org.apache.axis2.jaxws.proxy.gorilla_dlw.data.Fruit;
+
+import javax.jws.Oneway;
+import javax.jws.WebMethod;
+import javax.jws.WebParam;
+import javax.jws.WebParam.Mode;
+import javax.jws.WebResult;
+import javax.jws.WebService;
+import javax.xml.bind.annotation.XmlSeeAlso;
+import javax.xml.datatype.Duration;
+import javax.xml.datatype.XMLGregorianCalendar;
+import javax.xml.ws.Holder;
+import javax.xml.ws.RequestWrapper;
+import javax.xml.ws.ResponseWrapper;
+import java.util.List;
+
+/**
+ * This class was generated by the JAXWS SI.
+ * JAX-WS RI 2.0_01-b15-fcs
+ * Generated source version: 2.0
+ * 
+ */
+@WebService(name = "GorillaInterface", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw")
+@XmlSeeAlso(org.test.stock2.GetPrice.class)  // Test see also processing
+public interface GorillaInterface {
+
+
+    /**
+     * 
+     * @param data
+     * @return
+     *     returns java.lang.String
+     * @throws AssertFault
+     */
+    @WebMethod
+    @WebResult(name = "result", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data")
+    @RequestWrapper(localName = "echoString", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data", className = "org.apache.axis2.jaxws.proxy.gorilla_dlw.data.EchoString")
+    @ResponseWrapper(localName = "echoStringResponse", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data", className = "org.apache.axis2.jaxws.proxy.gorilla_dlw.data.EchoStringResponse")
+    public String echoString(
+        @WebParam(name = "data", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data")
+        String data)
+        throws AssertFault
+    ;
+
+    /**
+     * 
+     * @param data
+     * @param inout
+     * @throws AssertFault
+     */
+    @WebMethod
+    @RequestWrapper(localName = "echoString2", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data", className = "org.apache.axis2.jaxws.proxy.gorilla_dlw.data.EchoString2")
+    @ResponseWrapper(localName = "echoString2Response", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data", className = "org.apache.axis2.jaxws.proxy.gorilla_dlw.data.EchoString2Response")
+    public void echoString2(
+        @WebParam(name = "data", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data")
+        String data,
+        @WebParam(name = "inout", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data", mode = Mode.INOUT)
+        Holder<String> inout)
+        throws AssertFault
+    ;
+
+    /**
+     * 
+     * @param data
+     * @return
+     *     returns java.lang.Integer
+     * @throws AssertFault
+     */
+    @WebMethod
+    @WebResult(name = "result", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data")
+    @RequestWrapper(localName = "echoInt", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data", className = "org.apache.axis2.jaxws.proxy.gorilla_dlw.data.EchoInt")
+    @ResponseWrapper(localName = "echoIntResponse", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data", className = "org.apache.axis2.jaxws.proxy.gorilla_dlw.data.EchoIntResponse")
+    public Integer echoInt(
+        @WebParam(name = "data", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data")
+        Integer data)
+        throws AssertFault
+    ;
+
+    /**
+     * 
+     * @param data
+     * @return
+     *     returns org.apache.axis2.jaxws.proxy.gorilla_dlw.data.Fruit
+     * @throws AssertFault
+     */
+    @WebMethod
+    @WebResult(name = "result", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data")
+    @RequestWrapper(localName = "echoEnum", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data", className = "org.apache.axis2.jaxws.proxy.gorilla_dlw.data.EchoEnum")
+    @ResponseWrapper(localName = "echoEnumResponse", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data", className = "org.apache.axis2.jaxws.proxy.gorilla_dlw.data.EchoEnumResponse")
+    public Fruit echoEnum(
+        @WebParam(name = "data", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data")
+        Fruit data)
+        throws AssertFault
+    ;
+
+    /**
+     * 
+     * @param data
+     * @return
+     *     returns java.lang.Object
+     * @throws AssertFault
+     */
+    @WebMethod
+    @WebResult(name = "result", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data")
+    @RequestWrapper(localName = "echoAnyType", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data", className = "org.apache.axis2.jaxws.proxy.gorilla_dlw.data.EchoAnyType")
+    @ResponseWrapper(localName = "echoAnyTypeResponse", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data", className = "org.apache.axis2.jaxws.proxy.gorilla_dlw.data.EchoAnyTypeResponse")
+    public Object echoAnyType(
+        @WebParam(name = "data", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data")
+        Object data)
+        throws AssertFault
+    ;
+
+    /**
+     * 
+     * @param data
+     * @return
+     *     returns java.util.List<java.util.List<java.lang.String>>
+     * @throws AssertFault
+     */
+    @WebMethod
+    @WebResult(name = "result", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data")
+    @RequestWrapper(localName = "echoStringList", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data", className = "org.apache.axis2.jaxws.proxy.gorilla_dlw.data.EchoStringList")
+    @ResponseWrapper(localName = "echoStringListResponse", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data", className = "org.apache.axis2.jaxws.proxy.gorilla_dlw.data.EchoStringListResponse")
+    public List<String> echoStringList(
+        @WebParam(name = "data", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data")
+        List<String> data)
+        throws AssertFault
+    ;
+
+    /**
+     * 
+     * @param data
+     * @return
+     *     returns String[]
+     * @throws AssertFault
+     */
+    // NOTE: The return and param are manually changed from List<String> to String[]
+    @WebMethod
+    @WebResult(name = "result", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data")
+    @RequestWrapper(localName = "echoStringListAlt", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data", className = "org.apache.axis2.jaxws.proxy.gorilla_dlw.data.EchoStringListAlt")
+    @ResponseWrapper(localName = "echoStringListAltResponse", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data", className = "org.apache.axis2.jaxws.proxy.gorilla_dlw.data.EchoStringListAltResponse")
+    public String[] echoStringListAlt(
+        @WebParam(name = "data", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data")
+        String[] data)
+        throws AssertFault
+    ;
+
+    /**
+     * 
+     * @param data
+     * @return
+     *     returns java.util.List<java.util.List<java.lang.String>>
+     * @throws AssertFault
+     */
+    @WebMethod
+    @WebResult(name = "result", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data")
+    @RequestWrapper(localName = "echoStringListArray", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data", className = "org.apache.axis2.jaxws.proxy.gorilla_dlw.data.EchoStringListArray")
+    @ResponseWrapper(localName = "echoStringListArrayResponse", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data", className = "org.apache.axis2.jaxws.proxy.gorilla_dlw.data.EchoStringListArrayResponse")
+    public List<List<String>> echoStringListArray(
+        @WebParam(name = "data", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data")
+        List<List<String>> data)
+        throws AssertFault
+    ;
+
+    /**
+     * 
+     * @param data
+     * @return
+     *     returns java.util.List<java.lang.String>
+     * @throws AssertFault
+     */
+    @WebMethod
+    @WebResult(name = "result", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data")
+    @RequestWrapper(localName = "echoStringArray", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data", className = "org.apache.axis2.jaxws.proxy.gorilla_dlw.data.EchoStringArray")
+    @ResponseWrapper(localName = "echoStringArrayResponse", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data", className = "org.apache.axis2.jaxws.proxy.gorilla_dlw.data.EchoStringArrayResponse")
+    public List<String> echoStringArray(
+        @WebParam(name = "data", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data")
+        List<String> data)
+        throws AssertFault
+    ;
+    
+    /**
+     * 
+     * @param data
+     * @return
+     *     returns String[]
+     * @throws AssertFault
+     */
+    //  NOTE: The return and param are manually changed from List<String> to String[]
+    @WebMethod
+    @WebResult(name = "result", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data")
+    @RequestWrapper(localName = "echoStringArrayAlt", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data", className = "org.apache.axis2.jaxws.proxy.gorilla_dlw.data.EchoStringArrayAlt")
+    @ResponseWrapper(localName = "echoStringArrayAltResponse", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data", className = "org.apache.axis2.jaxws.proxy.gorilla_dlw.data.EchoStringArrayAltResponse")
+    public String[] echoStringArrayAlt(
+        @WebParam(name = "data", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data")
+        String[] data)
+        throws AssertFault
+    ;
+
+    /**
+     * 
+     * @param data
+     * @return
+     *     returns java.util.List<java.lang.String>
+     * @throws AssertFault
+     */
+    @WebMethod
+    @WebResult(name = "result", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data")
+    @RequestWrapper(localName = "echoIndexedStringArray", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data", className = "org.apache.axis2.jaxws.proxy.gorilla_dlw.data.EchoIndexedStringArray")
+    @ResponseWrapper(localName = "echoIndexedStringArrayResponse", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data", className = "org.apache.axis2.jaxws.proxy.gorilla_dlw.data.EchoIndexedStringArrayResponse")
+    public List<String> echoIndexedStringArray(
+        @WebParam(name = "data", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data")
+        List<String> data)
+        throws AssertFault
+    ;
+    
+
+    /**
+     * 
+     * @param data
+     * @param inout
+     * @throws AssertFault
+     */
+    @WebMethod
+    @RequestWrapper(localName = "echoString2Array", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data", className = "org.apache.axis2.jaxws.proxy.gorilla_dlw.data.EchoString2Array")
+    @ResponseWrapper(localName = "echoString2ArrayResponse", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data", className = "org.apache.axis2.jaxws.proxy.gorilla_dlw.data.EchoString2ArrayResponse")
+    public void echoString2Array(
+        @WebParam(name = "data", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data")
+        List<String> data,
+        @WebParam(name = "inout", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data", mode = Mode.INOUT)
+        Holder<List<String>> inout)
+        throws AssertFault
+    ;
+
+    /**
+     * 
+     * @param data
+     * @return
+     *     returns java.util.List<java.lang.Integer>
+     * @throws AssertFault
+     */
+    @WebMethod
+    @WebResult(name = "result", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data")
+    @RequestWrapper(localName = "echoIntArray", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data", className = "org.apache.axis2.jaxws.proxy.gorilla_dlw.data.EchoIntArray")
+    @ResponseWrapper(localName = "echoIntArrayResponse", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data", className = "org.apache.axis2.jaxws.proxy.gorilla_dlw.data.EchoIntArrayResponse")
+    public List<Integer> echoIntArray(
+        @WebParam(name = "data", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data")
+        List<Integer> data)
+        throws AssertFault
+    ;
+
+    /**
+     * 
+     * @param data
+     * @return
+     *     returns java.util.List<org.apache.axis2.jaxws.proxy.gorilla_dlw.data.Fruit>
+     * @throws AssertFault
+     */
+    @WebMethod
+    @WebResult(name = "result", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data")
+    @RequestWrapper(localName = "echoEnumArray", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data", className = "org.apache.axis2.jaxws.proxy.gorilla_dlw.data.EchoEnumArray")
+    @ResponseWrapper(localName = "echoEnumArrayResponse", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data", className = "org.apache.axis2.jaxws.proxy.gorilla_dlw.data.EchoEnumArrayResponse")
+    public List<Fruit> echoEnumArray(
+        @WebParam(name = "data", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data")
+        List<Fruit> data)
+        throws AssertFault
+    ;
+
+    /**
+     * 
+     * @param data
+     * @return
+     *     returns java.util.List<java.lang.Object>
+     * @throws AssertFault
+     */
+    @WebMethod
+    @WebResult(name = "result", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data")
+    @RequestWrapper(localName = "echoAnyTypeArray", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data", className = "org.apache.axis2.jaxws.proxy.gorilla_dlw.data.EchoAnyTypeArray")
+    @ResponseWrapper(localName = "echoAnyTypeArrayResponse", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data", className = "org.apache.axis2.jaxws.proxy.gorilla_dlw.data.EchoAnyTypeArrayResponse")
+    public List<Object> echoAnyTypeArray(
+        @WebParam(name = "data", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data")
+        List<Object> data)
+        throws AssertFault
+    ;
+    /**
+     * 
+     * @param requestedTerminationTime
+     * @param requestedLifetimeDuration
+     * @return
+     *     returns javax.xml.datatype.XMLGregorianCalendar
+     */
+    @WebMethod
+    @WebResult(name = "response", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data")
+    @RequestWrapper(localName = "echoDate", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data", className = "org.apache.axis2.jaxws.proxy.gorilla_dlw.data.EchoDate")
+    @ResponseWrapper(localName = "echoDateResponse", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data", className = "org.apache.axis2.jaxws.proxy.gorilla_dlw.data.EchoDateResponse")
+    public XMLGregorianCalendar echoDate(
+        @WebParam(name = "RequestedTerminationTime", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data")
+        XMLGregorianCalendar requestedTerminationTime,
+        @WebParam(name = "RequestedLifetimeDuration", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data")
+        Duration requestedLifetimeDuration);
+
+    /**
+     * 
+     * @param request
+     */
+    @WebMethod
+    @Oneway
+    @RequestWrapper(localName = "echoPolymorphicDate", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data", className = "org.apache.axis2.jaxws.proxy.gorilla_dlw.data.EchoPolymorphicDate")
+    public void echoPolymorphicDate(
+        @WebParam(name = "request", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw/data")
+        XMLGregorianCalendar request);
+    
+    /**
+     * The following non-doc method is not invoked.  It is only present to test the 
+     * generic reflection code. 
+     */
+    @WebMethod
+    public List<org.test.stock1.GetPrice> sampleMethod();
+}
diff --git a/modules/jaxws-integration/test/org/apache/axis2/jaxws/proxy/gorilla_dlw/sei/GorillaService.java b/modules/jaxws-integration/test/org/apache/axis2/jaxws/proxy/gorilla_dlw/sei/GorillaService.java
index 3560ad4..728fee3 100644
--- a/modules/jaxws-integration/test/org/apache/axis2/jaxws/proxy/gorilla_dlw/sei/GorillaService.java
+++ b/modules/jaxws-integration/test/org/apache/axis2/jaxws/proxy/gorilla_dlw/sei/GorillaService.java
@@ -1,71 +1,71 @@
-

-/*

- * Licensed to the Apache Software Foundation (ASF) under one

- * or more contributor license agreements. See the NOTICE file

- * distributed with this work for additional information

- * regarding copyright ownership. The ASF licenses this file

- * to you under the Apache License, Version 2.0 (the

- * "License"); you may not use this file except in compliance

- * with the License. You may obtain a copy of the License at

- *

- * http://www.apache.org/licenses/LICENSE-2.0

- *

- * Unless required by applicable law or agreed to in writing,

- * software distributed under the License is distributed on an

- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

- * KIND, either express or implied. See the License for the

- * specific language governing permissions and limitations

- * under the License.

- */

-

-package org.apache.axis2.jaxws.proxy.gorilla_dlw.sei;

-

-import javax.xml.namespace.QName;

-import javax.xml.ws.Service;

-import javax.xml.ws.WebEndpoint;

-import javax.xml.ws.WebServiceClient;

-import java.net.MalformedURLException;

-import java.net.URL;

-

-/**

- * This class was generated by the JAXWS SI.

- * JAX-WS RI 2.0_01-b15-fcs

- * Generated source version: 2.0

- * 

- */

-@WebServiceClient(name = "GorillaService", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw", wsdlLocation = "gorilla_dlw.wsdl")

-public class GorillaService

-    extends Service

-{

-

-    private final static URL GORILLASERVICE_WSDL_LOCATION;

-

-    static {

-        URL url = null;

-        try {

-            url = new URL("file:/C:/compwsdl/gorilla_dlw.wsdl");

-        } catch (MalformedURLException e) {

-            e.printStackTrace();

-        }

-        GORILLASERVICE_WSDL_LOCATION = url;

-    }

-

-    public GorillaService(URL wsdlLocation, QName serviceName) {

-        super(wsdlLocation, serviceName);

-    }

-

-    public GorillaService() {

-        super(GORILLASERVICE_WSDL_LOCATION, new QName("http://org/apache/axis2/jaxws/proxy/gorilla_dlw", "GorillaService"));

-    }

-

-    /**

-     * 

-     * @return

-     *     returns GorillaInterface

-     */

-    @WebEndpoint(name = "GorillaPort")

-    public GorillaInterface getGorillaPort() {

-        return (GorillaInterface)super.getPort(new QName("http://org/apache/axis2/jaxws/proxy/gorilla_dlw", "GorillaPort"), GorillaInterface.class);

-    }

-

-}

+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.axis2.jaxws.proxy.gorilla_dlw.sei;
+
+import javax.xml.namespace.QName;
+import javax.xml.ws.Service;
+import javax.xml.ws.WebEndpoint;
+import javax.xml.ws.WebServiceClient;
+import java.net.MalformedURLException;
+import java.net.URL;
+
+/**
+ * This class was generated by the JAXWS SI.
+ * JAX-WS RI 2.0_01-b15-fcs
+ * Generated source version: 2.0
+ * 
+ */
+@WebServiceClient(name = "GorillaService", targetNamespace = "http://org/apache/axis2/jaxws/proxy/gorilla_dlw", wsdlLocation = "gorilla_dlw.wsdl")
+public class GorillaService
+    extends Service
+{
+
+    private final static URL GORILLASERVICE_WSDL_LOCATION;
+
+    static {
+        URL url = null;
+        try {
+            url = new URL("file:/C:/compwsdl/gorilla_dlw.wsdl");
+        } catch (MalformedURLException e) {
+            e.printStackTrace();
+        }
+        GORILLASERVICE_WSDL_LOCATION = url;
+    }
+
+    public GorillaService(URL wsdlLocation, QName serviceName) {
+        super(wsdlLocation, serviceName);
+    }
+
+    public GorillaService() {
+        super(GORILLASERVICE_WSDL_LOCATION, new QName("http://org/apache/axis2/jaxws/proxy/gorilla_dlw", "GorillaService"));
+    }
+
+    /**
+     * 
+     * @return
+     *     returns GorillaInterface
+     */
+    @WebEndpoint(name = "GorillaPort")
+    public GorillaInterface getGorillaPort() {
+        return (GorillaInterface)super.getPort(new QName("http://org/apache/axis2/jaxws/proxy/gorilla_dlw", "GorillaPort"), GorillaInterface.class);
+    }
+
+}
diff --git a/modules/jaxws-integration/test/org/apache/axis2/jaxws/proxy/rpclit/META-INF/MANIFEST.MF b/modules/jaxws-integration/test/org/apache/axis2/jaxws/proxy/rpclit/META-INF/MANIFEST.MF
deleted file mode 100644
index 2f4b568..0000000
--- a/modules/jaxws-integration/test/org/apache/axis2/jaxws/proxy/rpclit/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1 +0,0 @@
-Manifest-Version: 1.0

diff --git a/modules/jaxws-integration/test/org/apache/axis2/jaxws/proxy/rpclitswa/META-INF/MANIFEST.MF b/modules/jaxws-integration/test/org/apache/axis2/jaxws/proxy/rpclitswa/META-INF/MANIFEST.MF
deleted file mode 100644
index 2f4b568..0000000
--- a/modules/jaxws-integration/test/org/apache/axis2/jaxws/proxy/rpclitswa/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1 +0,0 @@
-Manifest-Version: 1.0

diff --git a/modules/jaxws-integration/test/org/apache/axis2/jaxws/proxy/soap12/SOAP12EchoService.java b/modules/jaxws-integration/test/org/apache/axis2/jaxws/proxy/soap12/SOAP12EchoService.java
index 7ba0376..9a8972e 100644
--- a/modules/jaxws-integration/test/org/apache/axis2/jaxws/proxy/soap12/SOAP12EchoService.java
+++ b/modules/jaxws-integration/test/org/apache/axis2/jaxws/proxy/soap12/SOAP12EchoService.java
@@ -47,7 +47,7 @@
                 

             }

             File file = new File(wsdlLocation);

-            url = file.toURL();

+            url = file.toURI().toURL();

             

         } catch (MalformedURLException e) {

             e.printStackTrace();

diff --git a/modules/jaxws-integration/test/org/apache/axis2/jaxws/rpclit/enumtype/sei/Service.java b/modules/jaxws-integration/test/org/apache/axis2/jaxws/rpclit/enumtype/sei/Service.java
index e27a3c2..c2e1ee8 100644
--- a/modules/jaxws-integration/test/org/apache/axis2/jaxws/rpclit/enumtype/sei/Service.java
+++ b/modules/jaxws-integration/test/org/apache/axis2/jaxws/rpclit/enumtype/sei/Service.java
@@ -51,7 +51,7 @@
                         e.printStackTrace();

                 }

                 File file = new File(wsdlLocation);

-                url = file.toURL();

+                url = file.toURI().toURL();

         } catch (MalformedURLException e) {

             e.printStackTrace();

         }

diff --git a/modules/jaxws-integration/test/org/apache/axis2/jaxws/rpclit/stringarray/sei/RPCLitStringArrayService.java b/modules/jaxws-integration/test/org/apache/axis2/jaxws/rpclit/stringarray/sei/RPCLitStringArrayService.java
index ba89f6e..96baa73 100644
--- a/modules/jaxws-integration/test/org/apache/axis2/jaxws/rpclit/stringarray/sei/RPCLitStringArrayService.java
+++ b/modules/jaxws-integration/test/org/apache/axis2/jaxws/rpclit/stringarray/sei/RPCLitStringArrayService.java
@@ -53,7 +53,7 @@
                 e.printStackTrace();

             }

             File file = new File(wsdlLocation);

-            url = file.toURL();

+            url = file.toURI().toURL();

         } catch (MalformedURLException e) {

             e.printStackTrace();

         }

diff --git a/modules/jaxws-integration/test/org/apache/axis2/jaxws/sample/AsyncExecutorTests.java b/modules/jaxws-integration/test/org/apache/axis2/jaxws/sample/AsyncExecutorTests.java
index 1bfe3e4..733037b 100644
--- a/modules/jaxws-integration/test/org/apache/axis2/jaxws/sample/AsyncExecutorTests.java
+++ b/modules/jaxws-integration/test/org/apache/axis2/jaxws/sample/AsyncExecutorTests.java
@@ -347,6 +347,22 @@
         }

     }

     

+    static void withRetry(Runnable runnable) throws InterruptedException {

+        int retries = 0;

+        while (true) {

+            try {

+                runnable.run();

+                return;

+            } catch (AssertionError ex) {

+                if (retries++ > 60) {

+                    throw ex;

+                } else {

+                    Thread.sleep(500);

+                }

+            }

+        }

+    }

+    

     /**

      * Thread that verifies the request sent by a different thread was recieved by the service and

      * then verify the response.  Another thread will have previously sent the request. Note that

@@ -380,21 +396,22 @@
         }

 

         private void receiveResponse() throws Exception {

-            String title = myClassName + " : ReceiveClientResponse : ";

-            String request1 = monitor.request;

+            final String title = myClassName + " : ReceiveClientResponse : ";

+            final String request1 = monitor.request;

             

             AsyncService service = new AsyncService();

-            AsyncPort port = getPort(service);

+            final AsyncPort port = getPort(service);

 

-            // wait a bit to make sure that the server has the request;

-            Thread.sleep(1000);

-            

-            // check the waiting request 

-            TestLogger.logger.debug(title + " port.isAsleep(" + request1 + ") #1 being submitted....");

-            String asleepWithCallback1 = port.isAsleep(request1);

-            TestLogger.logger.debug(

-                    title + " port.isAsleep(" + request1 + ") #1 = [" + asleepWithCallback1 + "]");

-            assertEquals(request1, asleepWithCallback1);

+            withRetry(new Runnable() {

+                public void run() {

+                    // check the waiting request 

+                    TestLogger.logger.debug(title + " port.isAsleep(" + request1 + ") #1 being submitted....");

+                    String asleepWithCallback1 = port.isAsleep(request1);

+                    TestLogger.logger.debug(

+                            title + " port.isAsleep(" + request1 + ") #1 = [" + asleepWithCallback1 + "]");

+                    assertEquals(request1, asleepWithCallback1);

+                }

+            });

             

             // wakeup the waiting request

             TestLogger.logger.debug(title + " port.wakeUp(request1) #1 being submitted....");

@@ -403,13 +420,15 @@
             assertEquals(request1, wake1);

             TestLogger.logger.debug(title + " port.wakeUp(" + request1 + ") #1 = [" + wake1 + "]");

 

-            // wait a bit..

-            Thread.sleep(2000);

-

-            // check the Future

-            Future<?> sr1 = monitor.futureResponse;

+            final Future<?> sr1 = monitor.futureResponse;

             CallbackHandler<SleepResponse> sleepCallbackHandler1 = monitor.callbackHandler;

-            assertTrue("Response is not done!", sr1.isDone());

+            

+            withRetry(new Runnable() {

+                public void run() {

+                    // check the Future

+                    assertTrue("Response is not done!", sr1.isDone());

+                }

+            });

 

             // try to get the response

             try {

diff --git a/modules/jaxws-integration/test/org/apache/axis2/jaxws/sample/MtomSampleByteArrayTests.java b/modules/jaxws-integration/test/org/apache/axis2/jaxws/sample/MtomSampleByteArrayTests.java
index bd6a79c..36cf656 100644
--- a/modules/jaxws-integration/test/org/apache/axis2/jaxws/sample/MtomSampleByteArrayTests.java
+++ b/modules/jaxws-integration/test/org/apache/axis2/jaxws/sample/MtomSampleByteArrayTests.java
@@ -23,11 +23,11 @@
 import junit.framework.TestSuite;

 import org.apache.axis2.jaxws.TestLogger;

 import org.apache.axis2.jaxws.framework.AbstractTestCase;

+import org.apache.axis2.jaxws.sample.mtom1.Base64Binary;

 import org.apache.axis2.jaxws.sample.mtom1.ImageDepot;

 import org.apache.axis2.jaxws.sample.mtom1.Invoke;

 import org.apache.axis2.jaxws.sample.mtom1.ObjectFactory;

 import org.apache.axis2.jaxws.sample.mtom1.SendImageResponse;

-import org.w3._2005._05.xmlmime.Base64Binary;

 

 import javax.imageio.ImageIO;

 import javax.xml.bind.JAXBContext;

diff --git a/modules/jaxws-integration/test/org/apache/axis2/jaxws/sample/WrapTests.java b/modules/jaxws-integration/test/org/apache/axis2/jaxws/sample/WrapTests.java
index aa4cdfe..05ce6f8 100644
--- a/modules/jaxws-integration/test/org/apache/axis2/jaxws/sample/WrapTests.java
+++ b/modules/jaxws-integration/test/org/apache/axis2/jaxws/sample/WrapTests.java
@@ -510,9 +510,6 @@
                     assertTrue(totalBuilders >= 1);

                     int totalCreates = JAXBCustomBuilderMonitor.getTotalCreates();

                     assertTrue(totalCreates == 0);

-                    int totalFailedCreates = 

-                            JAXBCustomBuilderMonitor.getTotalFailedCreates();

-                    assertTrue(totalFailedCreates >= 1);

                      

                 } 

                 TestLogger.logger.debug("------------------------------");

diff --git a/modules/jaxws-integration/test/org/apache/axis2/jaxws/sample/addnumbers/AddNumbersService.java b/modules/jaxws-integration/test/org/apache/axis2/jaxws/sample/addnumbers/AddNumbersService.java
index 8ad0e53..9b21d6b 100644
--- a/modules/jaxws-integration/test/org/apache/axis2/jaxws/sample/addnumbers/AddNumbersService.java
+++ b/modules/jaxws-integration/test/org/apache/axis2/jaxws/sample/addnumbers/AddNumbersService.java
@@ -51,7 +51,7 @@
         		e.printStackTrace();

         	}

         	File file = new File(wsdlLocation);

-        	url = file.toURL();

+        	url = file.toURI().toURL();

         } catch (MalformedURLException e) {

             e.printStackTrace();

         }

diff --git a/modules/jaxws-integration/test/org/apache/axis2/jaxws/sample/addnumbershandler/AddNumbersHandlerService.java b/modules/jaxws-integration/test/org/apache/axis2/jaxws/sample/addnumbershandler/AddNumbersHandlerService.java
index de30b56..f79d6e0 100644
--- a/modules/jaxws-integration/test/org/apache/axis2/jaxws/sample/addnumbershandler/AddNumbersHandlerService.java
+++ b/modules/jaxws-integration/test/org/apache/axis2/jaxws/sample/addnumbershandler/AddNumbersHandlerService.java
@@ -51,7 +51,7 @@
         		e.printStackTrace();

         	}

         	File file = new File(wsdlLocation);

-        	url = file.toURL();

+        	url = file.toURI().toURL();

         } catch (MalformedURLException e) {

             e.printStackTrace();

         }

diff --git a/modules/jaxws-integration/test/org/apache/axis2/jaxws/sample/asyncdoclit/client/AsyncService.java b/modules/jaxws-integration/test/org/apache/axis2/jaxws/sample/asyncdoclit/client/AsyncService.java
index a0e34da..94676e4 100644
--- a/modules/jaxws-integration/test/org/apache/axis2/jaxws/sample/asyncdoclit/client/AsyncService.java
+++ b/modules/jaxws-integration/test/org/apache/axis2/jaxws/sample/asyncdoclit/client/AsyncService.java
@@ -49,7 +49,7 @@
                 e.printStackTrace();

             }

             File file = new File(wsdlLocation);

-            url = file.toURL();

+            url = file.toURI().toURL();

         } catch (MalformedURLException e) {

             e.printStackTrace();

         }

diff --git a/modules/jaxws-integration/test/org/apache/axis2/jaxws/sample/asyncdoclit/server/META-INF/MANIFEST.MF b/modules/jaxws-integration/test/org/apache/axis2/jaxws/sample/asyncdoclit/server/META-INF/MANIFEST.MF
deleted file mode 100644
index 965efaa..0000000
--- a/modules/jaxws-integration/test/org/apache/axis2/jaxws/sample/asyncdoclit/server/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,4 +0,0 @@
-Manifest-Version: 1.0

-Ant-Version: Apache Ant 1.6.1

-Created-By: 2.3 (IBM Corporation)

-

diff --git a/modules/jaxws-integration/test/org/apache/axis2/jaxws/sample/doclitbare/sei/BareDocLitService.java b/modules/jaxws-integration/test/org/apache/axis2/jaxws/sample/doclitbare/sei/BareDocLitService.java
index 7b17593..2ea425c 100644
--- a/modules/jaxws-integration/test/org/apache/axis2/jaxws/sample/doclitbare/sei/BareDocLitService.java
+++ b/modules/jaxws-integration/test/org/apache/axis2/jaxws/sample/doclitbare/sei/BareDocLitService.java
@@ -52,7 +52,7 @@
         		e.printStackTrace();

         	}

         	File file = new File(wsdlLocation);

-        	url = file.toURL();

+        	url = file.toURI().toURL();

         } catch (MalformedURLException e) {

             e.printStackTrace();

         }

diff --git a/modules/jaxws-integration/test/org/apache/axis2/jaxws/sample/doclitbaremin/sei/BareDocLitMinService.java b/modules/jaxws-integration/test/org/apache/axis2/jaxws/sample/doclitbaremin/sei/BareDocLitMinService.java
index aae2f9e..6b98ca0 100644
--- a/modules/jaxws-integration/test/org/apache/axis2/jaxws/sample/doclitbaremin/sei/BareDocLitMinService.java
+++ b/modules/jaxws-integration/test/org/apache/axis2/jaxws/sample/doclitbaremin/sei/BareDocLitMinService.java
@@ -52,7 +52,7 @@
         		e.printStackTrace();

         	}

         	File file = new File(wsdlLocation);

-        	url = file.toURL();

+        	url = file.toURI().toURL();

         } catch (MalformedURLException e) {

             e.printStackTrace();

         }

diff --git a/modules/jaxws-integration/test/org/apache/axis2/jaxws/sample/doclitbarenoarg/sei/BareDocLitNoArgService.java b/modules/jaxws-integration/test/org/apache/axis2/jaxws/sample/doclitbarenoarg/sei/BareDocLitNoArgService.java
index 10ec6cc..1a53aad 100644
--- a/modules/jaxws-integration/test/org/apache/axis2/jaxws/sample/doclitbarenoarg/sei/BareDocLitNoArgService.java
+++ b/modules/jaxws-integration/test/org/apache/axis2/jaxws/sample/doclitbarenoarg/sei/BareDocLitNoArgService.java
@@ -47,7 +47,7 @@
             String baseDir = new File(System.getProperty("basedir",".")).getCanonicalPath();

             wsdlLocation = new File(baseDir + wsdlLocation).getAbsolutePath();

             File file = new File(wsdlLocation);

-            url = file.toURL();

+            url = file.toURI().toURL();

 //            url = new URL("file:/test/org/apache/axis2/jaxws/sample/doclitbarenoarg/META-INF/doclitbarenoarg.wsdl");

         } catch (MalformedURLException e) {

             e.printStackTrace();

diff --git a/modules/jaxws-integration/test/org/apache/axis2/jaxws/sample/faults/FaultyWebServiceService.java b/modules/jaxws-integration/test/org/apache/axis2/jaxws/sample/faults/FaultyWebServiceService.java
index 783d491..8c36d49 100644
--- a/modules/jaxws-integration/test/org/apache/axis2/jaxws/sample/faults/FaultyWebServiceService.java
+++ b/modules/jaxws-integration/test/org/apache/axis2/jaxws/sample/faults/FaultyWebServiceService.java
@@ -51,7 +51,7 @@
         		e.printStackTrace();

         	}

         	File file = new File(wsdlLocation);

-        	url = file.toURL();

+        	url = file.toURI().toURL();

         } catch (MalformedURLException e) {

             e.printStackTrace();

         }

diff --git a/modules/jaxws-integration/test/org/apache/axis2/jaxws/sample/faultsservice/FaultsService.java b/modules/jaxws-integration/test/org/apache/axis2/jaxws/sample/faultsservice/FaultsService.java
index 7cea695..4ed1da8 100644
--- a/modules/jaxws-integration/test/org/apache/axis2/jaxws/sample/faultsservice/FaultsService.java
+++ b/modules/jaxws-integration/test/org/apache/axis2/jaxws/sample/faultsservice/FaultsService.java
@@ -51,7 +51,7 @@
                 e.printStackTrace();

             }

             File file = new File(wsdlLocation);

-            url = file.toURL();

+            url = file.toURI().toURL();

         } catch (MalformedURLException e) {

             e.printStackTrace();

         }

diff --git a/modules/jaxws-integration/test/org/apache/axis2/jaxws/sample/headershandler/HeadersHandlerService.java b/modules/jaxws-integration/test/org/apache/axis2/jaxws/sample/headershandler/HeadersHandlerService.java
index d008553..c287cae 100644
--- a/modules/jaxws-integration/test/org/apache/axis2/jaxws/sample/headershandler/HeadersHandlerService.java
+++ b/modules/jaxws-integration/test/org/apache/axis2/jaxws/sample/headershandler/HeadersHandlerService.java
@@ -50,7 +50,7 @@
         		e.printStackTrace();
         	}
         	File file = new File(wsdlLocation);
-        	url = file.toURL();
+        	url = file.toURI().toURL();
         } catch (MalformedURLException e) {
             e.printStackTrace();
         }
diff --git a/modules/jaxws-integration/test/org/apache/axis2/jaxws/sample/headershandler/TestHeaders.java b/modules/jaxws-integration/test/org/apache/axis2/jaxws/sample/headershandler/TestHeaders.java
index 0f92ef8..9891916 100644
--- a/modules/jaxws-integration/test/org/apache/axis2/jaxws/sample/headershandler/TestHeaders.java
+++ b/modules/jaxws-integration/test/org/apache/axis2/jaxws/sample/headershandler/TestHeaders.java
@@ -98,7 +98,7 @@
      * 
      * @param clazz the currently executing handler class
      */
-    public TestHeaders(Class clazz) {
+    public TestHeaders(Class<?> clazz) {
     	className = clazz.getSimpleName();
     }
     
@@ -178,10 +178,10 @@
     public void confirmMessageAsString(MessageContext mc) {
         String text = null;
         if (mc != null) {
-            Object accessor =  mc.get(Constants.JAXWS_MESSAGE_ACCESSOR);
+            MessageAccessor accessor = (MessageAccessor) mc.get(Constants.JAXWS_MESSAGE_ACCESSOR);
             if (accessor != null) {
                 Boolean preMessageAccessed = (Boolean) mc.get("jaxws.isMessageAccessed");
-                text = accessor.toString();
+                text = accessor.getMessageAsString();
                 Boolean postMessageAccessed = (Boolean) mc.get("jaxws.isMessageAccessed");
                 if (preMessageAccessed != postMessageAccessed) {
                     throw new WebServiceException("The message was accessed when toString was called.");
diff --git a/modules/jaxws-integration/test/org/apache/axis2/jaxws/sample/nonwrap/sei/DocLitNonWrapService.java b/modules/jaxws-integration/test/org/apache/axis2/jaxws/sample/nonwrap/sei/DocLitNonWrapService.java
index 94ff49f..317cfe0 100644
--- a/modules/jaxws-integration/test/org/apache/axis2/jaxws/sample/nonwrap/sei/DocLitNonWrapService.java
+++ b/modules/jaxws-integration/test/org/apache/axis2/jaxws/sample/nonwrap/sei/DocLitNonWrapService.java
@@ -51,7 +51,7 @@
         		e.printStackTrace();

         	}

         	File file = new File(wsdlLocation);

-        	url = file.toURL();

+        	url = file.toURI().toURL();

         } catch (MalformedURLException e) {

             e.printStackTrace();

         }

diff --git a/modules/jaxws-integration/test/org/apache/axis2/jaxws/sample/parallelasync/server/AsyncService.java b/modules/jaxws-integration/test/org/apache/axis2/jaxws/sample/parallelasync/server/AsyncService.java
index 2246be3..edcbb57 100644
--- a/modules/jaxws-integration/test/org/apache/axis2/jaxws/sample/parallelasync/server/AsyncService.java
+++ b/modules/jaxws-integration/test/org/apache/axis2/jaxws/sample/parallelasync/server/AsyncService.java
@@ -50,7 +50,7 @@
                 e.printStackTrace();

             }

             File file = new File(wsdlLocation);

-            url = file.toURL();

+            url = file.toURI().toURL();

         } catch (MalformedURLException e) {

             e.printStackTrace();

         }

diff --git a/modules/jaxws-integration/test/org/apache/axis2/jaxws/sample/parallelasync/server/DocLitWrappedPortImpl.java b/modules/jaxws-integration/test/org/apache/axis2/jaxws/sample/parallelasync/server/DocLitWrappedPortImpl.java
index 070c49b..2b1be06 100644
--- a/modules/jaxws-integration/test/org/apache/axis2/jaxws/sample/parallelasync/server/DocLitWrappedPortImpl.java
+++ b/modules/jaxws-integration/test/org/apache/axis2/jaxws/sample/parallelasync/server/DocLitWrappedPortImpl.java
@@ -58,14 +58,7 @@
     //       the key is the request string

     //       the value is the object used to block on

     //

-    private static Hashtable sleepers = new Hashtable();

-

-    // intended to flag the need to cancel current requests being held (ie, sleeping)

-    // does not stop new requests

-    // not settable yet

-    // need to determine when to reset it when dealing with multiple operations

-    // currently reset when the sleepers table doesn't have any more requests

-    private static boolean doCancell = false;

+    private static Hashtable<String,Thread> sleepers = new Hashtable<String,Thread>();

 

     // strings used for logging

     private String myClassName = "DocLitWrappedPortImpl.";

@@ -84,13 +77,9 @@
      */

     public void sleep(Holder<String> request) {

 

-        boolean cancelRequested = false;

+        String key = request.value;

 

-        String key = new String(request.value);

-        String msg = request.value;

-

-        String title = myClassName+"sleep("+msg+"): ";

-        String tid = " threadID ["+ Thread.currentThread().getId() + "] ";

+        String title = myClassName+"sleep("+key+"): ";

         //if (DEBUG)

         //{

         //    System.out.println(title + tid + "Enter");

@@ -123,7 +112,7 @@
             //  - the wait is interrupted

             //  - a cancel occurs

 

-            while (sec > 0 && !doCancell) {

+            while (sec > 0) {

                 if (DEBUG)

                     TestLogger.logger.debug(title + "Sleeping on "

                             + " threadID [" + threadID + "]"

@@ -131,7 +120,7 @@
                 sec--;

 

                 //msg.wait(500);

-                myThread.sleep(500);

+                Thread.sleep(500);

             }

 

         } 

@@ -150,13 +139,6 @@
 

             // remove this request from the list

             sleepers.remove(key);

-

-            // for now, reset the cancellation flag when the list of 

-            // waiting requests go to zero

-            if (sleepers.isEmpty())

-            {

-                doCancell = false;

-            }

         }

 

     }

diff --git a/modules/jaxws-integration/test/org/apache/axis2/jaxws/sample/parallelasync/server/META-INF/MANIFEST.MF b/modules/jaxws-integration/test/org/apache/axis2/jaxws/sample/parallelasync/server/META-INF/MANIFEST.MF
deleted file mode 100644
index 965efaa..0000000
--- a/modules/jaxws-integration/test/org/apache/axis2/jaxws/sample/parallelasync/server/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,4 +0,0 @@
-Manifest-Version: 1.0

-Ant-Version: Apache Ant 1.6.1

-Created-By: 2.3 (IBM Corporation)

-

diff --git a/modules/jaxws-integration/test/org/apache/axis2/jaxws/sample/resourceinjection/sei/ResourceInjectionService.java b/modules/jaxws-integration/test/org/apache/axis2/jaxws/sample/resourceinjection/sei/ResourceInjectionService.java
index 221cd9c..0efe6f5 100644
--- a/modules/jaxws-integration/test/org/apache/axis2/jaxws/sample/resourceinjection/sei/ResourceInjectionService.java
+++ b/modules/jaxws-integration/test/org/apache/axis2/jaxws/sample/resourceinjection/sei/ResourceInjectionService.java
@@ -46,7 +46,7 @@
                 e.printStackTrace();

             }

             File file = new File(wsdlLocation);

-            url = file.toURL();

+            url = file.toURI().toURL();

         } catch (MalformedURLException e) {

             e.printStackTrace();

         }

diff --git a/modules/jaxws-integration/test/org/apache/axis2/jaxws/sample/stringlist/sei/StringListService.java b/modules/jaxws-integration/test/org/apache/axis2/jaxws/sample/stringlist/sei/StringListService.java
index 91a3eba..c2211a4 100644
--- a/modules/jaxws-integration/test/org/apache/axis2/jaxws/sample/stringlist/sei/StringListService.java
+++ b/modules/jaxws-integration/test/org/apache/axis2/jaxws/sample/stringlist/sei/StringListService.java
@@ -52,7 +52,7 @@
                         e.printStackTrace();

                 }

                 File file = new File(wsdlLocation);

-                url = file.toURL();

+                url = file.toURI().toURL();

         } catch (MalformedURLException e) {

             e.printStackTrace();

         }

diff --git a/modules/jaxws-integration/test/org/apache/axis2/jaxws/sample/wrap/sei/DocLitWrapService.java b/modules/jaxws-integration/test/org/apache/axis2/jaxws/sample/wrap/sei/DocLitWrapService.java
index f5e7c84..19a4465 100644
--- a/modules/jaxws-integration/test/org/apache/axis2/jaxws/sample/wrap/sei/DocLitWrapService.java
+++ b/modules/jaxws-integration/test/org/apache/axis2/jaxws/sample/wrap/sei/DocLitWrapService.java
@@ -51,7 +51,7 @@
         		e.printStackTrace();

         	}

         	File file = new File(wsdlLocation);

-        	url = file.toURL();

+        	url = file.toURI().toURL();

         } catch (MalformedURLException e) {

             e.printStackTrace();

         }

diff --git a/modules/jaxws-integration/test/org/apache/axis2/jaxws/sample/wsgen/client/WSGenService.java b/modules/jaxws-integration/test/org/apache/axis2/jaxws/sample/wsgen/client/WSGenService.java
index 62e6758..2533b2b 100644
--- a/modules/jaxws-integration/test/org/apache/axis2/jaxws/sample/wsgen/client/WSGenService.java
+++ b/modules/jaxws-integration/test/org/apache/axis2/jaxws/sample/wsgen/client/WSGenService.java
@@ -53,7 +53,7 @@
                 e.printStackTrace();

             }

             File file = new File(wsdlLocation);

-            url = file.toURL();

+            url = file.toURI().toURL();

         } catch (MalformedURLException e) {

             e.printStackTrace();

         }

diff --git a/modules/jaxws-integration/test/org/apache/axis2/jaxws/security/server/META-INF/MANIFEST.MF b/modules/jaxws-integration/test/org/apache/axis2/jaxws/security/server/META-INF/MANIFEST.MF
deleted file mode 100644
index 2f4b568..0000000
--- a/modules/jaxws-integration/test/org/apache/axis2/jaxws/security/server/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1 +0,0 @@
-Manifest-Version: 1.0

diff --git a/modules/jaxws-integration/test/org/apache/axis2/jaxws/swamtom/server/META-INF/MANIFEST.MF b/modules/jaxws-integration/test/org/apache/axis2/jaxws/swamtom/server/META-INF/MANIFEST.MF
deleted file mode 100644
index 2f4b568..0000000
--- a/modules/jaxws-integration/test/org/apache/axis2/jaxws/swamtom/server/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1 +0,0 @@
-Manifest-Version: 1.0

diff --git a/modules/jaxws-integration/test/org/apache/axis2/jaxws/utility/SimpleServer.java b/modules/jaxws-integration/test/org/apache/axis2/jaxws/utility/SimpleServer.java
index c247587..cf7739b 100644
--- a/modules/jaxws-integration/test/org/apache/axis2/jaxws/utility/SimpleServer.java
+++ b/modules/jaxws-integration/test/org/apache/axis2/jaxws/utility/SimpleServer.java
@@ -31,8 +31,8 @@
 public class SimpleServer {

 

     private static SimpleHTTPServer server;

-    private String repositoryDir = System.getProperty("build.repository","");

-    private String axis2xml = System.getProperty("axis2.config");

+    private String repositoryDir = "target/repo";

+    private String axis2xml = null;

     private int port = 6060;

 

     public SimpleServer() {}

diff --git a/modules/jaxws-integration/test/org/apache/axis2/jaxws/xmlhttp/clientTests/dispatch/datasource/DispatchXMessageDataSourceTests.java b/modules/jaxws-integration/test/org/apache/axis2/jaxws/xmlhttp/DispatchXMessageDataSourceTests.java
similarity index 84%
rename from modules/jaxws-integration/test/org/apache/axis2/jaxws/xmlhttp/clientTests/dispatch/datasource/DispatchXMessageDataSourceTests.java
rename to modules/jaxws-integration/test/org/apache/axis2/jaxws/xmlhttp/DispatchXMessageDataSourceTests.java
index d5052dd..13ab269 100644
--- a/modules/jaxws-integration/test/org/apache/axis2/jaxws/xmlhttp/clientTests/dispatch/datasource/DispatchXMessageDataSourceTests.java
+++ b/modules/jaxws-integration/test/org/apache/axis2/jaxws/xmlhttp/DispatchXMessageDataSourceTests.java
@@ -17,14 +17,15 @@
  * under the License.

  */

 

-package org.apache.axis2.jaxws.xmlhttp.clientTests.dispatch.datasource;

+package org.apache.axis2.jaxws.xmlhttp;

 

-import junit.framework.Test;

-import junit.framework.TestSuite;

-import org.apache.axis2.jaxws.framework.AbstractTestCase;

 import org.apache.axis2.jaxws.provider.DataSourceImpl;

-import org.apache.axiom.attachments.impl.BufferUtils;

+import org.apache.axis2.testutils.Axis2Server;

+import org.junit.Before;

+import org.junit.ClassRule;

+import org.junit.Test;

 import org.apache.axiom.util.UIDGenerator;

+import org.apache.axiom.util.io.IOUtils;

 

 import javax.activation.DataSource;

 import javax.activation.FileDataSource;

@@ -37,6 +38,11 @@
 import javax.xml.ws.Service;

 import javax.xml.ws.handler.MessageContext;

 import javax.xml.ws.http.HTTPBinding;

+

+import static com.google.common.truth.Truth.assertThat;

+import static org.junit.Assert.assertEquals;

+import static org.junit.Assert.assertTrue;

+

 import java.awt.*;

 import java.io.File;

 import java.io.ByteArrayOutputStream;

@@ -46,11 +52,10 @@
 import java.util.Map;

 import java.util.HashMap;

 

-public class DispatchXMessageDataSourceTests extends AbstractTestCase {

-

-    public String HOSTPORT = "http://localhost:6060";

-        

-    private String ENDPOINT_URL = HOSTPORT + "/axis2/services/XMessageDataSourceProvider.XMessageDataSourceProviderPort";

+public class DispatchXMessageDataSourceTests {

+    @ClassRule

+    public static Axis2Server server = new Axis2Server("target/repo");

+    

     private QName SERVICE_NAME  = new QName("http://ws.apache.org/axis2", "XMessageDataSourceProvider");

     private QName PORT_NAME  = new QName("http://ws.apache.org/axis2", "XMessageDataSourceProviderPort");

  

@@ -58,10 +63,7 @@
     private FileDataSource txtDS;

     private DataSource attachmentDS;

 

-    public static Test suite() {

-        return getTestSetup(new TestSuite(DispatchXMessageDataSourceTests.class));

-    }

- 

+    @Before

     public void setUp() throws Exception {

         String imageResourceDir = System.getProperty("basedir",".")+"/"+"test-resources"+File.separator+"image";

 

@@ -72,7 +74,12 @@
 

         String textResourceDir = System.getProperty("basedir",".")+"/"+"test/org/apache/axis2/jaxws/xmlhttp";

         File file2 = new File(textResourceDir+File.separator+"README.txt");

-        txtDS = new FileDataSource(file2);

+        txtDS = new FileDataSource(file2) {

+            @Override

+            public String getContentType() {

+                return "text/plain";

+            }

+        };

 

         String resourceDir = System.getProperty("basedir",".")+"/"+"test-resources";

         File file3 = new File(resourceDir+File.separator+"log4j.properties");

@@ -81,32 +88,35 @@
     

     public Dispatch<DataSource> getDispatch() {

        Service service = Service.create(SERVICE_NAME);

-       service.addPort(PORT_NAME, HTTPBinding.HTTP_BINDING,ENDPOINT_URL);

+       service.addPort(PORT_NAME, HTTPBinding.HTTP_BINDING, "http://localhost:" + server.getPort() + "/axis2/services/XMessageDataSourceProvider.XMessageDataSourceProviderPort");

        Dispatch<DataSource> dispatch = service.createDispatch(PORT_NAME, DataSource.class, Service.Mode.MESSAGE);

        return dispatch;

     }

     

+    @Test

     public void testDataSourceWithTXT() throws Exception {

         Dispatch<DataSource> dispatch = getDispatch();

         DataSource request = txtDS;

         DataSource response = dispatch.invoke(request);

         assertTrue(response != null);

-        assertEquals(response.getContentType(),"text/plain");

+        assertThat(response.getContentType()).isEqualTo("text/plain");

         String req = new String(getStreamAsByteArray(request.getInputStream()));

         String res = new String(getStreamAsByteArray(response.getInputStream()));

         assertEquals(req, res);

     }

 

+    @Test

     public void testDataSourceWithImage() throws Exception {

         Dispatch<DataSource> dispatch = getDispatch();

         DataSource request = imageDS;

         DataSource response = dispatch.invoke(request);

         assertTrue(response != null);

-        assertEquals(response.getContentType(),"image/jpeg");

+        assertThat(response.getContentType()).isEqualTo("image/jpeg");

         assertTrue(Arrays.equals(getStreamAsByteArray(request.getInputStream()), 

                 getStreamAsByteArray(response.getInputStream())));

     }

 

+    @Test

     public void testDataSourceWithTXTPlusAttachment() throws Exception {

         Dispatch<DataSource> dispatch = getDispatch();

 

@@ -125,7 +135,7 @@
         DataSource request = txtDS;

         DataSource response = dispatch.invoke(request);

         assertTrue(response != null);

-        assertEquals(response.getContentType(),"text/plain");

+        assertThat(response.getContentType()).isEqualTo("text/plain");

         String req = new String(getStreamAsByteArray(request.getInputStream()));

         String res = new String(getStreamAsByteArray(response.getInputStream()));

         assertEquals(req, res);

@@ -134,6 +144,7 @@
         assertEquals(attachments2.size(), 1);

     }

 

+    @Test

     public void testDataSourceWithImagePlusAttachment() throws Exception {

         Dispatch<DataSource> dispatch = getDispatch();

 

@@ -147,7 +158,7 @@
         DataSource request = imageDS;

         DataSource response = dispatch.invoke(request);

         assertTrue(response != null);

-        assertEquals(response.getContentType(),"image/jpeg");

+        assertThat(response.getContentType()).isEqualTo("image/jpeg");

         assertTrue(Arrays.equals(getStreamAsByteArray(request.getInputStream()), 

                 getStreamAsByteArray(response.getInputStream())));

         Map attachments2 = (Map) dispatch.getResponseContext().get(MessageContext.INBOUND_MESSAGE_ATTACHMENTS);

@@ -155,6 +166,7 @@
         assertEquals(attachments2.size(), 1);

     }

 

+    @Test

     public void testDataSourceWithTXTPlusTwoAttachments() throws Exception {

         Dispatch<DataSource> dispatch = getDispatch();

 

@@ -169,7 +181,7 @@
         DataSource request = txtDS;

         DataSource response = dispatch.invoke(request);

         assertTrue(response != null);

-        assertEquals(response.getContentType(),"text/plain");

+        assertThat(response.getContentType()).isEqualTo("text/plain");

         String req = new String(getStreamAsByteArray(request.getInputStream()));

         String res = new String(getStreamAsByteArray(response.getInputStream()));

         assertEquals(req, res);

@@ -180,7 +192,7 @@
     

     private byte[] getStreamAsByteArray(InputStream is) throws IOException {

         ByteArrayOutputStream baos = new ByteArrayOutputStream(); 

-        BufferUtils.inputStream2OutputStream(is, baos);

+        IOUtils.copy(is, baos, -1);

         baos.flush();

         return baos.toByteArray();

     }

diff --git a/modules/jaxws-integration/test/org/apache/axis2/jaxws/xmlhttp/clientTests/dispatch/source/DispatchXMessageSourceTests.java b/modules/jaxws-integration/test/org/apache/axis2/jaxws/xmlhttp/DispatchXMessageSourceTests.java
similarity index 68%
rename from modules/jaxws-integration/test/org/apache/axis2/jaxws/xmlhttp/clientTests/dispatch/source/DispatchXMessageSourceTests.java
rename to modules/jaxws-integration/test/org/apache/axis2/jaxws/xmlhttp/DispatchXMessageSourceTests.java
index 6a4583e..2ceec5c 100644
--- a/modules/jaxws-integration/test/org/apache/axis2/jaxws/xmlhttp/clientTests/dispatch/source/DispatchXMessageSourceTests.java
+++ b/modules/jaxws-integration/test/org/apache/axis2/jaxws/xmlhttp/DispatchXMessageSourceTests.java
@@ -17,16 +17,13 @@
  * under the License.

  */

 

-package org.apache.axis2.jaxws.xmlhttp.clientTests.dispatch.source;

+package org.apache.axis2.jaxws.xmlhttp;

 

-import junit.framework.Test;

-import junit.framework.TestSuite;

-import org.apache.axis2.jaxws.framework.AbstractTestCase;

-import org.apache.axis2.jaxws.message.util.Reader2Writer;

+import org.apache.axis2.testutils.Axis2Server;

+import org.junit.ClassRule;

+import org.junit.Test;

 

 import javax.xml.namespace.QName;

-import javax.xml.stream.XMLInputFactory;

-import javax.xml.stream.XMLStreamReader;

 import javax.xml.transform.Source;

 import javax.xml.transform.stream.StreamSource;

 import javax.xml.ws.Dispatch;

@@ -34,16 +31,18 @@
 import javax.xml.ws.WebServiceException;

 import javax.xml.ws.handler.MessageContext;

 import javax.xml.ws.http.HTTPBinding;

+

+import static com.google.common.truth.Truth.assertAbout;

+import static org.apache.axiom.truth.xml.XMLTruth.xml;

+import static org.junit.Assert.fail;

+

 import java.io.ByteArrayInputStream;

 import java.io.InputStream;

 

-public class DispatchXMessageSourceTests extends AbstractTestCase {

+public class DispatchXMessageSourceTests {

+    @ClassRule

+    public static Axis2Server server = new Axis2Server("target/repo");

 

-    private static XMLInputFactory inputFactory = XMLInputFactory.newInstance();

-

-    public String HOSTPORT = "http://localhost:6060";

-        

-    private String ENDPOINT_URL = HOSTPORT + "/axis2/services/XMessageSourceProvider.XMessageSourceProviderPort";

     private QName SERVICE_NAME  = new QName("http://ws.apache.org/axis2", "XMessageSourceProvider");

     private QName PORT_NAME  = new QName("http://ws.apache.org/axis2", "XMessageSourceProviderPort");

  

@@ -52,13 +51,9 @@
     

     private static String GET_RESPONSE = "<response>GET</response>";

     

-    public static Test suite() {

-        return getTestSetup(new TestSuite(DispatchXMessageSourceTests.class));

-    }

-

     public Dispatch<Source> getDispatch() {

        Service service = Service.create(SERVICE_NAME);

-       service.addPort(PORT_NAME, HTTPBinding.HTTP_BINDING,ENDPOINT_URL);

+       service.addPort(PORT_NAME, HTTPBinding.HTTP_BINDING, "http://localhost:" + server.getPort() + "/axis2/services/XMessageSourceProvider.XMessageSourceProviderPort");

        Dispatch<Source> dispatch = service.createDispatch(PORT_NAME, Source.class, Service.Mode.MESSAGE);

        return dispatch;

     }

@@ -67,6 +62,7 @@
      * Simple XML/HTTP Message Test

      * @throws Exception

      */

+    @Test

     public void testSimple() throws Exception {

         Dispatch<Source> dispatch = getDispatch();

         String request = XML_TEXT;

@@ -76,12 +72,7 @@
         Source outSource = dispatch.invoke(inSource);

         

         // Prepare the response content for checking

-        XMLStreamReader reader = inputFactory.createXMLStreamReader(outSource);

-        Reader2Writer r2w = new Reader2Writer(reader);

-        String response = r2w.getAsString();

-        

-        assertTrue(response != null);

-        assertTrue(request.equals(response));

+        assertAbout(xml()).that(outSource).hasSameContentAs(XML_TEXT);

         

         // Test a second time to verify

         stream = new ByteArrayInputStream(request.getBytes());

@@ -90,14 +81,10 @@
         outSource = dispatch.invoke(inSource);

         

         // Prepare the response content for checking

-        reader = inputFactory.createXMLStreamReader(outSource);

-        r2w = new Reader2Writer(reader);

-        response = r2w.getAsString();

-        

-        assertTrue(response != null);

-        assertTrue(request.equals(response));

+        assertAbout(xml()).that(outSource).hasSameContentAs(XML_TEXT);

     }

     

+    @Test

     public void testGetRequest() throws Exception {

         Dispatch<Source> dispatch = getDispatch();

 

@@ -113,10 +100,7 @@
         dispatch.getRequestContext().put(MessageContext.HTTP_REQUEST_METHOD, "GET"); 

         Source outSource = dispatch.invoke(null);

         

-        XMLStreamReader reader = inputFactory.createXMLStreamReader(outSource);

-        Reader2Writer r2w = new Reader2Writer(reader);

-        String response = r2w.getAsString();        

-        assertEquals(GET_RESPONSE, response);     

+        assertAbout(xml()).that(outSource).hasSameContentAs(GET_RESPONSE);

         

         // this should fail again

         dispatch.getRequestContext().remove(MessageContext.HTTP_REQUEST_METHOD);

diff --git a/modules/jaxws-integration/test/org/apache/axis2/jaxws/xmlhttp/clientTests/dispatch/string/DispatchXMessageStringTests.java b/modules/jaxws-integration/test/org/apache/axis2/jaxws/xmlhttp/DispatchXMessageStringTests.java
similarity index 87%
rename from modules/jaxws-integration/test/org/apache/axis2/jaxws/xmlhttp/clientTests/dispatch/string/DispatchXMessageStringTests.java
rename to modules/jaxws-integration/test/org/apache/axis2/jaxws/xmlhttp/DispatchXMessageStringTests.java
index bdb68d9..c1d75fc 100644
--- a/modules/jaxws-integration/test/org/apache/axis2/jaxws/xmlhttp/clientTests/dispatch/string/DispatchXMessageStringTests.java
+++ b/modules/jaxws-integration/test/org/apache/axis2/jaxws/xmlhttp/DispatchXMessageStringTests.java
@@ -17,36 +17,33 @@
  * under the License.

  */

 

-package org.apache.axis2.jaxws.xmlhttp.clientTests.dispatch.string;

+package org.apache.axis2.jaxws.xmlhttp;

 

-import junit.framework.Test;

-import junit.framework.TestSuite;

 import org.apache.axis2.jaxws.TestLogger;

-import org.apache.axis2.jaxws.framework.AbstractTestCase;

+import org.apache.axis2.testutils.Axis2Server;

+import org.junit.ClassRule;

+import org.junit.Test;

+

+import static org.junit.Assert.assertTrue;

 

 import javax.xml.namespace.QName;

 import javax.xml.ws.Dispatch;

 import javax.xml.ws.Service;

 import javax.xml.ws.http.HTTPBinding;

 

-public class DispatchXMessageStringTests extends AbstractTestCase {

+public class DispatchXMessageStringTests {

+    @ClassRule

+    public static Axis2Server server = new Axis2Server("target/repo");

 

-    public String HOSTPORT = "http://localhost:6060";

-        

-    private String ENDPOINT_URL = HOSTPORT + "/axis2/services/XMessageStringProvider.XMessageStringProviderPort";

     private QName SERVICE_NAME  = new QName("http://ws.apache.org/axis2", "XMessageStringProvider");

     private QName PORT_NAME  = new QName("http://ws.apache.org/axis2", "XMessageStringProviderPort");

  

     private static String XML_TEXT = "<p:echo xmlns:p=\"http://sample\">hello world</p:echo>";

     private static String XML_TEXT_NPE = "<p:echo xmlns:p=\"http://sample\">NPE</p:echo>";

 

-    public static Test suite() {

-        return getTestSetup(new TestSuite(DispatchXMessageStringTests.class));

-    }

-

     public Dispatch<String> getDispatch() {

        Service service = Service.create(SERVICE_NAME);

-       service.addPort(PORT_NAME, HTTPBinding.HTTP_BINDING,ENDPOINT_URL);

+       service.addPort(PORT_NAME, HTTPBinding.HTTP_BINDING, "http://localhost:" + server.getPort() + "/axis2/services/XMessageStringProvider.XMessageStringProviderPort");

        Dispatch<String> dispatch = service.createDispatch(PORT_NAME, String.class, Service.Mode.MESSAGE);

        return dispatch;

     }

@@ -55,6 +52,7 @@
      * Simple XML/HTTP Message Test

      * @throws Exception

      */

+    @Test

     public void testSimple() throws Exception {

         Dispatch<String> dispatch = getDispatch();

         String request = XML_TEXT;

diff --git a/modules/jaxws-integration/test/org/apache/axis2/jaxws/xmlhttp/clientTests/dispatch/jaxb/DispatchXPayloadJAXBTests.java b/modules/jaxws-integration/test/org/apache/axis2/jaxws/xmlhttp/DispatchXPayloadJAXBTests.java
similarity index 81%
rename from modules/jaxws-integration/test/org/apache/axis2/jaxws/xmlhttp/clientTests/dispatch/jaxb/DispatchXPayloadJAXBTests.java
rename to modules/jaxws-integration/test/org/apache/axis2/jaxws/xmlhttp/DispatchXPayloadJAXBTests.java
index e7bdd9e..6b3d687 100644
--- a/modules/jaxws-integration/test/org/apache/axis2/jaxws/xmlhttp/clientTests/dispatch/jaxb/DispatchXPayloadJAXBTests.java
+++ b/modules/jaxws-integration/test/org/apache/axis2/jaxws/xmlhttp/DispatchXPayloadJAXBTests.java
@@ -17,42 +17,38 @@
  * under the License.

  */

 

-package org.apache.axis2.jaxws.xmlhttp.clientTests.dispatch.jaxb;

+package org.apache.axis2.jaxws.xmlhttp;

 

-import junit.framework.Test;

-import junit.framework.TestSuite;

 import org.apache.axis2.jaxws.TestLogger;

-import org.apache.axis2.jaxws.framework.AbstractTestCase;

+import org.apache.axis2.testutils.Axis2Server;

+import org.junit.ClassRule;

+import org.junit.Test;

+

 import test.EchoString;

 import test.ObjectFactory;

 

+import static org.junit.Assert.assertNotNull;

+import static org.junit.Assert.assertTrue;

+

 import javax.xml.bind.JAXBContext;

 import javax.xml.bind.JAXBException;

 import javax.xml.namespace.QName;

-import javax.xml.stream.XMLInputFactory;

 import javax.xml.ws.Dispatch;

 import javax.xml.ws.Service;

 import javax.xml.ws.http.HTTPBinding;

 

-public class DispatchXPayloadJAXBTests extends AbstractTestCase {

+public class DispatchXPayloadJAXBTests {

+    @ClassRule

+    public static Axis2Server server = new Axis2Server("target/repo");

     

-    private static XMLInputFactory inputFactory = XMLInputFactory.newInstance();

-

-    public String HOSTPORT = "http://localhost:6060";

-        

-    private String ENDPOINT_URL = HOSTPORT + "/axis2/services/XPayloadSourceProvider.XPayloadSourceProviderPort";

     private QName SERVICE_NAME  = new QName("http://ws.apache.org/axis2", "XPayloadSourceProvider");

     private QName PORT_NAME  = new QName("http://ws.apache.org/axis2", "XPayloadSourceProviderPort");

 

     String XML_TEXT = "<p:echo xmlns:p=\"http://sample\">hello world</p:echo>";

     

-    public static Test suite() {

-        return getTestSetup(new TestSuite(DispatchXPayloadJAXBTests.class));

-    }

-

     public Dispatch<Object> getDispatch() throws JAXBException {

         Service service = Service.create(SERVICE_NAME);

-        service.addPort(PORT_NAME, HTTPBinding.HTTP_BINDING,ENDPOINT_URL);

+        service.addPort(PORT_NAME, HTTPBinding.HTTP_BINDING, "http://localhost:" + server.getPort() + "/axis2/services/XPayloadSourceProvider.XPayloadSourceProviderPort");

         JAXBContext jbc = JAXBContext.newInstance("test");

         Dispatch<Object> dispatch = service.createDispatch(PORT_NAME, jbc, Service.Mode.PAYLOAD);

         return dispatch;

@@ -62,6 +58,7 @@
     * Simple XML/HTTP Message Test

     * @throws Exception

     */

+    @Test

    public void testSimple() throws Exception {

        Dispatch<Object> dispatch = getDispatch();

        ObjectFactory factory = new ObjectFactory();

diff --git a/modules/jaxws-integration/test/org/apache/axis2/jaxws/xmlhttp/clientTests/dispatch/source/DispatchXPayloadSourceTests.java b/modules/jaxws-integration/test/org/apache/axis2/jaxws/xmlhttp/DispatchXPayloadSourceTests.java
similarity index 64%
rename from modules/jaxws-integration/test/org/apache/axis2/jaxws/xmlhttp/clientTests/dispatch/source/DispatchXPayloadSourceTests.java
rename to modules/jaxws-integration/test/org/apache/axis2/jaxws/xmlhttp/DispatchXPayloadSourceTests.java
index 0db54ec..158bdd8 100644
--- a/modules/jaxws-integration/test/org/apache/axis2/jaxws/xmlhttp/clientTests/dispatch/source/DispatchXPayloadSourceTests.java
+++ b/modules/jaxws-integration/test/org/apache/axis2/jaxws/xmlhttp/DispatchXPayloadSourceTests.java
@@ -17,44 +17,38 @@
  * under the License.

  */

 

-package org.apache.axis2.jaxws.xmlhttp.clientTests.dispatch.source;

+package org.apache.axis2.jaxws.xmlhttp;

 

-import junit.framework.Test;

-import junit.framework.TestSuite;

-import org.apache.axis2.jaxws.framework.AbstractTestCase;

-import org.apache.axis2.jaxws.message.util.Reader2Writer;

+import org.apache.axis2.testutils.Axis2Server;

+import org.junit.ClassRule;

+import org.junit.Test;

 

 import javax.xml.namespace.QName;

-import javax.xml.stream.XMLInputFactory;

-import javax.xml.stream.XMLStreamReader;

 import javax.xml.transform.Source;

 import javax.xml.transform.stream.StreamSource;

 import javax.xml.ws.Dispatch;

 import javax.xml.ws.Service;

 import javax.xml.ws.http.HTTPBinding;

+

+import static com.google.common.truth.Truth.assertAbout;

+import static org.apache.axiom.truth.xml.XMLTruth.xml;

+

 import java.io.ByteArrayInputStream;

 import java.io.InputStream;

 

-public class DispatchXPayloadSourceTests extends AbstractTestCase {

+public class DispatchXPayloadSourceTests {

+    @ClassRule

+    public static Axis2Server server = new Axis2Server("target/repo");

 

-    private static XMLInputFactory inputFactory = XMLInputFactory.newInstance();

-

-    public String HOSTPORT = "http://localhost:6060";

-        

-    private String ENDPOINT_URL = HOSTPORT + "/axis2/services/XMessageSourceProvider.XMessageSourceProviderPort";

     private QName SERVICE_NAME  = new QName("http://ws.apache.org/axis2", "XPayloadSourceProvider");

     private QName PORT_NAME  = new QName("http://ws.apache.org/axis2", "XPayloadSourceProviderPort");

  

     private static String XML_TEXT = "<p:echo xmlns:p=\"http://sample\">hello world</p:echo>";

     private static String XML_TEXT_NPE = "<p:echo xmlns:p=\"http://sample\">NPE</p:echo>";

     

-    public static Test suite() {

-        return getTestSetup(new TestSuite(DispatchXPayloadSourceTests.class));

-    }

-  

     public Dispatch<Source> getDispatch() {

        Service service = Service.create(SERVICE_NAME);

-       service.addPort(PORT_NAME, HTTPBinding.HTTP_BINDING,ENDPOINT_URL);

+       service.addPort(PORT_NAME, HTTPBinding.HTTP_BINDING, "http://localhost:" + server.getPort() + "/axis2/services/XMessageSourceProvider.XMessageSourceProviderPort");

        Dispatch<Source> dispatch = service.createDispatch(PORT_NAME, Source.class, Service.Mode.PAYLOAD);

        return dispatch;

     }

@@ -63,6 +57,7 @@
      * Simple XML/HTTP Payload Test

      * @throws Exception

      */

+    @Test

     public void testSimple() throws Exception {

         Dispatch<Source> dispatch = getDispatch();

         String request = XML_TEXT;

@@ -72,12 +67,7 @@
         Source outSource = dispatch.invoke(inSource);

         

         // Prepare the response content for checking

-        XMLStreamReader reader = inputFactory.createXMLStreamReader(outSource);

-        Reader2Writer r2w = new Reader2Writer(reader);

-        String response = r2w.getAsString();

-        

-        assertTrue(response != null);

-        assertTrue(request.equals(response));

+        assertAbout(xml()).that(outSource).hasSameContentAs(XML_TEXT);

         

         // Try a second time to verify

         stream = new ByteArrayInputStream(request.getBytes());

@@ -86,12 +76,7 @@
         outSource = dispatch.invoke(inSource);

         

         // Prepare the response content for checking

-        reader = inputFactory.createXMLStreamReader(outSource);

-        r2w = new Reader2Writer(reader);

-        response = r2w.getAsString();

-        

-        assertTrue(response != null);

-        assertTrue(request.equals(response));

+        assertAbout(xml()).that(outSource).hasSameContentAs(XML_TEXT);

     }

     

    

diff --git a/modules/jaxws-integration/test/org/apache/axis2/jaxws/xmlhttp/clientTests/dispatch/string/DispatchXPayloadStringTests.java b/modules/jaxws-integration/test/org/apache/axis2/jaxws/xmlhttp/DispatchXPayloadStringTests.java
similarity index 88%
rename from modules/jaxws-integration/test/org/apache/axis2/jaxws/xmlhttp/clientTests/dispatch/string/DispatchXPayloadStringTests.java
rename to modules/jaxws-integration/test/org/apache/axis2/jaxws/xmlhttp/DispatchXPayloadStringTests.java
index 0ff0276..3c5dd71 100644
--- a/modules/jaxws-integration/test/org/apache/axis2/jaxws/xmlhttp/clientTests/dispatch/string/DispatchXPayloadStringTests.java
+++ b/modules/jaxws-integration/test/org/apache/axis2/jaxws/xmlhttp/DispatchXPayloadStringTests.java
@@ -17,36 +17,33 @@
  * under the License.

  */

 

-package org.apache.axis2.jaxws.xmlhttp.clientTests.dispatch.string;

+package org.apache.axis2.jaxws.xmlhttp;

 

-import junit.framework.Test;

-import junit.framework.TestSuite;

 import org.apache.axis2.jaxws.TestLogger;

-import org.apache.axis2.jaxws.framework.AbstractTestCase;

+import org.apache.axis2.testutils.Axis2Server;

+import org.junit.ClassRule;

+import org.junit.Test;

+

+import static org.junit.Assert.assertTrue;

 

 import javax.xml.namespace.QName;

 import javax.xml.ws.Dispatch;

 import javax.xml.ws.Service;

 import javax.xml.ws.http.HTTPBinding;

 

-public class DispatchXPayloadStringTests extends AbstractTestCase {

-

-    public String HOSTPORT = "http://localhost:6060";

-        

-    private String ENDPOINT_URL = HOSTPORT + "/axis2/services/XPayloadStringProvider.XPayloadStringProviderPort";

+public class DispatchXPayloadStringTests {

+    @ClassRule

+    public static Axis2Server server = new Axis2Server("target/repo");

+    

     private QName SERVICE_NAME  = new QName("http://ws.apache.org/axis2", "XPayloadStringProvider");

     private QName PORT_NAME  = new QName("http://ws.apache.org/axis2", "XPayloadStringProviderPort");

  

     private static String XML_TEXT = "<p:echo xmlns:p=\"http://sample\">hello world</p:echo>";

     private static String XML_TEXT_NPE = "<p:echo xmlns:p=\"http://sample\">NPE</p:echo>";

     

-    public static Test suite() {

-        return getTestSetup(new TestSuite(DispatchXPayloadStringTests.class));

-    }

-

     public Dispatch<String> getDispatch() {

        Service service = Service.create(SERVICE_NAME);

-       service.addPort(PORT_NAME, HTTPBinding.HTTP_BINDING,ENDPOINT_URL);

+       service.addPort(PORT_NAME, HTTPBinding.HTTP_BINDING, "http://localhost:" + server.getPort() + "/axis2/services/XPayloadStringProvider.XPayloadStringProviderPort");

        Dispatch<String> dispatch = service.createDispatch(PORT_NAME, String.class, Service.Mode.PAYLOAD);

        return dispatch;

     }

@@ -55,6 +52,7 @@
      * Simple XML/HTTP Payload Test

      * @throws Exception

      */

+    @Test

     public void testSimple() throws Exception {

         Dispatch<String> dispatch = getDispatch();

         String request = XML_TEXT;

diff --git a/modules/jaxws-integration/test/org/apache/axis2/jaxws/xmlhttp/provider/message/datasource/META-INF/MANIFEST.MF b/modules/jaxws-integration/test/org/apache/axis2/jaxws/xmlhttp/provider/message/datasource/META-INF/MANIFEST.MF
deleted file mode 100644
index 348f1bd..0000000
--- a/modules/jaxws-integration/test/org/apache/axis2/jaxws/xmlhttp/provider/message/datasource/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1 +0,0 @@
-Manifest-Version: 1.0
\ No newline at end of file
diff --git a/modules/jaxws-integration/test/org/apache/axis2/jaxws/xmlhttp/provider/message/source/META-INF/MANIFEST.MF b/modules/jaxws-integration/test/org/apache/axis2/jaxws/xmlhttp/provider/message/source/META-INF/MANIFEST.MF
deleted file mode 100644
index 348f1bd..0000000
--- a/modules/jaxws-integration/test/org/apache/axis2/jaxws/xmlhttp/provider/message/source/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1 +0,0 @@
-Manifest-Version: 1.0
\ No newline at end of file
diff --git a/modules/jaxws-integration/test/org/apache/axis2/jaxws/xmlhttp/provider/message/string/META-INF/MANIFEST.MF b/modules/jaxws-integration/test/org/apache/axis2/jaxws/xmlhttp/provider/message/string/META-INF/MANIFEST.MF
deleted file mode 100644
index 348f1bd..0000000
--- a/modules/jaxws-integration/test/org/apache/axis2/jaxws/xmlhttp/provider/message/string/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1 +0,0 @@
-Manifest-Version: 1.0
\ No newline at end of file
diff --git a/modules/jaxws-integration/test/org/apache/axis2/jaxws/xmlhttp/provider/payload/source/META-INF/MANIFEST.MF b/modules/jaxws-integration/test/org/apache/axis2/jaxws/xmlhttp/provider/payload/source/META-INF/MANIFEST.MF
deleted file mode 100644
index 348f1bd..0000000
--- a/modules/jaxws-integration/test/org/apache/axis2/jaxws/xmlhttp/provider/payload/source/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1 +0,0 @@
-Manifest-Version: 1.0
\ No newline at end of file
diff --git a/modules/jaxws-integration/test/org/apache/axis2/jaxws/xmlhttp/provider/payload/string/META-INF/MANIFEST.MF b/modules/jaxws-integration/test/org/apache/axis2/jaxws/xmlhttp/provider/payload/string/META-INF/MANIFEST.MF
deleted file mode 100644
index 348f1bd..0000000
--- a/modules/jaxws-integration/test/org/apache/axis2/jaxws/xmlhttp/provider/payload/string/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1 +0,0 @@
-Manifest-Version: 1.0
\ No newline at end of file
diff --git a/modules/jaxws-mar/pom.xml b/modules/jaxws-mar/pom.xml
index 2803d22..99533e9 100644
--- a/modules/jaxws-mar/pom.xml
+++ b/modules/jaxws-mar/pom.xml
@@ -23,9 +23,9 @@
     <modelVersion>4.0.0</modelVersion>
     <parent>
         <groupId>org.apache.axis2</groupId>
-        <artifactId>axis2-parent</artifactId>
-        <version>1.7.0-SNAPSHOT</version>
-        <relativePath>../parent/pom.xml</relativePath>
+        <artifactId>axis2</artifactId>
+        <version>1.8.0-SNAPSHOT</version>
+        <relativePath>../../pom.xml</relativePath>
     </parent>
     <artifactId>axis2-jaxws-mar</artifactId>
     <packaging>mar</packaging>
diff --git a/modules/jaxws/build.xml b/modules/jaxws/build.xml
deleted file mode 100644
index 29122f2..0000000
--- a/modules/jaxws/build.xml
+++ /dev/null
@@ -1,38 +0,0 @@
-<?xml version="1.0"?>
-
-<!--
-  ~ Licensed to the Apache Software Foundation (ASF) under one
-  ~ or more contributor license agreements. See the NOTICE file
-  ~ distributed with this work for additional information
-  ~ regarding copyright ownership. The ASF licenses this file
-  ~ to you under the Apache License, Version 2.0 (the
-  ~ "License"); you may not use this file except in compliance
-  ~ with the License. You may obtain a copy of the License at
-  ~
-  ~ http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing,
-  ~ software distributed under the License is distributed on an
-  ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  ~ KIND, either express or implied. See the License for the
-  ~ specific language governing permissions and limitations
-  ~ under the License.
-  -->
-
-<project name="itest" default="build-repo" basedir=".">
-
-	<target name="build-repo" unless="test.skip">
-
-		<!-- Standard repository -->
-		<mkdir dir="target/repository"/>
-		<mkdir dir="target/repository/conf"/>
-		<mkdir dir="target/repository/services"/>
-		<mkdir dir="target/repository/modules"/>
-		<copy file="../addressing/target/addressing-${addressing_version}.mar"
-    	                  tofile="target/repository/modules/addressing-${addressing_version}.mar"/>
-		<copy file="../kernel/conf/axis2.xml"
-    	                  tofile="target/repository/conf/axis2.xml"/>
-
-	</target>
-
-</project>
diff --git a/modules/jaxws/pom.xml b/modules/jaxws/pom.xml
index 018ff82..fb48d6e 100644
--- a/modules/jaxws/pom.xml
+++ b/modules/jaxws/pom.xml
@@ -22,9 +22,9 @@
     <modelVersion>4.0.0</modelVersion>
     <parent>
         <groupId>org.apache.axis2</groupId>
-        <artifactId>axis2-parent</artifactId>
-        <version>1.7.0-SNAPSHOT</version>
-        <relativePath>../parent/pom.xml</relativePath>
+        <artifactId>axis2</artifactId>
+        <version>1.8.0-SNAPSHOT</version>
+        <relativePath>../../pom.xml</relativePath>
     </parent>
     <artifactId>axis2-jaxws</artifactId>
     <name>Apache Axis2 - JAXWS</name>
@@ -54,8 +54,8 @@
             <version>${project.version}</version>
         </dependency>
         <dependency>
-            <groupId>org.apache.geronimo.specs</groupId>
-            <artifactId>geronimo-javamail_1.4_spec</artifactId>
+            <groupId>com.sun.mail</groupId>
+            <artifactId>javax.mail</artifactId>
         </dependency>
         <dependency>
             <groupId>xml-resolver</groupId>
@@ -115,10 +115,28 @@
             <scope>test</scope>
         </dependency>
         <dependency>
+            <groupId>org.apache.ws.commons.axiom</groupId>
+            <artifactId>xml-truth</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
             <groupId>log4j</groupId>
             <artifactId>log4j</artifactId>
             <scope>test</scope>
         </dependency>
+        <dependency>
+            <groupId>org.mockito</groupId>
+            <artifactId>mockito-core</artifactId>
+            <version>1.10.19</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>addressing</artifactId>
+            <version>${project.version}</version>
+            <type>mar</type>
+            <scope>test</scope>
+        </dependency>
     </dependencies>
     <url>http://axis.apache.org/axis2/java/core/</url>
     <scm>
@@ -180,33 +198,27 @@
                 </executions>
             </plugin>
             <plugin>
-                <artifactId>maven-dependency-plugin</artifactId>
+                <groupId>com.github.veithen.alta</groupId>
+                <artifactId>alta-maven-plugin</artifactId>
                 <executions>
                     <execution>
-                        <phase>generate-resources</phase>
                         <goals>
-                            <goal>copy</goal>
+                            <goal>generate-properties</goal>
                         </goals>
                         <configuration>
-                            <artifactItems>
-                                <artifactItem>
+                            <artifacts>
+                                <artifact>
                                     <groupId>javax.xml.bind</groupId>
                                     <artifactId>jaxb-api</artifactId>
-                                    <type>jar</type>
-                                </artifactItem>
-                                <artifactItem>
-                                    <groupId>org.apache.geronimo.specs</groupId>
-                                    <artifactId>geronimo-saaj_1.3_spec</artifactId>
-                                    <type>jar</type>
-                                </artifactItem>
-                                <artifactItem>
+                                </artifact>
+                                <artifact>
                                     <groupId>org.apache.geronimo.specs</groupId>
                                     <artifactId>geronimo-jaxws_2.2_spec</artifactId>
-                                 </artifactItem>
-                            </artifactItems>
-                            <overWrite>true</overWrite>
-                            <outputDirectory>${project.build.directory}/endorsed</outputDirectory>
-                            <stripVersion>true</stripVersion>
+                                </artifact>
+                            </artifacts>
+                            <name>jaxws.bootclasspath</name>
+                            <value>%file%</value>
+                            <separator>${path.separator}</separator>
                         </configuration>
                     </execution>
                 </executions>
@@ -216,86 +228,101 @@
                 <inherited>true</inherited>
                 <configuration>
                     <compilerArgument>
-                        -Xbootclasspath/p:${project.build.directory}/endorsed/geronimo-jaxws_2.2_spec.jar${path.separator}${basedir}/../jaxws-api/target/classes${path.separator}${basedir}/../jws-api/target/classes
+                        -Xbootclasspath/p:${jaxws.bootclasspath}
                     </compilerArgument>
-                    <compilerVersion>1.5</compilerVersion>
-                    <source>1.5</source>
-                    <target>1.5</target>
-                    
                 </configuration>
             </plugin>
             <plugin>
+                <groupId>org.codehaus.mojo</groupId>
+                <artifactId>jaxb2-maven-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <id>xjc-echo</id>
+                        <goals>
+                            <goal>testXjc</goal>
+                        </goals>
+                        <configuration>
+                            <sourceType>XmlSchema</sourceType>
+                            <testSources>
+                                <testSource>test-resources/xsd/echo.xsd</testSource>
+                            </testSources>
+                            <outputDirectory>${project.build.directory}/generated-test-sources/jaxb/echo</outputDirectory>
+                        </configuration>
+                    </execution>
+                    <execution>
+                        <id>xjc-stock1</id>
+                        <goals>
+                            <goal>testXjc</goal>
+                        </goals>
+                        <configuration>
+                            <sourceType>XmlSchema</sourceType>
+                            <testSources>
+                                <testSource>test-resources/xsd/stock1.xsd</testSource>
+                            </testSources>
+                            <outputDirectory>${project.build.directory}/generated-test-sources/jaxb/stock1</outputDirectory>
+                        </configuration>
+                    </execution>
+                    <execution>
+                        <id>xjc-stock2</id>
+                        <goals>
+                            <goal>testXjc</goal>
+                        </goals>
+                        <configuration>
+                            <sourceType>XmlSchema</sourceType>
+                            <testSources>
+                                <testSource>test-resources/xsd/stock2.xsd</testSource>
+                            </testSources>
+                            <outputDirectory>${project.build.directory}/generated-test-sources/jaxb/stock2</outputDirectory>
+                        </configuration>
+                    </execution>
+                    <execution>
+                        <id>xjc-samplemtom</id>
+                        <goals>
+                            <goal>testXjc</goal>
+                        </goals>
+                        <configuration>
+                            <sourceType>XmlSchema</sourceType>
+                            <testSources>
+                                <testSource>test-resources/xsd/samplemtom.xsd</testSource>
+                            </testSources>
+                            <outputDirectory>${project.build.directory}/generated-test-sources/jaxb/samplemtom</outputDirectory>
+                        </configuration>
+                    </execution>
+                    <execution>
+                        <id>xjc-ProxyDocLitWrapped</id>
+                        <goals>
+                            <goal>testXjc</goal>
+                        </goals>
+                        <configuration>
+                            <sourceType>WSDL</sourceType>
+                            <testSources>
+                                <testSource>test-resources/wsdl/ProxyDocLitWrapped.wsdl</testSource>
+                            </testSources>
+                            <packageName>org.test.proxy.doclitwrapped</packageName>
+                            <outputDirectory>${project.build.directory}/generated-test-sources/jaxb/ProxyDocLitWrapped</outputDirectory>
+                        </configuration>
+                    </execution>
+                    <execution>
+                        <id>xjc-AddNumbers</id>
+                        <goals>
+                            <goal>testXjc</goal>
+                        </goals>
+                        <configuration>
+                            <sourceType>WSDL</sourceType>
+                            <testSources>
+                                <testSource>test-resources/wsdl/AddNumbers.wsdl</testSource>
+                            </testSources>
+                            <outputDirectory>${project.build.directory}/generated-test-sources/jaxb/AddNumbers</outputDirectory>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+            <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-antrun-plugin</artifactId>
                 
                 <executions>
                     <execution>
-                        <id>gen-ts</id>
-                        <phase>generate-test-sources</phase>
-                        <configuration>
-                            <tasks unless="maven.test.skip"> 
-                                <!-- Theres got to be a better way to do this -->
-                                <property name="schema.source.dir" value="test-resources/xsd" />
-                                <property name="wsdl.source.dir" value="test-resources/wsdl" />
-                                <property name="schema.output.base.dir" value="target/schema" />                             
-                                <property name="schema.generated.src.dir" value="${schema.output.base.dir}/src" />
-                                <property name="schema.generated.classes.dir" value="${schema.output.base.dir}/classes" />
-                               
-                                <!-- make the dirs -->
-                                <mkdir dir="${schema.output.base.dir}" />
-                                <mkdir dir="${schema.generated.src.dir}" />
-                                <mkdir dir="${schema.generated.classes.dir}" />
-
-                                <!-- Run JAXB schema compiler with designated schemas -->
-                                <echo>Generating JAX-B classes from XSDs</echo>
-
-                                <echo>Generating java from echo.xsd</echo>
-                                <java classname="com.sun.tools.xjc.Driver" fork="true">
-                                    <classpath refid="maven.runtime.classpath" />
-                                    
-                                    <classpath location="${compiled.classes.dir}" />
-                                    <arg line="-d ${schema.generated.src.dir} -quiet ${schema.source.dir}/echo.xsd" />
-                                </java>
-
-                                <echo>Generating java from stock1.xsd</echo>
-                                <java classname="com.sun.tools.xjc.Driver" fork="true">
-                                    <classpath refid="maven.runtime.classpath" />
-                                    <classpath location="${compiled.classes.dir}" />
-                                    <arg line="-d ${schema.generated.src.dir} -quiet ${schema.source.dir}/stock1.xsd" />
-                                </java>
-
-                                <echo>Generating java from stock2.xsd</echo>
-                                <java classname="com.sun.tools.xjc.Driver" fork="true">
-                                    <classpath refid="maven.runtime.classpath" />
-                                    <classpath location="${compiled.classes.dir}" />
-                                    <arg line="-d ${schema.generated.src.dir} -quiet ${schema.source.dir}/stock2.xsd" />
-                                </java>
-
-                                <echo>Generating java from samplemtom.xsd</echo>
-                                <java classname="com.sun.tools.xjc.Driver" fork="true">
-                                    <classpath refid="maven.runtime.classpath" />
-                                    <classpath location="${compiled.classes.dir}" />
-                                    <arg line="-d ${schema.generated.src.dir} -quiet ${schema.source.dir}/samplemtom.xsd" />
-                                </java>
-                                <echo>Generating java from ProxyDocLitWrapped.wsdl</echo>
-                                <java classname="com.sun.tools.xjc.Driver" fork="true">
-                                    <classpath refid="maven.runtime.classpath" />
-                                    <classpath location="${compiled.classes.dir}" />
-                                    <arg line="-d ${schema.generated.src.dir} -quiet -p org.test.proxy.doclitwrapped -quiet -wsdl ${wsdl.source.dir}/ProxyDocLitWrapped.wsdl" />
-                                </java>
-                                <echo>Generating java from AddNumbers.wsdl</echo>
-                                <java classname="com.sun.tools.xjc.Driver" fork="true">
-                                    <classpath refid="maven.runtime.classpath" />
-                                    <classpath location="${compiled.classes.dir}" />
-                                    <arg line="-d ${schema.generated.src.dir} -quiet -wsdl ${wsdl.source.dir}/AddNumbers.wsdl" />
-                                </java>                                
-                            </tasks>
-                        </configuration>
-                        <goals>
-                            <goal>run</goal>
-                        </goals>
-                    </execution>
-                    <execution>
                         <id>build-repo</id>
                         <phase>test-compile</phase>
                         <configuration>
@@ -306,8 +333,6 @@
                                         <include name="**/axis2.xml" />
                                     </fileset>
                                 </copy>
-                                <property name="addressing_version" value="${project.version}" />
-                                <ant antfile="build.xml" inheritall="true" inheritrefs="true" dir="." target="build-repo" />
                             </tasks>
                         </configuration>
                         <goals>
@@ -317,19 +342,17 @@
                 </executions>
             </plugin>
             <plugin>
-                <groupId>org.codehaus.mojo</groupId>
-                <artifactId>build-helper-maven-plugin</artifactId>
+                <groupId>org.apache.axis2</groupId>
+                <artifactId>axis2-repo-maven-plugin</artifactId>
                 <executions>
                     <execution>
-                        <id>add-test-source</id>
-                        <phase>process-test-resources</phase>
                         <goals>
-                            <goal>add-test-source</goal>
+                            <goal>create-test-repository</goal>
                         </goals>
                         <configuration>
-                            <sources>
-                                <source>${basedir}/target/schema/src</source>
-                            </sources>
+                            <axis2xml>../kernel/conf/axis2.xml</axis2xml>
+                            <configurationDirectory>conf</configurationDirectory>
+                            <outputDirectory>${project.build.directory}/repository</outputDirectory>
                         </configuration>
                     </execution>
                 </executions>
@@ -339,7 +362,7 @@
                 <inherited>true</inherited>
                 <configuration>
                     <forkMode>once</forkMode>
-                    <argLine>-Xms256m -Xmx512m -Xbootclasspath/p:${project.build.directory}/endorsed/jaxb-api.jar${path.separator}${project.build.directory}/endorsed/geronimo-saaj_1.3_spec.jar${path.separator}${project.build.directory}/endorsed/geronimo-jaxws_2.2_spec.jar</argLine>
+                    <argLine>-Xms256m -Xmx512m -Xbootclasspath/p:${jaxws.bootclasspath}</argLine>
                     <!-- Enable the next 2 lines if you want to attach a debugger
                     <argLine>-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5006</argLine>-->
                     <includes>
diff --git a/modules/jaxws/src/org/apache/axis2/datasource/SourceDataSource.java b/modules/jaxws/src/org/apache/axis2/datasource/SourceDataSource.java
index 305c337..f69ba8f 100644
--- a/modules/jaxws/src/org/apache/axis2/datasource/SourceDataSource.java
+++ b/modules/jaxws/src/org/apache/axis2/datasource/SourceDataSource.java
@@ -19,10 +19,8 @@
 

 package org.apache.axis2.datasource;

 

-

-import org.apache.axiom.om.OMDataSourceExt;

 import org.apache.axiom.om.OMException;

-import org.apache.axiom.om.ds.OMDataSourceExtBase;

+import org.apache.axiom.om.ds.AbstractPullOMDataSource;

 import org.apache.axiom.om.util.StAXUtils;

 import org.apache.commons.logging.Log;

 import org.apache.commons.logging.LogFactory;

@@ -44,23 +42,16 @@
 /**

  * OMDataSource backed by a source

  */

-public class SourceDataSource extends OMDataSourceExtBase {

+public class SourceDataSource extends AbstractPullOMDataSource {

     private static final Log log = LogFactory.getLog(SourceDataSource.class);

-    Source data;

+

+    private final Source data;

 

     public SourceDataSource(Source data) {

-        super();

         this.data = data;

     }

 

-    public void close() {

-    }

-

-    public OMDataSourceExt copy() {

-        return null;

-    }

-

-    public Object getObject() {

+    public Source getObject() {

         return data;

     }

 

@@ -68,14 +59,14 @@
 

         try {

             String encoding = "utf-8";

-            InputStream is = new ByteArrayInputStream(getXMLBytes(encoding));

+            InputStream is = new ByteArrayInputStream(getContent(encoding));

             return StAXUtils.createXMLStreamReader(is, encoding);

         } catch (UnsupportedEncodingException e) {

             throw new XMLStreamException(e);

         }

     }

 

-    public byte[] getXMLBytes(String encoding) throws UnsupportedEncodingException {

+    private byte[] getContent(String encoding) throws UnsupportedEncodingException {

         if (log.isDebugEnabled()) {

             log.debug("Start getXMLBytes");

         }

@@ -113,10 +104,6 @@
         return false;

     }

 

-    public boolean isDestructiveWrite() {

-        return false;

-    }

-    

     private static byte[] getBytesFromStream(InputStream is) throws IOException {

         // TODO This code assumes that available is the length of the stream.

         byte[] bytes = new byte[is.available()];

diff --git a/modules/jaxws/src/org/apache/axis2/datasource/XMLStringDataSource.java b/modules/jaxws/src/org/apache/axis2/datasource/XMLStringDataSource.java
deleted file mode 100644
index f5315c9..0000000
--- a/modules/jaxws/src/org/apache/axis2/datasource/XMLStringDataSource.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/*

- * Licensed to the Apache Software Foundation (ASF) under one

- * or more contributor license agreements. See the NOTICE file

- * distributed with this work for additional information

- * regarding copyright ownership. The ASF licenses this file

- * to you under the Apache License, Version 2.0 (the

- * "License"); you may not use this file except in compliance

- * with the License. You may obtain a copy of the License at

- *

- * http://www.apache.org/licenses/LICENSE-2.0

- *

- * Unless required by applicable law or agreed to in writing,

- * software distributed under the License is distributed on an

- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

- * KIND, either express or implied. See the License for the

- * specific language governing permissions and limitations

- * under the License.

- */

-

-package org.apache.axis2.datasource;

-

-

-import org.apache.axiom.om.OMDataSourceExt;

-import org.apache.axiom.om.ds.OMDataSourceExtBase;

-import org.apache.axiom.om.util.StAXUtils;

-

-import javax.xml.stream.XMLStreamException;

-import javax.xml.stream.XMLStreamReader;

-import java.io.ByteArrayInputStream;

-import java.io.InputStream;

-import java.io.UnsupportedEncodingException;

-

-/**

- * OMDataSource backed by a string containing xml data

- */

-public class XMLStringDataSource extends OMDataSourceExtBase {

-    String data;

-

-    public XMLStringDataSource(String data) {

-        super();

-        this.data = data;

-    }

-

-    public void close() {

-    }

-

-    public OMDataSourceExt copy() {

-        return new XMLStringDataSource(data);

-    }

-

-    public Object getObject() {

-        return data;

-    }

-

-    public XMLStreamReader getReader() throws XMLStreamException {

-

-        try {

-            String encoding = "utf-8";

-            InputStream is = new ByteArrayInputStream(getXMLBytes(encoding));

-            return StAXUtils.createXMLStreamReader(is, encoding);

-        } catch (UnsupportedEncodingException e) {

-            throw new XMLStreamException(e);

-        }

-    }

-

-    public byte[] getXMLBytes(String encoding) throws UnsupportedEncodingException {

-        return data.getBytes(encoding);

-    }

-

-    public boolean isDestructiveRead() {

-        return false;

-    }

-

-    public boolean isDestructiveWrite() {

-        return false;

-    }

-    

-}

diff --git a/modules/jaxws/src/org/apache/axis2/datasource/jaxb/AbstractJAXBAttachmentUnmarshaller.java b/modules/jaxws/src/org/apache/axis2/datasource/jaxb/AbstractJAXBAttachmentUnmarshaller.java
deleted file mode 100644
index fbdd331..0000000
--- a/modules/jaxws/src/org/apache/axis2/datasource/jaxb/AbstractJAXBAttachmentUnmarshaller.java
+++ /dev/null
@@ -1,178 +0,0 @@
-/*

- * Licensed to the Apache Software Foundation (ASF) under one

- * or more contributor license agreements. See the NOTICE file

- * distributed with this work for additional information

- * regarding copyright ownership. The ASF licenses this file

- * to you under the Apache License, Version 2.0 (the

- * "License"); you may not use this file except in compliance

- * with the License. You may obtain a copy of the License at

- *

- * http://www.apache.org/licenses/LICENSE-2.0

- *

- * Unless required by applicable law or agreed to in writing,

- * software distributed under the License is distributed on an

- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

- * KIND, either express or implied. See the License for the

- * specific language governing permissions and limitations

- * under the License.

- */

-

-package org.apache.axis2.datasource.jaxb;

-

-import org.apache.axiom.om.OMException;

-import org.apache.axiom.util.stax.xop.MimePartProvider;

-import org.apache.axis2.jaxws.i18n.Messages;

-import org.apache.commons.logging.Log;

-import org.apache.commons.logging.LogFactory;

-

-import javax.activation.DataHandler;

-import javax.xml.bind.attachment.AttachmentUnmarshaller;

-

-import java.io.ByteArrayOutputStream;

-import java.io.IOException;

-import java.io.InputStream;

-

-/**

- * Abstract base class for {@link JAXBAttachmentUnmarshaller} and

- * {@link org.apache.axis2.jaxws.message.attachments.JAXBAttachmentUnmarshaller}. This is a partial

- * implementation of the {@link AttachmentUnmarshaller} class. It handles the attachments provided

- * by Axiom through the {@link MimePartProvider} interface. It should be noted that while Axiom only

- * handles attachments referenced using XOP, {@link AttachmentUnmarshaller} is also used to retrieve

- * attachments from SwA messages. Hence the {@link #getDataHandlerForSwA(String)} method.

- */

-public abstract class AbstractJAXBAttachmentUnmarshaller extends AttachmentUnmarshaller {

-

-    private static final Log log = LogFactory.getLog(AbstractJAXBAttachmentUnmarshaller.class);

-

-    private final MimePartProvider mimePartProvider;

-

-    public AbstractJAXBAttachmentUnmarshaller(MimePartProvider mimePartProvider) {

-        this.mimePartProvider = mimePartProvider;

-    }

-

-    public final boolean isXOPPackage() {

-        

-        // Any message that is received might contain MTOM.

-        // So always return true.

-        boolean value = true;

-    

-        if (log.isDebugEnabled()){ 

-            log.debug("isXOPPackage returns " + value);

-        }

-        return value;

-    }

-

-    public final byte[] getAttachmentAsByteArray(String cid) {

-        if (log.isDebugEnabled()) {

-            log.debug("Attempting to retrieve attachment [" + cid + "] as a byte[]");

-        }

-        DataHandler dh = getAttachmentAsDataHandler(cid);

-        if (dh != null) {

-            try {

-                return convert(dh);

-            } catch (IOException ioe) {

-                if (log.isDebugEnabled()) {

-                    log.debug("Exception occurred while getting the byte[] " + ioe);

-                }

-                throw new OMException(ioe);

-            }

-        }

-        if (log.isDebugEnabled()) {

-            log.debug("returning null byte[]");

-        }

-        return null;

-    }

-

-    public final DataHandler getAttachmentAsDataHandler(String cid) {

-        if (log.isDebugEnabled()) {

-            log.debug("Attempting to retrieve attachment [" + cid + "] as a DataHandler");

-        }

-

-        DataHandler dh = getDataHandler(cid);

-        if (dh != null) {

-            return dh;

-        } else {

-            String cid2 = getNewCID(cid);

-            if (log.isDebugEnabled()) {

-                log.debug("A dataHandler was not found for [" + cid + "] trying [" + cid2 + "]");

-            }

-            dh = getDataHandler(cid2);

-            if (dh != null) {

-                return dh;

-            }

-        }

-        // No Data Handler found

-        throw new OMException(Messages.getMessage("noDataHandler", cid));

-    }

-    

-    /**

-     * @param cid

-     * @return cid with translated characters

-     */

-    private String getNewCID(String cid) {

-        String cid2 = cid;

-

-        try {

-            cid2 = java.net.URLDecoder.decode(cid, "UTF-8");

-        } catch (Exception e) {

-            if (log.isDebugEnabled()) {

-                log.debug("getNewCID decoding " + cid + " as UTF-8 decoding error: " + e);

-            }

-        }

-        return cid2;

-    }

-

-    /**

-     * Read the bytes from the DataHandler

-     * 

-     * @param dh

-     * @return byte[]

-     * @throws IOException

-     */

-    private byte[] convert(DataHandler dh) throws IOException {

-        if (log.isDebugEnabled()) {

-            log.debug("Reading byte[] from DataHandler " + dh);

-        }

-        InputStream is = dh.getInputStream();

-        if (log.isDebugEnabled()) {

-            log.debug("DataHandler InputStream " + is);

-        }

-        ByteArrayOutputStream baos = new ByteArrayOutputStream();

-        byte[] b = new byte[1024];

-        int num = is.read(b);

-        if (log.isDebugEnabled()) {

-            if (num <= 0) {

-                log.debug("DataHandler InputStream contains no data. num=" + num);

-            }

-        }

-        while (num > 0) {

-            baos.write(b, 0, num);

-            num = is.read(b);

-        }

-        return baos.toByteArray();

-    }

-    

-    private DataHandler getDataHandler(String cid) {

-        String blobcid = cid;

-        if (blobcid.startsWith("cid:")) {

-            blobcid = blobcid.substring(4);

-        }

-        DataHandler dh;

-        try {

-            dh = mimePartProvider.getDataHandler(blobcid);

-        } catch (IllegalArgumentException ex) {

-            dh = null;

-        } catch (IOException ex) {

-            throw new OMException("Failed to load attachment with content ID " + blobcid, ex);

-        }

-        if (dh == null) {

-            dh = getDataHandlerForSwA(blobcid);

-        }

-        if (dh != null) {

-            JAXBAttachmentUnmarshallerMonitor.addBlobCID(blobcid);

-        }

-        return dh;

-    }

-    

-    protected abstract DataHandler getDataHandlerForSwA(String blobcid);

-}

diff --git a/modules/jaxws/src/org/apache/axis2/datasource/jaxb/AttachmentContext.java b/modules/jaxws/src/org/apache/axis2/datasource/jaxb/AttachmentContext.java
new file mode 100644
index 0000000..61149e6
--- /dev/null
+++ b/modules/jaxws/src/org/apache/axis2/datasource/jaxb/AttachmentContext.java
@@ -0,0 +1,47 @@
+/*

+ * Licensed to the Apache Software Foundation (ASF) under one

+ * or more contributor license agreements. See the NOTICE file

+ * distributed with this work for additional information

+ * regarding copyright ownership. The ASF licenses this file

+ * to you under the Apache License, Version 2.0 (the

+ * "License"); you may not use this file except in compliance

+ * with the License. You may obtain a copy of the License at

+ *

+ * http://www.apache.org/licenses/LICENSE-2.0

+ *

+ * Unless required by applicable law or agreed to in writing,

+ * software distributed under the License is distributed on an

+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+ * KIND, either express or implied. See the License for the

+ * specific language governing permissions and limitations

+ * under the License.

+ */

+

+package org.apache.axis2.datasource.jaxb;

+

+import org.apache.axis2.context.MessageContext;

+

+import javax.activation.DataHandler;

+

+public interface AttachmentContext {

+    MessageContext getMessageContext();

+    

+    /**

+     * @return if MTOM enabled calculated from the context information

+     */

+    boolean isMTOMEnabled();

+    

+    /**

+     * Indicate on the context that SWA attachments are encountered

+     */

+    void setDoingSWA();

+    

+    /**

+     * Inform the context that an Attachment (DataHandler, CID) is written.

+     * @param dh

+     * @param cid

+     */

+    void addDataHandler(DataHandler dh, String cid);

+

+    DataHandler getDataHandlerForSwA(String blobcid);

+}

diff --git a/modules/jaxws/src/org/apache/axis2/datasource/jaxb/JAXBAttachmentMarshaller.java b/modules/jaxws/src/org/apache/axis2/datasource/jaxb/JAXBAttachmentMarshaller.java
index c70c109..ac3673e 100644
--- a/modules/jaxws/src/org/apache/axis2/datasource/jaxb/JAXBAttachmentMarshaller.java
+++ b/modules/jaxws/src/org/apache/axis2/datasource/jaxb/JAXBAttachmentMarshaller.java
@@ -23,7 +23,6 @@
 import org.apache.axiom.om.impl.MTOMXMLStreamWriter;

 import org.apache.axiom.util.UIDGenerator;

 import org.apache.axis2.Constants;

-import org.apache.axis2.Constants.Configuration;

 import org.apache.axis2.context.MessageContext;

 import org.apache.axis2.java.security.AccessController;

 import org.apache.axis2.transport.http.HTTPConstants;

@@ -40,16 +39,12 @@
 

 import java.security.PrivilegedAction;

 

-/**

- * An implementation of the JAXB AttachmentMarshaller that is used to handle binary data from JAXB

- * and create populate the appropriate constructs on the MessageContext

- */

-public class JAXBAttachmentMarshaller extends AttachmentMarshaller {

+public final class JAXBAttachmentMarshaller extends AttachmentMarshaller {

 

     private static final Log log = LogFactory.getLog(JAXBAttachmentMarshaller.class);

 

-    private MessageContext msgContext;

-    private XMLStreamWriter writer;

+    private final AttachmentContext context;

+    private final XMLStreamWriter writer;

     private static final String APPLICATION_OCTET = "application/octet-stream";

     

     /**

@@ -57,8 +52,8 @@
      * @param msgContext

      * @param writer

      */

-    public JAXBAttachmentMarshaller(MessageContext msgContext, XMLStreamWriter writer) {

-        this.msgContext = msgContext;

+    public JAXBAttachmentMarshaller(AttachmentContext context, XMLStreamWriter writer) {

+        this.context = context;

         this.writer = writer;

     }

 

@@ -70,7 +65,7 @@
         

         // For outbound messages, only trigger MTOM if

         // the message is mtom enabled.

-        value = isMTOMEnabled();

+        value = context.isMTOMEnabled();

         

         // If the writer is not an MTOM XMLStreamWriter then we don't have

         // any place to store the attachment

@@ -92,7 +87,7 @@
     /* (non-Javadoc)

      * @see javax.xml.bind.attachment.AttachmentMarshaller#addMtomAttachment(byte[], int, int, java.lang.String, java.lang.String, java.lang.String)

      */

-    public String addMtomAttachment(byte[] data, int offset, int length,

+    public final String addMtomAttachment(byte[] data, int offset, int length,

                                     String mimeType, String namespace, String localPart) {

 

         if (offset != 0 || length != data.length) {

@@ -118,8 +113,8 @@
             final InternetHeaders ih = new InternetHeaders();

             final byte[] dataArray = data; 

             ih.setHeader(HTTPConstants.HEADER_CONTENT_TYPE, mimeType);

-            final MimeBodyPart mbp = (MimeBodyPart) AccessController.doPrivileged(new PrivilegedAction() {

-                public Object run() {

+            final MimeBodyPart mbp = AccessController.doPrivileged(new PrivilegedAction<MimeBodyPart>() {

+                public MimeBodyPart run() {

                     try {

                         return new MimeBodyPart(ih, dataArray);

                     } catch (MessagingException e) {

@@ -128,12 +123,13 @@
                 }});

 

             //Create a data source for the MIME Body Part

-            MimePartDataSource mpds = (MimePartDataSource) AccessController.doPrivileged(new PrivilegedAction() {

-                public Object run() {

+            MimePartDataSource mpds = AccessController.doPrivileged(new PrivilegedAction<MimePartDataSource>() {

+                public MimePartDataSource run() {

                     return new MimePartDataSource(mbp);

                 }});

             long dataLength =data.length;

             Integer value = null;

+            MessageContext msgContext = context.getMessageContext();

             if (msgContext != null) {

                 value = (Integer) msgContext.getProperty(Constants.Configuration.MTOM_THRESHOLD);

             } else if (log.isDebugEnabled()) {

@@ -160,7 +156,7 @@
     /* (non-Javadoc)

      * @see javax.xml.bind.attachment.AttachmentMarshaller#addMtomAttachment(javax.activation.DataHandler, java.lang.String, java.lang.String)

      */

-    public String addMtomAttachment(DataHandler data, String namespace, String localPart) {

+    public final String addMtomAttachment(DataHandler data, String namespace, String localPart) {

         if (log.isDebugEnabled()){ 

             log.debug("Adding MTOM/XOP datahandler attachment for element: " + 

                       "{" + namespace + "}" + localPart);

@@ -173,13 +169,13 @@
     /* (non-Javadoc)

      * @see javax.xml.bind.attachment.AttachmentMarshaller#addSwaRefAttachment(javax.activation.DataHandler)

      */

-    public String addSwaRefAttachment(DataHandler data) {

+    public final String addSwaRefAttachment(DataHandler data) {

         if (log.isDebugEnabled()){ 

             log.debug("Adding SWAREF attachment");

         }

         

         String cid = addDataHandler(data, true);

-        setDoingSWA();

+        context.setDoingSWA();

         return "cid:" + cid;

     }

     

@@ -200,7 +196,7 @@
             }

             // If old SWA attachments, get the ID and add the attachment to message

             cid = UIDGenerator.generateContentId();

-            addDataHandler(dh, cid);   

+            context.addDataHandler(dh, cid);   

         } else {

             if (log.isDebugEnabled()){ 

                 log.debug("adding DataHandler for MTOM");

@@ -212,7 +208,7 @@
                         log.debug("The MTOM attachment is written as an attachment part.");

                     }

                     // Remember the attachment on the message.

-                    addDataHandler(dh, cid);

+                    context.addDataHandler(dh, cid);

                 } else {

                     if (log.isDebugEnabled()){ 

                         log.debug("The MTOM attachment is inlined.");

@@ -231,43 +227,4 @@
         }

         return cid;

     }

-

-    /**

-     * @return if MTOM enabled calculated from the context information

-     */

-    public boolean isMTOMEnabled() {

-        if (msgContext == null) {

-            return false;

-        } else {

-            String value = (String) msgContext.getProperty(Configuration.ENABLE_MTOM);

-            return ("true".equalsIgnoreCase(value));

-        }  

-    }

-    

-    /**

-     * Indicate on the context that SWA attachments are encountered

-     */

-    public void setDoingSWA() {

-        if (msgContext != null) {

-            msgContext.setDoingSwA(true);

-            msgContext.setProperty(Configuration.ENABLE_SWA, "true");

-        }

-    }

-    

-    /**

-     * Inform the context that an Attachment (DataHandler, CID) is written.

-     * @param dh

-     * @param cid

-     */

-    public void addDataHandler(DataHandler dh, String cid) {

-        if (msgContext != null) {

-            msgContext.addAttachment(cid, dh);

-        } else {

-            if (log.isDebugEnabled()) {

-                log.debug("The msgContext is null.  The attachment is not stored");

-                log.debug("   content id=" + cid);

-                log.debug("   dataHandler  =" + dh);

-            }

-        }

-    }

 }

diff --git a/modules/jaxws/src/org/apache/axis2/datasource/jaxb/JAXBAttachmentUnmarshaller.java b/modules/jaxws/src/org/apache/axis2/datasource/jaxb/JAXBAttachmentUnmarshaller.java
index 42a728d..a188cf0 100644
--- a/modules/jaxws/src/org/apache/axis2/datasource/jaxb/JAXBAttachmentUnmarshaller.java
+++ b/modules/jaxws/src/org/apache/axis2/datasource/jaxb/JAXBAttachmentUnmarshaller.java
@@ -19,28 +19,151 @@
 

 package org.apache.axis2.datasource.jaxb;

 

-import org.apache.axiom.util.stax.xop.MimePartProvider;

-import org.apache.axis2.context.MessageContext;

+import org.apache.axiom.om.OMAttachmentAccessor;

+import org.apache.axiom.om.OMException;

+import org.apache.axis2.jaxws.i18n.Messages;

+import org.apache.commons.logging.Log;

+import org.apache.commons.logging.LogFactory;

 

 import javax.activation.DataHandler;

+import javax.xml.bind.attachment.AttachmentUnmarshaller;

+

+import java.io.ByteArrayOutputStream;

+import java.io.IOException;

+import java.io.InputStream;

 

 /**

- * JAXBAttachmentUnmarshaller

- * <p/>

- * An implementation of the <link>javax.xml.bind.attachment.AttachmentUnmarshaller</link> that is

- * used for deserializing XOP elements into their corresponding binary data packages.

+ * Implementation of the {@link AttachmentUnmarshaller} class that handles the attachments provided

+ * by Axiom through the {@link MimePartProvider} interface. It should be noted that while Axiom only

+ * handles attachments referenced using XOP, {@link AttachmentUnmarshaller} is also used to retrieve

+ * attachments from SwA messages. Hence the {@link #getDataHandlerForSwA(String)} method.

  */

-public class JAXBAttachmentUnmarshaller extends AbstractJAXBAttachmentUnmarshaller {

-    private final MessageContext msgContext;

+public final class JAXBAttachmentUnmarshaller extends AttachmentUnmarshaller {

 

-    public JAXBAttachmentUnmarshaller(MimePartProvider mimePartProvider,

-            MessageContext msgContext) {

-        super(mimePartProvider);

-        this.msgContext = msgContext;

+    private static final Log log = LogFactory.getLog(JAXBAttachmentUnmarshaller.class);

+

+    private final AttachmentContext context;

+    private final OMAttachmentAccessor attachmentAccessor;

+

+    public JAXBAttachmentUnmarshaller(AttachmentContext context, OMAttachmentAccessor attachmentAccessor) {

+        this.context = context;

+        this.attachmentAccessor = attachmentAccessor;

     }

 

-    @Override

-    protected DataHandler getDataHandlerForSwA(String blobcid) {

-        return msgContext.getAttachment(blobcid);

+    public final boolean isXOPPackage() {

+        

+        // Any message that is received might contain MTOM.

+        // So always return true.

+        boolean value = true;

+    

+        if (log.isDebugEnabled()){ 

+            log.debug("isXOPPackage returns " + value);

+        }

+        return value;

+    }

+

+    public final byte[] getAttachmentAsByteArray(String cid) {

+        if (log.isDebugEnabled()) {

+            log.debug("Attempting to retrieve attachment [" + cid + "] as a byte[]");

+        }

+        DataHandler dh = getAttachmentAsDataHandler(cid);

+        if (dh != null) {

+            try {

+                return convert(dh);

+            } catch (IOException ioe) {

+                if (log.isDebugEnabled()) {

+                    log.debug("Exception occurred while getting the byte[] " + ioe);

+                }

+                throw new OMException(ioe);

+            }

+        }

+        if (log.isDebugEnabled()) {

+            log.debug("returning null byte[]");

+        }

+        return null;

+    }

+

+    public final DataHandler getAttachmentAsDataHandler(String cid) {

+        if (log.isDebugEnabled()) {

+            log.debug("Attempting to retrieve attachment [" + cid + "] as a DataHandler");

+        }

+

+        DataHandler dh = getDataHandler(cid);

+        if (dh != null) {

+            return dh;

+        } else {

+            String cid2 = getNewCID(cid);

+            if (log.isDebugEnabled()) {

+                log.debug("A dataHandler was not found for [" + cid + "] trying [" + cid2 + "]");

+            }

+            dh = getDataHandler(cid2);

+            if (dh != null) {

+                return dh;

+            }

+        }

+        // No Data Handler found

+        throw new OMException(Messages.getMessage("noDataHandler", cid));

+    }

+    

+    /**

+     * @param cid

+     * @return cid with translated characters

+     */

+    private String getNewCID(String cid) {

+        String cid2 = cid;

+

+        try {

+            cid2 = java.net.URLDecoder.decode(cid, "UTF-8");

+        } catch (Exception e) {

+            if (log.isDebugEnabled()) {

+                log.debug("getNewCID decoding " + cid + " as UTF-8 decoding error: " + e);

+            }

+        }

+        return cid2;

+    }

+

+    /**

+     * Read the bytes from the DataHandler

+     * 

+     * @param dh

+     * @return byte[]

+     * @throws IOException

+     */

+    private byte[] convert(DataHandler dh) throws IOException {

+        if (log.isDebugEnabled()) {

+            log.debug("Reading byte[] from DataHandler " + dh);

+        }

+        InputStream is = dh.getInputStream();

+        if (log.isDebugEnabled()) {

+            log.debug("DataHandler InputStream " + is);

+        }

+        ByteArrayOutputStream baos = new ByteArrayOutputStream();

+        byte[] b = new byte[1024];

+        int num = is.read(b);

+        if (log.isDebugEnabled()) {

+            if (num <= 0) {

+                log.debug("DataHandler InputStream contains no data. num=" + num);

+            }

+        }

+        while (num > 0) {

+            baos.write(b, 0, num);

+            num = is.read(b);

+        }

+        return baos.toByteArray();

+    }

+    

+    private DataHandler getDataHandler(String cid) {

+        String blobcid = cid;

+        if (blobcid.startsWith("cid:")) {

+            blobcid = blobcid.substring(4);

+        }

+        DataHandler dh = attachmentAccessor.getDataHandler(blobcid);

+        if (dh == null) {

+            dh = context.getDataHandlerForSwA(blobcid);

+        }

+        if (dh != null) {

+            JAXBAttachmentUnmarshallerMonitor.addBlobCID(blobcid);

+        }

+        return dh;

     }

 }

diff --git a/modules/jaxws/src/org/apache/axis2/datasource/jaxb/JAXBCustomBuilder.java b/modules/jaxws/src/org/apache/axis2/datasource/jaxb/JAXBCustomBuilder.java
index cc4ded3..71ea9e7 100644
--- a/modules/jaxws/src/org/apache/axis2/datasource/jaxb/JAXBCustomBuilder.java
+++ b/modules/jaxws/src/org/apache/axis2/datasource/jaxb/JAXBCustomBuilder.java
@@ -21,27 +21,22 @@
 

 import org.apache.axiom.om.OMContainer;

 import org.apache.axiom.om.OMDataSource;

+import org.apache.axiom.om.OMDocument;

 import org.apache.axiom.om.OMElement;

 import org.apache.axiom.om.OMException;

-import org.apache.axiom.om.OMFactory;

-import org.apache.axiom.om.OMNamespace;

-import org.apache.axiom.om.OMSourcedElement;

-import org.apache.axiom.om.impl.builder.CustomBuilder;

-import org.apache.axis2.context.MessageContext;

-import org.apache.axis2.jaxws.Constants;

+import org.apache.axiom.om.ds.custombuilder.CustomBuilder;

+import org.apache.axiom.soap.SOAPBody;

 import org.apache.axis2.jaxws.handler.HandlerUtils;

 import org.apache.commons.logging.Log;

 import org.apache.commons.logging.LogFactory;

 

 import javax.xml.bind.JAXBException;

-import javax.xml.soap.SOAPConstants;

-import javax.xml.stream.XMLStreamReader;

 

 /**

  * JAXBCustomBuilder creates an OMSourcedElement backed by a JAXBDataSource

  * for the specified namespace and localPart.

  */

-public class JAXBCustomBuilder implements CustomBuilder {

+public class JAXBCustomBuilder implements CustomBuilder, CustomBuilder.Selector {

 

     private static final Log log = LogFactory.getLog(JAXBCustomBuilder.class);

     

@@ -57,33 +52,17 @@
         JAXBCustomBuilderMonitor.updateTotalBuilders();

     }

 

-

-    public OMElement create(String namespace, 

-                            String localPart, 

-                            OMContainer parent,

-                            XMLStreamReader reader, 

-                            OMFactory factory) throws OMException {

-        

-        if (log.isDebugEnabled()) {

-            log.debug("create namespace = " + namespace);

-            log.debug("  localPart = " + localPart);

-            log.debug("  reader = " + reader.getClass());

-        }

-        

-        // There are some situations where we want to use normal

-        // unmarshalling, so return null

-        if (!shouldUnmarshal(namespace, localPart)) {

-            JAXBCustomBuilderMonitor.updateTotalFailedCreates();

-            return null;

-        }

+    @Override

+    public OMDataSource create(OMElement element) throws OMException {

         try {

+            if (log.isDebugEnabled()) {

+                log.debug("create namespace = " + element.getNamespaceURI());

+                log.debug("  localPart = " + element.getLocalName());

+            }

+        

             // Create an OMSourcedElement backed by an unmarshalled JAXB object

             

-            // Currently we cannot control how the unmarshaller will emit the prefix

-            // So if the value of the prefix is needed, full expansion is necessary.

-            OMNamespace ns = factory.createOMNamespace(namespace, null);

-            

-            Object jaxb = jdsContext.unmarshal(reader);

+            Object jaxb = jdsContext.unmarshal(element);

             if (log.isDebugEnabled()) {

                 log.debug("Successfully unmarshalled jaxb object " + jaxb);

             }

@@ -92,48 +71,31 @@
             if (log.isDebugEnabled()) {

                 log.debug("The JAXBDataSource is " + ds);

             }

-            OMSourcedElement omse = factory.createOMElement(ds, localPart, ns);

-            

-            parent.addChild(omse);

             JAXBCustomBuilderMonitor.updateTotalCreates();

-            return omse;

+            return ds;

         } catch (JAXBException e) {

             JAXBCustomBuilderMonitor.updateTotalFailedCreates();

             throw new OMException(e);

         }

     }

     

-    /**

-     * @param namespace

-     * @param localPart

-     * @return true if this ns and local part is acceptable for unmarshalling

-     */

-    private boolean shouldUnmarshal(String namespace, String localPart) {

-        boolean isHighFidelity = HandlerUtils.isHighFidelity(jdsContext.getMessageContext());

-

-        if (isHighFidelity) {

-            if (log.isDebugEnabled()) {

+    @Override

+    public boolean accepts(OMContainer parent, int depth, String namespaceURI, String localName) {

+        if (parent instanceof OMDocument || parent instanceof SOAPBody) {

+            boolean shouldUnmarshal;

+            if (HandlerUtils.isHighFidelity(jdsContext.getMessageContext())) {

                 log.debug("JAXB payload streaming disabled because high fidelity messages are requested.");

+                shouldUnmarshal = false;

+            } else {

+                // Don't unmarshal if this looks like encrypted data

+                shouldUnmarshal = !localName.equals("EncryptedData");

             }

-            return false;

-

-        }

-        

-        // Don't unmarshall SOAPFaults or anything else in the SOAP 

-        // namespace.

-        // Don't unmarshall elements that are unqualified

-        if (localPart == null || namespace == null || namespace.length() == 0 ||

-            SOAPConstants.URI_NS_SOAP_1_1_ENVELOPE.equals(namespace) ||

-            SOAPConstants.URI_NS_SOAP_1_2_ENVELOPE.equals(namespace)) {

+            if (!shouldUnmarshal) {

+                JAXBCustomBuilderMonitor.updateTotalFailedCreates();

+            }

+            return shouldUnmarshal;

+        } else {

             return false;

         }

-       

-        // Don't unmarshal if this looks like encrypted data

-        if (localPart.equals("EncryptedData")) {

-            return false;

-        }

-        

-        return true;

-                

     }

 }

diff --git a/modules/jaxws/src/org/apache/axis2/datasource/jaxb/JAXBDSContext.java b/modules/jaxws/src/org/apache/axis2/datasource/jaxb/JAXBDSContext.java
index 542f3b5..5faa061 100644
--- a/modules/jaxws/src/org/apache/axis2/datasource/jaxb/JAXBDSContext.java
+++ b/modules/jaxws/src/org/apache/axis2/datasource/jaxb/JAXBDSContext.java
@@ -19,13 +19,10 @@
 

 package org.apache.axis2.datasource.jaxb;

 

+import org.apache.axiom.om.OMElement;

 import org.apache.axiom.om.OMException;

+import org.apache.axiom.om.XOPEncoded;

 import org.apache.axiom.om.impl.MTOMXMLStreamWriter;

-import org.apache.axiom.om.util.XMLStreamWriterRemoveIllegalChars;

-import org.apache.axiom.util.stax.XMLStreamReaderUtils;

-import org.apache.axiom.util.stax.xop.MimePartProvider;

-import org.apache.axiom.util.stax.xop.XOPEncodedStream;

-import org.apache.axiom.util.stax.xop.XOPUtils;

 import org.apache.axis2.context.MessageContext;

 import org.apache.axis2.java.security.AccessController;

 import org.apache.axis2.jaxws.context.utils.ContextUtils;

@@ -59,7 +56,6 @@
 import java.io.OutputStream;

 import java.lang.ref.WeakReference;

 import java.lang.reflect.InvocationTargetException;

-import java.lang.reflect.Method;

 import java.security.PrivilegedAction;

 import java.text.ParseException;

 import java.util.HashMap;

@@ -96,7 +92,7 @@
     //              Doc/Lit Bare "Minimal" Processing (JAXB ObjectFactories are missing...

     //                   and thus we must use "by type" for primitives/String)

     // Please don't use "by java type" processing to get around errors.

-    private Class processType = null;

+    private Class<?> processType = null;

     private boolean isxmlList =false;

     

     private String webServiceNamespace;

@@ -127,7 +123,7 @@
      * @deprecated

      */

     public JAXBDSContext(String contextPackage) {

-        this.contextPackages = new TreeSet();

+        this.contextPackages = new TreeSet<String>();

         this.contextPackages.add(contextPackage);

         this.contextPackagesKey = this.contextPackages.toString();

     }

@@ -234,7 +230,7 @@
     }

     

     /** @return RPC Declared Type */

-    public Class getProcessType() {

+    public Class<?> getProcessType() {

         return processType;

     }

 

@@ -246,7 +242,7 @@
      *

      * @param type

      */

-    public void setProcessType(Class type) {

+    public void setProcessType(Class<?> type) {

     	if (log.isDebugEnabled()) {

      		log.debug("Process Type set to: " + type);

      	}

@@ -287,43 +283,21 @@
         return null;

     }

     

-    /**

-     * Create an AttachmentMarshaller to marshal MTOM/SWA Attachments

-     * @param writer

-     * @return

-     */

-    protected AttachmentMarshaller createAttachmentMarshaller(XMLStreamWriter writer) {

-        return new JAXBAttachmentMarshaller(getMessageContext(), writer);

-    }

-    

-    /**

-     * Create an Attachment unmarshaller for unmarshalling MTOM/SWA Attachments

-     * @return AttachmentUnmarshaller

-     */

-    protected AttachmentUnmarshaller createAttachmentUnmarshaller(MimePartProvider mimePartProvider) {

-        return new JAXBAttachmentUnmarshaller(mimePartProvider, getMessageContext());

+    protected AttachmentContext createAttachmentContext() {

+        return new MessageContextAttachmentContext(getMessageContext());

     }

 

     /**

      * Unmarshal the xml into a JAXB object

-     * @param inputReader

+     * @param element

      * @return

      * @throws JAXBException

      */

-    public Object unmarshal(XMLStreamReader inputReader) throws JAXBException {

+    public Object unmarshal(OMElement element) throws JAXBException {

 

-        if (DEBUG_ENABLED) {

-            String clsText = (inputReader !=null) ? inputReader.getClass().toString() : "null";

-            log.debug("unmarshal with inputReader=" + clsText);

-        } 

         // See the Javadoc of the CustomBuilder interface for a complete explanation of

         // the following two instructions:

-        XOPEncodedStream xopEncodedStream = XOPUtils.getXOPEncodedStream(inputReader);

-        XMLStreamReader reader = XMLStreamReaderUtils.getOriginalXMLStreamReader(xopEncodedStream.getReader());

-        if (DEBUG_ENABLED) {

-            String clsText = (reader !=null) ? reader.getClass().toString() : "null";

-            log.debug("  originalReader=" + clsText);

-        } 

+        XOPEncoded<XMLStreamReader> xopEncodedStream = element.getXOPEncodedStreamReader(false);

         

         // There may be a preferred classloader that should be used

         ClassLoader cl = getClassLoader();

@@ -332,7 +306,7 @@
 

         

         // Create an attachment unmarshaller

-        AttachmentUnmarshaller aum = createAttachmentUnmarshaller(xopEncodedStream.getMimePartProvider());

+        AttachmentUnmarshaller aum = new JAXBAttachmentUnmarshaller(createAttachmentContext(), xopEncodedStream.getAttachmentAccessor());

 

         if (aum != null) {

             if (DEBUG_ENABLED) {

@@ -344,6 +318,7 @@
         Object jaxb = null;

 

         // Unmarshal into the business object.

+        XMLStreamReader reader = xopEncodedStream.getRootPart();

         if (getProcessType() == null) {

             jaxb = unmarshalByElement(u, reader);   // preferred and always used for

                                                     // style=document

@@ -375,90 +350,83 @@
         if (log.isDebugEnabled()) {

             log.debug("enter marshal");

         }

-        boolean installedFilter = false;

 

-        try {

-            // There may be a preferred classloader that should be used

-            ClassLoader cl = getClassLoader();

+        // There may be a preferred classloader that should be used

+        ClassLoader cl = getClassLoader();

 

 

-            // Very easy, use the Context to get the Marshaller.

-            // Use the marshaller to write the object.

-            JAXBContext jbc = getJAXBContext(cl);

-            Marshaller m = JAXBUtils.getJAXBMarshaller(jbc);

-            if (writer instanceof MTOMXMLStreamWriter && ((MTOMXMLStreamWriter) writer).getOutputFormat() != null) {

-                String encoding = ((MTOMXMLStreamWriter) writer).getOutputFormat().getCharSetEncoding();

+        // Very easy, use the Context to get the Marshaller.

+        // Use the marshaller to write the object.

+        JAXBContext jbc = getJAXBContext(cl);

+        Marshaller m = JAXBUtils.getJAXBMarshaller(jbc);

+        if (writer instanceof MTOMXMLStreamWriter && ((MTOMXMLStreamWriter) writer).getOutputFormat() != null) {

+            String encoding = ((MTOMXMLStreamWriter) writer).getOutputFormat().getCharSetEncoding();

 

-                String marshallerEncoding = (String) m.getProperty(Marshaller.JAXB_ENCODING);

+            String marshallerEncoding = (String) m.getProperty(Marshaller.JAXB_ENCODING);

 

-                // Make sure that the marshaller respects the encoding of the message.

-                // This is accomplished by setting the encoding on the Marshaller's JAXB_ENCODING property.

-                if (encoding == null && marshallerEncoding == null) {

-                    if (log.isDebugEnabled()) {

-                        log.debug("The encoding and the marshaller's JAXB_ENCODING are both set to the default (UTF-8)");

-                    }

-                } else {

-                    // Must set the encoding to an actual String to set it on the Marshaller

-                    if (encoding == null) {

-                        encoding = "UTF-8";

-                    }

-                    if (!encoding.equalsIgnoreCase(marshallerEncoding)) {

-                        if (log.isDebugEnabled()) {

-                            log.debug("The Marshaller.JAXB_ENCODING is " + marshallerEncoding);

-                            log.debug("The Marshaller.JAXB_ENCODING is changed to the message encoding " + 

-                                    encoding);

-                        }

-                        m.setProperty(Marshaller.JAXB_ENCODING, encoding);

-                    } else {

-                        if (log.isDebugEnabled()) {

-                            log.debug("The encoding and the marshaller's JAXB_ENCODING are both set to:" + 

-                                    marshallerEncoding);

-                        }

-                    }

+            // Make sure that the marshaller respects the encoding of the message.

+            // This is accomplished by setting the encoding on the Marshaller's JAXB_ENCODING property.

+            if (encoding == null && marshallerEncoding == null) {

+                if (log.isDebugEnabled()) {

+                    log.debug("The encoding and the marshaller's JAXB_ENCODING are both set to the default (UTF-8)");

                 }

-            }

-

-            AttachmentMarshaller am = createAttachmentMarshaller(writer);

-            if (am != null) {

-                if (DEBUG_ENABLED) {

-                    log.debug("Adding JAXBAttachmentMarshaller to Marshaller");

-                }

-                m.setAttachmentMarshaller(am);

-            }

-

-            MessageContext mc = getMessageContext();

-

-            // If requested install a filter to remove illegal characters

-            installedFilter = installFilter(mc, writer);

-

-

-            // Marshal the object

-            if (getProcessType() == null) {

-                marshalByElement(obj, 

-                        m, 

-                        writer, 

-                        true);

-                //!am.isXOPPackage());

             } else {

-                marshalByType(obj,

-                        m,

-                        writer,

-                        getProcessType(),

-                        isxmlList(),

-                        getConstructionType(),

-                        true); // Attempt to optimize by writing to OutputStream

+                // Must set the encoding to an actual String to set it on the Marshaller

+                if (encoding == null) {

+                    encoding = "UTF-8";

+                }

+                if (!encoding.equalsIgnoreCase(marshallerEncoding)) {

+                    if (log.isDebugEnabled()) {

+                        log.debug("The Marshaller.JAXB_ENCODING is " + marshallerEncoding);

+                        log.debug("The Marshaller.JAXB_ENCODING is changed to the message encoding " + 

+                                encoding);

+                    }

+                    m.setProperty(Marshaller.JAXB_ENCODING, encoding);

+                } else {

+                    if (log.isDebugEnabled()) {

+                        log.debug("The encoding and the marshaller's JAXB_ENCODING are both set to:" + 

+                                marshallerEncoding);

+                    }

+                }

             }

+        }

 

-            JAXBUtils.releaseJAXBMarshaller(jbc, m);

+        AttachmentMarshaller am = new JAXBAttachmentMarshaller(createAttachmentContext(), writer);

+        if (am != null) {

+            if (DEBUG_ENABLED) {

+                log.debug("Adding JAXBAttachmentMarshaller to Marshaller");

+            }

+            m.setAttachmentMarshaller(am);

+        }

 

-            if (log.isDebugEnabled()) {

-                log.debug("exit marshal");

-            }

-        } finally {

-            // Make sure the filter is uninstalled

-            if (installedFilter) {

-                uninstallFilter(writer);

-            }

+        MessageContext mc = getMessageContext();

+

+        // If requested install a filter to remove illegal characters

+        if (writer instanceof MTOMXMLStreamWriter && ContextUtils.isJAXBRemoveIllegalChars(mc)) {

+            writer = new XMLStreamWriterRemoveIllegalChars((MTOMXMLStreamWriter)writer);

+        }

+

+        // Marshal the object

+        if (getProcessType() == null) {

+            marshalByElement(obj, 

+                    m, 

+                    writer, 

+                    true);

+            //!am.isXOPPackage());

+        } else {

+            marshalByType(obj,

+                    m,

+                    writer,

+                    getProcessType(),

+                    isxmlList(),

+                    getConstructionType(),

+                    true); // Attempt to optimize by writing to OutputStream

+        }

+

+        JAXBUtils.releaseJAXBMarshaller(jbc, m);

+

+        if (log.isDebugEnabled()) {

+            log.debug("exit marshal");

         }

     }

     

@@ -474,8 +442,8 @@
     private static void marshalByElement(final Object b, final Marshaller m, 

                                          final XMLStreamWriter writer,

                                          final boolean optimize) {

-        AccessController.doPrivileged(new PrivilegedAction() {

-            public Object run() {

+        AccessController.doPrivileged(new PrivilegedAction<Void>() {

+            public Void run() {

                 // Marshalling directly to the output stream is faster than marshalling through the

                 // XMLStreamWriter. 

                 // Take advantage of this optimization if there is an output stream.

@@ -517,7 +485,7 @@
     private static String getDebugName(Object o) {

         String name = (o == null) ? "null" : o.getClass().getCanonicalName();

         if (o instanceof JAXBElement) {

-            name += " containing " + getDebugName(((JAXBElement) o).getValue());

+            name += " containing " + getDebugName(((JAXBElement<?>) o).getValue());

         }

         return name;

     }

@@ -534,13 +502,13 @@
             log.debug("XMLStreamWriter is " + writer);

         }

         OutputStream os = null;

-        if (writer.getClass() == MTOMXMLStreamWriter.class) {

+        if (writer instanceof MTOMXMLStreamWriter) {

             os = ((MTOMXMLStreamWriter) writer).getOutputStream();

             if (log.isDebugEnabled()) {

                 log.debug("OutputStream accessible from MTOMXMLStreamWriter is " + os);

             }

         }

-        if (writer.getClass() == XMLStreamWriterWithOS.class) {

+        if (writer instanceof XMLStreamWriterWithOS) {

             os = ((XMLStreamWriterWithOS) writer).getOutputStream();

             if (log.isDebugEnabled()) {

                 log.debug("OutputStream accessible from XMLStreamWriterWithOS is " + os);

@@ -578,7 +546,7 @@
      * @throws WebServiceException

      */

     public static Object unmarshalByType(final Unmarshaller u, final XMLStreamReader reader,

-                                          final Class type, final boolean isList,

+                                          final Class<?> type, final boolean isList,

                                           final JAXBUtils.CONSTRUCTION_TYPE ctype)

         throws WebServiceException {

 

@@ -589,7 +557,7 @@
             log.debug("  ctype = "+ ctype);

         }

 

-        return AccessController.doPrivileged(new PrivilegedAction() {

+        return AccessController.doPrivileged(new PrivilegedAction<Object>() {

             public Object run() {

                 try {

                     // Unfortunately RPC is type based. Thus a

@@ -618,7 +586,7 @@
                             	//process primitives first

                             	//first verify if we have a primitive type associated in the array.

                             	//array could be single dimension or multi dimension.

-                            	Class cType = type.getComponentType();

+                            	Class<?> cType = type.getComponentType();

                             	while(cType.isArray()){

                             		cType = cType.getComponentType();

                             	}

@@ -700,14 +668,13 @@
                         

                     }

                     if (log.isDebugEnabled()) {

-                        Class cls;

                         if (jaxb == null) {

                             if (DEBUG_ENABLED) {

                                 log.debug("End unmarshalByType returning null object");

                             }

 

                         } else if (jaxb instanceof JAXBElement) {

-                            JAXBElement jbe = (JAXBElement) jaxb;

+                            JAXBElement<?> jbe = (JAXBElement<?>) jaxb;

                             if (DEBUG_ENABLED) {

                                 log.debug("End unmarshalByType returning JAXBElement");

                                 log.debug("  Class = " + jbe.getDeclaredType());

@@ -731,13 +698,13 @@
 

     private static Object unmarshalArray(final XMLStreamReader reader, 

                                          final Unmarshaller u, 

-                                         Class type)

+                                         Class<?> type)

        throws Exception {

         try {

             if (DEBUG_ENABLED) {

                 log.debug("Invoking unmarshalArray");

             }

-            Object jaxb = AccessController.doPrivileged(new PrivilegedAction() {

+            Object jaxb = AccessController.doPrivileged(new PrivilegedAction<Object>() {

                 public Object run() {

                     try {

                         return u.unmarshal(reader, String[].class);

@@ -783,7 +750,7 @@
      */

     public static Object unmarshalAsListOrArray(final XMLStreamReader reader, 

                                                 final Unmarshaller u, 

-                                                 Class type)

+                                                 Class<?> type)

         throws IllegalAccessException, ParseException,NoSuchMethodException,

         InstantiationException,

         DatatypeConfigurationException,InvocationTargetException,JAXBException {

@@ -798,7 +765,7 @@
             // First unmarshal as a String

             Object jaxb = null;

             try {

-                jaxb = AccessController.doPrivileged(new PrivilegedAction() {

+                jaxb = AccessController.doPrivileged(new PrivilegedAction<Object>() {

                     public Object run() {

                         try {

                             return u.unmarshal(reader, String.class);

@@ -836,14 +803,14 @@
             return null;

         }

         if (obj instanceof JAXBElement) {

-            return ((JAXBElement) obj).getValue();

+            return ((JAXBElement<?>) obj).getValue();

         }

         return obj;

     }

 

     private static boolean isOccurrenceArray(Object obj) {

         return (obj instanceof JAXBElement) &&

-            (((JAXBElement)obj).getValue() instanceof OccurrenceArray);

+            (((JAXBElement<?>)obj).getValue() instanceof OccurrenceArray);

                 

     }

     /**

@@ -860,7 +827,7 @@
      * outputstream should be attempted.

      */

     private void marshalByType(final Object b, final Marshaller m,

-                                      final XMLStreamWriter writer, final Class type,

+                                      final XMLStreamWriter writer, final Class<?> type,

                                       final boolean isList, 

                                       final JAXBUtils.CONSTRUCTION_TYPE ctype,

                                       final boolean optimize) 

@@ -876,11 +843,11 @@
                         

         }

         if (isOccurrenceArray(b)) {

-            marshalOccurrenceArray((JAXBElement) b, m, writer);

+            marshalOccurrenceArray((JAXBElement<?>) b, m, writer);

             return;

         }

-        AccessController.doPrivileged(new PrivilegedAction() {

-            public Object run() {

+        AccessController.doPrivileged(new PrivilegedAction<Void>() {

+            public Void run() {

                 try {

 

                     // NOTE

@@ -928,7 +895,7 @@
                                 log.debug("marshalling [context path approach] " +

                                                 "with xmllist text = " + text);

                             }

-                            jbo = new JAXBElement(qName, String.class, text);

+                            jbo = new JAXBElement<String>(qName, String.class, text);

                         } else if (ctype == JAXBUtils.CONSTRUCTION_TYPE.BY_CLASS_ARRAY) {

                             // Some versions of JAXB have array/list processing built in.

                             // This code is a safeguard because apparently some versions

@@ -939,7 +906,7 @@
                                 log.debug("marshalling [class array approach] " +

                                                 "with xmllist text = " + text);

                             }

-                            jbo = new JAXBElement(qName, String.class, text); 

+                            jbo = new JAXBElement<String>(qName, String.class, text); 

                         }

                     }

                     // When JAXBContext is created using a context path, it will not include Enum

@@ -963,10 +930,10 @@
                                 log.debug("marshalByType. Marshaling " + type.getName()

                                         + " as Enum");

                             }

-                            JAXBElement jbe = (JAXBElement) b;

-                            String value = XMLRootElementUtil.getEnumValue((Enum) jbe.getValue());

+                            JAXBElement<?> jbe = (JAXBElement<?>) b;

+                            String value = XMLRootElementUtil.getEnumValue((Enum<?>) jbe.getValue());

 

-                            jbo = new JAXBElement(jbe.getName(), String.class, value);

+                            jbo = new JAXBElement<String>(jbe.getName(), String.class, value);

                         }

                     }

 

@@ -1008,7 +975,7 @@
      * @param writer_in XMLStreamWriter

      */

     private void marshalOccurrenceArray(

-                final JAXBElement jbe_in, 

+                final JAXBElement<?> jbe_in, 

                 final Marshaller m_in,

                 final XMLStreamWriter writer_in) {

         

@@ -1017,8 +984,8 @@
             log.debug("  Marshaller = " + JavaUtils.getObjectIdentity(m_in));

         }

         

-        AccessController.doPrivileged(new PrivilegedAction() {

-            public Object run() {

+        AccessController.doPrivileged(new PrivilegedAction<Void>() {

+            public Void run() {

                 try {

                     

                     Marshaller m = m_in;

@@ -1044,7 +1011,7 @@
                     // The name is the name of the individual occurence elements

                     // Type type is Object[]

                     // The value is the array of Object[] representing each element

-                    JAXBElement jbe = new JAXBElement(jbe_in.getName(), 

+                    JAXBElement<Object[]> jbe = new JAXBElement<Object[]>(jbe_in.getName(), 

                             Object[].class, 

                             occurArray.getAsArray());

 

@@ -1091,7 +1058,7 @@
             if (DEBUG_ENABLED) {

                 log.debug("Invoking unMarshalByElement");

             }

-            return AccessController.doPrivileged(new PrivilegedAction() {

+            return AccessController.doPrivileged(new PrivilegedAction<Object>() {

                 public Object run() {

                     try {

                         return u.unmarshal(reader);

@@ -1109,37 +1076,4 @@
             throw new OMException(t);

         }

     }

-    

-

-    /**

-     * Install a JAXB filter if requested

-     * @param mc

-     * @param writer

-     * @return true if filter installed

-     */

-    private boolean installFilter(MessageContext mc, XMLStreamWriter writer) {

-        if (!(writer instanceof MTOMXMLStreamWriter)) {

-            return false;

-        }

-        if (!ContextUtils.isJAXBRemoveIllegalChars(mc)) {

-            return false;

-        }

-        

-         

-        MTOMXMLStreamWriter mtomWriter = (MTOMXMLStreamWriter) writer;

-        mtomWriter.setFilter(new XMLStreamWriterRemoveIllegalChars());

-        return true;

-    }

-    

-    /**

-     * UninstallInstall a JAXB filter if requested

-     * @param mc

-     * @param writer

-     * @return true if filter installed

-     */

-    private void uninstallFilter(XMLStreamWriter writer) {

-        MTOMXMLStreamWriter mtomWriter = (MTOMXMLStreamWriter) writer;

-        mtomWriter.removeFilter();

-    }

-

 }

diff --git a/modules/jaxws/src/org/apache/axis2/datasource/jaxb/JAXBDataSource.java b/modules/jaxws/src/org/apache/axis2/datasource/jaxb/JAXBDataSource.java
index a9e5240..d848f3a 100644
--- a/modules/jaxws/src/org/apache/axis2/datasource/jaxb/JAXBDataSource.java
+++ b/modules/jaxws/src/org/apache/axis2/datasource/jaxb/JAXBDataSource.java
@@ -21,45 +21,29 @@
 

 

 import org.apache.axiom.om.OMDataSourceExt;

-import org.apache.axiom.om.OMException;

-import org.apache.axiom.om.OMOutputFormat;

-import org.apache.axiom.om.ds.OMDataSourceExtBase;

-import org.apache.axiom.om.impl.MTOMXMLStreamWriter;

-import org.apache.axiom.om.util.StAXUtils;

-import org.apache.axis2.jaxws.message.util.XMLStreamWriterWithOS;

+import org.apache.axiom.om.ds.AbstractPushOMDataSource;

 import org.apache.commons.logging.Log;

 import org.apache.commons.logging.LogFactory;

 

 import javax.xml.bind.JAXBException;

 import javax.xml.stream.XMLStreamException;

-import javax.xml.stream.XMLStreamReader;

 import javax.xml.stream.XMLStreamWriter;

-import java.io.ByteArrayInputStream;

-import java.io.ByteArrayOutputStream;

-import java.io.InputStream;

-import java.io.OutputStream;

-import java.io.UnsupportedEncodingException;

-import java.io.Writer;

 

 /**

  * OMDataSource backed by a jaxb object

  */

-public class JAXBDataSource extends OMDataSourceExtBase {

+public class JAXBDataSource extends AbstractPushOMDataSource {

     

     private static final Log log = LogFactory.getLog(JAXBDataSource.class);

     

-    Object jaxb;

-    JAXBDSContext context;

+    private final Object jaxb;

+    private final JAXBDSContext context;

 

     public JAXBDataSource(Object jaxb, JAXBDSContext context) {

-        super();

         this.jaxb = jaxb;

         this.context = context;

     }

 

-    public void close() {

-    }

-

     public OMDataSourceExt copy() {

         return new JAXBDataSource(jaxb, context);

     }

@@ -72,42 +56,6 @@
         return context;

     }

 

-    public XMLStreamReader getReader() throws XMLStreamException {

-

-        try {

-            String encoding = "utf-8";

-            InputStream is = new ByteArrayInputStream(getXMLBytes(encoding));

-            return StAXUtils.createXMLStreamReader(is, encoding);

-        } catch (UnsupportedEncodingException e) {

-            throw new XMLStreamException(e);

-        }

-    }

-

-    public void serialize(OutputStream output, OMOutputFormat format) throws XMLStreamException {

-        MTOMXMLStreamWriter writer = new MTOMXMLStreamWriter(output, format);

-        serialize(writer);

-        writer.flush();

-        try {

-            writer.close();

-        } catch (XMLStreamException e) {

-            // An exception can occur if nothing is written to the 

-            // writer.  This is possible if the underlying data source

-            // writers to the output stream directly.

-            if (log.isDebugEnabled()) {

-                log.debug("Catching and swallowing exception " + e);

-            }

-        }

-    }

-

-    public void serialize(Writer writerTarget, OMOutputFormat format) throws XMLStreamException {

-        MTOMXMLStreamWriter writer =

-            new MTOMXMLStreamWriter(StAXUtils.createXMLStreamWriter(writerTarget));

-        writer.setOutputFormat(format);

-        serialize(writer);

-        writer.flush();

-        writer.close();

-    }

-

     public void serialize(XMLStreamWriter xmlWriter) throws XMLStreamException {

         try {

             context.marshal(jaxb, xmlWriter);

@@ -122,32 +70,8 @@
             throw new XMLStreamException(je);

         }

     }

-    

-    public byte[] getXMLBytes(String encoding) throws UnsupportedEncodingException {

-        try {

-            ByteArrayOutputStream baos = new ByteArrayOutputStream();

-

-            // Exposes getOutputStream, which allows faster writes.

-            XMLStreamWriterWithOS writer = new XMLStreamWriterWithOS(baos, encoding);

-

-            // Write the business object to the writer

-            serialize(writer);

-

-            // Flush the writer

-            writer.flush();

-            writer.close();

-            return baos.toByteArray();

-        } catch (XMLStreamException e) {

-            throw new OMException(e);

-        }

-    }

-

-    public boolean isDestructiveRead() {

-        return false;

-    }

 

     public boolean isDestructiveWrite() {

         return false;

     }

-    

 }

diff --git a/modules/jaxws/src/org/apache/axis2/datasource/jaxb/MessageContextAttachmentContext.java b/modules/jaxws/src/org/apache/axis2/datasource/jaxb/MessageContextAttachmentContext.java
new file mode 100644
index 0000000..f75e051
--- /dev/null
+++ b/modules/jaxws/src/org/apache/axis2/datasource/jaxb/MessageContextAttachmentContext.java
@@ -0,0 +1,79 @@
+/*

+ * Licensed to the Apache Software Foundation (ASF) under one

+ * or more contributor license agreements. See the NOTICE file

+ * distributed with this work for additional information

+ * regarding copyright ownership. The ASF licenses this file

+ * to you under the Apache License, Version 2.0 (the

+ * "License"); you may not use this file except in compliance

+ * with the License. You may obtain a copy of the License at

+ *

+ * http://www.apache.org/licenses/LICENSE-2.0

+ *

+ * Unless required by applicable law or agreed to in writing,

+ * software distributed under the License is distributed on an

+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+ * KIND, either express or implied. See the License for the

+ * specific language governing permissions and limitations

+ * under the License.

+ */

+

+package org.apache.axis2.datasource.jaxb;

+

+import org.apache.axis2.Constants.Configuration;

+import org.apache.axis2.context.MessageContext;

+import org.apache.commons.logging.Log;

+import org.apache.commons.logging.LogFactory;

+

+import javax.activation.DataHandler;

+import javax.xml.stream.XMLStreamWriter;

+

+/**

+ * An implementation of the JAXB AttachmentMarshaller that is used to handle binary data from JAXB

+ * and create populate the appropriate constructs on the MessageContext

+ */

+public final class MessageContextAttachmentContext implements AttachmentContext {

+

+    private static final Log log = LogFactory.getLog(MessageContextAttachmentContext.class);

+

+    private final MessageContext msgContext;

+    

+    public MessageContextAttachmentContext(MessageContext msgContext) {

+        this.msgContext = msgContext;

+    }

+

+    public MessageContext getMessageContext() {

+        return msgContext;

+    }

+

+    public boolean isMTOMEnabled() {

+        if (msgContext == null) {

+            return false;

+        } else {

+            String value = (String) msgContext.getProperty(Configuration.ENABLE_MTOM);

+            return ("true".equalsIgnoreCase(value));

+        }  

+    }

+    

+    public void setDoingSWA() {

+        if (msgContext != null) {

+            msgContext.setDoingSwA(true);

+            msgContext.setProperty(Configuration.ENABLE_SWA, "true");

+        }

+    }

+    

+    public void addDataHandler(DataHandler dh, String cid) {

+        if (msgContext != null) {

+            msgContext.addAttachment(cid, dh);

+        } else {

+            if (log.isDebugEnabled()) {

+                log.debug("The msgContext is null.  The attachment is not stored");

+                log.debug("   content id=" + cid);

+                log.debug("   dataHandler  =" + dh);

+            }

+        }

+    }

+

+    public DataHandler getDataHandlerForSwA(String blobcid) {

+        return msgContext.getAttachment(blobcid);

+    }

+}

diff --git a/modules/jaxws/src/org/apache/axis2/datasource/jaxb/XMLStreamWriterFilterBase.java b/modules/jaxws/src/org/apache/axis2/datasource/jaxb/XMLStreamWriterFilterBase.java
new file mode 100644
index 0000000..60c60e9
--- /dev/null
+++ b/modules/jaxws/src/org/apache/axis2/datasource/jaxb/XMLStreamWriterFilterBase.java
@@ -0,0 +1,256 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.axis2.datasource.jaxb;
+
+import java.io.OutputStream;
+
+import javax.activation.DataHandler;
+import javax.xml.namespace.NamespaceContext;
+import javax.xml.stream.XMLStreamException;
+
+import org.apache.axiom.om.OMOutputFormat;
+import org.apache.axiom.om.impl.MTOMXMLStreamWriter;
+
+/**
+ * The base class for classes that are MTOMXMLStreamWriter filters.
+ * Each of the XMLStreamWriter events is intercepted and passed to the delegate XMLStreamWriter
+ * 
+ * Character data is sent to the xmlData abstract method.  Derived classes may 
+ * log or change the xml data.
+ * 
+ * @see XMLStreamWriterRemoveIllegalChars
+ */
+public abstract class XMLStreamWriterFilterBase extends MTOMXMLStreamWriter {
+
+    private final MTOMXMLStreamWriter delegate;
+
+    public XMLStreamWriterFilterBase(MTOMXMLStreamWriter delegate) {
+        this.delegate = delegate;
+    }
+
+    @Override
+    public void close() throws XMLStreamException {
+        delegate.close();
+    }
+
+    @Override
+    public void flush() throws XMLStreamException {
+        delegate.flush();
+    }
+
+    @Override
+    public NamespaceContext getNamespaceContext() {
+        return delegate.getNamespaceContext();
+    }
+
+    @Override
+    public String getPrefix(String uri) throws XMLStreamException {
+        return delegate.getPrefix(uri);
+    }
+
+    @Override
+    public Object getProperty(String name) throws IllegalArgumentException {
+        return delegate.getProperty(name);
+    }
+
+    @Override
+    public void setDefaultNamespace(String uri) throws XMLStreamException {
+        delegate.setDefaultNamespace(uri);
+    }
+
+    @Override
+    public void setNamespaceContext(NamespaceContext context)
+            throws XMLStreamException {
+        delegate.setNamespaceContext(context);
+    }
+
+    @Override
+    public void setPrefix(String prefix, String uri) throws XMLStreamException {
+        delegate.setPrefix(prefix, uri);
+    }
+
+    @Override
+    public void writeAttribute(String prefix, String namespaceURI,
+            String localName, String value) throws XMLStreamException {
+        delegate.writeAttribute(prefix, namespaceURI, localName, xmlData(value));
+    }
+
+    @Override
+    public void writeAttribute(String namespaceURI, String localName,
+            String value) throws XMLStreamException {
+        delegate.writeAttribute(namespaceURI, localName, xmlData(value));
+    }
+
+    @Override
+    public void writeAttribute(String localName, String value)
+            throws XMLStreamException {
+        delegate.writeAttribute(localName, xmlData(value));
+    }
+
+    @Override
+    public void writeCData(String data) throws XMLStreamException {
+        delegate.writeCData(xmlData(data));
+    }
+
+    @Override
+    public void writeCharacters(char[] text, int start, int len)
+            throws XMLStreamException {
+        // Adapt to writeCharacters that takes a String value
+        String value = new String(text, start, len);
+        writeCharacters(value);
+    }
+
+    @Override
+    public void writeCharacters(String text) throws XMLStreamException {
+        delegate.writeCharacters(xmlData(text));
+    }
+
+    @Override
+    public void writeComment(String data) throws XMLStreamException {
+        delegate.writeComment(data);
+    }
+
+    @Override
+    public void writeDTD(String dtd) throws XMLStreamException {
+        delegate.writeDTD(dtd);
+    }
+
+    @Override
+    public void writeDefaultNamespace(String namespaceURI)
+            throws XMLStreamException {
+        delegate.writeDefaultNamespace(namespaceURI);
+    }
+
+    @Override
+    public void writeEmptyElement(String prefix, String localName,
+            String namespaceURI) throws XMLStreamException {
+        delegate.writeEmptyElement(prefix, localName, namespaceURI);
+    }
+
+    @Override
+    public void writeEmptyElement(String namespaceURI, String localName)
+            throws XMLStreamException {
+        delegate.writeEmptyElement(namespaceURI, localName);
+    }
+
+    @Override
+    public void writeEmptyElement(String localName) throws XMLStreamException {
+        delegate.writeEmptyElement(localName);
+    }
+
+    @Override
+    public void writeEndDocument() throws XMLStreamException {
+        delegate.writeEndDocument();
+    }
+
+    @Override
+    public void writeEndElement() throws XMLStreamException {
+        delegate.writeEndElement();
+    }
+
+    @Override
+    public void writeEntityRef(String name) throws XMLStreamException {
+        delegate.writeEntityRef(name);
+    }
+
+    @Override
+    public void writeNamespace(String prefix, String namespaceURI)
+            throws XMLStreamException {
+        delegate.writeNamespace(prefix, namespaceURI);
+    }
+
+    @Override
+    public void writeProcessingInstruction(String target, String data)
+            throws XMLStreamException {
+        delegate.writeProcessingInstruction(target, data);
+    }
+
+    @Override
+    public void writeProcessingInstruction(String target)
+            throws XMLStreamException {
+        delegate.writeProcessingInstruction(target);
+    }
+
+    @Override
+    public void writeStartDocument() throws XMLStreamException {
+        delegate.writeStartDocument();
+    }
+
+    @Override
+    public void writeStartDocument(String encoding, String version)
+            throws XMLStreamException {
+        delegate.writeStartDocument(encoding, version);
+    }
+
+    @Override
+    public void writeStartDocument(String version) throws XMLStreamException {
+        delegate.writeStartDocument(version);
+    }
+
+    @Override
+    public void writeStartElement(String prefix, String localName,
+            String namespaceURI) throws XMLStreamException {
+        delegate.writeStartElement(prefix, localName, namespaceURI);
+    }
+
+    @Override
+    public void writeStartElement(String namespaceURI, String localName)
+            throws XMLStreamException {
+        delegate.writeStartElement(namespaceURI, localName);
+    }
+
+    @Override
+    public void writeStartElement(String localName) throws XMLStreamException {
+        delegate.writeStartElement(localName);
+    }
+
+    @Override
+    public boolean isOptimized() {
+        return delegate.isOptimized();
+    }
+
+    @Override
+    public String prepareDataHandler(DataHandler dataHandler) {
+        return delegate.prepareDataHandler(dataHandler);
+    }
+
+    @Override
+    public String getCharSetEncoding() {
+        return delegate.getCharSetEncoding();
+    }
+
+    @Override
+    public OMOutputFormat getOutputFormat() {
+        return delegate.getOutputFormat();
+    }
+
+    @Override
+    public OutputStream getOutputStream() throws XMLStreamException {
+        // Since the filter may modify the data, we can't allow access to the raw output stream
+        return null;
+    }
+
+    /**
+     * Derived classes extend the method.  A derived class may log or modify the xml data
+     * @param value
+     * @return value
+     */
+    protected abstract String xmlData(String value);
+
+}
diff --git a/modules/jaxws/src/org/apache/axis2/datasource/jaxb/XMLStreamWriterRemoveIllegalChars.java b/modules/jaxws/src/org/apache/axis2/datasource/jaxb/XMLStreamWriterRemoveIllegalChars.java
new file mode 100644
index 0000000..754f934
--- /dev/null
+++ b/modules/jaxws/src/org/apache/axis2/datasource/jaxb/XMLStreamWriterRemoveIllegalChars.java
@@ -0,0 +1,163 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.axis2.datasource.jaxb;
+
+import org.apache.axiom.om.impl.MTOMXMLStreamWriter;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+/**
+ * This is an MTOMXMLStreamWriter filter that removes illegal characters.
+ * 
+ * Valid and invalid character ranges are defined by:
+ * http://www.w3.org/TR/2008/REC-xml-20081126/#NT-Char
+ *
+ *
+ */
+public class XMLStreamWriterRemoveIllegalChars extends
+        XMLStreamWriterFilterBase {
+
+    private static final Log log = LogFactory.getLog(XMLStreamWriterRemoveIllegalChars.class);
+    
+    public XMLStreamWriterRemoveIllegalChars(MTOMXMLStreamWriter delegate) {
+        super(delegate);
+        if (log.isDebugEnabled()) {
+            log.debug("Creating XMLStreamWriterRemoveIllegalChars object " + this);
+        }
+    }
+    // Characters less than 0x20 may be control characters and should be removed
+    // Note the non-initialized bytes in this array are zero
+    private static byte[] REMOVE = new byte[32];
+    static {
+        REMOVE[0x00] = 1;
+        REMOVE[0x01] = 1;
+        REMOVE[0x02] = 1;
+        REMOVE[0x03] = 1;
+        REMOVE[0x04] = 1;
+        REMOVE[0x05] = 1;
+        REMOVE[0x06] = 1;
+        REMOVE[0x07] = 1;
+        REMOVE[0x08] = 1;
+        // 0x09 is TAB...which is allowed
+        // 0x0A is LINEFEED...which is allowed
+        REMOVE[0x0B] = 1;
+        REMOVE[0x0C] = 1;
+        // 0x0D is CARRIAGE RETURN, which is allowed
+        REMOVE[0x0E] = 1;
+        REMOVE[0x0F] = 1;
+        REMOVE[0x10] = 1;
+        REMOVE[0x11] = 1;
+        REMOVE[0x12] = 1;
+        REMOVE[0x13] = 1;
+        REMOVE[0x14] = 1;
+        REMOVE[0x15] = 1;
+        REMOVE[0x16] = 1;
+        REMOVE[0x17] = 1;
+        REMOVE[0x18] = 1;
+        REMOVE[0x19] = 1;
+        REMOVE[0x1A] = 1;
+        REMOVE[0x1B] = 1;
+        REMOVE[0x1C] = 1;
+        REMOVE[0x1D] = 1;
+        REMOVE[0x1E] = 1;
+        REMOVE[0x1F] = 1;
+    }
+    
+    // These two characters are not allowed
+    private final int FFFE = 0xFFFE;
+    private final char FFFF = 0xFFFF;
+    
+    // Characters in the surrogate range are not allowed
+    // (unless the result is a valid supplemental character)
+    private final char SURROGATE_START = 0xD800;
+    private final char SURROGATE_END =   0xDFFF;
+    
+    
+    /* (non-Javadoc)
+     * @see org.apache.axiom.om.util.XMLStreamWriterFilterBase#xmlData(java.lang.String)
+     */
+    protected String xmlData(String value) {
+        
+        char[] buffer = null;
+        int len = value.length();
+        int srcI = 0;
+        int tgtI = 0;
+        int copyLength = 0;
+        int i = 0;
+        
+        // Traverse all of the characters in the input String (value)
+        while (i < len) {
+            
+            // Get the codepoint of the character at the index
+            // Note that the code point may be two characters long (a supplemental character)
+            int cp = value.codePointAt(i);
+            
+            if (cp > FFFF) {
+                // Supplemental Character...Increase index by 2
+                // Increase the length of good characters to copy by 2
+                i = i+2;
+                copyLength = copyLength+2;
+            } else {
+                // See if the character is invalid
+                if ((cp < 0x20 && (REMOVE[cp] > 0)) || // Control Character
+                        (cp >= SURROGATE_START && cp <= SURROGATE_END ) ||  // Bad surrogate
+                        (cp == FFFF || cp == FFFE)) {  // or illegal character
+                    // Flow to here indicates that the character is not allowed.  
+                    // The good characters (up to this point) are copied into the buffer.
+                    
+                    // Note that the buffer is initialized with the original characters.
+                    // Thus the buffer copy is always done on the same buffer (saving
+                    // both time and space).
+                    
+                    
+                    // Make the buffer on demand
+                    if (buffer == null) {
+                        if (log.isDebugEnabled()) {
+                            log.debug("One or more illegal characterss found.  Codepoint=" + cp);
+                        }
+                        buffer = value.toCharArray();
+                    }
+                    
+                    // Copy the good characters into the buffer
+                    System.arraycopy(buffer, srcI, buffer, tgtI, copyLength);
+                    tgtI = tgtI + copyLength;  // Update the target location in the array
+                    srcI = i + 1;  // Skip over the current character
+                    copyLength = 0; // reset new copy length
+                } else {
+                    // Valid character, increase copy length
+                    copyLength = copyLength+1;
+                }
+                // Single bit16 character, increase index by 1
+                i = i+1;
+            }
+        }
+        
+        if (buffer == null) {
+            // Normal case, no illegal characters removed..No buffer
+            return value;
+        } else {
+            // Move the final valid characters to the buffer
+            // and return a string representing the value
+            System.arraycopy(buffer, srcI, buffer, tgtI, copyLength);
+            String newValue = new String(buffer, 0, tgtI + copyLength);
+            return newValue;
+        }
+        
+    }
+}
diff --git a/modules/jaxws/src/org/apache/axis2/jaxws/api/MessageAccessor.java b/modules/jaxws/src/org/apache/axis2/jaxws/api/MessageAccessor.java
index 42a7736..e0941e7 100644
--- a/modules/jaxws/src/org/apache/axis2/jaxws/api/MessageAccessor.java
+++ b/modules/jaxws/src/org/apache/axis2/jaxws/api/MessageAccessor.java
@@ -18,23 +18,13 @@
  */

 package org.apache.axis2.jaxws.api;

 

-import java.io.ByteArrayOutputStream;

-import java.io.UnsupportedEncodingException;

-

-import javax.xml.stream.FactoryConfigurationError;

-import javax.xml.stream.XMLStreamException;

-import javax.xml.ws.WebServiceException;

-

-import org.apache.axiom.om.OMOutputFormat;

-import org.apache.axiom.om.impl.MTOMXMLStreamWriter;

-import org.apache.axis2.Constants;

 import org.apache.axis2.jaxws.core.MessageContext;

 import org.apache.axis2.jaxws.message.Message;

 import org.apache.commons.logging.Log;

 import org.apache.commons.logging.LogFactory;

 

 /**

- * Value of the Constants.JAXWS_MESSAGE_ACCESSOR property 

+ * Value of the {@link org.apache.axis2.jaxws.Constants#JAXWS_MESSAGE_ACCESSOR} property.

  * Allows a user to gain access to certain Message information

  * that are not exposed by the Message on the

  * javax.xml.ws.handler.MessageContext

@@ -63,15 +53,7 @@
         

         if (msg != null) {

             try {

-                ByteArrayOutputStream baos = new ByteArrayOutputStream();

-                OMOutputFormat format = new OMOutputFormat();

-                String charSetEncoding = (String) mc.getProperty(Constants.Configuration.CHARACTER_SET_ENCODING);

-                charSetEncoding = (charSetEncoding == null) ? "UTF-8" : charSetEncoding;

-                format.setCharSetEncoding(charSetEncoding);

-                MTOMXMLStreamWriter writer  = new MTOMXMLStreamWriter(baos, format);

-                msg.outputTo(writer, false);

-                writer.flush();

-                text =  baos.toString(charSetEncoding);

+                text = msg.getAsOMElement().toString();

             } catch (Throwable t) {

                 if (log.isDebugEnabled()) {

                     log.debug("Cannot access message as string", t);

@@ -84,11 +66,4 @@
         }

         return text;

     }

-  

-    /* (non-Javadoc)

-     * @see java.lang.Object#toString()

-     */

-    public String toString() {

-        return getMessageAsString();

-    }

 }

diff --git a/modules/jaxws/src/org/apache/axis2/jaxws/context/listener/CompositeInputStream.java b/modules/jaxws/src/org/apache/axis2/jaxws/context/listener/CompositeInputStream.java
deleted file mode 100644
index c1777a6..0000000
--- a/modules/jaxws/src/org/apache/axis2/jaxws/context/listener/CompositeInputStream.java
+++ /dev/null
@@ -1,155 +0,0 @@
-/*

- * Licensed to the Apache Software Foundation (ASF) under one

- * or more contributor license agreements. See the NOTICE file

- * distributed with this work for additional information

- * regarding copyright ownership. The ASF licenses this file

- * to you under the Apache License, Version 2.0 (the

- * "License"); you may not use this file except in compliance

- * with the License. You may obtain a copy of the License at

- *

- * http://www.apache.org/licenses/LICENSE-2.0

- *

- * Unless required by applicable law or agreed to in writing,

- * software distributed under the License is distributed on an

- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

- * KIND, either express or implied. See the License for the

- * specific language governing permissions and limitations

- * under the License.

- */

-

-package org.apache.axis2.jaxws.context.listener;

-

-import java.io.IOException;

-import java.io.InputStream;

-import java.util.LinkedList;

-

-import org.apache.commons.logging.Log;

-import org.apache.commons.logging.LogFactory;

-/**

- * CompositeInputStream has ability to store multiple inputStreams in a LinkList

- * and perform various input stream operaitons on these inputStream in a serialized 

- * manner or first in first read model.

- */

-public class CompositeInputStream extends InputStream {

-    private static final Log log = 

-        LogFactory.getLog(CompositeInputStream.class);

-    private LinkedList<InputStream> compositeIS = new LinkedList<InputStream>();

-    //pointer to current node on Link list

-    private InputStream curr = null;

-   

-    public CompositeInputStream() {

-        //do nothing

-    }

-

-    public CompositeInputStream(InputStream is){

-        append(is);

-    }

-

-    public CompositeInputStream(InputStream[] isArray){

-        for (InputStream is:isArray){

-            append(is);

-        }

-    }

-

-    

-    public int read() throws IOException {

-        

-        // Note that reading is destructive.  

-        // The InputStreans are released when read.

-        int count = -1;

-        if(curr !=null){

-            count = curr.read();

-        }

-        //if we read all the bits from current and there are more InputStreams to read.

-        if(count == -1 && compositeIS.size()>0){

-            curr.close();

-            //release for GC

-            curr =null;

-            curr = compositeIS.removeFirst();

-            count = curr.read();

-        }

-        return count;

-    }

-

-    public void append(InputStream is){

-        compositeIS.addLast(is);

-        if(curr == null){

-            curr = compositeIS.removeFirst();

-        }

-    }

-

-    public int available() throws IOException {

-        

-        int available= 0;

-        if (curr != null) {

-            available = curr.available();

-        }

-        if (compositeIS != null) {

-            for(InputStream is:compositeIS){

-                if (is != null) {

-                    available+=is.available();

-                }

-            }

-        }

-        return available;

-    }

-

-    public void close() throws IOException {

-        if(curr!=null){

-            try {

-                curr.close();

-                curr = null;

-            } catch (IOException e) {

-                // TODO swallow so that other streams can be closed

-            }

-        }

-        if (compositeIS != null) {

-            for(InputStream is:compositeIS){

-                try {

-                    is.close();

-                } catch (IOException e) {

-                    // TODO swallow so that other streams can be closed

-                }

-            }

-        }

-    }

-

-    public int read(byte[] b, int off, int len) throws IOException {  

-        

-        // Read from the current buffer

-        int count = -1;

-        if(curr !=null){

-            count = curr.read(b, off, len);

-        }

-        

-        // If more bytes are needed, then access the next stream

-        // And recursively call read to get more data.

-        if(count < len && compositeIS.size()>0){

-            curr.close();

-            //release for GC

-            curr =null;

-            curr = compositeIS.removeFirst();

-            

-            // Recursive call to read the next buffer

-            int numRead = count <= 0 ? 0 : count;

-            int count2 = read(b, off+numRead, len-numRead);

-            

-            // Calculate the total count

-            if (count2 == -1 && count == -1 ) {

-                // All buffers are empty.

-                count = -1;

-            } else if (count2 == -1) {

-                // subsequent buffers are all empty, return numRead

-                count = numRead;

-            } else{

-                // normal case

-                count = count2 + numRead;

-            }

-        }

-        return count;

-    }

-    public int read(byte[] b) throws IOException {

-        return read(b, 0, b.length);

-    }

-

-}

diff --git a/modules/jaxws/src/org/apache/axis2/jaxws/context/listener/ContextListenerUtils.java b/modules/jaxws/src/org/apache/axis2/jaxws/context/listener/ContextListenerUtils.java
deleted file mode 100644
index 699df7f..0000000
--- a/modules/jaxws/src/org/apache/axis2/jaxws/context/listener/ContextListenerUtils.java
+++ /dev/null
@@ -1,183 +0,0 @@
-/*

- * Licensed to the Apache Software Foundation (ASF) under one

- * or more contributor license agreements. See the NOTICE file

- * distributed with this work for additional information

- * regarding copyright ownership. The ASF licenses this file

- * to you under the Apache License, Version 2.0 (the

- * "License"); you may not use this file except in compliance

- * with the License. You may obtain a copy of the License at

- *

- * http://www.apache.org/licenses/LICENSE-2.0

- *

- * Unless required by applicable law or agreed to in writing,

- * software distributed under the License is distributed on an

- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

- * KIND, either express or implied. See the License for the

- * specific language governing permissions and limitations

- * under the License.

- */

-

-package org.apache.axis2.jaxws.context.listener;

-/**

- * Utility Class that holds a ways to registerProviderOMListener and oter operations 

- * used by ParsedEntityCustom Builder.

- */

-import java.io.ByteArrayInputStream;

-import java.io.InputStream;

-import java.util.HashMap;

-import java.util.Iterator;

-import java.util.Map;

-

-import javax.xml.stream.XMLStreamConstants;

-import javax.xml.stream.XMLStreamException;

-import javax.xml.stream.XMLStreamReader;

-

-import org.apache.axiom.om.OMContainer;

-import org.apache.axiom.om.OMElement;

-import org.apache.axiom.om.OMNamespace;

-import org.apache.axis2.jaxws.core.MessageContext;

-import org.apache.axis2.jaxws.message.databinding.ParsedEntityReader;

-import org.apache.commons.logging.Log;

-import org.apache.commons.logging.LogFactory;

-

-public class ContextListenerUtils {

-    private static final Log log = 

-        LogFactory.getLog(ContextListenerUtils.class);

-    public static void registerProviderOMListener(MessageContext mc){

-        if(log.isDebugEnabled()){

-            log.debug("Creating ProviderOMContextListener");

-        }

-        ProviderOMContextListener.create(mc.getAxisMessageContext().getServiceContext());

-    }

-    

-    public static InputStream createPayloadElement(InputStream payloadContent, OMNamespace ns, String localPart, OMContainer parent, HashMap<String, String> nsElementDecls, HashMap<String, String> attrElementDecls){

-        CompositeInputStream inputStream = new CompositeInputStream();

-        InputStream startTag = getStartTag(ns, localPart, parent, nsElementDecls, attrElementDecls);

-        InputStream endTag = getEndTag(ns, localPart);

-        //Add Element startTag

-        ((CompositeInputStream)inputStream).append(startTag);

-        //Add Element content

-        ((CompositeInputStream)inputStream).append(payloadContent);

-        //Add Element endTag

-        ((CompositeInputStream)inputStream).append(endTag);

-

-        return inputStream;

-

-    }

-        

-    public static int skipEventsTo(int targetEvent, XMLStreamReader parser) throws XMLStreamException {

-        int eventType = 0;

-        while (parser.hasNext()) {

-            eventType = parser.next();

-            if (eventType == targetEvent)

-                return eventType;

-        }

-        return eventType; // return END_DOCUMENT;

-    }

-    

-    

-    private static InputStream getEndTag(OMNamespace ns, String localPart){

-        if(log.isDebugEnabled()){

-            log.debug("Start ParsedEntityDataSource.Data.getEndTag()");

-        }

-        String endElement = null;

-        String prefix = (ns!=null)?ns.getPrefix():null;

-        String uri = (ns!=null)?ns.getNamespaceURI():null;

-        if(prefix!=null && prefix.length()>0){

-            endElement = "</"+prefix+":"+localPart+">";

-        }else{

-            endElement = "</"+localPart+">";

-        }

-        if(log.isDebugEnabled()){

-            log.debug("End ParsedEntityDataSource.Data.getEndTag()");

-        }

-        return new ByteArrayInputStream(endElement.getBytes());

-    }

-    /*

-     * get startElement using namespace and local part. Add all namespace prefixes from parent elements.

-     */

-    private static InputStream getStartTag(OMNamespace ns, String localPart, OMContainer parent, HashMap<String, String> nsElementDecls, HashMap<String, String> attrElementDecls){

-        if(log.isDebugEnabled()){

-            log.debug("Start ParsedEntityDataSource.Data.getStartTag()");

-        }            

-        //Start creating the element.

-        StringBuffer startElement = new StringBuffer();

-        String prefix = (ns!=null)?ns.getPrefix():null;

-        String uri = (ns!=null)?ns.getNamespaceURI():null;

-        

-        //Get all of the namespaces associated with Body, envelope, etc

-        HashMap<String, String> nsDecls = getParentnsdeclarations(parent);

-        

-        nsDecls.putAll(nsElementDecls);

-        

-        if(prefix!=null && prefix.length()>0){

-            startElement.append("<"+prefix+":"+localPart+ " ");

-            if (!nsDecls.containsKey(prefix) || !nsDecls.get(prefix).equals(uri)){

-              nsDecls.put(prefix, uri);

-            }

-        }else{

-            startElement.append("<"+localPart + " ");

-        }

-        addParentNs(startElement, parent, nsDecls);

-        addAttrs(startElement, attrElementDecls);

-        

-        if(log.isDebugEnabled()){

-          log.debug("StartElement ="+startElement);

-        }

-

-        if(log.isDebugEnabled()){

-            log.debug("End ParsedEntityDataSource.Data.getStartTag()");

-        }

-        return new ByteArrayInputStream(startElement.toString().getBytes());

-    }

-    /*

-     * fetch all prent namespace declarations

-     */

-    private static HashMap<String, String> getParentnsdeclarations(OMContainer parent){

-        HashMap<String, String> nsDecls = new HashMap<String, String>();

-        if (parent instanceof OMElement) {

-            Iterator ite = ((OMElement) parent).getNamespacesInScope();

-            while (ite.hasNext()) {

-                OMNamespace omn = (OMNamespace) ite.next();

-                nsDecls.put(omn.getPrefix(), omn.getNamespaceURI());

-            }

-        }

-        return nsDecls;

-    }

-    /*

-     * add all parent namespace declarations to the element

-     */

-    private static void addParentNs(StringBuffer startElement, OMContainer parent, HashMap<String, String> nsDecls){

-        Iterator<Map.Entry<String, String>> iter = nsDecls.entrySet().iterator();

-        while (iter.hasNext()) {

-            Map.Entry<String, String> entry = iter.next();

-            String prefix = entry.getKey();

-            String uri = entry.getValue();

-            if ("".equals(prefix))

-                startElement.append(" xmlns=\"");

-            else {

-                startElement.append(" xmlns:");

-                startElement.append(prefix);

-                startElement.append("=\"");

-            }

-            startElement.append(uri);

-            startElement.append("\"");

-        }

-    }

-

-    private static void addAttrs(StringBuffer startElement, HashMap<String, String> attrDecls)

-    {

-      Iterator<Map.Entry<String, String>> iter = attrDecls.entrySet().iterator();

-      while (iter.hasNext()) {

-        Map.Entry<String, String> entry = iter.next();

-        String compoundName = entry.getKey();

-        String value = entry.getValue();

-        startElement.append(" ");

-        startElement.append(compoundName);

-        startElement.append("=\"");

-        startElement.append(value);

-        startElement.append("\"");

-      }

-      startElement.append(">");

-    }

-}

diff --git a/modules/jaxws/src/org/apache/axis2/jaxws/context/listener/ParserInputStreamCustomBuilder.java b/modules/jaxws/src/org/apache/axis2/jaxws/context/listener/ParserInputStreamCustomBuilder.java
deleted file mode 100644
index af949c6..0000000
--- a/modules/jaxws/src/org/apache/axis2/jaxws/context/listener/ParserInputStreamCustomBuilder.java
+++ /dev/null
@@ -1,387 +0,0 @@
-/*

- * Licensed to the Apache Software Foundation (ASF) under one

- * or more contributor license agreements. See the NOTICE file

- * distributed with this work for additional information

- * regarding copyright ownership. The ASF licenses this file

- * to you under the Apache License, Version 2.0 (the

- * "License"); you may not use this file except in compliance

- * with the License. You may obtain a copy of the License at

- *

- * http://www.apache.org/licenses/LICENSE-2.0

- *

- * Unless required by applicable law or agreed to in writing,

- * software distributed under the License is distributed on an

- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

- * KIND, either express or implied. See the License for the

- * specific language governing permissions and limitations

- * under the License.

- */

-package org.apache.axis2.jaxws.context.listener;

-

-import java.io.InputStream;

-import java.util.HashMap;

-import java.util.LinkedList;

-

-import javax.xml.soap.SOAPConstants;

-import javax.xml.stream.XMLStreamConstants;

-import javax.xml.stream.XMLStreamReader;

-

-import org.apache.axiom.om.OMContainer;

-import org.apache.axiom.om.OMElement;

-import org.apache.axiom.om.OMException;

-import org.apache.axiom.om.OMFactory;

-import org.apache.axiom.om.OMNamespace;

-import org.apache.axiom.om.OMSourcedElement;

-import org.apache.axiom.om.ds.ParserInputStreamDataSource;

-import org.apache.axiom.om.impl.builder.CustomBuilder;

-import org.apache.axis2.datasource.jaxb.JAXBCustomBuilderMonitor;

-import org.apache.axis2.jaxws.handler.HandlerUtils;

-import org.apache.axiom.soap.SOAPFactory;

-import org.apache.axiom.soap.SOAPHeader;

-import org.apache.axis2.jaxws.message.databinding.ParsedEntityReader;

-import org.apache.axis2.jaxws.message.factory.ParsedEntityReaderFactory;

-import org.apache.axis2.jaxws.registry.FactoryRegistry;

-import org.apache.commons.logging.Log;

-import org.apache.commons.logging.LogFactory;

-/**

- * A custom builder to that does the following:

- * 1) Uses the parser to fetch the inputStream if parser supports reading of element contents

- * 2) Use the inputStream to create a DataSource backed by the InputStream read from Parser.

- * 3) Use the OMFactory to create OMSourcedElement, OMSourcedElement is backed by ParsedEntityDataSource.

- */

-

-public class ParserInputStreamCustomBuilder implements CustomBuilder {

-    private static final Log log = 

-        LogFactory.getLog(ParserInputStreamCustomBuilder.class);

-

-    private String encoding = null;

-

-    /**

-     * Constructor

-     * @param encoding 

-     */

-    public ParserInputStreamCustomBuilder(String encoding) {

-        this.encoding = (encoding == null) ? "utf-8" :encoding;

-    }

-    /*

-     * (non-Javadoc)

-     * @see org.apache.axiom.om.impl.builder.CustomBuilder#create(java.lang.String, java.lang.String, org.apache.axiom.om.OMContainer, javax.xml.stream.XMLStreamReader, org.apache.axiom.om.OMFactory)

-     */

-    public OMElement create(String namespace, 

-        String localPart, 

-        OMContainer parent,

-        XMLStreamReader reader, 

-        OMFactory factory) throws OMException {

-

-        if (log.isDebugEnabled()) {

-            log.debug("create namespace = " + namespace);

-            log.debug("  localPart = " + localPart);

-            log.debug("  reader = " + reader.getClass());

-        }

-        

-        if (!shouldUnmarshal(namespace, localPart)) {

-            if (log.isDebugEnabled()) {

-                log.debug("This element won't be unmarshalled with the custom builder");

-            }

-            return null;

-        }

-        

-        /*

-         * 1) Use the the parser to fetch the inputStream

-         * 2) Use the inputStream to create a DataSource, delay reading of content as much as you can.

-         * 3) Use the OMFactory to create OMSourcedElement, OMSourcedElement is backed by ParsedEntityDataSource.

-         */

-        try{

-            ParsedEntityReaderFactory perf = (ParsedEntityReaderFactory)FactoryRegistry.getFactory(ParsedEntityReaderFactory.class);

-            ParsedEntityReader entityReader = perf.getParsedEntityReader();

-            if (log.isDebugEnabled()) {

-                log.debug("ParsedEntityReader = " + entityReader);

-            }

-            //Do not user custom builder if Parser does not have ability to read sub content.

-            if(!entityReader.isParsedEntityStreamAvailable()){

-                if (log.isDebugEnabled()) {

-                    log.debug("ParsedEntityStream is not available, defaulting to normal build");

-                }

-                return null;

-            }

-            // Create an OMSourcedElement backed by the ParsedData

-            InputStream parsedStream = getPayloadContent(reader, entityReader);

-            if(parsedStream == null){

-                //cant read content from EntityReader, returning null.

-                if (log.isDebugEnabled()) {

-                    log.debug("Unable to read content from the entity reader, defaulting to normal build");

-                }

-                return null;

-            }

-            HashMap<String, String> nsElementDecls = getElementNamespaceDeclarations(reader);

-            HashMap<String, String> attrElementDecls = getElementAttributeDeclarations(reader);

-            

-            //read the payload. Lets move the parser forward.

-            if(reader.hasNext()){

-                reader.next();

-            }

-            if(namespace == null){

-                //lets look for ns in reader

-                namespace = reader.getNamespaceURI();

-                if(namespace == null){

-                    //still cant find the namespace, just set it to "";

-                    namespace = "";

-                }

-            }

-            OMNamespace ns = factory.createOMNamespace(namespace, reader.getPrefix());

-            InputStream payload = ContextListenerUtils.createPayloadElement(parsedStream, ns, localPart, parent, 

-                        nsElementDecls, attrElementDecls);

-

-            ParserInputStreamDataSource ds = new ParserInputStreamDataSource(payload, encoding);

-            OMSourcedElement om = null;

-            if (parent instanceof SOAPHeader && factory instanceof SOAPFactory) {

-                om = ((SOAPFactory)factory).createSOAPHeaderBlock(localPart, ns, ds);

-            } else {

-                om = factory.createOMElement(ds, localPart, ns);

-            }           

-            //Add the new OMSourcedElement ot the parent

-            parent.addChild(om); 

-            /*

-            //Lets Mark the body as complete so Serialize calls dont fetch data from parser for body content.

-            if(parent instanceof SOAPBodyImpl){

-                ((SOAPBodyImpl)parent).setComplete(true);

-            }

-            */

-            return om;

-        } catch (OMException e) {

-            throw e;

-        } catch (Throwable t) {

-            throw new OMException(t);

-        }

-    }

-

-    public OMElement create(String namespace, 

-        String localPart, 

-        OMContainer parent,

-        XMLStreamReader reader, 

-        OMFactory factory,

-        InputStream payload) throws OMException {

-

-        if (log.isDebugEnabled()) {

-            log.debug("create namespace = " + namespace);

-            log.debug("  localPart = " + localPart);

-            log.debug("  reader = " + reader.getClass());

-        }

-        /*

-         * 1) Use the the parser to fetch the inputStream

-         * 2) Use the inputStream to create a DataSource, delay reading of content as much as you can.

-         * 3) Use the OMFactory to create OMSourcedElement, OMSourcedElement is backed by ParsedEntityDataSource.

-         */

-        try{

-            if(namespace == null){

-                //lets look for ns in reader

-                namespace = reader.getNamespaceURI();

-                if(namespace == null){

-                    //still cant find the namespace, just set it to "";

-                    namespace = "";

-                }

-            }

-            if (!shouldUnmarshal(namespace, localPart)) {

-                if (log.isDebugEnabled()) {

-                    log.debug("This element won't be unmarshalled with the custom builder");

-                }

-                return null;

-            }

-            OMNamespace ns = factory.createOMNamespace(namespace, reader.getPrefix());

-            ParserInputStreamDataSource ds = new ParserInputStreamDataSource(payload, encoding);

-            OMSourcedElement om = null;

-            if (parent instanceof SOAPHeader && factory instanceof SOAPFactory) {

-                om = ((SOAPFactory)factory).createSOAPHeaderBlock(localPart, ns, ds);

-            } else {

-                om = factory.createOMElement(ds, localPart, ns);

-            }           

-            //Add the new OMSourcedElement ot the parent

-            parent.addChild(om); 

-            return om;

-        } catch (OMException e) {

-            throw e;

-        } catch (Throwable t) {

-            throw new OMException(t);

-        }

-    }

-

-    private HashMap<String, String> getElementNamespaceDeclarations(XMLStreamReader reader)

-    {

-      HashMap<String, String> nsElementDecls = new HashMap<String, String>();

-      int count = reader.getNamespaceCount();

-      for (int i = 0; i < count; i++){

-        String prefix = reader.getNamespacePrefix(i);

-        String namespace = reader.getNamespaceURI(i);

-        if (namespace != null && namespace.length() > 0){

-          nsElementDecls.put(prefix == null ? "":prefix, namespace);

-        }

-      }

-      return nsElementDecls;

-    }

-    

-    private HashMap<String, String> getElementAttributeDeclarations(XMLStreamReader reader)

-    {

-      HashMap<String, String> attrElementDecls = new HashMap<String, String>();

-      int count = reader.getAttributeCount();

-

-      for (int i = 0; i < count; i++) {

-        String prefix = reader.getAttributePrefix(i);

-        String name = reader.getAttributeLocalName(i);

-        String value = convertEntityReferences(reader.getAttributeValue(i));

-        String compoundName;

-        if (prefix != null && prefix.length() > 0){

-          compoundName = prefix+":"+name;

-        }

-        else {

-          compoundName = name;

-        }

-        attrElementDecls.put(compoundName, value);

-      }

-      return attrElementDecls;

-    }

-    

-    protected String convertEntityReferences(String value)

-    {

-      if ((value == null) || (value.length() == 0))

-        return value;

-      

-      int valueLen = value.length();

-      

-      int[] positionsToChange = null;

-      int numChanged = 0;

-      

-      for (int i = 0; i < valueLen; i++) {

-        switch (value.charAt(i)) {

-          case '<':

-          case '>':

-          case '&':

-          case '\"':

-          case '\'':

-            if (positionsToChange == null)

-            {

-              positionsToChange = new int[valueLen];

-            }

-            positionsToChange[numChanged++]=i;

-            break;

-        }

-      }

-

-      if (numChanged == 0) {

-        if(log.isDebugEnabled())

-        {

-          log.debug("No entity references were found in "+value);

-        }

-        return value;

-      }

-      else {

-        if(log.isDebugEnabled())

-        {

-          log.debug("Found "+numChanged+" entity references in "+value);

-        }

-        

-        //We'll create the new builder assuming the size of the worst case

-        StringBuilder changedValue = new StringBuilder(valueLen+numChanged*5);

-        int changedPos = 0; 

-        for (int i = 0; i < valueLen; i++) {

-          if (i == positionsToChange[changedPos]) {

-            switch (value.charAt(i)) {

-              case '<':

-                changedValue.append("&lt;");

-                changedPos++;

-                break;

-              case '>':

-                changedValue.append("&gt;");

-                changedPos++;

-                break;

-              case '&':

-                changedValue.append("&amp;");

-                changedPos++;

-                break;

-              case '\'':

-                changedValue.append("&apos;");

-                changedPos++;

-                break;

-              case '\"':

-                changedValue.append("&quot;");

-                changedPos++;

-                break;

-            }

-          }

-          else {

-            changedValue.append(value.charAt(i));

-          }

-        }

-

-        if(log.isDebugEnabled())

-        {

-          log.debug("Converted to "+changedValue.toString());

-        }

-

-        return changedValue.toString();

-      }

-    }

-    /*

-     * Read content from entityReader.

-     */

-    private InputStream getPayloadContent(XMLStreamReader parser, ParsedEntityReader entityReader){

-        int event = parser.getEventType();

-        //Make sure its start element event.

-        if(log.isDebugEnabled()){

-            log.debug("checking if event is START_ELEMENT");

-        }

-        InputStream parsedStream = null;

-        if(event == XMLStreamConstants.START_ELEMENT){

-            if(log.isDebugEnabled()){

-                log.debug("event is START_ELEMENT");

-            }

-            parsedStream = entityReader.readParsedEntityStream(parser);

-            if(parsedStream!=null){

-                if(log.isDebugEnabled()){

-                    log.debug("Read Parsed EntityStream");

-                }

-            }

-        }

-        return parsedStream;

-    }

-    

-    /**

-     * @param namespace

-     * @param localPart

-     * @return true if this ns and local part is acceptable for unmarshalling

-     */

-    private boolean shouldUnmarshal(String namespace, String localPart) {

-        

-        /**

-         * The stream preserves the original message, so I think

-         * we want to do unmarshal even if high fidelity is specified.

-         

-        boolean isHighFidelity = HandlerUtils.isHighFidelity(msgContext);

-

-        if (isHighFidelity) {

-            return false;

-        }

-        */

-        

-        // Don't unmarshal SOAPFaults.

-        // If there is no localPart, this also indicates a potential problem...so don't 

-        // use the custom builder

-        if (localPart == null || 

-            (localPart.equals("Fault") &&

-             (SOAPConstants.URI_NS_SOAP_1_1_ENVELOPE.equals(namespace) ||

-              SOAPConstants.URI_NS_SOAP_1_2_ENVELOPE.equals(namespace)))) {

-            return false;

-        }

-       

-        

-        /**

-         * For JAXB custom building, we ignore security elements.

-         * I don't think it matters for parsed entities since they preserve all the content

-        if (localPart.equals("EncryptedData")) {

-            return false;

-        }

-        */

-        

-        return true;

-                

-    }

-}

diff --git a/modules/jaxws/src/org/apache/axis2/jaxws/context/listener/ProviderOMContextListener.java b/modules/jaxws/src/org/apache/axis2/jaxws/context/listener/ProviderOMContextListener.java
deleted file mode 100644
index 84323d4..0000000
--- a/modules/jaxws/src/org/apache/axis2/jaxws/context/listener/ProviderOMContextListener.java
+++ /dev/null
@@ -1,131 +0,0 @@
-/*

- * Licensed to the Apache Software Foundation (ASF) under one

- * or more contributor license agreements. See the NOTICE file

- * distributed with this work for additional information

- * regarding copyright ownership. The ASF licenses this file

- * to you under the Apache License, Version 2.0 (the

- * "License"); you may not use this file except in compliance

- * with the License. You may obtain a copy of the License at

- *

- * http://www.apache.org/licenses/LICENSE-2.0

- *

- * Unless required by applicable law or agreed to in writing,

- * software distributed under the License is distributed on an

- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

- * KIND, either express or implied. See the License for the

- * specific language governing permissions and limitations

- * under the License.

- */

-package org.apache.axis2.jaxws.context.listener;

-

-import org.apache.axiom.om.impl.builder.StAXOMBuilder;

-import org.apache.axiom.soap.SOAPEnvelope;

-import org.apache.axis2.context.MessageContext;

-import org.apache.axis2.context.ServiceContext;

-import org.apache.axis2.description.AxisOperation;

-import org.apache.axis2.description.MessageContextListener;

-import org.apache.commons.logging.Log;

-import org.apache.commons.logging.LogFactory;

-

-/**

- * This is a MessageContextListener that installs ParserInputStreamCustomBuilder

- * during an Envelope or ServiceContext event on AxisService. The installed

- * ParserInputStreamCustomBuilder is then used by StAXSoapModelBuilder to create

- * OMSourcedElement for payload data from Soap body.

- *

- */

-public class ProviderOMContextListener implements MessageContextListener {

-    private static final Log log = 

-        LogFactory.getLog(ProviderOMContextListener.class);

-    /**

-     * Create and add a listener

-     * @param sc ServiceContext

-     */

-    public static void create(ServiceContext sc) {

-        if(log.isDebugEnabled()){

-            log.debug("Start ProviderOMContextListener.create(ServiceContext)");

-        }

-        if (sc == null || 

-            sc.getAxisService() == null ||

-            sc.getAxisService().

-            hasMessageContextListener(ProviderOMContextListener.class)){

-            if(log.isDebugEnabled()){

-                log.debug("ProviderOMContextListener already installed on AxisService");

-            }

-            return;

-        }

-        ProviderOMContextListener listener = new ProviderOMContextListener();

-        sc.getAxisService().addMessageContextListener(listener);

-        if(log.isDebugEnabled()){

-            log.debug("End ProviderOMContextListener.create(ServiceContext)");

-        }

-    }

-    /**

-     * Attach the ParserInputStreamCustomBuilder on the Axiom builder.

-     * This will create ParserInputStreamCustomBuilder and register it with StAXOMBuilder which will 

-     * use ByteArrayCustomBuilder to create byteArray backed OM.

-     * @param sc

-     * @param mc

-     */

-    private void installParserInputStreamCustomBuilder(ServiceContext sc, MessageContext mc) {

-        if (log.isDebugEnabled()) {

-            log.debug("attachEvent for sc= " + sc.getName() + "and  mc=" + mc.getLogCorrelationID());

-        }

-

-        // Make sure the MessageContext has a SOAPEnvelope and Builder

-        SOAPEnvelope envelope = mc.getEnvelope();

-

-        if (envelope == null) {

-            return;

-        }

-        if (!(envelope.getBuilder() instanceof StAXOMBuilder)) {

-            return;

-        }

-

-        AxisOperation axisOp = mc.getAxisOperation();

-        if (axisOp == null) {

-            return;

-        }

-

-        ParserInputStreamCustomBuilder pacb = new ParserInputStreamCustomBuilder(null);

-        ((StAXOMBuilder) envelope.getBuilder()).registerCustomBuilderForPayload(pacb);

-    }

-

-    /* (non-Javadoc)

-     * @see org.apache.axis2.description.MessageContextListener#attachEnvelopeEvent(org.apache.axis2.context.MessageContext)

-     */

-    public void attachEnvelopeEvent(MessageContext mc) {

-        if(log.isDebugEnabled()){

-            log.debug("Start attachEnvelopeEvent");

-        }

-        if(mc.getServiceContext() !=null){

-            installParserInputStreamCustomBuilder(mc.getServiceContext(), mc);

-            if(log.isDebugEnabled()){

-                log.debug("Installed ParserInputStreamCustomBuilder");

-            }

-        }

-        if(log.isDebugEnabled()){

-            log.debug("Stop attachEnvelopeEvent");

-        }

-    }

-

-    /* (non-Javadoc)

-     * @see org.apache.axis2.description.MessageContextListener#attachServiceContextEvent(org.apache.axis2.context.ServiceContext, org.apache.axis2.context.MessageContext)

-     */

-    public void attachServiceContextEvent(ServiceContext sc, MessageContext mc) {

-        if(log.isDebugEnabled()){

-            log.debug("Start attachServiceContextEvent");

-        }

-        if (mc.getEnvelope() != null) {

-

-            installParserInputStreamCustomBuilder(sc, mc);

-            if(log.isDebugEnabled()){

-                log.debug("Installed ParserInputStreamCustomBuilder");

-            }

-        }

-        if(log.isDebugEnabled()){

-            log.debug("Stop attachServiceContextEvent");

-        }

-    }

-

-}

diff --git a/modules/jaxws/src/org/apache/axis2/jaxws/core/MessageContext.java b/modules/jaxws/src/org/apache/axis2/jaxws/core/MessageContext.java
index c5f72c2..79922f2 100644
--- a/modules/jaxws/src/org/apache/axis2/jaxws/core/MessageContext.java
+++ b/modules/jaxws/src/org/apache/axis2/jaxws/core/MessageContext.java
@@ -19,11 +19,8 @@
 
 package org.apache.axis2.jaxws.core;
 
-import org.apache.axiom.om.util.DetachableInputStream;
 import org.apache.axis2.AxisFault;
-import org.apache.axis2.Constants;
 import org.apache.axis2.description.AxisService;
-import org.apache.axis2.jaxws.api.MessageAccessor;
 import org.apache.axis2.jaxws.api.MessageAccessorFactory;
 import org.apache.axis2.jaxws.description.EndpointDescription;
 import org.apache.axis2.jaxws.description.OperationDescription;
@@ -31,8 +28,7 @@
 import org.apache.axis2.jaxws.message.Message;
 import org.apache.axis2.jaxws.message.util.MessageUtils;
 import org.apache.axis2.jaxws.registry.FactoryRegistry;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.apache.axis2.transport.TransportUtils;
 
 import javax.xml.namespace.QName;
 import javax.xml.ws.BindingProvider;
@@ -56,9 +52,6 @@
  * is available.
  */
 public class MessageContext {
-
-    private static Log log = LogFactory.getLog(MessageContext.class);
-    
     private InvocationContext invocationCtx;
     private org.apache.axis2.context.MessageContext axisMsgCtx;
     private EndpointDescription endpointDesc;
@@ -145,10 +138,10 @@
     public Map<String, Object> getProperties() {
         // only use properties that are local to the axis2 MC,
         // not the options bag.  See org.apache.axis2.context.AbstractContext
-        Iterator names = axisMsgCtx.getPropertyNames();
-        HashMap tempProps = new HashMap<String, Object>();
+        Iterator<String> names = axisMsgCtx.getPropertyNames();
+        HashMap<String, Object> tempProps = new HashMap<String, Object>();
         for (; names.hasNext();) {
-            String name = (String)names.next();
+            String name = names.next();
             tempProps.put(name, axisMsgCtx.getProperty(name));
         }
         //return new ReadOnlyProperties(tempProps);
@@ -356,18 +349,6 @@
      * This allows the transport layer to free resources and pool connections
      */
     public void freeInputStream() throws IOException {
-        
-        
-        // During builder processing, the original input stream was wrapped with
-        // a detachable input stream.  The detachable input stream's detach method
-        // causes the original stream to be consumed and closed.
-        DetachableInputStream is = (DetachableInputStream) 
-            getProperty(Constants.DETACHABLE_INPUT_STREAM);
-        if (is != null) {
-            if (log.isDebugEnabled()) {
-                log.debug("Detaching inbound input stream " + is);
-            }
-            is.detach();
-        }
+        TransportUtils.detachInputStream(axisMsgCtx);
     }
 }
diff --git a/modules/jaxws/src/org/apache/axis2/jaxws/core/controller/impl/AxisInvocationController.java b/modules/jaxws/src/org/apache/axis2/jaxws/core/controller/impl/AxisInvocationController.java
index 3d7cd44..b7cd527 100644
--- a/modules/jaxws/src/org/apache/axis2/jaxws/core/controller/impl/AxisInvocationController.java
+++ b/modules/jaxws/src/org/apache/axis2/jaxws/core/controller/impl/AxisInvocationController.java
@@ -49,7 +49,7 @@
 import org.apache.axis2.jaxws.utility.ClassUtils;
 import org.apache.axis2.transport.http.HTTPConstants;
 import org.apache.axis2.transport.http.HttpTransportProperties;
-import org.apache.axis2.transport.http.impl.httpclient3.HttpTransportPropertiesImpl;
+import org.apache.axis2.transport.http.impl.httpclient4.HttpTransportPropertiesImpl;
 import org.apache.axis2.util.ThreadContextMigratorUtil;
 import org.apache.axis2.wsdl.WSDLConstants;
 import org.apache.commons.logging.Log;
diff --git a/modules/jaxws/src/org/apache/axis2/jaxws/framework/JAXWSDeployer.java b/modules/jaxws/src/org/apache/axis2/jaxws/framework/JAXWSDeployer.java
index 4d44006..596ec4e 100644
--- a/modules/jaxws/src/org/apache/axis2/jaxws/framework/JAXWSDeployer.java
+++ b/modules/jaxws/src/org/apache/axis2/jaxws/framework/JAXWSDeployer.java
@@ -77,22 +77,21 @@
             ClassLoader threadClassLoader = null;

             try {

                 threadClassLoader = Thread.currentThread().getContextClassLoader();

-                ArrayList<URL> urls = new ArrayList<URL>();

-                urls.add(repository);

+                List<URL> extraUrls = new ArrayList<>();

                 String webLocation = DeploymentEngine.getWebLocationString();

                 if (webLocation != null) {

-                    urls.add(new File(webLocation).toURL());

+                    extraUrls.add(new File(webLocation).toURI().toURL());

                 }

                 ClassLoader classLoader = Utils.createClassLoader(

-                        urls,

+                        repository,

+                        extraUrls.toArray(new URL[extraUrls.size()]),

                         axisConfig.getSystemClassLoader(),

-                        true,

                         (File) axisConfig.

                                 getParameterValue(Constants.Configuration.ARTIFACTS_TEMP_DIR),

                         axisConfig.isChildFirstClassLoading());

                 Thread.currentThread().setContextClassLoader(classLoader);

                 JAXWSDeployerSupport deployerSupport = new JAXWSDeployerSupport(configCtx, directory);

-                deployerSupport.deployClasses("JAXWS-Builtin", file.toURL(), Thread.currentThread().getContextClassLoader(), classList);

+                deployerSupport.deployClasses("JAXWS-Builtin", file.toURI().toURL(), Thread.currentThread().getContextClassLoader(), classList);

             } catch (NoClassDefFoundError e) {

                 if (log.isDebugEnabled()) {

                     log.debug(Messages.getMessage("deployingexception", e.getMessage()), e);

@@ -128,24 +127,23 @@
         try {

             threadClassLoader = Thread.currentThread().getContextClassLoader();

             String groupName = deploymentFileData.getName();

-            URL location = deploymentFileData.getFile().toURL();

+            URL location = deploymentFileData.getFile().toURI().toURL();

             if (isJar(deploymentFileData.getFile())) {

                 log.info("Deploying artifact : " + deploymentFileData.getAbsolutePath());

-                ArrayList<URL> urls = new ArrayList<URL>();

-                urls.add(deploymentFileData.getFile().toURL());

-                urls.add(axisConfig.getRepository());

+                List<URL> extraUrls = new ArrayList<>();

+                extraUrls.add(axisConfig.getRepository());

 

                 // adding libs under jaxws deployment dir

-                addJaxwsLibs(urls, axisConfig.getRepository().getPath() + directory);

+                addJaxwsLibs(extraUrls, axisConfig.getRepository().getPath() + directory);

 

                 String webLocation = DeploymentEngine.getWebLocationString();

                 if (webLocation != null) {

-                    urls.add(new File(webLocation).toURL());

+                    extraUrls.add(new File(webLocation).toURI().toURL());

                 }

                 ClassLoader classLoader = Utils.createClassLoader(

-                        urls,

+                        deploymentFileData.getFile().toURI().toURL(),

+                        extraUrls.toArray(new URL[extraUrls.size()]),

                         axisConfig.getSystemClassLoader(),

-                        true,

                         (File) axisConfig.

                                 getParameterValue(Constants.Configuration.ARTIFACTS_TEMP_DIR),

                         axisConfig.isChildFirstClassLoading());

@@ -237,7 +235,7 @@
      * @param jaxwsDepDirPath - jaxws deployment folder path

      * @throws Exception - on error while geting URLs of libs

      */

-    private void addJaxwsLibs(ArrayList<URL> urls, String jaxwsDepDirPath)

+    private void addJaxwsLibs(List<URL> urls, String jaxwsDepDirPath)

             throws Exception {

         File jaxwsDepDirLib = new File(jaxwsDepDirPath + File.separator + "lib");

         if (jaxwsDepDirLib.exists() && jaxwsDepDirLib.isDirectory()) {

diff --git a/modules/jaxws/src/org/apache/axis2/jaxws/framework/JAXWSServiceBuilderExtension.java b/modules/jaxws/src/org/apache/axis2/jaxws/framework/JAXWSServiceBuilderExtension.java
index 404011c..8bf65eb 100644
--- a/modules/jaxws/src/org/apache/axis2/jaxws/framework/JAXWSServiceBuilderExtension.java
+++ b/modules/jaxws/src/org/apache/axis2/jaxws/framework/JAXWSServiceBuilderExtension.java
@@ -106,7 +106,7 @@
                             .getServiceClassNameFromMetaData(serviceMetaData);
                 }
 
-                return deployerSupport.deployClasses(deploymentFileData.getFile().toURL(),
+                return deployerSupport.deployClasses(deploymentFileData.getFile().toURI().toURL(),
                         deploymentFileData.getClassLoader(), listOfClasses);
 
             } catch (AxisFault e) {
diff --git a/modules/jaxws/src/org/apache/axis2/jaxws/marshaller/impl/alt/UnmarshalMessageContextListener.java b/modules/jaxws/src/org/apache/axis2/jaxws/marshaller/impl/alt/UnmarshalMessageContextListener.java
index 9f8e307..a200d13 100644
--- a/modules/jaxws/src/org/apache/axis2/jaxws/marshaller/impl/alt/UnmarshalMessageContextListener.java
+++ b/modules/jaxws/src/org/apache/axis2/jaxws/marshaller/impl/alt/UnmarshalMessageContextListener.java
@@ -19,7 +19,7 @@
 

 package org.apache.axis2.jaxws.marshaller.impl.alt;

 

-import org.apache.axiom.om.impl.builder.StAXOMBuilder;

+import org.apache.axiom.om.ds.custombuilder.CustomBuilderSupport;

 import org.apache.axiom.soap.SOAPEnvelope;

 import org.apache.axis2.context.MessageContext;

 import org.apache.axis2.context.ServiceContext;

@@ -89,7 +89,7 @@
         if (envelope == null) {

             return;

         }

-        if (!(envelope.getBuilder() instanceof StAXOMBuilder)) {

+        if (!(envelope.getBuilder() instanceof CustomBuilderSupport)) {

                 return;

             }

 

@@ -114,7 +114,7 @@
         JAXBDSContext jaxbDSC = new JAXBDSContext(info.getPackages(), info.getPackagesKey());

         jaxbDSC.setMessageContext(mc);

         JAXBCustomBuilder jcb = new JAXBCustomBuilder(jaxbDSC);

-        ((StAXOMBuilder) envelope.getBuilder()).registerCustomBuilderForPayload(jcb);

+        ((CustomBuilderSupport) envelope.getBuilder()).registerCustomBuilder(jcb, jcb);

         if (log.isDebugEnabled()) {

             log.debug("Registering JAXBCustomBuilder: " + jcb + " for AxisOperation: " + axisOp.getName());

         }

diff --git a/modules/jaxws/src/org/apache/axis2/jaxws/message/Block.java b/modules/jaxws/src/org/apache/axis2/jaxws/message/Block.java
index fd4b5ce..4326b41 100644
--- a/modules/jaxws/src/org/apache/axis2/jaxws/message/Block.java
+++ b/modules/jaxws/src/org/apache/axis2/jaxws/message/Block.java
@@ -44,7 +44,7 @@
  * longer valid after the message is called. (i.e. the implementation does not need to cache the
  * information)
  */
-public interface Block extends OMDataSourceExt {
+public interface Block<T,C> extends OMDataSourceExt {
 
     /**
      * Get a reference to the Business Object represented by this Block
diff --git a/modules/jaxws/src/org/apache/axis2/jaxws/message/attachments/JAXBAttachmentUnmarshaller.java b/modules/jaxws/src/org/apache/axis2/jaxws/message/attachments/JAXBAttachmentUnmarshaller.java
deleted file mode 100644
index 637f258..0000000
--- a/modules/jaxws/src/org/apache/axis2/jaxws/message/attachments/JAXBAttachmentUnmarshaller.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.axis2.jaxws.message.attachments;
-
-import org.apache.axiom.util.stax.xop.MimePartProvider;
-import org.apache.axis2.datasource.jaxb.AbstractJAXBAttachmentUnmarshaller;
-import org.apache.axis2.jaxws.message.Message;
-
-import javax.activation.DataHandler;
-
-/**
- * JAXBAttachmentUnmarshaller
- * <p/>
- * An implementation of the <link>javax.xml.bind.attachment.AttachmentUnmarshaller</link> that is
- * used for deserializing XOP elements into their corresponding binary data packages.
- */
-public class JAXBAttachmentUnmarshaller extends AbstractJAXBAttachmentUnmarshaller {
-
-    private final Message message;
-
-    public JAXBAttachmentUnmarshaller(MimePartProvider mimePartProvider, Message message) {
-        super(mimePartProvider);
-        this.message = message;
-    }
-
-    @Override
-    protected DataHandler getDataHandlerForSwA(String blobcid) {
-        return message.getDataHandler(blobcid);
-    }
-}
diff --git a/modules/jaxws/src/org/apache/axis2/jaxws/message/attachments/JAXBAttachmentMarshaller.java b/modules/jaxws/src/org/apache/axis2/jaxws/message/attachments/MessageAttachmentContext.java
similarity index 63%
rename from modules/jaxws/src/org/apache/axis2/jaxws/message/attachments/JAXBAttachmentMarshaller.java
rename to modules/jaxws/src/org/apache/axis2/jaxws/message/attachments/MessageAttachmentContext.java
index 1ae0730..43a094a 100644
--- a/modules/jaxws/src/org/apache/axis2/jaxws/message/attachments/JAXBAttachmentMarshaller.java
+++ b/modules/jaxws/src/org/apache/axis2/jaxws/message/attachments/MessageAttachmentContext.java
@@ -20,33 +20,24 @@
 package org.apache.axis2.jaxws.message.attachments;
 
 import org.apache.axis2.context.MessageContext;
+import org.apache.axis2.datasource.jaxb.AttachmentContext;
 import org.apache.axis2.jaxws.message.Message;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 
 import javax.activation.DataHandler;
-import javax.xml.stream.XMLStreamWriter;
 
-/**
- * An implementation of the JAXB AttachmentMarshaller that is used to handle binary data from JAXB
- * and create populate the appropriate constructs within the JAX-WS Message Model.
- */
-public class JAXBAttachmentMarshaller extends org.apache.axis2.datasource.jaxb.JAXBAttachmentMarshaller {
+public final class MessageAttachmentContext implements AttachmentContext {
     
-    private static final Log log = LogFactory.getLog(JAXBAttachmentMarshaller.class);
-    private Message message;
+    private static final Log log = LogFactory.getLog(MessageAttachmentContext.class);
+    private final Message message;
     
-    public JAXBAttachmentMarshaller(Message message, XMLStreamWriter writer) {
-        super(getAxis2MessageContext(message), writer);
+    public MessageAttachmentContext(Message message) {
         this.message = message;
     }
     
-    /**
-     * Get the Axis2 Message Context out of the Message by going through the JAXWS Message Context.
-     * @param message The Message from which to get the Axis Message Context
-     * @return the Axis Message context or null if one is not found.
-     */
-    private static MessageContext getAxis2MessageContext(Message message) {
+    public MessageContext getMessageContext() {
+        // Get the Axis2 Message Context out of the Message by going through the JAXWS Message Context.
         MessageContext axisMessageContext = null;
         if (message != null) {
             if (message.getMessageContext() != null) {
@@ -55,9 +46,7 @@
         }
         return axisMessageContext;
     }
-    /**
-     * @return if MTOM enabled calculated from the context information
-     */
+
     public boolean isMTOMEnabled() {
         if (message == null) {
             return false;
@@ -66,20 +55,12 @@
         }  
     }
     
-    /**
-     * Indicate on the context that SWA attachments are encountered
-     */
     public void setDoingSWA() {
         if (message != null) {
             message.setDoingSWA(true);
         }
     }
     
-    /**
-     * Inform the context that an Attachment (DataHandler, CID) is written.
-     * @param dh
-     * @param cid
-     */
     public void addDataHandler(DataHandler dh, String cid) {
         if (message != null) {
             message.addDataHandler(dh, cid);
@@ -91,4 +72,8 @@
             }
         }
     }
+
+    public DataHandler getDataHandlerForSwA(String blobcid) {
+        return message.getDataHandler(blobcid);
+    }
 }
diff --git a/modules/jaxws/src/org/apache/axis2/jaxws/message/databinding/DataSourceBlock.java b/modules/jaxws/src/org/apache/axis2/jaxws/message/databinding/DataSourceBlock.java
index b1af73d..d86fd60 100644
--- a/modules/jaxws/src/org/apache/axis2/jaxws/message/databinding/DataSourceBlock.java
+++ b/modules/jaxws/src/org/apache/axis2/jaxws/message/databinding/DataSourceBlock.java
@@ -19,9 +19,11 @@
 

 package org.apache.axis2.jaxws.message.databinding;

 

+import javax.activation.DataSource;

+

 import org.apache.axis2.jaxws.message.Block;

 

 /** DataSourceBlock Block with a business object that is a javax.activation.DataSource */

-public interface DataSourceBlock extends Block {

+public interface DataSourceBlock extends Block<DataSource,Void> {

 

 }
\ No newline at end of file
diff --git a/modules/jaxws/src/org/apache/axis2/jaxws/message/databinding/JAXBBlock.java b/modules/jaxws/src/org/apache/axis2/jaxws/message/databinding/JAXBBlock.java
index 75f7d5b..10d8727 100644
--- a/modules/jaxws/src/org/apache/axis2/jaxws/message/databinding/JAXBBlock.java
+++ b/modules/jaxws/src/org/apache/axis2/jaxws/message/databinding/JAXBBlock.java
@@ -22,6 +22,6 @@
 import org.apache.axis2.jaxws.message.Block;
 
 /** JAXBBlock Block represented by a JAXB object */
-public interface JAXBBlock extends Block {
+public interface JAXBBlock extends Block<Object,JAXBBlockContext> {
 
 }
diff --git a/modules/jaxws/src/org/apache/axis2/jaxws/message/databinding/JAXBBlockContext.java b/modules/jaxws/src/org/apache/axis2/jaxws/message/databinding/JAXBBlockContext.java
index b6a2edc..efce638 100644
--- a/modules/jaxws/src/org/apache/axis2/jaxws/message/databinding/JAXBBlockContext.java
+++ b/modules/jaxws/src/org/apache/axis2/jaxws/message/databinding/JAXBBlockContext.java
@@ -19,18 +19,14 @@
 
 package org.apache.axis2.jaxws.message.databinding;
 
-import org.apache.axiom.util.stax.xop.MimePartProvider;
 import org.apache.axis2.context.MessageContext;
+import org.apache.axis2.datasource.jaxb.AttachmentContext;
 import org.apache.axis2.datasource.jaxb.JAXBDSContext;
 import org.apache.axis2.jaxws.message.Message;
-import org.apache.axis2.jaxws.message.attachments.JAXBAttachmentMarshaller;
-import org.apache.axis2.jaxws.message.attachments.JAXBAttachmentUnmarshaller;
+import org.apache.axis2.jaxws.message.attachments.MessageAttachmentContext;
 import org.apache.axis2.jaxws.spi.Constants;
 
 import javax.xml.bind.JAXBContext;
-import javax.xml.bind.attachment.AttachmentMarshaller;
-import javax.xml.bind.attachment.AttachmentUnmarshaller;
-import javax.xml.stream.XMLStreamWriter;
 import java.util.TreeSet;
 
 /*
@@ -89,13 +85,8 @@
     }
 
     @Override
-    protected AttachmentMarshaller createAttachmentMarshaller(XMLStreamWriter writer) {
-        return new JAXBAttachmentMarshaller(getMessage(), writer);
-    }
-    
-    @Override
-    protected AttachmentUnmarshaller createAttachmentUnmarshaller(MimePartProvider mimePartProvider) {
-        return new JAXBAttachmentUnmarshaller(mimePartProvider, getMessage());
+    protected AttachmentContext createAttachmentContext() {
+        return new MessageAttachmentContext(getMessage());
     }
 
     public ClassLoader getClassLoader() {
diff --git a/modules/jaxws/src/org/apache/axis2/jaxws/message/databinding/OMBlock.java b/modules/jaxws/src/org/apache/axis2/jaxws/message/databinding/OMBlock.java
index 473b403..4187436 100644
--- a/modules/jaxws/src/org/apache/axis2/jaxws/message/databinding/OMBlock.java
+++ b/modules/jaxws/src/org/apache/axis2/jaxws/message/databinding/OMBlock.java
@@ -19,9 +19,10 @@
 
 package org.apache.axis2.jaxws.message.databinding;
 
+import org.apache.axiom.om.OMElement;
 import org.apache.axis2.jaxws.message.Block;
 
 /** OMBlock Block represented by an OMElement object */
-public interface OMBlock extends Block {
+public interface OMBlock extends Block<OMElement,Void> {
 
 }
diff --git a/modules/jaxws/src/org/apache/axis2/jaxws/message/databinding/ParsedEntityReader.java b/modules/jaxws/src/org/apache/axis2/jaxws/message/databinding/ParsedEntityReader.java
deleted file mode 100644
index 6b2f5dc..0000000
--- a/modules/jaxws/src/org/apache/axis2/jaxws/message/databinding/ParsedEntityReader.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*

- * Licensed to the Apache Software Foundation (ASF) under one

- * or more contributor license agreements. See the NOTICE file

- * distributed with this work for additional information

- * regarding copyright ownership. The ASF licenses this file

- * to you under the Apache License, Version 2.0 (the

- * "License"); you may not use this file except in compliance

- * with the License. You may obtain a copy of the License at

- *

- * http://www.apache.org/licenses/LICENSE-2.0

- *

- * Unless required by applicable law or agreed to in writing,

- * software distributed under the License is distributed on an

- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

- * KIND, either express or implied. See the License for the

- * specific language governing permissions and limitations

- * under the License.

- */

-package org.apache.axis2.jaxws.message.databinding;

-

-import java.io.InputStream;

-

-import javax.xml.stream.XMLStreamReader;

-

-/**

- * This interface will be used to read data stream directly from a parser.

- *

- */

-public interface ParsedEntityReader {

-	/*

-	 * Reader content from parser

-	 */

-	public InputStream readParsedEntityStream(XMLStreamReader reader);

-

-	/*

-	 * Check if parser has ability to provide input stream for un read content.

-	 */

-	public boolean isParsedEntityStreamAvailable();

-}

diff --git a/modules/jaxws/src/org/apache/axis2/jaxws/message/databinding/SOAPEnvelopeBlock.java b/modules/jaxws/src/org/apache/axis2/jaxws/message/databinding/SOAPEnvelopeBlock.java
index c5a1b17..438b72a 100644
--- a/modules/jaxws/src/org/apache/axis2/jaxws/message/databinding/SOAPEnvelopeBlock.java
+++ b/modules/jaxws/src/org/apache/axis2/jaxws/message/databinding/SOAPEnvelopeBlock.java
@@ -19,12 +19,14 @@
 
 package org.apache.axis2.jaxws.message.databinding;
 
+import javax.xml.soap.SOAPEnvelope;
+
 import org.apache.axis2.jaxws.message.Block;
 
 /**
  * SOAPEnvelopeBlock Block represented by an SAAJ SOAPEnvelope. This kind of block is useful for
  * building the initial Message
  */
-public interface SOAPEnvelopeBlock extends Block {
+public interface SOAPEnvelopeBlock extends Block<SOAPEnvelope,Void> {
 
 }
diff --git a/modules/jaxws/src/org/apache/axis2/jaxws/message/databinding/SourceBlock.java b/modules/jaxws/src/org/apache/axis2/jaxws/message/databinding/SourceBlock.java
index f300b6e..79c15e7 100644
--- a/modules/jaxws/src/org/apache/axis2/jaxws/message/databinding/SourceBlock.java
+++ b/modules/jaxws/src/org/apache/axis2/jaxws/message/databinding/SourceBlock.java
@@ -19,9 +19,11 @@
 
 package org.apache.axis2.jaxws.message.databinding;
 
+import javax.xml.transform.Source;
+
 import org.apache.axis2.jaxws.message.Block;
 
 /** SourceBlock Block with a business object that is a javax.xml.transform.Source */
-public interface SourceBlock extends Block {
+public interface SourceBlock extends Block<Source,Void> {
 
 }
diff --git a/modules/jaxws/src/org/apache/axis2/jaxws/message/databinding/XMLStringBlock.java b/modules/jaxws/src/org/apache/axis2/jaxws/message/databinding/XMLStringBlock.java
index f5bb43e..5a562d7 100644
--- a/modules/jaxws/src/org/apache/axis2/jaxws/message/databinding/XMLStringBlock.java
+++ b/modules/jaxws/src/org/apache/axis2/jaxws/message/databinding/XMLStringBlock.java
@@ -22,6 +22,6 @@
 import org.apache.axis2.jaxws.message.Block;
 
 /** XMLStringBlock Block with a business object that is a String containing xml text */
-public interface XMLStringBlock extends Block {
+public interface XMLStringBlock extends Block<String,Void> {
 
 }
diff --git a/modules/jaxws/src/org/apache/axis2/jaxws/message/databinding/impl/DataSourceBlockImpl.java b/modules/jaxws/src/org/apache/axis2/jaxws/message/databinding/impl/DataSourceBlockImpl.java
index c893a63..5197c0b 100644
--- a/modules/jaxws/src/org/apache/axis2/jaxws/message/databinding/impl/DataSourceBlockImpl.java
+++ b/modules/jaxws/src/org/apache/axis2/jaxws/message/databinding/impl/DataSourceBlockImpl.java
@@ -19,44 +19,30 @@
 

 package org.apache.axis2.jaxws.message.databinding.impl;

 

-import org.apache.axiom.attachments.impl.BufferUtils;

 import org.apache.axiom.om.OMAbstractFactory;

-import org.apache.axiom.om.OMDataSource;

 import org.apache.axiom.om.OMElement;

 import org.apache.axiom.om.OMFactory;

 import org.apache.axiom.om.OMNamespace;

-import org.apache.axiom.om.OMOutputFormat;

 import org.apache.axiom.om.OMSourcedElement;

 import org.apache.axiom.om.util.StAXUtils;

 import org.apache.axiom.soap.SOAP11Constants;

-import org.apache.axis2.datasource.SourceDataSource;

-import org.apache.axis2.java.security.AccessController;

+import org.apache.axis2.builder.DataSourceBuilder;

 import org.apache.axis2.jaxws.ExceptionFactory;

 import org.apache.axis2.jaxws.i18n.Messages;

 import org.apache.axis2.jaxws.message.databinding.DataSourceBlock;

 import org.apache.axis2.jaxws.message.factory.BlockFactory;

 import org.apache.axis2.jaxws.message.impl.BlockImpl;

-import org.apache.axis2.jaxws.message.util.Reader2Writer;

-import org.apache.axis2.jaxws.utility.ConvertUtils;

 import org.apache.commons.logging.Log;

 import org.apache.commons.logging.LogFactory;

 

 import javax.activation.DataSource;

 import javax.mail.util.ByteArrayDataSource;

 import javax.xml.namespace.QName;

-import javax.xml.stream.XMLInputFactory;

 import javax.xml.stream.XMLStreamException;

 import javax.xml.stream.XMLStreamReader;

 import javax.xml.stream.XMLStreamWriter;

 import javax.xml.ws.WebServiceException;

-import java.io.ByteArrayInputStream;

 import java.io.ByteArrayOutputStream;

-import java.io.IOException;

-import java.io.InputStream;

-import java.io.OutputStream;

-import java.io.UnsupportedEncodingException;

-import java.security.PrivilegedActionException;

-import java.security.PrivilegedExceptionAction;

 

 /**

  * SourceBlock

@@ -64,7 +50,7 @@
  * Block containing a business object that is a javax.activation.DataSource

  * <p/>

  */

-public class DataSourceBlockImpl extends BlockImpl implements DataSourceBlock {

+public class DataSourceBlockImpl extends BlockImpl<DataSource,Void> implements DataSourceBlock {

 

     private static final Log log = LogFactory.getLog(DataSourceBlockImpl.class);

 

@@ -78,11 +64,6 @@
     DataSourceBlockImpl(DataSource busObject, QName qName, BlockFactory factory)

             throws WebServiceException {

         super(busObject, null, qName, factory);

-        // Check validity of DataSource

-        if (!(busObject instanceof DataSource)) {

-            throw ExceptionFactory.makeWebServiceException(

-                    Messages.getMessage("SourceNotSupported", busObject.getClass().getName()));

-        }

     }

 

 

@@ -97,16 +78,7 @@
         super(omElement, null, qName, factory);

     }

 

-    protected Object _getBOFromReader(XMLStreamReader reader, Object busContext) throws XMLStreamException, WebServiceException {

-        Reader2Writer r2w = new Reader2Writer(reader);

-        try {

-            return new ByteArrayDataSource(r2w.getAsString(), "application/octet-stream");

-        } catch (IOException e) {

-            throw new XMLStreamException(e);

-        }

-

-    }

-

+    @Override

     public OMElement getOMElement() throws XMLStreamException, WebServiceException {

         OMFactory factory = OMAbstractFactory.getOMFactory();

         OMNamespace ns = factory.createOMNamespace("", "");

@@ -114,17 +86,18 @@
     }

 

     @Override

-    protected Object _getBOFromOM(OMElement omElement, Object busContext)

+    protected DataSource _getBOFromOM(OMElement omElement, Void busContext)

         throws XMLStreamException, WebServiceException {

-        Object busObject;

+        DataSource busObject;

         

         // Shortcut to get business object from existing data source

-        if (omElement instanceof OMSourcedElement) {

-            OMDataSource ds = ((OMSourcedElement) omElement).getDataSource();

-            if (ds instanceof SourceDataSource) {

-                return ((SourceDataSource) ds).getObject();

-            }

-        }

+        // TODO: incorrect (wrong type)

+//        if (omElement instanceof OMSourcedElement) {

+//            OMDataSource ds = ((OMSourcedElement) omElement).getDataSource();

+//            if (ds instanceof SourceDataSource) {

+//                return ((SourceDataSource) ds).getObject();

+//            }

+//        }

         

         // If the message is a fault, there are some special gymnastics that we have to do

         // to get this working for all of the handler scenarios.  

@@ -136,7 +109,7 @@
         

         // Transform reader into business object

         if (!hasFault) {

-            busObject = ((OMSourcedElement)omElement).getDataSource();

+            busObject = (DataSourceBuilder.ByteArrayDataSourceEx)((OMSourcedElement)omElement).getDataSource();

         }

         else {

             ByteArrayOutputStream baos = new ByteArrayOutputStream();

@@ -147,18 +120,10 @@
     }

 

     @Override

-    protected XMLStreamReader _getReaderFromBO(Object busObj, Object busContext)

+    protected XMLStreamReader _getReaderFromBO(DataSource busObj, Void busContext)

             throws XMLStreamException, WebServiceException {

         try {

-            if (busObj instanceof DataSource) {

-                XMLInputFactory f = StAXUtils.getXMLInputFactory();

-

-                XMLStreamReader reader = f.createXMLStreamReader(((DataSource)busObj).getInputStream());

-                StAXUtils.releaseXMLInputFactory(f);

-                return reader;

-            }

-            throw ExceptionFactory.makeWebServiceException(

-                    Messages.getMessage("SourceNotSupported", busObject.getClass().getName()));

+            return StAXUtils.createXMLStreamReader(busObj.getInputStream());

         } catch (Exception e) {

             String className = (busObj == null) ? "none" : busObj.getClass().getName();

             throw ExceptionFactory

@@ -166,16 +131,8 @@
         }

     }

     

-    public void serialize(OutputStream output, OMOutputFormat format) throws XMLStreamException {

-        try {

-            BufferUtils.inputStream2OutputStream(((DataSource)busObject).getInputStream(), output);

-        } catch (IOException e) {

-            throw new XMLStreamException(e);

-        }

-    }

-    

     @Override

-    protected void _outputFromBO(Object busObject, Object busContext, XMLStreamWriter writer)

+    protected void _outputFromBO(DataSource busObject, Void busContext, XMLStreamWriter writer)

             throws XMLStreamException, WebServiceException {

         // There is no fast way to output the Source to a writer, so get the reader

         // and pass use the default reader->writer.

@@ -195,7 +152,7 @@
 

 

     @Override

-    protected Object _getBOFromBO(Object busObject, Object busContext, boolean consume) {

+    protected DataSource _getBOFromBO(DataSource busObject, Void busContext, boolean consume) {

         if (consume) {

             return busObject;

         } else {

@@ -205,50 +162,17 @@
         }

     }

 

+    @Override

     public boolean isElementData() {

         return false;  // The source could be a text or element etc.

     }

 

-    /**

-     * Return the class for this name

-     * @return Class

-     */

-    private static Class forName(final String className) throws ClassNotFoundException {

-        // NOTE: This method must remain private because it uses AccessController

-        Class cl = null;

-        try {

-            cl = (Class)AccessController.doPrivileged(

-                    new PrivilegedExceptionAction() {

-                        public Object run() throws ClassNotFoundException {

-                            return Class.forName(className);

-                        }

-                    }

-            );

-        } catch (PrivilegedActionException e) {

-            if (log.isDebugEnabled()) {

-                log.debug("Exception thrown from AccessController: " + e);

-            }

-            throw (ClassNotFoundException)e.getException();

-        }

-

-        return cl;

-    }

-    

-    

+    @Override

     public void close() {

         return; // Nothing to close

     }

 

-    public InputStream getXMLInputStream(String encoding) throws UnsupportedEncodingException {

-        try {

-            byte[] bytes = (byte[]) 

-                ConvertUtils.convert(getBusinessObject(false), byte[].class);

-            return new ByteArrayInputStream(bytes);

-        } catch (XMLStreamException e) {

-            throw ExceptionFactory.makeWebServiceException(e);

-        }

-    }

-

+    @Override

     public Object getObject() {

         try {

             return getBusinessObject(false);

@@ -257,29 +181,13 @@
         }

     }

 

+    @Override

     public boolean isDestructiveRead() {

         return true;

     }

 

+    @Override

     public boolean isDestructiveWrite() {

         return true;

     }

-

-

-    public byte[] getXMLBytes(String encoding) throws UnsupportedEncodingException {

-        if (log.isDebugEnabled()) {

-            log.debug("Start getXMLBytes");

-        }

-        byte[] bytes = null;

-        try {

-            bytes = (byte[]) 

-                ConvertUtils.convert(getBusinessObject(false), byte[].class);

-        } catch (XMLStreamException e) {

-            throw ExceptionFactory.makeWebServiceException(e);

-        }

-        if (log.isDebugEnabled()) {

-            log.debug("End getXMLBytes");

-        }

-        return bytes;

-    }

 }
\ No newline at end of file
diff --git a/modules/jaxws/src/org/apache/axis2/jaxws/message/databinding/impl/JAXBBlockImpl.java b/modules/jaxws/src/org/apache/axis2/jaxws/message/databinding/impl/JAXBBlockImpl.java
index 8c626a7..5cfdb19 100644
--- a/modules/jaxws/src/org/apache/axis2/jaxws/message/databinding/impl/JAXBBlockImpl.java
+++ b/modules/jaxws/src/org/apache/axis2/jaxws/message/databinding/impl/JAXBBlockImpl.java
@@ -24,7 +24,6 @@
 import org.apache.axiom.om.OMElement;
 import org.apache.axiom.om.OMException;
 import org.apache.axiom.om.OMSourcedElement;
-import org.apache.axiom.om.OMXMLStreamReader;
 import org.apache.axiom.om.util.StAXUtils;
 import org.apache.axis2.datasource.jaxb.JAXBDSContext;
 import org.apache.axis2.datasource.jaxb.JAXBDataSource;
@@ -46,14 +45,12 @@
 import javax.xml.ws.WebServiceException;
 import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
-import java.io.InputStream;
-import java.io.UnsupportedEncodingException;
 
 /**
  * JAXBBlockImpl <p/> A Block containing a JAXB business object (either a JAXBElement or an object
  * with @XmlRootElement).
  */
-public class JAXBBlockImpl extends BlockImpl implements JAXBBlock {
+public class JAXBBlockImpl extends BlockImpl<Object,JAXBBlockContext> implements JAXBBlock {
 
     private static final Log log = LogFactory.getLog(JAXBBlockImpl.class);
 
@@ -87,28 +84,8 @@
         super(omElement, busContext, qName, factory);
     }
 
-    protected Object _getBOFromReader(XMLStreamReader reader, Object busContext)
-        throws XMLStreamException, WebServiceException {
-        // Get the JAXBBlockContext. All of the necessry information is recorded on it
-        JAXBBlockContext ctx = (JAXBBlockContext) busContext;
-        
-        try {
-            busObject = ctx.unmarshal(reader);
-        } catch (JAXBException je) {
-            if (DEBUG_ENABLED) {
-                try {
-                    log.debug("JAXBContext for unmarshal failure:" + 
-                              ctx.getJAXBContext(ctx.getClassLoader()));
-                } catch (Exception e) {
-                }
-            }
-            throw ExceptionFactory.makeWebServiceException(je);
-        }
-        return busObject;
-    }
-    
     @Override
-    protected Object _getBOFromOM(OMElement omElement, Object busContext)
+    protected Object _getBOFromOM(OMElement omElement, JAXBBlockContext busContext)
         throws XMLStreamException, WebServiceException {
         
         // Shortcut to get business object from existing data source
@@ -133,7 +110,19 @@
                 return ((JAXBBlockImpl) ds).getObject();
             }
         }
-        return super._getBOFromOM(omElement, busContext);
+        
+        try {
+            return busContext.unmarshal(omElement);
+        } catch (JAXBException je) {
+            if (DEBUG_ENABLED) {
+                try {
+                    log.debug("JAXBContext for unmarshal failure:" + 
+                              busContext.getJAXBContext(busContext.getClassLoader()));
+                } catch (Exception e) {
+                }
+            }
+            throw ExceptionFactory.makeWebServiceException(je);
+        }
     }
 
     /**
@@ -143,7 +132,7 @@
      * @throws XMLStreamException
      * @throws WebServiceException
      */
-    private byte[] _getBytesFromBO(Object busObj, Object busContext, String encoding)
+    private byte[] _getBytesFromBO(Object busObj, JAXBBlockContext busContext, String encoding)
         throws XMLStreamException, WebServiceException {
         ByteArrayOutputStream baos = new ByteArrayOutputStream();
 
@@ -161,37 +150,23 @@
 
 
     @Override
-    protected XMLStreamReader _getReaderFromBO(Object busObj, Object busContext)
+    protected XMLStreamReader _getReaderFromBO(Object busObj, JAXBBlockContext busContext)
         throws XMLStreamException, WebServiceException {
         ByteArrayInputStream baos =
                 new ByteArrayInputStream(_getBytesFromBO(busObj, busContext, "utf-8"));
         return StAXUtils.createXMLStreamReader(baos, "utf-8");
     }
     
-    protected XMLStreamReader _getReaderFromOM(OMElement omElement) {
-        XMLStreamReader reader;
-        if (omElement.getBuilder() != null && !omElement.getBuilder().isCompleted()) {
-            reader = omElement.getXMLStreamReaderWithoutCaching();
-        } else {
-            reader = omElement.getXMLStreamReader();
-        }
-        if (reader instanceof OMXMLStreamReader) {
-            ((OMXMLStreamReader)reader).setInlineMTOM(false);  // Optimize attachment usage
-        }
-        return reader;
-    }
-
-    protected void _outputFromBO(Object busObject, Object busContext, XMLStreamWriter writer)
+    @Override
+    protected void _outputFromBO(Object busObject, JAXBBlockContext busContext, XMLStreamWriter writer)
         throws XMLStreamException, WebServiceException {
-        JAXBBlockContext ctx = (JAXBBlockContext) busContext;
-        
         try {
-            ctx.marshal(busObject, writer);
+            busContext.marshal(busObject, writer);
         } catch (JAXBException je) {
             if (DEBUG_ENABLED) {
                 try {
                     log.debug("JAXBContext for marshal failure:" + 
-                              ctx.getJAXBContext(ctx.getClassLoader()));
+                              busContext.getJAXBContext(busContext.getClassLoader()));
                 } catch (Exception e) {
                 }
             }
@@ -199,26 +174,17 @@
         }
     }
 
+    @Override
     public boolean isElementData() {
         return true;
     }
     
+    @Override
     public void close() {
         return; // Nothing to close
     }
 
-    public InputStream getXMLInputStream(String encoding) throws UnsupportedEncodingException {
-        try {
-            byte[] bytes= _getBytesFromBO(
-                                          getBusinessObject(false), 
-                                          busContext, 
-                                          encoding);
-            return new ByteArrayInputStream(bytes);
-        } catch (XMLStreamException e) {
-            throw ExceptionFactory.makeWebServiceException(e);
-        }
-    }
-
+    @Override
     public Object getObject() {
         try {
             return getBusinessObject(false);
@@ -227,14 +193,17 @@
         }
     }
 
+    @Override
     public boolean isDestructiveRead() {
         return false;
     }
 
+    @Override
     public boolean isDestructiveWrite() {
         return false;
     }
     
+    @Override
     public OMDataSourceExt copy() throws OMException {
         
         if (DEBUG_ENABLED) {
@@ -244,19 +213,10 @@
                                   (JAXBDSContext) this.getBusinessContext());
     }
 
-    public byte[] getXMLBytes(String encoding) throws UnsupportedEncodingException {
-        try {
-            return _getBytesFromBO(getBusinessObject(false), 
-                                   busContext, 
-                                   encoding);
-        } catch (XMLStreamException e) {
-            throw ExceptionFactory.makeWebServiceException(e);
-        }
-    }
-
+    @Override
     public void setParent(Message message) {
         if (busContext != null) {
-            ((JAXBBlockContext) busContext).setMessage(message);
+            busContext.setMessage(message);
         }
         super.setParent(message);
     }
diff --git a/modules/jaxws/src/org/apache/axis2/jaxws/message/databinding/impl/OMBlockImpl.java b/modules/jaxws/src/org/apache/axis2/jaxws/message/databinding/impl/OMBlockImpl.java
index 0ee4903..cd854d9 100644
--- a/modules/jaxws/src/org/apache/axis2/jaxws/message/databinding/impl/OMBlockImpl.java
+++ b/modules/jaxws/src/org/apache/axis2/jaxws/message/databinding/impl/OMBlockImpl.java
@@ -20,7 +20,6 @@
 package org.apache.axis2.jaxws.message.databinding.impl;
 
 import org.apache.axiom.om.OMElement;
-import org.apache.axiom.om.OMOutputFormat;
 import org.apache.axis2.jaxws.ExceptionFactory;
 import org.apache.axis2.jaxws.message.databinding.OMBlock;
 import org.apache.axis2.jaxws.message.factory.BlockFactory;
@@ -30,14 +29,9 @@
 import javax.xml.stream.XMLStreamReader;
 import javax.xml.stream.XMLStreamWriter;
 import javax.xml.ws.WebServiceException;
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.UnsupportedEncodingException;
 
 /** OMBlockImpl Block with a business object that is an OMElement */
-public class OMBlockImpl extends BlockImpl implements OMBlock {
+public class OMBlockImpl extends BlockImpl<OMElement,Void> implements OMBlock {
 
 
     /**
@@ -47,57 +41,47 @@
      * @param factory
      */
     OMBlockImpl(OMElement busObject, BlockFactory factory) {
-        super(busObject,
-              null,
+        super(null,
+              busObject,
               busObject.getQName(),
               factory);
     }
 
     @Override
-    protected Object _getBOFromReader(XMLStreamReader reader, Object busContext)
+    protected XMLStreamReader _getReaderFromBO(OMElement busObj, Void busContext)
             throws XMLStreamException, WebServiceException {
-        // Take a shortcut and return the OMElement
-        return this.getOMElement();
-    }
-
-    @Override
-    protected XMLStreamReader _getReaderFromBO(Object busObj, Object busContext)
-            throws XMLStreamException, WebServiceException {
-        OMElement om = (OMElement)busObj;
-        return om.getXMLStreamReader();
+        return busObj.getXMLStreamReader();
     }
     
     @Override
-    protected Object _getBOFromOM(OMElement om, Object busContext)
+    protected OMElement _getBOFromOM(OMElement om, Void busContext)
         throws XMLStreamException, WebServiceException {
         return om;
     }
     
     @Override
-    protected OMElement _getOMFromBO(Object busObject, Object busContext)
+    protected OMElement _getOMFromBO(OMElement busObject, Void busContext)
         throws XMLStreamException, WebServiceException {
-        return (OMElement) busObject;
+        return busObject;
     }
 
     @Override
-    protected void _outputFromBO(Object busObject, Object busContext, XMLStreamWriter writer)
+    protected void _outputFromBO(OMElement busObject, Void busContext, XMLStreamWriter writer)
             throws XMLStreamException, WebServiceException {
-        OMElement om = (OMElement)busObject;
-        om.serialize(writer);
+        busObject.serialize(writer);
     }
 
+    @Override
     public boolean isElementData() {
         return true;
     }
+
+    @Override
     public void close() {
         return; // Nothing to close
     }
 
-    public InputStream getXMLInputStream(String encoding) throws UnsupportedEncodingException {
-        byte[] bytes = getXMLBytes(encoding);
-        return new ByteArrayInputStream(bytes);
-    }
-
+    @Override
     public Object getObject() {
         try {
             return getBusinessObject(false);
@@ -106,26 +90,13 @@
         }
     }
 
+    @Override
     public boolean isDestructiveRead() {
         return false;
     }
 
+    @Override
     public boolean isDestructiveWrite() {
         return false;
     }
-
-    public byte[] getXMLBytes(String encoding) throws UnsupportedEncodingException {
-        ByteArrayOutputStream baos = new ByteArrayOutputStream();
-        OMOutputFormat format = new OMOutputFormat();
-        format.setCharSetEncoding(encoding);
-        try {
-            serialize(baos, format);
-            baos.flush();
-            return baos.toByteArray();
-        } catch (XMLStreamException e) {
-            throw ExceptionFactory.makeWebServiceException(e);
-        } catch (IOException e) {
-            throw ExceptionFactory.makeWebServiceException(e);
-        }
-    }
 }
diff --git a/modules/jaxws/src/org/apache/axis2/jaxws/message/databinding/impl/ParsedEntityReaderImpl.java b/modules/jaxws/src/org/apache/axis2/jaxws/message/databinding/impl/ParsedEntityReaderImpl.java
deleted file mode 100644
index 2c31206..0000000
--- a/modules/jaxws/src/org/apache/axis2/jaxws/message/databinding/impl/ParsedEntityReaderImpl.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*

- * Licensed to the Apache Software Foundation (ASF) under one

- * or more contributor license agreements. See the NOTICE file

- * distributed with this work for additional information

- * regarding copyright ownership. The ASF licenses this file

- * to you under the Apache License, Version 2.0 (the

- * "License"); you may not use this file except in compliance

- * with the License. You may obtain a copy of the License at

- *

- * http://www.apache.org/licenses/LICENSE-2.0

- *

- * Unless required by applicable law or agreed to in writing,

- * software distributed under the License is distributed on an

- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

- * KIND, either express or implied. See the License for the

- * specific language governing permissions and limitations

- * under the License.

- */

-package org.apache.axis2.jaxws.message.databinding.impl;

-

-import java.io.InputStream;

-

-import javax.xml.stream.XMLStreamReader;

-

-import org.apache.axis2.jaxws.message.databinding.ParsedEntityReader;

-

-public class ParsedEntityReaderImpl implements ParsedEntityReader {

-	private boolean available = false;

-	public InputStream readParsedEntityStream(XMLStreamReader parser) {

-		if(parser== null){

-			return null;

-		}

-		else{

-			return null;

-		}

-	}

-

-	public boolean isParsedEntityStreamAvailable() {

-		return available;

-	}

-	

-	public void setParsedEntityStreamAvailable(boolean available){

-		this.available = available;

-	}

-}

diff --git a/modules/jaxws/src/org/apache/axis2/jaxws/message/databinding/impl/SOAPEnvelopeBlockFactoryImpl.java b/modules/jaxws/src/org/apache/axis2/jaxws/message/databinding/impl/SOAPEnvelopeBlockFactoryImpl.java
index 1722998..9645b17 100644
--- a/modules/jaxws/src/org/apache/axis2/jaxws/message/databinding/impl/SOAPEnvelopeBlockFactoryImpl.java
+++ b/modules/jaxws/src/org/apache/axis2/jaxws/message/databinding/impl/SOAPEnvelopeBlockFactoryImpl.java
@@ -46,7 +46,7 @@
       */
     public Block createFrom(OMElement omElement, Object context, QName qName)
             throws XMLStreamException {
-        return new SOAPEnvelopeBlockImpl(omElement, null, qName, this);
+        return new SOAPEnvelopeBlockImpl(omElement, qName, this);
     }
 
     /* (non-Javadoc)
@@ -54,7 +54,7 @@
       */
     public Block createFrom(Object businessObject, Object context, QName qName)
             throws WebServiceException {
-        return new SOAPEnvelopeBlockImpl((SOAPEnvelope)businessObject, null, qName, this);
+        return new SOAPEnvelopeBlockImpl((SOAPEnvelope)businessObject, qName, this);
     }
 
     public boolean isElement() {
diff --git a/modules/jaxws/src/org/apache/axis2/jaxws/message/databinding/impl/SOAPEnvelopeBlockImpl.java b/modules/jaxws/src/org/apache/axis2/jaxws/message/databinding/impl/SOAPEnvelopeBlockImpl.java
index e60800b..1673bb6 100644
--- a/modules/jaxws/src/org/apache/axis2/jaxws/message/databinding/impl/SOAPEnvelopeBlockImpl.java
+++ b/modules/jaxws/src/org/apache/axis2/jaxws/message/databinding/impl/SOAPEnvelopeBlockImpl.java
@@ -23,34 +23,28 @@
 package org.apache.axis2.jaxws.message.databinding.impl;
 
 import org.apache.axiom.om.OMElement;
-import org.apache.axiom.om.OMOutputFormat;
+import org.apache.axiom.om.OMXMLBuilderFactory;
 import org.apache.axis2.jaxws.ExceptionFactory;
 import org.apache.axis2.jaxws.message.Message;
 import org.apache.axis2.jaxws.message.databinding.SOAPEnvelopeBlock;
 import org.apache.axis2.jaxws.message.factory.BlockFactory;
 import org.apache.axis2.jaxws.message.factory.MessageFactory;
 import org.apache.axis2.jaxws.message.impl.BlockImpl;
-import org.apache.axis2.jaxws.message.util.SOAPElementReader;
 import org.apache.axis2.jaxws.registry.FactoryRegistry;
 
 import javax.xml.namespace.QName;
-import javax.xml.soap.SOAPElement;
 import javax.xml.soap.SOAPEnvelope;
 import javax.xml.stream.XMLStreamException;
 import javax.xml.stream.XMLStreamReader;
 import javax.xml.stream.XMLStreamWriter;
+import javax.xml.transform.dom.DOMSource;
 import javax.xml.ws.WebServiceException;
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.UnsupportedEncodingException;
 
 /**
  * 
  *
  */
-public class SOAPEnvelopeBlockImpl extends BlockImpl implements SOAPEnvelopeBlock {
+public class SOAPEnvelopeBlockImpl extends BlockImpl<SOAPEnvelope,Void> implements SOAPEnvelopeBlock {
 
     /**
      * Called by SOAPEnvelopeBlockFactory
@@ -60,11 +54,11 @@
      * @param qName
      * @param factory
      */
-    public SOAPEnvelopeBlockImpl(Object busObject, Object busContext,
+    public SOAPEnvelopeBlockImpl(SOAPEnvelope busObject,
                                  QName qName, BlockFactory factory) {
         super(busObject,
-              busContext,
-              (qName == null) ? getQName((SOAPEnvelope)busObject) : qName,
+              null,
+              (qName == null) ? getQName(busObject) : qName,
               factory);
     }
 
@@ -76,19 +70,16 @@
      * @param qName
      * @param factory
      */
-    public SOAPEnvelopeBlockImpl(OMElement omElement, Object busContext,
+    public SOAPEnvelopeBlockImpl(OMElement omElement,
                                  QName qName, BlockFactory factory) {
-        super(omElement, busContext, qName, factory);
+        super(omElement, null, qName, factory);
     }
 
-    /* (non-Javadoc)
-      * @see org.apache.axis2.jaxws.message.impl.BlockImpl#_getBOFromReader(javax.xml.stream.XMLStreamReader, java.lang.Object)
-      */
     @Override
-    protected Object _getBOFromReader(XMLStreamReader reader, Object busContext)
+    protected SOAPEnvelope _getBOFromOM(OMElement omElement, Void busContext)
             throws XMLStreamException, WebServiceException {
         MessageFactory mf = (MessageFactory)FactoryRegistry.getFactory(MessageFactory.class);
-        Message message = mf.createFrom(reader, null);
+        Message message = mf.createFrom(omElement.getXMLStreamReader(false), null);
         SOAPEnvelope env = message.getAsSOAPEnvelope();
         this.setQName(getQName(env));
         return env;
@@ -98,16 +89,16 @@
       * @see org.apache.axis2.jaxws.message.impl.BlockImpl#_getReaderFromBO(java.lang.Object, java.lang.Object)
       */
     @Override
-    protected XMLStreamReader _getReaderFromBO(Object busObj, Object busContext)
+    protected XMLStreamReader _getReaderFromBO(SOAPEnvelope busObj, Void busContext)
             throws XMLStreamException, WebServiceException {
-        return new SOAPElementReader((SOAPElement)busObj);
+        return OMXMLBuilderFactory.createOMBuilder(new DOMSource(busObj)).getDocument().getXMLStreamReader(false);
     }
 
     /* (non-Javadoc)
       * @see org.apache.axis2.jaxws.message.impl.BlockImpl#_outputFromBO(java.lang.Object, java.lang.Object, javax.xml.stream.XMLStreamWriter)
       */
     @Override
-    protected void _outputFromBO(Object busObject, Object busContext,
+    protected void _outputFromBO(SOAPEnvelope busObject, Void busContext,
                                  XMLStreamWriter writer)
             throws XMLStreamException, WebServiceException {
         XMLStreamReader reader = _getReaderFromBO(busObject, busContext);
@@ -124,19 +115,17 @@
         return new QName(env.getNamespaceURI(), env.getLocalName(), env.getPrefix());
     }
 
+    @Override
     public boolean isElementData() {
         return true;
     }
     
+    @Override
     public void close() {
         return; // Nothing to close
     }
 
-    public InputStream getXMLInputStream(String encoding) throws UnsupportedEncodingException {
-        byte[] bytes = getXMLBytes(encoding);
-        return new ByteArrayInputStream(bytes);
-    }
-
+    @Override
     public Object getObject() {
         try {
             return getBusinessObject(false);
@@ -145,26 +134,13 @@
         }
     }
 
+    @Override
     public boolean isDestructiveRead() {
         return false;
     }
 
+    @Override
     public boolean isDestructiveWrite() {
         return false;
     }
-
-    public byte[] getXMLBytes(String encoding) throws UnsupportedEncodingException {
-        ByteArrayOutputStream baos = new ByteArrayOutputStream();
-        OMOutputFormat format = new OMOutputFormat();
-        format.setCharSetEncoding(encoding);
-        try {
-            serialize(baos, format);
-            baos.flush();
-            return baos.toByteArray();
-        } catch (XMLStreamException e) {
-            throw ExceptionFactory.makeWebServiceException(e);
-        } catch (IOException e) {
-            throw ExceptionFactory.makeWebServiceException(e);
-        }
-    }
 }
diff --git a/modules/jaxws/src/org/apache/axis2/jaxws/message/databinding/impl/SourceBlockImpl.java b/modules/jaxws/src/org/apache/axis2/jaxws/message/databinding/impl/SourceBlockImpl.java
index 1289425..c575c4d 100644
--- a/modules/jaxws/src/org/apache/axis2/jaxws/message/databinding/impl/SourceBlockImpl.java
+++ b/modules/jaxws/src/org/apache/axis2/jaxws/message/databinding/impl/SourceBlockImpl.java
@@ -19,19 +19,19 @@
 
 package org.apache.axis2.jaxws.message.databinding.impl;
 
+import org.apache.axiom.blob.Blobs;
+import org.apache.axiom.blob.MemoryBlob;
 import org.apache.axiom.om.OMDataSource;
 import org.apache.axiom.om.OMElement;
 import org.apache.axiom.om.OMSourcedElement;
 import org.apache.axiom.om.util.StAXUtils;
 import org.apache.axiom.soap.SOAP11Constants;
 import org.apache.axis2.datasource.SourceDataSource;
-import org.apache.axis2.java.security.AccessController;
 import org.apache.axis2.jaxws.ExceptionFactory;
 import org.apache.axis2.jaxws.i18n.Messages;
 import org.apache.axis2.jaxws.message.databinding.SourceBlock;
 import org.apache.axis2.jaxws.message.factory.BlockFactory;
 import org.apache.axis2.jaxws.message.impl.BlockImpl;
-import org.apache.axis2.jaxws.message.util.Reader2Writer;
 import org.apache.axis2.jaxws.utility.ConvertUtils;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
@@ -45,15 +45,12 @@
 import javax.xml.transform.Source;
 import javax.xml.transform.dom.DOMSource;
 import javax.xml.transform.sax.SAXSource;
+import javax.xml.transform.stax.StAXSource;
 import javax.xml.transform.stream.StreamSource;
 import javax.xml.ws.WebServiceException;
 import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.InputStream;
-import java.io.StringReader;
-import java.io.UnsupportedEncodingException;
-import java.security.PrivilegedActionException;
-import java.security.PrivilegedExceptionAction;
+import java.io.IOException;
+import java.io.OutputStream;
 
 /**
  * SourceBlock
@@ -70,29 +67,9 @@
  * A Source is consumed when read.  The block will make a copy of the source if a non-consumable
  * request is made.
  */
-public class SourceBlockImpl extends BlockImpl implements SourceBlock {
+public class SourceBlockImpl extends BlockImpl<Source,Void> implements SourceBlock {
 
     private static final Log log = LogFactory.getLog(SourceBlockImpl.class);
-    private static Class staxSource = null;
-
-    static {
-        try {
-            // Dynamically discover if StAXSource is available
-            staxSource = forName("javax.xml.transform.stax.StAXSource");
-        } catch (Exception e) {
-            if (log.isDebugEnabled()) {
-                log.debug("StAXSource is not present in the JDK.  " +
-                                "This is acceptable.  Processing continues");
-            }
-        }
-        try {
-            // Woodstox does not work with StAXSource
-            if(XMLInputFactory.newInstance().getClass().getName().indexOf("wstx")!=-1){
-                staxSource = null;
-            }
-        } catch (Exception e){
-        }
-    }
 
     /**
      * Constructor called from factory
@@ -109,7 +86,7 @@
         if (busObject instanceof DOMSource ||
                 busObject instanceof SAXSource ||
                 busObject instanceof StreamSource ||
-                (busObject.getClass().equals(staxSource)) ||
+                busObject instanceof StAXSource ||
                 busObject instanceof JAXBSource) {
             // Okay, these are supported Source objects
             if (log.isDebugEnabled()) {
@@ -134,36 +111,9 @@
     }
 
     @Override
-    protected Object _getBOFromReader(XMLStreamReader reader, Object busContext)
-            throws XMLStreamException {
-
-        // Best solution is to use a StAXSource
-        // However StAXSource is not widely accepted.  
-        // For now, a StreamSource is always returned
-        /*
-        if (staxSource != null) {
-            try {
-                // TODO Constructor should be statically cached for performance
-                Constructor c =
-                        staxSource.getDeclaredConstructor(new Class[] { XMLStreamReader.class });
-                return c.newInstance(new Object[] { reader });
-            } catch (Exception e) {
-            }
-        }
-        */
-
-        // TODO StreamSource is not performant...work is needed here to make this faster
-        Reader2Writer r2w = new Reader2Writer(reader);
-        String text = r2w.getAsString();
-        StringReader sr = new StringReader(text);
-        return new StreamSource(sr);
-
-    }
-    
-    @Override
-    protected Object _getBOFromOM(OMElement omElement, Object busContext)
+    protected Source _getBOFromOM(OMElement omElement, Void busContext)
         throws XMLStreamException, WebServiceException {
-        Object busObject;
+        Source busObject;
         
         // Shortcut to get business object from existing data source
         if (omElement instanceof OMSourcedElement) {
@@ -182,21 +132,24 @@
         }
         
         // Transform reader into business object
-        if (!hasFault) {
-            busObject = super._getBOFromOM(omElement, busContext);
+        MemoryBlob blob = Blobs.createMemoryBlob();
+        OutputStream out = blob.getOutputStream();
+        try {
+            if (!hasFault) {
+                omElement.serializeAndConsume(out);
+            } else {
+                omElement.serialize(out);
+            }
+            out.close();
+        } catch (IOException ex) {
+            throw new XMLStreamException(ex);
         }
-        else {
-            ByteArrayOutputStream baos = new ByteArrayOutputStream();
-            omElement.serialize(baos);
-            
-            ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray());
-            busObject = new StreamSource(bais);
-        }
+        busObject = new StreamSource(blob.getInputStream());
         return busObject;
     }
 
     @Override
-    protected XMLStreamReader _getReaderFromBO(Object busObj, Object busContext)
+    protected XMLStreamReader _getReaderFromBO(Source busObj, Void busContext)
             throws XMLStreamException, WebServiceException {
         try {
             // TODO not sure if this is always the most performant way to do this.
@@ -227,9 +180,7 @@
             if (busObj instanceof StreamSource) {
                 XMLInputFactory f = StAXUtils.getXMLInputFactory();
 
-                XMLStreamReader reader = f.createXMLStreamReader((Source)busObj);
-                StAXUtils.releaseXMLInputFactory(f);
-                return reader;
+                return f.createXMLStreamReader(busObj);
             }
             //TODO: For GM we need to only use this approach when absolutely necessary.
             // For example, we don't want to do this if this is a (1.6) StaxSource or if the 
@@ -237,7 +188,7 @@
             //TODO: Uncomment this code if woodstock parser handles 
             // JAXBSource and SAXSource correctly.
             //return inputFactory.createXMLStreamReader((Source) busObj);
-            return _slow_getReaderFromSource((Source)busObj);
+            return _slow_getReaderFromSource(busObj);
         } catch (Exception e) {
             String className = (busObj == null) ? "none" : busObj.getClass().getName();
             throw ExceptionFactory
@@ -263,7 +214,7 @@
     }
 
     @Override
-    protected void _outputFromBO(Object busObject, Object busContext, XMLStreamWriter writer)
+    protected void _outputFromBO(Source busObject, Void busContext, XMLStreamWriter writer)
             throws XMLStreamException, WebServiceException {
         // There is no fast way to output the Source to a writer, so get the reader
         // and pass use the default reader->writer.
@@ -283,7 +234,7 @@
 
 
     @Override
-    protected Object _getBOFromBO(Object busObject, Object busContext, boolean consume) {
+    protected Source _getBOFromBO(Source busObject, Void busContext, boolean consume) {
         if (consume) {
             return busObject;
         } else {
@@ -294,50 +245,17 @@
     }
 
 
+    @Override
     public boolean isElementData() {
         return false;  // The source could be a text or element etc.
     }
 
-    /**
-     * Return the class for this name
-     * @return Class
-     */
-    private static Class forName(final String className) throws ClassNotFoundException {
-        // NOTE: This method must remain private because it uses AccessController
-        Class cl = null;
-        try {
-            cl = (Class)AccessController.doPrivileged(
-                    new PrivilegedExceptionAction() {
-                        public Object run() throws ClassNotFoundException {
-                            return Class.forName(className);
-                        }
-                    }
-            );
-        } catch (PrivilegedActionException e) {
-            if (log.isDebugEnabled()) {
-                log.debug("Exception thrown from AccessController: " + e);
-            }
-            throw (ClassNotFoundException)e.getException();
-        }
-
-        return cl;
-    }
-    
-    
+    @Override
     public void close() {
         return; // Nothing to close
     }
 
-    public InputStream getXMLInputStream(String encoding) throws UnsupportedEncodingException {
-        try {
-            byte[] bytes = (byte[]) 
-                ConvertUtils.convert(getBusinessObject(false), byte[].class);
-            return new ByteArrayInputStream(bytes);
-        } catch (XMLStreamException e) {
-            throw ExceptionFactory.makeWebServiceException(e);
-        }
-    }
-
+    @Override
     public Object getObject() {
         try {
             return getBusinessObject(false);
@@ -346,29 +264,13 @@
         }
     }
 
+    @Override
     public boolean isDestructiveRead() {
         return true;
     }
 
+    @Override
     public boolean isDestructiveWrite() {
         return true;
     }
-
-
-    public byte[] getXMLBytes(String encoding) throws UnsupportedEncodingException {
-        if (log.isDebugEnabled()) {
-            log.debug("Start getXMLBytes");
-        }
-        byte[] bytes = null;
-        try {
-            bytes = (byte[]) 
-                ConvertUtils.convert(getBusinessObject(false), byte[].class);
-        } catch (XMLStreamException e) {
-            throw ExceptionFactory.makeWebServiceException(e);
-        }
-        if (log.isDebugEnabled()) {
-            log.debug("End getXMLBytes");
-        }
-        return bytes;
-    }
 }
diff --git a/modules/jaxws/src/org/apache/axis2/jaxws/message/databinding/impl/XMLStringBlockImpl.java b/modules/jaxws/src/org/apache/axis2/jaxws/message/databinding/impl/XMLStringBlockImpl.java
index 1dcb8ed..795333e 100644
--- a/modules/jaxws/src/org/apache/axis2/jaxws/message/databinding/impl/XMLStringBlockImpl.java
+++ b/modules/jaxws/src/org/apache/axis2/jaxws/message/databinding/impl/XMLStringBlockImpl.java
@@ -24,30 +24,26 @@
 import org.apache.axiom.om.OMElement;
 import org.apache.axiom.om.OMException;
 import org.apache.axiom.om.OMSourcedElement;
+import org.apache.axiom.om.ds.StringOMDataSource;
 import org.apache.axiom.om.util.StAXUtils;
-import org.apache.axis2.datasource.XMLStringDataSource;
 import org.apache.axis2.jaxws.ExceptionFactory;
 import org.apache.axis2.jaxws.message.databinding.XMLStringBlock;
 import org.apache.axis2.jaxws.message.factory.BlockFactory;
 import org.apache.axis2.jaxws.message.impl.BlockImpl;
-import org.apache.axis2.jaxws.message.util.Reader2Writer;
 
 import javax.xml.namespace.QName;
 import javax.xml.stream.XMLStreamException;
 import javax.xml.stream.XMLStreamReader;
 import javax.xml.stream.XMLStreamWriter;
 import javax.xml.ws.WebServiceException;
-import java.io.ByteArrayInputStream;
-import java.io.InputStream;
 import java.io.StringReader;
-import java.io.UnsupportedEncodingException;
 
 /**
  * XMLStringBlock
  * <p/>
  * Block containing a business object that is a String of xml text
  */
-public class XMLStringBlockImpl extends BlockImpl implements XMLStringBlock {
+public class XMLStringBlockImpl extends BlockImpl<String,Void> implements XMLStringBlock {
 
     /**
      * Constructor called from factory
@@ -72,41 +68,29 @@
         super(omElement, null, qName, factory);
     }
 
-    protected Object _getBOFromReader(XMLStreamReader reader, Object busContext)
-            throws XMLStreamException {
-        // Create a Reader2Writer converter and get the output as a String
-        Reader2Writer r2w;
-        if ((busContext == null) && (omElement != null) && (omElement.isComplete())) {
-            r2w = new Reader2Writer(reader, false);
-        } else {
-            r2w = new Reader2Writer(reader);
-        }
-        return r2w.getAsString();
-    }
-    
     @Override
-    protected Object _getBOFromOM(OMElement omElement, Object busContext)
+    protected String _getBOFromOM(OMElement omElement, Void busContext)
         throws XMLStreamException, WebServiceException {
         
         // Shortcut to get business object from existing data source
         if (omElement instanceof OMSourcedElement) {
             OMDataSource ds = ((OMSourcedElement) omElement).getDataSource();
-            if (ds instanceof XMLStringDataSource) {
-                return ((XMLStringDataSource) ds).getObject();
+            if (ds instanceof StringOMDataSource) {
+                return ((StringOMDataSource) ds).getObject();
             }
         }
-        return super._getBOFromOM(omElement, busContext);
+        return omElement.toStringWithConsume();
     }
 
-    protected XMLStreamReader _getReaderFromBO(Object busObj, Object busContext)
+    @Override
+    protected XMLStreamReader _getReaderFromBO(String busObj, Void busContext)
             throws XMLStreamException {
         // Create an XMLStreamReader from the inputFactory using the String as the sources
-        String str = (String)busObj;
-        StringReader sr = new StringReader(str);
-        return StAXUtils.createXMLStreamReader(sr);
+        return StAXUtils.createXMLStreamReader(new StringReader(busObj));
     }
 
-    protected void _outputFromBO(Object busObject, Object busContext, XMLStreamWriter writer)
+    @Override
+    protected void _outputFromBO(String busObject, Void busContext, XMLStreamWriter writer)
             throws XMLStreamException {
         // There is no fast way to output the String to a writer, so get the reader
         // and pass use the default reader->writer.
@@ -114,24 +98,17 @@
         _outputFromReader(reader, writer);
     }
 
-
+    @Override
     public boolean isElementData() {
         return false;  // The text could be element or text or something else
     }
     
+    @Override
     public void close() {
         return; // Nothing to close
     }
 
-    public InputStream getXMLInputStream(String encoding) throws UnsupportedEncodingException {
-        try {
-            byte[] bytes = ((String) getBusinessObject(false)).getBytes(encoding);
-            return new ByteArrayInputStream(bytes);
-        } catch (XMLStreamException e) {
-            throw ExceptionFactory.makeWebServiceException(e);
-        }
-    }
-
+    @Override
     public Object getObject() {
         try {
             return getBusinessObject(false);
@@ -140,26 +117,20 @@
         }
     }
 
+    @Override
     public boolean isDestructiveRead() {
 //        return false;
         // TODO: XMLStringBlock should actually be non destructive, but getReader() throws an exception when it is invoked the second time
         return true;
     }
 
+    @Override
     public boolean isDestructiveWrite() {
         return false;
     }
     
+    @Override
     public OMDataSourceExt copy() throws OMException {
-        return new XMLStringDataSource((String) getObject());
-    }
-
-
-    public byte[] getXMLBytes(String encoding) throws UnsupportedEncodingException {
-        try {
-            return ((String) getBusinessObject(false)).getBytes(encoding);
-        } catch (XMLStreamException e) {
-            throw ExceptionFactory.makeWebServiceException(e);
-        }
+        return new StringOMDataSource((String) getObject());
     }
 }
diff --git a/modules/jaxws/src/org/apache/axis2/jaxws/message/factory/ParsedEntityReaderFactory.java b/modules/jaxws/src/org/apache/axis2/jaxws/message/factory/ParsedEntityReaderFactory.java
deleted file mode 100644
index 37503f9..0000000
--- a/modules/jaxws/src/org/apache/axis2/jaxws/message/factory/ParsedEntityReaderFactory.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*

- * Licensed to the Apache Software Foundation (ASF) under one

- * or more contributor license agreements. See the NOTICE file

- * distributed with this work for additional information

- * regarding copyright ownership. The ASF licenses this file

- * to you under the Apache License, Version 2.0 (the

- * "License"); you may not use this file except in compliance

- * with the License. You may obtain a copy of the License at

- *

- * http://www.apache.org/licenses/LICENSE-2.0

- *

- * Unless required by applicable law or agreed to in writing,

- * software distributed under the License is distributed on an

- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

- * KIND, either express or implied. See the License for the

- * specific language governing permissions and limitations

- * under the License.

- */

-package org.apache.axis2.jaxws.message.factory;

-

-import org.apache.axis2.jaxws.message.databinding.ParsedEntityReader;

-import org.apache.axis2.jaxws.message.databinding.impl.ParsedEntityReaderImpl;

-import org.apache.commons.logging.Log;

-import org.apache.commons.logging.LogFactory;

-

-public class ParsedEntityReaderFactory {

-	private static final Log log = LogFactory.getLog(ParsedEntityReaderFactory.class);

-	

-	private ParsedEntityReader per = null;

-	

-	public ParsedEntityReader getParsedEntityReader(){

-		if(per!=null){

-			return per;

-		}

-		else{

-			per = new ParsedEntityReaderImpl();

-			return per;

-		}

-	}

-	

-	public void setParsetEntityReader(ParsedEntityReader per){

-		if(this.per == null || this.per != per){

-			this.per = per;

-		}

-	}

-}

diff --git a/modules/jaxws/src/org/apache/axis2/jaxws/message/impl/BlockFactoryImpl.java b/modules/jaxws/src/org/apache/axis2/jaxws/message/impl/BlockFactoryImpl.java
index 0d8c106..78aa223 100644
--- a/modules/jaxws/src/org/apache/axis2/jaxws/message/impl/BlockFactoryImpl.java
+++ b/modules/jaxws/src/org/apache/axis2/jaxws/message/impl/BlockFactoryImpl.java
@@ -20,7 +20,8 @@
 package org.apache.axis2.jaxws.message.impl;
 
 import org.apache.axiom.om.OMElement;
-import org.apache.axiom.om.impl.builder.StAXOMBuilder;
+import org.apache.axiom.om.OMXMLBuilderFactory;
+import org.apache.axiom.om.OMXMLParserWrapper;
 import org.apache.axis2.jaxws.message.Block;
 import org.apache.axis2.jaxws.message.factory.BlockFactory;
 
@@ -62,7 +63,7 @@
 
     public Block createFrom(XMLStreamReader reader, Object context, QName qName)
             throws XMLStreamException, WebServiceException {
-        StAXOMBuilder builder = new StAXOMBuilder(reader);
+        OMXMLParserWrapper builder = OMXMLBuilderFactory.createStAXOMBuilder(reader);
         OMElement omElement = builder.getDocumentElement();
         return createFrom(omElement, context, omElement.getQName());
     }
diff --git a/modules/jaxws/src/org/apache/axis2/jaxws/message/impl/BlockImpl.java b/modules/jaxws/src/org/apache/axis2/jaxws/message/impl/BlockImpl.java
index bed3be1..4013a58 100644
--- a/modules/jaxws/src/org/apache/axis2/jaxws/message/impl/BlockImpl.java
+++ b/modules/jaxws/src/org/apache/axis2/jaxws/message/impl/BlockImpl.java
@@ -19,13 +19,14 @@
 
 package org.apache.axis2.jaxws.message.impl;
 
+import org.apache.axiom.blob.Blobs;
 import org.apache.axiom.om.OMDataSourceExt;
 import org.apache.axiom.om.OMElement;
 import org.apache.axiom.om.OMException;
-import org.apache.axiom.om.OMOutputFormat;
-import org.apache.axiom.om.ds.ByteArrayDataSource;
-import org.apache.axiom.om.impl.MTOMXMLStreamWriter;
-import org.apache.axiom.om.impl.builder.StAXOMBuilder;
+import org.apache.axiom.om.OMXMLBuilderFactory;
+import org.apache.axiom.om.OMXMLParserWrapper;
+import org.apache.axiom.om.ds.AbstractOMDataSource;
+import org.apache.axiom.om.ds.BlobOMDataSource;
 import org.apache.axiom.om.util.StAXUtils;
 import org.apache.axis2.jaxws.ExceptionFactory;
 import org.apache.axis2.jaxws.i18n.Messages;
@@ -43,11 +44,8 @@
 import javax.xml.stream.XMLStreamReader;
 import javax.xml.stream.XMLStreamWriter;
 import javax.xml.ws.WebServiceException;
-import java.io.OutputStream;
 import java.io.StringReader;
 import java.io.UnsupportedEncodingException;
-import java.io.Writer;
-import java.util.HashMap;
 
 /**
  * BlockImpl Abstract Base class for various Block Implementations.
@@ -62,12 +60,12 @@
  * The derived classes don't have direct access to the instance data. This ensures that BlockImpl
  * controls the transformations.
  */
-public abstract class BlockImpl implements Block {
+public abstract class BlockImpl<T,C> extends AbstractOMDataSource implements Block<T,C> {
 
     private static Log log = LogFactory.getLog(BlockImpl.class);
 
-    protected Object busObject;
-    protected Object busContext;
+    protected T busObject;
+    protected C busContext;
 
     protected OMElement omElement = null;
 
@@ -78,8 +76,6 @@
     protected boolean consumed = false;
     protected Message parent;
     
-    private HashMap map = null; // OMDataSourceExt properties
-
     /**
      * A Block has the following components
      *
@@ -88,7 +84,7 @@
      * @param qName      or null if unknown
      * @param factory    that creates the Block
      */
-    protected BlockImpl(Object busObject, Object busContext, QName qName, BlockFactory factory) {
+    protected BlockImpl(T busObject, C busContext, QName qName, BlockFactory factory) {
         this.busObject = busObject;
         this.busContext = busContext;
         this.qName = qName;
@@ -103,31 +99,40 @@
      * @param qName      or null if unknown
      * @param factory    that creates the Block
      */
-    protected BlockImpl(OMElement omElement, Object busContext, QName qName, BlockFactory factory) {
+    protected BlockImpl(OMElement omElement, C busContext, QName qName, BlockFactory factory) {
         this.omElement = omElement;
         this.busContext = busContext;
         this.qName = qName;
         this.factory = factory;
     }
+    
+    // Hack to disambiguate the constructors is T = OMElement
+    protected BlockImpl(C busContext, OMElement omElement, QName qName, BlockFactory factory) {
+        this(omElement, busContext, qName, factory);
+    }
 
     /* (non-Javadoc)
       * @see org.apache.axis2.jaxws.message.Block#getBlockFactory()
       */
-    public BlockFactory getBlockFactory() {
+    @Override
+    public final BlockFactory getBlockFactory() {
         return factory;
     }
 
     /* (non-Javadoc)
       * @see org.apache.axis2.jaxws.message.Block#getBusinessContext()
       */
-    public Object getBusinessContext() {
+    @Override
+    public final Object getBusinessContext() {
         return busContext;
     }
 
-    public Message getParent() {
+    @Override
+    public final Message getParent() {
         return parent;
     }
 
+    @Override
     public void setParent(Message p) {
         parent = p;
     }
@@ -135,7 +140,8 @@
     /* (non-Javadoc)
       * @see org.apache.axis2.jaxws.message.Block#getBusinessObject(boolean)
       */
-    public Object getBusinessObject(boolean consume)
+    @Override
+    public final T getBusinessObject(boolean consume)
             throws XMLStreamException, WebServiceException {
         if (consumed) {
             throw ExceptionFactory.makeWebServiceException(
@@ -151,7 +157,7 @@
 
         // Save the businessObject in a local variable
         // so that we can reset the Block if consume was indicated
-        Object newBusObject = busObject;
+        T newBusObject = busObject;
         setConsumed(consume);
         return newBusObject;
     }
@@ -160,7 +166,8 @@
     /* (non-Javadoc)
       * @see org.apache.axis2.jaxws.message.Block#getQName()
       */
-    public QName getQName() throws WebServiceException {
+    @Override
+    public final QName getQName() throws WebServiceException {
         // If the QName is not known, find it
         try {
             if (qName == null) {
@@ -172,7 +179,7 @@
                     try {
                         XMLStreamReader newReader = _getReaderFromBO(busObject, busContext);
                         busObject = null;
-                        StAXOMBuilder builder = new StAXOMBuilder(newReader);
+                        OMXMLParserWrapper builder = OMXMLBuilderFactory.createStAXOMBuilder(newReader);
                         omElement = builder.getDocumentElement();
                         omElement.close(true);
                     } catch (Exception e) {
@@ -211,14 +218,15 @@
      *
      * @param qName
      */
-    protected void setQName(QName qName) {
+    protected final void setQName(QName qName) {
         this.qName = qName;
     }
 
     /* (non-Javadoc)
       * @see org.apache.axis2.jaxws.message.Block#getXMLStreamReader(boolean)
       */
-    public XMLStreamReader getXMLStreamReader(boolean consume)
+    @Override
+    public final XMLStreamReader getXMLStreamReader(boolean consume)
             throws XMLStreamException, WebServiceException {
         XMLStreamReader newReader = null;
         if (consumed) {
@@ -231,15 +239,9 @@
                     Messages.getMessage("BlockImplErr1", this.getClass().getName()));
         }
         if (omElement != null) {
+            newReader = omElement.getXMLStreamReader(!consume);
             if (consume) {
-                if (omElement.getBuilder() != null && !omElement.getBuilder().isCompleted()) {
-                    newReader = omElement.getXMLStreamReaderWithoutCaching();
-                } else {
-                    newReader = omElement.getXMLStreamReader();
-                }
                 omElement = null;
-            } else {
-                newReader = omElement.getXMLStreamReader();
             }
         } else if (busObject != null) {
             // Getting the reader does not destroy the BusinessObject
@@ -253,48 +255,20 @@
     /* (non-Javadoc)
       * @see org.apache.axiom.om.OMDataSource#getReader()
       */
-    public XMLStreamReader getReader() throws XMLStreamException {
+    @Override
+    public final XMLStreamReader getReader() throws XMLStreamException {
         return getXMLStreamReader(true);
     }
 
     /* (non-Javadoc)
-      * @see org.apache.axiom.om.OMDataSource#serialize(java.io.OutputStream, org.apache.axiom.om.OMOutputFormat)
-      */
-    public void serialize(OutputStream output, OMOutputFormat format) throws XMLStreamException {
-        MTOMXMLStreamWriter writer = new MTOMXMLStreamWriter(output, format);
-        serialize(writer);
-        writer.flush();
-        try {
-            writer.close();
-        } catch (XMLStreamException e) {
-            // An exception can occur if nothing is written to the 
-            // writer.  This is possible if the underlying data source
-            // writers to the output stream directly.
-            if (log.isDebugEnabled()) {
-                log.debug("Catching and swallowing exception " + e);
-            }
-        }
-    }
-
-    /* (non-Javadoc)
-      * @see org.apache.axiom.om.OMDataSource#serialize(java.io.Writer, org.apache.axiom.om.OMOutputFormat)
-      */
-    public void serialize(Writer writerTarget, OMOutputFormat format) throws XMLStreamException {
-        MTOMXMLStreamWriter writer =
-                new MTOMXMLStreamWriter(StAXUtils.createXMLStreamWriter(writerTarget));
-        writer.setOutputFormat(format);
-        serialize(writer);
-        writer.flush();
-        writer.close();
-    }
-
-    /* (non-Javadoc)
       * @see org.apache.axiom.om.OMDataSource#serialize(javax.xml.stream.XMLStreamWriter)
       */
-    public void serialize(XMLStreamWriter writer) throws XMLStreamException {
+    @Override
+    public final void serialize(XMLStreamWriter writer) throws XMLStreamException {
         outputTo(writer, isDestructiveWrite());
     }
 
+    @Override
     public OMElement getOMElement() throws XMLStreamException, WebServiceException {
         OMElement newOMElement = null;
         boolean consume = true;  // get the OM consumes the message
@@ -317,7 +291,8 @@
     /* (non-Javadoc)
       * @see org.apache.axis2.jaxws.message.Block#isConsumed()
       */
-    public boolean isConsumed() {
+    @Override
+    public final boolean isConsumed() {
         return consumed;
     }
 
@@ -327,7 +302,7 @@
      * @param consume
      * @return
      */
-    public void setConsumed(boolean consume) {
+    public final void setConsumed(boolean consume) {
         if (consume) {
             this.consumed = true;
             busObject = null;
@@ -343,11 +318,13 @@
         }
     }
 
-    public boolean isQNameAvailable() {
+    @Override
+    public final boolean isQNameAvailable() {
         return (qName != null);
     }
 
-    public void outputTo(XMLStreamWriter writer, boolean consume)
+    @Override
+    public final void outputTo(XMLStreamWriter writer, boolean consume)
             throws XMLStreamException, WebServiceException {
         if (log.isDebugEnabled()) {
             log.debug("Start outputTo");
@@ -381,7 +358,7 @@
      * Called if we have passed the pivot point but someone wants to output the block. The actual
      * block implementation may choose to override this setting
      */
-    protected void _postPivot_outputTo(XMLStreamWriter writer)
+    protected final void _postPivot_outputTo(XMLStreamWriter writer)
             throws XMLStreamException, WebServiceException {
         if (log.isDebugEnabled()) {
             QName theQName = isQNameAvailable() ? getQName() : new QName("unknown");
@@ -397,7 +374,7 @@
      * Called if we have passed the pivot point but someone wants to output the block. The actual
      * block implementation may choose to override this setting.
      */
-    protected XMLStreamReader _postPivot_getXMLStreamReader()
+    protected final XMLStreamReader _postPivot_getXMLStreamReader()
             throws XMLStreamException, WebServiceException {
         if (log.isDebugEnabled()) {
             QName theQName = isQNameAvailable() ? getQName() : new QName("unknown");
@@ -422,11 +399,12 @@
      * @return true if the representation of the block is currently a business object. Derived classes
      *         may use this information to get information in a performant way.
      */
-    protected boolean isBusinessObject() {
+    protected final boolean isBusinessObject() {
         return busObject != null;
     }
 
-    public String traceString(String indent) {
+    @Override
+    public final String traceString(String indent) {
         // TODO add trace string
         return null;
     }
@@ -442,23 +420,10 @@
      * @param consume
      * @return
      */
-    protected Object _getBOFromBO(Object busObject, Object busContext, boolean consume) {
+    protected T _getBOFromBO(T busObject, C busContext, boolean consume) {
         return busObject;
     }
 
-
-    /**
-     * The derived class must provide an implementation that builds the business object from the
-     * reader
-     *
-     * @param reader     XMLStreamReader, which is consumed
-     * @param busContext
-     * @return
-     */
-    protected abstract Object _getBOFromReader(XMLStreamReader reader, Object busContext)
-            throws XMLStreamException, WebServiceException;
-
-    
     /**
      * Default method for getting business object from OM.
      * Derived classes may override this method to get the business object from a
@@ -470,11 +435,8 @@
      * @throws XMLStreamException
      * @throws WebServiceException
      */
-    protected Object _getBOFromOM(OMElement omElement, Object busContext)
-        throws XMLStreamException, WebServiceException {
-        XMLStreamReader reader = _getReaderFromOM(omElement);
-        return _getBOFromReader(reader, busContext);
-    }
+    protected abstract T _getBOFromOM(OMElement omElement, C busContext)
+            throws XMLStreamException, WebServiceException;
     
     /**
      * Get an XMLStreamReader for the BusinessObject The derived Block must implement this method
@@ -483,35 +445,21 @@
      * @param busContext
      * @return
      */
-    protected abstract XMLStreamReader _getReaderFromBO(Object busObj, Object busContext)
+    protected abstract XMLStreamReader _getReaderFromBO(T busObj, C busContext)
             throws XMLStreamException, WebServiceException;
     
     /**
-     * @param omElement
-     * @return XMLStreamReader
-     */
-    protected XMLStreamReader _getReaderFromOM(OMElement omElement) {
-        XMLStreamReader reader;
-        if (omElement.getBuilder() != null && !omElement.getBuilder().isCompleted()) {
-            reader = omElement.getXMLStreamReaderWithoutCaching();
-        } else {
-            reader = omElement.getXMLStreamReader();
-        }
-        return reader;
-    }
-    
-    /**
      * @param busObject
      * @param busContext
      * @return OMElement
      * @throws XMLStreamException
      * @throws WebServiceException
      */
-    protected OMElement _getOMFromBO(Object busObject, Object busContext)
+    protected OMElement _getOMFromBO(T busObject, C busContext)
         throws XMLStreamException, WebServiceException {
         // Getting the reader does not destroy the BusinessObject
         XMLStreamReader newReader = _getReaderFromBO(busObject, busContext);
-        StAXOMBuilder builder = new StAXOMBuilder(newReader);
+        OMXMLParserWrapper builder = OMXMLBuilderFactory.createStAXOMBuilder(newReader);
         return builder.getDocumentElement();
     }
 
@@ -523,7 +471,7 @@
      * @param writer
      * @throws XMLStreamException
      */
-    protected void _outputFromReader(XMLStreamReader reader, XMLStreamWriter writer)
+    protected final void _outputFromReader(XMLStreamReader reader, XMLStreamWriter writer)
             throws XMLStreamException {
         Reader2Writer r2w = new Reader2Writer(reader);
         r2w.outputTo(writer);
@@ -537,7 +485,7 @@
      * @param writer
      * @throws XMLStreamException
      */
-    protected void _outputFromOM(OMElement omElement, XMLStreamWriter writer, boolean consume)
+    protected final void _outputFromOM(OMElement omElement, XMLStreamWriter writer, boolean consume)
             throws XMLStreamException {
         if (consume) {
             if (log.isDebugEnabled()) {
@@ -555,13 +503,14 @@
     /* (non-Javadoc)
      * @see org.apache.axiom.om.OMDataSourceExt#copy()
      */
+    @Override
     public OMDataSourceExt copy() throws OMException {
         // TODO: This is a default implementation.  Much
         // more refactoring needs to occur to account for attachments.
         try {
             String encoding = "utf-8"; // Choose a common encoding
             byte[] bytes = this.getXMLBytes(encoding);
-            return new ByteArrayDataSource(bytes, encoding);
+            return new BlobOMDataSource(Blobs.createBlob(bytes), encoding);
         } catch (UnsupportedEncodingException e) {
             throw new OMException(e);
         }
@@ -576,28 +525,7 @@
      * @throws XMLStreamException
      * @throws WebServiceException
      */
-    protected abstract void _outputFromBO(Object busObject, Object busContext,
+    protected abstract void _outputFromBO(T busObject, C busContext,
                                           XMLStreamWriter writer)
             throws XMLStreamException, WebServiceException;
-	
-    public Object getProperty(String key) {
-        if (map == null) {
-            return null;
-        }
-        return map.get(key);
-    }
-
-    public Object setProperty(String key, Object value) {
-        if (map == null) {
-            map = new HashMap();
-        }
-        return map.put(key, value);
-    }
-
-    public boolean hasProperty(String key) {
-        if (map == null) {
-            return false;
-        } 
-        return map.containsKey(key);
-    }
 }
diff --git a/modules/jaxws/src/org/apache/axis2/jaxws/message/impl/MessageFactoryImpl.java b/modules/jaxws/src/org/apache/axis2/jaxws/message/impl/MessageFactoryImpl.java
index bb0687b..a49f3df 100644
--- a/modules/jaxws/src/org/apache/axis2/jaxws/message/impl/MessageFactoryImpl.java
+++ b/modules/jaxws/src/org/apache/axis2/jaxws/message/impl/MessageFactoryImpl.java
@@ -20,9 +20,9 @@
 package org.apache.axis2.jaxws.message.impl;
 
 import org.apache.axiom.om.OMElement;
-import org.apache.axiom.om.impl.builder.StAXOMBuilder;
+import org.apache.axiom.om.OMXMLBuilderFactory;
+import org.apache.axiom.om.OMXMLParserWrapper;
 import org.apache.axiom.soap.SOAPEnvelope;
-import org.apache.axiom.soap.impl.builder.StAXSOAPModelBuilder;
 import org.apache.axis2.jaxws.ExceptionFactory;
 import org.apache.axis2.jaxws.message.Block;
 import org.apache.axis2.jaxws.message.Message;
@@ -57,14 +57,13 @@
       */
     public Message createFrom(XMLStreamReader reader, Protocol protocol)
             throws XMLStreamException, WebServiceException {
-        StAXOMBuilder builder;
+        OMXMLParserWrapper builder;
         if (protocol == Protocol.rest) {
             // Build a normal OM tree
-            builder = new StAXOMBuilder(reader);
+            builder = OMXMLBuilderFactory.createStAXOMBuilder(reader);
         } else {
             // Build a SOAP OM tree
-            builder = new StAXSOAPModelBuilder(reader,
-                                               null);  // Pass null as the version to trigger autodetection
+            builder = OMXMLBuilderFactory.createStAXSOAPModelBuilder(reader);
         }
         OMElement omElement = builder.getDocumentElement();
         return createFrom(omElement, protocol);
diff --git a/modules/jaxws/src/org/apache/axis2/jaxws/message/impl/XMLPartBase.java b/modules/jaxws/src/org/apache/axis2/jaxws/message/impl/XMLPartBase.java
index ba46045..56a6fbf 100644
--- a/modules/jaxws/src/org/apache/axis2/jaxws/message/impl/XMLPartBase.java
+++ b/modules/jaxws/src/org/apache/axis2/jaxws/message/impl/XMLPartBase.java
@@ -21,7 +21,6 @@
 
 import org.apache.axiom.om.OMElement;
 import org.apache.axiom.om.OMXMLParserWrapper;
-import org.apache.axiom.om.impl.builder.StAXBuilder;
 import org.apache.axiom.soap.RolePlayer;
 import org.apache.axiom.soap.SOAP11Constants;
 import org.apache.axiom.soap.SOAP12Constants;
@@ -771,12 +770,8 @@
         OMElement om = getContentAsOMElement();
         if (om !=null) {
             OMXMLParserWrapper builder = om.getBuilder();
-            if (builder instanceof StAXBuilder) {
-                 StAXBuilder staxBuilder = (StAXBuilder) builder;
-                 staxBuilder.releaseParserOnClose(true);
-                 if (!staxBuilder.isClosed()) {
-                     staxBuilder.close();
-                 }
+            if (builder != null) {
+                builder.close();
             }
         }
      }
diff --git a/modules/jaxws/src/org/apache/axis2/jaxws/message/impl/XMLPartFactoryImpl.java b/modules/jaxws/src/org/apache/axis2/jaxws/message/impl/XMLPartFactoryImpl.java
index 3343f8d..f49fdae 100644
--- a/modules/jaxws/src/org/apache/axis2/jaxws/message/impl/XMLPartFactoryImpl.java
+++ b/modules/jaxws/src/org/apache/axis2/jaxws/message/impl/XMLPartFactoryImpl.java
@@ -20,8 +20,9 @@
 package org.apache.axis2.jaxws.message.impl;
 
 import org.apache.axiom.om.OMElement;
+import org.apache.axiom.om.OMXMLBuilderFactory;
 import org.apache.axiom.soap.SOAPEnvelope;
-import org.apache.axiom.soap.impl.builder.StAXSOAPModelBuilder;
+import org.apache.axiom.soap.SOAPModelBuilder;
 import org.apache.axis2.jaxws.message.Protocol;
 import org.apache.axis2.jaxws.message.XMLPart;
 import org.apache.axis2.jaxws.message.factory.XMLPartFactory;
@@ -43,8 +44,7 @@
       */
     public XMLPart createFrom(XMLStreamReader reader, Protocol protocol)
             throws XMLStreamException, WebServiceException {
-        StAXSOAPModelBuilder builder = new StAXSOAPModelBuilder(reader,
-                                                                null);  // Pass null has the version to trigger autodetection
+        SOAPModelBuilder builder = OMXMLBuilderFactory.createStAXSOAPModelBuilder(reader);
         SOAPEnvelope omEnvelope = builder.getSOAPEnvelope();
         return createFrom(omEnvelope, protocol);
     }
diff --git a/modules/jaxws/src/org/apache/axis2/jaxws/message/impl/XMLSpineImpl.java b/modules/jaxws/src/org/apache/axis2/jaxws/message/impl/XMLSpineImpl.java
index 8ea8512..2e17bcd 100644
--- a/modules/jaxws/src/org/apache/axis2/jaxws/message/impl/XMLSpineImpl.java
+++ b/modules/jaxws/src/org/apache/axis2/jaxws/message/impl/XMLSpineImpl.java
@@ -20,11 +20,9 @@
 package org.apache.axis2.jaxws.message.impl;
 
 import org.apache.axiom.om.OMAbstractFactory;
-import org.apache.axiom.om.OMContainer;
 import org.apache.axiom.om.OMElement;
 import org.apache.axiom.om.OMNamespace;
 import org.apache.axiom.om.OMNode;
-import org.apache.axiom.om.impl.OMContainerEx;
 import org.apache.axiom.soap.RolePlayer;
 import org.apache.axiom.soap.SOAP11Constants;
 import org.apache.axiom.soap.SOAP12Constants;
@@ -46,13 +44,11 @@
 import org.apache.axis2.jaxws.message.util.Reader2Writer;
 import org.apache.axis2.jaxws.message.util.XMLFaultUtils;
 import org.apache.axis2.jaxws.registry.FactoryRegistry;
-import org.apache.axis2.jaxws.utility.JavaUtils;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 
 import javax.jws.soap.SOAPBinding.Style;
 import javax.xml.namespace.QName;
-import javax.xml.stream.XMLStreamConstants;
 import javax.xml.stream.XMLStreamException;
 import javax.xml.stream.XMLStreamReader;
 import javax.xml.stream.XMLStreamWriter;
@@ -187,15 +183,7 @@
     }
 
     public XMLStreamReader getXMLStreamReader(boolean consume) throws WebServiceException {
-        if (consume) {
-            if (root.getBuilder() != null && !root.getBuilder().isCompleted()) {
-                return root.getXMLStreamReaderWithoutCaching();
-            } else {
-                return root.getXMLStreamReader();
-            }
-        } else {
-            return root.getXMLStreamReader();
-        }
+        return root.getXMLStreamReader(!consume);
     }
 
     /* (non-Javadoc)
@@ -215,7 +203,7 @@
             SOAPFaultDetail detail = root.getBody().getFault().getDetail();
             for (int i = 0; i < numDetailBlocks; i++) {
                 OMElement om = this._getChildOMElement(detail, i);
-                blocks[i] = this._getBlockFromOMElement(om, null, obf, false);
+                blocks[i] = this._getBlockFromOMElement(om, null, obf);
 
             }
         }
@@ -312,7 +300,7 @@
         if (log.isDebugEnabled()) {
             log.debug("getBodyBlock: Found omElement " + omElement.getQName());
         }
-        return this._getBlockFromOMElement(omElement, context, blockFactory, false);
+        return this._getBlockFromOMElement(omElement, context, blockFactory);
     }
 
     /* (non-Javadoc)
@@ -345,7 +333,7 @@
         if (log.isDebugEnabled()) {
             log.debug("getBodyBlock: Found omElement " + omElement.getQName());
         }
-        return this._getBlockFromOMElement(omElement, context, blockFactory, true);
+        return this._getBlockFromOMElement(omElement, context, blockFactory);
     }
 
     public void setBodyBlock(int index, Block block) throws WebServiceException {
@@ -442,7 +430,7 @@
         if (om == null) {
             return null;
         }
-        return this._getBlockFromOMElement(om, context, blockFactory, false);
+        return this._getBlockFromOMElement(om, context, blockFactory);
     }
 
     public List<Block> getHeaderBlocks(String namespace, 
@@ -474,7 +462,7 @@
                 // _getBlockFromOMElement may replace the current element; move the iterator to the
                 // next element to avoid ConcurrentModificationException
                 it.hasNext();
-                Block block = _getBlockFromOMElement(om, context, blockFactory, false);
+                Block block = _getBlockFromOMElement(om, context, blockFactory);
                 blocks.add(block);
             }
         }
@@ -568,8 +556,7 @@
         }
     }
 
-    private Block _getBlockFromOMElement(OMElement om, Object context, BlockFactory blockFactory,
-                                         boolean setComplete) throws WebServiceException {
+    private Block _getBlockFromOMElement(OMElement om, Object context, BlockFactory blockFactory) throws WebServiceException {
         try {
             QName qName = om.getQName();
             OMNamespace ns = om.getNamespace();
@@ -613,48 +600,6 @@
                 OMElement newOM = _createOMElementFromBlock(qName.getLocalPart(), ns, block, soapFactory, 
                                                                 (om.getParent() instanceof SOAPHeader));
                 om.insertSiblingBefore(newOM);
-    
-                // We want to set the om element and its parents to complete to 
-                // shutdown the parsing.  
-                if (setComplete) {
-                    
-                    // Get the root of the document
-                    OMElement root = om;
-                    while(root.getParent() instanceof OMElement) {
-                        root = (OMElement) root.getParent();
-                    }
-                    
-                    try {   
-                        if (!root.isComplete() && root.getBuilder() != null && 
-                                !root.getBuilder().isCompleted()) {
-                            // Forward the parser to the end so it will close
-                            while (root.getBuilder().next() != XMLStreamConstants.END_DOCUMENT) {
-                                //do nothing
-                            }                    
-                        }
-                    } catch (Exception e) {
-                        // Log and continue
-                        if (log.isDebugEnabled()) {
-                            log.debug("Builder next error:" + e.getMessage());
-                            log.trace(JavaUtils.stackToString(e));
-                        }
-                        
-                    }
-                    
-    
-                    OMContainer o = om;
-                    while (o != null && o instanceof OMContainerEx) {
-                        ((OMContainerEx)o).setComplete(true);
-                        if ((o instanceof OMNode) &&
-                                (((OMNode)o).getParent()) instanceof OMContainer) {
-                            o = ((OMNode)o).getParent();
-                        } else {
-                            o = null;
-                        }
-                    }
-                }
-    
-    
                 om.detach();
             }
             return block;
@@ -795,9 +740,9 @@
             return null;
         }
         QName qName = new QName(namespace, localPart);
-        Iterator it = om.getChildrenWithName(qName);
+        Iterator<OMElement> it = om.getChildrenWithName(qName);
         if (it != null && it.hasNext()) {
-            return (OMElement)it.next();
+            return it.next();
         }
         return null;
     }
diff --git a/modules/jaxws/src/org/apache/axis2/jaxws/message/util/DOMReader.java b/modules/jaxws/src/org/apache/axis2/jaxws/message/util/DOMReader.java
deleted file mode 100644
index 51288e4..0000000
--- a/modules/jaxws/src/org/apache/axis2/jaxws/message/util/DOMReader.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.axis2.jaxws.message.util;
-
-import org.apache.axis2.jaxws.message.util.impl.XMLStreamReaderFromDOM;
-import org.w3c.dom.Element;
-
-import javax.xml.stream.XMLStreamReader;
-
-/** DOMReader Creates an XMLStreamReader backed by a DOM tree. */
-public class DOMReader extends Reader {
-
-    Element element;
-
-    /**
-     * @param reader
-     * @param resettable
-     */
-    public DOMReader(Element element) {
-        super(_newReader(element), true);
-
-        this.element = element;
-    }
-
-    /* (non-Javadoc)
-      * @see org.apache.axis2.jaxws.message.util.Reader#newReader()
-      */
-    @Override
-    protected XMLStreamReader newReader() {
-        return _newReader(element);
-    }
-
-    /**
-     * Utility method to get the stream reader
-     *
-     * @param element
-     * @return
-     */
-    private static XMLStreamReader _newReader(Element element) {
-        // Construct a reader from an element
-        return new XMLStreamReaderFromDOM(element);
-    }
-}
diff --git a/modules/jaxws/src/org/apache/axis2/jaxws/message/util/Reader2Writer.java b/modules/jaxws/src/org/apache/axis2/jaxws/message/util/Reader2Writer.java
index c01e885..f84e33e 100644
--- a/modules/jaxws/src/org/apache/axis2/jaxws/message/util/Reader2Writer.java
+++ b/modules/jaxws/src/org/apache/axis2/jaxws/message/util/Reader2Writer.java
@@ -21,8 +21,8 @@
 
 import org.apache.axiom.om.OMDocument;
 import org.apache.axiom.om.OMNode;
-import org.apache.axiom.om.impl.builder.StAXOMBuilder;
-import org.apache.axiom.om.util.StAXUtils;
+import org.apache.axiom.om.OMXMLBuilderFactory;
+import org.apache.axiom.om.OMXMLParserWrapper;
 import org.apache.axis2.jaxws.utility.JavaUtils;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
@@ -30,7 +30,6 @@
 import javax.xml.stream.XMLStreamException;
 import javax.xml.stream.XMLStreamReader;
 import javax.xml.stream.XMLStreamWriter;
-import java.io.StringWriter;
 import java.util.Iterator;
 
 /**
@@ -71,7 +70,7 @@
     public void outputTo(XMLStreamWriter writer) throws XMLStreamException {
         // Using OM to convert the reader to a writer.  This seems to be
         // the safest way to make the conversion, and it promotes code re-use.
-        StAXOMBuilder builder = new StAXOMBuilder(reader);
+        OMXMLParserWrapper builder = OMXMLBuilderFactory.createStAXOMBuilder(reader);
         OMDocument omDocument = builder.getDocument();
         Iterator it = omDocument.getChildren();
         while (it.hasNext()) {
@@ -86,23 +85,4 @@
             reader.close();
         }
     }
-
-    /**
-     * Utility method to write the reader contents to a String
-     * @return String
-     */
-    public String getAsString() throws XMLStreamException {
-        StringWriter sw = new StringWriter();
-        XMLStreamWriter writer = StAXUtils.createXMLStreamWriter(sw);
-
-        // Write the reader to the writer
-        outputTo(writer);
-
-        // Flush the writer and get the String
-        writer.flush();
-        sw.flush();
-        String str = sw.toString();
-        writer.close();
-        return str;
-    }
 }
diff --git a/modules/jaxws/src/org/apache/axis2/jaxws/message/util/ResettableReader.java b/modules/jaxws/src/org/apache/axis2/jaxws/message/util/ResettableReader.java
index 437c423..a4fa7c5 100644
--- a/modules/jaxws/src/org/apache/axis2/jaxws/message/util/ResettableReader.java
+++ b/modules/jaxws/src/org/apache/axis2/jaxws/message/util/ResettableReader.java
@@ -20,7 +20,8 @@
 package org.apache.axis2.jaxws.message.util;
 
 import org.apache.axiom.om.OMElement;
-import org.apache.axiom.om.impl.builder.StAXOMBuilder;
+import org.apache.axiom.om.OMXMLBuilderFactory;
+import org.apache.axiom.om.OMXMLParserWrapper;
 
 import javax.xml.stream.XMLStreamReader;
 
@@ -41,7 +42,7 @@
      */
     public ResettableReader(XMLStreamReader reader) {
         super(reader, true);
-        StAXOMBuilder builder = new StAXOMBuilder(reader);
+        OMXMLParserWrapper builder = OMXMLBuilderFactory.createStAXOMBuilder(reader);
         omElement = builder.getDocumentElement();
         reset();
     }
diff --git a/modules/jaxws/src/org/apache/axis2/jaxws/message/util/SOAPElementReader.java b/modules/jaxws/src/org/apache/axis2/jaxws/message/util/SOAPElementReader.java
deleted file mode 100644
index 897564a..0000000
--- a/modules/jaxws/src/org/apache/axis2/jaxws/message/util/SOAPElementReader.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.axis2.jaxws.message.util;
-
-import org.apache.axis2.jaxws.message.util.impl.XMLStreamReaderFromDOM;
-
-import javax.xml.soap.SOAPElement;
-import javax.xml.stream.XMLStreamReader;
-
-/** SOAPElementReader Creates an XMLStreamReader backed by a SOAPElement tree. */
-public class SOAPElementReader extends Reader {
-
-    SOAPElement element;
-
-    /**
-     * @param reader
-     * @param resettable
-     */
-    public SOAPElementReader(SOAPElement element) {
-        super(_newReader(element), true);
-
-        this.element = element;
-    }
-
-    /* (non-Javadoc)
-      * @see org.apache.axis2.jaxws.message.util.Reader#newReader()
-      */
-    @Override
-    protected XMLStreamReader newReader() {
-        return _newReader(element);
-    }
-
-    /**
-     * Utility method to get the stream reader
-     *
-     * @param element
-     * @return
-     */
-    private static XMLStreamReader _newReader(SOAPElement element) {
-        // Construct a reader from an element
-        return new XMLStreamReaderFromDOM(element);
-    }
-}
diff --git a/modules/jaxws/src/org/apache/axis2/jaxws/message/util/XMLFaultUtils.java b/modules/jaxws/src/org/apache/axis2/jaxws/message/util/XMLFaultUtils.java
index 0d030e3..4ff0a1a 100644
--- a/modules/jaxws/src/org/apache/axis2/jaxws/message/util/XMLFaultUtils.java
+++ b/modules/jaxws/src/org/apache/axis2/jaxws/message/util/XMLFaultUtils.java
@@ -22,6 +22,7 @@
 import org.apache.axiom.om.OMElement;
 import org.apache.axiom.om.OMNamespace;
 import org.apache.axiom.om.OMSourcedElement;
+import org.apache.axiom.om.OMXMLBuilderFactory;
 import org.apache.axiom.soap.SOAP11Constants;
 import org.apache.axiom.soap.SOAP12Constants;
 import org.apache.axiom.soap.SOAPBody;
@@ -36,7 +37,7 @@
 import org.apache.axiom.soap.SOAPFaultSubCode;
 import org.apache.axiom.soap.SOAPFaultText;
 import org.apache.axiom.soap.SOAPFaultValue;
-import org.apache.axiom.soap.impl.builder.StAXSOAPModelBuilder;
+import org.apache.axiom.soap.SOAPModelBuilder;
 import org.apache.axis2.jaxws.ExceptionFactory;
 import org.apache.axis2.jaxws.message.Block;
 import org.apache.axis2.jaxws.message.Message;
@@ -151,13 +152,7 @@
                 SOAP11Constants.SOAP_ENVELOPE_NAMESPACE_URI);
 
         SOAPFaultCode soapCode = soapFault.getCode();
-        QName codeQName = null;
-        if (isSoap11) {
-            codeQName = soapCode.getTextAsQName();
-        } else {
-            codeQName = soapCode.getValue().getTextAsQName();
-        }
-        XMLFaultCode code = XMLFaultCode.fromQName(codeQName);
+        XMLFaultCode code = XMLFaultCode.fromQName(soapCode.getValueAsQName());
 
         // Get the primary reason text
         // TODO what if this fails
@@ -187,9 +182,7 @@
 
             // Walk the nested sub codes and collect the qnames
             while (soapSubCode != null) {
-                SOAPFaultValue soapSubCodeValue = soapSubCode.getValue();
-                QName qName = soapSubCodeValue.getTextAsQName();
-                list.add(qName);
+                list.add(soapSubCode.getValueAsQName());
                 soapSubCode = soapSubCode.getSubCode();
             }
 
@@ -366,7 +359,7 @@
         
         SOAPEnvelope dummyEnv = (SOAPEnvelope) m.getAsOMElement();        
         
-        StAXSOAPModelBuilder builder = new StAXSOAPModelBuilder(dummyEnv.getXMLStreamReaderWithoutCaching());
+        SOAPModelBuilder builder = OMXMLBuilderFactory.createStAXSOAPModelBuilder(dummyEnv.getXMLStreamReaderWithoutCaching());
         SOAPEnvelope newEnv = (SOAPEnvelope) builder.getDocumentElement();
         
         SOAPBody body = newEnv.getBody();
diff --git a/modules/jaxws/src/org/apache/axis2/jaxws/message/util/impl/NamespaceContextFromDOM.java b/modules/jaxws/src/org/apache/axis2/jaxws/message/util/impl/NamespaceContextFromDOM.java
deleted file mode 100644
index f5505c7..0000000
--- a/modules/jaxws/src/org/apache/axis2/jaxws/message/util/impl/NamespaceContextFromDOM.java
+++ /dev/null
@@ -1,108 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.axis2.jaxws.message.util.impl;
-
-import org.w3c.dom.Attr;
-import org.w3c.dom.Element;
-import org.w3c.dom.NamedNodeMap;
-import org.w3c.dom.Node;
-
-import javax.xml.namespace.NamespaceContext;
-import java.util.ArrayList;
-import java.util.Iterator;
-
-/**
- * Namespace information available at the current scope. Utility class for XMLStreamReaderFromDOM
- *
- * @see XMLStreamReaderFromDOM
- */
-public class NamespaceContextFromDOM implements NamespaceContext {
-
-    private Element element;
-
-    /** @param element representing the current scope */
-    NamespaceContextFromDOM(Element element) {
-        this.element = element;
-    }
-
-    /* (non-Javadoc)
-      * @see javax.xml.namespace.NamespaceContext#getPrefix(java.lang.String)
-      */
-    public String getPrefix(String namespaceURI) {
-        return element.lookupPrefix(namespaceURI);
-    }
-
-    /* (non-Javadoc)
-      * @see javax.xml.namespace.NamespaceContext#getPrefixes(java.lang.String)
-      */
-    public Iterator getPrefixes(String namespaceURI) {
-        if (element instanceof javax.xml.soap.SOAPElement) {
-            Iterator it = ((javax.xml.soap.SOAPElement)element).getVisibleNamespacePrefixes();
-            ArrayList list = new ArrayList();
-            while (it.hasNext()) {
-                String prefix = (String)it.next();
-                if (getNamespaceURI(prefix).equals(namespaceURI)) {
-                    if (prefix != null && prefix.length() == 0) {
-                        prefix = null;
-                    }
-                    list.add(prefix);
-                }
-            }
-            return list.iterator();
-        } else {
-            ArrayList list = new ArrayList();
-            Node node = element;
-            while (node != null) {
-                if (node instanceof Element) {
-                    // Walk the attributes looking for namespace declarations
-                    NamedNodeMap attrs = ((Element)node).getAttributes();
-                    for (int i = 0; i < attrs.getLength(); i++) {
-                        Attr attr = (Attr)attrs.item(i);
-                        if (attr.getNodeValue().equals(namespaceURI)) {
-                            String name = attr.getNodeName();
-
-                            if (name.startsWith("xmlns")) {
-                                String prefix = "";
-                                if (name.startsWith("xmlns:")) {
-                                    prefix = name.substring(6);
-                                }
-                                // Found a namespace declaration with the prefix.
-                                // Make sure this is not overridden by a declaration
-                                // in a closer scope.
-                                if (!list.contains(prefix) &&
-                                        getNamespaceURI(prefix).equals(namespaceURI)) {
-                                    list.add(prefix);
-                                }
-                            }
-                        }
-                    }
-                }
-                // Pop up to the parent node
-                node = node.getParentNode();
-            }
-            return list.iterator();
-        }
-    }
-
-    public String getNamespaceURI(String prefix) {
-        return element.lookupNamespaceURI(prefix);
-    }
-
-}
diff --git a/modules/jaxws/src/org/apache/axis2/jaxws/message/util/impl/SAAJConverterImpl.java b/modules/jaxws/src/org/apache/axis2/jaxws/message/util/impl/SAAJConverterImpl.java
index 9d2a0bd..d488030 100644
--- a/modules/jaxws/src/org/apache/axis2/jaxws/message/util/impl/SAAJConverterImpl.java
+++ b/modules/jaxws/src/org/apache/axis2/jaxws/message/util/impl/SAAJConverterImpl.java
@@ -20,18 +20,18 @@
 package org.apache.axis2.jaxws.message.util.impl;
 
 import org.apache.axiom.attachments.Attachments;
+import org.apache.axiom.om.OMAbstractFactory;
 import org.apache.axiom.om.OMElement;
 import org.apache.axiom.om.OMNamespace;
-import org.apache.axiom.om.impl.builder.StAXOMBuilder;
+import org.apache.axiom.om.OMXMLBuilderFactory;
+import org.apache.axiom.om.OMXMLParserWrapper;
 import org.apache.axiom.om.util.StAXUtils;
 import org.apache.axiom.soap.SOAP11Constants;
 import org.apache.axiom.soap.SOAP12Constants;
-import org.apache.axiom.soap.impl.builder.MTOMStAXSOAPModelBuilder;
-import org.apache.axiom.soap.impl.builder.StAXSOAPModelBuilder;
+import org.apache.axiom.soap.SOAPModelBuilder;
 import org.apache.axis2.jaxws.ExceptionFactory;
 import org.apache.axis2.jaxws.i18n.Messages;
 import org.apache.axis2.jaxws.message.util.SAAJConverter;
-import org.apache.axis2.jaxws.message.util.SOAPElementReader;
 import org.apache.axis2.jaxws.utility.JavaUtils;
 import org.apache.axis2.jaxws.utility.SAAJFactory;
 import org.apache.commons.logging.Log;
@@ -136,15 +136,15 @@
     	
     	// Before we do the conversion, we have to fix the QNames for fault elements
         _fixFaultElements(saajEnvelope);        
-        // Get a XMLStreamReader backed by a SOAPElement tree
-        XMLStreamReader reader = new SOAPElementReader(saajEnvelope);
-        
-        // Get a SOAP OM Builder.  Passing null causes the version to be automatically triggered
-        StAXSOAPModelBuilder builder = null;
-        if (attachments == null) {
-            builder = new StAXSOAPModelBuilder(reader, null);
+        SOAPModelBuilder builder;
+        if (attachments != null) {
+            builder = OMXMLBuilderFactory.createSOAPModelBuilder(
+                    OMAbstractFactory.getMetaFactory(),
+                    new DOMSource(saajEnvelope),
+                    attachments);
         } else {
-            builder = new MTOMStAXSOAPModelBuilder(reader, attachments, null);
+            // Get a SOAP OM Builder.
+            builder = OMXMLBuilderFactory.createSOAPModelBuilder(new DOMSource(saajEnvelope));
         }
         // Create and return the OM Envelope
         org.apache.axiom.soap.SOAPEnvelope omEnvelope = builder.getSOAPEnvelope();
@@ -184,8 +184,8 @@
         } catch (XMLStreamException e) {
             throw ExceptionFactory.makeWebServiceException(e);
         }
-        // Get a SOAP OM Builder.  Passing null causes the version to be automatically triggered
-        StAXSOAPModelBuilder builder = new StAXSOAPModelBuilder(reader, null);
+        // Get a SOAP OM Builder.
+        SOAPModelBuilder builder = OMXMLBuilderFactory.createStAXSOAPModelBuilder(reader);
         // Create and return the OM Envelope
         return builder.getSOAPEnvelope();
     }
@@ -207,10 +207,8 @@
     		log.debug("The conversion occurs due to " + JavaUtils.stackToString());
     	}
     	
-        // Get a XMLStreamReader backed by a SOAPElement tree
-        XMLStreamReader reader = new SOAPElementReader(soapElement);
         // Get a OM Builder.
-        StAXOMBuilder builder = new StAXOMBuilder(reader);
+        OMXMLParserWrapper builder = OMXMLBuilderFactory.createOMBuilder(new DOMSource(soapElement));
         // Create and return the Element
         OMElement om = builder.getDocumentElement();
         // TODO The following statement expands the OM tree.  This is 
diff --git a/modules/jaxws/src/org/apache/axis2/jaxws/message/util/impl/XMLStreamReaderFromDOM.java b/modules/jaxws/src/org/apache/axis2/jaxws/message/util/impl/XMLStreamReaderFromDOM.java
deleted file mode 100644
index 30187af..0000000
--- a/modules/jaxws/src/org/apache/axis2/jaxws/message/util/impl/XMLStreamReaderFromDOM.java
+++ /dev/null
@@ -1,765 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-
-package org.apache.axis2.jaxws.message.util.impl;
-
-import org.apache.axis2.jaxws.i18n.Messages;
-import org.apache.axis2.jaxws.message.util.SAAJConverter;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.w3c.dom.Attr;
-import org.w3c.dom.CDATASection;
-import org.w3c.dom.CharacterData;
-import org.w3c.dom.Comment;
-import org.w3c.dom.Document;
-import org.w3c.dom.DocumentType;
-import org.w3c.dom.Element;
-import org.w3c.dom.EntityReference;
-import org.w3c.dom.NamedNodeMap;
-import org.w3c.dom.Node;
-import org.w3c.dom.ProcessingInstruction;
-import org.w3c.dom.Text;
-import org.w3c.dom.TypeInfo;
-
-import javax.xml.namespace.NamespaceContext;
-import javax.xml.namespace.QName;
-import javax.xml.stream.Location;
-import javax.xml.stream.XMLStreamException;
-import javax.xml.stream.XMLStreamReader;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Stack;
-import java.util.StringTokenizer;
-
-/**
- * XMLStreamReader created from walking a DOM. This is an implementation class used by
- * SOAPElementReader.
- *
- * @see org.apache.axis2.jaxws.util.SOAPElementReader
- */
-public class XMLStreamReaderFromDOM implements XMLStreamReader {
-	private static final Log log = LogFactory.getLog(XMLStreamReaderFromDOM.class);
-
-    private Node cursor;
-    private Stack<Node> nextCursorStack = new Stack<Node>();
-    private Node root;
-    private int event = XMLStreamReader.START_DOCUMENT;
-    private Node nextCursor = null;
-    private int nextEvent = -1;
-
-    private NamespaceContextFromDOM cacheNCI = null;
-    private Element cacheNCIKey = null;
-
-    private List cacheND = null;
-    private Element cacheNDKey = null;
-
-
-    /**
-     * Create the XMLStreamReader with an Envelope
-     *
-     * @param envelope Element (probably an SAAJ SOAPEnvelope) representing the Envelope
-     */
-    public XMLStreamReaderFromDOM(Element envelope) {
-        root = envelope;
-        cursor = root;
-    }
-
-    /* (non-Javadoc)
-      * @see javax.xml.stream.XMLStreamReader#getProperty(java.lang.String)
-      */
-    public Object getProperty(String key) throws IllegalArgumentException {
-        if (key == null) {
-            throw new IllegalArgumentException(Messages.getMessage("XMLSRErr1"));
-        }
-        return null;
-    }
-
-    /* (non-Javadoc)
-      * @see javax.xml.stream.XMLStreamReader#next()
-      */
-    public int next() throws XMLStreamException {
-        if (!hasNext()) {
-            throw new XMLStreamException(Messages.getMessage("XMLSRErr2"));
-        }
-        getNext();
-        cursor = nextCursor;
-        event = nextEvent;
-        return event;
-    }
-
-    /* (non-Javadoc)
-      * @see javax.xml.stream.XMLStreamReader#require(int, java.lang.String, java.lang.String)
-      */
-    public void require(int event, String namespace, String localPart)
-            throws XMLStreamException {
-        try {
-            if (event != this.event) {
-                throw new XMLStreamException(Messages.getMessage("XMLSRErr3", String.valueOf(event),
-                                                                 String.valueOf(this.event)));
-            }
-            if (namespace != null &&
-                    !namespace.equals(cursor.getNamespaceURI())) {
-                throw new XMLStreamException(
-                        Messages.getMessage("XMLSRErr3", namespace, this.cursor.getNamespaceURI()));
-            }
-            if (localPart != null &&
-                    !localPart.equals(cursor.getLocalName())) {
-                throw new XMLStreamException(
-                        Messages.getMessage("XMLSRErr3", localPart, this.cursor.getLocalName()));
-            }
-        } catch (XMLStreamException e) {
-            throw e;
-        } catch (Exception e) {
-            throw new XMLStreamException(e);
-        }
-    }
-
-    /* (non-Javadoc)
-      * @see javax.xml.stream.XMLStreamReader#getElementText()
-      */
-    public String getElementText() throws XMLStreamException {
-        if (event == XMLStreamReader.START_ELEMENT) {
-            next();
-            StringBuffer buffer = new StringBuffer();
-            while (event != XMLStreamReader.END_ELEMENT) {
-                if (event == XMLStreamReader.CHARACTERS ||
-                        event == XMLStreamReader.CDATA ||
-                        event == XMLStreamReader.SPACE ||
-                        event == XMLStreamReader.ENTITY_REFERENCE) {
-                    buffer.append(getText());
-                } else if (event == XMLStreamReader.PROCESSING_INSTRUCTION ||
-                        event == XMLStreamReader.COMMENT) {
-                    // whitespace
-                } else {
-                    throw new XMLStreamException(
-                            Messages.getMessage("XMLSRErr4", "getElementText()"));
-                }
-                next();
-            }
-            return buffer.toString();
-        }
-        throw new XMLStreamException(Messages.getMessage("XMLSRErr4", "getElementText()"));
-    }
-
-    /* (non-Javadoc)
-      * @see javax.xml.stream.XMLStreamReader#nextTag()
-      */
-    public int nextTag() throws XMLStreamException {
-        next();
-        while (event == XMLStreamReader.CHARACTERS && isWhiteSpace() ||
-                event == XMLStreamReader.CDATA && isWhiteSpace() ||
-                event == XMLStreamReader.SPACE ||
-                event == XMLStreamReader.PROCESSING_INSTRUCTION ||
-                event == XMLStreamReader.COMMENT) {
-            event = next();
-        }
-        if (event == XMLStreamReader.START_ELEMENT ||
-                event == XMLStreamReader.END_ELEMENT) {
-            return event;
-        }
-        throw new XMLStreamException(Messages.getMessage("XMLSRErr4", "nextTag()"));
-    }
-
-    /* (non-Javadoc)
-      * @see javax.xml.stream.XMLStreamReader#hasNext()
-      */
-    public boolean hasNext() throws XMLStreamException {
-        return (event != XMLStreamReader.END_DOCUMENT);
-    }
-
-    /* (non-Javadoc)
-      * @see javax.xml.stream.XMLStreamReader#close()
-      */
-    public void close() throws XMLStreamException {
-        return;
-    }
-
-    /* (non-Javadoc)
-      * @see javax.xml.stream.XMLStreamReader#getNamespaceURI(java.lang.String)
-      */
-    public String getNamespaceURI(String prefix) {
-        if (cursor instanceof Element) {
-            return getNamespaceContext().getNamespaceURI(prefix);
-        }
-        throw new IllegalStateException(
-                Messages.getMessage("XMLSRErr4", "getNamespaceURI(String)"));
-    }
-
-    /* (non-Javadoc)
-      * @see javax.xml.stream.XMLStreamReader#isStartElement()
-      */
-    public boolean isStartElement() {
-        return (event == XMLStreamReader.START_ELEMENT);
-    }
-
-    /* (non-Javadoc)
-      * @see javax.xml.stream.XMLStreamReader#isEndElement()
-      */
-    public boolean isEndElement() {
-        return (event == XMLStreamReader.END_ELEMENT);
-    }
-
-    /* (non-Javadoc)
-      * @see javax.xml.stream.XMLStreamReader#isCharacters()
-      */
-    public boolean isCharacters() {
-        return (event == XMLStreamReader.CHARACTERS);
-    }
-
-    /* (non-Javadoc)
-      * @see javax.xml.stream.XMLStreamReader#isWhiteSpace()
-      */
-    public boolean isWhiteSpace() {
-        if (event == XMLStreamReader.CHARACTERS ||
-                event == XMLStreamReader.CDATA) {
-            String value = ((CharacterData)cursor).getData();
-            StringTokenizer st = new StringTokenizer(value);
-            return !(st.hasMoreTokens());
-        }
-        return false;
-    }
-
-    /** @return list of attributes that are not namespace declarations */
-    private List getAttributes() {
-        if (event == XMLStreamReader.START_ELEMENT) {
-            List attrs = new ArrayList();
-            NamedNodeMap map = ((Element)cursor).getAttributes();
-            if (map != null) {
-                for (int i = 0; i < map.getLength(); i++) {
-                    Attr attr = (Attr)map.item(i);
-                    if (attr.getName().equals("xmlns") ||
-                            attr.getName().startsWith("xmlns:")) {
-                        // this is a namespace declaration
-                    } else {
-                    	if (log.isDebugEnabled()) {
-                            log.debug("Attr string: " + attr.toString());
-                        }
-                        attrs.add(attr);
-                    }
-                }
-            }
-            return attrs;
-        }
-        throw new IllegalStateException(Messages.getMessage("XMLSRErr4", "getAttributes()"));
-    }
-
-    /* (non-Javadoc)
-      * @see javax.xml.stream.XMLStreamReader#getAttributeValue(java.lang.String, java.lang.String)
-      */
-    public String getAttributeValue(String namespace, String localPart) {
-        if (event == XMLStreamReader.START_ELEMENT) {
-            return ((Element)cursor).getAttributeNS(namespace, localPart);
-        }
-        throw new IllegalStateException(
-                Messages.getMessage("XMLSRErr4", "getAttributeValue(String, String)"));
-    }
-
-    /* (non-Javadoc)
-      * @see javax.xml.stream.XMLStreamReader#getAttributeCount()
-      */
-    public int getAttributeCount() {
-        return getAttributes().size();
-    }
-
-    /* (non-Javadoc)
-      * @see javax.xml.stream.XMLStreamReader#getAttributeName(int)
-      */
-    public QName getAttributeName(int index) {
-        Attr attr = (Attr)getAttributes().get(index);
-        return new QName(attr.getNamespaceURI(), attr.getLocalName());
-    }
-
-    /* (non-Javadoc)
-      * @see javax.xml.stream.XMLStreamReader#getAttributeNamespace(int)
-      */
-    public String getAttributeNamespace(int index) {
-        Attr attr = (Attr)getAttributes().get(index);
-        return attr.getNamespaceURI();
-    }
-
-    /* (non-Javadoc)
-      * @see javax.xml.stream.XMLStreamReader#getAttributeLocalName(int)
-      */
-    public String getAttributeLocalName(int index) {
-        Attr attr = (Attr)getAttributes().get(index);
-        return attr.getLocalName();
-    }
-
-    /* (non-Javadoc)
-      * @see javax.xml.stream.XMLStreamReader#getAttributePrefix(int)
-      */
-    public String getAttributePrefix(int index) {
-        Attr attr = (Attr)getAttributes().get(index);
-        return attr.getPrefix();
-    }
-
-    /* (non-Javadoc)
-      * @see javax.xml.stream.XMLStreamReader#getAttributeType(int)
-      */
-    public String getAttributeType(int index) {
-        String attrType = null;    
-        Attr attr = (Attr)getAttributes().get(index);
-        TypeInfo typeInfo = attr.getSchemaTypeInfo();
-	    if (typeInfo != null) {
-	    	attrType = typeInfo.getTypeName();
-        }
-	    
-        if (attrType == null) {
-            try {
-                attrType = (String) attr.getUserData(SAAJConverter.OM_ATTRIBUTE_KEY);
-                if (log.isDebugEnabled()) {
-                	log.debug("Retrieving attrType from UserData: " + attrType);
-                }
-            } catch (Exception e) {
-           	    if (log.isDebugEnabled()) {
-         		    log.debug("An error occured while getting attrType: " + e.getMessage());
-         	    }
-            }
-        }
-              
-        return attrType;
-    }
-
-    /* (non-Javadoc)
-      * @see javax.xml.stream.XMLStreamReader#getAttributeValue(int)
-      */
-    public String getAttributeValue(int index) {
-        Attr attr = (Attr)getAttributes().get(index);
-        return attr.getValue();
-    }
-
-    /* (non-Javadoc)
-      * @see javax.xml.stream.XMLStreamReader#isAttributeSpecified(int)
-      */
-    public boolean isAttributeSpecified(int arg0) {
-        return true;
-    }
-
-    /*
-      * @return number of namespace declarations on this element
-      */
-    public int getNamespaceCount() {
-        if (cursor instanceof Element) {
-            List list = getNamespaceDeclarations();
-            return list.size();
-        }
-        throw new IllegalStateException(Messages.getMessage("XMLSRErr4", "getNamespaceCount()"));
-    }
-
-    /* (non-Javadoc)
-      * @see javax.xml.stream.XMLStreamReader#getNamespacePrefix(int)
-      */
-    public String getNamespacePrefix(int index) {
-        if (cursor instanceof Element) {
-            List list = getNamespaceDeclarations();
-            return ((NamespaceDeclare)list.get(index)).getPrefix();
-        }
-        throw new IllegalStateException(
-                Messages.getMessage("XMLSRErr4", "getNamespacePrefix(int)"));
-    }
-
-    /* (non-Javadoc)
-      * @see javax.xml.stream.XMLStreamReader#getNamespaceURI(int)
-      */
-    public String getNamespaceURI(int index) {
-        if (cursor instanceof Element) {
-            List list = getNamespaceDeclarations();
-            return ((NamespaceDeclare)list.get(index)).getURI();
-        }
-        throw new IllegalStateException(Messages.getMessage("XMLSRErr4", "getNamespaceURI(int)"));
-    }
-
-    /* (non-Javadoc)
-      * @see javax.xml.stream.XMLStreamReader#getNamespaceContext()
-      */
-    public NamespaceContext getNamespaceContext() {
-        Element element = null;
-        if (cursor instanceof Element) {
-            element = (Element)cursor;
-        } else {
-            Element parent = (Element)cursor.getParentNode();
-            if (parent == null) {
-                parent = (Element)nextCursorStack.peek();
-            }
-            element = (Element)cursor.getParentNode();
-        }
-        if (element == cacheNCIKey) {
-            return cacheNCI;
-        }
-        cacheNCIKey = element;
-        cacheNCI = new NamespaceContextFromDOM(element);
-        return cacheNCI;
-    }
-
-    /* (non-Javadoc)
-      * @see javax.xml.stream.XMLStreamReader#getEventType()
-      */
-    public int getEventType() {
-        return event;
-    }
-
-    /* (non-Javadoc)
-      * @see javax.xml.stream.XMLStreamReader#getText()
-      */
-    public String getText() {
-        if (event == XMLStreamReader.CHARACTERS ||
-                event == XMLStreamReader.CDATA ||
-                event == XMLStreamReader.COMMENT) {
-            return ((CharacterData)cursor).getData();
-        }
-        throw new IllegalStateException(Messages.getMessage("XMLSRErr4", "getText()"));
-    }
-
-    /* (non-Javadoc)
-      * @see javax.xml.stream.XMLStreamReader#getTextCharacters()
-      */
-    public char[] getTextCharacters() {
-        return getText().toCharArray();
-    }
-
-    /* (non-Javadoc)
-      * @see javax.xml.stream.XMLStreamReader#getTextCharacters(int, char[], int, int)
-      */
-    public int getTextCharacters(int sourceStart, char[] target, int targetStart, int length)
-            throws XMLStreamException {
-        String value = getText();
-        // Calculate the sourceEnd index
-        int sourceEnd = sourceStart + length;
-        if (value.length() < sourceEnd) {
-            sourceEnd = value.length();
-        }
-        value.getChars(sourceStart, sourceEnd, target, targetStart);
-        return sourceEnd - sourceStart;
-    }
-
-    /* (non-Javadoc)
-      * @see javax.xml.stream.XMLStreamReader#getTextStart()
-      */
-    public int getTextStart() {
-        return 0;
-    }
-
-    /* (non-Javadoc)
-      * @see javax.xml.stream.XMLStreamReader#getTextLength()
-      */
-    public int getTextLength() {
-        return getText().length();
-    }
-
-    /* (non-Javadoc)
-      * @see javax.xml.stream.XMLStreamReader#getEncoding()
-      */
-    public String getEncoding() {
-        return null;
-    }
-
-    /* (non-Javadoc)
-      * @see javax.xml.stream.XMLStreamReader#hasText()
-      */
-    public boolean hasText() {
-        return (event == XMLStreamReader.CHARACTERS ||
-                event == XMLStreamReader.CDATA ||
-                event == XMLStreamReader.COMMENT);
-    }
-
-    /* (non-Javadoc)
-      * @see javax.xml.stream.XMLStreamReader#getLocation()
-      */
-    public Location getLocation() {
-        return dummyLocation;
-    }
-
-    /* (non-Javadoc)
-      * @see javax.xml.stream.XMLStreamReader#getName()
-      */
-    public QName getName() {
-        if (cursor instanceof Element) {
-            return new QName(cursor.getNamespaceURI(), cursor.getLocalName());
-        }
-        throw new IllegalStateException(Messages.getMessage("XMLSRErr4", "getName()"));
-    }
-
-    /* (non-Javadoc)
-      * @see javax.xml.stream.XMLStreamReader#getLocalName()
-      */
-    public String getLocalName() {
-        if (cursor instanceof Element) {
-            return cursor.getLocalName();
-        }
-        throw new IllegalStateException(Messages.getMessage("XMLSRErr4", "getLocalName()"));
-    }
-
-    /* (non-Javadoc)
-      * @see javax.xml.stream.XMLStreamReader#hasName()
-      */
-    public boolean hasName() {
-        return (isStartElement() || isEndElement());
-    }
-
-    /* (non-Javadoc)
-      * @see javax.xml.stream.XMLStreamReader#getNamespaceURI()
-      */
-    public String getNamespaceURI() {
-        if (cursor instanceof Element) {
-            return cursor.getNamespaceURI();
-        } else {
-            return null;
-        }
-    }
-
-    /* (non-Javadoc)
-      * @see javax.xml.stream.XMLStreamReader#getPrefix()
-      */
-    public String getPrefix() {
-        if (cursor instanceof Element) {
-            return cursor.getPrefix();
-        } else {
-            return null;
-        }
-    }
-
-    /* (non-Javadoc)
-      * @see javax.xml.stream.XMLStreamReader#getVersion()
-      */
-    public String getVersion() {
-        return null;
-    }
-
-    /* (non-Javadoc)
-      * @see javax.xml.stream.XMLStreamReader#isStandalone()
-      */
-    public boolean isStandalone() {
-        return false;
-    }
-
-    /* (non-Javadoc)
-      * @see javax.xml.stream.XMLStreamReader#standaloneSet()
-      */
-    public boolean standaloneSet() {
-        return false;
-    }
-
-    /* (non-Javadoc)
-      * @see javax.xml.stream.XMLStreamReader#getCharacterEncodingScheme()
-      */
-    public String getCharacterEncodingScheme() {
-        return null;
-    }
-
-    /* (non-Javadoc)
-      * @see javax.xml.stream.XMLStreamReader#getPITarget()
-      */
-    public String getPITarget() {
-        return null;
-    }
-
-    /* (non-Javadoc)
-      * @see javax.xml.stream.XMLStreamReader#getPIData()
-      */
-    public String getPIData() {
-        return null;
-    }
-
-    /** Sets nextCursor and nextEvent from using the current cursor and event. */
-    private void getNext() throws IllegalStateException {
-        switch (event) {
-            case XMLStreamReader.START_DOCUMENT: {
-                nextCursor = cursor;
-                nextEvent = XMLStreamReader.START_ELEMENT;
-                break;
-            }
-
-            case XMLStreamReader.START_ELEMENT: {
-                if (cursor.getFirstChild() != null) {
-                    nextCursorStack.push(nextCursor);
-                    nextCursor = cursor.getFirstChild();
-                    nextEvent = startEvent(nextCursor);
-                } else {
-                    nextEvent = XMLStreamReader.END_ELEMENT;
-                }
-                break;
-            }
-            case XMLStreamReader.ATTRIBUTE: {
-                throw new IllegalStateException(Messages.getMessage("XMLSRErr5", "ATTRIBUTE"));
-            }
-            case XMLStreamReader.NAMESPACE: {
-                throw new IllegalStateException(Messages.getMessage("XMLSRErr5", "NAMESPACE"));
-            }
-            case XMLStreamReader.END_ELEMENT:
-            case XMLStreamReader.CHARACTERS:
-            case XMLStreamReader.CDATA:
-            case XMLStreamReader.COMMENT:
-            case XMLStreamReader.SPACE:
-            case XMLStreamReader.PROCESSING_INSTRUCTION:
-            case XMLStreamReader.ENTITY_REFERENCE:
-            case XMLStreamReader.DTD: {
-                if (cursor.getNextSibling() != null) {
-                    nextCursor = cursor.getNextSibling();
-                    nextEvent = startEvent(nextCursor);
-                } else if (cursor == root) {
-                    nextEvent = XMLStreamReader.END_DOCUMENT;
-                } else {
-                    // The following does not work with
-                    // Axiom Text nodes
-                    // nextCursor = cursor.getParentNode();
-                    // This is the reason why a stack is used.
-                    nextCursor = nextCursorStack.pop();
-
-                    nextEvent = XMLStreamReader.END_ELEMENT;
-                }
-                break;
-            }
-
-            case XMLStreamReader.END_DOCUMENT: {
-                nextCursor = null;
-                nextEvent = -1;
-            }
-            default:
-                throw new IllegalStateException(
-                        Messages.getMessage("XMLSRErr5", String.valueOf(event)));
-        }
-
-    }
-
-    /**
-     * Returns the start event for this particular node
-     *
-     * @param node
-     * @return
-     */
-    private int startEvent(Node node) {
-        if (node instanceof ProcessingInstruction) {
-            return XMLStreamReader.PROCESSING_INSTRUCTION;
-        }
-        if (node instanceof CDATASection) {
-            return XMLStreamReader.CDATA;
-        }
-        if (node instanceof Comment) {
-            return XMLStreamReader.COMMENT;
-        }
-        if (node instanceof Text) {
-            if (node instanceof javax.xml.soap.Text) {
-                javax.xml.soap.Text soapText = (javax.xml.soap.Text)node;
-                if (soapText.isComment()) {
-                    return XMLStreamReader.COMMENT;
-                } else {
-                    return XMLStreamReader.CHARACTERS;
-                }
-            }
-            return XMLStreamReader.CHARACTERS;
-        }
-        if (node instanceof Element) {
-            return XMLStreamReader.START_ELEMENT;
-        }
-        if (node instanceof Attr) {
-            return XMLStreamReader.ATTRIBUTE;
-        }
-        if (node instanceof Document) {
-            return XMLStreamReader.START_DOCUMENT;
-        }
-        if (node instanceof EntityReference) {
-            return XMLStreamReader.ENTITY_REFERENCE;
-        }
-        if (node instanceof DocumentType) {
-            return XMLStreamReader.DTD;
-        }
-        return -1;
-    }
-
-    // This is the definition of a dummy Location
-    private DummyLocation dummyLocation = new DummyLocation();
-
-    private class DummyLocation implements Location {
-
-        public int getLineNumber() {
-            return -1;
-        }
-
-        public int getColumnNumber() {
-            return 0;
-        }
-
-        public int getCharacterOffset() {
-            return 0;
-        }
-
-        public String getPublicId() {
-            return null;
-        }
-
-        public String getSystemId() {
-            return null;
-        }
-
-    }
-
-    public List getNamespaceDeclarations() {
-        Element element = null;
-        if (cursor instanceof Element) {
-            element = (Element)cursor;
-        } else {
-            return new ArrayList();
-        }
-        if (element == cacheNDKey) {
-            return cacheND;
-        }
-        cacheNDKey = element;
-        cacheND = new ArrayList();
-        NamedNodeMap attrs = element.getAttributes();
-        if (attrs != null) {
-            for (int i = 0; i < attrs.getLength(); i++) {
-                Attr attr = (Attr)attrs.item(i);
-                String name = attr.getNodeName();
-                if (name.startsWith("xmlns")) {
-                    String prefix = "";
-                    if (name.startsWith("xmlns:")) {
-                        prefix = name.substring(6);
-                    }
-                    NamespaceDeclare nd = new NamespaceDeclare(prefix, attr.getNodeValue());
-                    cacheND.add(nd);
-                }
-            }
-        }
-        return cacheND;
-    }
-
-    class NamespaceDeclare {
-        String prefix;
-        String uri;
-
-        NamespaceDeclare(String prefix, String uri) {
-            this.prefix = prefix;
-            this.uri = uri;
-        }
-
-        String getPrefix() {
-            return prefix;
-        }
-
-        String getURI() {
-            return uri;
-        }
-    }
-
-    Node getNode() {
-        return cursor;
-	}
-	
-}
diff --git a/modules/jaxws/src/org/apache/axis2/jaxws/registry/FactoryRegistry.java b/modules/jaxws/src/org/apache/axis2/jaxws/registry/FactoryRegistry.java
index a6c789b..959ac16 100644
--- a/modules/jaxws/src/org/apache/axis2/jaxws/registry/FactoryRegistry.java
+++ b/modules/jaxws/src/org/apache/axis2/jaxws/registry/FactoryRegistry.java
@@ -36,7 +36,6 @@
 import org.apache.axis2.jaxws.handler.lifecycle.factory.HandlerLifecycleManagerFactory;
 import org.apache.axis2.jaxws.message.databinding.impl.JAXBBlockFactoryImpl;
 import org.apache.axis2.jaxws.message.databinding.impl.OMBlockFactoryImpl;
-import org.apache.axis2.jaxws.message.databinding.impl.ParsedEntityReaderImpl;
 import org.apache.axis2.jaxws.message.databinding.impl.SOAPEnvelopeBlockFactoryImpl;
 import org.apache.axis2.jaxws.message.databinding.impl.SourceBlockFactoryImpl;
 import org.apache.axis2.jaxws.message.databinding.impl.XMLStringBlockFactoryImpl;
@@ -45,7 +44,6 @@
 import org.apache.axis2.jaxws.message.factory.JAXBBlockFactory;
 import org.apache.axis2.jaxws.message.factory.MessageFactory;
 import org.apache.axis2.jaxws.message.factory.OMBlockFactory;
-import org.apache.axis2.jaxws.message.factory.ParsedEntityReaderFactory;
 import org.apache.axis2.jaxws.message.factory.SAAJConverterFactory;
 import org.apache.axis2.jaxws.message.factory.SOAPEnvelopeBlockFactory;
 import org.apache.axis2.jaxws.message.factory.SourceBlockFactory;
@@ -126,7 +124,6 @@
         table.put(InvocationControllerFactory.class, new InvocationControllerFactoryImpl());
         table.put(HandlerPreInvokerFactory.class, new HandlerPreInvokerFactoryImpl());
         table.put(HandlerPostInvokerFactory.class, new HandlerPostInvokerFactoryImpl());
-        table.put(ParsedEntityReaderFactory.class, new ParsedEntityReaderFactory());
         // register the implementation responsible for both WebServiceContext 
         // injection and the updating of the WebServiceContext instances that
         // have already been injected, we will register these by two different
diff --git a/modules/jaxws/src/org/apache/axis2/jaxws/runtime/description/marshal/impl/PackageSetBuilder.java b/modules/jaxws/src/org/apache/axis2/jaxws/runtime/description/marshal/impl/PackageSetBuilder.java
index 9c05e95..7ae4d26 100644
--- a/modules/jaxws/src/org/apache/axis2/jaxws/runtime/description/marshal/impl/PackageSetBuilder.java
+++ b/modules/jaxws/src/org/apache/axis2/jaxws/runtime/description/marshal/impl/PackageSetBuilder.java
@@ -880,7 +880,7 @@
                                 String baseDir = new File(System.getProperty("basedir",".")).getCanonicalPath();
                                 String wsdlLocationPath = new File(baseDir +File.separator+ wsdlLocation).getAbsolutePath();
                                 File file = new File(wsdlLocationPath);
-                                URL url = file.toURL();
+                                URL url = file.toURI().toURL();
                                 if(log.isDebugEnabled()){
                                     log.debug("Reading WSDL from URL:" +url.toString());
                                 }
diff --git a/modules/jaxws/src/org/apache/axis2/jaxws/server/dispatcher/ProviderDispatcher.java b/modules/jaxws/src/org/apache/axis2/jaxws/server/dispatcher/ProviderDispatcher.java
index abe612e..6395bc3 100644
--- a/modules/jaxws/src/org/apache/axis2/jaxws/server/dispatcher/ProviderDispatcher.java
+++ b/modules/jaxws/src/org/apache/axis2/jaxws/server/dispatcher/ProviderDispatcher.java
@@ -21,7 +21,6 @@
 
 import org.apache.axis2.Constants;
 import org.apache.axis2.jaxws.ExceptionFactory;
-import org.apache.axis2.jaxws.context.listener.ContextListenerUtils;
 import org.apache.axis2.jaxws.context.utils.ContextUtils;
 import org.apache.axis2.jaxws.core.MessageContext;
 import org.apache.axis2.jaxws.core.util.MessageContextUtils;
@@ -307,8 +306,6 @@
                     }
                 }
                 if (providerType.equals(OMElement.class)) {
-                    //Register the ContextListener for performance.
-                    ContextListenerUtils.registerProviderOMListener(request);
                     // TODO avoid call to message.getValue due to
                     // current unnecessary message transformation in
                     // message.getValue.  Once message.getValue is fixed,
diff --git a/modules/jaxws/src/org/apache/axis2/jaxws/spi/ServiceDelegate.java b/modules/jaxws/src/org/apache/axis2/jaxws/spi/ServiceDelegate.java
index 01c8470..ab77835 100644
--- a/modules/jaxws/src/org/apache/axis2/jaxws/spi/ServiceDelegate.java
+++ b/modules/jaxws/src/org/apache/axis2/jaxws/spi/ServiceDelegate.java
@@ -52,7 +52,6 @@
 import org.apache.axis2.jaxws.client.dispatch.JAXBDispatch;
 import org.apache.axis2.jaxws.client.dispatch.XMLDispatch;
 import org.apache.axis2.jaxws.client.proxy.JAXWSProxyHandler;
-import org.apache.axis2.jaxws.context.listener.ProviderOMContextListener;
 import org.apache.axis2.jaxws.description.DescriptionFactory;
 import org.apache.axis2.jaxws.description.EndpointDescription;
 import org.apache.axis2.jaxws.description.ServiceDescription;
@@ -335,13 +334,6 @@
 
         if (serviceClient == null)
             serviceClient = getServiceClient(endpointDesc.getPortQName());
-        
-        if(type == OMElement.class) {
-            if (log.isDebugEnabled()) {
-                log.debug("This a Dispatch<OMElement>. The custom builder is installed.");
-            }
-            ProviderOMContextListener.create(serviceClient.getServiceContext());
-        }
 
         dispatch.setServiceClient(serviceClient);
         dispatch.setType(type);
@@ -445,12 +437,6 @@
         if (serviceClient == null)
             serviceClient = getServiceClient(portName);
 
-        if(type == OMElement.class) {
-            if (log.isDebugEnabled()) {
-                log.debug("This a Dispatch<OMElement>. The custom builder is installed.");
-            }
-            ProviderOMContextListener.create(serviceClient.getServiceContext());
-        }
         dispatch.setServiceClient(serviceClient);
         dispatch.setType(type);
         return dispatch;
diff --git a/modules/jaxws/src/org/apache/axis2/jaxws/utility/ClassUtils.java b/modules/jaxws/src/org/apache/axis2/jaxws/utility/ClassUtils.java
index 29f29fd..8a2cde7 100644
--- a/modules/jaxws/src/org/apache/axis2/jaxws/utility/ClassUtils.java
+++ b/modules/jaxws/src/org/apache/axis2/jaxws/utility/ClassUtils.java
@@ -316,33 +316,38 @@
      * 
      */
     public static Set<Class> getClasses(Type type, Set<Class> list) {
-    	if (list == null) {
-    		list = new HashSet<Class>();
-    	}
-    	try {
-    		if (type instanceof Class) {
-    			list.add( (Class)type);
-    		}
-    		if (type instanceof ParameterizedType) {
-    			ParameterizedType pt = (ParameterizedType) type;
-    			getClasses(pt.getRawType(), list);
-    			Type types[] = pt.getActualTypeArguments();
-    			if (types != null) {
-    				for (int i=0; i<types.length; i++) {
-    					getClasses(types[i], list);
-    				}
-    			}
-    		} 
-    		if (type instanceof GenericArrayType) {
-    			GenericArrayType gat = (GenericArrayType) type;
-    			getClasses(gat.getGenericComponentType(), list);
-    		}
-    	} catch (Throwable t) {
-    		if (log.isDebugEnabled()) {
-    			log.debug("Problem occurred in getClasses. Processing continues " + t);
-    		}
-    	}
-    	return list;
+        if (list == null) {
+            list = new HashSet<Class>();
+        }
+        try {
+            if (type instanceof Class) {
+                Class<?> clazz = (Class<?>)type;
+                if (clazz.isArray()) {
+                    getClasses(clazz.getComponentType(), list);
+                } else {
+                    list.add(clazz);
+                }
+            }
+            if (type instanceof ParameterizedType) {
+                ParameterizedType pt = (ParameterizedType) type;
+                getClasses(pt.getRawType(), list);
+                Type types[] = pt.getActualTypeArguments();
+                if (types != null) {
+                    for (int i=0; i<types.length; i++) {
+                        getClasses(types[i], list);
+                    }
+                }
+            } 
+            if (type instanceof GenericArrayType) {
+                GenericArrayType gat = (GenericArrayType) type;
+                getClasses(gat.getGenericComponentType(), list);
+            }
+        } catch (Throwable t) {
+            if (log.isDebugEnabled()) {
+                log.debug("Problem occurred in getClasses. Processing continues " + t);
+            }
+        }
+        return list;
     }
     
 }
diff --git a/modules/jaxws/src/org/apache/axis2/jaxws/utility/DataSourceFormatter.java b/modules/jaxws/src/org/apache/axis2/jaxws/utility/DataSourceFormatter.java
index d7f5897..b21b8cd 100644
--- a/modules/jaxws/src/org/apache/axis2/jaxws/utility/DataSourceFormatter.java
+++ b/modules/jaxws/src/org/apache/axis2/jaxws/utility/DataSourceFormatter.java
@@ -59,21 +59,21 @@
             if (log.isDebugEnabled()) {

                 log.debug("start writeTo()");

             }

+            OMElement omElement = messageContext.getEnvelope().getBody().getFirstElement();

+            DataSource busObject;

+            try {

+                busObject = (DataSource)((DataSourceBlock)((OMSourcedElement) omElement).getDataSource()).getBusinessObject(true);

+            } catch (XMLStreamException e) {

+                throw AxisFault.makeFault(e);

+            }

+            DataHandler dataHandler = new DataHandler(busObject);

             if (attachments != null && !attachments.isEmpty()) {

-                OMElement omElement = messageContext.getEnvelope().getBody().getFirstElement();

-                DataSource busObject;

-                try {

-                    busObject = (DataSource)((DataSourceBlock)((OMSourcedElement) omElement).getDataSource()).getBusinessObject(true);

-                } catch (XMLStreamException e) {

-                    throw AxisFault.makeFault(e);

-                }

                 OMMultipartWriter mpw = new OMMultipartWriter(outputStream, format);

-                DataHandler rootDataHandler = new DataHandler(busObject);

-                if (!rootDataHandler.getContentType().equals(contentType)) {

-                    rootDataHandler = new WrappedDataHandler(rootDataHandler, contentType);

+                if (!dataHandler.getContentType().equals(contentType)) {

+                    dataHandler = new WrappedDataHandler(dataHandler, contentType);

                 }

                 try {

-                    mpw.writePart(rootDataHandler, format.getRootContentId());

+                    mpw.writePart(dataHandler, format.getRootContentId());

                     for (String cid : attachments.keySet()) {

                         mpw.writePart(attachments.get(cid), cid);

                     }

@@ -82,24 +82,13 @@
                 } catch (IOException ex) {

                     throw AxisFault.makeFault(ex);

                 }

-            } else { 

-                    OMElement omElement = messageContext.getEnvelope().getBody().getFirstElement();

-                    if (omElement != null) {

-                        try {

-                            if (preserve) {

-                                omElement.serialize(outputStream, format);

-                            } else {

-                                omElement.serializeAndConsume(outputStream, format);

-                            }

-                        } catch (XMLStreamException e) {

-                            throw AxisFault.makeFault(e);

-                        }

-                    }

-                    try {

-                        outputStream.flush();

-                    } catch (IOException e) {

-                        throw AxisFault.makeFault(e);

-                    }

+            } else {

+                try {

+                    dataHandler.writeTo(outputStream);

+                    outputStream.flush();

+                } catch (IOException e) {

+                    throw AxisFault.makeFault(e);

+                }

             }

         } finally {

             if (log.isDebugEnabled()) {

diff --git a/modules/jaxws/test-resources/axis2.xml b/modules/jaxws/test-resources/axis2.xml
index 17f067e..30f0843 100644
--- a/modules/jaxws/test-resources/axis2.xml
+++ b/modules/jaxws/test-resources/axis2.xml
@@ -140,12 +140,12 @@
     <transportSender name="local"

                      class="org.apache.axis2.transport.local.LocalTransportSender"/>

     <transportSender name="http"

-                     class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">

+                     class="org.apache.axis2.transport.http.impl.httpclient4.HTTPClient4TransportSender">

         <parameter name="PROTOCOL">HTTP/1.1</parameter>

         <parameter name="Transfer-Encoding">chunked</parameter>

     </transportSender>

     <transportSender name="https"

-                     class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">

+                     class="org.apache.axis2.transport.http.impl.httpclient4.HTTPClient4TransportSender">

         <parameter name="PROTOCOL">HTTP/1.1</parameter>

         <parameter name="Transfer-Encoding">chunked</parameter>

     </transportSender>

diff --git a/modules/jaxws/test-resources/log4j.properties b/modules/jaxws/test-resources/log4j.properties
index 7724762..59f798e 100644
--- a/modules/jaxws/test-resources/log4j.properties
+++ b/modules/jaxws/test-resources/log4j.properties
@@ -35,7 +35,6 @@
 

 # Set the enterprise logger priority to FATAL

 log4j.logger.org.apache.axis2.enterprise=FATAL

-log4j.logger.de.hunsicker.jalopy.io=FATAL

 log4j.logger.httpclient.wire.header=FATAL

 log4j.logger.org.apache.commons.httpclient=FATAL

 

@@ -56,4 +55,4 @@
 log4j.appender.SMALL.File=axis2.small.log

 log4j.appender.SMALL.Append=true

 log4j.appender.SMALL.layout=org.apache.log4j.PatternLayout

-log4j.appender.SMALL.layout.ConversionPattern=%d [%t] %-5p %c %x - %m%n
\ No newline at end of file
+log4j.appender.SMALL.layout.ConversionPattern=%d [%t] %-5p %c %x - %m%n

diff --git a/modules/jaxws/test/org/apache/axis2/datasource/jaxb/JAXBCustomBuilderDisableStreamingTests.java b/modules/jaxws/test/org/apache/axis2/datasource/jaxb/JAXBCustomBuilderDisableStreamingTests.java
index cb6b3c1..f31b363 100644
--- a/modules/jaxws/test/org/apache/axis2/datasource/jaxb/JAXBCustomBuilderDisableStreamingTests.java
+++ b/modules/jaxws/test/org/apache/axis2/datasource/jaxb/JAXBCustomBuilderDisableStreamingTests.java
@@ -18,15 +18,14 @@
  */

 package org.apache.axis2.datasource.jaxb;

 

+import static com.google.common.truth.Truth.assertThat;

+import static org.mockito.Mockito.mock;

+

+import org.apache.axiom.soap.SOAPBody;

 import org.apache.axis2.context.MessageContext;

 import org.apache.axis2.description.AxisService;

 import org.apache.axis2.jaxws.Constants;

 

-import javax.xml.namespace.NamespaceContext;

-import javax.xml.namespace.QName;

-import javax.xml.stream.Location;

-import javax.xml.stream.XMLStreamException;

-

 import junit.framework.TestCase;

 

 /**

@@ -42,13 +41,7 @@
         // Disable the JAXB Payload streaming

         msgCtx.setProperty(Constants.JAXWS_ENABLE_JAXB_PAYLOAD_STREAMING, new Boolean(false));

         jaxbDSC.setMessageContext(msgCtx);

-        try {

-            assertNull(jaxbCB.create("ns", "lp", null, new MockXMLStreamReader(), null));

-        } catch (Exception e) {

-            // Since we didn't set up the JAXBDSContext fully, if the disabling of it didn't

-            // work, then we'll get some sort of exception.

-            fail("JAXB Payload streaming was not disabled");

-        }

+        assertThat(jaxbCB.accepts(mock(SOAPBody.class), 3, "ns", "lp")).isFalse();

     }

     

     public void testDisableJAXBPayloadStreamingWithHighFidelity() {

@@ -59,13 +52,7 @@
         // Disable the JAXB Payload streaming

         msgCtx.setProperty(Constants.JAXWS_PAYLOAD_HIGH_FIDELITY, new Boolean(true));

         jaxbDSC.setMessageContext(msgCtx);

-        try {

-            assertNull(jaxbCB.create("ns", "lp", null, new MockXMLStreamReader(), null));

-        } catch (Exception e) {

-            // Since we didn't set up the JAXBDSContext fully, if the disabling of it didn't

-            // work, then we'll get some sort of exception.

-            fail("JAXB Payload streaming was not disabled");

-        }

+        assertThat(jaxbCB.accepts(mock(SOAPBody.class), 3, "ns", "lp")).isFalse();

     }

     

     public void testDisableJAXBPayloadStreamingWithHighFidelityParameter() throws Exception {

@@ -78,13 +65,7 @@
         service.addParameter(Constants.JAXWS_PAYLOAD_HIGH_FIDELITY, "true");

         

         jaxbDSC.setMessageContext(msgCtx);

-        try {

-            assertNull(jaxbCB.create("ns", "lp", null, new MockXMLStreamReader(), null));

-        } catch (Exception e) {

-            // Since we didn't set up the JAXBDSContext fully, if the disabling of it didn't

-            // work, then we'll get some sort of exception.

-            fail("JAXB Payload streaming was not disabled");

-        }

+        assertThat(jaxbCB.accepts(mock(SOAPBody.class), 3, "ns", "lp")).isFalse();

     }

     

     public void testDefaultJAXBPayloadStreaming() {

@@ -95,197 +76,6 @@
         // Do NOT Disable the JAXB Payload streaming; the default should be ON

         // msgCtx.setProperty(Constants.JAXWS_ENABLE_JAXB_PAYLOAD_STREAMING, new Boolean(false));

         jaxbDSC.setMessageContext(msgCtx);

-        try {

-            jaxbCB.create("ns", "lp", null, new MockXMLStreamReader(), null);

-            fail("JAXB Payload streaming default was not enabled");

-        } catch (Exception e) {

-            // Expected code path

-            // Since we didn't set up the JAXBDSContext fully, if the disabling of it didn't

-            // work, then we'll get some sort of exception.

-        }

-    }

-

-    

-    class MockXMLStreamReader implements javax.xml.stream.XMLStreamReader {

-

-        public void close() throws XMLStreamException {

-        }

-

-        public int getAttributeCount() {

-            return 0;

-        }

-

-        public String getAttributeLocalName(int i) {

-            return null;

-        }

-

-        public QName getAttributeName(int i) {

-            return null;

-        }

-

-        public String getAttributeNamespace(int i) {

-            return null;

-        }

-

-        public String getAttributePrefix(int i) {

-            return null;

-        }

-

-        public String getAttributeType(int i) {

-            return null;

-        }

-

-        public String getAttributeValue(int i) {

-            return null;

-        }

-

-        public String getAttributeValue(String s, String s1) {

-            return null;

-        }

-

-        public String getCharacterEncodingScheme() {

-            return null;

-        }

-

-        public String getElementText() throws XMLStreamException {

-            return null;

-        }

-

-        public String getEncoding() {

-            return null;

-        }

-

-        public int getEventType() {

-            return 0;

-        }

-

-        public String getLocalName() {

-            return null;

-        }

-

-        public Location getLocation() {

-            return null;

-        }

-

-        public QName getName() {

-            return null;

-        }

-

-        public NamespaceContext getNamespaceContext() {

-            return null;

-        }

-

-        public int getNamespaceCount() {

-            return 0;

-        }

-

-        public String getNamespacePrefix(int i) {

-            return null;

-        }

-

-        public String getNamespaceURI() {

-            return null;

-        }

-

-        public String getNamespaceURI(int i) {

-            return null;

-        }

-

-        public String getNamespaceURI(String s) {

-            return null;

-        }

-

-        public String getPIData() {

-            return null;

-        }

-

-        public String getPITarget() {

-            return null;

-        }

-

-        public String getPrefix() {

-            return null;

-        }

-

-        public Object getProperty(String s) throws IllegalArgumentException {

-            return null;

-        }

-

-        public String getText() {

-            return null;

-        }

-

-        public char[] getTextCharacters() {

-            return null;

-        }

-

-        public int getTextCharacters(int i, char[] ac, int j, int k) throws XMLStreamException {

-            return 0;

-        }

-

-        public int getTextLength() {

-            return 0;

-        }

-

-        public int getTextStart() {

-            return 0;

-        }

-

-        public String getVersion() {

-            return null;

-        }

-

-        public boolean hasName() {

-            return false;

-        }

-

-        public boolean hasNext() throws XMLStreamException {

-            return false;

-        }

-

-        public boolean hasText() {

-            return false;

-        }

-

-        public boolean isAttributeSpecified(int i) {

-            return false;

-        }

-

-        public boolean isCharacters() {

-            return false;

-        }

-

-        public boolean isEndElement() {

-            return false;

-        }

-

-        public boolean isStandalone() {

-            return false;

-        }

-

-        public boolean isStartElement() {

-            return false;

-        }

-

-        public boolean isWhiteSpace() {

-            return false;

-        }

-

-        public int next() throws XMLStreamException {

-            return 0;

-        }

-

-        public int nextTag() throws XMLStreamException {

-            return 0;

-        }

-

-        public void require(int i, String s, String s1) throws XMLStreamException {

-            

-        }

-

-        public boolean standaloneSet() {

-            return false;

-        }

-        

+        assertThat(jaxbCB.accepts(mock(SOAPBody.class), 3, "ns", "lp")).isTrue();

     }

 }

diff --git a/modules/jaxws/test/org/apache/axis2/jaxws/addressing/util/EndpointReferenceUtilsTests.java b/modules/jaxws/test/org/apache/axis2/jaxws/addressing/util/EndpointReferenceUtilsTests.java
index c4bc889..a9e76f4 100644
--- a/modules/jaxws/test/org/apache/axis2/jaxws/addressing/util/EndpointReferenceUtilsTests.java
+++ b/modules/jaxws/test/org/apache/axis2/jaxws/addressing/util/EndpointReferenceUtilsTests.java
@@ -22,7 +22,8 @@
 import org.apache.axiom.om.OMAbstractFactory;

 import org.apache.axiom.om.OMElement;

 import org.apache.axiom.om.OMFactory;

-import org.apache.axiom.om.impl.builder.StAXOMBuilder;

+import org.apache.axiom.om.OMXMLBuilderFactory;

+import org.apache.axiom.om.OMXMLParserWrapper;

 import org.apache.axis2.addressing.AddressingConstants.Final;

 import org.apache.axis2.addressing.AddressingConstants.Submission;

 import org.apache.axis2.addressing.EndpointReference;

@@ -84,7 +85,7 @@
     public void test200508ConversionStartingFromAxis2() throws Exception {

         XMLStreamReader parser =

             XMLInputFactory.newInstance().createXMLStreamReader(new StringReader(EPR200508));

-        StAXOMBuilder builder = new StAXOMBuilder(parser);

+        OMXMLParserWrapper builder = OMXMLBuilderFactory.createStAXOMBuilder(parser);

         OMElement omElement = builder.getDocumentElement();

         

         EndpointReference axis2EPR =

@@ -125,7 +126,7 @@
     public void test200408ConversionStartingFromAxis2() throws Exception {

         XMLStreamReader parser =

             XMLInputFactory.newInstance().createXMLStreamReader(new StringReader(EPR200408));

-        StAXOMBuilder builder = new StAXOMBuilder(parser);

+        OMXMLParserWrapper builder = OMXMLBuilderFactory.createStAXOMBuilder(parser);

         OMElement omElement = builder.getDocumentElement();

         

         EndpointReference axis2EPR =

diff --git a/modules/jaxws/test/org/apache/axis2/jaxws/addressing/util/ReferenceParameterListTests.java b/modules/jaxws/test/org/apache/axis2/jaxws/addressing/util/ReferenceParameterListTests.java
index 9d025ce..4f8888e 100644
--- a/modules/jaxws/test/org/apache/axis2/jaxws/addressing/util/ReferenceParameterListTests.java
+++ b/modules/jaxws/test/org/apache/axis2/jaxws/addressing/util/ReferenceParameterListTests.java
@@ -20,10 +20,12 @@
 package org.apache.axis2.jaxws.addressing.util;

 

 import junit.framework.TestCase;

+

+import org.apache.axiom.om.OMXMLBuilderFactory;

 import org.apache.axiom.om.util.StAXUtils;

 import org.apache.axiom.soap.SOAPEnvelope;

 import org.apache.axiom.soap.SOAPHeader;

-import org.apache.axiom.soap.impl.builder.StAXSOAPModelBuilder;

+import org.apache.axiom.soap.SOAPModelBuilder;

 import org.w3c.dom.Element;

 

 import javax.xml.stream.XMLStreamReader;

@@ -41,7 +43,7 @@
     public void setUp() throws Exception {

         File resourceFile = new File(testResourceDir, resourceFileName);

         XMLStreamReader parser = StAXUtils.createXMLStreamReader(new FileReader(resourceFile));

-        StAXSOAPModelBuilder builder = new StAXSOAPModelBuilder(parser, null);

+        SOAPModelBuilder builder = OMXMLBuilderFactory.createStAXSOAPModelBuilder(parser);

         header = ((SOAPEnvelope)builder.getDocumentElement()).getHeader();

     }

     

diff --git a/modules/jaxws/test/org/apache/axis2/jaxws/attachments/MTOMSerializationTests.java b/modules/jaxws/test/org/apache/axis2/jaxws/attachments/MTOMSerializationTests.java
index a1f07b1..2e7b146 100644
--- a/modules/jaxws/test/org/apache/axis2/jaxws/attachments/MTOMSerializationTests.java
+++ b/modules/jaxws/test/org/apache/axis2/jaxws/attachments/MTOMSerializationTests.java
@@ -29,7 +29,6 @@
 import org.apache.axiom.soap.SOAPBody;
 import org.apache.axiom.soap.SOAPEnvelope;
 import org.apache.axiom.soap.SOAPFactory;
-import org.apache.axiom.soap.impl.llom.soap11.SOAP11Factory;
 import org.apache.axis2.jaxws.message.Block;
 import org.apache.axis2.jaxws.message.Message;
 import org.apache.axis2.jaxws.message.Protocol;
@@ -43,12 +42,18 @@
 import org.test.mtom.ImageDepot;
 import org.test.mtom.ObjectFactory;
 import org.test.mtom.SendImage;
+import org.w3c.dom.Node;
 
 import javax.activation.DataHandler;
 import javax.activation.DataSource;
 import javax.imageio.ImageIO;
 import javax.imageio.stream.FileImageInputStream;
 import javax.imageio.stream.ImageInputStream;
+import javax.xml.soap.SOAPElement;
+import javax.xml.soap.SOAPMessage;
+
+import static com.google.common.truth.Truth.assertThat;
+
 import java.awt.*;
 import java.io.ByteArrayOutputStream;
 import java.io.File;
@@ -104,7 +109,7 @@
         
         OMElement payload = createPayload();
         
-        SOAPFactory factory = new SOAP11Factory();
+        SOAPFactory factory = OMAbstractFactory.getSOAP11Factory();
         SOAPEnvelope env = factory.createSOAPEnvelope();
         SOAPBody body = factory.createSOAPBody(env);
         
@@ -198,7 +203,13 @@
         msg.setMTOMEnabled(true);
         
         // Convert message to SAAJ to simulate an outbound handler
-        msg.getAsSOAPMessage();
+        SOAPMessage saajMessage = msg.getAsSOAPMessage();
+        
+        // SAAJ is expected to have an XOP encoded representation of the message
+        SOAPElement imageData = (SOAPElement)saajMessage.getSOAPBody().getElementsByTagNameNS("*", "imageData").item(0);
+        Node child = imageData.getFirstChild();
+        assertThat(child.getNodeType()).isEqualTo(Node.ELEMENT_NODE);
+        assertThat(child.getLocalName()).isEqualTo("Include");
         
         // Now convert it back to AXIOM
         
diff --git a/modules/jaxws/test/org/apache/axis2/jaxws/catalog/MultiRedirectionCatalogTest.java b/modules/jaxws/test/org/apache/axis2/jaxws/catalog/MultiRedirectionCatalogTest.java
index e121302..55851c8 100644
--- a/modules/jaxws/test/org/apache/axis2/jaxws/catalog/MultiRedirectionCatalogTest.java
+++ b/modules/jaxws/test/org/apache/axis2/jaxws/catalog/MultiRedirectionCatalogTest.java
@@ -135,7 +135,7 @@
         		fail();

         	}

 	       	File file = new File(wsdlLocation);

-	       	url = file.toURL();

+	       	url = file.toURI().toURL();

 	    } catch (MalformedURLException e) {

 	        e.printStackTrace();

 	        fail();

diff --git a/modules/jaxws/test/org/apache/axis2/jaxws/catalog/XMLCatalogTests.java b/modules/jaxws/test/org/apache/axis2/jaxws/catalog/XMLCatalogTests.java
index d3423b7..255db36 100644
--- a/modules/jaxws/test/org/apache/axis2/jaxws/catalog/XMLCatalogTests.java
+++ b/modules/jaxws/test/org/apache/axis2/jaxws/catalog/XMLCatalogTests.java
@@ -51,10 +51,10 @@
         DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
         documentBuilderFactory.setNamespaceAware(true);
         Document doc = documentBuilderFactory.newDocumentBuilder().
-                parse(file.toURL().toString());
+                parse(file.toURI().toURL().toString());
 
         XmlSchemaCollection schemaCol = new XmlSchemaCollection();
-        XmlSchema schema = schemaCol.read(doc,file.toURL().toString(),null);
+        XmlSchema schema = schemaCol.read(doc,file.toURI().toURL().toString(),null);
         assertNotNull(schema);
 
         assertNotNull(schema.getTypeByName(new QName("http://soapinterop.org/xsd2","SOAPStruct")));
@@ -72,10 +72,10 @@
         DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
         documentBuilderFactory.setNamespaceAware(true);
         Document doc = documentBuilderFactory.newDocumentBuilder().
-                parse(file.toURL().toString());
+                parse(file.toURI().toURL().toString());
 
         XmlSchemaCollection schemaCol = new XmlSchemaCollection();
-        XmlSchema schema = schemaCol.read(doc,file.toURL().toString(),null);
+        XmlSchema schema = schemaCol.read(doc,file.toURI().toURL().toString(),null);
         assertNotNull(schema);
 
         assertNotNull(schema.getTypeByName(new QName("http://soapinterop.org/xsd2","SOAPStruct")));
@@ -96,11 +96,11 @@
         DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
         documentBuilderFactory.setNamespaceAware(true);
         Document doc = documentBuilderFactory.newDocumentBuilder().
-                parse(file.toURL().toString());
+                parse(file.toURI().toURL().toString());
 
         XmlSchemaCollection schemaCol = new XmlSchemaCollection();
         schemaCol.setSchemaResolver(new CatalogURIResolver(catalogManager));
-        XmlSchema schema = schemaCol.read(doc,file.toURL().toString(),null);
+        XmlSchema schema = schemaCol.read(doc,file.toURI().toURL().toString(),null);
         assertNotNull(schema);
 
         assertNotNull(schema.getTypeByName(new QName("http://soapinterop.org/xsd2","SOAPStruct")));
@@ -123,7 +123,7 @@
                 fail();
             }
                File file = new File(wsdlLocation);
-               url = file.toURL();
+               url = file.toURI().toURL();
         } catch (MalformedURLException e) {
             e.printStackTrace();
             fail();
diff --git a/modules/jaxws/test/org/apache/axis2/jaxws/client/ClientConfigTests.java b/modules/jaxws/test/org/apache/axis2/jaxws/client/ClientConfigTests.java
index 7f4dfee..8a197c2 100644
--- a/modules/jaxws/test/org/apache/axis2/jaxws/client/ClientConfigTests.java
+++ b/modules/jaxws/test/org/apache/axis2/jaxws/client/ClientConfigTests.java
@@ -50,7 +50,7 @@
                 e.printStackTrace();
             }
             File file = new File(wsdlLocation);
-            url = file.toURL();
+            url = file.toURI().toURL();
         } catch (MalformedURLException e) {
             e.printStackTrace();
         }
diff --git a/modules/jaxws/test/org/apache/axis2/jaxws/client/ReleaseServiceTests.java b/modules/jaxws/test/org/apache/axis2/jaxws/client/ReleaseServiceTests.java
index 12b4cf5..a2bf2b9 100644
--- a/modules/jaxws/test/org/apache/axis2/jaxws/client/ReleaseServiceTests.java
+++ b/modules/jaxws/test/org/apache/axis2/jaxws/client/ReleaseServiceTests.java
@@ -966,7 +966,7 @@
         String wsdlLocation = getWsdlLocation(wsdlFileName);

         try {

             File file = new File(wsdlLocation);

-            url = file.toURL();

+            url = file.toURI().toURL();

         } catch (MalformedURLException e) {

             e.printStackTrace();

             fail("Exception converting WSDL file to URL: " + e.toString());

diff --git a/modules/jaxws/test/org/apache/axis2/jaxws/context/listener/CompositeInputStreamTests.java b/modules/jaxws/test/org/apache/axis2/jaxws/context/listener/CompositeInputStreamTests.java
deleted file mode 100644
index 1e7a425..0000000
--- a/modules/jaxws/test/org/apache/axis2/jaxws/context/listener/CompositeInputStreamTests.java
+++ /dev/null
@@ -1,147 +0,0 @@
-/*

- * Licensed to the Apache Software Foundation (ASF) under one

- * or more contributor license agreements. See the NOTICE file

- * distributed with this work for additional information

- * regarding copyright ownership. The ASF licenses this file

- * to you under the Apache License, Version 2.0 (the

- * "License"); you may not use this file except in compliance

- * with the License. You may obtain a copy of the License at

- *

- * http://www.apache.org/licenses/LICENSE-2.0

- *

- * Unless required by applicable law or agreed to in writing,

- * software distributed under the License is distributed on an

- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

- * KIND, either express or implied. See the License for the

- * specific language governing permissions and limitations

- * under the License.

- */

-package org.apache.axis2.jaxws.context.listener;

-

-import java.io.ByteArrayInputStream;

-import java.io.ByteArrayOutputStream;

-import java.io.IOException;

-import java.io.InputStream;

-

-import junit.framework.TestCase;

-

-public class CompositeInputStreamTests extends TestCase {

-	private InputStream is1 = new ByteArrayInputStream("John".getBytes());

-	private InputStream is2 = new ByteArrayInputStream("Conner".getBytes());

-	

-	public void testCreateCompositeStream(){

-		//Testing default constructor

-		CompositeInputStream cis1 = new CompositeInputStream();

-		cis1.append(is1);

-		cis1.append(is2);

-		try{

-			String streamContent = invokeRead(cis1);

-			assertTrue(streamContent.equals("JohnConner"));

-		}catch(Exception e){

-			fail(e.getMessage());

-		}

-		//Testing constructor with inputstream Object

-		resetGlobalInputStream();

-		CompositeInputStream cis2 = new CompositeInputStream(is1);

-		cis2.append(is2);

-		try{

-			String streamContent = invokeRead(cis2);

-			assertTrue(streamContent.equals("JohnConner"));

-		}catch(Exception e){

-			fail(e.getMessage());

-		}		

-		//Null test on onstructor with inputstream Object

-		resetGlobalInputStream();

-		InputStream nullValue = null;

-		cis2 = new CompositeInputStream(nullValue);

-		cis2.append(is2);

-		try{

-			String streamContent = invokeRead(cis2);

-			assertTrue(streamContent.equals("Conner"));

-		}catch(Exception e){

-			fail(e.getMessage());

-		}

-		

-		//Testing Construcot with inputStream Array Object;

-		resetGlobalInputStream();

-		InputStream[] isArray = new InputStream[]{is1, is2};

-		CompositeInputStream cis3 = new CompositeInputStream(isArray);

-		try{

-			String streamContent = invokeRead(cis3);

-			assertTrue(streamContent.equals("JohnConner"));

-		}catch(Exception e){

-			fail(e.getMessage());

-		}

-		//Null test on onstructor with inputstream Object

-		isArray = new InputStream[]{null, null};

-		cis3 = new CompositeInputStream(isArray);

-		try{

-			String streamContent = invokeRead(cis3);

-			assertTrue(streamContent.equals(""));

-		}catch(Exception e){

-			fail(e.getMessage());

-		}

-		

-	}

-	

-	public void testRead() throws Exception {		

-	    

-	    // Read fully

-	    resetGlobalInputStream();

-	    InputStream[] isArray = new InputStream[]{is1, is2};

-	    CompositeInputStream cis3 = new CompositeInputStream(isArray);

-

-	    int avail = cis3.available();

-	    assertTrue("Unexpected avail=" + avail, avail == "JohnConner".length());

-	    String streamContent = invokeReadArray(cis3, avail);

-	    assertTrue(streamContent.equals("JohnConner"));

-		

-		

-		// Read partial...with cross buffer...

-        resetGlobalInputStream();

-        isArray = new InputStream[]{is1, is2};

-        cis3 = new CompositeInputStream(isArray);

-        

-        streamContent = invokeReadArray(cis3, 1);

-        assertTrue(streamContent.equals("J"));

-        streamContent = invokeReadArray(cis3, 5);

-        assertTrue(streamContent.equals("ohnCo"));

-        streamContent = invokeReadArray(cis3, 10);

-        assertTrue(streamContent.equals("nner"));

-        

-		

-		//Negative test case

-		isArray = new InputStream[]{null, null};

-		cis3 = new CompositeInputStream(isArray);

-

-		streamContent = invokeReadArray(cis3, 100);

-		assertTrue(streamContent.equals(""));

-	

-	}

-	

-	private String invokeRead(CompositeInputStream cis)throws IOException{

-		int b;

-		ByteArrayOutputStream os = new ByteArrayOutputStream();

-		while((b = cis.read())!=-1){

-			os.write(b);

-		}

-		byte[] byteArray = os.toByteArray();

-		return new String(byteArray);

-	}

-	

-	private String invokeReadArray(CompositeInputStream cis, int len)throws IOException{

-		byte[] byteArray = new byte[1024];

-		ByteArrayOutputStream os = new ByteArrayOutputStream();

-		int numBytes = cis.read(byteArray, 0, len);

-		if (numBytes < 0) {

-		    return "";

-		} else {

-		    return new String(byteArray, 0, numBytes);

-		}

-	}

-	

-	private void resetGlobalInputStream(){

-		is1 = new ByteArrayInputStream("John".getBytes());

-		is2 = new ByteArrayInputStream("Conner".getBytes());

-	}

-}

diff --git a/modules/jaxws/test/org/apache/axis2/jaxws/context/listener/ParserInputStreamCustomBuilderTests.java b/modules/jaxws/test/org/apache/axis2/jaxws/context/listener/ParserInputStreamCustomBuilderTests.java
deleted file mode 100644
index d7f7fc6..0000000
--- a/modules/jaxws/test/org/apache/axis2/jaxws/context/listener/ParserInputStreamCustomBuilderTests.java
+++ /dev/null
@@ -1,138 +0,0 @@
-/*

- * Licensed to the Apache Software Foundation (ASF) under one

- * or more contributor license agreements. See the NOTICE file

- * distributed with this work for additional information

- * regarding copyright ownership. The ASF licenses this file

- * to you under the Apache License, Version 2.0 (the

- * "License"); you may not use this file except in compliance

- * with the License. You may obtain a copy of the License at

- *

- * http://www.apache.org/licenses/LICENSE-2.0

- *

- * Unless required by applicable law or agreed to in writing,

- * software distributed under the License is distributed on an

- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

- * KIND, either express or implied. See the License for the

- * specific language governing permissions and limitations

- * under the License.

- */

-package org.apache.axis2.jaxws.context.listener;

-

-

-import java.io.ByteArrayInputStream;

-import java.io.ByteArrayOutputStream;

-import java.io.InputStream;

-import java.util.Iterator;

-

-import javax.xml.stream.XMLInputFactory;

-import javax.xml.stream.XMLStreamException;

-import javax.xml.stream.XMLStreamReader;

-

-import junit.framework.TestCase;

-

-import org.apache.axiom.om.OMAbstractFactory;

-import org.apache.axiom.om.OMContainer;

-import org.apache.axiom.om.OMElement;

-import org.apache.axiom.om.OMSourcedElement;

-import org.apache.axiom.om.ds.ParserInputStreamDataSource;

-import org.apache.axiom.soap.SOAPBody;

-import org.apache.axiom.soap.SOAPEnvelope;

-import org.apache.axiom.soap.SOAPHeader;

-import org.apache.axiom.soap.impl.builder.StAXSOAPModelBuilder;

-import org.apache.axis2.jaxws.message.databinding.ParsedEntityReader;

-import org.apache.axis2.jaxws.message.databinding.impl.ParsedEntityReaderImpl;

-import org.apache.axis2.jaxws.message.factory.ParsedEntityReaderFactory;

-import org.apache.axis2.jaxws.registry.FactoryRegistry;

-

-public class ParserInputStreamCustomBuilderTests extends TestCase {

-	private StAXSOAPModelBuilder builder = null;

-	private XMLStreamReader parser = null;

-	private String mockenvelope= "<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\">"+

-	"<soapenv:Header/>"+

-	"<soapenv:Body>"+

-	"<ns:invokeOp xmlns:ns=\"urn:sample\">Hello Provider OM</ns:invokeOp>"+

-	"</soapenv:Body>"+

-	"</soapenv:Envelope>";

-	

-	private String ENVELOPE= "<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\">"+

-	    "<soapenv:Header/>"+

-	    "<soapenv:Body>"+

-	    "<invokeOp>Hello Provider OM</invokeOp>"+

-	    "</soapenv:Body>"+

-	    "</soapenv:Envelope>";

-        

-	String mockPayload = "<invokeOp>Hello Provider OM</invokeOp>";

-	

-	public void testCustomBuilder() throws Exception {

-        SOAPEnvelope env = getMockEnvelope();

-        SOAPHeader header = env.getHeader();

-        SOAPBody body = env.getBody();

-        ParserInputStreamCustomBuilder customBuilder = new ParserInputStreamCustomBuilder("UTF-8");

-        InputStream payload = new ByteArrayInputStream(mockPayload.getBytes());

-        OMElement om= customBuilder.create("urn:sample", "invokeOp",(OMContainer) body, parser, OMAbstractFactory.getOMFactory(), payload);

-        assertTrue(om!=null);

-        assertTrue(om instanceof OMSourcedElement);

-        OMSourcedElement ose = (OMSourcedElement)om;

-        assertNotNull(ose.getDataSource());

-        assertTrue((ose.getDataSource()) instanceof ParserInputStreamDataSource);

-	}

-	

-    public void testCustomBuilderSOAPENVNamespace() throws Exception {

-        SOAPEnvelope env = getMockEnvelope();

-        SOAPHeader header = env.getHeader();

-        SOAPBody body = env.getBody();

-        ParserInputStreamCustomBuilder customBuilder = new ParserInputStreamCustomBuilder("UTF-8");

-        InputStream payload = new ByteArrayInputStream(mockPayload.getBytes());

-

-        // If there is no namespace, the customer building should not occur.

-        OMElement om= customBuilder.create("http://www.w3.org/2003/05/soap-envelope", "Fault",(OMContainer) body, parser, OMAbstractFactory.getOMFactory(), payload);

-        assertTrue(om==null);

-    }

-

-	/**

-     * Tests that ParsedEntityCustomBuilder.convertEntityReferences works as expected.

-     */

-    public void testConvertEntityReferences() throws Exception {

-        ParserInputStreamCustomBuilder customBuilder = new ParserInputStreamCustomBuilder("UTF-8");

-        // test that all expected chars are converted

-        String expectedString1 = "&lt;,&gt;,&quot;,&apos;,&amp;";

-        String convertedString = customBuilder.convertEntityReferences("<,>,\",',&");

-        assertTrue("Special chars didn't get converted!  " +

-                "Expected: \""+expectedString1+"\" but received: \""+convertedString+"\"", 

-                convertedString.equals(expectedString1));

-        // test that a string with no special chars is unchanged

-        String simpleString = "This is a simple string";

-        convertedString = customBuilder.convertEntityReferences(simpleString);

-        assertTrue("Simple string was changed unexpectedly.  " +

-                "Expected: \""+simpleString+"\" but received: \""+convertedString+"\"", 

-                convertedString.equals(simpleString));

-        

-        // test that the mockenvelope gets converted correctly

-        String expectedString2 = "&lt;soapenv:Envelope xmlns:soapenv=&quot;http://schemas.xmlsoap.org/soap/envelope/&quot;&gt;&lt;soapenv:Header/&gt;&lt;soapenv:Body&gt;&lt;invokeOp&gt;Hello Provider OM&lt;/invokeOp&gt;&lt;/soapenv:Body&gt;&lt;/soapenv:Envelope&gt;";

-        convertedString = customBuilder.convertEntityReferences(ENVELOPE);

-        assertTrue("mockenvelope was not converted as expected.  " +

-                "Expected: \""+expectedString2+"\" but received: \""+convertedString+"\"", 

-                convertedString.equals(expectedString2));

-    }

-	private SOAPEnvelope getMockEnvelope() throws Exception{

-		SOAPEnvelope env = (SOAPEnvelope)getOMBuilder().getDocumentElement();

-		return env;

-	}

-    private StAXSOAPModelBuilder getOMBuilder() throws Exception {

-    	if(builder == null){

-	        builder = new StAXSOAPModelBuilder(getParser(), null);

-    	}

-        return builder;

-    }

-    

-    private XMLStreamReader getParser()throws XMLStreamException{

-    	if(parser == null){

-    		parser =  XMLInputFactory.newInstance()

-    		.createXMLStreamReader(

-    				new ByteArrayInputStream(mockenvelope.getBytes()));

-    	}

-    	return parser;

-

-    }

-	

-}

diff --git a/modules/jaxws/test/org/apache/axis2/jaxws/context/listener/ProviderOMContextListenerTests.java b/modules/jaxws/test/org/apache/axis2/jaxws/context/listener/ProviderOMContextListenerTests.java
deleted file mode 100644
index 202cf61..0000000
--- a/modules/jaxws/test/org/apache/axis2/jaxws/context/listener/ProviderOMContextListenerTests.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*

- * Licensed to the Apache Software Foundation (ASF) under one

- * or more contributor license agreements. See the NOTICE file

- * distributed with this work for additional information

- * regarding copyright ownership. The ASF licenses this file

- * to you under the Apache License, Version 2.0 (the

- * "License"); you may not use this file except in compliance

- * with the License. You may obtain a copy of the License at

- *

- * http://www.apache.org/licenses/LICENSE-2.0

- *

- * Unless required by applicable law or agreed to in writing,

- * software distributed under the License is distributed on an

- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

- * KIND, either express or implied. See the License for the

- * specific language governing permissions and limitations

- * under the License.

- */

-package org.apache.axis2.jaxws.context.listener;

-

-import org.apache.axis2.context.ConfigurationContext;

-import org.apache.axis2.context.MessageContext;

-import org.apache.axis2.context.ServiceContext;

-import org.apache.axis2.context.ServiceGroupContext;

-import org.apache.axis2.description.AxisService;

-import org.apache.axis2.description.AxisServiceGroup;

-

-import org.apache.axis2.engine.AxisConfiguration;

-

-import junit.framework.TestCase;

-

-public class ProviderOMContextListenerTests extends TestCase {

-	private ServiceContext sc = null;

-	private MessageContext mc = null;

-	

-	public void testCreate(){

-		try{

-			ProviderOMContextListener.create(createAxisServiceContext());

-			assertTrue(sc.getAxisService().hasMessageContextListener(ProviderOMContextListener.class));

-		}catch(Exception e){

-			fail(e.getMessage());

-		}

-	}

-	

-	private ServiceContext createAxisServiceContext() throws Exception {

-		if(this.sc != null){

-			return sc;

-		}

-        

-        AxisConfiguration ac = new AxisConfiguration();

-        ConfigurationContext cc = new ConfigurationContext(ac);

-        

-        // Create a dummy AxisService

-        AxisService service = new AxisService();

-        service.setName("dummy");

-        

-        AxisServiceGroup asg = new AxisServiceGroup();

-        asg.addService(service);

-        

-        

-        // Create a Dummy ServiceContext

-        ServiceGroupContext sgc = new ServiceGroupContext(cc, asg);

-        ServiceContext sc = sgc.getServiceContext(service);

-        this.sc = sc;

-        

-        return sc;

-

-    }

-	

-	private MessageContext createMessageContext(){

-		if(this.mc !=null){

-			return mc;

-		}

-        // Create a MessageContext

-        MessageContext mc = new MessageContext();

-        

-        // Attach the ServiceContext and MessageContext.

-        // This will trigger the MyServiceContextListener.attachEvent

-        mc.setServiceContext(sc);

-        this.mc = mc;

-        return mc;

-	}

-}

diff --git a/modules/jaxws/test/org/apache/axis2/jaxws/description/DescriptionTestUtils2.java b/modules/jaxws/test/org/apache/axis2/jaxws/description/DescriptionTestUtils2.java
index cd9cb07..3e6638a 100644
--- a/modules/jaxws/test/org/apache/axis2/jaxws/description/DescriptionTestUtils2.java
+++ b/modules/jaxws/test/org/apache/axis2/jaxws/description/DescriptionTestUtils2.java
@@ -23,6 +23,7 @@
 import org.apache.axis2.jaxws.description.builder.DescriptionBuilderComposite;
 import org.apache.axis2.jaxws.spi.ServiceDelegate;
 import org.apache.axis2.jaxws.unitTest.TestLogger;
+import org.apache.axis2.wsdl.WSDLUtil;
 
 import javax.wsdl.Definition;
 import javax.wsdl.factory.WSDLFactory;
@@ -60,7 +61,7 @@
         URL wsdlURL = null;
         String urlString = getWSDLLocation(wsdlFileName);
         try {
-            wsdlURL = new File(urlString).getAbsoluteFile().toURL();
+            wsdlURL = new File(urlString).getAbsoluteFile().toURI().toURL();
         } catch (Exception e) {
             TestLogger.logger.debug(
                     "Caught exception creating WSDL URL :" + urlString + "; exception: " +
@@ -72,8 +73,7 @@
     static Definition createWSDLDefinition(URL wsdlURL) {
         Definition wsdlDefinition = null;
         try {
-            WSDLFactory factory = WSDLFactory.newInstance();
-            WSDLReader reader = factory.newWSDLReader();
+        	WSDLReader reader = WSDLUtil.newWSDLReaderWithPopulatedExtensionRegistry();
             wsdlDefinition = reader.readWSDL(wsdlURL.toString());
         }
         catch (Exception e) {
diff --git a/modules/jaxws/test/org/apache/axis2/jaxws/description/sample/addnumbers/AddNumbersService.java b/modules/jaxws/test/org/apache/axis2/jaxws/description/sample/addnumbers/AddNumbersService.java
index 82a9c7c..8159bf0 100644
--- a/modules/jaxws/test/org/apache/axis2/jaxws/description/sample/addnumbers/AddNumbersService.java
+++ b/modules/jaxws/test/org/apache/axis2/jaxws/description/sample/addnumbers/AddNumbersService.java
@@ -51,7 +51,7 @@
         		e.printStackTrace();
         	}
         	File file = new File(wsdlLocation);
-        	url = file.toURL();
+        	url = file.toURI().toURL();
         } catch (MalformedURLException e) {
             e.printStackTrace();
         }
diff --git a/modules/jaxws/test/org/apache/axis2/jaxws/handler/HandlerPrePostInvokerTests.java b/modules/jaxws/test/org/apache/axis2/jaxws/handler/HandlerPrePostInvokerTests.java
index 5cce336..0834a80 100644
--- a/modules/jaxws/test/org/apache/axis2/jaxws/handler/HandlerPrePostInvokerTests.java
+++ b/modules/jaxws/test/org/apache/axis2/jaxws/handler/HandlerPrePostInvokerTests.java
@@ -1,225 +1,228 @@
-/*

- * Licensed to the Apache Software Foundation (ASF) under one

- * or more contributor license agreements. See the NOTICE file

- * distributed with this work for additional information

- * regarding copyright ownership. The ASF licenses this file

- * to you under the Apache License, Version 2.0 (the

- * "License"); you may not use this file except in compliance

- * with the License. You may obtain a copy of the License at

- *

- * http://www.apache.org/licenses/LICENSE-2.0

- *

- * Unless required by applicable law or agreed to in writing,

- * software distributed under the License is distributed on an

- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

- * KIND, either express or implied. See the License for the

- * specific language governing permissions and limitations

- * under the License.

- */

-

-package org.apache.axis2.jaxws.handler;

-

-import junit.framework.TestCase;

-import org.apache.axis2.jaxws.core.MessageContext;

-import org.apache.axis2.jaxws.handler.factory.HandlerPostInvokerFactory;

-import org.apache.axis2.jaxws.handler.factory.HandlerPreInvokerFactory;

-import org.apache.axis2.jaxws.message.Block;

-import org.apache.axis2.jaxws.message.Message;

-import org.apache.axis2.jaxws.message.Protocol;

-import org.apache.axis2.jaxws.message.factory.MessageFactory;

-import org.apache.axis2.jaxws.message.factory.XMLStringBlockFactory;

-import org.apache.axis2.jaxws.registry.FactoryRegistry;

-

-import javax.xml.ws.handler.Handler;

-import javax.xml.ws.handler.soap.SOAPHandler;

-import javax.xml.ws.handler.soap.SOAPMessageContext;

-import java.util.ArrayList;

-import java.util.Set;

-

-/**

- * HandlerPrePostInvokerTests verifies that the mechanisms for finding the implementation classes to 

- * call before and after handler.handleMessage work, and that the calls are actually made.  Simple as that.

- */

-public class HandlerPrePostInvokerTests extends TestCase {

-

-	private MessageContext mc = null;

-	private boolean preInvokerCalled = false;

-	private boolean postInvokerCalled = false;

-    private boolean messageAccessed = false;

-	

-	private static final String soap11env = "http://schemas.xmlsoap.org/soap/envelope/";

-	

-    public static final String SOAP11_ENVELOPE = 

-        "<?xml version='1.0' encoding='utf-8'?>" + 

-        "<soapenv:Envelope xmlns:soapenv=\"" + soap11env + "\">" +

-        "<soapenv:Header />" + 

-        "<soapenv:Body>" +

-        "</soapenv:Body>" + 

-        "</soapenv:Envelope>";

-

-	@Override

-	protected void setUp() throws Exception {

-

-        // Create a SOAP 1.1 Message and MessageContext

-		// I just grabbed this code from the JAXWS MessageTests

-        MessageFactory mf = (MessageFactory) FactoryRegistry.getFactory(MessageFactory.class);

-        Message m = mf.create(Protocol.soap11);

-        XMLStringBlockFactory f =

-                (XMLStringBlockFactory) FactoryRegistry.getFactory(XMLStringBlockFactory.class);

-        Block block = f.createFrom(SOAP11_ENVELOPE, null, null);

-        m.setBodyBlock(block);

-

-        mc = new MessageContext();

-        mc.setMessage(m);

-        mc.setMEPContext(new MEPContext(mc));

-	}

-

-	/**

-	 * make sure the defaults are as expected

-	 *

-	 */

-	public void testFactoryRegistry() {

-		HandlerPreInvokerFactory preFact = (HandlerPreInvokerFactory)FactoryRegistry.getFactory(HandlerPreInvokerFactory.class);

-		HandlerPostInvokerFactory postFact = (HandlerPostInvokerFactory)FactoryRegistry.getFactory(HandlerPostInvokerFactory.class);

-		HandlerPreInvoker preInvoker = preFact.createHandlerPreInvoker();

-		HandlerPostInvoker postInvoker = postFact.createHandlerPostInvoker();

-		assertTrue("preInvoker should be instanceof " + org.apache.axis2.jaxws.handler.impl.HandlerPreInvokerImpl.class.getCanonicalName(), preInvoker instanceof org.apache.axis2.jaxws.handler.impl.HandlerPreInvokerImpl);

-		assertTrue("postInvoker should be instanceof " + org.apache.axis2.jaxws.handler.impl.HandlerPostInvokerImpl.class.getCanonicalName(), postInvoker instanceof org.apache.axis2.jaxws.handler.impl.HandlerPostInvokerImpl);

-	}

-	

-	/**

-	 * make sure the registered factories are used, and the calls are made in the places we expect

-	 *

-	 */

-	public void testFactoryPrePost() {

-		

-		FactoryRegistry.setFactory(HandlerPreInvokerFactory.class, new HandlerPreInvokerFactoryImpl());

-		FactoryRegistry.setFactory(HandlerPostInvokerFactory.class, new HandlerPostInvokerFactoryImpl());

-		

-		ArrayList<Handler> handlers = new ArrayList<Handler>();

-		handlers.add(new SOAPHandler1());

-        HandlerChainProcessor processor =

-                new HandlerChainProcessor(handlers, Protocol.soap11);

-        boolean success = true;

-        try {

-            // server-side incoming request

-            success = processor.processChain(mc.getMEPContext(),

-                                    HandlerChainProcessor.Direction.IN,

-                                    HandlerChainProcessor.MEP.REQUEST,

-                                    true);

-        } catch (Exception e) {

-            assertNull(e);  // should not get exception

-        }

-        

-        assertTrue("processChain should have succeeded", success);

-        assertTrue("preInvoker should have been called", preInvokerCalled);

-        assertTrue("postInvoker should have been called", postInvokerCalled);

-        assertTrue("Handler did not access message but messageAccessed property is true.", !messageAccessed);

-

-	}

-

-    public void testPostInvokerMessageAccessed() {

-        

-        FactoryRegistry.setFactory(HandlerPostInvokerFactory.class, new HandlerPostInvokerFactoryImpl());

-        

-        ArrayList<Handler> handlers = new ArrayList<Handler>();

-        handlers.add(new SOAPHandlerGetsMessage());

-        HandlerChainProcessor processor =

-                new HandlerChainProcessor(handlers, Protocol.soap11);

-        boolean success = true;

-        try {

-            // server-side incoming request

-            success = processor.processChain(mc.getMEPContext(),

-                                    HandlerChainProcessor.Direction.IN,

-                                    HandlerChainProcessor.MEP.REQUEST,

-                                    true);

-        } catch (Exception e) {

-            assertNull(e);  // should not get exception

-        }

-        

-        assertTrue("processChain should have succeeded", success);

-        assertTrue("postInvoker should have been called", postInvokerCalled);

-        assertTrue("Handler did access message but messageAccessed property is false.", messageAccessed);

-

-

-    }

-

-    /*****************************************

-     * Classes needed for junit testcase     *

-     *****************************************/

-    

-    private class SOAPHandler1 implements SOAPHandler<SOAPMessageContext> {

-

-        public Set getHeaders() {

-            return null;

-        }

-

-        public void close(javax.xml.ws.handler.MessageContext messagecontext) {

-        }

-

-        public boolean handleFault(SOAPMessageContext messagecontext) {

-            return true;

-        }

-

-        public boolean handleMessage(SOAPMessageContext messagecontext) {

-            return true;

-        }

-

-    }

-    /*****************************************

-     * Classes needed for junit testcase     *

-     *****************************************/

-    

-    private class SOAPHandlerGetsMessage implements SOAPHandler<SOAPMessageContext> {

-

-        public Set getHeaders() {

-            return null;

-        }

-

-        public void close(javax.xml.ws.handler.MessageContext messagecontext) {

-        }

-

-        public boolean handleFault(SOAPMessageContext messagecontext) {

-            return true;

-        }

-

-        public boolean handleMessage(SOAPMessageContext messagecontext) {

-            messagecontext.getMessage();

-            return true;

-        }

-

-    }

-    

-    private class HandlerPreInvokerFactoryImpl implements HandlerPreInvokerFactory {

-		public HandlerPreInvoker createHandlerPreInvoker() {

-			return new HandlerPreInvokerImpl();

-		}

-    }

-    

-    private class HandlerPostInvokerFactoryImpl implements HandlerPostInvokerFactory {

-    	public HandlerPostInvoker createHandlerPostInvoker() {

-    		return new HandlerPostInvokerImpl();

-    	}

-    }

-    

-    private class HandlerPreInvokerImpl implements HandlerPreInvoker {

-		public void preInvoke(javax.xml.ws.handler.MessageContext mc) {

-			preInvokerCalled = true;

-		}

-    }

-    

-    private class HandlerPostInvokerImpl implements HandlerPostInvoker {

-		public void postInvoke(javax.xml.ws.handler.MessageContext mc) {

-			postInvokerCalled = true;

-            if (mc instanceof SoapMessageContext) {

-                SoapMessageContext smc = (SoapMessageContext) mc;

-                // PK96521 - before getting the message (which is expensive) check first to 

-                // see if it was actually accessed by the handlers

-                messageAccessed = false;

-                if (smc.containsKey("jaxws.isMessageAccessed")) {

-                    messageAccessed = (Boolean)(smc.get("jaxws.isMessageAccessed"));

-                }

-            }

-		}

-    }

-}

+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.axis2.jaxws.handler;
+
+import junit.framework.TestCase;
+import org.apache.axis2.jaxws.core.MessageContext;
+import org.apache.axis2.jaxws.handler.factory.HandlerPostInvokerFactory;
+import org.apache.axis2.jaxws.handler.factory.HandlerPreInvokerFactory;
+import org.apache.axis2.jaxws.message.Block;
+import org.apache.axis2.jaxws.message.Message;
+import org.apache.axis2.jaxws.message.Protocol;
+import org.apache.axis2.jaxws.message.factory.MessageFactory;
+import org.apache.axis2.jaxws.message.factory.XMLStringBlockFactory;
+import org.apache.axis2.jaxws.registry.FactoryRegistry;
+
+import javax.xml.ws.handler.Handler;
+import javax.xml.ws.handler.soap.SOAPHandler;
+import javax.xml.ws.handler.soap.SOAPMessageContext;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import java.util.ArrayList;
+import java.util.Set;
+
+/**
+ * HandlerPrePostInvokerTests verifies that the mechanisms for finding the implementation classes to 
+ * call before and after handler.handleMessage work, and that the calls are actually made.  Simple as that.
+ */
+public class HandlerPrePostInvokerTests extends TestCase {
+
+    private MessageContext mc = null;
+    private boolean preInvokerCalled = false;
+    private boolean postInvokerCalled = false;
+    private boolean messageAccessed = false;
+    
+    private static final String soap11env = "http://schemas.xmlsoap.org/soap/envelope/";
+    
+    public static final String SOAP11_ENVELOPE = 
+        "<?xml version='1.0' encoding='utf-8'?>" + 
+        "<soapenv:Envelope xmlns:soapenv=\"" + soap11env + "\">" +
+        "<soapenv:Header />" + 
+        "<soapenv:Body>" +
+        "</soapenv:Body>" + 
+        "</soapenv:Envelope>";
+
+    @Override
+    protected void setUp() throws Exception {
+
+        // Create a SOAP 1.1 Message and MessageContext
+        // I just grabbed this code from the JAXWS MessageTests
+        MessageFactory mf = (MessageFactory) FactoryRegistry.getFactory(MessageFactory.class);
+        Message m = mf.create(Protocol.soap11);
+        XMLStringBlockFactory f =
+                (XMLStringBlockFactory) FactoryRegistry.getFactory(XMLStringBlockFactory.class);
+        Block block = f.createFrom(SOAP11_ENVELOPE, null, null);
+        m.setBodyBlock(block);
+
+        mc = new MessageContext();
+        mc.setMessage(m);
+        mc.setMEPContext(new MEPContext(mc));
+    }
+
+    /**
+     * make sure the defaults are as expected
+     *
+     */
+    public void testFactoryRegistry() {
+        HandlerPreInvokerFactory preFact = (HandlerPreInvokerFactory)FactoryRegistry.getFactory(HandlerPreInvokerFactory.class);
+        HandlerPostInvokerFactory postFact = (HandlerPostInvokerFactory)FactoryRegistry.getFactory(HandlerPostInvokerFactory.class);
+        HandlerPreInvoker preInvoker = preFact.createHandlerPreInvoker();
+        HandlerPostInvoker postInvoker = postFact.createHandlerPostInvoker();
+        assertThat(preInvoker).named("preInvoker").isInstanceOf(org.apache.axis2.jaxws.handler.impl.HandlerPreInvokerImpl.class);
+        assertThat(postInvoker).named("postInvoker").isInstanceOf(org.apache.axis2.jaxws.handler.impl.HandlerPostInvokerImpl.class);
+    }
+    
+    /**
+     * make sure the registered factories are used, and the calls are made in the places we expect
+     *
+     */
+    public void testFactoryPrePost() {
+        HandlerPreInvokerFactory orgHandlerPreInvokerFactory = (HandlerPreInvokerFactory)FactoryRegistry.getFactory(HandlerPreInvokerFactory.class);
+        HandlerPostInvokerFactory orgHandlerPostInvokerFactory = (HandlerPostInvokerFactory)FactoryRegistry.getFactory(HandlerPostInvokerFactory.class);
+        try {
+            FactoryRegistry.setFactory(HandlerPreInvokerFactory.class, new HandlerPreInvokerFactoryImpl());
+            FactoryRegistry.setFactory(HandlerPostInvokerFactory.class, new HandlerPostInvokerFactoryImpl());
+            
+            ArrayList<Handler> handlers = new ArrayList<Handler>();
+            handlers.add(new SOAPHandler1());
+            HandlerChainProcessor processor =
+                    new HandlerChainProcessor(handlers, Protocol.soap11);
+            boolean success = true;
+            // server-side incoming request
+            success = processor.processChain(mc.getMEPContext(),
+                                    HandlerChainProcessor.Direction.IN,
+                                    HandlerChainProcessor.MEP.REQUEST,
+                                    true);
+            
+            assertTrue("processChain should have succeeded", success);
+            assertTrue("preInvoker should have been called", preInvokerCalled);
+            assertTrue("postInvoker should have been called", postInvokerCalled);
+            assertTrue("Handler did not access message but messageAccessed property is true.", !messageAccessed);
+        } finally {
+            // Reset factory state to avoid side effects visible to other tests
+            FactoryRegistry.setFactory(HandlerPreInvokerFactory.class, orgHandlerPreInvokerFactory);
+            FactoryRegistry.setFactory(HandlerPostInvokerFactory.class, orgHandlerPostInvokerFactory);
+        }
+    }
+
+    public void testPostInvokerMessageAccessed() {
+        HandlerPostInvokerFactory orgHandlerPostInvokerFactory = (HandlerPostInvokerFactory)FactoryRegistry.getFactory(HandlerPostInvokerFactory.class);
+        try {
+            FactoryRegistry.setFactory(HandlerPostInvokerFactory.class, new HandlerPostInvokerFactoryImpl());
+            
+            ArrayList<Handler> handlers = new ArrayList<Handler>();
+            handlers.add(new SOAPHandlerGetsMessage());
+            HandlerChainProcessor processor =
+                    new HandlerChainProcessor(handlers, Protocol.soap11);
+            boolean success = true;
+            // server-side incoming request
+            success = processor.processChain(mc.getMEPContext(),
+                                    HandlerChainProcessor.Direction.IN,
+                                    HandlerChainProcessor.MEP.REQUEST,
+                                    true);
+            
+            assertTrue("processChain should have succeeded", success);
+            assertTrue("postInvoker should have been called", postInvokerCalled);
+            assertTrue("Handler did access message but messageAccessed property is false.", messageAccessed);
+        } finally {
+            FactoryRegistry.setFactory(HandlerPostInvokerFactory.class, orgHandlerPostInvokerFactory);
+        }
+    }
+
+    /*****************************************
+     * Classes needed for junit testcase     *
+     *****************************************/
+    
+    private class SOAPHandler1 implements SOAPHandler<SOAPMessageContext> {
+
+        public Set getHeaders() {
+            return null;
+        }
+
+        public void close(javax.xml.ws.handler.MessageContext messagecontext) {
+        }
+
+        public boolean handleFault(SOAPMessageContext messagecontext) {
+            return true;
+        }
+
+        public boolean handleMessage(SOAPMessageContext messagecontext) {
+            return true;
+        }
+
+    }
+    /*****************************************
+     * Classes needed for junit testcase     *
+     *****************************************/
+    
+    private class SOAPHandlerGetsMessage implements SOAPHandler<SOAPMessageContext> {
+
+        public Set getHeaders() {
+            return null;
+        }
+
+        public void close(javax.xml.ws.handler.MessageContext messagecontext) {
+        }
+
+        public boolean handleFault(SOAPMessageContext messagecontext) {
+            return true;
+        }
+
+        public boolean handleMessage(SOAPMessageContext messagecontext) {
+            messagecontext.getMessage();
+            return true;
+        }
+
+    }
+    
+    private class HandlerPreInvokerFactoryImpl implements HandlerPreInvokerFactory {
+        public HandlerPreInvoker createHandlerPreInvoker() {
+            return new HandlerPreInvokerImpl();
+        }
+    }
+    
+    private class HandlerPostInvokerFactoryImpl implements HandlerPostInvokerFactory {
+        public HandlerPostInvoker createHandlerPostInvoker() {
+            return new HandlerPostInvokerImpl();
+        }
+    }
+    
+    private class HandlerPreInvokerImpl implements HandlerPreInvoker {
+        public void preInvoke(javax.xml.ws.handler.MessageContext mc) {
+            preInvokerCalled = true;
+        }
+    }
+    
+    private class HandlerPostInvokerImpl implements HandlerPostInvoker {
+        public void postInvoke(javax.xml.ws.handler.MessageContext mc) {
+            postInvokerCalled = true;
+            if (mc instanceof SoapMessageContext) {
+                SoapMessageContext smc = (SoapMessageContext) mc;
+                // PK96521 - before getting the message (which is expensive) check first to 
+                // see if it was actually accessed by the handlers
+                messageAccessed = false;
+                if (smc.containsKey("jaxws.isMessageAccessed")) {
+                    messageAccessed = (Boolean)(smc.get("jaxws.isMessageAccessed"));
+                }
+            }
+        }
+    }
+}
diff --git a/modules/jaxws/test/org/apache/axis2/jaxws/handler/HandlerResolverTest.java b/modules/jaxws/test/org/apache/axis2/jaxws/handler/HandlerResolverTest.java
index d839297..534755d 100644
--- a/modules/jaxws/test/org/apache/axis2/jaxws/handler/HandlerResolverTest.java
+++ b/modules/jaxws/test/org/apache/axis2/jaxws/handler/HandlerResolverTest.java
@@ -142,7 +142,7 @@
             String sep = "/";

             configLoc = sep + "test-resources" + sep + "configuration" + sep + "handlers" + sep + "handler.xml";

             String baseDir = new File(System.getProperty("basedir",".")).getCanonicalPath();

-            is = new File(baseDir + configLoc).toURL().openStream();

+            is = new File(baseDir + configLoc).toURI().toURL().openStream();

         }

         catch(Exception e) {

             e.printStackTrace();

diff --git a/modules/jaxws/test/org/apache/axis2/jaxws/handler/soapheadersadapter/SOAPHeadersAdapterTests.java b/modules/jaxws/test/org/apache/axis2/jaxws/handler/soapheadersadapter/SOAPHeadersAdapterTests.java
index 3266f72..816b26e 100644
--- a/modules/jaxws/test/org/apache/axis2/jaxws/handler/soapheadersadapter/SOAPHeadersAdapterTests.java
+++ b/modules/jaxws/test/org/apache/axis2/jaxws/handler/soapheadersadapter/SOAPHeadersAdapterTests.java
@@ -42,8 +42,7 @@
 import junit.framework.TestCase;
 
 import org.apache.axiom.om.OMElement;
-import org.apache.axiom.om.impl.llom.OMSourcedElementImpl;
-import org.apache.axiom.soap.impl.llom.soap11.SOAP11HeaderImpl;
+import org.apache.axiom.om.OMSourcedElement;
 import org.apache.axis2.Constants;
 import org.apache.axis2.jaxws.core.MessageContext;
 import org.apache.axis2.jaxws.handler.LogicalMessageImpl;
@@ -760,16 +759,16 @@
         adapter.put(ACOH1_HEADER_QNAME, acoh1ContentList);
         
         // get message object and convert to SOAPEnvelope
-        OMElement omEnvelope = messageContext.getMessage().getAsOMElement();
+        org.apache.axiom.soap.SOAPEnvelope omEnvelope = (org.apache.axiom.soap.SOAPEnvelope)messageContext.getMessage().getAsOMElement();
         
-        // confirm headers are there.  I can cast here only because I know the implementation.  :)
-        SOAP11HeaderImpl omHeader = (SOAP11HeaderImpl)omEnvelope.getChildElements().next();
+        // confirm headers are there.
+        org.apache.axiom.soap.SOAPHeader omHeader = omEnvelope.getHeader();
 
-        Iterator<OMSourcedElementImpl> it = omHeader.getChildElements();
+        Iterator<OMElement> it = omHeader.getChildElements();
         // TODO: not sure if the order of the header additions is or should be preserved.
         // in other words, this test may be a little too strict.
-        OMSourcedElementImpl headerElem1 = it.next();
-        OMSourcedElementImpl headerElem2 = it.next();
+        OMSourcedElement headerElem1 = (OMSourcedElement)it.next();
+        OMSourcedElement headerElem2 = (OMSourcedElement)it.next();
         // should only be two header elements, so...
         assertFalse(it.hasNext());
         
@@ -821,16 +820,16 @@
         adapter.put(ACOH1_HEADER_QNAME, acoh1ContentList);
         
         // get message object and convert to SOAPEnvelope
-        OMElement omEnvelope = messageContext.getMessage().getAsOMElement();
+        org.apache.axiom.soap.SOAPEnvelope omEnvelope = (org.apache.axiom.soap.SOAPEnvelope)messageContext.getMessage().getAsOMElement();
         
-        // confirm headers are there.  I can cast here only because I know the implementation.  :)
-        SOAP11HeaderImpl omHeader = (SOAP11HeaderImpl)omEnvelope.getChildElements().next();
+        // confirm headers are there.
+        org.apache.axiom.soap.SOAPHeader omHeader = omEnvelope.getHeader();
 
-        Iterator<OMSourcedElementImpl> it = omHeader.getChildElements();
+        Iterator<OMElement> it = omHeader.getChildElements();
         // TODO: not sure if the order of the header additions is or should be preserved.
         // in other words, this test may be a little too strict.
-        OMSourcedElementImpl headerElem1 = it.next();
-        OMSourcedElementImpl headerElem2 = it.next();
+        OMSourcedElement headerElem1 = (OMSourcedElement)it.next();
+        OMSourcedElement headerElem2 = (OMSourcedElement)it.next();
         // should only be two header elements, so...
         assertFalse(it.hasNext());
         
@@ -890,16 +889,16 @@
         payload.toString();
         
         // get message object and convert to SOAPEnvelope
-        OMElement omEnvelope = messageContext.getMessage().getAsOMElement();
+        org.apache.axiom.soap.SOAPEnvelope omEnvelope = (org.apache.axiom.soap.SOAPEnvelope)messageContext.getMessage().getAsOMElement();
         
-        // confirm headers are there.  I can cast here only because I know the implementation.  :)
-        SOAP11HeaderImpl omHeader = (SOAP11HeaderImpl)omEnvelope.getChildElements().next();
+        // confirm headers are there.
+        org.apache.axiom.soap.SOAPHeader omHeader = omEnvelope.getHeader();
 
-        Iterator<OMSourcedElementImpl> it = omHeader.getChildElements();
+        Iterator<OMElement> it = omHeader.getChildElements();
         // TODO: not sure if the order of the header additions is or should be preserved.
         // in other words, this test may be a little too strict.
-        OMSourcedElementImpl headerElem1 = it.next();
-        OMSourcedElementImpl headerElem2 = it.next();
+        OMSourcedElement headerElem1 = (OMSourcedElement)it.next();
+        OMSourcedElement headerElem2 = (OMSourcedElement)it.next();
         // should only be two header elements, so...
         assertFalse(it.hasNext());
         
diff --git a/modules/jaxws/test/org/apache/axis2/jaxws/injection/ResourceInjectionTests.java b/modules/jaxws/test/org/apache/axis2/jaxws/injection/ResourceInjectionTests.java
index ea7bdbc..7d56e40 100644
--- a/modules/jaxws/test/org/apache/axis2/jaxws/injection/ResourceInjectionTests.java
+++ b/modules/jaxws/test/org/apache/axis2/jaxws/injection/ResourceInjectionTests.java
@@ -28,92 +28,65 @@
 import javax.xml.ws.WebServiceContext;

 

 public class ResourceInjectionTests extends TestCase {

-    String axisEndpoint = "http://localhost:6060/axis2/services/ResourceInjectionService.ResourceInjectionPortTypeImplPort";

-

     private Object resource = new WebServiceContextImpl();

 

-    public void testInjectionOnField(){

+    public void testInjectionOnField() throws Exception {

         Object serviceInstance = new ResourceInjectionTestImpl1();

         TestLogger.logger.debug("------------------------------");

         TestLogger.logger.debug("Test : " + getName());

-        try{

-            ResourceInjector injector = ResourceInjectionFactory.createResourceInjector(WebServiceContext.class);

-            injector.inject(resource, serviceInstance);

-            ResourceInjectionTestImpl1 serviceImpl =(ResourceInjectionTestImpl1)serviceInstance;

-            assertNotNull(serviceImpl.ctx);

-            TestLogger.logger.debug("Resource Injected on Field");

-            TestLogger.logger.debug("------------------------------");

-        }catch(Exception e){

-            e.printStackTrace();

-            fail();

-        }

+        ResourceInjector injector = ResourceInjectionFactory.createResourceInjector(WebServiceContext.class);

+        injector.inject(resource, serviceInstance);

+        ResourceInjectionTestImpl1 serviceImpl =(ResourceInjectionTestImpl1)serviceInstance;

+        assertNotNull(serviceImpl.ctx);

+        TestLogger.logger.debug("Resource Injected on Field");

+        TestLogger.logger.debug("------------------------------");

     }

 

-    public void testInjectionOnMethod(){

+    public void testInjectionOnMethod() throws Exception {

         Object serviceInstance = new ResourceInjectionTestImpl2();

         TestLogger.logger.debug("------------------------------");

         TestLogger.logger.debug("Test : " + getName());

-        try{

-            ResourceInjector injector = ResourceInjectionFactory.createResourceInjector(WebServiceContext.class);

-            injector.inject(resource, serviceInstance);

-            ResourceInjectionTestImpl2 serviceImpl =(ResourceInjectionTestImpl2)serviceInstance;

-            assertNotNull(serviceImpl.ctx);

-            TestLogger.logger.debug("Resource Injected on Method");

-            TestLogger.logger.debug("------------------------------");

-        }catch(Exception e){

-            e.printStackTrace();

-            fail();

-        }

+        ResourceInjector injector = ResourceInjectionFactory.createResourceInjector(WebServiceContext.class);

+        injector.inject(resource, serviceInstance);

+        ResourceInjectionTestImpl2 serviceImpl =(ResourceInjectionTestImpl2)serviceInstance;

+        assertNotNull(serviceImpl.ctx);

+        TestLogger.logger.debug("Resource Injected on Method");

+        TestLogger.logger.debug("------------------------------");

     }

 

-    public void testInjectionOnPrivateField(){

+    public void testInjectionOnPrivateField() throws Exception {

         Object serviceInstance = new ResourceInjectionTestImpl3();

         TestLogger.logger.debug("------------------------------");

         TestLogger.logger.debug("Test : " + getName());

-        try{

-            ResourceInjector injector = ResourceInjectionFactory.createResourceInjector(WebServiceContext.class);

-            injector.inject(resource, serviceInstance);

-            ResourceInjectionTestImpl3 serviceImpl =(ResourceInjectionTestImpl3)serviceInstance;

-            assertNotNull(serviceImpl.getCtx());

-            TestLogger.logger.debug("Resource Injected on Private Field");

-            TestLogger.logger.debug("------------------------------");

-        }catch(Exception e){

-            e.printStackTrace();

-            fail();

-        }

+        ResourceInjector injector = ResourceInjectionFactory.createResourceInjector(WebServiceContext.class);

+        injector.inject(resource, serviceInstance);

+        ResourceInjectionTestImpl3 serviceImpl =(ResourceInjectionTestImpl3)serviceInstance;

+        assertNotNull(serviceImpl.getCtx());

+        TestLogger.logger.debug("Resource Injected on Private Field");

+        TestLogger.logger.debug("------------------------------");

     }

 

-    public void testInjectionOnProvateMethod(){

+    public void testInjectionOnProvateMethod() throws Exception {

         Object serviceInstance = new ResourceInjectionTestImpl4();

         TestLogger.logger.debug("------------------------------");

         TestLogger.logger.debug("Test : " + getName());

-        try{

-            ResourceInjector injector = ResourceInjectionFactory.createResourceInjector(WebServiceContext.class);

-            injector.inject(resource, serviceInstance);

-            ResourceInjectionTestImpl4 serviceImpl =(ResourceInjectionTestImpl4)serviceInstance;

-            assertNotNull(serviceImpl.getCtx());

-            TestLogger.logger.debug("Resource Injected using private Method");

-            TestLogger.logger.debug("------------------------------");

-        }catch(Exception e){

-            e.printStackTrace();

-            fail();

-        }

+        ResourceInjector injector = ResourceInjectionFactory.createResourceInjector(WebServiceContext.class);

+        injector.inject(resource, serviceInstance);

+        ResourceInjectionTestImpl4 serviceImpl =(ResourceInjectionTestImpl4)serviceInstance;

+        assertNotNull(serviceImpl.getCtx());

+        TestLogger.logger.debug("Resource Injected using private Method");

+        TestLogger.logger.debug("------------------------------");

     }

 

-    public void testTypedResourceInjectionOnField(){

+    public void testTypedResourceInjectionOnField() throws Exception {

         Object serviceInstance = new ResourceInjectionTestImpl5();

         TestLogger.logger.debug("------------------------------");

         TestLogger.logger.debug("Test : " + getName());

-        try{

-            ResourceInjector injector = ResourceInjectionFactory.createResourceInjector(WebServiceContext.class);

-            injector.inject(resource, serviceInstance);

-            ResourceInjectionTestImpl5 serviceImpl =(ResourceInjectionTestImpl5)serviceInstance;

-            assertNotNull(serviceImpl.ctx);

-            TestLogger.logger.debug("Resource Injected on Field");

-            TestLogger.logger.debug("------------------------------");

-        }catch(Exception e){

-            e.printStackTrace();

-            fail();

-        }

+        ResourceInjector injector = ResourceInjectionFactory.createResourceInjector(WebServiceContext.class);

+        injector.inject(resource, serviceInstance);

+        ResourceInjectionTestImpl5 serviceImpl =(ResourceInjectionTestImpl5)serviceInstance;

+        assertNotNull(serviceImpl.ctx);

+        TestLogger.logger.debug("Resource Injected on Field");

+        TestLogger.logger.debug("------------------------------");

     }

 }

diff --git a/modules/jaxws/test/org/apache/axis2/jaxws/message/BlockTests.java b/modules/jaxws/test/org/apache/axis2/jaxws/message/BlockTests.java
index 790fccb..56e5c2f 100644
--- a/modules/jaxws/test/org/apache/axis2/jaxws/message/BlockTests.java
+++ b/modules/jaxws/test/org/apache/axis2/jaxws/message/BlockTests.java
@@ -25,7 +25,8 @@
 import org.apache.axiom.om.OMFactory;
 import org.apache.axiom.om.OMNamespace;
 import org.apache.axiom.om.OMOutputFormat;
-import org.apache.axiom.om.impl.builder.StAXOMBuilder;
+import org.apache.axiom.om.OMXMLBuilderFactory;
+import org.apache.axiom.om.OMXMLParserWrapper;
 import org.apache.axis2.datasource.jaxb.JAXBDSContext;
 import org.apache.axis2.datasource.jaxb.JAXBDataSource;
 import org.apache.axis2.jaxws.message.databinding.JAXBBlockContext;
@@ -36,7 +37,6 @@
 import org.apache.axis2.jaxws.message.factory.OMBlockFactory;
 import org.apache.axis2.jaxws.message.factory.SourceBlockFactory;
 import org.apache.axis2.jaxws.message.factory.XMLStringBlockFactory;
-import org.apache.axis2.jaxws.message.util.Reader2Writer;
 import org.apache.axis2.jaxws.registry.FactoryRegistry;
 import org.apache.axis2.jaxws.unitTest.TestLogger;
 import org.w3c.dom.Document;
@@ -61,6 +61,10 @@
 import javax.xml.transform.dom.DOMSource;
 import javax.xml.transform.sax.SAXSource;
 import javax.xml.transform.stream.StreamSource;
+
+import static com.google.common.truth.Truth.assertAbout;
+import static org.apache.axiom.truth.xml.XMLTruth.xml;
+
 import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
 import java.io.StringReader;
@@ -122,10 +126,7 @@
 
         // To check that the output is correct, get the String contents of the 
         // reader
-        Reader2Writer r2w = new Reader2Writer(reader);
-        String newText = r2w.getAsString();
-        assertTrue(sampleText.equals(newText));
-
+        assertAbout(xml()).that(reader).hasSameContentAs(sampleText);
     }
 
     /**
@@ -161,10 +162,7 @@
 
         // To check that the output is correct, get the String contents of the 
         // reader
-        Reader2Writer r2w = new Reader2Writer(reader);
-        String newText = r2w.getAsString();
-        assertTrue(sampleText.equals(newText));
-
+        assertAbout(xml()).that(reader).hasSameContentAs(sampleText);
     }
 
     /**
@@ -196,9 +194,7 @@
 
         // To check that the output is correct, get the String contents of the 
         // reader
-        Reader2Writer r2w = new Reader2Writer(reader);
-        String newText = r2w.getAsString();
-        assertTrue(sampleText.equals(newText));
+        assertAbout(xml()).that(reader).hasSameContentAs(sampleText);
     }
 
     /**
@@ -345,8 +341,7 @@
 
         // To check that the output is correct, get the String contents of the 
         // reader
-        Reader2Writer r2w = new Reader2Writer(reader);
-        String newText = r2w.getAsString();
+        String newText = OMXMLBuilderFactory.createStAXOMBuilder(reader).getDocumentElement().toString();
         assertTrue(newText.contains("Hello World"));
         assertTrue(newText.contains("echoString"));
 
@@ -394,8 +389,7 @@
 
         // To check that the output is correct, get the String contents of the 
         // reader
-        Reader2Writer r2w = new Reader2Writer(reader);
-        String newText = r2w.getAsString();
+        String newText = OMXMLBuilderFactory.createStAXOMBuilder(reader).getDocumentElement().toString();
         assertTrue(newText.contains("Hello World"));
         assertTrue(newText.contains("echoString"));
 
@@ -627,7 +621,7 @@
         // what occurs on the outbound JAX-WS dispatch<OMElement> client
         StringReader sr = new StringReader(sampleText);
         XMLStreamReader inputReader = inputFactory.createXMLStreamReader(sr);
-        StAXOMBuilder builder = new StAXOMBuilder(inputReader);  
+        OMXMLParserWrapper builder = OMXMLBuilderFactory.createStAXOMBuilder(inputReader);  
         OMElement om = builder.getDocumentElement();
         Block block = f.createFrom(om, null, null);
 
@@ -641,10 +635,7 @@
 
         // To check that the output is correct, get the String contents of the 
         // reader
-        Reader2Writer r2w = new Reader2Writer(reader);
-        String newText = r2w.getAsString();
-        assertTrue(sampleText.equals(newText));
-
+        assertAbout(xml()).that(reader).hasSameContentAs(sampleText);
     }
 
 
@@ -662,7 +653,7 @@
         // what occurs on the outbound JAX-WS dispatch<OMElement> client
         StringReader sr = new StringReader(sampleText);
         XMLStreamReader inputReader = inputFactory.createXMLStreamReader(sr);
-        StAXOMBuilder builder = new StAXOMBuilder(inputReader);  
+        OMXMLParserWrapper builder = OMXMLBuilderFactory.createStAXOMBuilder(inputReader);  
         OMElement om = builder.getDocumentElement();
         Block block = f.createFrom(om, null, null);
 
@@ -683,10 +674,7 @@
 
         // To check that the output is correct, get the String contents of the 
         // reader
-        Reader2Writer r2w = new Reader2Writer(reader);
-        String newText = r2w.getAsString();
-        assertTrue(sampleText.equals(newText));
-
+        assertAbout(xml()).that(reader).hasSameContentAs(sampleText);
     }
 
     /**
@@ -754,10 +742,7 @@
 
         // To check that the output is correct, get the String contents of the 
         // reader
-        Reader2Writer r2w = new Reader2Writer(reader);
-        String newText = r2w.getAsString();
-        assertTrue(sampleText.equals(newText));
-
+        assertAbout(xml()).that(reader).hasSameContentAs(sampleText);
     }
 
     /**
@@ -795,10 +780,7 @@
 
         // To check that the output is correct, get the String contents of the 
         // reader
-        Reader2Writer r2w = new Reader2Writer(reader);
-        String newText = r2w.getAsString();
-        assertTrue(sampleText.equals(newText));
-
+        assertAbout(xml()).that(reader).hasSameContentAs(sampleText);
     }
 
     /**
@@ -835,9 +817,7 @@
 
         // To check that the output is correct, get the String contents of the 
         // reader
-        Reader2Writer r2w = new Reader2Writer(reader);
-        String newText = r2w.getAsString();
-        assertTrue(sampleText.equals(newText));
+        assertAbout(xml()).that(reader).hasSameContentAs(sampleText);
     }
 
     /**
@@ -867,11 +847,7 @@
         assertTrue(block.isConsumed());
 
         // Check the String for accuracy
-        XMLStreamReader reader = inputFactory.createXMLStreamReader((Source) bo);
-        Reader2Writer r2w = new Reader2Writer(reader);
-        String newText = r2w.getAsString();
-        assertTrue(sampleText.equals(newText));
-
+        assertAbout(xml()).that(bo).hasSameContentAs(sampleText);
     }
 
     /**
@@ -907,11 +883,7 @@
         assertTrue(block.isConsumed());
 
         // Check the String for accuracy
-        XMLStreamReader reader = inputFactory.createXMLStreamReader((Source) bo);
-        Reader2Writer r2w = new Reader2Writer(reader);
-        String newText = r2w.getAsString();
-        assertTrue(sampleText.equals(newText));
-
+        assertAbout(xml()).that(bo).hasSameContentAs(sampleText);
     }
 
     /**
@@ -949,11 +921,7 @@
         assertTrue(block.isConsumed());
 
         // Check the String for accuracy
-        XMLStreamReader reader = inputFactory.createXMLStreamReader((Source) bo);
-        Reader2Writer r2w = new Reader2Writer(reader);
-        String newText = r2w.getAsString();
-        assertTrue(sampleText.equals(newText));
-
+        assertAbout(xml()).that(bo).hasSameContentAs(sampleText);
     }
     /*
      * Testing JAXBSource, Creating Source Block using JAXBSource and then
@@ -1026,9 +994,7 @@
 
         // To check that the output is correct, get the String contents of the 
         // reader
-        Reader2Writer r2w = new Reader2Writer(reader);
-        String newText = r2w.getAsString();
-        assertTrue(echoSample.equals(newText));
+        assertAbout(xml()).that(reader).hasSameContentAs(echoSample);
     }
     /**
      * Create a Block representing a DOMSource instance and simulate an 
@@ -1072,9 +1038,7 @@
 
         // To check that the output is correct, get the String contents of the 
         // reader
-        Reader2Writer r2w = new Reader2Writer(reader);
-        String newText = r2w.getAsString();
-        assertTrue(sampleText.equals(newText));
+        assertAbout(xml()).that(reader).hasSameContentAs(sampleText);
     }
 
     /**
@@ -1110,9 +1074,7 @@
 
         // To check that the output is correct, get the String contents of the 
         // reader
-        Reader2Writer r2w = new Reader2Writer(reader);
-        String newText = r2w.getAsString();
-        assertTrue(sampleText.equals(newText));
+        assertAbout(xml()).that(reader).hasSameContentAs(sampleText);
     }
 
 }
diff --git a/modules/jaxws/test/org/apache/axis2/jaxws/message/FaultTests.java b/modules/jaxws/test/org/apache/axis2/jaxws/message/FaultTests.java
index 23fa63b..5c78fb8 100644
--- a/modules/jaxws/test/org/apache/axis2/jaxws/message/FaultTests.java
+++ b/modules/jaxws/test/org/apache/axis2/jaxws/message/FaultTests.java
@@ -21,7 +21,8 @@
 
 import junit.framework.TestCase;
 import org.apache.axiom.om.OMElement;
-import org.apache.axiom.soap.impl.builder.StAXSOAPModelBuilder;
+import org.apache.axiom.om.OMXMLBuilderFactory;
+import org.apache.axiom.soap.SOAPModelBuilder;
 import org.apache.axis2.jaxws.message.factory.BlockFactory;
 import org.apache.axis2.jaxws.message.factory.MessageFactory;
 import org.apache.axis2.jaxws.message.factory.SourceBlockFactory;
@@ -136,7 +137,7 @@
 		// OM
 		StringReader sr = new StringReader(sampleSOAP11FaultEnvelope1);
 		XMLStreamReader inflow = inputFactory.createXMLStreamReader(sr);
-		StAXSOAPModelBuilder builder = new StAXSOAPModelBuilder(inflow, null);
+		SOAPModelBuilder builder = OMXMLBuilderFactory.createStAXSOAPModelBuilder(inflow);
 		OMElement omElement = builder.getSOAPEnvelope();
 		
 		// The JAX-WS layer creates a Message from the OM
@@ -172,8 +173,7 @@
 			// OM
 			StringReader sr = new StringReader(sampleSOAP11FaultEnvelope2);
 			XMLStreamReader inflow = inputFactory.createXMLStreamReader(sr);
-			StAXSOAPModelBuilder builder = new StAXSOAPModelBuilder(inflow,
-					null);
+	        SOAPModelBuilder builder = OMXMLBuilderFactory.createStAXSOAPModelBuilder(inflow);
 			OMElement omElement = builder.getSOAPEnvelope();
 
 			// The JAX-WS layer creates a Message from the OM
@@ -228,7 +228,7 @@
 		// OM
 		StringReader sr = new StringReader(sampleSOAP12FaultEnvelope1);
 		XMLStreamReader inflow = inputFactory.createXMLStreamReader(sr);
-		StAXSOAPModelBuilder builder = new StAXSOAPModelBuilder(inflow, null);
+		SOAPModelBuilder builder = OMXMLBuilderFactory.createStAXSOAPModelBuilder(inflow);
 		OMElement omElement = builder.getSOAPEnvelope();
 		
 		// The JAX-WS layer creates a Message from the OM
@@ -261,7 +261,7 @@
         // OM
         StringReader sr = new StringReader(sampleSOAP12FaultEnvelope2);
         XMLStreamReader inflow = inputFactory.createXMLStreamReader(sr);
-        StAXSOAPModelBuilder builder = new StAXSOAPModelBuilder(inflow, null);
+        SOAPModelBuilder builder = OMXMLBuilderFactory.createStAXSOAPModelBuilder(inflow);
         OMElement omElement = builder.getSOAPEnvelope();
         
         // The JAX-WS layer creates a Message from the OM
diff --git a/modules/jaxws/test/org/apache/axis2/jaxws/message/JAXBCustomBuilderTests.java b/modules/jaxws/test/org/apache/axis2/jaxws/message/JAXBCustomBuilderTests.java
index 0d0e181..9b08dee 100644
--- a/modules/jaxws/test/org/apache/axis2/jaxws/message/JAXBCustomBuilderTests.java
+++ b/modules/jaxws/test/org/apache/axis2/jaxws/message/JAXBCustomBuilderTests.java
@@ -24,7 +24,9 @@
 import org.apache.axiom.om.OMElement;

 import org.apache.axiom.om.OMNamespace;

 import org.apache.axiom.om.OMSourcedElement;

-import org.apache.axiom.om.impl.builder.StAXOMBuilder;

+import org.apache.axiom.om.OMXMLBuilderFactory;

+import org.apache.axiom.om.OMXMLParserWrapper;

+import org.apache.axiom.om.ds.custombuilder.CustomBuilderSupport;

 import org.apache.axis2.datasource.jaxb.JAXBCustomBuilder;

 import org.apache.axis2.datasource.jaxb.JAXBDSContext;

 import org.apache.axis2.datasource.jaxb.JAXBDataSource;

@@ -93,7 +95,7 @@
         

         // Read the sample text using OM backed by StAX.

         XMLStreamReader inputReader = inputFactory.createXMLStreamReader(sr);

-        StAXOMBuilder builder = new StAXOMBuilder(inputReader); 

+        OMXMLParserWrapper builder = OMXMLBuilderFactory.createStAXOMBuilder(inputReader);  

         

         // Create the JAXBCustomBuilder

         JAXBDSContext jdsContext = new JAXBDSContext(contextPackages);

@@ -101,7 +103,7 @@
         

         // Register the JAXBCustomBuilder...this will intercept the payload

         // and build a jaxb element

-        builder.registerCustomBuilderForPayload(jcb);

+        ((CustomBuilderSupport)builder).registerCustomBuilder(jcb, jcb);

         

         // Get the OM element

         OMElement om = builder.getDocumentElement();  

diff --git a/modules/jaxws/test/org/apache/axis2/jaxws/message/JAXBDSContextTests.java b/modules/jaxws/test/org/apache/axis2/jaxws/message/JAXBDSContextTests.java
index 5ab55e2..8825c7b 100644
--- a/modules/jaxws/test/org/apache/axis2/jaxws/message/JAXBDSContextTests.java
+++ b/modules/jaxws/test/org/apache/axis2/jaxws/message/JAXBDSContextTests.java
@@ -20,53 +20,23 @@
 package org.apache.axis2.jaxws.message;

 

 import junit.framework.TestCase;

+

 import org.apache.axiom.om.OMAbstractFactory;

-import org.apache.axiom.om.OMElement;

-import org.apache.axiom.om.OMFactory;

-import org.apache.axiom.om.OMNamespace;

+import org.apache.axiom.om.OMException;

 import org.apache.axiom.om.OMOutputFormat;

-import org.apache.axiom.om.impl.builder.StAXOMBuilder;

-import org.apache.axiom.om.impl.MTOMXMLStreamWriter;

+import org.apache.axiom.om.ds.AbstractPushOMDataSource;

 import org.apache.axis2.datasource.jaxb.JAXBDSContext;

-import org.apache.axis2.datasource.jaxb.JAXBDataSource;

-import org.apache.axis2.jaxws.message.databinding.JAXBBlockContext;

-import org.apache.axis2.jaxws.message.databinding.JAXBUtils;

-import org.apache.axis2.jaxws.message.factory.BlockFactory;

-import org.apache.axis2.jaxws.message.factory.JAXBBlockFactory;

-import org.apache.axis2.jaxws.message.factory.MessageFactory;

-import org.apache.axis2.jaxws.message.factory.OMBlockFactory;

-import org.apache.axis2.jaxws.message.factory.SourceBlockFactory;

-import org.apache.axis2.jaxws.message.factory.XMLStringBlockFactory;

-import org.apache.axis2.jaxws.message.util.Reader2Writer;

-import org.apache.axis2.jaxws.registry.FactoryRegistry;

 import org.apache.axis2.jaxws.unitTest.TestLogger;

-import org.w3c.dom.Document;

-import org.w3c.dom.Node;

-import org.xml.sax.InputSource;

 import test.Data;

 import test.ObjectFactory;

 

-import javax.xml.bind.JAXBContext;

 import javax.xml.bind.JAXBElement;

-import javax.xml.bind.JAXBIntrospector;

-import javax.xml.bind.Marshaller;

-import javax.xml.bind.Unmarshaller;

-import javax.xml.bind.util.JAXBSource;

+import javax.xml.bind.JAXBException;

 import javax.xml.namespace.QName;

-import javax.xml.parsers.DocumentBuilder;

-import javax.xml.parsers.DocumentBuilderFactory;

-import javax.xml.stream.XMLInputFactory;

-import javax.xml.stream.XMLOutputFactory;

-import javax.xml.stream.XMLStreamReader;

+import javax.xml.stream.XMLStreamException;

 import javax.xml.stream.XMLStreamWriter;

-import javax.xml.transform.Source;

-import javax.xml.transform.dom.DOMSource;

-import javax.xml.transform.sax.SAXSource;

-import javax.xml.transform.stream.StreamSource;

-import java.io.ByteArrayInputStream;

+

 import java.io.ByteArrayOutputStream;

-import java.io.StringReader;

-import java.io.StringWriter;

 import java.util.TreeSet;

 

 /**

@@ -75,21 +45,6 @@
  * These are not client/server tests.

  */

 public class JAXBDSContextTests extends TestCase {

-

-    

-    private static XMLInputFactory inputFactory = XMLInputFactory.newInstance();

-    private static XMLOutputFactory outputFactory = XMLOutputFactory.newInstance();

-

-

-    public JAXBDSContextTests() {

-        super();

-    }

-

-    public JAXBDSContextTests(String arg0) {

-        super(arg0);

-    }

-

-    

     /**

      * Create a Block representing an JAXB and simulate a 

      * normal Dispatch<JAXB> flow

@@ -100,7 +55,7 @@
         // Create a JAXBDSContext for the package containing Data

         TreeSet<String> packages = new TreeSet<String>();

         packages.add(Data.class.getPackage().getName());

-        JAXBDSContext context = new JAXBDSContext(packages);

+        final JAXBDSContext context = new JAXBDSContext(packages);

         

         TestLogger.logger.debug(context.getJAXBContext().toString());

         

@@ -114,21 +69,31 @@
         

         // Create a JAXBElement

         QName qName = new QName("urn://sample", "data");

-        JAXBElement jaxbElement = new JAXBElement(qName, Data.class, value);

+        final JAXBElement<Data> jaxbElement = new JAXBElement<Data>(qName, Data.class, value);

 

         // Create a writer

         ByteArrayOutputStream baos = new ByteArrayOutputStream();

         OMOutputFormat format = new OMOutputFormat();

         format.setDoOptimize(true);

-        MTOMXMLStreamWriter writer = new MTOMXMLStreamWriter(baos, format);

         

         // Marshal the value

-        writer.writeStartDocument();

-        writer.writeStartElement("root");

-        context.marshal(jaxbElement, writer);

-        writer.writeEndElement();

-        writer.writeEndDocument();

-        writer.flush();

+        OMAbstractFactory.getOMFactory().createOMElement(new AbstractPushOMDataSource() {

+            @Override

+            public void serialize(XMLStreamWriter writer) throws XMLStreamException {

+                writer.writeStartElement("", "root", "");

+                try {

+                    context.marshal(jaxbElement, writer);

+                } catch (JAXBException ex) {

+                    throw new OMException(ex);

+                }

+                writer.writeEndElement();

+            }

+            

+            @Override

+            public boolean isDestructiveWrite() {

+                return false;

+            }

+        }).serialize(baos, format);

         

         assertTrue(baos.toString().indexOf("Hello World") > 0);

         assertTrue(baos.toString().indexOf("</root>") > 0);

@@ -144,7 +109,7 @@
         // Create a JAXBDSContext for the package containing Data

         TreeSet<String> packages = new TreeSet<String>();

         packages.add(Data.class.getPackage().getName());

-        JAXBDSContext context = new JAXBDSContext(packages);

+        final JAXBDSContext context = new JAXBDSContext(packages);

         

         TestLogger.logger.debug(context.getJAXBContext().toString());

         

@@ -166,20 +131,31 @@
         // an OccurrenceArray

         QName qName = new QName("urn://sample", "data");

         OccurrenceArray occurrenceArray = new OccurrenceArray(value);

-        JAXBElement jaxbElement = new JAXBElement(qName, Data[].class, occurrenceArray);

+        final JAXBElement jaxbElement = new JAXBElement(qName, Data[].class, occurrenceArray);

 

         // Create a writer

         ByteArrayOutputStream baos = new ByteArrayOutputStream();

         OMOutputFormat format = new OMOutputFormat();

         format.setDoOptimize(true);

-        MTOMXMLStreamWriter writer = new MTOMXMLStreamWriter(baos, format);

         

         // Marshal the value

-        writer.writeStartElement("root");

-        context.marshal(jaxbElement, writer);

-        writer.writeEndElement();

-

-        writer.flush();

+        OMAbstractFactory.getOMFactory().createOMElement(new AbstractPushOMDataSource() {

+            @Override

+            public void serialize(XMLStreamWriter writer) throws XMLStreamException {

+                writer.writeStartElement("", "root", "");

+                try {

+                    context.marshal(jaxbElement, writer);

+                } catch (JAXBException ex) {

+                    throw new OMException(ex);

+                }

+                writer.writeEndElement();

+            }

+            

+            @Override

+            public boolean isDestructiveWrite() {

+                return false;

+            }

+        }).serialize(baos, format);

         

         String outputText = baos.toString();

         String subText = outputText;

diff --git a/modules/jaxws/test/org/apache/axis2/jaxws/message/MessagePersistanceTests.java b/modules/jaxws/test/org/apache/axis2/jaxws/message/MessagePersistanceTests.java
index 05ec286..ee6593d 100644
--- a/modules/jaxws/test/org/apache/axis2/jaxws/message/MessagePersistanceTests.java
+++ b/modules/jaxws/test/org/apache/axis2/jaxws/message/MessagePersistanceTests.java
@@ -21,14 +21,14 @@
 

 import junit.framework.TestCase;

 

-import org.apache.axiom.om.OMAttachmentAccessor;

 import org.apache.axiom.om.OMDataSource;

 import org.apache.axiom.om.OMElement;

+import org.apache.axiom.om.OMNode;

 import org.apache.axiom.om.OMOutputFormat;

 import org.apache.axiom.om.OMSourcedElement;

-import org.apache.axiom.om.OMXMLStreamReader;

-import org.apache.axiom.om.util.CopyUtils;

+import org.apache.axiom.om.OMText;

 import org.apache.axiom.soap.SOAPBody;

+import org.apache.axiom.soap.SOAPCloneOptions;

 import org.apache.axiom.soap.SOAPEnvelope;

 import org.apache.axis2.Constants;

 import org.apache.axis2.Constants.Configuration;

@@ -61,6 +61,7 @@
 import java.io.FileOutputStream;

 import java.io.ObjectInputStream;

 import java.io.ObjectOutputStream;

+import java.util.Iterator;

 

 /**

  * These tests simulate the outbound processing 

@@ -88,6 +89,14 @@
         imageDS = new DataSourceImpl("image/jpeg", "test.jpg", image);

     }

     

+    private static SOAPEnvelope copy(SOAPEnvelope sourceEnv) {

+        SOAPCloneOptions options = new SOAPCloneOptions();

+        options.setFetchDataHandlers(true);

+        options.setPreserveModel(true);

+        options.setCopyOMDataSources(true);

+        return (SOAPEnvelope)sourceEnv.clone(options);

+    }

+    

     /**

      * Create a JAXBBlock containing a JAX-B business object and simulate a normal Dispatch<Object>

      * output flow

@@ -291,7 +300,7 @@
         assertTrue(ds instanceof JAXBBlockImpl);

         

         // Now simulate persisting the message in memory

-        SOAPEnvelope env2 = CopyUtils.copy(env);

+        SOAPEnvelope env2 = copy(env);

         

         // Make sure the Axiom structure is intact.  

         env = axisMC.getEnvelope();

@@ -506,22 +515,14 @@
         env = restoredMC.getEnvelope();

         env.build();

         

-        // Use tree as input to XMLStreamReader

-        OMXMLStreamReader xmlStreamReader = (OMXMLStreamReader) env.getXMLStreamReader();

-        

-        // Issue XOP:Include events for optimized MTOM text nodes

-        xmlStreamReader.setInlineMTOM(false);

-        

         DataHandler dh = null;

-        while(xmlStreamReader.hasNext()) {

-            xmlStreamReader.next();

-            if (xmlStreamReader.isStartElement()) {

-                QName qName =xmlStreamReader.getName();

-                if (XOP_INCLUDE.equals(qName)) {

-                    String hrefValue = xmlStreamReader.getAttributeValue("", "href");

-                    if (hrefValue != null) {

-                        dh =((OMAttachmentAccessor)xmlStreamReader).getDataHandler(hrefValue);

-                    }

+        for (Iterator<OMNode> it = env.getDescendants(false); it.hasNext(); ) {

+            OMNode node = it.next();

+            if (node instanceof OMText) {

+                OMText text = (OMText)node;

+                if (text.isBinary()) {

+                    dh = text.getDataHandler();

+                    break;

                 }

             }

         }

@@ -585,7 +586,7 @@
         assertTrue(ds instanceof JAXBBlockImpl);

         

         // Now simulate persisting the message in memory

-        SOAPEnvelope env2 = CopyUtils.copy(env);

+        SOAPEnvelope env2 = copy(env);

         

         // Make sure the Axiom structure is intact.  

         env = axisMC.getEnvelope();

diff --git a/modules/jaxws/test/org/apache/axis2/jaxws/message/MessageRPCTests.java b/modules/jaxws/test/org/apache/axis2/jaxws/message/MessageRPCTests.java
index fa9ab0c..edf596a 100644
--- a/modules/jaxws/test/org/apache/axis2/jaxws/message/MessageRPCTests.java
+++ b/modules/jaxws/test/org/apache/axis2/jaxws/message/MessageRPCTests.java
@@ -22,8 +22,9 @@
 import junit.framework.TestCase;
 import org.apache.axiom.om.OMElement;
 import org.apache.axiom.om.OMOutputFormat;
+import org.apache.axiom.om.OMXMLBuilderFactory;
 import org.apache.axiom.om.impl.llom.OMSourcedElementImpl;
-import org.apache.axiom.soap.impl.builder.StAXSOAPModelBuilder;
+import org.apache.axiom.soap.SOAPModelBuilder;
 import org.apache.axis2.jaxws.message.databinding.JAXBBlockContext;
 import org.apache.axis2.jaxws.message.factory.JAXBBlockFactory;
 import org.apache.axis2.jaxws.message.factory.MessageFactory;
@@ -261,7 +262,7 @@
         // simulates what Axis2 will be doing with the inbound message. 
         StringReader sr = new StringReader(sampleJAXBEnvelope);
         XMLStreamReader inflow = inputFactory.createXMLStreamReader(sr);
-        StAXSOAPModelBuilder builder = new StAXSOAPModelBuilder(inflow, null);
+        SOAPModelBuilder builder = OMXMLBuilderFactory.createStAXSOAPModelBuilder(inflow);
         OMElement omElement = builder.getSOAPEnvelope();
         
         // Create a SOAP 1.1 Message from the sample incoming XML
@@ -339,7 +340,7 @@
         // simulates what Axis2 will be doing with the inbound message. 
         StringReader sr = new StringReader(xml);
         XMLStreamReader inflow = inputFactory.createXMLStreamReader(sr);
-        StAXSOAPModelBuilder builder = new StAXSOAPModelBuilder(inflow, null);
+        SOAPModelBuilder builder = OMXMLBuilderFactory.createStAXSOAPModelBuilder(inflow);
         OMElement omElement = builder.getSOAPEnvelope();
         
         // Create a SOAP 1.1 Message from the sample incoming XML
diff --git a/modules/jaxws/test/org/apache/axis2/jaxws/message/MessageTests.java b/modules/jaxws/test/org/apache/axis2/jaxws/message/MessageTests.java
index b6e8ab6..d5bb022 100644
--- a/modules/jaxws/test/org/apache/axis2/jaxws/message/MessageTests.java
+++ b/modules/jaxws/test/org/apache/axis2/jaxws/message/MessageTests.java
@@ -23,8 +23,10 @@
 import org.apache.axiom.om.OMElement;
 import org.apache.axiom.om.OMOutputFormat;
 import org.apache.axiom.om.OMSourcedElement;
+import org.apache.axiom.om.OMXMLBuilderFactory;
+import org.apache.axiom.om.ds.custombuilder.CustomBuilderSupport;
 import org.apache.axiom.om.impl.llom.OMSourcedElementImpl;
-import org.apache.axiom.soap.impl.builder.StAXSOAPModelBuilder;
+import org.apache.axiom.soap.SOAPModelBuilder;
 import org.apache.axis2.datasource.jaxb.JAXBCustomBuilder;
 import org.apache.axis2.datasource.jaxb.JAXBDSContext;
 import org.apache.axis2.datasource.jaxb.JAXBDataSource;
@@ -438,7 +440,7 @@
         // OM
         StringReader sr = new StringReader(sampleEnvelope);
         XMLStreamReader inflow = inputFactory.createXMLStreamReader(sr);
-        StAXSOAPModelBuilder builder = new StAXSOAPModelBuilder(inflow, null);
+        SOAPModelBuilder builder = OMXMLBuilderFactory.createStAXSOAPModelBuilder(inflow);
         OMElement omElement = builder.getSOAPEnvelope();
 
         // The JAX-WS layer creates a Message from the OM
@@ -497,7 +499,7 @@
         // OM
         StringReader sr = new StringReader(sampleEnvelope);
         XMLStreamReader inflow = inputFactory.createXMLStreamReader(sr);
-        StAXSOAPModelBuilder builder = new StAXSOAPModelBuilder(inflow, null);
+        SOAPModelBuilder builder = OMXMLBuilderFactory.createStAXSOAPModelBuilder(inflow);
         OMElement omElement = builder.getSOAPEnvelope();
 
         // The JAX-WS layer creates a Message from the OM
@@ -571,7 +573,7 @@
         // OM
         StringReader sr = new StringReader(sampleEnvelope);
         XMLStreamReader inflow = inputFactory.createXMLStreamReader(sr);
-        StAXSOAPModelBuilder builder = new StAXSOAPModelBuilder(inflow, null);
+        SOAPModelBuilder builder = OMXMLBuilderFactory.createStAXSOAPModelBuilder(inflow);
         OMElement omElement = builder.getSOAPEnvelope();
 
         // The JAX-WS layer creates a Message from the OM
@@ -633,7 +635,7 @@
         // OM
         StringReader sr = new StringReader(sampleEnvelopeNoHeader);
         XMLStreamReader inflow = inputFactory.createXMLStreamReader(sr);
-        StAXSOAPModelBuilder builder = new StAXSOAPModelBuilder(inflow, null);
+        SOAPModelBuilder builder = OMXMLBuilderFactory.createStAXSOAPModelBuilder(inflow);
         OMElement omElement = builder.getSOAPEnvelope();
         
         // The JAX-WS layer creates a Message from the OM
@@ -901,14 +903,14 @@
         // simulates what Axis2 will be doing with the inbound message. 
         StringReader sr = new StringReader(sampleJAXBEnvelope);
         XMLStreamReader inflow = inputFactory.createXMLStreamReader(sr);
-        StAXSOAPModelBuilder builder = new StAXSOAPModelBuilder(inflow, null);
+        SOAPModelBuilder builder = OMXMLBuilderFactory.createStAXSOAPModelBuilder(inflow);
         OMElement omElement = builder.getSOAPEnvelope();
         
         JAXBDSContext jds = null;
         if (installJAXBCustomBuilder) {
             jds = new JAXBDSContext(EchoStringResponse.class.getPackage().getName());
             JAXBCustomBuilder jcb = new JAXBCustomBuilder(jds);
-            builder.registerCustomBuilderForPayload(jcb);
+            ((CustomBuilderSupport)builder).registerCustomBuilder(jcb, jcb);
         }
         
         // Create a SOAP 1.1 Message from the sample incoming XML
@@ -1019,7 +1021,7 @@
         if (persist == SAVE_AND_PERSIST) {
             sr = new StringReader(saveMsgText);
             XMLStreamReader saveMsgReader = inputFactory.createXMLStreamReader(sr);
-            builder = new StAXSOAPModelBuilder(saveMsgReader, null);
+            builder = OMXMLBuilderFactory.createStAXSOAPModelBuilder(saveMsgReader);
             omElement = builder.getSOAPEnvelope();
             m = mf.createFrom(omElement, null);
         } 
diff --git a/modules/jaxws/test/org/apache/axis2/jaxws/message/SAAJConverterTests.java b/modules/jaxws/test/org/apache/axis2/jaxws/message/SAAJConverterTests.java
index bd499bc..d63b551 100644
--- a/modules/jaxws/test/org/apache/axis2/jaxws/message/SAAJConverterTests.java
+++ b/modules/jaxws/test/org/apache/axis2/jaxws/message/SAAJConverterTests.java
@@ -24,7 +24,8 @@
 import org.apache.axiom.om.OMElement;
 import org.apache.axiom.om.OMFactory;
 import org.apache.axiom.om.OMNamespace;
-import org.apache.axiom.soap.impl.builder.StAXSOAPModelBuilder;
+import org.apache.axiom.om.OMXMLBuilderFactory;
+import org.apache.axiom.soap.SOAPModelBuilder;
 import org.apache.axis2.jaxws.message.factory.SAAJConverterFactory;
 import org.apache.axis2.jaxws.message.util.SAAJConverter;
 import org.apache.axis2.jaxws.registry.FactoryRegistry;
@@ -98,7 +99,7 @@
 		// Bootstrap: Create an OM SOAPEnvelope from the sample text
 		StringReader sr = new StringReader(sampleEnvelope);
 		XMLStreamReader inflow = inputFactory.createXMLStreamReader(sr);
-		StAXSOAPModelBuilder builder = new StAXSOAPModelBuilder(inflow, null);
+		SOAPModelBuilder builder = OMXMLBuilderFactory.createStAXSOAPModelBuilder(inflow);
 		org.apache.axiom.soap.SOAPEnvelope omEnvelope = builder.getSOAPEnvelope();
 		
 		// Step 1: Get the SAAJConverter object from the Factory
@@ -137,7 +138,7 @@
 		// Bootstrap: Create an OM SOAPEnvelope from the sample text.
 		StringReader sr = new StringReader(sampleEnvelope);
 		XMLStreamReader inflow = inputFactory.createXMLStreamReader(sr);
-		StAXSOAPModelBuilder builder = new StAXSOAPModelBuilder(inflow, null);
+		SOAPModelBuilder builder = OMXMLBuilderFactory.createStAXSOAPModelBuilder(inflow);
 		org.apache.axiom.soap.SOAPEnvelope omEnvelope = builder.getSOAPEnvelope();
 		
 		// Bootstrap: Get an OMElement from the body
@@ -203,7 +204,7 @@
 		// Bootstrap: Create an OM SOAPEnvelope from the sample text
 		StringReader sr = new StringReader(sampleEnvelope1);
 		XMLStreamReader inflow = inputFactory.createXMLStreamReader(sr);
-		StAXSOAPModelBuilder builder = new StAXSOAPModelBuilder(inflow, null);
+		SOAPModelBuilder builder = OMXMLBuilderFactory.createStAXSOAPModelBuilder(inflow);
 		org.apache.axiom.soap.SOAPEnvelope omEnvelope = builder.getSOAPEnvelope();
 		
 		// Step 1: Get the SAAJConverter object from the Factory
diff --git a/modules/jaxws/test/org/apache/axis2/jaxws/message/SOAP12Tests.java b/modules/jaxws/test/org/apache/axis2/jaxws/message/SOAP12Tests.java
index eb86520..8e88666 100644
--- a/modules/jaxws/test/org/apache/axis2/jaxws/message/SOAP12Tests.java
+++ b/modules/jaxws/test/org/apache/axis2/jaxws/message/SOAP12Tests.java
@@ -22,11 +22,11 @@
 import junit.framework.TestCase;

 import org.apache.axiom.om.OMElement;

 import org.apache.axiom.om.OMNamespace;

+import org.apache.axiom.om.OMXMLBuilderFactory;

 import org.apache.axiom.soap.SOAPEnvelope;

-import org.apache.axiom.soap.impl.builder.StAXSOAPModelBuilder;

+import org.apache.axiom.soap.SOAPModelBuilder;

 import org.apache.axis2.jaxws.message.factory.MessageFactory;

 import org.apache.axis2.jaxws.message.factory.XMLStringBlockFactory;

-import org.apache.axis2.jaxws.message.util.Reader2Writer;

 import org.apache.axis2.jaxws.registry.FactoryRegistry;

 import org.apache.axis2.jaxws.unitTest.TestLogger;

 import org.apache.log4j.BasicConfigurator;

@@ -101,8 +101,7 @@
         

         // To check that the output is correct, get the String contents of the 

         // reader

-        Reader2Writer r2w = new Reader2Writer(om.getXMLStreamReader());

-        String newText = r2w.getAsString();

+        String newText = OMXMLBuilderFactory.createStAXOMBuilder(om.getXMLStreamReader()).getDocumentElement().toString();

         TestLogger.logger.debug(newText);

         assertTrue(newText.contains(sampleText));

         assertTrue(newText.contains("soap"));

@@ -146,8 +145,7 @@
         

         // To check that the output is correct, get the String contents of the 

         // reader

-        Reader2Writer r2w = new Reader2Writer(om.getXMLStreamReaderWithoutCaching());

-        String newText = r2w.getAsString();

+        String newText = OMXMLBuilderFactory.createStAXOMBuilder(om.getXMLStreamReaderWithoutCaching()).getDocumentElement().toString();

         TestLogger.logger.debug(newText);

         assertTrue(newText.contains(sampleText));

         assertTrue(newText.contains("soap"));

@@ -170,7 +168,7 @@
         // OM

         StringReader sr = new StringReader(sampleSoap12Envelope);

         XMLStreamReader inflow = inputFactory.createXMLStreamReader(sr);

-        StAXSOAPModelBuilder builder = new StAXSOAPModelBuilder(inflow, null);

+        SOAPModelBuilder builder = OMXMLBuilderFactory.createStAXSOAPModelBuilder(inflow);

         OMElement omElement = builder.getSOAPEnvelope();

         

         // The JAX-WS layer creates a Message from the OM

@@ -208,7 +206,7 @@
         // OM

         StringReader sr = new StringReader(sampleSoap12Envelope);

         XMLStreamReader inflow = inputFactory.createXMLStreamReader(sr);

-        StAXSOAPModelBuilder builder = new StAXSOAPModelBuilder(inflow, null);

+        SOAPModelBuilder builder = OMXMLBuilderFactory.createStAXSOAPModelBuilder(inflow);

         OMElement omElement = builder.getSOAPEnvelope();

         

         // The JAX-WS layer creates a Message from the OM

diff --git a/modules/jaxws/test/org/apache/axis2/jaxws/spi/ClientMetadataHandlerChainTest.java b/modules/jaxws/test/org/apache/axis2/jaxws/spi/ClientMetadataHandlerChainTest.java
index 8677242..960ceb0 100644
--- a/modules/jaxws/test/org/apache/axis2/jaxws/spi/ClientMetadataHandlerChainTest.java
+++ b/modules/jaxws/test/org/apache/axis2/jaxws/spi/ClientMetadataHandlerChainTest.java
@@ -536,7 +536,7 @@
             String sep = "/";

             configLoc = sep + "test-resources" + sep + "configuration" + sep + "handlers" + sep + fileName;

             String baseDir = new File(System.getProperty("basedir",".")).getCanonicalPath();

-            is = new File(baseDir + configLoc).toURL().openStream();

+            is = new File(baseDir + configLoc).toURI().toURL().openStream();

         }

         catch(Exception e) {

             e.printStackTrace();

diff --git a/modules/jaxws/test/org/apache/axis2/jaxws/spi/ClientMetadataTest.java b/modules/jaxws/test/org/apache/axis2/jaxws/spi/ClientMetadataTest.java
index 9a61f77..12234f5 100644
--- a/modules/jaxws/test/org/apache/axis2/jaxws/spi/ClientMetadataTest.java
+++ b/modules/jaxws/test/org/apache/axis2/jaxws/spi/ClientMetadataTest.java
@@ -987,7 +987,7 @@
         String wsdlLocation = getWsdlLocation(wsdlFileName);
         try {
             File file = new File(wsdlLocation);
-            url = file.toURL();
+            url = file.toURI().toURL();
         } catch (MalformedURLException e) {
             e.printStackTrace();
             fail("Exception converting WSDL file to URL: " + e.toString());
diff --git a/modules/jaxws/test/org/apache/axis2/jaxws/wsdl/schemareader/SchemaReaderTests.java b/modules/jaxws/test/org/apache/axis2/jaxws/wsdl/schemareader/SchemaReaderTests.java
index daa4cb1..181c9ba 100644
--- a/modules/jaxws/test/org/apache/axis2/jaxws/wsdl/schemareader/SchemaReaderTests.java
+++ b/modules/jaxws/test/org/apache/axis2/jaxws/wsdl/schemareader/SchemaReaderTests.java
@@ -46,7 +46,7 @@
         		fail();
         	}
 	       	File file = new File(wsdlLocation);
-	       	url = file.toURL();
+	       	url = file.toURI().toURL();
 	    } catch (MalformedURLException e) {
 	        e.printStackTrace();
 	        fail();
diff --git a/modules/jibx-codegen/pom.xml b/modules/jibx-codegen/pom.xml
new file mode 100644
index 0000000..d132acd
--- /dev/null
+++ b/modules/jibx-codegen/pom.xml
@@ -0,0 +1,75 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+  ~ Licensed to the Apache Software Foundation (ASF) under one
+  ~ or more contributor license agreements. See the NOTICE file
+  ~ distributed with this work for additional information
+  ~ regarding copyright ownership. The ASF licenses this file
+  ~ to you under the Apache License, Version 2.0 (the
+  ~ "License"); you may not use this file except in compliance
+  ~ with the License. You may obtain a copy of the License at
+  ~
+  ~ http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing,
+  ~ software distributed under the License is distributed on an
+  ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  ~ KIND, either express or implied. See the License for the
+  ~ specific language governing permissions and limitations
+  ~ under the License.
+  -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.apache.axis2</groupId>
+        <artifactId>axis2</artifactId>
+        <version>1.8.0-SNAPSHOT</version>
+        <relativePath>../../pom.xml</relativePath>
+    </parent>
+    <artifactId>axis2-jibx-codegen</artifactId>
+    <name>Apache Axis2 - JiBX Codegen</name>
+    <description>JiBX code generator support for Axis2</description>
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.axis2</groupId>
+            <artifactId>axis2-codegen</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.jibx</groupId>
+            <artifactId>jibx-bind</artifactId>
+            <exclusions>
+                <exclusion>
+                    <groupId>org.apache.ant</groupId>
+                    <artifactId>ant</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+    </dependencies>
+    <url>http://axis.apache.org/axis2/java/core/</url>
+    <scm>
+        <connection>scm:svn:http://svn.apache.org/repos/asf/axis/axis2/java/core/trunk/modules/jibx-codegen</connection>
+        <developerConnection>scm:svn:https://svn.apache.org/repos/asf/axis/axis2/java/core/trunk/modules/jibx-codegen</developerConnection>
+        <url>http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/jibx-codegen</url>
+    </scm>
+    <build>
+        <plugins>
+            <plugin>
+                <artifactId>maven-remote-resources-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>process</goal>
+                        </goals>
+                        <configuration>
+                            <resourceBundles>
+                                <resourceBundle>org.apache.axis2:axis2-resource-bundle:${project.version}</resourceBundle>
+                            </resourceBundles>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
+</project>
diff --git a/modules/jibx/src/main/java/org/apache/axis2/jibx/CodeGenerationUtility.java b/modules/jibx-codegen/src/main/java/org/apache/axis2/jibx/CodeGenerationUtility.java
similarity index 99%
rename from modules/jibx/src/main/java/org/apache/axis2/jibx/CodeGenerationUtility.java
rename to modules/jibx-codegen/src/main/java/org/apache/axis2/jibx/CodeGenerationUtility.java
index 1afea60..c932b96 100644
--- a/modules/jibx/src/main/java/org/apache/axis2/jibx/CodeGenerationUtility.java
+++ b/modules/jibx-codegen/src/main/java/org/apache/axis2/jibx/CodeGenerationUtility.java
@@ -243,7 +243,7 @@
                 // added work in finding the namespaces.
                 ValidationContext vctx = BindingElement.newValidationContext();
                 binding = BindingElement.readBinding(new FileInputStream(file), path, vctx);
-                binding.setBaseUrl(file.toURL());
+                binding.setBaseUrl(file.toURI().toURL());
                 vctx.setBindingRoot(binding);
                 IncludePrevalidationVisitor ipv = new IncludePrevalidationVisitor(vctx);
                 vctx.tourTree(binding, ipv);
diff --git a/modules/jibx/src/main/resources/org/apache/axis2/jibx/template/JibXDatabindingTemplate.xsl b/modules/jibx-codegen/src/main/resources/org/apache/axis2/jibx/template/JibXDatabindingTemplate.xsl
similarity index 100%
rename from modules/jibx/src/main/resources/org/apache/axis2/jibx/template/JibXDatabindingTemplate.xsl
rename to modules/jibx-codegen/src/main/resources/org/apache/axis2/jibx/template/JibXDatabindingTemplate.xsl
diff --git a/modules/jibx/pom.xml b/modules/jibx/pom.xml
index 58279b3..11b1ffb 100644
--- a/modules/jibx/pom.xml
+++ b/modules/jibx/pom.xml
@@ -23,9 +23,9 @@
     <modelVersion>4.0.0</modelVersion>
     <parent>
         <groupId>org.apache.axis2</groupId>
-        <artifactId>axis2-parent</artifactId>
-        <version>1.7.0-SNAPSHOT</version>
-        <relativePath>../parent/pom.xml</relativePath>
+        <artifactId>axis2</artifactId>
+        <version>1.8.0-SNAPSHOT</version>
+        <relativePath>../../pom.xml</relativePath>
     </parent>
     <artifactId>axis2-jibx</artifactId>
     <name>Apache Axis2 - JiBX Data Binding</name>
@@ -50,12 +50,9 @@
         </dependency>
         <dependency>
             <groupId>org.apache.axis2</groupId>
-            <artifactId>axis2-codegen</artifactId>
+            <artifactId>axis2-jibx-codegen</artifactId>
             <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.jibx</groupId>
-            <artifactId>jibx-bind</artifactId>
+            <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>org.jibx</groupId>
@@ -110,23 +107,23 @@
                             <tasks unless="maven.test.skip">
                                 <java classname="org.apache.axis2.wsdl.WSDL2Java" fork="true">
                                     <classpath refid="maven.test.classpath" />
-                                    <arg line="-uri src/test/wsdl/library.wsdl -o ${project.build.directory}/gen/library-unwrapped -d jibx -uw -Ebindingfile src/test/binding/library-binding.xml --noBuildXML -ns2p http://ws.sosnoski.com/library/wsdl=org.apache.axis2.jibx.library.unwrapped.client" />
+                                    <arg line="-uri src/test/wsdl/library.wsdl -o '${project.build.directory}/gen/library-unwrapped' -d jibx -uw -Ebindingfile src/test/binding/library-binding.xml --noBuildXML -ns2p http://ws.sosnoski.com/library/wsdl=org.apache.axis2.jibx.library.unwrapped.client" />
                                 </java>
                                 <java classname="org.apache.axis2.wsdl.WSDL2Java" fork="true">
                                     <classpath refid="maven.test.classpath" />
-                                    <arg line="-uri src/test/wsdl/library.wsdl -o ${project.build.directory}/gen/library-unwrapped -d jibx -ss -ssi -sd -uw -Ebindingfile src/test/binding/library-binding.xml --noBuildXML -ns2p http://ws.sosnoski.com/library/wsdl=org.apache.axis2.jibx.library.unwrapped.service" />
+                                    <arg line="-uri src/test/wsdl/library.wsdl -o '${project.build.directory}/gen/library-unwrapped' -d jibx -ss -ssi -sd -uw -Ebindingfile src/test/binding/library-binding.xml --noBuildXML -ns2p http://ws.sosnoski.com/library/wsdl=org.apache.axis2.jibx.library.unwrapped.service" />
                                 </java>
                                 <java classname="org.apache.axis2.wsdl.WSDL2Java" fork="true">
                                     <classpath refid="maven.test.classpath" />
-                                    <arg line="-uri src/test/wsdl/library.wsdl -o ${project.build.directory}/gen/library-wrapped -d jibx -Ebindingfile src/test/binding/library-binding.xml --noBuildXML -ns2p http://ws.sosnoski.com/library/wsdl=org.apache.axis2.jibx.library.wrapped.client" />
+                                    <arg line="-uri src/test/wsdl/library.wsdl -o '${project.build.directory}/gen/library-wrapped' -d jibx -Ebindingfile src/test/binding/library-binding.xml --noBuildXML -ns2p http://ws.sosnoski.com/library/wsdl=org.apache.axis2.jibx.library.wrapped.client" />
                                 </java>
                                 <java classname="org.apache.axis2.wsdl.WSDL2Java" fork="true">
                                     <classpath refid="maven.test.classpath" />
-                                    <arg line="-uri src/test/wsdl/library.wsdl -o ${project.build.directory}/gen/library-wrapped -d jibx -ss -ssi -sd -Ebindingfile src/test/binding/library-binding.xml --noBuildXML -ns2p http://ws.sosnoski.com/library/wsdl=org.apache.axis2.jibx.library.wrapped.service" />
+                                    <arg line="-uri src/test/wsdl/library.wsdl -o '${project.build.directory}/gen/library-wrapped' -d jibx -ss -ssi -sd -Ebindingfile src/test/binding/library-binding.xml --noBuildXML -ns2p http://ws.sosnoski.com/library/wsdl=org.apache.axis2.jibx.library.wrapped.service" />
                                 </java>
                                 <java classname="org.apache.axis2.wsdl.WSDL2Java" fork="true">
                                     <classpath refid="maven.test.classpath" />
-                                    <arg line="-uri src/test/wsdl/customer-echo.wsdl -o ${project.build.directory}/gen/customer-echo -d jibx -Ebindingfile src/test/binding/customer-binding.xml --noBuildXML -ns2p http://ws.apache.org/axis2/jibx/customer/wsdl=org.apache.axis2.jibx.customer" />
+                                    <arg line="-uri src/test/wsdl/customer-echo.wsdl -o '${project.build.directory}/gen/customer-echo' -d jibx -Ebindingfile src/test/binding/customer-binding.xml --noBuildXML -ns2p http://ws.apache.org/axis2/jibx/customer/wsdl=org.apache.axis2.jibx.customer" />
                                 </java>
                             </tasks>
                         </configuration>
@@ -137,7 +134,7 @@
                         <configuration>
                             <tasks unless="maven.test.skip">
                                 <java classname="org.jibx.binding.Compile" fork="true">
-                                    <classpath refid="maven.runtime.classpath" />
+                                    <classpath refid="maven.test.classpath" />
                                     <classpath location="target/test-classes" />
                                     <!-- arg value="-v" /-->
                                     <arg value="src/test/binding/customer-binding.xml" />
diff --git a/modules/jibx/src/test/repo/conf/axis2.xml b/modules/jibx/src/test/repo/conf/axis2.xml
index 59151bb..1be7ee1 100644
--- a/modules/jibx/src/test/repo/conf/axis2.xml
+++ b/modules/jibx/src/test/repo/conf/axis2.xml
@@ -80,12 +80,12 @@
     <transportSender name="local"
                      class="org.apache.axis2.transport.local.LocalTransportSender"/>
     <transportSender name="http"
-                     class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
+                     class="org.apache.axis2.transport.http.impl.httpclient4.HTTPClient4TransportSender">
         <parameter name="PROTOCOL">HTTP/1.1</parameter>
         <parameter name="Transfer-Encoding">chunked</parameter>
     </transportSender>
     <transportSender name="https"
-                     class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
+                     class="org.apache.axis2.transport.http.impl.httpclient4.HTTPClient4TransportSender">
         <parameter name="PROTOCOL">HTTP/1.1</parameter>
         <parameter name="Transfer-Encoding">chunked</parameter>
     </transportSender>
diff --git a/modules/json/pom.xml b/modules/json/pom.xml
index 1965839..917b324 100644
--- a/modules/json/pom.xml
+++ b/modules/json/pom.xml
@@ -23,9 +23,9 @@
     <modelVersion>4.0.0</modelVersion>
     <parent>
         <groupId>org.apache.axis2</groupId>
-        <artifactId>axis2-parent</artifactId>
-        <version>1.7.0-SNAPSHOT</version>
-        <relativePath>../parent/pom.xml</relativePath>
+        <artifactId>axis2</artifactId>
+        <version>1.8.0-SNAPSHOT</version>
+        <relativePath>../../pom.xml</relativePath>
     </parent>
     <artifactId>axis2-json</artifactId>
     <name>Apache Axis2 - JSON</name>
@@ -71,11 +71,25 @@
             <artifactId>gson</artifactId>
         </dependency>
         <dependency>
+            <groupId>commons-logging</groupId>
+            <artifactId>commons-logging</artifactId>
+        </dependency>
+        <dependency>
             <groupId>org.apache.axis2</groupId>
             <artifactId>axis2-adb-codegen</artifactId>
             <version>${project.version}</version>
             <scope>test</scope>
         </dependency>
+        <dependency>
+            <groupId>commons-httpclient</groupId>
+            <artifactId>commons-httpclient</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.ws.commons.axiom</groupId>
+            <artifactId>axiom-truth</artifactId>
+            <scope>test</scope>
+        </dependency>
     </dependencies>
     <url>http://axis.apache.org/axis2/java/core/</url>
     <scm>
@@ -119,10 +133,10 @@
                         <configuration>
                             <tasks unless="maven.test.skip">
                                 <java classname="org.apache.axis2.wsdl.WSDL2Java" fork="true">
-                                    <classpath refid="maven.test.classpath"/>
-                                    <arg line="-ss -sd -u -or -o ${project.build.directory}/gen -uri test-wsdl/LibraryService.wsdl"/>
+                                    <classpath refid="maven.test.classpath" />
+                                    <arg line="-ss -sd -u -or -o '${project.build.directory}/gen' -uri test-wsdl/LibraryService.wsdl" />
                                 </java>
-                                <delete file="${project.build.directory}/gen/src/org/apache/axis2/json/adb/LibraryServiceSkeleton.java"/>
+                                <delete file="${project.build.directory}/gen/src/org/apache/axis2/json/adb/LibraryServiceSkeleton.java" />
                             </tasks>
                         </configuration>
                     </execution>
@@ -147,6 +161,33 @@
                 </executions>
             </plugin>
             <plugin>
+                <groupId>${project.groupId}</groupId>
+                <artifactId>axis2-repo-maven-plugin</artifactId>
+                <version>${project.version}</version>
+                <executions>
+                    <execution>
+                        <id>json-repo</id>
+                        <goals>
+                            <goal>create-test-repository</goal>
+                        </goals>
+                        <configuration>
+                            <inputDirectory>test-repository/json</inputDirectory>
+                            <outputDirectory>${project.build.directory}/repo/json</outputDirectory>
+                        </configuration>
+                    </execution>
+                    <execution>
+                        <id>gson-repo</id>
+                        <goals>
+                            <goal>create-test-repository</goal>
+                        </goals>
+                        <configuration>
+                            <inputDirectory>test-repository/gson</inputDirectory>
+                            <outputDirectory>${project.build.directory}/repo/gson</outputDirectory>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+            <plugin>
                 <artifactId>maven-resources-plugin</artifactId>
                 <executions>
                     <execution>
@@ -156,12 +197,9 @@
                             <goal>copy-resources</goal>
                         </goals>
                         <configuration>
-                            <outputDirectory>${project.build.directory}/repo</outputDirectory>
+                            <outputDirectory>${project.build.directory}/repo/gson</outputDirectory>
                             <resources>
                                 <resource>
-                                    <directory>src/test/repo</directory>
-                                </resource>
-                                <resource>
                                     <directory>${project.build.directory}/gen/resources</directory>
                                     <targetPath>services/json_adb_test.aar/META-INF</targetPath>
                                 </resource>
diff --git a/modules/json/src/org/apache/axis2/json/JSONUtil.java b/modules/json/src/org/apache/axis2/json/JSONUtil.java
index 751c26e..ec60dcb 100644
--- a/modules/json/src/org/apache/axis2/json/JSONUtil.java
+++ b/modules/json/src/org/apache/axis2/json/JSONUtil.java
@@ -35,8 +35,8 @@
         Object value = service.getParameterValue("xmlToJsonNamespaceMap");
         if (value != null) {
             if (value instanceof OMElement && ((OMElement)value).getLocalName().equals("mappings")) {
-                for (Iterator it = ((OMElement)value).getChildrenWithName(new QName("mapping")); it.hasNext(); ) {
-                    OMElement mapping = (OMElement)it.next();
+                for (Iterator<OMElement> it = ((OMElement)value).getChildrenWithName(new QName("mapping")); it.hasNext(); ) {
+                    OMElement mapping = it.next();
                     ns2jnsMap.put(mapping.getAttributeValue(new QName("xmlNamespace")),
                                   mapping.getAttributeValue(new QName("jsonNamespace")));
                 }
diff --git a/modules/json/src/org/apache/axis2/json/gson/GsonXMLStreamReader.java b/modules/json/src/org/apache/axis2/json/gson/GsonXMLStreamReader.java
index 14bf0f8..f975729 100644
--- a/modules/json/src/org/apache/axis2/json/gson/GsonXMLStreamReader.java
+++ b/modules/json/src/org/apache/axis2/json/gson/GsonXMLStreamReader.java
@@ -21,6 +21,7 @@
 
 import com.google.gson.stream.JsonReader;
 import com.google.gson.stream.JsonToken;
+import org.apache.axis2.AxisFault;
 import org.apache.axis2.context.ConfigurationContext;
 import org.apache.axis2.json.gson.factory.JSONType;
 import org.apache.axis2.json.gson.factory.JsonConstant;
@@ -87,7 +88,7 @@
     }
 
     public GsonXMLStreamReader(JsonReader jsonReader, QName elementQname, List<XmlSchema> xmlSchemaList,
-                               ConfigurationContext configContext) {
+                               ConfigurationContext configContext) throws AxisFault {
         this.jsonReader = jsonReader;
         initXmlStreamReader(elementQname, xmlSchemaList, configContext);
     }
@@ -96,16 +97,20 @@
         return jsonReader;
     }
 
-    public void initXmlStreamReader(QName elementQname, List<XmlSchema> xmlSchemaList, ConfigurationContext configContext) {
+    public void initXmlStreamReader(QName elementQname, List<XmlSchema> xmlSchemaList, ConfigurationContext configContext) throws AxisFault {
         this.elementQname = elementQname;
         this.xmlSchemaList = xmlSchemaList;
         this.configContext = configContext;
-        process();
+        try {
+            process();
+        } catch (AxisFault axisFault) {
+            throw new AxisFault("Error while initializing XMLStreamReader ", axisFault);
+        }
         isProcessed = true;
 
     }
 
-    private void process() {
+    private void process() throws AxisFault {
         Object ob = configContext.getProperty(JsonConstant.XMLNODES);
         if (ob != null) {
             Map<QName, XmlNode> nodeMap = (Map<QName, XmlNode>) ob;
diff --git a/modules/json/src/org/apache/axis2/json/gson/GsonXMLStreamWriter.java b/modules/json/src/org/apache/axis2/json/gson/GsonXMLStreamWriter.java
index c39b4db..16cf8f6 100644
--- a/modules/json/src/org/apache/axis2/json/gson/GsonXMLStreamWriter.java
+++ b/modules/json/src/org/apache/axis2/json/gson/GsonXMLStreamWriter.java
@@ -653,9 +653,11 @@
 
     public void writeStartDocument(String encoding, String version) throws XMLStreamException {
         if (!isProcessed) {
-            xmlNodeGenerator.getMainXmlNode();
-            queue = xmlNodeGenerator.getQueue(mainXmlNode);
-            isProcessed = true;
+            try {
+                process();
+            } catch (IOException e) {
+                throw new XMLStreamException("Error occur while trying to write start document element", e);
+            }
         }
     }
 
@@ -672,7 +674,7 @@
             try {
                 process();
             } catch (IOException e) {
-                throw new XMLStreamException("Error occur while trying to write first begin object ");
+                throw new XMLStreamException("Error occur while trying to write first begin object ", e);
             }
         }
         try {
diff --git a/modules/json/src/org/apache/axis2/json/gson/JSONMessageHandler.java b/modules/json/src/org/apache/axis2/json/gson/JSONMessageHandler.java
index 2af260d..bccb485 100644
--- a/modules/json/src/org/apache/axis2/json/gson/JSONMessageHandler.java
+++ b/modules/json/src/org/apache/axis2/json/gson/JSONMessageHandler.java
@@ -20,22 +20,27 @@
 package org.apache.axis2.json.gson;
 
 import org.apache.axiom.om.OMElement;
-import org.apache.axiom.om.impl.builder.StAXOMBuilder;
+import org.apache.axiom.om.OMXMLBuilderFactory;
+import org.apache.axiom.om.OMXMLParserWrapper;
 import org.apache.axis2.AxisFault;
 import org.apache.axis2.context.MessageContext;
+import org.apache.axis2.description.AxisOperation;
 import org.apache.axis2.engine.MessageReceiver;
 import org.apache.axis2.handlers.AbstractHandler;
+import org.apache.axis2.json.gson.factory.JsonConstant;
 import org.apache.axis2.json.gson.rpc.JsonInOnlyRPCMessageReceiver;
 import org.apache.axis2.json.gson.rpc.JsonRpcMessageReceiver;
-import org.apache.axis2.json.gson.factory.JsonConstant;
 import org.apache.axis2.wsdl.WSDLConstants;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
 import org.apache.ws.commons.schema.XmlSchema;
 
 import javax.xml.namespace.QName;
 import java.util.List;
 
-
 public class JSONMessageHandler extends AbstractHandler {
+    Log log = LogFactory.getLog(JSONMessageHandler.class);
+
     /**
      * This method will be called on each registered handler when a message
      * needs to be processed.  If the message processing is paused by the
@@ -53,33 +58,44 @@
      * @param msgContext the <code>MessageContext</code> to process with this
      *                   <code>Handler</code>.
      * @return An InvocationResponse that indicates what
-     *         the next step in the message processing should be.
+     * the next step in the message processing should be.
      * @throws org.apache.axis2.AxisFault if the handler encounters an error
      */
 
     public InvocationResponse invoke(MessageContext msgContext) throws AxisFault {
-        MessageReceiver messageReceiver = msgContext.getAxisOperation().getMessageReceiver();
-        if (messageReceiver instanceof JsonRpcMessageReceiver || messageReceiver instanceof JsonInOnlyRPCMessageReceiver) {
-            // do not need to parse XMLSchema list, as  this message receiver will not use GsonXMLStreamReader  to read the inputStream.
-        } else {
-            Object tempObj = msgContext.getProperty(JsonConstant.IS_JSON_STREAM);
-            if (tempObj != null) {
-                boolean isJSON = Boolean.valueOf(tempObj.toString());
-                Object o = msgContext.getProperty(JsonConstant.GSON_XML_STREAM_READER);
-                if (o != null) {
-                    GsonXMLStreamReader gsonXMLStreamReader = (GsonXMLStreamReader) o;
-                    QName elementQname = msgContext.getAxisOperation().getMessage(WSDLConstants.MESSAGE_LABEL_IN_VALUE).getElementQName();
-                    List<XmlSchema> schemas = msgContext.getAxisService().getSchema();
-                    gsonXMLStreamReader.initXmlStreamReader(elementQname, schemas, msgContext.getConfigurationContext());
-                    StAXOMBuilder stAXOMBuilder = new StAXOMBuilder(gsonXMLStreamReader);
-                    OMElement omElement = stAXOMBuilder.getDocumentElement();
-                    msgContext.getEnvelope().getBody().addChild(omElement);
-                } else {
-                    throw new AxisFault("GsonXMLStreamReader should not be null");
-                }
+        AxisOperation axisOperation = msgContext.getAxisOperation();
+        if (axisOperation != null) {
+            MessageReceiver messageReceiver = axisOperation.getMessageReceiver();
+            if (messageReceiver instanceof JsonRpcMessageReceiver || messageReceiver instanceof JsonInOnlyRPCMessageReceiver) {
+                // do not need to parse XMLSchema list, as  this message receiver will not use GsonXMLStreamReader  to read the inputStream.
             } else {
-                // request is not a JSON request so don't need to initialize GsonXMLStreamReader
+                Object tempObj = msgContext.getProperty(JsonConstant.IS_JSON_STREAM);
+                if (tempObj != null) {
+                    boolean isJSON = Boolean.valueOf(tempObj.toString());
+                    Object o = msgContext.getProperty(JsonConstant.GSON_XML_STREAM_READER);
+                    if (o != null) {
+                        GsonXMLStreamReader gsonXMLStreamReader = (GsonXMLStreamReader) o;
+                        QName elementQname = msgContext.getAxisOperation().getMessage(WSDLConstants.MESSAGE_LABEL_IN_VALUE).getElementQName();
+                        List<XmlSchema> schemas = msgContext.getAxisService().getSchema();
+                        gsonXMLStreamReader.initXmlStreamReader(elementQname, schemas, msgContext.getConfigurationContext());
+                        OMXMLParserWrapper stAXOMBuilder = OMXMLBuilderFactory.createStAXOMBuilder(gsonXMLStreamReader);
+                        OMElement omElement = stAXOMBuilder.getDocumentElement();
+                        msgContext.getEnvelope().getBody().addChild(omElement);
+                    } else {
+                        if (log.isDebugEnabled()) {
+                            log.debug("GsonXMLStreamReader is null");
+                        }
+                        throw new AxisFault("GsonXMLStreamReader should not be null");
+                    }
+                } else {
+                    // request is not a JSON request so don't need to initialize GsonXMLStreamReader
+                }
             }
+        } else {
+            if (log.isDebugEnabled()) {
+                log.debug("Axis operation is null");
+            }
+            // message hasn't been dispatched to operation, ignore it
         }
         return InvocationResponse.CONTINUE;
     }
diff --git a/modules/json/src/org/apache/axis2/json/gson/JsonBuilder.java b/modules/json/src/org/apache/axis2/json/gson/JsonBuilder.java
index 630f890..d063c4a 100644
--- a/modules/json/src/org/apache/axis2/json/gson/JsonBuilder.java
+++ b/modules/json/src/org/apache/axis2/json/gson/JsonBuilder.java
@@ -22,35 +22,42 @@
 import com.google.gson.stream.JsonReader;
 import org.apache.axiom.om.OMAbstractFactory;
 import org.apache.axiom.om.OMElement;
-import org.apache.axiom.soap.SOAPEnvelope;
 import org.apache.axiom.soap.SOAPFactory;
 import org.apache.axis2.AxisFault;
 import org.apache.axis2.Constants;
 import org.apache.axis2.builder.Builder;
 import org.apache.axis2.context.MessageContext;
 import org.apache.axis2.json.gson.factory.JsonConstant;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
 
 import java.io.InputStream;
 import java.io.InputStreamReader;
 import java.io.UnsupportedEncodingException;
 
 public class JsonBuilder implements Builder {
+    Log log = LogFactory.getLog(JsonBuilder.class);
     public OMElement processDocument(InputStream inputStream, String s, MessageContext messageContext) throws AxisFault {
         messageContext.setProperty(JsonConstant.IS_JSON_STREAM , true);
         JsonReader jsonReader;
         String charSetEncoding=null;
-           try {
-               charSetEncoding = (String) messageContext.getProperty(Constants.Configuration.CHARACTER_SET_ENCODING);
-               jsonReader = new JsonReader(new InputStreamReader(inputStream , charSetEncoding));
-               GsonXMLStreamReader gsonXMLStreamReader = new GsonXMLStreamReader(jsonReader);
-               messageContext.setProperty(JsonConstant.GSON_XML_STREAM_READER , gsonXMLStreamReader);
-               // dummy envelop
-               SOAPFactory soapFactory = OMAbstractFactory.getSOAP11Factory();
-               SOAPEnvelope soapEnvelope = soapFactory.getDefaultEnvelope();
-               return soapEnvelope;
-           } catch (UnsupportedEncodingException e) {
-               throw new AxisFault(charSetEncoding + " encoding is may not supported by json inputStream ", e);
-           }
+        if (inputStream != null) {
+            try {
+                charSetEncoding = (String) messageContext.getProperty(Constants.Configuration.CHARACTER_SET_ENCODING);
+                jsonReader = new JsonReader(new InputStreamReader(inputStream, charSetEncoding));
+                GsonXMLStreamReader gsonXMLStreamReader = new GsonXMLStreamReader(jsonReader);
+                messageContext.setProperty(JsonConstant.GSON_XML_STREAM_READER, gsonXMLStreamReader);
+            } catch (UnsupportedEncodingException e) {
+                throw new AxisFault(charSetEncoding + " encoding is may not supported by json inputStream ", e);
+            }
+        } else {
+            if (log.isDebugEnabled()) {
+                log.debug("Inputstream is null, This is possible with GET request");
+            }
+        }
+        // dummy envelop
+        SOAPFactory soapFactory = OMAbstractFactory.getSOAP11Factory();
+        return soapFactory.getDefaultEnvelope();
     }
 
 }
diff --git a/modules/json/src/org/apache/axis2/json/gson/factory/XmlNodeGenerator.java b/modules/json/src/org/apache/axis2/json/gson/factory/XmlNodeGenerator.java
index 984464a..8990fbb 100644
--- a/modules/json/src/org/apache/axis2/json/gson/factory/XmlNodeGenerator.java
+++ b/modules/json/src/org/apache/axis2/json/gson/factory/XmlNodeGenerator.java
@@ -19,6 +19,8 @@
 
 package org.apache.axis2.json.gson.factory;
 
+import org.apache.axis2.AxisFault;
+import org.apache.ws.commons.schema.utils.XmlSchemaRef;
 
 import org.apache.ws.commons.schema.XmlSchema;
 import org.apache.ws.commons.schema.XmlSchemaComplexType;
@@ -52,7 +54,7 @@
     public XmlNodeGenerator() {
     }
 
-    private void processSchemaList() {
+    private void processSchemaList() throws AxisFault {
         // get the operation schema and process.
         XmlSchema operationSchema = getXmlSchema(elementQname);
         XmlSchemaElement messageElement = operationSchema.getElementByName(elementQname.getLocalPart());
@@ -81,7 +83,7 @@
         }
     }
 
-    private void processElement(XmlSchemaElement element, XmlNode parentNode , XmlSchema schema) {
+    private void processElement(XmlSchemaElement element, XmlNode parentNode , XmlSchema schema) throws AxisFault {
         String targetNamespace = schema.getTargetNamespace();
         XmlNode xmlNode;
         QName schemaTypeName = element.getSchemaTypeName();
@@ -106,11 +108,34 @@
             xmlNode = new XmlNode(element.getName(), targetNamespace, false, (element.getMaxOccurs() == 1 ? false : true), schemaType.getQName().getLocalPart());
             parentNode.addChildToList(xmlNode);
             processSchemaType(schemaType, xmlNode, schema);
+        }else if (element.getRef() != null) {
+            // Handle ref element
+            XmlSchemaRef xmlSchemaRef = element.getRef();
+            QName targetQname = xmlSchemaRef.getTargetQName();
+            if (targetQname == null) {
+                throw new AxisFault("target QName is null while processing ref:" + element.getName());
+            }
+            getXmlSchema(targetQname);
+            xmlNode = new XmlNode(targetQname.getLocalPart(), targetNamespace, false, (element.getMaxOccurs() != 1), targetQname.getLocalPart());
+            parentNode.addChildToList(xmlNode);
+            if (("http://www.w3.org/2001/XMLSchema").equals(targetQname.getNamespaceURI())) {
+            } else {
+                XmlSchema schemaOfType;
+                // see whether Schema type is in the same schema
+                XmlSchemaType childSchemaType = schema.getTypeByName(targetQname.getLocalPart());
+                if (childSchemaType == null) {
+                    schemaOfType = getXmlSchema(targetQname);
+                    childSchemaType = schemaOfType.getTypeByName(targetQname.getLocalPart());
+                } else {
+                    schemaOfType = schema;
+                }
+                processSchemaType(childSchemaType, xmlNode, schemaOfType);
+            }
         }
     }
 
 
-    private void processSchemaType(XmlSchemaType xmlSchemaType , XmlNode parentNode , XmlSchema schema) {
+    private void processSchemaType(XmlSchemaType xmlSchemaType , XmlNode parentNode , XmlSchema schema) throws AxisFault {
         if (xmlSchemaType instanceof XmlSchemaComplexType) {
             XmlSchemaComplexType complexType = (XmlSchemaComplexType)xmlSchemaType;
             XmlSchemaParticle particle = complexType.getParticle();
@@ -162,9 +187,13 @@
     }
 
 
-    public XmlNode getMainXmlNode() {
+    public XmlNode getMainXmlNode() throws AxisFault {
         if (mainXmlNode == null) {
-            processSchemaList();
+            try {
+                processSchemaList();
+            } catch (AxisFault axisFault) {
+                throw new AxisFault("Error while creating intermeidate xml structure ", axisFault);
+            }
         }
         return mainXmlNode;
     }
diff --git a/modules/json/test-repository/gson/axis2.xml b/modules/json/test-repository/gson/axis2.xml
index 6ffccba..615d688 100644
--- a/modules/json/test-repository/gson/axis2.xml
+++ b/modules/json/test-repository/gson/axis2.xml
@@ -239,7 +239,7 @@
     <transportSender name="local"
                      class="org.apache.axis2.transport.local.LocalTransportSender"/>
     <transportSender name="http"
-                     class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
+                     class="org.apache.axis2.transport.http.impl.httpclient4.HTTPClient4TransportSender">
         <parameter name="PROTOCOL">HTTP/1.1</parameter>
         <parameter name="Transfer-Encoding">chunked</parameter>
 
@@ -248,7 +248,7 @@
     </transportSender>
 
     <transportSender name="https"
-                     class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
+                     class="org.apache.axis2.transport.http.impl.httpclient4.HTTPClient4TransportSender">
         <parameter name="PROTOCOL">HTTP/1.1</parameter>
         <parameter name="Transfer-Encoding">chunked</parameter>
     </transportSender>
diff --git a/modules/json/test-repository/json/axis2.xml b/modules/json/test-repository/json/axis2.xml
index 4236222..64749a2 100644
--- a/modules/json/test-repository/json/axis2.xml
+++ b/modules/json/test-repository/json/axis2.xml
@@ -126,7 +126,7 @@
                          class="org.apache.axis2.transport.http.SOAPMessageFormatter"/>
         <messageFormatter contentType="application/json"
                          class="org.apache.axis2.json.JSONMessageFormatter"/>
-        <messageFormatter contentType="application/json/badgerfish"
+        <messageFormatter contentType="application/json+badgerfish"
                          class="org.apache.axis2.json.JSONBadgerfishMessageFormatter"/>
         <messageFormatter contentType="text/javascript"
                          class="org.apache.axis2.json.JSONMessageFormatter"/>
@@ -140,7 +140,7 @@
     <messageBuilders>
         <messageBuilder contentType="application/json"
                          class="org.apache.axis2.json.JSONOMBuilder"/>
-        <messageBuilder contentType="application/json/badgerfish"
+        <messageBuilder contentType="application/json+badgerfish"
                          class="org.apache.axis2.json.JSONBadgerfishOMBuilder"/>
         <messageBuilder contentType="text/javascript"
                          class="org.apache.axis2.json.JSONOMBuilder"/>
@@ -183,12 +183,12 @@
     <transportSender name="local"
                      class="org.apache.axis2.transport.local.LocalTransportSender"/>
     <transportSender name="http"
-                     class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
+                     class="org.apache.axis2.transport.http.impl.httpclient4.HTTPClient4TransportSender">
         <parameter name="PROTOCOL">HTTP/1.1</parameter>
         <parameter name="Transfer-Encoding">chunked</parameter>
     </transportSender>
     <transportSender name="https"
-                     class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
+                     class="org.apache.axis2.transport.http.impl.httpclient4.HTTPClient4TransportSender">
         <parameter name="PROTOCOL">HTTP/1.1</parameter>
         <parameter name="Transfer-Encoding">chunked</parameter>
     </transportSender>
diff --git a/modules/json/test-resources/custom_schema/testSchema_2.xsd b/modules/json/test-resources/custom_schema/testSchema_2.xsd
index 9ae2425..dfcb366 100644
--- a/modules/json/test-resources/custom_schema/testSchema_2.xsd
+++ b/modules/json/test-resources/custom_schema/testSchema_2.xsd
@@ -20,10 +20,10 @@
   -->
 
 
-<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
-targetNamespace="http://test.json.axis2.apache.org"
-xmlns="http://test.json.axis2.apache.org"
-elementFormDefault="qualified">
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://test.json.axis2.apache.org"
+xmlns="http://test.json.axis2.apache.org" xmlns:ns1="http://test.json.axis2.apache.org/employee"
+xmlns:tns="http://test.json.axis2.apache.org" elementFormDefault="qualified">
+    <xs:import namespace="http://test.json.axis2.apache.org/employee" schemaLocation="test-resources/custom_schema/testSchema_3.xsd"></xs:import>
 
     <xs:element name="echoPerson">
         <xs:complexType>
@@ -49,4 +49,23 @@
         </xs:sequence>
     </xs:complexType>
 
+    <xs:element name="Offices" type="tns:Offices"></xs:element>
+
+    <xs:complexType name="Offices">
+        <xs:sequence>
+            <xs:element maxOccurs="unbounded" minOccurs="0" name="Office" type="tns:Office"></xs:element>
+        </xs:sequence>
+    </xs:complexType>
+
+    <xs:complexType name="Office">
+        <xs:sequence>
+            <xs:element name="phone" nillable="true" type="xs:string"></xs:element>
+            <xs:element name="officeCode" nillable="true" type="xs:integer"></xs:element>
+            <xs:element ref="ns1:Employees"></xs:element>
+            <xs:element name="country" nillable="true" type="xs:string"></xs:element>
+            <xs:element name="city" nillable="true" type="xs:string"></xs:element>
+        </xs:sequence>
+    </xs:complexType>
+
+
 </xs:schema>
\ No newline at end of file
diff --git a/modules/json/test-resources/custom_schema/testSchema_3.xsd b/modules/json/test-resources/custom_schema/testSchema_3.xsd
new file mode 100644
index 0000000..885a20b
--- /dev/null
+++ b/modules/json/test-resources/custom_schema/testSchema_3.xsd
@@ -0,0 +1,16 @@
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://test.json.axis2.apache.org/employee"
+           xmlns:ns1="http://test.json.axis2.apache.org/employee" attributeFormDefault="unqualified" elementFormDefault="qualified" >
+    <xs:element name="Employees" type="ns1:Employees"></xs:element>
+    <xs:complexType name="Employees">
+        <xs:sequence>
+            <xs:element maxOccurs="unbounded" minOccurs="0" name="Employee" type="ns1:Employee"></xs:element>
+        </xs:sequence>
+    </xs:complexType>
+    <xs:complexType name="Employee">
+        <xs:sequence>
+            <xs:element name="email" nillable="true" type="xs:string"></xs:element>
+            <xs:element name="firstName" nillable="true" type="xs:string"></xs:element>
+            <xs:element name="employeeNumber" nillable="true" type="xs:integer"></xs:element>
+        </xs:sequence>
+    </xs:complexType>
+</xs:schema>
diff --git a/modules/json/test/org/apache/axis2/json/Echo.java b/modules/json/test/org/apache/axis2/json/Echo.java
index f8e4fed..6beb61f 100644
--- a/modules/json/test/org/apache/axis2/json/Echo.java
+++ b/modules/json/test/org/apache/axis2/json/Echo.java
@@ -19,9 +19,7 @@
 
 package org.apache.axis2.json;
 
-import org.apache.axiom.om.OMDataSource;
 import org.apache.axiom.om.OMElement;
-import org.apache.axiom.om.OMSourcedElement;
 import org.apache.axis2.AxisFault;
 import org.apache.axis2.Constants;
 import org.apache.axis2.context.MessageContext;
@@ -35,8 +33,7 @@
 
     public OMElement echoOM(OMElement omEle) throws AxisFault {
         MessageContext outMsgCtx = MessageContext.getCurrentMessageContext().getOperationContext().getMessageContext(WSDLConstants.MESSAGE_LABEL_OUT_VALUE);
-        Object object = outMsgCtx.getProperty(Constants.Configuration.MESSAGE_TYPE);
-        String messageType = (String) object;
+        String messageType = (String)outMsgCtx.getProperty(Constants.Configuration.MESSAGE_TYPE);
 
         //if the request is through GET, the message type is application/xml. otherwise don't allow
         //any non json specific message types
@@ -45,9 +42,6 @@
         } else if (messageType.indexOf("json") < 0) {
             throw new AxisFault("Type of the Received Message is not JSON");
         }
-        OMDataSource omdataOSuce = ((OMSourcedElement) omEle).getDataSource();
-        OMElement newOmEle = (OMElement) omEle.detach();
-        ((OMSourcedElement) newOmEle).setDataSource(omdataOSuce);
         return omEle;
     }
 }
diff --git a/modules/json/test/org/apache/axis2/json/JSONDataSourceTest.java b/modules/json/test/org/apache/axis2/json/JSONDataSourceTest.java
index 6e6a8d8..4a74e59 100644
--- a/modules/json/test/org/apache/axis2/json/JSONDataSourceTest.java
+++ b/modules/json/test/org/apache/axis2/json/JSONDataSourceTest.java
@@ -19,102 +19,43 @@
 
 package org.apache.axis2.json;
 
-import org.apache.axiom.om.OMOutputFormat;
-import org.apache.axiom.om.util.StAXUtils;
+import org.apache.axiom.om.OMAbstractFactory;
 import org.apache.axis2.context.MessageContext;
 import org.apache.axis2.description.AxisService;
-import org.codehaus.jettison.json.JSONException;
 import org.custommonkey.xmlunit.XMLTestCase;
-import org.xml.sax.SAXException;
 
-import javax.xml.parsers.ParserConfigurationException;
-import javax.xml.stream.XMLStreamException;
-import javax.xml.stream.XMLStreamWriter;
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.OutputStreamWriter;
+import static com.google.common.truth.Truth.assertAbout;
+import static org.apache.axiom.truth.xml.XMLTruth.xml;
+
 import java.io.StringReader;
 
 public class JSONDataSourceTest extends XMLTestCase {
 
-    public void testMappedSerialize1() throws Exception {
-        String jsonString = getMappedJSONString();
-        ByteArrayOutputStream outStream = new ByteArrayOutputStream();
-        JSONDataSource source = getMappedDataSource(jsonString);
-        source.serialize(outStream, new OMOutputFormat());
-        assertXMLEqual("<mapping><inner><first>test string one</first></inner><inner>test string two</inner><name>foo</name></mapping>",
-                outStream.toString("utf-8"));
+    public void testMappedSerialize() throws Exception {
+        JSONDataSource source = getMappedDataSource(
+                "{\"mapping\":{\"inner\":[{\"first\":\"test string one\"},\"test string two\"],\"name\":\"foo\"}}");
+        assertAbout(xml())
+                .that(OMAbstractFactory.getOMFactory().createOMElement(source))
+                .hasSameContentAs(
+                        "<mapping><inner><first>test string one</first></inner><inner>test string two</inner><name>foo</name></mapping>");
     }
 
-    public void testMappedSerialize2() throws Exception {
-        String jsonString = getMappedJSONString();
-        ByteArrayOutputStream outStream = new ByteArrayOutputStream();
-        OutputStreamWriter writer = new OutputStreamWriter(outStream);
-        JSONDataSource source = getMappedDataSource(jsonString);
-        source.serialize(writer, new OMOutputFormat());
-        writer.flush();
-        assertXMLEqual("<mapping><inner><first>test string one</first></inner><inner>test string two</inner><name>foo</name></mapping>",
-                outStream.toString("utf-8"));
-    }
-
-    public void testMappedSerialize3() throws Exception {
-        String jsonString = getMappedJSONString();
-        ByteArrayOutputStream outStream = new ByteArrayOutputStream();
-        XMLStreamWriter writer = StAXUtils.createXMLStreamWriter(outStream);
-        JSONDataSource source = getMappedDataSource(jsonString);
-        source.serialize(writer);
-        writer.flush();
-        assertXMLEqual("<mapping><inner><first>test string one</first></inner><inner>test string two</inner><name>foo</name></mapping>",
-                outStream.toString("utf-8"));
-    }
-
-    public void testBadgerfishSerialize1() throws Exception {
-        String jsonString = getBadgerfishJSONString();
-        ByteArrayOutputStream outStream = new ByteArrayOutputStream();
-        JSONBadgerfishDataSource source = getBadgerfishDataSource(jsonString);
-        source.serialize(outStream, new OMOutputFormat());
-        assertXMLEqual("<p xmlns=\"http://def.ns\" xmlns:bb=\"http://other.nsb\" xmlns:aa=\"http://other.ns\"><sam att=\"lets\">555</sam></p>",
-                outStream.toString("utf-8"));
-    }
-
-    public void testBadgerfishSerialize2() throws Exception {
-        String jsonString = getBadgerfishJSONString();
-        ByteArrayOutputStream outStream = new ByteArrayOutputStream();
-        OutputStreamWriter writer = new OutputStreamWriter(outStream);
-        JSONBadgerfishDataSource source = getBadgerfishDataSource(jsonString);
-        source.serialize(writer, new OMOutputFormat());
-        writer.flush();
-        assertXMLEqual("<p xmlns=\"http://def.ns\" xmlns:bb=\"http://other.nsb\" xmlns:aa=\"http://other.ns\"><sam att=\"lets\">555</sam></p>",
-                outStream.toString("utf-8"));
-    }
-
-    public void testBadgerfishSerialize3() throws XMLStreamException, JSONException, IOException,
-            ParserConfigurationException, SAXException {
-        String jsonString = getBadgerfishJSONString();
-        ByteArrayOutputStream outStream = new ByteArrayOutputStream();
-        XMLStreamWriter writer = StAXUtils.createXMLStreamWriter(outStream);
-        JSONBadgerfishDataSource source = getBadgerfishDataSource(jsonString);
-        source.serialize(writer);
-        writer.flush();
-        assertXMLEqual("<p xmlns=\"http://def.ns\" xmlns:bb=\"http://other.nsb\" xmlns:aa=\"http://other.ns\"><sam att=\"lets\">555</sam></p>",
-                outStream.toString("utf-8"));
+    public void testBadgerfishSerialize() throws Exception {
+        JSONBadgerfishDataSource source = getBadgerfishDataSource(
+                "{\"p\":{\"@xmlns\":{\"bb\":\"http://other.nsb\",\"aa\":\"http://other.ns\",\"$\":\"http://def.ns\"},\"sam\":{\"$\":\"555\", \"@att\":\"lets\"}}}");
+        assertAbout(xml())
+                .that(OMAbstractFactory.getOMFactory().createOMElement(source))
+                .hasSameContentAs(
+                        "<p xmlns=\"http://def.ns\" xmlns:bb=\"http://other.nsb\" xmlns:aa=\"http://other.ns\"><sam att=\"lets\">555</sam></p>");
     }
 
     private JSONBadgerfishDataSource getBadgerfishDataSource(String jsonString) {
         return new JSONBadgerfishDataSource(new StringReader(jsonString));
     }
 
-    private String getBadgerfishJSONString() {
-        return "{\"p\":{\"@xmlns\":{\"bb\":\"http://other.nsb\",\"aa\":\"http://other.ns\",\"$\":\"http://def.ns\"},\"sam\":{\"$\":\"555\", \"@att\":\"lets\"}}}";
-    }
-
     private JSONDataSource getMappedDataSource(String jsonString) {
         MessageContext messageContext = new MessageContext();
         messageContext.setAxisService(new AxisService());
         return new JSONDataSource(new StringReader(jsonString), messageContext);
     }
-
-    private String getMappedJSONString() {
-        return "{\"mapping\":{\"inner\":[{\"first\":\"test string one\"},\"test string two\"],\"name\":\"foo\"}}";
-    }
 }
diff --git a/modules/json/test/org/apache/axis2/json/JSONIntegrationTest.java b/modules/json/test/org/apache/axis2/json/JSONIntegrationTest.java
index cddc5a1..f6de8b4 100644
--- a/modules/json/test/org/apache/axis2/json/JSONIntegrationTest.java
+++ b/modules/json/test/org/apache/axis2/json/JSONIntegrationTest.java
@@ -27,12 +27,11 @@
 import org.apache.axiom.om.OMFactory;
 import org.apache.axiom.om.OMNamespace;
 import org.apache.axis2.Constants;
-import org.apache.axis2.addressing.EndpointReference;
 import org.apache.axis2.client.Options;
 import org.apache.axis2.client.ServiceClient;
-import org.apache.axis2.testutils.UtilServer;
-import org.junit.AfterClass;
-import org.junit.BeforeClass;
+import org.apache.axis2.testutils.Axis2Server;
+import org.apache.axis2.testutils.ClientHelper;
+import org.junit.ClassRule;
 import org.junit.Test;
 
 import java.io.BufferedReader;
@@ -46,22 +45,11 @@
 
     private String expectedString;
 
-    private static EndpointReference echoTargetEPR;
-    private static String pojoUri;
+    @ClassRule
+    public static Axis2Server server = new Axis2Server("target/repo/json");
 
-    @BeforeClass
-    public static void startServer() throws Exception {
-        UtilServer.start("test-repository/json", "test-repository/json/axis2.xml");
-        echoTargetEPR = new EndpointReference(
-                "http://127.0.0.1:" + UtilServer.TESTING_PORT
-                        + "/axis2/services/EchoXMLService/echoOM");
-        pojoUri = "http://127.0.0.1:" + UtilServer.TESTING_PORT + "/axis2/services/POJOService";
-    }
-
-    @AfterClass
-    public static void stopServer() throws Exception {
-		UtilServer.stop();
-    }
+    @ClassRule
+    public static ClientHelper clientHelper = new ClientHelper(server);
 
     protected OMElement createEnvelope() throws Exception {
         OMFactory fac = OMAbstractFactory.getOMFactory();
@@ -80,16 +68,12 @@
 
     private void doEchoOM(String messageType, String httpMethod) throws Exception{
     	OMElement payload = createEnvelope();
-        Options options = new Options();
-        options.setTo(echoTargetEPR);
+        ServiceClient sender = clientHelper.createServiceClient("EchoXMLService");
+        Options options = sender.getOptions();
         options.setProperty(Constants.Configuration.MESSAGE_TYPE, messageType);
         options.setTransportInProtocol(Constants.TRANSPORT_HTTP);
         options.setProperty(Constants.Configuration.HTTP_METHOD, httpMethod);
-//        ConfigurationContext clientConfigurationContext = ConfigurationContextFactory.createDefaultConfigurationContext();
-        ServiceClient sender = new ServiceClient(UtilServer.getConfigurationContext(), null);
         options.setAction(null);
-        sender.setOptions(options);
-        options.setTo(echoTargetEPR);
         OMElement result = sender.sendReceive(payload);
         OMElement ele = (OMElement)result.getFirstOMChild();
         compareWithCreatedOMText(ele.getText());
@@ -97,7 +81,7 @@
 
     @Test
     public void testEchoOMWithJSONBadgerfish() throws Exception{
-    	doEchoOM("application/json/badgerfish", Constants.Configuration.HTTP_METHOD_POST);
+    	doEchoOM("application/json+badgerfish", Constants.Configuration.HTTP_METHOD_POST);
     }
 
     @Test
@@ -112,9 +96,9 @@
 
     @Test
     public void testPOJOServiceWithJSONBadgerfish() throws Exception {
-        HttpURLConnection conn = (HttpURLConnection)new URL(pojoUri).openConnection();
+        HttpURLConnection conn = (HttpURLConnection)new URL(server.getEndpoint("POJOService")).openConnection();
         conn.setDoOutput(true);
-        conn.addRequestProperty("Content-Type", "application/json/badgerfish");
+        conn.addRequestProperty("Content-Type", "application/json+badgerfish");
         Writer out = new OutputStreamWriter(conn.getOutputStream(), "UTF-8");
         // XML is: <sayHello xmlns="http://example.org"><myName>Joe</myName></sayHello>
         out.write("{ \"sayHello\" : { \"@xmlns\" : { \"$\" : \"http://example.org\" }, \"myName\" : { \"$\" : \"Joe\" } } }");
@@ -128,7 +112,7 @@
 
     @Test
     public void testPOJOServiceWithJSONMapped() throws Exception {
-        HttpURLConnection conn = (HttpURLConnection)new URL(pojoUri).openConnection();
+        HttpURLConnection conn = (HttpURLConnection)new URL(server.getEndpoint("POJOService")).openConnection();
         conn.setDoOutput(true);
         conn.addRequestProperty("Content-Type", "application/json");
         Writer out = new OutputStreamWriter(conn.getOutputStream(), "UTF-8");
diff --git a/modules/json/test/org/apache/axis2/json/JSONTestConstants.java b/modules/json/test/org/apache/axis2/json/JSONTestConstants.java
index f9c4e30..bf10e7f 100644
--- a/modules/json/test/org/apache/axis2/json/JSONTestConstants.java
+++ b/modules/json/test/org/apache/axis2/json/JSONTestConstants.java
@@ -21,7 +21,7 @@
 
 public interface JSONTestConstants {
 
-    public static final String CONTENT_TYPE_BADGERFISH = "application/json/badgerfish";
+    public static final String CONTENT_TYPE_BADGERFISH = "application/json+badgerfish";
     
     public static final String CONTENT_TYPE_MAPPED = "application/json";
     
diff --git a/modules/json/test/org/apache/axis2/json/gson/GsonXMLStreamReaderTest.java b/modules/json/test/org/apache/axis2/json/gson/GsonXMLStreamReaderTest.java
index ffc01d0..12f5892 100644
--- a/modules/json/test/org/apache/axis2/json/gson/GsonXMLStreamReaderTest.java
+++ b/modules/json/test/org/apache/axis2/json/gson/GsonXMLStreamReaderTest.java
@@ -21,7 +21,8 @@
 
 import com.google.gson.stream.JsonReader;
 import org.apache.axiom.om.OMElement;
-import org.apache.axiom.om.impl.builder.StAXOMBuilder;
+import org.apache.axiom.om.OMXMLBuilderFactory;
+import org.apache.axiom.om.OMXMLParserWrapper;
 import org.apache.axis2.context.ConfigurationContext;
 import org.apache.axis2.engine.AxisConfiguration;
 import org.apache.ws.commons.schema.XmlSchema;
@@ -57,7 +58,7 @@
         ConfigurationContext configCtxt = new ConfigurationContext(new AxisConfiguration());
         GsonXMLStreamReader gsonXMLStreamReader = new GsonXMLStreamReader(jsonReader);
         gsonXMLStreamReader.initXmlStreamReader(elementQName , schemaList , configCtxt);
-        StAXOMBuilder stAXOMBuilder = new StAXOMBuilder(gsonXMLStreamReader);
+        OMXMLParserWrapper stAXOMBuilder = OMXMLBuilderFactory.createStAXOMBuilder(gsonXMLStreamReader);
         OMElement omElement = stAXOMBuilder.getDocumentElement();
         String actual = omElement.toString();
         inputStream.close();
diff --git a/modules/json/test/org/apache/axis2/json/gson/JSONXMLStreamAPITest.java b/modules/json/test/org/apache/axis2/json/gson/JSONXMLStreamAPITest.java
index 6bb532a..bb11e97 100644
--- a/modules/json/test/org/apache/axis2/json/gson/JSONXMLStreamAPITest.java
+++ b/modules/json/test/org/apache/axis2/json/gson/JSONXMLStreamAPITest.java
@@ -19,37 +19,19 @@
 
 package org.apache.axis2.json.gson;
 
-import org.apache.axis2.testutils.UtilServer;
-import org.apache.commons.httpclient.HttpClient;
-import org.apache.commons.httpclient.methods.PostMethod;
-import org.apache.commons.httpclient.methods.RequestEntity;
-import org.apache.commons.httpclient.methods.StringRequestEntity;
-import org.junit.After;
+import org.apache.axis2.testutils.Axis2Server;
 import org.junit.Assert;
-import org.junit.Before;
+import org.junit.ClassRule;
 import org.junit.Test;
 
-import java.io.IOException;
-
-
 public class JSONXMLStreamAPITest {
-
-    @Before
-    public void setUp()throws Exception {
-        UtilServer.start("target/repo", "test-repository/gson/axis2.xml");
-
-    }
-
-    @After
-    public void tearDown()throws Exception {
-        UtilServer.stop();
-
-    }
+    @ClassRule
+    public static Axis2Server server = new Axis2Server("target/repo/gson");
 
     @Test
     public void xmlStreamAPITest()throws Exception{
-        String getLibURL = "http://localhost:" + UtilServer.TESTING_PORT +"/axis2/services/LibraryService/getLibrary";
-        String echoLibURL = "http://localhost:" + UtilServer.TESTING_PORT +"/axis2/services/LibraryService/echoLibrary";
+        String getLibURL = server.getEndpoint("LibraryService") + "getLibrary";
+        String echoLibURL = server.getEndpoint("LibraryService") + "echoLibrary";
         String contentType = "application/json";
         String charSet = "UTF-8";
 
diff --git a/modules/json/test/org/apache/axis2/json/gson/factory/XmlNodeGeneratorTest.java b/modules/json/test/org/apache/axis2/json/gson/factory/XmlNodeGeneratorTest.java
index 7d84374..30a4389 100644
--- a/modules/json/test/org/apache/axis2/json/gson/factory/XmlNodeGeneratorTest.java
+++ b/modules/json/test/org/apache/axis2/json/gson/factory/XmlNodeGeneratorTest.java
@@ -22,6 +22,7 @@
 import org.apache.ws.commons.schema.XmlSchema;
 import org.apache.ws.commons.schema.XmlSchemaCollection;
 import org.junit.Assert;
+import org.junit.BeforeClass;
 import org.junit.Test;
 
 import javax.xml.namespace.QName;
@@ -34,21 +35,11 @@
 
 public class XmlNodeGeneratorTest {
 
+    static List<XmlSchema> schemaList = null;
     @Test
     public void testMainXMLNode() throws Exception {
-
         QName elementQName = new QName("http://test.json.axis2.apache.org" ,"echoPerson");
-
-        String fileName = "test-resources/custom_schema/testSchema_2.xsd";
-        InputStream is = new FileInputStream(fileName);
-        XmlSchemaCollection schemaCol = new XmlSchemaCollection();
-        XmlSchema schema = schemaCol.read(new StreamSource(is));
-
-        List<XmlSchema> schemaList = new ArrayList<XmlSchema>();
-        schemaList.add(schema);
-
         XmlNodeGenerator xmlNodeGenerator = new XmlNodeGenerator(schemaList, elementQName);
-
         XmlNode mainXmlNode = xmlNodeGenerator.getMainXmlNode();
 
         Assert.assertNotNull(mainXmlNode);
@@ -67,7 +58,50 @@
 
         Assert.assertEquals("gender", mainXmlNode.getChildrenList().get(0).getChildrenList().get(2).getName());
         Assert.assertEquals(0, mainXmlNode.getChildrenList().get(0).getChildrenList().get(2).getChildrenList().size());
+    }
 
+    @Test
+    public void testXMLNodeGenWithRefElement() throws Exception {
+        QName eleQName = new QName("http://test.json.axis2.apache.org", "Offices");
+        XmlNodeGenerator xmlNodeGenerator = new XmlNodeGenerator(schemaList, eleQName);
+        XmlNode mainXmlNode = xmlNodeGenerator.getMainXmlNode();
+
+        Assert.assertNotNull(mainXmlNode);
+        Assert.assertEquals(true, mainXmlNode.getChildrenList().get(0).isArray());
+        Assert.assertEquals(5, mainXmlNode.getChildrenList().get(0).getChildrenList().size());
+        Assert.assertEquals("Employees", mainXmlNode.getChildrenList().get(0).getChildrenList().get(2).getName());
+        Assert.assertEquals(false, mainXmlNode.getChildrenList().get(0).getChildrenList().get(2).isArray());
+        Assert.assertEquals("Employee", mainXmlNode.getChildrenList().get(0).getChildrenList().get(2).getChildrenList().get(0).getName());
+        Assert.assertEquals(true, mainXmlNode.getChildrenList().get(0).getChildrenList().get(2).getChildrenList().get(0).isArray());
+        Assert.assertEquals(3, mainXmlNode.getChildrenList().get(0).getChildrenList().get(2).getChildrenList().get(0).getChildrenList().size());
 
     }
+
+    @BeforeClass
+    public static void setUp() throws Exception {
+        InputStream is2 = null;
+        InputStream is3 = null;
+        try {
+            String testSchema2 = "test-resources/custom_schema/testSchema_2.xsd";
+            String testSchema3 = "test-resources/custom_schema/testSchema_3.xsd";
+            is2 = new FileInputStream(testSchema2);
+            is3 = new FileInputStream(testSchema3);
+            XmlSchemaCollection schemaCol = new XmlSchemaCollection();
+            XmlSchema schema2 = schemaCol.read(new StreamSource(is2));
+            XmlSchema schema3 = schemaCol.read(new StreamSource(is3));
+
+            schemaList = new ArrayList<XmlSchema>();
+            schemaList.add(schema2);
+            schemaList.add(schema3);
+        } finally {
+            if (is2 != null) {
+                is2.close();
+            }
+            if (is3 != null) {
+                is3.close();
+            }
+        }
+
+    }
+
 }
diff --git a/modules/json/test/org/apache/axis2/json/gson/rpc/JSONRPCIntegrationTest.java b/modules/json/test/org/apache/axis2/json/gson/rpc/JSONRPCIntegrationTest.java
index 94be38c..f5566c3 100644
--- a/modules/json/test/org/apache/axis2/json/gson/rpc/JSONRPCIntegrationTest.java
+++ b/modules/json/test/org/apache/axis2/json/gson/rpc/JSONRPCIntegrationTest.java
@@ -19,31 +19,23 @@
 
 package org.apache.axis2.json.gson.rpc;
 
-import junit.framework.Assert;
 import org.apache.axis2.json.gson.UtilTest;
-import org.apache.axis2.testutils.UtilServer;
-import org.junit.AfterClass;
-import org.junit.BeforeClass;
+import org.apache.axis2.testutils.Axis2Server;
+import org.junit.Assert;
+import org.junit.ClassRule;
 import org.junit.Test;
 
 public class JSONRPCIntegrationTest {
+    @ClassRule
+    public static Axis2Server server = new Axis2Server("target/repo/gson");
+    
     String contentType = "application/json";
     String charSet = "UTF-8";
 
-    @BeforeClass
-    public static void startTestServer() throws Exception {
-        UtilServer.start("test-repository/gson", "test-repository/gson/axis2.xml");
-    }
-
-    @AfterClass
-    public static void stopTestServer() throws Exception {
-        UtilServer.stop();
-    }
-
     @Test
     public void testJsonRpcMessageReceiver() throws Exception {
         String jsonRequest = "{\"echoPerson\":[{\"arg0\":{\"name\":\"Simon\",\"age\":\"35\",\"gender\":\"male\"}}]}";
-        String echoPersonUrl = "http://localhost:" + UtilServer.TESTING_PORT +"/axis2/services/JSONPOJOService/echoPerson";
+        String echoPersonUrl = server.getEndpoint("JSONPOJOService") + "echoPerson";
         String expectedResponse = "{\"response\":{\"name\":\"Simon\",\"age\":\"35\",\"gender\":\"male\"}}";
         String response = UtilTest.post(jsonRequest, echoPersonUrl, contentType, charSet);
         Assert.assertNotNull(response);
@@ -53,7 +45,7 @@
     @Test
     public void testJsonInOnlyRPCMessageReceiver() throws Exception {
         String jsonRequest = "{\"ping\":[{\"arg0\":{\"name\":\"Simon\",\"age\":\"35\",\"gender\":\"male\"}}]}";
-        String echoPersonUrl = "http://localhost:" + UtilServer.TESTING_PORT +"/axis2/services/JSONPOJOService/ping";
+        String echoPersonUrl = server.getEndpoint("JSONPOJOService") + "ping";
         String response = UtilTest.post(jsonRequest, echoPersonUrl, contentType, charSet);
         Assert.assertEquals("", response);
     }
diff --git a/modules/kernel/conf/axis2.xml b/modules/kernel/conf/axis2.xml
index 71c3e3f..80b6923 100644
--- a/modules/kernel/conf/axis2.xml
+++ b/modules/kernel/conf/axis2.xml
@@ -232,7 +232,7 @@
     <transportSender name="local"
                      class="org.apache.axis2.transport.local.LocalTransportSender"/>
     <transportSender name="http"
-                     class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
+                     class="org.apache.axis2.transport.http.impl.httpclient4.HTTPClient4TransportSender">
         <parameter name="PROTOCOL">HTTP/1.1</parameter>
         <parameter name="Transfer-Encoding">chunked</parameter>
 
@@ -241,7 +241,7 @@
     </transportSender>
 
     <transportSender name="https"
-                     class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
+                     class="org.apache.axis2.transport.http.impl.httpclient4.HTTPClient4TransportSender">
         <parameter name="PROTOCOL">HTTP/1.1</parameter>
         <parameter name="Transfer-Encoding">chunked</parameter>
     </transportSender>
diff --git a/modules/kernel/conf/log4j.properties b/modules/kernel/conf/log4j.properties
index 2fa4429..4814a72 100755
--- a/modules/kernel/conf/log4j.properties
+++ b/modules/kernel/conf/log4j.properties
@@ -23,7 +23,6 @@
 
 # Set the enterprise logger priority to FATAL
 log4j.logger.org.apache.axis2.enterprise=FATAL
-log4j.logger.de.hunsicker.jalopy.io=FATAL
 log4j.logger.httpclient.wire.header=FATAL
 log4j.logger.org.apache.commons.httpclient=FATAL
 
@@ -37,4 +36,4 @@
 log4j.appender.LOGFILE.File=axis2.log
 log4j.appender.LOGFILE.Append=true
 log4j.appender.LOGFILE.layout=org.apache.log4j.PatternLayout
-log4j.appender.LOGFILE.layout.ConversionPattern=%d [%t] %-5p %c %x - %m%n
\ No newline at end of file
+log4j.appender.LOGFILE.layout.ConversionPattern=%d [%t] %-5p %c %x - %m%n
diff --git a/modules/kernel/pom.xml b/modules/kernel/pom.xml
index b5bbe4c..ce25a9b 100644
--- a/modules/kernel/pom.xml
+++ b/modules/kernel/pom.xml
@@ -23,9 +23,9 @@
     <modelVersion>4.0.0</modelVersion>
     <parent>
         <groupId>org.apache.axis2</groupId>
-        <artifactId>axis2-parent</artifactId>
-        <version>1.7.0-SNAPSHOT</version>
-        <relativePath>../parent/pom.xml</relativePath>
+        <artifactId>axis2</artifactId>
+        <version>1.8.0-SNAPSHOT</version>
+        <relativePath>../../pom.xml</relativePath>
     </parent>
     <artifactId>axis2-kernel</artifactId>
     <name>Apache Axis2 - Kernel</name>
@@ -71,11 +71,7 @@
         </dependency>
         <dependency>
             <groupId>org.apache.woden</groupId>
-            <artifactId>woden-impl-commons</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.woden</groupId>
-            <artifactId>woden-impl-dom</artifactId>
+            <artifactId>woden-core</artifactId>
         </dependency>
         <dependency>
             <groupId>commons-logging</groupId>
@@ -100,8 +96,18 @@
             <scope>test</scope>
 	    </dependency>
         <dependency>
-            <groupId>org.apache.geronimo.specs</groupId>
-            <artifactId>geronimo-javamail_1.4_spec</artifactId>
+            <groupId>com.google.truth</groupId>
+            <artifactId>truth</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>com.sun.mail</groupId>
+            <artifactId>javax.mail</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.mockito</groupId>
+            <artifactId>mockito-core</artifactId>
             <scope>test</scope>
         </dependency>
     </dependencies>
@@ -236,6 +242,7 @@
                             </descriptors>
                             <finalName>test-zip</finalName>
                             <appendAssemblyId>false</appendAssemblyId>
+                            <attach>false</attach>
                         </configuration>
                     </execution>
                 </executions>
diff --git a/modules/kernel/src/org/apache/axis2/AxisFault.java b/modules/kernel/src/org/apache/axis2/AxisFault.java
index 7b37431..ec9b1c5 100644
--- a/modules/kernel/src/org/apache/axis2/AxisFault.java
+++ b/modules/kernel/src/org/apache/axis2/AxisFault.java
@@ -40,6 +40,7 @@
 import java.util.Iterator;
 import java.util.List;
 import java.util.ListIterator;
+import java.util.Locale;
 
 /**
  * An exception which maps cleanly to a SOAP fault.
@@ -230,18 +231,18 @@
         }
 
         if (soapFaultReason != null) {
-            message = soapFaultReason.getText();
+            message = soapFaultReason.getFaultReasonText(Locale.ENGLISH);
         }
 
         if (soapFaultCode != null) {
             // This works the same regardless of SOAP version
-            faultCode = soapFaultCode.getTextAsQName();
+            faultCode = soapFaultCode.getValueAsQName();
 
             SOAPFaultSubCode subCode = soapFaultCode.getSubCode();
             if (subCode != null) {
                 faultSubCodes = new ArrayList<QName>();
                 while (subCode != null) {
-                    faultSubCodes.add(subCode.getValue().getTextAsQName());
+                    faultSubCodes.add(subCode.getValueAsQName());
                     subCode = subCode.getSubCode();
                 }
             }
@@ -380,7 +381,7 @@
         if (faultReasonList.size() >= 1) {
             return faultReasonList.get(0).getText();
         } else if (soapFaultReason != null) {
-            return soapFaultReason.getText();
+            return soapFaultReason.getFaultReasonText(Locale.ENGLISH);
         }
 
         return null;
diff --git a/modules/kernel/src/org/apache/axis2/Constants.java b/modules/kernel/src/org/apache/axis2/Constants.java
index f419773..7d950dc 100644
--- a/modules/kernel/src/org/apache/axis2/Constants.java
+++ b/modules/kernel/src/org/apache/axis2/Constants.java
@@ -20,6 +20,10 @@
 
 package org.apache.axis2;
 
+import org.apache.axiom.om.OMXMLParserWrapper;
+import org.apache.axis2.context.MessageContext;
+import org.apache.axis2.transport.TransportUtils;
+
 /**
  * Class Constants
  */
@@ -160,7 +164,6 @@
      */
     public static final String SINGLE_SERVICE = "singleservice";
 
-    public static final String SERVICE_MAP = "servicemap";
     public static final String SERVICE_ROOT = "serviceRoot";
     public static final String SERVICE_PATH = "servicePath";
     public static final String SERVICE_HANDLERS = "serviceHandlers";
@@ -194,7 +197,9 @@
     public static final String VALUE_TRUE = "true";
     public static final String VALUE_FALSE = "false";
     public static final String VALUE_OPTIONAL = "optional";
+    @Deprecated
     public static final String TESTING_PATH = "target/test-resources/";
+    @Deprecated
     public static final String TESTING_REPOSITORY = TESTING_PATH + "samples";
     public static final char SERVICE_NAME_SPLIT_CHAR = ':';
     public static final String SERVICE_GROUP_ID = "ServiceGroupId";
@@ -258,12 +263,11 @@
     
     
     /**
-     * On inbound requests, the detachable input stream can be queried to get
-     * the inbound length.  It can also be "detached" from the inbound http stream
-     * to allow resources to be freed.
+     * The {@link OMXMLParserWrapper Axiom builder} of the message in a message context.
+     * 
+     * @see TransportUtils#detachInputStream(MessageContext)
      */
-    public static final String DETACHABLE_INPUT_STREAM = 
-        "org.apache.axiom.om.util.DetachableInputStream";
+    public static final String BUILDER = OMXMLParserWrapper.class.getName();
 
     /** SOAP Role Configuration */
     public static final String SOAP_ROLE_CONFIGURATION_ELEMENT = "SOAPRoleConfiguration";
diff --git a/modules/kernel/src/org/apache/axis2/addressing/AddressingConstants.java b/modules/kernel/src/org/apache/axis2/addressing/AddressingConstants.java
index 8687e66..2530942 100644
--- a/modules/kernel/src/org/apache/axis2/addressing/AddressingConstants.java
+++ b/modules/kernel/src/org/apache/axis2/addressing/AddressingConstants.java
@@ -116,6 +116,12 @@
     static final String REFERENCE_PARAMETER_PARAMETER = "referenceParameters";
 
     /**
+     * Used to attach any &lt;wsid:Identity> OMElement found in an EPR embedded in a WSDL to an
+     * AxisEndpoint object.
+     */
+    static final String ADDRESSING_IDENTITY_PARAMETER = "addressingIdentity";
+    
+    /**
      * This parameter is used to decide whether the reference parameters in an inbound request
      * message are to be processed or not.
      */
@@ -145,6 +151,8 @@
     static final String IDENTITY_KEY_INFO = "KeyInfo";
     static final String IDENTITY_X509_DATA = "X509Data";
     static final String IDENTITY_X509_CERT = "X509Certificate";
+    static final String IDENTITY_SPN = "Spn";
+    static final String IDENTITY_UPN = "Upn";
     
     static final String IDENTITY_PARAMETER = "WSAddressingAndIdentity";
     
@@ -152,6 +160,8 @@
     static final QName QNAME_IDENTITY_KEY_INFO = new QName(XML_SIG_NS,IDENTITY_KEY_INFO,XML_SIG_PREFIX);
     static final QName QNAME_IDENTITY_X509_DATA = new QName(XML_SIG_NS,IDENTITY_X509_DATA,XML_SIG_PREFIX);
     static final QName QNAME_IDENTITY_X509_CERT = new QName(XML_SIG_NS,IDENTITY_X509_CERT,XML_SIG_PREFIX);
+    static final QName QNAME_IDENTITY_SPN = new QName(ADDRESSING_IDENTITY_NS, IDENTITY_SPN, ADDRESSING_IDENTITY_PREFIX);
+    static final QName QNAME_IDENTITY_UPN = new QName(ADDRESSING_IDENTITY_NS, IDENTITY_UPN, ADDRESSING_IDENTITY_PREFIX);
     
     interface Final {
 
diff --git a/modules/kernel/src/org/apache/axis2/addressing/AddressingHelper.java b/modules/kernel/src/org/apache/axis2/addressing/AddressingHelper.java
index 61fe9b5..6a5b61e 100644
--- a/modules/kernel/src/org/apache/axis2/addressing/AddressingHelper.java
+++ b/modules/kernel/src/org/apache/axis2/addressing/AddressingHelper.java
@@ -19,10 +19,14 @@
 
 package org.apache.axis2.addressing;
 
+import org.apache.axiom.om.OMElement;
 import org.apache.axis2.AxisFault;
 import org.apache.axis2.Constants;
 import org.apache.axis2.context.MessageContext;
+import org.apache.axis2.deployment.DeploymentConstants;
+import org.apache.axis2.description.AxisBinding;
 import org.apache.axis2.description.AxisDescription;
+import org.apache.axis2.description.AxisEndpoint;
 import org.apache.axis2.description.AxisOperation;
 import org.apache.axis2.description.Parameter;
 import org.apache.axis2.util.LoggingControl;
@@ -328,5 +332,52 @@
                 }
             }
         }
-	}
+    }
+    
+    /**
+     * @param endpoint
+     *            The endpoint to check for a
+     *            {@link AddressingConstants#ADDRESSING_IDENTITY_PARAMETER}. Must not be
+     *            <code>null</code>
+     * @return The Addressing identity OMElement ({@link AddressingConstants#QNAME_IDENTITY}) if
+     *         such is configured on the specified <code>endpoint</code> or its <code>binding</code>
+     *         , or <code>null</code> if not available. This will normally be available if the
+     *         service was created from a WSDL which contains a WS-Addressing endpoint reference
+     *         with an &lt;wsid:Identity&gt; extension either on the port or corresponding binding.
+     */
+    public static OMElement getAddressingIdentityParameterValue(AxisEndpoint endpoint) {
+        OMElement identityElement = (OMElement) endpoint.getParameterValue(AddressingConstants.ADDRESSING_IDENTITY_PARAMETER);
+        
+        //unwrap identity element if wrapped in a parameter element
+        //NB: in revision 1371373 wrapping of parameter value when parsing parameters from services.xml has been removed
+        if (identityElement != null && identityElement.getLocalName().equals(DeploymentConstants.TAG_PARAMETER)) {
+            identityElement = identityElement.getFirstElement();
+        }
+        
+        if (identityElement != null) {
+            if (LoggingControl.debugLoggingAllowed && log.isDebugEnabled()) {
+                log.debug(String.format("getAddressingIdentityParameterValue: %s parameter from AxisEndpoint '%s': %s", AddressingConstants.ADDRESSING_IDENTITY_PARAMETER,
+                    endpoint.getName(), identityElement.toString()));
+            }
+            
+            return identityElement;
+        }
+        
+        AxisBinding binding = endpoint.getBinding();
+        if (binding != null) {
+            identityElement = (OMElement) binding.getParameterValue(AddressingConstants.ADDRESSING_IDENTITY_PARAMETER);
+        }
+        
+        //unwrap identity element if wrapped in a parameter element
+        if (identityElement != null && identityElement.getLocalName().equals(DeploymentConstants.TAG_PARAMETER)) {
+            identityElement = identityElement.getFirstElement();
+        }
+        
+        if (LoggingControl.debugLoggingAllowed && log.isDebugEnabled()) {
+            log.debug(String.format("getAddressingIdentityParameterValue: %s parameter from AxisBinding '%s': %s", AddressingConstants.ADDRESSING_IDENTITY_PARAMETER,
+                binding.getName(), identityElement == null ? "N/A" : identityElement.toString()));
+        }
+        
+        return identityElement;
+    }
 }
diff --git a/modules/kernel/src/org/apache/axis2/builder/ApplicationXMLBuilder.java b/modules/kernel/src/org/apache/axis2/builder/ApplicationXMLBuilder.java
index a5574a0..da9e8de 100644
--- a/modules/kernel/src/org/apache/axis2/builder/ApplicationXMLBuilder.java
+++ b/modules/kernel/src/org/apache/axis2/builder/ApplicationXMLBuilder.java
@@ -22,7 +22,6 @@
 import org.apache.axiom.om.OMAbstractFactory;
 import org.apache.axiom.om.OMElement;
 import org.apache.axiom.om.OMXMLParserWrapper;
-import org.apache.axiom.om.util.DetachableInputStream;
 import org.apache.axiom.soap.SOAPBody;
 import org.apache.axiom.soap.SOAPEnvelope;
 import org.apache.axiom.soap.SOAPFactory;
@@ -49,13 +48,8 @@
         SOAPEnvelope soapEnvelope = soapFactory.getDefaultEnvelope();
         if (inputStream != null) {
             try {
-                // Apply a detachable inputstream.  This can be used later
-                // to (a) get the length of the incoming message or (b)
-                // free transport resources.
-                DetachableInputStream is = new DetachableInputStream(inputStream);
-                messageContext.setProperty(Constants.DETACHABLE_INPUT_STREAM, is);
                 
-                PushbackInputStream pushbackInputStream = new PushbackInputStream(is);
+                PushbackInputStream pushbackInputStream = new PushbackInputStream(inputStream);
                 int b;
                 if ((b = pushbackInputStream.read()) > 0) {
                     pushbackInputStream.unread(b);
@@ -63,6 +57,7 @@
                             BuilderUtil.createPOXBuilder(pushbackInputStream,
                                     (String) messageContext.getProperty(
                                             Constants.Configuration.CHARACTER_SET_ENCODING));
+                    messageContext.setProperty(Constants.BUILDER, builder);
                     OMElement documentElement = builder.getDocumentElement(true);
                     SOAPBody body = soapEnvelope.getBody();
                     body.addChild(documentElement);
diff --git a/modules/kernel/src/org/apache/axis2/builder/Builder.java b/modules/kernel/src/org/apache/axis2/builder/Builder.java
index d2e0218..20e0a30 100644
--- a/modules/kernel/src/org/apache/axis2/builder/Builder.java
+++ b/modules/kernel/src/org/apache/axis2/builder/Builder.java
@@ -22,6 +22,7 @@
 import org.apache.axiom.om.OMElement;
 import org.apache.axis2.AxisFault;
 import org.apache.axis2.context.MessageContext;
+import org.apache.axis2.util.MessageProcessorSelector;
 
 import java.io.InputStream;
 
@@ -30,7 +31,7 @@
  * Message builders are used by {@link org.apache.axis2.transport.TransportListener}
  * implementations to process the raw payload of the message and turn it into SOAP.
  * Transports should use
- * {@link org.apache.axis2.builder.BuilderUtil#getBuilderFromSelector(String, MessageContext)}
+ * {@link MessageProcessorSelector#getMessageBuilder(String, MessageContext)}
  * to select the message builder appropriate for the content type of the message.
  */
 public interface Builder {
diff --git a/modules/kernel/src/org/apache/axis2/builder/BuilderUtil.java b/modules/kernel/src/org/apache/axis2/builder/BuilderUtil.java
index 6a83e82..99be383 100644
--- a/modules/kernel/src/org/apache/axis2/builder/BuilderUtil.java
+++ b/modules/kernel/src/org/apache/axis2/builder/BuilderUtil.java
@@ -29,10 +29,7 @@
 import org.apache.axiom.om.OMText;
 import org.apache.axiom.om.OMXMLBuilderFactory;
 import org.apache.axiom.om.OMXMLParserWrapper;
-import org.apache.axiom.om.impl.builder.StAXBuilder;
-import org.apache.axiom.om.impl.builder.StAXOMBuilder;
 import org.apache.axiom.om.util.StAXParserConfiguration;
-import org.apache.axiom.om.util.StAXUtils;
 import org.apache.axiom.soap.SOAP11Constants;
 import org.apache.axiom.soap.SOAP12Constants;
 import org.apache.axiom.soap.SOAPBody;
@@ -41,7 +38,6 @@
 import org.apache.axiom.soap.SOAPFactory;
 import org.apache.axiom.soap.SOAPModelBuilder;
 import org.apache.axiom.soap.SOAPProcessingException;
-import org.apache.axiom.soap.impl.builder.StAXSOAPModelBuilder;
 import org.apache.axis2.AxisFault;
 import org.apache.axis2.Constants;
 import org.apache.axis2.context.MessageContext;
@@ -59,19 +55,10 @@
 import org.apache.commons.io.IOUtils;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.apache.ws.commons.schema.XmlSchemaAll;
-import org.apache.ws.commons.schema.XmlSchemaComplexType;
-import org.apache.ws.commons.schema.XmlSchemaElement;
-import org.apache.ws.commons.schema.XmlSchemaParticle;
-import org.apache.ws.commons.schema.XmlSchemaSequence;
-import org.apache.ws.commons.schema.XmlSchemaSequenceMember;
-import org.apache.ws.commons.schema.XmlSchemaType;
+import org.apache.ws.commons.schema.*;
 
 import javax.activation.DataHandler;
 import javax.xml.namespace.QName;
-import javax.xml.parsers.FactoryConfigurationError;
-import javax.xml.stream.XMLStreamException;
-import javax.xml.stream.XMLStreamReader;
 import java.io.BufferedReader;
 import java.io.IOException;
 import java.io.InputStream;
@@ -161,7 +148,7 @@
                             XmlSchemaAll sequence = (XmlSchemaAll) particle;
                             // now we need to know some information from the binding operation.
 
-                            for (XmlSchemaSequenceMember sequenceMember : sequence.getItems()) {
+                            for (XmlSchemaAllMember sequenceMember : sequence.getItems()) {
 
                                 XmlSchemaElement innerElement = (XmlSchemaElement) sequenceMember;
                                 QName qName = innerElement.getQName();
@@ -267,22 +254,6 @@
     }
 
     /**
-     * @deprecated Please use {@link #createPOXBuilder(InputStream, String)} to enable usage of non
-     *             standard Axiom implementations.
-     */
-    public static StAXBuilder getPOXBuilder(InputStream inStream, String charSetEnc)
-            throws XMLStreamException {
-        StAXBuilder builder;
-        // We use the StAXParserConfiguration.SOAP here as well because we don't want to allow
-        // document type declarations (that potentially reference external entities), even
-        // in plain XML messages.
-        XMLStreamReader xmlreader =
-                StAXUtils.createXMLStreamReader(StAXParserConfiguration.SOAP, inStream, charSetEnc);
-        builder = new StAXOMBuilder(xmlreader);
-        return builder;
-    }
-
-    /**
      * Create a builder suitable for an XML message. This method uses
      * {@link StAXParserConfiguration#SOAP} to disallow document type declarations (that potentially
      * reference external entities).
@@ -464,35 +435,7 @@
         return value;
     }
 
-    public static StAXBuilder getAttachmentsBuilder(MessageContext msgContext,
-                                                    InputStream inStream, String contentTypeString,
-                                                    boolean isSOAP)
-            throws OMException, XMLStreamException, FactoryConfigurationError {
-        StAXBuilder builder = null;
-        XMLStreamReader streamReader;
-
-        Attachments attachments = createAttachmentsMap(msgContext, inStream, contentTypeString);
-        String charSetEncoding = getCharSetEncoding(attachments.getRootPartContentType());
-
-        if ((charSetEncoding == null)
-            || "null".equalsIgnoreCase(charSetEncoding)) {
-            charSetEncoding = MessageContext.UTF_8;
-        }
-        msgContext.setProperty(Constants.Configuration.CHARACTER_SET_ENCODING,
-                               charSetEncoding);
-
-        streamReader = StAXUtils.createXMLStreamReader(attachments.getRootPartInputStream(), charSetEncoding);
-
-        // Setting the Attachments map to new SwA API
-        msgContext.setAttachmentMap(attachments);
-
-        String soapEnvelopeNamespaceURI = getEnvelopeNamespace(contentTypeString);
-
-        return MessageProcessorSelector.getAttachmentBuilder(msgContext, attachments, streamReader, soapEnvelopeNamespaceURI, isSOAP);
-
-    }
-
-    protected static Attachments createAttachmentsMap(MessageContext msgContext,
+    public static Attachments createAttachmentsMap(MessageContext msgContext,
                                                       InputStream inStream,
                                                       String contentTypeString) {
         boolean fileCacheForAttachments = isAttachmentsCacheEnabled(msgContext);
@@ -611,27 +554,6 @@
     }
 
     /**
-     * Utility method to get a StAXBuilder
-     *
-     * @param in an InputStream
-     * @return a StAXSOAPModelBuilder for the given InputStream
-     * @throws XMLStreamException
-     * @deprecated If some one really need this method, please shout.
-     */
-    public static StAXBuilder getBuilder(Reader in) throws XMLStreamException {
-        XMLStreamReader xmlreader = StAXUtils.createXMLStreamReader(in);
-        return new StAXSOAPModelBuilder(xmlreader, null);
-    }
-
-    /**
-     * @deprecated Please use {@link OMXMLBuilderFactory#createOMBuilder(InputStream)} instead.
-     */
-    public static StAXBuilder getBuilder(InputStream inStream) throws XMLStreamException {
-        XMLStreamReader xmlReader = StAXUtils.createXMLStreamReader(inStream);
-        return new StAXOMBuilder(xmlReader);
-    }
-
-    /**
      * Create a SOAP model builder. This method delegates to
      * {@link OMXMLBuilderFactory#createSOAPModelBuilder(InputStream, String)} but generates
      * additional logging if an error occurs.
@@ -659,132 +581,11 @@
     }
 
     /**
-     * @deprecated Please use {@link #createSOAPModelBuilder(InputStream, String)} to enable usage
-     *             of non standard Axiom implementations.
-     */
-    public static StAXBuilder getBuilder(InputStream inStream, String charSetEnc)
-            throws XMLStreamException {
-        XMLStreamReader xmlReader = StAXUtils.createXMLStreamReader(inStream, charSetEnc);
-        try {
-            return new StAXSOAPModelBuilder(xmlReader);
-        } catch (OMException e) {
-            log.info("OMException in getSOAPBuilder", e);
-            try {
-                log.info("Remaining input stream :[" +
-                         new String(IOUtils.toByteArray(inStream), charSetEnc) + "]");
-            } catch (IOException e1) {
-                // Nothing here?
-            }
-            throw e;
-        }
-    }
-
-    /**
-     * @deprecated Please use {@link #createSOAPModelBuilder(InputStream, String)} to enable usage
-     *             of non standard Axiom implementations.
-     */
-    public static StAXBuilder getSOAPBuilder(InputStream inStream) throws XMLStreamException {
-        XMLStreamReader xmlReader = StAXUtils.createXMLStreamReader(inStream);
-        try {
-            return new StAXSOAPModelBuilder(xmlReader);
-        } catch (OMException e) {
-            log.info("OMException in getSOAPBuilder", e);
-            try {
-                log.info("Remaining input stream :[" +
-                         new String(IOUtils.toByteArray(inStream)) + "]");
-            } catch (IOException e1) {
-                // Nothing here?
-            }
-            throw e;
-        }
-    }
-
-    /**
-     * @deprecated Please use {@link #createSOAPModelBuilder(InputStream, String)} to enable usage
-     *             of non standard Axiom implementations.
-     */
-    public static StAXBuilder getSOAPBuilder(InputStream inStream, String charSetEnc)
-            throws XMLStreamException {
-        XMLStreamReader xmlReader = StAXUtils.createXMLStreamReader(inStream, charSetEnc);
-        try {
-            return new StAXSOAPModelBuilder(xmlReader);
-        } catch (OMException e) {
-            log.info("OMException in getSOAPBuilder", e);
-            try {
-                log.info("Remaining input stream :[" +
-                         new String(IOUtils.toByteArray(inStream), charSetEnc) + "]");
-            } catch (IOException e1) {
-                // Nothing here?
-            }
-            throw e;
-        }
-    }
-
-    public static StAXBuilder getBuilder(SOAPFactory soapFactory, InputStream in, String charSetEnc)
-            throws XMLStreamException {
-        StAXBuilder builder;
-        XMLStreamReader xmlreader = StAXUtils.createXMLStreamReader(in, charSetEnc);
-        builder = new StAXOMBuilder(soapFactory, xmlreader);
-        return builder;
-    }
-
-    /**
-     * Initial work for a builder selector which selects the builder for a given message format
-     * based on the the content type of the recieved message. content-type to builder mapping can be
-     * specified through the Axis2.xml.
-     *
-     * @param type       content-type
-     * @param msgContext the active MessageContext
-     * @return the builder registered against the given content-type
-     * @throws AxisFault
+     * @deprecated Use {@link MessageProcessorSelector#getMessageBuilder(String, MessageContext)}.
      */
     public static Builder getBuilderFromSelector(String type, MessageContext msgContext)
             throws AxisFault {
-    	boolean useFallbackBuilder = false;
-        AxisConfiguration configuration =
-                msgContext.getConfigurationContext().getAxisConfiguration();
-        Parameter useFallbackParameter = configuration.getParameter(Constants.Configuration.USE_DEFAULT_FALLBACK_BUILDER);
-        if (useFallbackParameter !=null){
-        	useFallbackBuilder = JavaUtils.isTrueExplicitly(useFallbackParameter.getValue(),useFallbackBuilder);
-        }
-        Builder builder = configuration.getMessageBuilder(type,useFallbackBuilder);
-        if (builder != null) {
-            // Check whether the request has a Accept header if so use that as the response
-            // message type.
-            // If thats not present,
-            // Setting the received content-type as the messageType to make
-            // sure that we respond using the received message serialization format.
-
-            Object contentNegotiation = configuration
-                    .getParameterValue(Constants.Configuration.ENABLE_HTTP_CONTENT_NEGOTIATION);
-            if (JavaUtils.isTrueExplicitly(contentNegotiation)) {
-                Map transportHeaders =
-                        (Map)msgContext.getProperty(MessageContext.TRANSPORT_HEADERS);
-                if (transportHeaders != null) {
-                    String acceptHeader = (String)transportHeaders.get(HTTPConstants.HEADER_ACCEPT);
-                    if (acceptHeader != null) {
-                        int index = acceptHeader.indexOf(";");
-                        if (index > 0) {
-                            acceptHeader = acceptHeader.substring(0, index);
-                        }
-                        String[] strings = acceptHeader.split(",");
-                        for (String string : strings) {
-                            String accept = string.trim();
-                            // We dont want dynamic content negotoatin to work on text.xml as its
-                            // ambiguos as to whether the user requests SOAP 1.1 or POX response
-                            if (!HTTPConstants.MEDIA_TYPE_TEXT_XML.equals(accept) &&
-                                configuration.getMessageFormatter(accept) != null) {
-                                type = string;
-                                break;
-                            }
-                        }
-                    }
-                }
-            }
-
-            msgContext.setProperty(Constants.Configuration.MESSAGE_TYPE, type);
-        }
-        return builder;
+        return MessageProcessorSelector.getMessageBuilder(type, msgContext);
     }
 
     public static void validateSOAPVersion(String soapNamespaceURIFromTransport,
diff --git a/modules/kernel/src/org/apache/axis2/builder/DataSourceBuilder.java b/modules/kernel/src/org/apache/axis2/builder/DataSourceBuilder.java
index c3ab90b..4c96eff 100644
--- a/modules/kernel/src/org/apache/axis2/builder/DataSourceBuilder.java
+++ b/modules/kernel/src/org/apache/axis2/builder/DataSourceBuilder.java
@@ -29,13 +29,13 @@
 import javax.xml.stream.XMLStreamWriter;

 

 import org.apache.axiom.attachments.ByteArrayDataSource;

-import org.apache.axiom.attachments.impl.BufferUtils;

 import org.apache.axiom.om.OMAbstractFactory;

 import org.apache.axiom.om.OMDataSource;

 import org.apache.axiom.om.OMElement;

 import org.apache.axiom.om.OMFactory;

 import org.apache.axiom.om.OMNamespace;

 import org.apache.axiom.om.OMOutputFormat;

+import org.apache.axiom.util.io.IOUtils;

 import org.apache.axis2.AxisFault;

 import org.apache.axis2.context.MessageContext;

 

@@ -51,7 +51,7 @@
         byte[] bytes;

         try {

             ByteArrayOutputStream baos = new ByteArrayOutputStream(); 

-            BufferUtils.inputStream2OutputStream(inputStream, baos);

+            IOUtils.copy(inputStream, baos, -1);

             baos.flush();

             bytes = baos.toByteArray();

         } catch (IOException e) {

diff --git a/modules/kernel/src/org/apache/axis2/builder/MTOMBuilder.java b/modules/kernel/src/org/apache/axis2/builder/MTOMBuilder.java
index 4ddb79d..09e0e0a 100644
--- a/modules/kernel/src/org/apache/axis2/builder/MTOMBuilder.java
+++ b/modules/kernel/src/org/apache/axis2/builder/MTOMBuilder.java
@@ -47,6 +47,7 @@
             messageContext.setAttachmentMap(attachments);
             
             SOAPModelBuilder builder = OMXMLBuilderFactory.createSOAPModelBuilder(attachments);
+            messageContext.setProperty(Constants.BUILDER, builder);
             OMDocument document = builder.getDocument();
             String charsetEncoding = document.getCharsetEncoding();
             if (charsetEncoding == null) {
diff --git a/modules/kernel/src/org/apache/axis2/builder/SOAPBuilder.java b/modules/kernel/src/org/apache/axis2/builder/SOAPBuilder.java
index 338c75c..7c4167f 100644
--- a/modules/kernel/src/org/apache/axis2/builder/SOAPBuilder.java
+++ b/modules/kernel/src/org/apache/axis2/builder/SOAPBuilder.java
@@ -23,7 +23,6 @@
 import org.apache.axiom.om.OMElement;
 import org.apache.axiom.om.OMXMLBuilderFactory;
 import org.apache.axiom.om.OMXMLParserWrapper;
-import org.apache.axiom.om.util.DetachableInputStream;
 import org.apache.axiom.soap.SOAPEnvelope;
 import org.apache.axis2.AxisFault;
 import org.apache.axis2.Constants;
@@ -40,16 +39,11 @@
             String charSetEncoding = (String) messageContext
                     .getProperty(Constants.Configuration.CHARACTER_SET_ENCODING);
             
-            // Apply a detachable inputstream.  This can be used later
-            // to (a) get the length of the incoming message or (b)
-            // free transport resources.
-            DetachableInputStream is = new DetachableInputStream(inputStream);
-            messageContext.setProperty(Constants.DETACHABLE_INPUT_STREAM, is);
-            
             // createSOAPModelBuilder takes care of configuring the underlying parser to
             // avoid the security issue described in CVE-2010-1632
-            OMXMLParserWrapper builder = OMXMLBuilderFactory.createSOAPModelBuilder(is,
+            OMXMLParserWrapper builder = OMXMLBuilderFactory.createSOAPModelBuilder(inputStream,
                     charSetEncoding);
+            messageContext.setProperty(Constants.BUILDER, builder);
             SOAPEnvelope envelope = (SOAPEnvelope) builder.getDocumentElement();
             BuilderUtil
                     .validateSOAPVersion(BuilderUtil.getEnvelopeNamespace(contentType), envelope);
diff --git a/modules/kernel/src/org/apache/axis2/classloader/AbstractResourceHandle.java b/modules/kernel/src/org/apache/axis2/classloader/AbstractResourceHandle.java
deleted file mode 100644
index fbadb62..0000000
--- a/modules/kernel/src/org/apache/axis2/classloader/AbstractResourceHandle.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/**
- *  Licensed to the Apache Software Foundation (ASF) under one or more
- *  contributor license agreements.  See the NOTICE file distributed with
- *  this work for additional information regarding copyright ownership.
- *  The ASF licenses this file to You under the Apache License, Version 2.0
- *  (the "License"); you may not use this file except in compliance with
- *  the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing, software
- *  distributed under the License is distributed on an "AS IS" BASIS,
- *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *  See the License for the specific language governing permissions and
- *  limitations under the License.
- */
-package org.apache.axis2.classloader;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.security.cert.Certificate;
-import java.util.jar.Attributes;
-import java.util.jar.Manifest;
-
-/**
- * @version $Rev$ $Date$
- */
-public abstract class AbstractResourceHandle implements ResourceHandle {
-    public byte[] getBytes() throws IOException {
-        InputStream in = getInputStream();
-        try {
-            byte[] bytes = IoUtil.getBytes(in);
-            return bytes;
-        } finally {
-            IoUtil.close(in);
-        }
-    }
-
-    public Manifest getManifest() throws IOException {
-        return null;
-    }
-
-    public Certificate[] getCertificates() {
-        return null;
-    }
-
-    public Attributes getAttributes() throws IOException {
-        Manifest m = getManifest();
-        if (m == null) {
-            return null;
-        }
-
-        String entry = getUrl().getFile();
-        return m.getAttributes(entry);
-    }
-
-    public void close() {
-    }
-
-    public String toString() {
-        return "[" + getName() + ": " + getUrl() + "; code source: " + getCodeSourceUrl() + "]";
-    }
-}
diff --git a/modules/kernel/src/org/apache/axis2/classloader/AbstractUrlResourceLocation.java b/modules/kernel/src/org/apache/axis2/classloader/AbstractUrlResourceLocation.java
deleted file mode 100644
index 24b5640..0000000
--- a/modules/kernel/src/org/apache/axis2/classloader/AbstractUrlResourceLocation.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/**
- *  Licensed to the Apache Software Foundation (ASF) under one or more
- *  contributor license agreements.  See the NOTICE file distributed with
- *  this work for additional information regarding copyright ownership.
- *  The ASF licenses this file to You under the Apache License, Version 2.0
- *  (the "License"); you may not use this file except in compliance with
- *  the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing, software
- *  distributed under the License is distributed on an "AS IS" BASIS,
- *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *  See the License for the specific language governing permissions and
- *  limitations under the License.
- */
-package org.apache.axis2.classloader;
-
-import java.net.URL;
-
-/**
- * @version $Rev$ $Date$
- */
-public abstract class AbstractUrlResourceLocation implements ResourceLocation {
-    private final URL codeSource;
-
-    public AbstractUrlResourceLocation(URL codeSource) {
-        this.codeSource = codeSource;
-    }
-
-    public final URL getCodeSource() {
-        return codeSource;
-    }
-
-    public void close() {
-    }
-
-    public final boolean equals(Object o) {
-        if (this == o) return true;
-        if (o == null || getClass() != o.getClass()) return false;
-
-        AbstractUrlResourceLocation that = (AbstractUrlResourceLocation) o;
-        return codeSource.equals(that.codeSource);
-    }
-
-    public final int hashCode() {
-        return codeSource.hashCode();
-    }
-
-    public final String toString() {
-        return "[" + getClass().getName() + ": " + codeSource + "]";
-    }
-}
diff --git a/modules/kernel/src/org/apache/axis2/classloader/DirectoryResourceHandle.java b/modules/kernel/src/org/apache/axis2/classloader/DirectoryResourceHandle.java
deleted file mode 100644
index 4dd69fd..0000000
--- a/modules/kernel/src/org/apache/axis2/classloader/DirectoryResourceHandle.java
+++ /dev/null
@@ -1,97 +0,0 @@
-/**
- *  Licensed to the Apache Software Foundation (ASF) under one or more
- *  contributor license agreements.  See the NOTICE file distributed with
- *  this work for additional information regarding copyright ownership.
- *  The ASF licenses this file to You under the Apache License, Version 2.0
- *  (the "License"); you may not use this file except in compliance with
- *  the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing, software
- *  distributed under the License is distributed on an "AS IS" BASIS,
- *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *  See the License for the specific language governing permissions and
- *  limitations under the License.
- */
-package org.apache.axis2.classloader;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.File;
-import java.io.FileInputStream;
-import java.net.URL;
-import java.net.MalformedURLException;
-import java.security.cert.Certificate;
-import java.util.jar.Attributes;
-import java.util.jar.Manifest;
-
-/**
- * @version $Rev$ $Date$
- */
-public class DirectoryResourceHandle extends AbstractResourceHandle {
-    private final String name;
-    private final File file;
-    private final Manifest manifest;
-    private final URL url;
-    private final URL codeSource;
-
-    public DirectoryResourceHandle(String name, File file, File codeSource, Manifest manifest) throws MalformedURLException {
-        this.name = name;
-        this.file = file;
-        this.codeSource = codeSource.toURI().toURL();
-        this.manifest = manifest;
-        url = file.toURI().toURL();
-    }
-
-    public String getName() {
-        return name;
-    }
-
-    public URL getUrl() {
-        return url;
-    }
-
-    public URL getCodeSourceUrl() {
-        return codeSource;
-    }
-
-    public boolean isDirectory() {
-        return file.isDirectory();
-    }
-
-    public InputStream getInputStream() throws IOException {
-        if (file.isDirectory()) {
-            return new IoUtil.EmptyInputStream();
-        }
-        return new FileInputStream(file);
-    }
-
-    public int getContentLength() {
-        if (file.isDirectory() || file.length() > Integer.MAX_VALUE) {
-            return -1;
-        } else {
-            return (int) file.length();
-        }
-    }
-
-    public Manifest getManifest() throws IOException {
-        return manifest;
-    }
-
-    public Attributes getAttributes() throws IOException {
-        if (manifest == null) {
-            return null;
-        }
-        return manifest.getAttributes(getName());
-    }
-
-    /**
-     * Always return null.  This could be implementd by verifing the signatures
-     * in the manifest file against the actual file, but we don't need this right now.
-     * @return null
-     */
-    public Certificate[] getCertificates() {
-        return null;
-    }
-}
diff --git a/modules/kernel/src/org/apache/axis2/classloader/DirectoryResourceLocation.java b/modules/kernel/src/org/apache/axis2/classloader/DirectoryResourceLocation.java
deleted file mode 100644
index c7234b1..0000000
--- a/modules/kernel/src/org/apache/axis2/classloader/DirectoryResourceLocation.java
+++ /dev/null
@@ -1,89 +0,0 @@
-/**
- *  Licensed to the Apache Software Foundation (ASF) under one or more
- *  contributor license agreements.  See the NOTICE file distributed with
- *  this work for additional information regarding copyright ownership.
- *  The ASF licenses this file to You under the Apache License, Version 2.0
- *  (the "License"); you may not use this file except in compliance with
- *  the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing, software
- *  distributed under the License is distributed on an "AS IS" BASIS,
- *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *  See the License for the specific language governing permissions and
- *  limitations under the License.
- */
-package org.apache.axis2.classloader;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.net.MalformedURLException;
-import java.util.jar.Manifest;
-
-/**
- * @version $Rev$ $Date$
- */
-public class DirectoryResourceLocation extends AbstractUrlResourceLocation {
-    private final File baseDir;
-    private boolean manifestLoaded = false;
-    private Manifest manifest;
-
-    public DirectoryResourceLocation(File baseDir) throws MalformedURLException {
-        super(baseDir.toURI().toURL());
-        this.baseDir = baseDir;
-    }
-
-    public ResourceHandle getResourceHandle(String resourceName) {
-        File file = new File(baseDir, resourceName);
-        if (!file.exists() || !isLocal(file)) {
-            return null;
-        }
-
-        try {
-            ResourceHandle resourceHandle = new DirectoryResourceHandle(resourceName, file, baseDir, getManifestSafe());
-            return resourceHandle;
-        } catch (MalformedURLException e) {
-            return null;
-        }
-    }
-
-    private boolean isLocal(File file) {
-        try {
-            String base = baseDir.getCanonicalPath();
-            String relative = file.getCanonicalPath();
-            return (relative.startsWith(base));
-        } catch (IOException e) {
-            return false;
-        }
-    }
-    
-    public Manifest getManifest() throws IOException {
-        if (!manifestLoaded) {
-            File manifestFile = new File(baseDir, "META-INF/MANIFEST.MF");
-
-            if (manifestFile.isFile() && manifestFile.canRead()) {
-                FileInputStream in = null;
-                try {
-                    in = new FileInputStream(manifestFile);
-                    manifest = new Manifest(in);
-                } finally {
-                    IoUtil.close(in);
-                }
-            }
-            manifestLoaded = true;
-        }
-        return manifest;
-    }
-
-    private Manifest getManifestSafe() {
-        Manifest manifest = null;
-        try {
-            manifest = getManifest();
-        } catch (IOException e) {
-            // ignore
-        }
-        return manifest;
-    }
-}
diff --git a/modules/kernel/src/org/apache/axis2/classloader/IoUtil.java b/modules/kernel/src/org/apache/axis2/classloader/IoUtil.java
deleted file mode 100644
index 523166c..0000000
--- a/modules/kernel/src/org/apache/axis2/classloader/IoUtil.java
+++ /dev/null
@@ -1,147 +0,0 @@
-/**
- *  Licensed to the Apache Software Foundation (ASF) under one or more
- *  contributor license agreements.  See the NOTICE file distributed with
- *  this work for additional information regarding copyright ownership.
- *  The ASF licenses this file to You under the Apache License, Version 2.0
- *  (the "License"); you may not use this file except in compliance with
- *  the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing, software
- *  distributed under the License is distributed on an "AS IS" BASIS,
- *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *  See the License for the specific language governing permissions and
- *  limitations under the License.
- */
-package org.apache.axis2.classloader;
-
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.io.Reader;
-import java.io.Writer;
-import java.util.jar.JarFile;
-
-import org.apache.axis2.Constants;
-
-/**
- * @version $Rev$ $Date$
- */
-public final class IoUtil {
-    private IoUtil() {
-    }
-
-    public static byte[] getBytes(InputStream inputStream) throws IOException {
-        try {
-            byte[] buffer = new byte[2*Constants.Configuration.DEFAULT_DATA_BUFFER_SIZE];
-            ByteArrayOutputStream out = new ByteArrayOutputStream();
-            for (int count = inputStream.read(buffer); count >= 0; count = inputStream.read(buffer)) {
-                out.write(buffer, 0, count);
-            }
-            byte[] bytes = out.toByteArray();
-            return bytes;
-        } finally {
-            close(inputStream);
-        }
-    }
-
-    public static void flush(OutputStream thing) {
-        if (thing != null) {
-            try {
-                thing.flush();
-            } catch(Exception ignored) {
-            }
-        }
-    }
-
-    public static void flush(Writer thing) {
-        if (thing != null) {
-            try {
-                thing.flush();
-            } catch(Exception ignored) {
-            }
-        }
-    }
-
-    public static void close(JarFile thing) {
-        if (thing != null) {
-            try {
-                thing.close();
-            } catch(Exception ignored) {
-            }
-        }
-    }
-
-    public static void close(InputStream thing) {
-        if (thing != null) {
-            try {
-                thing.close();
-            } catch(Exception ignored) {
-            }
-        }
-    }
-
-    public static void close(OutputStream thing) {
-        if (thing != null) {
-            try {
-                thing.close();
-            } catch(Exception ignored) {
-            }
-        }
-    }
-
-    public static void close(Reader thing) {
-        if (thing != null) {
-            try {
-                thing.close();
-            } catch(Exception ignored) {
-            }
-        }
-    }
-
-    public static void close(Writer thing) {
-        if (thing != null) {
-            try {
-                thing.close();
-            } catch(Exception ignored) {
-            }
-        }
-    }
-
-    public static final class EmptyInputStream extends InputStream {
-        public int read() {
-            return -1;
-        }
-
-        public int read(byte b[])  {
-            return -1;
-        }
-
-        public int read(byte b[], int off, int len) {
-            return -1;
-        }
-
-        public long skip(long n) {
-            return 0;
-        }
-
-        public int available() {
-            return 0;
-        }
-
-        public void close() {
-        }
-
-        public synchronized void mark(int readlimit) {
-        }
-
-        public synchronized void reset() {
-        }
-
-        public boolean markSupported() {
-            return false;
-        }
-    }
-}
diff --git a/modules/kernel/src/org/apache/axis2/classloader/JarFileClassLoader.java b/modules/kernel/src/org/apache/axis2/classloader/JarFileClassLoader.java
deleted file mode 100644
index f3e1709..0000000
--- a/modules/kernel/src/org/apache/axis2/classloader/JarFileClassLoader.java
+++ /dev/null
@@ -1,351 +0,0 @@
-/**
- *  Licensed to the Apache Software Foundation (ASF) under one or more
- *  contributor license agreements.  See the NOTICE file distributed with
- *  this work for additional information regarding copyright ownership.
- *  The ASF licenses this file to You under the Apache License, Version 2.0
- *  (the "License"); you may not use this file except in compliance with
- *  the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing, software
- *  distributed under the License is distributed on an "AS IS" BASIS,
- *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *  See the License for the specific language governing permissions and
- *  limitations under the License.
- */
-package org.apache.axis2.classloader;
-
-import java.io.IOException;
-import java.io.File;
-import java.net.URL;
-import java.net.URI;
-import java.net.URLClassLoader;
-import java.security.AccessControlContext;
-import java.security.AccessController;
-import java.security.CodeSource;
-import java.security.PrivilegedAction;
-import java.security.PrivilegedExceptionAction;
-import java.security.PrivilegedActionException;
-import java.security.cert.Certificate;
-import java.util.Collection;
-import java.util.Enumeration;
-import java.util.jar.Attributes;
-import java.util.jar.Manifest;
-
-/**
- * The JarFileClassLoader that loads classes and resources from a list of JarFiles.  This method is simmilar to URLClassLoader
- * except it properly closes JarFiles when the classloader is destroyed so that the file read lock will be released, and
- * the jar file can be modified and deleted.
- * <p>
- *
- * @version $Rev$ $Date$
- */
-public class JarFileClassLoader extends MultiParentClassLoader implements BeanInfoCachingClassLoader {
-    private static final URL[] EMPTY_URLS = new URL[0];
-
-    private final UrlResourceFinder resourceFinder = new UrlResourceFinder();
-    private final AccessControlContext acc;
-
-    private final BeanInfoCache beanInfoCache = new BeanInfoCache();
-
-    /**
-     * Creates a JarFileClassLoader that is a child of the system class loader.
-     * @param urls a list of URLs from which classes and resources should be loaded
-     */
-    public JarFileClassLoader(URL[] urls) {
-        super(EMPTY_URLS);
-        this.acc = AccessController.getContext();
-        addURLs(urls);
-    }
-
-    /**
-     * Creates a JarFileClassLoader that is a child of the specified class loader.
-     * @param urls a list of URLs from which classes and resources should be loaded
-     * @param parent the parent of this class loader
-     */
-    public JarFileClassLoader(URL[] urls, ClassLoader parent) {
-        super(EMPTY_URLS, parent);
-        this.acc = AccessController.getContext();
-        addURLs(urls);
-    }
-
-    public JarFileClassLoader(URL[] urls, ClassLoader parent, boolean inverseClassLoading, String[] hiddenClasses, String[] nonOverridableClasses) {
-        super(EMPTY_URLS, parent, inverseClassLoading, hiddenClasses, nonOverridableClasses);
-        this.acc = AccessController.getContext();
-        addURLs(urls);
-    }
-
-    /**
-     * Creates a named class loader as a child of the specified parents.
-     * @param urls the urls from which this class loader will classes and resources
-     * @param parents the parents of this class loader
-     */
-    public JarFileClassLoader(URL[] urls, ClassLoader[] parents) {
-        super(EMPTY_URLS, parents);
-        this.acc = AccessController.getContext();
-        addURLs(urls);
-    }
-
-    public JarFileClassLoader(URL[] urls, ClassLoader[] parents, boolean inverseClassLoading, Collection hiddenClasses, Collection nonOverridableClasses) {
-        super(EMPTY_URLS, parents, inverseClassLoading, hiddenClasses, nonOverridableClasses);
-        this.acc = AccessController.getContext();
-        addURLs(urls);
-    }
-
-    public JarFileClassLoader(URL[] urls, ClassLoader[] parents, boolean inverseClassLoading, String[] hiddenClasses, String[] nonOverridableClasses) {
-        super(EMPTY_URLS, parents, inverseClassLoading, hiddenClasses, nonOverridableClasses);
-        this.acc = AccessController.getContext();
-        addURLs(urls);
-    }
-
-    public JarFileClassLoader(JarFileClassLoader source) {
-        super(source);
-        this.acc = AccessController.getContext();
-        addURLs(source.getURLs());
-    }
-
-    public static ClassLoader copy(ClassLoader source) {
-        if (source instanceof JarFileClassLoader) {
-            return new JarFileClassLoader((JarFileClassLoader) source);
-        } else if (source instanceof MultiParentClassLoader) {
-            return new MultiParentClassLoader((MultiParentClassLoader) source);
-        } else if (source instanceof URLClassLoader) {
-            return new URLClassLoader(((URLClassLoader)source).getURLs(), source.getParent());
-        } else {
-            return new URLClassLoader(new URL[0], source);
-        }
-    }
-
-    ClassLoader copy() {
-        return JarFileClassLoader.copy(this);
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public URL[] getURLs() {
-        return resourceFinder.getUrls();
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public void addURL(final URL url) {
-        AccessController.doPrivileged(new PrivilegedAction() {
-            public Object run() {
-                resourceFinder.addUrl(url);
-                return null;
-            }
-        }, acc);
-    }
-
-    /**
-     * Adds an array of urls to the end of this class loader.
-     * @param urls the URLs to add
-     */
-    protected void addURLs(final URL[] urls) {
-        AccessController.doPrivileged(new PrivilegedAction() {
-            public Object run() {
-                resourceFinder.addUrls(urls);
-                return null;
-            }
-        }, acc);
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public void destroy() {
-        resourceFinder.destroy();
-        super.destroy();
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public URL findResource(final String resourceName) {
-        return (URL) AccessController.doPrivileged(new PrivilegedAction() {
-            public Object run() {
-                return resourceFinder.findResource(resourceName);
-            }
-        }, acc);
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    protected Enumeration<URL> internalfindResources(final String name) throws IOException {
-        return  AccessController.doPrivileged(new PrivilegedAction<Enumeration<URL>>() {
-            public Enumeration<URL> run() {
-                return resourceFinder.findResources(name);
-            }
-        }, acc);
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    protected String findLibrary(String libraryName) {
-        // if the libraryName is actually a directory it is invalid
-        int pathEnd = libraryName.lastIndexOf('/');
-        if (pathEnd == libraryName.length() - 1) {
-            throw new IllegalArgumentException("libraryName ends with a '/' character: " + libraryName);
-        }
-
-        // get the name if the library file
-        final String resourceName;
-        if (pathEnd < 0) {
-            resourceName = System.mapLibraryName(libraryName);
-        } else {
-            String path = libraryName.substring(0, pathEnd + 1);
-            String file = libraryName.substring(pathEnd + 1);
-            resourceName = path + System.mapLibraryName(file);
-        }
-
-        // get a resource handle to the library
-        ResourceHandle resourceHandle = (ResourceHandle) AccessController.doPrivileged(new PrivilegedAction() {
-            public Object run() {
-                return resourceFinder.getResource(resourceName);
-            }
-        }, acc);
-
-        if (resourceHandle == null) {
-            return null;
-        }
-
-        // the library must be accessable on the file system
-        URL url = resourceHandle.getUrl();
-        if (!"file".equals(url.getProtocol())) {
-            return null;
-        }
-
-        return new File(URI.create(url.toString())).getPath();
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    protected Class findClass(final String className) throws ClassNotFoundException {
-        try {
-            return (Class) AccessController.doPrivileged(new PrivilegedExceptionAction() {
-                public Object run() throws ClassNotFoundException {
-                    // first think check if we are allowed to define the package
-                    SecurityManager securityManager = System.getSecurityManager();
-                    if (securityManager != null) {
-                        String packageName;
-                        int packageEnd = className.lastIndexOf('.');
-                        if (packageEnd >= 0) {
-                            packageName = className.substring(0, packageEnd);
-                            securityManager.checkPackageDefinition(packageName);
-                        }
-                    }
-
-
-                    // convert the class name to a file name
-                    String resourceName = className.replace('.', '/') + ".class";
-
-                    // find the class file resource
-                    ResourceHandle resourceHandle = resourceFinder.getResource(resourceName);
-                    if (resourceHandle == null) {
-                        throw new ClassNotFoundException(className);
-                    }
-
-                    byte[] bytes;
-                    Manifest manifest;
-                    try {
-                        // get the bytes from the class file
-                        bytes = resourceHandle.getBytes();
-
-                        // get the manifest for defining the packages
-                        manifest = resourceHandle.getManifest();
-                    } catch (IOException e) {
-                        throw new ClassNotFoundException(className, e);
-                    }
-
-                    // get the certificates for the code source
-                    Certificate[] certificates = resourceHandle.getCertificates();
-
-                    // the code source url is used to define the package and as the security context for the class
-                    URL codeSourceUrl = resourceHandle.getCodeSourceUrl();
-
-                    // define the package (required for security)
-                    definePackage(className, codeSourceUrl, manifest);
-
-                    // this is the security context of the class
-                    CodeSource codeSource = new CodeSource(codeSourceUrl, certificates);
-
-                    // load the class into the vm
-                    return defineClass(className, bytes, 0, bytes.length, codeSource);
-                }
-            }, acc);
-        } catch (PrivilegedActionException e) {
-            throw (ClassNotFoundException) e.getException();
-        }
-    }
-
-    private void definePackage(String className, URL jarUrl, Manifest manifest) {
-        int packageEnd = className.lastIndexOf('.');
-        if (packageEnd < 0) {
-            return;
-        }
-
-        String packageName = className.substring(0, packageEnd);
-        String packagePath = packageName.replace('.', '/') + "/";
-
-        Attributes packageAttributes = null;
-        Attributes mainAttributes = null;
-        if (manifest != null) {
-            packageAttributes = manifest.getAttributes(packagePath);
-            mainAttributes = manifest.getMainAttributes();
-        }
-        Package pkg = getPackage(packageName);
-        if (pkg != null) {
-            if (pkg.isSealed()) {
-                if (!pkg.isSealed(jarUrl)) {
-                    throw new SecurityException("Package was already sealed with another URL: package=" + packageName + ", url=" + jarUrl);
-                }
-            } else {
-                if (isSealed(packageAttributes, mainAttributes)) {
-                    throw new SecurityException("Package was already been loaded and not sealed: package=" + packageName + ", url=" + jarUrl);
-                }
-            }
-        } else {
-            String specTitle = getAttribute(Attributes.Name.SPECIFICATION_TITLE, packageAttributes, mainAttributes);
-            String specVendor = getAttribute(Attributes.Name.SPECIFICATION_VENDOR, packageAttributes, mainAttributes);
-            String specVersion = getAttribute(Attributes.Name.SPECIFICATION_VERSION, packageAttributes, mainAttributes);
-            String implTitle = getAttribute(Attributes.Name.IMPLEMENTATION_TITLE, packageAttributes, mainAttributes);
-            String implVendor = getAttribute(Attributes.Name.IMPLEMENTATION_VENDOR, packageAttributes, mainAttributes);
-            String implVersion = getAttribute(Attributes.Name.IMPLEMENTATION_VERSION, packageAttributes, mainAttributes);
-
-            URL sealBase = null;
-            if (isSealed(packageAttributes, mainAttributes)) {
-                sealBase = jarUrl;
-            }
-
-            definePackage(packageName, specTitle, specVersion, specVendor, implTitle, implVersion, implVendor, sealBase);
-        }
-    }
-
-    private String getAttribute(Attributes.Name name, Attributes packageAttributes, Attributes mainAttributes) {
-        if (packageAttributes != null) {
-            String value = packageAttributes.getValue(name);
-            if (value != null) {
-                return value;
-            }
-        }
-        if (mainAttributes != null) {
-            return mainAttributes.getValue(name);
-        }
-        return null;
-    }
-
-    private boolean isSealed(Attributes packageAttributes, Attributes mainAttributes) {
-        String sealed = getAttribute(Attributes.Name.SEALED, packageAttributes, mainAttributes);
-        return sealed != null && "true".equalsIgnoreCase(sealed);
-    }
-
-    public final BeanInfoCache getBeanInfoCache() {
-        return beanInfoCache;
-    }
-}
\ No newline at end of file
diff --git a/modules/kernel/src/org/apache/axis2/classloader/JarFileUrlConnection.java b/modules/kernel/src/org/apache/axis2/classloader/JarFileUrlConnection.java
deleted file mode 100644
index 77c5d5f..0000000
--- a/modules/kernel/src/org/apache/axis2/classloader/JarFileUrlConnection.java
+++ /dev/null
@@ -1,135 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.axis2.classloader;
-
-import java.io.File;
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.JarURLConnection;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.net.URLConnection;
-import java.net.URLStreamHandler;
-import java.security.Permission;
-import java.security.cert.Certificate;
-import java.util.jar.Attributes;
-import java.util.jar.JarEntry;
-import java.util.jar.JarFile;
-import java.util.jar.Manifest;
-
-/**
- * @version $Rev: 476049 $ $Date: 2006-11-16 23:35:17 -0500 (Thu, 16 Nov 2006) $
- */
-public class JarFileUrlConnection extends JarURLConnection {
-    public static final URL DUMMY_JAR_URL;
-    static {
-        try {
-            DUMMY_JAR_URL = new URL("jar", "", -1, "file:dummy!/", new URLStreamHandler() {
-                protected URLConnection openConnection(URL u) {
-                    throw new UnsupportedOperationException();
-                }
-            });
-        } catch (Exception e) {
-            throw new ExceptionInInitializerError(e);
-        }
-    }
-
-    private final URL url;
-    private final JarFile jarFile;
-    private final JarEntry jarEntry;
-    private final URL jarFileUrl;
-
-    public JarFileUrlConnection(URL url, JarFile jarFile, JarEntry jarEntry) throws MalformedURLException {
-        super(DUMMY_JAR_URL);
-
-        if (url == null) throw new NullPointerException("url is null");
-        if (jarFile == null) throw new NullPointerException("jarFile is null");
-        if (jarEntry == null) throw new NullPointerException("jarEntry is null");
-
-        this.url = url;
-        this.jarFile = jarFile;
-        this.jarEntry = jarEntry;
-        jarFileUrl = new File(jarFile.getName()).toURI().toURL();
-    }
-
-    public JarFile getJarFile() throws IOException {
-        return jarFile;
-    }
-
-    public synchronized void connect() {
-    }
-
-    public URL getJarFileURL() {
-        return jarFileUrl;
-    }
-
-    public String getEntryName() {
-        return getJarEntry().getName();
-    }
-
-    public Manifest getManifest() throws IOException {
-        return jarFile.getManifest();
-    }
-
-    public JarEntry getJarEntry() {
-        return jarEntry;
-    }
-
-    public Attributes getAttributes() throws IOException {
-        return getJarEntry().getAttributes();
-    }
-
-    public Attributes getMainAttributes() throws IOException {
-        return getManifest().getMainAttributes();
-    }
-
-    public Certificate[] getCertificates() throws IOException {
-        return getJarEntry().getCertificates();
-    }
-
-    public URL getURL() {
-        return url;
-    }
-
-    public int getContentLength() {
-        long size = getJarEntry().getSize();
-        if (size > Integer.MAX_VALUE) {
-            return -1;
-        }
-        return (int) size;
-    }
-
-    public long getLastModified() {
-        return getJarEntry().getTime();
-    }
-
-    public synchronized InputStream getInputStream() throws IOException {
-        return jarFile.getInputStream(jarEntry);
-    }
-
-    public Permission getPermission() throws IOException {
-        URL jarFileUrl = new File(jarFile.getName()).toURI().toURL();
-        return jarFileUrl.openConnection().getPermission();
-    }
-
-    public String toString() {
-        return JarFileUrlConnection.class.getName() + ":" + url;
-    }
-}
diff --git a/modules/kernel/src/org/apache/axis2/classloader/JarFileUrlStreamHandler.java b/modules/kernel/src/org/apache/axis2/classloader/JarFileUrlStreamHandler.java
deleted file mode 100644
index f26abb4..0000000
--- a/modules/kernel/src/org/apache/axis2/classloader/JarFileUrlStreamHandler.java
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.axis2.classloader;
-
-import java.io.File;
-import java.io.FileNotFoundException;
-import java.io.IOException;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.net.URLConnection;
-import java.net.URLStreamHandler;
-import java.util.jar.JarEntry;
-import java.util.jar.JarFile;
-
-/**
- * @version $Rev: 476049 $ $Date: 2006-11-16 23:35:17 -0500 (Thu, 16 Nov 2006) $
- */
-public class JarFileUrlStreamHandler extends URLStreamHandler {
-    public static URL createUrl(JarFile jarFile, JarEntry jarEntry) throws MalformedURLException {
-        return createUrl(jarFile, jarEntry, new File(jarFile.getName()).toURI().toURL());
-    }
-
-    public static URL createUrl(JarFile jarFile, JarEntry jarEntry, URL codeSource) throws MalformedURLException {
-        JarFileUrlStreamHandler handler = new JarFileUrlStreamHandler(jarFile, jarEntry);
-        URL url = new URL("jar", "", -1, codeSource + "!/" + jarEntry.getName(), handler);
-        handler.setExpectedUrl(url);
-        return url;
-    }
-
-    private URL expectedUrl;
-    private JarFile jarFile = null;
-    private JarEntry jarEntry = null;
-
-    public JarFileUrlStreamHandler() {
-    }
-
-    public JarFileUrlStreamHandler(JarFile jarFile, JarEntry jarEntry) {
-        if (jarFile == null) throw new NullPointerException("jarFile is null");
-        if (jarEntry == null) throw new NullPointerException("jarEntry is null");
-
-        this.jarFile = jarFile;
-        this.jarEntry = jarEntry;
-    }
-
-    public void setExpectedUrl(URL expectedUrl) {
-        if (expectedUrl == null) throw new NullPointerException("expectedUrl is null");
-        this.expectedUrl = expectedUrl;
-    }
-
-    public URLConnection openConnection(URL url) throws IOException {
-
-        if (expectedUrl == null || !expectedUrl.equals(url)) {
-            // the new url is supposed to be within our context, so it must have a jar protocol
-            if (!url.getProtocol().equals("jar")) {
-                throw new IllegalArgumentException("Unsupported protocol " + url.getProtocol());
-            }
-
-            // split the path at "!/" into the file part and entry part
-            String path = url.getPath();
-            String[] chunks = path.split("!/", 2);
-
-            // if we only got only one chunk, it didn't contain the required "!/" delimiter
-            if (chunks.length == 1) {
-                throw new MalformedURLException("Url does not contain a '!' character: " + url);
-            }
-
-            String file = chunks[0];
-            String entryPath = chunks[1];
-
-            // this handler only supports jars on the local file system
-            if (!file.startsWith("file:")) {
-                // let the system handler deal with this
-                return new URL(url.toExternalForm()).openConnection();
-            }
-            file = file.substring("file:".length());
-
-            File f = new File(file);
-            if (f.exists()) {
-                jarFile = new JarFile(f);
-            }
-
-            if (jarFile == null) {
-                throw new FileNotFoundException("Cannot find JarFile: " + file);
-            }
-
-            // get the entry
-            jarEntry = jarFile.getJarEntry(entryPath);
-            if (jarEntry == null) {
-                throw new FileNotFoundException("Entry not found: " + url);
-            }
-            expectedUrl = url;
-        }
-
-        return new JarFileUrlConnection(url, jarFile, jarEntry);
-    }
-}
diff --git a/modules/kernel/src/org/apache/axis2/classloader/JarResourceHandle.java b/modules/kernel/src/org/apache/axis2/classloader/JarResourceHandle.java
deleted file mode 100644
index b4f414d..0000000
--- a/modules/kernel/src/org/apache/axis2/classloader/JarResourceHandle.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/**
- *  Licensed to the Apache Software Foundation (ASF) under one or more
- *  contributor license agreements.  See the NOTICE file distributed with
- *  this work for additional information regarding copyright ownership.
- *  The ASF licenses this file to You under the Apache License, Version 2.0
- *  (the "License"); you may not use this file except in compliance with
- *  the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing, software
- *  distributed under the License is distributed on an "AS IS" BASIS,
- *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *  See the License for the specific language governing permissions and
- *  limitations under the License.
- */
-package org.apache.axis2.classloader;
-
-import java.util.jar.JarFile;
-import java.util.jar.JarEntry;
-import java.util.jar.Manifest;
-import java.util.jar.Attributes;
-import java.net.URL;
-import java.net.MalformedURLException;
-import java.io.InputStream;
-import java.io.IOException;
-import java.security.cert.Certificate;
-
-/**
- * @version $Rev$ $Date$
- */
-public class JarResourceHandle extends AbstractResourceHandle {
-    private final JarFile jarFile;
-    private final JarEntry jarEntry;
-    private final URL url;
-    private final URL codeSource;
-
-    public JarResourceHandle(JarFile jarFile, JarEntry jarEntry, URL codeSource) throws MalformedURLException {
-        this.jarFile = jarFile;
-        this.jarEntry = jarEntry;
-        this.url = JarFileUrlStreamHandler.createUrl(jarFile, jarEntry, codeSource);
-        this.codeSource = codeSource;
-    }
-
-    public String getName() {
-        return jarEntry.getName();
-    }
-
-    public URL getUrl() {
-        return url;
-    }
-
-    public URL getCodeSourceUrl() {
-        return codeSource;
-    }
-
-    public boolean isDirectory() {
-        return jarEntry.isDirectory();
-    }
-
-    public InputStream getInputStream() throws IOException {
-        return jarFile.getInputStream(jarEntry);
-    }
-
-    public int getContentLength() {
-        return (int) jarEntry.getSize();
-    }
-
-    public Manifest getManifest() throws IOException {
-        return jarFile.getManifest();
-    }
-
-    public Attributes getAttributes() throws IOException {
-        return jarEntry.getAttributes();
-    }
-
-    public Certificate[] getCertificates() {
-        return jarEntry.getCertificates();
-    }
-}
diff --git a/modules/kernel/src/org/apache/axis2/classloader/JarResourceLocation.java b/modules/kernel/src/org/apache/axis2/classloader/JarResourceLocation.java
deleted file mode 100644
index 1f1bbdf..0000000
--- a/modules/kernel/src/org/apache/axis2/classloader/JarResourceLocation.java
+++ /dev/null
@@ -1,153 +0,0 @@
-/**
- *  Licensed to the Apache Software Foundation (ASF) under one or more
- *  contributor license agreements.  See the NOTICE file distributed with
- *  this work for additional information regarding copyright ownership.
- *  The ASF licenses this file to You under the Apache License, Version 2.0
- *  (the "License"); you may not use this file except in compliance with
- *  the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing, software
- *  distributed under the License is distributed on an "AS IS" BASIS,
- *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *  See the License for the specific language governing permissions and
- *  limitations under the License.
- */
-package org.apache.axis2.classloader;
-
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.InputStream;
-import java.io.IOException;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.jar.JarEntry;
-import java.util.jar.JarFile;
-import java.util.jar.JarInputStream;
-import java.util.jar.Manifest;
-import java.util.zip.ZipException;
-
-import org.apache.axis2.Constants;
-
-/**
- * @version $Rev$ $Date$
- */
-public class JarResourceLocation extends AbstractUrlResourceLocation {
-    private JarFile jarFile;
-    private byte content[];
-
-    public JarResourceLocation(URL codeSource, File cacheFile) throws IOException {
-        super(codeSource);
-        try {
-            jarFile = new JarFile(cacheFile);
-        } catch (ZipException ze) {
-            // We get this exception on windows when the
-            // path to the jar file gets too long (Bug ID: 6374379)
-            InputStream is = null;
-            try {
-                is = new FileInputStream(cacheFile);
-                ByteArrayOutputStream baos = new ByteArrayOutputStream();
-                byte[] buffer = new byte[Constants.Configuration.DEFAULT_DATA_BUFFER_SIZE];
-                int bytesRead = -1;
-                while ((bytesRead = is.read(buffer)) != -1) {
-                    baos.write(buffer, 0, bytesRead);
-                }
-                this.content = baos.toByteArray();
-            } finally {
-                if (is != null) {
-                    is.close();
-                }
-            }
-        }
-    }
-
-    public ResourceHandle getResourceHandle(String resourceName) {
-        if (jarFile != null) {
-            JarEntry jarEntry = jarFile.getJarEntry(resourceName);
-            if (jarEntry != null) {
-                try {
-                    URL url = new URL(getCodeSource(), resourceName);
-                    return new JarResourceHandle(jarFile, jarEntry, getCodeSource());
-                } catch (MalformedURLException e) {
-                }
-            }
-        } else {
-            try {
-                final JarInputStream is = new JarInputStream(new ByteArrayInputStream(this.content));
-                JarEntry jarEntry = null;
-                while ((jarEntry = is.getNextJarEntry()) != null) {
-                    if (jarEntry.getName().equals(resourceName)) {
-                        try {
-                            URL url = new URL(getCodeSource(), resourceName);
-                            final JarEntry jarEntry2 = jarEntry;
-                            return new JarEntryResourceHandle(jarEntry2, is);
-                        } catch (MalformedURLException e) {
-                        }
-                    }
-                }
-            } catch (IOException e) {
-            }
-        }
-        return null;
-    }
-
-    public Manifest getManifest() throws IOException {
-        if (jarFile != null) {
-            return jarFile.getManifest();
-        } else {
-            try {
-                JarInputStream is = new JarInputStream(new ByteArrayInputStream(this.content));
-                return is.getManifest();
-            } catch (IOException e) {
-            }
-        }
-        return null;
-    }
-
-    public void close() {
-        if (jarFile != null) {
-            IoUtil.close(jarFile);
-        }
-    }
-
-    private class JarEntryResourceHandle extends AbstractResourceHandle {
-        private final JarEntry jarEntry2;
-        private final JarInputStream is;
-
-        public JarEntryResourceHandle(JarEntry jarEntry2, JarInputStream is) {
-            this.jarEntry2 = jarEntry2;
-            this.is = is;
-        }
-
-        public String getName() {
-            return jarEntry2.getName();
-        }
-
-        public URL getUrl() {
-            try {
-                return new URL("jar", "", -1, getCodeSource() + "!/" + jarEntry2.getName());
-            } catch (MalformedURLException e) {
-                throw new RuntimeException(e);
-            }
-        }
-
-        public boolean isDirectory() {
-            return jarEntry2.isDirectory();
-        }
-
-        public URL getCodeSourceUrl() {
-            return getCodeSource();
-        }
-
-        public InputStream getInputStream() throws IOException {
-            return is;
-        }
-
-        public int getContentLength() {
-            return (int) jarEntry2.getSize();
-        }
-    }
-}
diff --git a/modules/kernel/src/org/apache/axis2/classloader/ResourceEnumeration.java b/modules/kernel/src/org/apache/axis2/classloader/ResourceEnumeration.java
deleted file mode 100644
index 57b6352..0000000
--- a/modules/kernel/src/org/apache/axis2/classloader/ResourceEnumeration.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/**
- *  Licensed to the Apache Software Foundation (ASF) under one or more
- *  contributor license agreements.  See the NOTICE file distributed with
- *  this work for additional information regarding copyright ownership.
- *  The ASF licenses this file to You under the Apache License, Version 2.0
- *  (the "License"); you may not use this file except in compliance with
- *  the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing, software
- *  distributed under the License is distributed on an "AS IS" BASIS,
- *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *  See the License for the specific language governing permissions and
- *  limitations under the License.
- */
-package org.apache.axis2.classloader;
-
-import java.util.Enumeration;
-import java.util.Iterator;
-import java.util.Collection;
-import java.util.NoSuchElementException;
-
-/**
- * @version $Rev$ $Date$
- */
-public class ResourceEnumeration implements Enumeration {
-    private Iterator iterator;
-    private final String resourceName;
-    private Object next;
-
-    public ResourceEnumeration(Collection resourceLocations, String resourceName) {
-        this.iterator = resourceLocations.iterator();
-        this.resourceName = resourceName;
-    }
-
-    public boolean hasMoreElements() {
-        fetchNext();
-        return (next != null);
-    }
-
-    public Object nextElement() {
-        fetchNext();
-
-        // save next into a local variable and clear the next field
-        Object next = this.next;
-        this.next = null;
-
-        // if we didn't have a next throw an exception
-        if (next == null) {
-            throw new NoSuchElementException();
-        }
-        return next;
-    }
-
-    private void fetchNext() {
-        if (iterator == null) {
-            return;
-        }
-        if (next != null) {
-            return;
-        }
-
-        try {
-            while (iterator.hasNext()) {
-                ResourceLocation resourceLocation = (ResourceLocation) iterator.next();
-                ResourceHandle resourceHandle = resourceLocation.getResourceHandle(resourceName);
-                if (resourceHandle != null) {
-                    next = resourceHandle.getUrl();
-                    return;
-                }
-            }
-            // no more elements
-            // clear the iterator so it can be GCed
-            iterator = null;
-        } catch (IllegalStateException e) {
-            // Jar file was closed... this means the resource finder was destroyed
-            // clear the iterator so it can be GCed
-            iterator = null;
-            throw e;
-        }
-    }
-}
diff --git a/modules/kernel/src/org/apache/axis2/classloader/ResourceFinder.java b/modules/kernel/src/org/apache/axis2/classloader/ResourceFinder.java
deleted file mode 100644
index 1cc65c6..0000000
--- a/modules/kernel/src/org/apache/axis2/classloader/ResourceFinder.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/**
- *  Licensed to the Apache Software Foundation (ASF) under one or more
- *  contributor license agreements.  See the NOTICE file distributed with
- *  this work for additional information regarding copyright ownership.
- *  The ASF licenses this file to You under the Apache License, Version 2.0
- *  (the "License"); you may not use this file except in compliance with
- *  the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing, software
- *  distributed under the License is distributed on an "AS IS" BASIS,
- *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *  See the License for the specific language governing permissions and
- *  limitations under the License.
- */
-package org.apache.axis2.classloader;
-
-import java.net.URL;
-import java.util.Enumeration;
-
-/**
- * Abstraction of resource searching policy. Given resource name, the resource
- * finder performs implementation-specific lookup, and, if it is able to locate
- * the resource, returns the {@link AbstractResourceHandle handle(s)} or URL(s) of it.
- *
- * @version $Rev$ $Date$
- */
-public interface ResourceFinder {
-    /**
-     * Find the resource by name and return URL of it if found.
-     *
-     * @param name the resource name
-     * @return resource URL or null if resource was not found
-     */
-    public URL findResource(String name);
-
-    /**
-     * Find all resources with given name and return enumeration of their URLs.
-     *
-     * @param name the resource name
-     * @return enumeration of resource URLs (possibly empty).
-     */
-    public Enumeration findResources(String name);
-
-    /**
-     * Get the resource by name and, if found, open connection to it and return
-     * the {@link AbstractResourceHandle handle} of it.
-     *
-     * @param name the resource name
-     * @return resource handle or null if resource was not found
-     */
-    public ResourceHandle getResource(String name);
-
-}
diff --git a/modules/kernel/src/org/apache/axis2/classloader/ResourceHandle.java b/modules/kernel/src/org/apache/axis2/classloader/ResourceHandle.java
deleted file mode 100644
index 4aecaf0..0000000
--- a/modules/kernel/src/org/apache/axis2/classloader/ResourceHandle.java
+++ /dev/null
@@ -1,97 +0,0 @@
-/**
- *  Licensed to the Apache Software Foundation (ASF) under one or more
- *  contributor license agreements.  See the NOTICE file distributed with
- *  this work for additional information regarding copyright ownership.
- *  The ASF licenses this file to You under the Apache License, Version 2.0
- *  (the "License"); you may not use this file except in compliance with
- *  the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing, software
- *  distributed under the License is distributed on an "AS IS" BASIS,
- *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *  See the License for the specific language governing permissions and
- *  limitations under the License.
- */
-package org.apache.axis2.classloader;
-
-import java.net.URL;
-import java.io.InputStream;
-import java.io.IOException;
-import java.util.jar.Manifest;
-import java.util.jar.Attributes;
-import java.security.cert.Certificate;
-
-/**
- * This is a handle (a connection) to some resource, which may
- * be a class, native library, text file, image, etc. Handles are returned
- * by a ResourceFinder. A resource handle allows easy access to the resource data
- * (using methods {@link #getInputStream} or {@link #getBytes}) as well as
- * access resource metadata, such as attributes, certificates, etc.
- * <p/>
- * As soon as the handle is no longer in use, it should be explicitly
- * {@link #close}d, similarly to I/O streams.
- *
- * @version $Rev$ $Date$
- */
-public interface ResourceHandle {
-    /**
-     * Return the name of the resource. The name is a "/"-separated path
-     * name that identifies the resource.
-     */
-    String getName();
-
-    /**
-     * Returns the URL of the resource.
-     */
-    URL getUrl();
-
-    /**
-     * Does this resource refer to a directory.  Directory resources are commly used
-     * as the basis for a URL in client application.  A directory resource has 0 bytes for it's content. 
-     */
-    boolean isDirectory();
-
-    /**
-     * Returns the CodeSource URL for the class or resource.
-     */
-    URL getCodeSourceUrl();
-
-    /**
-     * Returns and InputStream for reading this resource data.
-     */
-    InputStream getInputStream() throws IOException;
-
-    /**
-     * Returns the length of this resource data, or -1 if unknown.
-     */
-    int getContentLength();
-
-    /**
-     * Returns this resource data as an array of bytes.
-     */
-    byte[] getBytes() throws IOException;
-
-    /**
-     * Returns the Manifest of the JAR file from which this resource
-     * was loaded, or null if none.
-     */
-    Manifest getManifest() throws IOException;
-
-    /**
-     * Return the Certificates of the resource, or null if none.
-     */
-    Certificate[] getCertificates();
-
-    /**
-     * Return the Attributes of the resource, or null if none.
-     */
-    Attributes getAttributes() throws IOException;
-
-    /**
-     * Closes a connection to the resource indentified by this handle. Releases
-     * any I/O objects associated with the handle.
-     */
-    void close();
-}
diff --git a/modules/kernel/src/org/apache/axis2/classloader/ResourceLocation.java b/modules/kernel/src/org/apache/axis2/classloader/ResourceLocation.java
deleted file mode 100644
index 973f2be..0000000
--- a/modules/kernel/src/org/apache/axis2/classloader/ResourceLocation.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/**
- *  Licensed to the Apache Software Foundation (ASF) under one or more
- *  contributor license agreements.  See the NOTICE file distributed with
- *  this work for additional information regarding copyright ownership.
- *  The ASF licenses this file to You under the Apache License, Version 2.0
- *  (the "License"); you may not use this file except in compliance with
- *  the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing, software
- *  distributed under the License is distributed on an "AS IS" BASIS,
- *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *  See the License for the specific language governing permissions and
- *  limitations under the License.
- */
-package org.apache.axis2.classloader;
-
-import java.util.jar.Manifest;
-import java.io.IOException;
-import java.net.URL;
-
-/**
- * This is a location which is searched by
- * 
- * @version $Rev$ $Date$
- */
-public interface ResourceLocation {
-    URL getCodeSource();    
-    ResourceHandle getResourceHandle(String resourceName);
-    Manifest getManifest() throws IOException;
-    void close();
-}
diff --git a/modules/kernel/src/org/apache/axis2/classloader/UrlResourceFinder.java b/modules/kernel/src/org/apache/axis2/classloader/UrlResourceFinder.java
deleted file mode 100644
index 0df80a8..0000000
--- a/modules/kernel/src/org/apache/axis2/classloader/UrlResourceFinder.java
+++ /dev/null
@@ -1,293 +0,0 @@
-/**
- *  Licensed to the Apache Software Foundation (ASF) under one or more
- *  contributor license agreements.  See the NOTICE file distributed with
- *  this work for additional information regarding copyright ownership.
- *  The ASF licenses this file to You under the Apache License, Version 2.0
- *  (the "License"); you may not use this file except in compliance with
- *  the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing, software
- *  distributed under the License is distributed on an "AS IS" BASIS,
- *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *  See the License for the specific language governing permissions and
- *  limitations under the License.
- */
-package org.apache.axis2.classloader;
-
-import java.io.File;
-import java.io.FileNotFoundException;
-import java.io.IOException;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.Enumeration;
-import java.util.LinkedHashMap;
-import java.util.LinkedHashSet;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Map;
-import java.util.StringTokenizer;
-import java.util.jar.Attributes;
-import java.util.jar.Manifest;
-
-/**
- * @version $Rev$ $Date$
- */
-public class UrlResourceFinder implements ResourceFinder {
-    private final Object lock = new Object();
-    private final LinkedHashSet<URL> urls = new LinkedHashSet<URL>();
-    private final LinkedHashMap<URL,ResourceLocation> classPath = new LinkedHashMap<URL,ResourceLocation>();
-    private final LinkedHashSet<File> watchedFiles = new LinkedHashSet<File>();
-
-    private boolean destroyed = false;
-
-    public UrlResourceFinder() {
-    }
-
-    public UrlResourceFinder(URL[] urls) {
-        addUrls(urls);
-    }
-
-    public void destroy() {
-        synchronized (lock) {
-            if (destroyed) {
-                return;
-            }
-            destroyed = true;
-            urls.clear();
-            for (ResourceLocation resourceLocation : classPath.values()) {
-                resourceLocation.close();
-            }
-            classPath.clear();
-        }
-    }
-
-    public ResourceHandle getResource(String resourceName) {
-        synchronized (lock) {
-            if (destroyed) {
-                return null;
-            }
-            for (Map.Entry<URL, ResourceLocation> entry : getClassPath().entrySet()) {
-                ResourceLocation resourceLocation = entry.getValue();
-                ResourceHandle resourceHandle = resourceLocation.getResourceHandle(resourceName);
-                if (resourceHandle != null && !resourceHandle.isDirectory()) {
-                    return resourceHandle;
-                }
-            }
-        }
-        return null;
-    }
-
-    public URL findResource(String resourceName) {
-        synchronized (lock) {
-            if (destroyed) {
-                return null;
-            }
-            for (Map.Entry<URL, ResourceLocation> entry : getClassPath().entrySet()) {
-                ResourceLocation resourceLocation = entry.getValue();
-                ResourceHandle resourceHandle = resourceLocation.getResourceHandle(resourceName);
-                if (resourceHandle != null) {
-                    return resourceHandle.getUrl();
-                }
-            }
-        }
-        return null;
-    }
-
-    public Enumeration findResources(String resourceName) {
-        synchronized (lock) {
-            return new ResourceEnumeration(new ArrayList<ResourceLocation>(getClassPath().values()), resourceName);
-        }
-    }
-
-    public void addUrl(URL url) {
-        addUrls(Collections.singletonList(url));
-    }
-
-    public URL[] getUrls() {
-        synchronized (lock) {
-            return urls.toArray(new URL[urls.size()]);
-        }
-    }
-
-    /**
-     * Adds an array of urls to the end of this class loader.
-     * @param urls the URLs to add
-     */
-    protected void addUrls(URL[] urls) {
-        addUrls(Arrays.asList(urls));
-    }
-
-    /**
-     * Adds a list of urls to the end of this class loader.
-     * @param urls the URLs to add
-     */
-    protected void addUrls(List<URL> urls) {
-        synchronized (lock) {
-            if (destroyed) {
-                throw new IllegalStateException("UrlResourceFinder has been destroyed");
-            }
-
-            boolean shouldRebuild = this.urls.addAll(urls);
-            if (shouldRebuild) {
-                rebuildClassPath();
-            }
-        }
-    }
-
-    private LinkedHashMap<URL, ResourceLocation> getClassPath() {
-        assert Thread.holdsLock(lock): "This method can only be called while holding the lock";
-
-        for (File file : watchedFiles) {
-            if (file.canRead()) {
-                rebuildClassPath();
-                break;
-            }
-        }
-
-        return classPath;
-    }
-
-    /**
-     * Rebuilds the entire class path.  This class is called when new URLs are added or one of the watched files
-     * becomes readable.  This method will not open jar files again, but will add any new entries not alredy open
-     * to the class path.  If any file based url is does not exist, we will watch for that file to appear.
-     */
-    private void rebuildClassPath() {
-        assert Thread.holdsLock(lock): "This method can only be called while holding the lock";
-
-        // copy all of the existing locations into a temp map and clear the class path
-        Map<URL,ResourceLocation> existingJarFiles = new LinkedHashMap<URL,ResourceLocation>(classPath);
-        classPath.clear();
-
-        LinkedList<URL> locationStack = new LinkedList<URL>(urls);
-        try {
-            while (!locationStack.isEmpty()) {
-                URL url = locationStack.removeFirst();
-
-                // Skip any duplicate urls in the classpath
-                if (classPath.containsKey(url)) {
-                    continue;
-                }
-
-                // Check is this URL has already been opened
-                ResourceLocation resourceLocation = existingJarFiles.remove(url);
-
-                // If not opened, cache the url and wrap it with a resource location
-                if (resourceLocation == null) {
-                    try {
-                        File file = cacheUrl(url);
-                        resourceLocation = createResourceLocation(url, file);
-                    } catch (FileNotFoundException e) {
-                        // if this is a file URL, the file doesn't exist yet... watch to see if it appears later
-                        if ("file".equals(url.getProtocol())) {
-                            File file = new File(url.getPath());
-                            watchedFiles.add(file);
-                            continue;
-
-                        }
-                    } catch (IOException ignored) {
-                        // can't seem to open the file... this is most likely a bad jar file
-                        // so don't keep a watch out for it because that would require lots of checking
-                        // Dain: We may want to review this decision later
-                        continue;
-                    } catch (UnsupportedOperationException ex) {
-                        // the protocol for the JAR file's URL is not supported.  This can occur when
-                        // the jar file is embedded in an EAR or CAR file.  Proceed but log the message.
-                        System.out.println("The protocol for the JAR file's URL is not supported" + ex);
-                        continue;
-                    }
-                }
-
-                // add the jar to our class path
-                classPath.put(resourceLocation.getCodeSource(), resourceLocation);
-
-                // push the manifest classpath on the stack (make sure to maintain the order)
-                List<URL> manifestClassPath = getManifestClassPath(resourceLocation);
-                locationStack.addAll(0, manifestClassPath);
-            }
-        } catch (Error e) {
-            destroy();
-            throw e;
-        }
-
-        for (ResourceLocation resourceLocation : existingJarFiles.values()) {
-            resourceLocation.close();
-        }
-    }
-
-    protected File cacheUrl(URL url) throws IOException {
-        if (!"file".equals(url.getProtocol())) {
-            // download the jar
-            throw new UnsupportedOperationException("Only local file jars are supported " + url);
-        }
-
-        File file = new File(url.getPath());
-        if (!file.exists()) {
-            throw new FileNotFoundException(file.getAbsolutePath());
-        }
-        if (!file.canRead()) {
-            throw new IOException("File is not readable: " + file.getAbsolutePath());
-        }
-        return file;
-    }
-
-    protected ResourceLocation createResourceLocation(URL codeSource, File cacheFile) throws IOException {
-        if (!cacheFile.exists()) {
-            throw new FileNotFoundException(cacheFile.getAbsolutePath());
-        }
-        if (!cacheFile.canRead()) {
-            throw new IOException("File is not readable: " + cacheFile.getAbsolutePath());
-        }
-
-        ResourceLocation resourceLocation;
-        if (cacheFile.isDirectory()) {
-            // DirectoryResourceLocation will only return "file" URLs within this directory
-            // do not user the DirectoryResourceLocation for non file based urls
-            resourceLocation = new DirectoryResourceLocation(cacheFile);
-        } else {
-            resourceLocation = new JarResourceLocation(codeSource, cacheFile);
-        }
-        return resourceLocation;
-    }
-
-    private List<URL> getManifestClassPath(ResourceLocation resourceLocation) {
-        try {
-            // get the manifest, if possible
-            Manifest manifest = resourceLocation.getManifest();
-            if (manifest == null) {
-                // some locations don't have a manifest
-                return Collections.EMPTY_LIST;
-            }
-
-            // get the class-path attribute, if possible
-            String manifestClassPath = manifest.getMainAttributes().getValue(Attributes.Name.CLASS_PATH);
-            if (manifestClassPath == null) {
-                return Collections.EMPTY_LIST;
-            }
-
-            // build the urls...
-            // the class-path attribute is space delimited
-            URL codeSource = resourceLocation.getCodeSource();
-            LinkedList<URL> classPathUrls = new LinkedList<URL>();
-            for (StringTokenizer tokenizer = new StringTokenizer(manifestClassPath, " "); tokenizer.hasMoreTokens();) {
-                String entry = tokenizer.nextToken();
-                try {
-                    // the class path entry is relative to the resource location code source
-                    URL entryUrl = new URL(codeSource, entry);
-                    classPathUrls.addLast(entryUrl);
-                } catch (MalformedURLException ignored) {
-                    // most likely a poorly named entry
-                }
-            }
-            return classPathUrls;
-        } catch (IOException ignored) {
-            // error opening the manifest
-            return Collections.EMPTY_LIST;
-        }
-    }
-}
diff --git a/modules/kernel/src/org/apache/axis2/client/FaultMapKey.java b/modules/kernel/src/org/apache/axis2/client/FaultMapKey.java
index 44e0d5d..bfe9427 100644
--- a/modules/kernel/src/org/apache/axis2/client/FaultMapKey.java
+++ b/modules/kernel/src/org/apache/axis2/client/FaultMapKey.java
@@ -25,8 +25,8 @@
 
 public class FaultMapKey {
 
-    private QName elementQname;
-    private String operationName;
+    private final QName elementQname;
+    private final String operationName;
 
     public FaultMapKey(QName elementQname, String operationName) {
         this.elementQname = elementQname;
@@ -39,8 +39,8 @@
         boolean isEqual = false;
         if (obj instanceof FaultMapKey){
             FaultMapKey faultMapKey = (FaultMapKey) obj;
-            isEqual = this.elementQname.equals(faultMapKey.getElementQname()) &&
-                          this.operationName.equals(faultMapKey.getOperationName());
+            isEqual = this.elementQname.equals(faultMapKey.elementQname) &&
+                          this.operationName.equals(faultMapKey.operationName);
         }
         return isEqual;
     }
@@ -48,20 +48,4 @@
     public int hashCode() {
         return this.elementQname.hashCode() + this.operationName.hashCode();
     }
-
-    public QName getElementQname() {
-        return elementQname;
-    }
-
-    public void setElementQname(QName elementQname) {
-        this.elementQname = elementQname;
-    }
-
-    public String getOperationName() {
-        return operationName;
-    }
-
-    public void setOperationName(String operationName) {
-        this.operationName = operationName;
-    }
 }
diff --git a/modules/kernel/src/org/apache/axis2/context/MessageContext.java b/modules/kernel/src/org/apache/axis2/context/MessageContext.java
index ef0ca2a..152bd71 100644
--- a/modules/kernel/src/org/apache/axis2/context/MessageContext.java
+++ b/modules/kernel/src/org/apache/axis2/context/MessageContext.java
@@ -21,7 +21,6 @@
 
 import org.apache.axiom.attachments.Attachments;
 import org.apache.axiom.om.OMOutputFormat;
-import org.apache.axiom.om.util.DetachableInputStream;
 import org.apache.axiom.soap.SOAP11Constants;
 import org.apache.axiom.soap.SOAP12Constants;
 import org.apache.axiom.soap.SOAPEnvelope;
@@ -52,6 +51,7 @@
 import org.apache.axis2.description.Parameter;
 import org.apache.axis2.description.TransportInDescription;
 import org.apache.axis2.description.TransportOutDescription;
+import org.apache.axis2.description.WSDL2Constants;
 import org.apache.axis2.engine.AxisConfiguration;
 import org.apache.axis2.engine.AxisError;
 import org.apache.axis2.engine.Handler;
@@ -1220,24 +1220,6 @@
     }
 
     /**
-     * @return inbound content length of 0
-     */
-    public long getInboundContentLength() throws IOException {
-        // If there is an attachment map, the Attachments keep track
-        // of the inbound content length.
-        if (attachments != null) {
-//            return attachments.getContentLength();
-        }
-
-        // Otherwise the length is accumulated by the DetachableInputStream.
-        DetachableInputStream dis =
-            (DetachableInputStream) getProperty(Constants.DETACHABLE_INPUT_STREAM);
-        if (dis != null) {
-            return dis.length();
-        }
-        return 0;
-    }
-    /**
      * @return Returns boolean.
      */
     public boolean isServerSide() {
@@ -1773,12 +1755,16 @@
      * @return attachment
      */
     public Attachments getAttachmentMap() {
-        if (attachments == null) {
+        return getAttachmentMap(true);
+    }
+
+    public Attachments getAttachmentMap(boolean create) {
+        if (attachments == null && create) {
             attachments = new Attachments();
         }
         return attachments;
     }
-
+    
     /**
      * Adds an attachment to the attachment Map of this message context. This
      * attachment gets serialised as a MIME attachment when sending the message
@@ -4320,4 +4306,49 @@
     public void setFailureReason(Exception failureReason) {
         this.failureReason = failureReason;
     }
+    
+    /**
+     * @return Identifies and returns the service endpoint for this message context. The method will
+     *         use the following steps to identify the endpoint:
+     *         <ul>
+     *         <li>If a non-null {@link AxisEndpoint} instance is set under the
+     *         {@link WSDL2Constants#ENDPOINT_LOCAL_NAME ENDPOINT_LOCAL_NAME} message context
+     *         property, return it</li>
+     *         <li>If a non-null {@link #getAxisService() axisService} instance is set and it
+     *         specifies {@link AxisService#isClientSide() clientSide=true}, retrieve the endpoint
+     *         which matches its {@link AxisService#getEndpointName() enpointName}</li>
+     *         <li>else, return <code>null</code></li>
+     *         </ul>
+     */
+    public AxisEndpoint findEndpoint() {
+        AxisEndpoint endpoint = (AxisEndpoint) getProperty(WSDL2Constants.ENDPOINT_LOCAL_NAME);
+        
+        final String methodName = "findEnpoint()";
+        if (endpoint != null) {
+            if (log.isDebugEnabled()) {
+                log.debug(String.format("%s:%s - identified endpoint from property '%s': %s", getLogIDString(), methodName, WSDL2Constants.ENDPOINT_LOCAL_NAME, endpoint.getName()));
+            }
+            
+            return endpoint;
+        }
+        
+        if (axisService == null) {
+            if (log.isWarnEnabled()) {
+                log.warn(String.format("%s:%s - no service set, cannot identify endpoint", getLogIDString(), methodName));
+            }
+            
+            return null;
+        }
+        
+        if (!axisService.isClientSide()) {
+            if (log.isWarnEnabled()) {
+                log.warn(String.format("%s:%s - no '%s' property set and serverSide=true, cannot uniquely identify endpoint for service: ", getLogIDString(), methodName, WSDL2Constants.ENDPOINT_LOCAL_NAME, axisService.getName()));
+            }
+            return null;
+        }
+        
+        //on client-side, the default endpoint name is the one the AxisService was created with
+        String endpointName = axisService.getEndpointName();
+        return axisService.getEndpoint(endpointName);
+    }
 }
diff --git a/modules/kernel/src/org/apache/axis2/context/externalize/MessageExternalizeUtils.java b/modules/kernel/src/org/apache/axis2/context/externalize/MessageExternalizeUtils.java
index a84efd5..78c9066 100644
--- a/modules/kernel/src/org/apache/axis2/context/externalize/MessageExternalizeUtils.java
+++ b/modules/kernel/src/org/apache/axis2/context/externalize/MessageExternalizeUtils.java
@@ -19,11 +19,16 @@
 

 package org.apache.axis2.context.externalize;

 

+import org.apache.axiom.attachments.Attachments;

+import org.apache.axiom.om.OMException;

 import org.apache.axiom.om.OMOutputFormat;

 import org.apache.axiom.om.OMXMLBuilderFactory;

 import org.apache.axiom.om.OMXMLParserWrapper;

+import org.apache.axiom.om.impl.MTOMConstants;

+import org.apache.axiom.om.util.StAXParserConfiguration;

 import org.apache.axiom.soap.SOAPEnvelope;

 import org.apache.axis2.AxisFault;

+import org.apache.axis2.Constants;

 import org.apache.axis2.builder.BuilderUtil;

 import org.apache.axis2.context.MessageContext;

 import org.apache.axis2.transport.MessageFormatter;

@@ -38,6 +43,9 @@
 import java.io.ObjectOutput;

 import java.io.OutputStream;

 

+import javax.xml.parsers.FactoryConfigurationError;

+import javax.xml.stream.XMLStreamException;

+

 /**

  * Utility to read/write the Message of a MessageContext

  * Message Object Format.

@@ -169,6 +177,42 @@
         }

     }

     

+    private static OMXMLParserWrapper getAttachmentsBuilder(MessageContext msgContext,

+                InputStream inStream, String contentTypeString,

+                boolean isSOAP)

+            throws OMException, XMLStreamException, FactoryConfigurationError {

+        Attachments attachments = BuilderUtil.createAttachmentsMap(msgContext, inStream, contentTypeString);

+        String charSetEncoding = BuilderUtil.getCharSetEncoding(attachments.getRootPartContentType());

+

+        if ((charSetEncoding == null)

+            || "null".equalsIgnoreCase(charSetEncoding)) {

+            charSetEncoding = MessageContext.UTF_8;

+        }

+        msgContext.setProperty(Constants.Configuration.CHARACTER_SET_ENCODING,

+                               charSetEncoding);

+

+        // Setting the Attachments map to new SwA API

+        msgContext.setAttachmentMap(attachments);

+

+        if (isSOAP) {

+            if (attachments.getAttachmentSpecType().equals(

+                    MTOMConstants.MTOM_TYPE)) {

+                return OMXMLBuilderFactory.createSOAPModelBuilder(attachments);

+            } else {

+                return OMXMLBuilderFactory.createSOAPModelBuilder(attachments.getRootPartInputStream(), charSetEncoding);

+            }

+

+        }

+        // To handle REST XOP case

+        else {

+            if (attachments.getAttachmentSpecType().equals(MTOMConstants.MTOM_TYPE)) {

+                return OMXMLBuilderFactory.createOMBuilder(StAXParserConfiguration.DEFAULT, attachments);

+            } else {

+                return OMXMLBuilderFactory.createOMBuilder(attachments.getRootPartInputStream(), charSetEncoding);

+            }

+        }

+    }

+

     /**

      * Read the Message

      * @param in

@@ -231,17 +275,11 @@
         try {

             if (optimized) {

                 boolean isSOAP = true;

-                builder =

-                    BuilderUtil.getAttachmentsBuilder(mc,

-                                                      mis,

-                                                      optimizedContentType,

-                                                      isSOAP);

+                builder = getAttachmentsBuilder(mc, mis, optimizedContentType, isSOAP);

                 envelope = (SOAPEnvelope) builder.getDocumentElement();

-                envelope.buildWithAttachments();

             } else {

                 builder = OMXMLBuilderFactory.createSOAPModelBuilder(mis, charSetEnc);

                 envelope = (SOAPEnvelope) builder.getDocumentElement();

-                envelope.build();

             }

         } catch (Exception ex) {

             // TODO: what to do if can't get the XML stream reader

@@ -251,9 +289,8 @@
                       + ex.getClass().getName() + " : " + ex.getLocalizedMessage() + "]", ex);

             envelope = null;

         } finally {

-            if (builder != null) {

-                builder.close();

-            }

+            // Prepare the builder to close the underlying stream

+            builder.detach();

             // Close the message input stream.  This will ensure that the

             // underlying stream is advanced past the message.

             mis.close();

diff --git a/modules/kernel/src/org/apache/axis2/dataretrieval/AxisDataLocatorImpl.java b/modules/kernel/src/org/apache/axis2/dataretrieval/AxisDataLocatorImpl.java
index c5b233e..4ff60a4 100644
--- a/modules/kernel/src/org/apache/axis2/dataretrieval/AxisDataLocatorImpl.java
+++ b/modules/kernel/src/org/apache/axis2/dataretrieval/AxisDataLocatorImpl.java
@@ -119,11 +119,11 @@
     * caching ServiceData for Axis2 Data Locators
     */
     private void cachingServiceData(OMElement e) {
-        Iterator i = e.getChildrenWithName(new QName(
+        Iterator<OMElement> i = e.getChildrenWithName(new QName(
                 DRConstants.SERVICE_DATA.DATA));
         String saveKey = "";
         while (i.hasNext()) {
-            ServiceData data = new ServiceData((OMElement) i.next());
+            ServiceData data = new ServiceData(i.next());
             saveKey = data.getDialect();
 
             String identifier = data.getIdentifier();
diff --git a/modules/kernel/src/org/apache/axis2/deployment/AxisConfigBuilder.java b/modules/kernel/src/org/apache/axis2/deployment/AxisConfigBuilder.java
index 8aa340c..c7d6148 100644
--- a/modules/kernel/src/org/apache/axis2/deployment/AxisConfigBuilder.java
+++ b/modules/kernel/src/org/apache/axis2/deployment/AxisConfigBuilder.java
@@ -95,7 +95,7 @@
             }
             // processing Parameters
             // Processing service level parameters
-            Iterator itr = config_element.getChildrenWithName(new QName(TAG_PARAMETER));
+            Iterator<OMElement> itr = config_element.getChildrenWithName(new QName(TAG_PARAMETER));
 
             processParameters(itr, axisConfig, axisConfig);
 
@@ -111,19 +111,19 @@
                 }
             }
             // Process Module refs
-            Iterator moduleitr =
+            Iterator<OMElement> moduleitr =
                     config_element.getChildrenWithName(new QName(DeploymentConstants.TAG_MODULE));
 
             processModuleRefs(moduleitr, axisConfig);
 
             // Processing Transport Senders
-            Iterator trs_senders =
+            Iterator<OMElement> trs_senders =
                     config_element.getChildrenWithName(new QName(TAG_TRANSPORT_SENDER));
 
             processTransportSenders(trs_senders);
 
             // Processing Transport Receivers
-            Iterator trs_Reivers =
+            Iterator<OMElement> trs_Reivers =
                     config_element.getChildrenWithName(new QName(TAG_TRANSPORT_RECEIVER));
 
             processTransportReceivers(trs_Reivers);
@@ -139,22 +139,22 @@
             processThreadContextMigrators(axisConfig, threadContextMigrators);
 
             // Process Observers
-            Iterator obs_ittr = config_element.getChildrenWithName(new QName(TAG_LISTENER));
+            Iterator<OMElement> obs_ittr = config_element.getChildrenWithName(new QName(TAG_LISTENER));
 
             processObservers(obs_ittr);
 
             // Processing Phase orders
-            Iterator phaseorders = config_element.getChildrenWithName(new QName(TAG_PHASE_ORDER));
+            Iterator<OMElement> phaseorders = config_element.getChildrenWithName(new QName(TAG_PHASE_ORDER));
 
             processPhaseOrders(phaseorders);
 
-            Iterator moduleConfigs =
+            Iterator<OMElement> moduleConfigs =
                     config_element.getChildrenWithName(new QName(TAG_MODULE_CONFIG));
 
             processModuleConfig(moduleConfigs, axisConfig, axisConfig);
 
             // processing <wsp:Policy> .. </..> elements
-            Iterator policyElements = PolicyUtil.getPolicyChildren(config_element);
+            Iterator<OMElement> policyElements = PolicyUtil.getPolicyChildren(config_element);
 
             if (policyElements != null && policyElements.hasNext()) {
                 processPolicyElements(policyElements,
@@ -162,7 +162,7 @@
             }
 
             // processing <wsp:PolicyReference> .. </..> elements
-            Iterator policyRefElements = PolicyUtil.getPolicyRefChildren(config_element);
+            Iterator<OMElement> policyRefElements = PolicyUtil.getPolicyRefChildren(config_element);
 
             if (policyRefElements != null && policyRefElements.hasNext()) {
                 processPolicyRefElements(policyElements,
@@ -187,7 +187,7 @@
             OMElement transactionElement = config_element.getFirstChildWithName(new QName(TAG_TRANSACTION));
             if (transactionElement != null) {
                 ParameterInclude transactionParameters = new ParameterIncludeImpl();
-                Iterator parameters = transactionElement.getChildrenWithName(new QName(TAG_PARAMETER));
+                Iterator<OMElement> parameters = transactionElement.getChildrenWithName(new QName(TAG_PARAMETER));
                 processParameters(parameters, transactionParameters, null);
 
                 TransactionConfiguration txcfg = null;
@@ -270,7 +270,7 @@
                 }
             }
             //Processing deployers.
-            Iterator deployerItr = config_element.getChildrenWithName(new QName(DEPLOYER));
+            Iterator<OMElement> deployerItr = config_element.getChildrenWithName(new QName(DEPLOYER));
             if (deployerItr != null) {
                 processDeployers(deployerItr);
             }
@@ -290,9 +290,9 @@
 
     private void processTargetResolvers(AxisConfiguration axisConfig, OMElement targetResolvers) {
         if (targetResolvers != null) {
-            Iterator iterator = targetResolvers.getChildrenWithName(new QName(TAG_TARGET_RESOLVER));
+            Iterator<OMElement> iterator = targetResolvers.getChildrenWithName(new QName(TAG_TARGET_RESOLVER));
             while (iterator.hasNext()) {
-                OMElement targetResolver = (OMElement) iterator.next();
+                OMElement targetResolver = iterator.next();
                 OMAttribute classNameAttribute =
                         targetResolver.getAttribute(new QName(TAG_CLASS_NAME));
                 String className = classNameAttribute.getAttributeValue();
@@ -313,9 +313,9 @@
 
     private void processThreadContextMigrators(AxisConfiguration axisConfig, OMElement targetResolvers) {
         if (targetResolvers != null) {
-            Iterator iterator = targetResolvers.getChildrenWithName(new QName(TAG_THREAD_CONTEXT_MIGRATOR));
+            Iterator<OMElement> iterator = targetResolvers.getChildrenWithName(new QName(TAG_THREAD_CONTEXT_MIGRATOR));
             while (iterator.hasNext()) {
-                OMElement threadContextMigrator = (OMElement) iterator.next();
+                OMElement threadContextMigrator = iterator.next();
                 OMAttribute listIdAttribute =
                     threadContextMigrator.getAttribute(new QName(TAG_LIST_ID));
                 String listId = listIdAttribute.getAttributeValue();
@@ -358,9 +358,9 @@
     	if (soaproleconfigElement != null) {
     		final boolean isUltimateReceiever = JavaUtils.isTrue(soaproleconfigElement.getAttributeValue(new QName(Constants.SOAP_ROLE_IS_ULTIMATE_RECEIVER_ATTRIBUTE)), true);
     		ArrayList roles = new ArrayList();
-    		Iterator iterator = soaproleconfigElement.getChildrenWithName(new QName(Constants.SOAP_ROLE_ELEMENT));
+    		Iterator<OMElement> iterator = soaproleconfigElement.getChildrenWithName(new QName(Constants.SOAP_ROLE_ELEMENT));
     		while (iterator.hasNext()) {
-    			OMElement roleElement = (OMElement) iterator.next();
+    			OMElement roleElement = iterator.next();
     			roles.add(roleElement.getText());
     		}
     		final List unmodifiableRoles = Collections.unmodifiableList(roles);
@@ -421,9 +421,9 @@
             deployer.setDirectory(directory);
             deployer.setExtension(extension);
             
-            for (Iterator<?> itr = element.getChildrenWithName(new QName(
+            for (Iterator<OMElement> itr = element.getChildrenWithName(new QName(
                     TAG_SERVICE_BUILDER_EXTENSION)); itr.hasNext();) {
-                OMElement serviceBuilderEle = (OMElement) itr.next();
+                OMElement serviceBuilderEle = itr.next();
                 String serviceBuilderClass = serviceBuilderEle.getAttributeValue(new QName(
                         TAG_CLASS_NAME));
                 String serviceBuilderName = serviceBuilderEle.getAttributeValue(new QName(
@@ -476,7 +476,7 @@
                 String module = moduleName_att.getAttributeValue();
                 ModuleConfiguration moduleConfiguration =
                         new ModuleConfiguration(module, parent);
-                Iterator parameters = moduleConfig.getChildrenWithName(new QName(TAG_PARAMETER));
+                Iterator<OMElement> parameters = moduleConfig.getChildrenWithName(new QName(TAG_PARAMETER));
 
                 processParameters(parameters, moduleConfiguration, parent);
                 config.addModuleConfig(moduleConfiguration);
@@ -527,7 +527,7 @@
                 observer = (AxisObserver) observerclass.newInstance();
                 // processing Parameters
                 // Processing service level parameters
-                Iterator itr = observerelement.getChildrenWithName(new QName(TAG_PARAMETER));
+                Iterator<OMElement> itr = observerelement.getChildrenWithName(new QName(TAG_PARAMETER));
                 processParameters(itr, observer, axisConfig);
                 // initialization
                 try {
@@ -546,10 +546,10 @@
 
     private ArrayList processPhaseList(OMElement phaseOrders) throws DeploymentException {
         ArrayList phaselist = new ArrayList();
-        Iterator phases = phaseOrders.getChildrenWithName(new QName(TAG_PHASE));
+        Iterator<OMElement> phases = phaseOrders.getChildrenWithName(new QName(TAG_PHASE));
 
         while (phases.hasNext()) {
-            OMElement phaseelement = (OMElement) phases.next();
+            OMElement phaseelement = phases.next();
             String phaseName =
                     phaseelement.getAttribute(new QName(ATTRIBUTE_NAME)).getAttributeValue();
             String phaseClass = phaseelement.getAttributeValue(new QName(TAG_CLASS_NAME));
@@ -564,10 +564,10 @@
 
             phase.setName(phaseName);
 
-            Iterator handlers = phaseelement.getChildrenWithName(new QName(TAG_HANDLER));
+            Iterator<OMElement> handlers = phaseelement.getChildrenWithName(new QName(TAG_HANDLER));
 
             while (handlers.hasNext()) {
-                OMElement omElement = (OMElement) handlers.next();
+                OMElement omElement = handlers.next();
                 HandlerDescription handler = processHandler(omElement, axisConfig, phaseName);
 
                 handler.getRules().setPhaseName(phaseName);
@@ -616,9 +616,9 @@
 
     private void processDefaultModuleVersions(OMElement defaultVersions)
             throws DeploymentException {
-        Iterator moduleVersions = defaultVersions.getChildrenWithName(new QName(TAG_MODULE));
+        Iterator<OMElement> moduleVersions = defaultVersions.getChildrenWithName(new QName(TAG_MODULE));
         while (moduleVersions.hasNext()) {
-            OMElement omElement = (OMElement) moduleVersions.next();
+            OMElement omElement = moduleVersions.next();
             String name = omElement.getAttributeValue(new QName(ATTRIBUTE_NAME));
             if (name == null) {
                 throw new DeploymentException(Messages.getMessage("modulenamecannotbenull"));
@@ -670,7 +670,7 @@
                     }
                 }
                 try {
-                    Iterator itr = transport.getChildrenWithName(new QName(TAG_PARAMETER));
+                    Iterator<OMElement> itr = transport.getChildrenWithName(new QName(TAG_PARAMETER));
                     processParameters(itr, transportIN, axisConfig);
                     // adding to axis2 config
                     axisConfig.addTransportIn(transportIN);
@@ -717,7 +717,7 @@
                     // process Parameters
                     // processing Parameters
                     // Processing service level parameters
-                    Iterator itr = transport.getChildrenWithName(new QName(TAG_PARAMETER));
+                    Iterator<OMElement> itr = transport.getChildrenWithName(new QName(TAG_PARAMETER));
 
                     processParameters(itr, transportout, axisConfig);
                     // adding to axis2 config
@@ -760,11 +760,11 @@
             axisConfig.addDataLocatorClassNames(DRConstants.GLOBAL_LEVEL,
                                                 className);
         }
-        Iterator iterator = dataLocatorElement.getChildrenWithName(new QName(
+        Iterator<OMElement> iterator = dataLocatorElement.getChildrenWithName(new QName(
                 DRConstants.DIALECT_LOCATOR_ELEMENT));
 
         while (iterator.hasNext()) {
-            OMElement locatorElement = (OMElement) iterator.next();
+            OMElement locatorElement = iterator.next();
             OMAttribute dialect = locatorElement.getAttribute(new QName(
                     DRConstants.DIALECT_ATTRIBUTE));
             OMAttribute dialectclass = locatorElement.getAttribute(new QName(
diff --git a/modules/kernel/src/org/apache/axis2/deployment/ClusterBuilder.java b/modules/kernel/src/org/apache/axis2/deployment/ClusterBuilder.java
index ea6019d..6990603 100644
--- a/modules/kernel/src/org/apache/axis2/deployment/ClusterBuilder.java
+++ b/modules/kernel/src/org/apache/axis2/deployment/ClusterBuilder.java
@@ -130,9 +130,9 @@
                 return;
             }
 
-            for (Iterator iter = lbEle.getChildrenWithName(new QName("applicationDomain"));
+            for (Iterator<OMElement> iter = lbEle.getChildrenWithName(new QName("applicationDomain"));
                  iter.hasNext();) {
-                OMElement omElement = (OMElement) iter.next();
+                OMElement omElement = iter.next();
                 String domainName = omElement.getAttributeValue(new QName("name")).trim();
                 String handlerClass = omElement.getAttributeValue(new QName("agent")).trim();
                 String descAttrib = omElement.getAttributeValue(new QName("description"));
@@ -265,9 +265,9 @@
                         replicationEle.getFirstChildWithName(new QName(TAG_DEFAULTS));
                 if (defaultsEle != null) {
                     List<String> defaults = new ArrayList<String>();
-                    for (Iterator iter = defaultsEle.getChildrenWithName(new QName(TAG_EXCLUDE));
+                    for (Iterator<OMElement> iter = defaultsEle.getChildrenWithName(new QName(TAG_EXCLUDE));
                          iter.hasNext();) {
-                        OMElement excludeEle = (OMElement) iter.next();
+                        OMElement excludeEle = iter.next();
                         OMAttribute nameAtt = excludeEle.getAttribute(new QName(ATTRIBUTE_NAME));
                         defaults.add(nameAtt.getAttributeValue());
                     }
@@ -275,15 +275,15 @@
                 }
 
                 // Process specifics
-                for (Iterator iter = replicationEle.getChildrenWithName(new QName(TAG_CONTEXT));
+                for (Iterator<OMElement> iter = replicationEle.getChildrenWithName(new QName(TAG_CONTEXT));
                      iter.hasNext();) {
-                    OMElement contextEle = (OMElement) iter.next();
+                    OMElement contextEle = iter.next();
                     String ctxClassName =
                             contextEle.getAttribute(new QName(ATTRIBUTE_CLASS)).getAttributeValue();
                     List<String> excludes = new ArrayList<String>();
-                    for (Iterator iter2 = contextEle.getChildrenWithName(new QName(TAG_EXCLUDE));
+                    for (Iterator<OMElement> iter2 = contextEle.getChildrenWithName(new QName(TAG_EXCLUDE));
                          iter2.hasNext();) {
-                        OMElement excludeEle = (OMElement) iter2.next();
+                        OMElement excludeEle = iter2.next();
                         OMAttribute nameAtt = excludeEle.getAttribute(new QName(ATTRIBUTE_NAME));
                         excludes.add(nameAtt.getAttributeValue());
                     }
diff --git a/modules/kernel/src/org/apache/axis2/deployment/DeploymentClassLoader.java b/modules/kernel/src/org/apache/axis2/deployment/DeploymentClassLoader.java
index d808283..ee02785 100644
--- a/modules/kernel/src/org/apache/axis2/deployment/DeploymentClassLoader.java
+++ b/modules/kernel/src/org/apache/axis2/deployment/DeploymentClassLoader.java
@@ -21,241 +21,30 @@
 
 import org.apache.axis2.classloader.BeanInfoCache;
 import org.apache.axis2.classloader.BeanInfoCachingClassLoader;
-import org.apache.commons.io.IOUtils;
 
-import java.io.ByteArrayInputStream;
 import java.io.IOException;
 import java.io.InputStream;
 import java.net.URL;
 import java.net.URLClassLoader;
-import java.net.URLConnection;
-import java.net.URLStreamHandler;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Enumeration;
-import java.util.HashMap;
-import java.util.List;
-import java.util.zip.ZipEntry;
-import java.util.zip.ZipInputStream;
 
 public class DeploymentClassLoader extends URLClassLoader implements BeanInfoCachingClassLoader {
-    // List of URL's
-    private URL[] urls = null;
-
-    // List of jar files inside the jars in the original url
-    private List embedded_jars;
-
     private boolean isChildFirstClassLoading;
 
     private final BeanInfoCache beanInfoCache = new BeanInfoCache();
     
     /**
-     * DeploymentClassLoader is extended from URLClassLoader. The constructor
-     * does not override the super constructor, but takes in an addition list of
-     * jar files inside /lib directory.
+     * Constructor.
      *
      * @param urls   <code>URL</code>s
      * @param parent parent classloader <code>ClassLoader</code>
      */
     public DeploymentClassLoader(URL[] urls,
-                                 List embedded_jars,
                                  ClassLoader parent,
                                  boolean isChildFirstClassLoading) {
         super(urls, parent);
-        this.urls = urls;
-        this.embedded_jars = embedded_jars;
         this.isChildFirstClassLoading = isChildFirstClassLoading;
     }
 
-    /**
-     * Finds and loads the class with the specified name from the URL search
-     * path. Any URLs referring to JAR files are loaded and opened as needed
-     * until the class is found.
-     *
-     * @param name the name of the class
-     * @return the resulting class
-     * @exception ClassNotFoundException if the class could not be found
-     */
-    protected Class findClass(String name) throws ClassNotFoundException {
-        Class clazz;
-        try {
-            clazz = super.findClass(name);
-        } catch (ClassNotFoundException e) {
-            byte raw[] = null;
-            try {
-                String completeFileName = name;
-                /**
-                 * Replacing org.apache. -> org/apache/...
-                 */
-                completeFileName = completeFileName.replace('.', '/').concat(".class");
-                raw = getBytes(completeFileName);
-            } catch (Exception ex) {
-                // Fall through
-            }
-            if (raw == null) {
-                throw new ClassNotFoundException("Class Not found : " + name);
-            }
-            clazz = defineClass(name, raw, 0, raw.length);
-        }
-        return clazz;
-    }
-
-
-    /**
-     * Finds the resource with the specified name on the URL search path.
-     *
-     * @param resource the name of the resource
-     * @return a <code>URL</code> for the resource, or <code>null</code>
-     * if the resource could not be found.
-     */
-    public URL findResource(String resource) {
-        URL url = super.findResource(resource);
-        if (url == null) {
-            for (int i = 0; embedded_jars != null && i < embedded_jars.size(); i++) {
-                String libjar_name = (String) embedded_jars.get(i);
-                try {
-                    InputStream in = getJarAsStream(libjar_name);
-                    ZipInputStream zin = new ZipInputStream(in);
-                    ZipEntry entry;
-                    String entryName;
-                    while ((entry = zin.getNextEntry()) != null) {
-                        entryName = entry.getName();
-                        if (entryName != null &&
-                                entryName.endsWith(resource)) {
-                            byte[] raw = IOUtils.toByteArray(zin);
-                            return new URL("jar", "", -1, urls[0] + "!/" + libjar_name + "!/" + entryName,
-                                    new ByteUrlStreamHandler(raw));
-                        }
-                    }
-                } catch (Exception e) {
-                    throw new RuntimeException(e);
-                }
-            }
-        }
-        return url;
-    }
-
-    /**
-     * Returns an Enumeration of URLs representing all of the resources
-     * on the URL search path having the specified name.
-     *
-     * @param resource the resource name
-     * @exception IOException if an I/O exception occurs
-     * @return an <code>Enumeration</code> of <code>URL</code>s
-     */
-    public Enumeration findResources(String resource) throws IOException {
-        ArrayList resources = new ArrayList();
-        Enumeration e = super.findResources(resource);
-        while (e.hasMoreElements()) {
-            resources.add(e.nextElement());
-        }
-        for (int i = 0; embedded_jars != null && i < embedded_jars.size(); i++) {
-            String libjar_name = (String) embedded_jars.get(i);
-            try {
-            InputStream in = getJarAsStream(libjar_name);
-            ZipInputStream zin = new ZipInputStream(in);
-            ZipEntry entry;
-            String entryName;
-                while ((entry = zin.getNextEntry()) != null) {
-                    entryName = entry.getName();
-                    if (entryName != null &&
-                            entryName.endsWith(resource)) {
-                        byte[] raw = IOUtils.toByteArray(zin);
-                        resources.add(new URL("jar", "", -1, urls[0] + "!/" + libjar_name + "!/" + entryName,
-                                new ByteUrlStreamHandler(raw)));
-                    }
-                }
-            } catch (Exception ex) {
-                throw new RuntimeException(ex);
-            }
-        }
-        return Collections.enumeration(resources);
-    }
-
-    /**
-     * Access the jars file (/lib) one by one , then for each one create a <code>ZipInputStream</code>
-     * and check to see whether there is any entry eith given name. if it is found then
-     * return the byte array for that
-     *
-     * @param resource <code>String</code>  Name of the file to be found
-     * @return byte[]
-     * @throws java.io.IOException <code>Exception</code>
-     */
-    private byte[] getBytes(String resource) throws Exception {
-        for (int i = 0; embedded_jars != null && i < embedded_jars.size(); i++) {
-            String libjar_name = (String) embedded_jars.get(i);
-            InputStream in = getJarAsStream(libjar_name);
-            byte[] bytes = getBytes(in, resource);
-            if(bytes != null) {
-                return bytes;
-            }
-        }
-        return null;
-    }
-
-    /**
-     * Get a specific entry's content as a byte array
-     * 
-     * @param in
-     * @param resource
-     * @return
-     * @throws Exception
-     */
-    private byte[] getBytes(InputStream in, String resource) throws Exception {
-        ZipInputStream zin = new ZipInputStream(in);
-        ZipEntry entry;
-        String entryName;
-        while ((entry = zin.getNextEntry()) != null) {
-            entryName = entry.getName();
-            if (entryName != null &&
-                    entryName.endsWith(resource)) {
-                byte[] raw = IOUtils.toByteArray(zin);
-                zin.close();
-                return raw;
-            }
-        }
-        return null;
-    }
-
-    /**
-     * Get the specified embedded jar from the main jar 
-     *
-     * @param libjar_name
-     * @return
-     * @throws Exception
-     */
-    private InputStream getJarAsStream(String libjar_name) throws Exception {
-        return new ByteArrayInputStream(getBytes(urls[0].openStream(), libjar_name));
-    }
-
-    public static class ByteUrlStreamHandler extends URLStreamHandler {
-        private byte[] bytes;
-
-        public ByteUrlStreamHandler(byte[] bytes) {
-            this.bytes = bytes;
-        }
-
-        protected URLConnection openConnection(URL u) throws IOException {
-            return new ByteURLConnection(u, bytes);
-        }
-    }
-
-    public static class ByteURLConnection extends URLConnection {
-        protected byte[] bytes;
-
-        public ByteURLConnection(URL url, byte[] bytes) {
-            super(url);
-            this.bytes = bytes;
-        }
-
-        public void connect() {
-        }
-
-        public InputStream getInputStream() {
-            return new ByteArrayInputStream(bytes);
-        }
-    }
-
     public InputStream getResourceAsStream(String name) {
         URL url = findResource(name);
         if(url == null) {
@@ -272,7 +61,7 @@
     }
 
     protected synchronized Class<?> loadClass(String name, boolean resolve) throws ClassNotFoundException {
-        Class c = null;
+        Class<?> c = null;
         if (!isChildFirstClassLoading) {
             c = super.loadClass(name, resolve);
         } else {
diff --git a/modules/kernel/src/org/apache/axis2/deployment/DeploymentConstants.java b/modules/kernel/src/org/apache/axis2/deployment/DeploymentConstants.java
index ab4a513..2e7bd01 100644
--- a/modules/kernel/src/org/apache/axis2/deployment/DeploymentConstants.java
+++ b/modules/kernel/src/org/apache/axis2/deployment/DeploymentConstants.java
@@ -95,7 +95,9 @@
     String TAG_EXTRACT_SERVICE_ARCHIVE = "extractServiceArchive";
     String TAG_DISPATCH_ORDER = "dispatchOrder";
     String TAG_DISPATCHER = "dispatcher";
-    String TAG_DESCRIPTION = "Description";
+    String TAG_DESCRIPTION = "description";
+    // Alternate description tag; see AXIS2-5884
+    String TAG_DESCRIPTION_ALT = "Description";
     String TAG_CLASS_NAME = "class";
     String TAG_LIST_ID = "listId";
     String TAG_EXCLUDE_PROPERTIES= "excludeProperties";
diff --git a/modules/kernel/src/org/apache/axis2/deployment/DeploymentEngine.java b/modules/kernel/src/org/apache/axis2/deployment/DeploymentEngine.java
index 73f3f75..45df227 100644
--- a/modules/kernel/src/org/apache/axis2/deployment/DeploymentEngine.java
+++ b/modules/kernel/src/org/apache/axis2/deployment/DeploymentEngine.java
@@ -22,7 +22,6 @@
 
 import org.apache.axis2.AxisFault;
 import org.apache.axis2.Constants;
-import org.apache.axis2.classloader.JarFileClassLoader;
 import org.apache.axis2.context.ConfigurationContext;
 import org.apache.axis2.deployment.repository.util.ArchiveReader;
 import org.apache.axis2.deployment.repository.util.DeploymentFileData;
@@ -800,11 +799,13 @@
      * @throws DeploymentException if there's a problem
      */
     protected void setClassLoaders(String axis2repoURI) throws DeploymentException {
-        ClassLoader sysClassLoader =
-                Utils.getClassLoader(Thread.currentThread().getContextClassLoader(), axis2repoURI,
-                        axisConfig.isChildFirstClassLoading());
-
-        axisConfig.setSystemClassLoader(sysClassLoader);
+        if (axisConfig.getSystemClassLoader() == null) {
+            ClassLoader sysClassLoader =
+                    Utils.getClassLoader(Thread.currentThread().getContextClassLoader(), axis2repoURI,
+                            axisConfig.isChildFirstClassLoading());
+    
+            axisConfig.setSystemClassLoader(sysClassLoader);
+        }
         if (servicesDir.exists()) {
             axisConfig.setServiceClassLoader(
                     Utils.getClassLoader(axisConfig.getSystemClassLoader(), servicesDir,
@@ -1154,19 +1155,23 @@
         return (extensionMap != null) ? extensionMap.get(extension) : null;
     }
 
+    private static void destroyClassLoader(ClassLoader classLoader) {
+        if (classLoader instanceof DeploymentClassLoader) {
+            try {
+                ((DeploymentClassLoader)classLoader).close();
+            } catch (IOException ex) {
+                log.warn("Failed to destroy class loader " + classLoader, ex);
+            }
+        }
+    }
+
     /**
      * Clean up the mess
      */
     public void cleanup() {
-        if (axisConfig.getModuleClassLoader() instanceof JarFileClassLoader) {
-            ((JarFileClassLoader) axisConfig.getModuleClassLoader()).destroy();
-        }
-        if (axisConfig.getServiceClassLoader() instanceof JarFileClassLoader) {
-            ((JarFileClassLoader) axisConfig.getServiceClassLoader()).destroy();
-        }
-        if (axisConfig.getSystemClassLoader() instanceof JarFileClassLoader) {
-            ((JarFileClassLoader) axisConfig.getSystemClassLoader()).destroy();
-        }
+        destroyClassLoader(axisConfig.getModuleClassLoader());
+        destroyClassLoader(axisConfig.getServiceClassLoader());
+        destroyClassLoader(axisConfig.getSystemClassLoader());
         if (scheduler != null) {
             scheduler.cleanup(schedulerTask);
         }
diff --git a/modules/kernel/src/org/apache/axis2/deployment/DescriptionBuilder.java b/modules/kernel/src/org/apache/axis2/deployment/DescriptionBuilder.java
index a04c531..7234b70 100644
--- a/modules/kernel/src/org/apache/axis2/deployment/DescriptionBuilder.java
+++ b/modules/kernel/src/org/apache/axis2/deployment/DescriptionBuilder.java
@@ -131,10 +131,10 @@
     protected HashMap<String,MessageReceiver> processMessageReceivers(OMElement messageReceivers)
             throws DeploymentException {
         HashMap<String,MessageReceiver> mr_mep = new HashMap<String,MessageReceiver>();
-        Iterator msgReceivers = messageReceivers.getChildrenWithName(new QName(
+        Iterator<OMElement> msgReceivers = messageReceivers.getChildrenWithName(new QName(
                 TAG_MESSAGE_RECEIVER));
         while (msgReceivers.hasNext()) {
-            OMElement msgReceiver = (OMElement) msgReceivers.next();
+            OMElement msgReceiver = msgReceivers.next();
             final OMElement tempMsgReceiver = msgReceiver;
             MessageReceiver receiver = null;
             try {
@@ -164,10 +164,10 @@
     protected HashMap<String,MessageReceiver> processMessageReceivers(ClassLoader loader,
                                               OMElement element) throws DeploymentException {
         HashMap<String,MessageReceiver> meps = new HashMap<String,MessageReceiver>();
-        Iterator iterator = element.getChildrenWithName(new QName(
+        Iterator<OMElement> iterator = element.getChildrenWithName(new QName(
                 TAG_MESSAGE_RECEIVER));
         while (iterator.hasNext()) {
-            OMElement receiverElement = (OMElement) iterator.next();
+            OMElement receiverElement = iterator.next();
             MessageReceiver receiver = loadMessageReceiver(loader,
                                                            receiverElement);
             OMAttribute mepAtt = receiverElement
@@ -216,10 +216,10 @@
     protected HashMap processMessageBuilders(OMElement messageBuildersElement)
             throws DeploymentException {
         HashMap builderSelector = new HashMap();
-        Iterator msgBuilders = messageBuildersElement
+        Iterator<OMElement> msgBuilders = messageBuildersElement
                 .getChildrenWithName(new QName(TAG_MESSAGE_BUILDER));
         while (msgBuilders.hasNext()) {
-            OMElement msgBuilderElement = (OMElement) msgBuilders.next();
+            OMElement msgBuilderElement = msgBuilders.next();
             OMAttribute builderName = msgBuilderElement.getAttribute(new QName(TAG_CLASS_NAME));
             String className = builderName.getAttributeValue();
             Class builderClass = null;
@@ -254,10 +254,10 @@
     protected HashMap processMessageFormatters(OMElement messageFormattersElement)
             throws DeploymentException {
         HashMap messageFormatters = new HashMap();
-        Iterator msgFormatters = messageFormattersElement
+        Iterator<OMElement> msgFormatters = messageFormattersElement
                 .getChildrenWithName(new QName(TAG_MESSAGE_FORMATTER));
         while (msgFormatters.hasNext()) {
-            OMElement msgFormatterElement = (OMElement) msgFormatters.next();
+            OMElement msgFormatterElement = msgFormatters.next();
             OMElement tempMsgFormatter = msgFormatterElement;
             OMAttribute formatterName = tempMsgFormatter.getAttribute(new QName(TAG_CLASS_NAME));
             String className = formatterName.getAttributeValue();
@@ -327,11 +327,11 @@
             return flow;
         }
 
-        Iterator handlers = flowelement.getChildrenWithName(new QName(
+        Iterator<OMElement> handlers = flowelement.getChildrenWithName(new QName(
                 TAG_HANDLER));
 
         while (handlers.hasNext()) {
-            OMElement handlerElement = (OMElement) handlers.next();
+            OMElement handlerElement = handlers.next();
 
             flow.addHandler(processHandler(handlerElement, parent));
         }
@@ -459,7 +459,7 @@
                 }
             }
 
-            Iterator parameters = handler_element
+            Iterator<OMElement> parameters = handler_element
                     .getChildrenWithName(new QName(TAG_PARAMETER));
 
             try {
@@ -586,11 +586,11 @@
      */
     protected void processActionMappings(OMElement operation,
                                          AxisOperation op_descrip) {
-        Iterator mappingIterator = operation.getChildrenWithName(new QName(
+        Iterator<OMElement> mappingIterator = operation.getChildrenWithName(new QName(
                 Constants.ACTION_MAPPING));
         ArrayList mappingList = new ArrayList();
         while (mappingIterator.hasNext()) {
-            OMElement mappingElement = (OMElement) mappingIterator.next();
+            OMElement mappingElement = mappingIterator.next();
             String inputActionString = mappingElement.getText().trim();
             if (log.isTraceEnabled()) {
                 log.trace("Input Action Mapping found: " + inputActionString);
@@ -614,10 +614,10 @@
             }
             op_descrip.setOutputAction(outputActionString);
         }
-        Iterator faultActionsIterator = operation
+        Iterator<OMElement> faultActionsIterator = operation
                 .getChildrenWithName(new QName(Constants.FAULT_ACTION_MAPPING));
         while (faultActionsIterator.hasNext()) {
-            OMElement faultMappingElement = (OMElement) faultActionsIterator
+            OMElement faultMappingElement = faultActionsIterator
                     .next();
             String faultActionString = faultMappingElement.getText().trim();
             String faultActionName = faultMappingElement
diff --git a/modules/kernel/src/org/apache/axis2/deployment/ModuleBuilder.java b/modules/kernel/src/org/apache/axis2/deployment/ModuleBuilder.java
index 14b954b..dc8d5e9 100644
--- a/modules/kernel/src/org/apache/axis2/deployment/ModuleBuilder.java
+++ b/modules/kernel/src/org/apache/axis2/deployment/ModuleBuilder.java
@@ -105,7 +105,7 @@
             OMAttribute moduleClassAtt = moduleElement.getAttribute(new QName(TAG_CLASS_NAME));
             // processing Parameters
             // Processing service level parameters
-            Iterator<?> itr = moduleElement.getChildrenWithName(new QName(TAG_PARAMETER));
+            Iterator<OMElement> itr = moduleElement.getChildrenWithName(new QName(TAG_PARAMETER));
 
             processParameters(itr, module, module.getParent());
 
@@ -148,7 +148,9 @@
             // Process service description
             OMElement descriptionElement =
                     moduleElement.getFirstChildWithName(new QName(TAG_DESCRIPTION));
-
+            if (descriptionElement == null) {
+                descriptionElement = moduleElement.getFirstChildWithName(new QName(TAG_DESCRIPTION_ALT));
+            }
             if (descriptionElement != null) {
                 OMElement descriptionValue = descriptionElement.getFirstElement();
 
@@ -222,7 +224,7 @@
             }
 
             // processing Operations
-            Iterator<?> op_itr = moduleElement.getChildrenWithName(new QName(TAG_OPERATION));
+            Iterator<OMElement> op_itr = moduleElement.getChildrenWithName(new QName(TAG_OPERATION));
             List<AxisOperation> operations = processOperations(op_itr);
 
             for (AxisOperation op : operations) {
diff --git a/modules/kernel/src/org/apache/axis2/deployment/ModuleDeployer.java b/modules/kernel/src/org/apache/axis2/deployment/ModuleDeployer.java
index a02cef3..5a00c78 100644
--- a/modules/kernel/src/org/apache/axis2/deployment/ModuleDeployer.java
+++ b/modules/kernel/src/org/apache/axis2/deployment/ModuleDeployer.java
@@ -197,21 +197,14 @@
         }
 
         try {
-            ClassLoader deploymentClassLoader = Utils.createClassLoader(new URL[] { fileUrl },
-                    axisConfig.getModuleClassLoader(), true,
+            ClassLoader deploymentClassLoader = Utils.createClassLoader(fileUrl, null,
+                    axisConfig.getModuleClassLoader(),
                     (File) axisConfig.getParameterValue(Constants.Configuration.ARTIFACTS_TEMP_DIR),
                     axisConfig.isChildFirstClassLoading());
             AxisModule module = new AxisModule();
             module.setModuleClassLoader(deploymentClassLoader);
             module.setParent(axisConfig);
-            int index = fileUrl.getPath().lastIndexOf(File.separator);
-            String moduleFile;
-            if(index > 0){
-                moduleFile = fileUrl.getPath().substring(index);                
-            } else {
-                moduleFile = fileUrl.getPath();                
-            }            
-            module.setArchiveName(moduleFile);
+            module.setArchiveName(DescriptionBuilder.getShortFileName(deploymentFileData.getName()));
             populateModule(module, fileUrl);
             module.setFileName(fileUrl);
             DeploymentEngine.addNewModule(module, axisConfig);
diff --git a/modules/kernel/src/org/apache/axis2/deployment/POJODeployer.java b/modules/kernel/src/org/apache/axis2/deployment/POJODeployer.java
index d0dad51..dd4fbfa 100644
--- a/modules/kernel/src/org/apache/axis2/deployment/POJODeployer.java
+++ b/modules/kernel/src/org/apache/axis2/deployment/POJODeployer.java
@@ -105,17 +105,16 @@
                 List<String> classList = Utils.getListOfClasses(deploymentFileData);
                 ArrayList<AxisService> axisServiceList = new ArrayList<AxisService>();
                 for (String className : classList) {
-                    ArrayList<URL> urls = new ArrayList<URL>();
-                    urls.add(deploymentFileData.getFile().toURI().toURL());
-                    urls.add(configCtx.getAxisConfiguration().getRepository());
+                    List<URL> extraUrls = new ArrayList<>();
+                    extraUrls.add(configCtx.getAxisConfiguration().getRepository());
                     String webLocation = DeploymentEngine.getWebLocationString();
                     if (webLocation != null) {
-                        urls.add(new File(webLocation).toURI().toURL());
+                        extraUrls.add(new File(webLocation).toURI().toURL());
                     }
                     ClassLoader classLoader = Utils.createClassLoader(
-                            urls,
+                            deploymentFileData.getFile().toURI().toURL(),
+                            extraUrls.toArray(new URL[extraUrls.size()]),
                             configCtx.getAxisConfiguration().getSystemClassLoader(),
-                            true,
                             (File)configCtx.getAxisConfiguration().
                                     getParameterValue(Constants.Configuration.ARTIFACTS_TEMP_DIR),
                             configCtx.getAxisConfiguration().isChildFirstClassLoading());
diff --git a/modules/kernel/src/org/apache/axis2/deployment/RepositoryListener.java b/modules/kernel/src/org/apache/axis2/deployment/RepositoryListener.java
index 4d6896e..c9e9538 100644
--- a/modules/kernel/src/org/apache/axis2/deployment/RepositoryListener.java
+++ b/modules/kernel/src/org/apache/axis2/deployment/RepositoryListener.java
@@ -167,7 +167,13 @@
             classPath = ".";
         }
         File root = new File(classPath);
-        File[] files = root.listFiles();
+        File[] files;
+        try {
+            files = root.listFiles();
+        } catch (SecurityException ex) {
+            // Ignore
+            files = null;
+        }
         if (files != null) {
             for (int i = 0; i < files.length; i++) {
                 File file = files[i];
diff --git a/modules/kernel/src/org/apache/axis2/deployment/ServiceBuilder.java b/modules/kernel/src/org/apache/axis2/deployment/ServiceBuilder.java
index 8a188a4..a36b607 100644
--- a/modules/kernel/src/org/apache/axis2/deployment/ServiceBuilder.java
+++ b/modules/kernel/src/org/apache/axis2/deployment/ServiceBuilder.java
@@ -56,74 +56,74 @@
  * Builds a service description from OM
  */
 public class ServiceBuilder extends DescriptionBuilder {
-	private static final Log log = LogFactory.getLog(ServiceBuilder.class);
-	private AxisService service;
-	private Map<String,AxisService> wsdlServiceMap = new HashMap<String,AxisService>();
+    private static final Log log = LogFactory.getLog(ServiceBuilder.class);
+    private AxisService service;
+    private Map<String,AxisService> wsdlServiceMap = new HashMap<String,AxisService>();
 
-	public ServiceBuilder(ConfigurationContext configCtx, AxisService service) {
-		this.service = service;
-		this.configCtx = configCtx;
-		this.axisConfig = this.configCtx.getAxisConfiguration();
-	}
+    public ServiceBuilder(ConfigurationContext configCtx, AxisService service) {
+        this.service = service;
+        this.configCtx = configCtx;
+        this.axisConfig = this.configCtx.getAxisConfiguration();
+    }
 
-	public ServiceBuilder(InputStream serviceInputStream,
-			ConfigurationContext configCtx, AxisService service) {
-		super(serviceInputStream, configCtx);
-		this.service = service;
-	}
+    public ServiceBuilder(InputStream serviceInputStream,
+            ConfigurationContext configCtx, AxisService service) {
+        super(serviceInputStream, configCtx);
+        this.service = service;
+    }
 
-	/**
-	 * Populates service from corresponding OM.
-	 * 
-	 * @param service_element
-	 *            an OMElement for the &lt;service&gt; tag
-	 * @return a filled-in AxisService, configured from the passed XML
-	 * @throws DeploymentException
-	 *             if there is a problem
-	 */
-	public AxisService populateService(OMElement service_element)
-			throws DeploymentException {
-		try {
-			// Determine whether service should be activated.
-			String serviceActivate = service_element
-					.getAttributeValue(new QName(ATTRIBUTE_ACTIVATE));
-			if (serviceActivate != null) {
-				if ("true".equals(serviceActivate)) {
-					service.setActive(true);
-				} else if ("false".equals(serviceActivate)) {
-					service.setActive(false);
-				}
-			}
+    /**
+     * Populates service from corresponding OM.
+     * 
+     * @param service_element
+     *            an OMElement for the &lt;service&gt; tag
+     * @return a filled-in AxisService, configured from the passed XML
+     * @throws DeploymentException
+     *             if there is a problem
+     */
+    public AxisService populateService(OMElement service_element)
+            throws DeploymentException {
+        try {
+            // Determine whether service should be activated.
+            String serviceActivate = service_element
+                    .getAttributeValue(new QName(ATTRIBUTE_ACTIVATE));
+            if (serviceActivate != null) {
+                if ("true".equals(serviceActivate)) {
+                    service.setActive(true);
+                } else if ("false".equals(serviceActivate)) {
+                    service.setActive(false);
+                }
+            }
 
-			// Processing service level parameters
-			OMAttribute serviceNameatt = service_element
-					.getAttribute(new QName(ATTRIBUTE_NAME));
+            // Processing service level parameters
+            OMAttribute serviceNameatt = service_element
+                    .getAttribute(new QName(ATTRIBUTE_NAME));
 
-			// If the service name is explicitly specified in the services.xml
-			// then use that as the service name
-			if (serviceNameatt != null) {
-				if (!"".equals(serviceNameatt.getAttributeValue().trim())) {
-					AxisService wsdlService = wsdlServiceMap
-							.get(serviceNameatt.getAttributeValue());
-					if (wsdlService != null) {
-						wsdlService.setClassLoader(service.getClassLoader());
-						wsdlService.setParent(service.getAxisServiceGroup());
-						service = wsdlService;
-						service.setWsdlFound(true);
-						service.setCustomWsdl(true);
-					}
-					service.setName(serviceNameatt.getAttributeValue());
-					// To be on the safe side
-					if (service.getDocumentation() == null) {
-						service.setDocumentation(serviceNameatt
-								.getAttributeValue());
-					}
-				}
-			}
+            // If the service name is explicitly specified in the services.xml
+            // then use that as the service name
+            if (serviceNameatt != null) {
+                if (!"".equals(serviceNameatt.getAttributeValue().trim())) {
+                    AxisService wsdlService = wsdlServiceMap
+                            .get(serviceNameatt.getAttributeValue());
+                    if (wsdlService != null) {
+                        wsdlService.setClassLoader(service.getClassLoader());
+                        wsdlService.setParent(service.getAxisServiceGroup());
+                        service = wsdlService;
+                        service.setWsdlFound(true);
+                        service.setCustomWsdl(true);
+                    }
+                    service.setName(serviceNameatt.getAttributeValue());
+                    // To be on the safe side
+                    if (service.getDocumentation() == null) {
+                        service.setDocumentation(serviceNameatt
+                                .getAttributeValue());
+                    }
+                }
+            }
 
-			Iterator itr = service_element.getChildrenWithName(new QName(
-					TAG_PARAMETER));
-			processParameters(itr, service, service.getParent());
+            Iterator<OMElement> itr = service_element.getChildrenWithName(new QName(
+                    TAG_PARAMETER));
+            processParameters(itr, service, service.getParent());
 
             Parameter childFirstClassLoading =
                     service.getParameter(Constants.Configuration.ENABLE_CHILD_FIRST_CLASS_LOADING);
@@ -139,214 +139,216 @@
                 }
             }
 
-			// If multiple services in one service group have different values
-			// for the PARENT_FIRST
-			// parameter then the final value become the value specified by the
-			// last service in the group
-			// Parameter parameter =
-			// service.getParameter(DeploymentClassLoader.PARENT_FIRST);
-			// if (parameter !=null && "false".equals(parameter.getValue())) {
-			// ClassLoader serviceClassLoader = service.getClassLoader();
-			// ((DeploymentClassLoader)serviceClassLoader).setParentFirst(false);
-			// }
-			// process service description
-			OMElement descriptionElement = service_element
-					.getFirstChildWithName(new QName(TAG_DESCRIPTION));
-			if (descriptionElement != null) {
-				OMElement descriptionValue = descriptionElement
-						.getFirstElement();
-				if (descriptionValue != null) {
-					service.setDocumentation(descriptionValue);
-				} else {
-					service.setDocumentation(descriptionElement.getText());
-				}
-			} else {
-				serviceNameatt = service_element.getAttribute(new QName(
-						ATTRIBUTE_NAME));
+            // If multiple services in one service group have different values
+            // for the PARENT_FIRST
+            // parameter then the final value become the value specified by the
+            // last service in the group
+            // Parameter parameter =
+            // service.getParameter(DeploymentClassLoader.PARENT_FIRST);
+            // if (parameter !=null && "false".equals(parameter.getValue())) {
+            // ClassLoader serviceClassLoader = service.getClassLoader();
+            // ((DeploymentClassLoader)serviceClassLoader).setParentFirst(false);
+            // }
+            // process service description
+            OMElement descriptionElement = service_element
+                    .getFirstChildWithName(new QName(TAG_DESCRIPTION));
+            if (descriptionElement == null) {
+                descriptionElement = service_element.getFirstChildWithName(new QName(TAG_DESCRIPTION_ALT));
+            }
+            if (descriptionElement != null) {
+                OMElement descriptionValue = descriptionElement
+                        .getFirstElement();
+                if (descriptionValue != null) {
+                    service.setDocumentation(descriptionValue);
+                } else {
+                    service.setDocumentation(descriptionElement.getText());
+                }
+            } else {
+                serviceNameatt = service_element.getAttribute(new QName(
+                        ATTRIBUTE_NAME));
 
-				if (serviceNameatt != null) {
-					if (!"".equals(serviceNameatt.getAttributeValue().trim())
-							&& service.getDocumentation() == null) {
-						service.setDocumentation(serviceNameatt
-								.getAttributeValue());
-					}
-				}
-			}
+                if (serviceNameatt != null) {
+                    if (!"".equals(serviceNameatt.getAttributeValue().trim())
+                            && service.getDocumentation() == null) {
+                        service.setDocumentation(serviceNameatt
+                                .getAttributeValue());
+                    }
+                }
+            }
 
-			if (service.getParameter("ServiceClass") == null) {
-				log.debug("The Service " + service.getName()
-						+ " does not specify a Service Class");
-			}
+            if (service.getParameter("ServiceClass") == null) {
+                log.debug("The Service " + service.getName()
+                        + " does not specify a Service Class");
+            }
 
-			// Process WS-Addressing flag attribute
-			OMAttribute addressingRequiredatt = service_element
-					.getAttribute(new QName(ATTRIBUTE_WSADDRESSING));
-			if (addressingRequiredatt != null) {
-				String addressingRequiredString = addressingRequiredatt
-						.getAttributeValue();
-				AddressingHelper.setAddressingRequirementParemeterValue(
-						service, addressingRequiredString);
-			}
+            // Process WS-Addressing flag attribute
+            OMAttribute addressingRequiredatt = service_element
+                    .getAttribute(new QName(ATTRIBUTE_WSADDRESSING));
+            if (addressingRequiredatt != null) {
+                String addressingRequiredString = addressingRequiredatt
+                        .getAttributeValue();
+                AddressingHelper.setAddressingRequirementParemeterValue(
+                        service, addressingRequiredString);
+            }
 
-			// Setting service target namespace if any
-			OMAttribute targetNameSpace = service_element
-					.getAttribute(new QName(TARGET_NAME_SPACE));
+            // Setting service target namespace if any
+            OMAttribute targetNameSpace = service_element
+                    .getAttribute(new QName(TARGET_NAME_SPACE));
 
-			if (targetNameSpace != null) {
-				String nameSpeceVale = targetNameSpace.getAttributeValue();
-				if (nameSpeceVale != null && !"".equals(nameSpeceVale)) {
-					service.setTargetNamespace(nameSpeceVale);
-				}
-			} else {
-				if (service.getTargetNamespace() == null
-						|| "".equals(service.getTargetNamespace())) {
-					service
-							.setTargetNamespace(Java2WSDLConstants.DEFAULT_TARGET_NAMESPACE);
-				}
-			}
+            if (targetNameSpace != null) {
+                String nameSpeceVale = targetNameSpace.getAttributeValue();
+                if (nameSpeceVale != null && !"".equals(nameSpeceVale)) {
+                    service.setTargetNamespace(nameSpeceVale);
+                }
+            } else {
+                if (service.getTargetNamespace() == null
+                        || "".equals(service.getTargetNamespace())) {
+                    service
+                            .setTargetNamespace(Java2WSDLConstants.DEFAULT_TARGET_NAMESPACE);
+                }
+            }
 
-			// Processing service lifecycle attribute
-			OMAttribute serviceLifeCycleClass = service_element
-					.getAttribute(new QName(TAG_CLASS_NAME));
-			if (serviceLifeCycleClass != null) {
-				String className = serviceLifeCycleClass.getAttributeValue();
-				loadServiceLifeCycleClass(className);
-			}
-			// Setting schema namespece if any
-			OMElement schemaElement = service_element
-					.getFirstChildWithName(new QName(SCHEMA));
-			if (schemaElement != null) {
-				OMAttribute schemaNameSpace = schemaElement
-						.getAttribute(new QName(SCHEMA_NAME_SPACE));
-				if (schemaNameSpace != null) {
-					String nameSpeceVale = schemaNameSpace.getAttributeValue();
-					if (nameSpeceVale != null && !"".equals(nameSpeceVale)) {
-						service.setSchemaTargetNamespace(nameSpeceVale);
-					}
-				}
-				OMAttribute elementFormDefault = schemaElement
-						.getAttribute(new QName(SCHEMA_ELEMENT_QUALIFIED));
-				if (elementFormDefault != null) {
-					String value = elementFormDefault.getAttributeValue();
-					if ("true".equals(value)) {
-						service.setElementFormDefault(true);
-					} else if ("false".equals(value)) {
-						service.setElementFormDefault(false);
-					}
-				}
+            // Processing service lifecycle attribute
+            OMAttribute serviceLifeCycleClass = service_element
+                    .getAttribute(new QName(TAG_CLASS_NAME));
+            if (serviceLifeCycleClass != null) {
+                String className = serviceLifeCycleClass.getAttributeValue();
+                loadServiceLifeCycleClass(className);
+            }
+            // Setting schema namespece if any
+            OMElement schemaElement = service_element
+                    .getFirstChildWithName(new QName(SCHEMA));
+            if (schemaElement != null) {
+                OMAttribute schemaNameSpace = schemaElement
+                        .getAttribute(new QName(SCHEMA_NAME_SPACE));
+                if (schemaNameSpace != null) {
+                    String nameSpeceVale = schemaNameSpace.getAttributeValue();
+                    if (nameSpeceVale != null && !"".equals(nameSpeceVale)) {
+                        service.setSchemaTargetNamespace(nameSpeceVale);
+                    }
+                }
+                OMAttribute elementFormDefault = schemaElement
+                        .getAttribute(new QName(SCHEMA_ELEMENT_QUALIFIED));
+                if (elementFormDefault != null) {
+                    String value = elementFormDefault.getAttributeValue();
+                    if ("true".equals(value)) {
+                        service.setElementFormDefault(true);
+                    } else if ("false".equals(value)) {
+                        service.setElementFormDefault(false);
+                    }
+                }
 
-				// package to namespace mapping. This will be an element that
-				// maps pkg names to a namespace
-				// when this is doing AxisService.getSchemaTargetNamespace will
-				// be overridden
-				// This will be <mapping/> with @namespace and @package
-				Iterator mappingIterator = schemaElement
-						.getChildrenWithName(new QName(MAPPING));
-				if (mappingIterator != null) {
-					Map<String,String> pkg2nsMap = new Hashtable<String,String>();
-					while (mappingIterator.hasNext()) {
-						OMElement mappingElement = (OMElement) mappingIterator
-								.next();
-						OMAttribute namespaceAttribute = mappingElement
-								.getAttribute(new QName(ATTRIBUTE_NAMESPACE));
-						OMAttribute packageAttribute = mappingElement
-								.getAttribute(new QName(ATTRIBUTE_PACKAGE));
-						if (namespaceAttribute != null
-								&& packageAttribute != null) {
-							String namespaceAttributeValue = namespaceAttribute
-									.getAttributeValue();
-							String packageAttributeValue = packageAttribute
-									.getAttributeValue();
-							if (namespaceAttributeValue != null
-									&& packageAttributeValue != null) {
-								pkg2nsMap.put(packageAttributeValue.trim(),
-										namespaceAttributeValue.trim());
-							} else {
-								log
-										.warn("Either value of @namespce or @packagename not available. Thus, generated will be selected.");
-							}
-						} else {
-							log
-									.warn("Either @namespce or @packagename not available. Thus, generated will be selected.");
-						}
-					}
-					service.setP2nMap(pkg2nsMap);
+                // package to namespace mapping. This will be an element that
+                // maps pkg names to a namespace
+                // when this is doing AxisService.getSchemaTargetNamespace will
+                // be overridden
+                // This will be <mapping/> with @namespace and @package
+                Iterator<OMElement> mappingIterator = schemaElement
+                        .getChildrenWithName(new QName(MAPPING));
+                if (mappingIterator != null) {
+                    Map<String,String> pkg2nsMap = new Hashtable<String,String>();
+                    while (mappingIterator.hasNext()) {
+                        OMElement mappingElement = mappingIterator.next();
+                        OMAttribute namespaceAttribute = mappingElement
+                                .getAttribute(new QName(ATTRIBUTE_NAMESPACE));
+                        OMAttribute packageAttribute = mappingElement
+                                .getAttribute(new QName(ATTRIBUTE_PACKAGE));
+                        if (namespaceAttribute != null
+                                && packageAttribute != null) {
+                            String namespaceAttributeValue = namespaceAttribute
+                                    .getAttributeValue();
+                            String packageAttributeValue = packageAttribute
+                                    .getAttributeValue();
+                            if (namespaceAttributeValue != null
+                                    && packageAttributeValue != null) {
+                                pkg2nsMap.put(packageAttributeValue.trim(),
+                                        namespaceAttributeValue.trim());
+                            } else {
+                                log
+                                        .warn("Either value of @namespce or @packagename not available. Thus, generated will be selected.");
+                            }
+                        } else {
+                            log
+                                    .warn("Either @namespce or @packagename not available. Thus, generated will be selected.");
+                        }
+                    }
+                    service.setP2nMap(pkg2nsMap);
 
-				}
+                }
 
-			}
+            }
 
-			// processing Default Message receivers
-			OMElement messageReceiver = service_element
-					.getFirstChildWithName(new QName(TAG_MESSAGE_RECEIVERS));
-			if (messageReceiver != null) {
-				HashMap<String,MessageReceiver> mrs = processMessageReceivers(service.getClassLoader(),
-						messageReceiver);
-				for (Map.Entry<String,MessageReceiver> entry : mrs.entrySet()) {
-					service.addMessageReceiver(entry.getKey(), entry.getValue());
-				}
-			}
+            // processing Default Message receivers
+            OMElement messageReceiver = service_element
+                    .getFirstChildWithName(new QName(TAG_MESSAGE_RECEIVERS));
+            if (messageReceiver != null) {
+                HashMap<String,MessageReceiver> mrs = processMessageReceivers(service.getClassLoader(),
+                        messageReceiver);
+                for (Map.Entry<String,MessageReceiver> entry : mrs.entrySet()) {
+                    service.addMessageReceiver(entry.getKey(), entry.getValue());
+                }
+            }
 
-			// Removing exclude operations
-			OMElement excludeOperations = service_element
-					.getFirstChildWithName(new QName(TAG_EXCLUDE_OPERATIONS));
-			ArrayList<String> excludeops = null;
-			if (excludeOperations != null) {
-				excludeops = processExcludeOperations(excludeOperations);
-			}
-			if (excludeops == null) {
-				excludeops = new ArrayList<String>();
-			}
-			Utils.addExcludeMethods(excludeops);
+            // Removing exclude operations
+            OMElement excludeOperations = service_element
+                    .getFirstChildWithName(new QName(TAG_EXCLUDE_OPERATIONS));
+            ArrayList<String> excludeops = null;
+            if (excludeOperations != null) {
+                excludeops = processExcludeOperations(excludeOperations);
+            }
+            if (excludeops == null) {
+                excludeops = new ArrayList<String>();
+            }
+            Utils.addExcludeMethods(excludeops);
 
-			// <schema targetNamespace="http://x.y.z"/>
-			// setting the PolicyInclude
-			// processing <wsp:Policy> .. </..> elements
-			Iterator policyElements = PolicyUtil.getPolicyChildren(service_element);
+            // <schema targetNamespace="http://x.y.z"/>
+            // setting the PolicyInclude
+            // processing <wsp:Policy> .. </..> elements
+            Iterator policyElements = PolicyUtil.getPolicyChildren(service_element);
 
-			if (policyElements != null && policyElements.hasNext()) {
-				processPolicyElements(policyElements, service.getPolicySubject());
-			}
+            if (policyElements != null && policyElements.hasNext()) {
+                processPolicyElements(policyElements, service.getPolicySubject());
+            }
 
-			// processing <wsp:PolicyReference> .. </..> elements
-			Iterator policyRefElements = PolicyUtil.getPolicyRefChildren(service_element);
+            // processing <wsp:PolicyReference> .. </..> elements
+            Iterator policyRefElements = PolicyUtil.getPolicyRefChildren(service_element);
 
-			if (policyRefElements != null && policyRefElements.hasNext()) {
-				processPolicyRefElements(policyRefElements, service.getPolicySubject());
-			}
+            if (policyRefElements != null && policyRefElements.hasNext()) {
+                processPolicyRefElements(policyRefElements, service.getPolicySubject());
+            }
 
-			// processing service scope
-			String sessionScope = service_element.getAttributeValue(new QName(
-					ATTRIBUTE_SCOPE));
-			if (sessionScope != null) {
-				service.setScope(sessionScope);
-			}
+            // processing service scope
+            String sessionScope = service_element.getAttributeValue(new QName(
+                    ATTRIBUTE_SCOPE));
+            if (sessionScope != null) {
+                service.setScope(sessionScope);
+            }
 
-			// processing service-wide modules which required to engage globally
-			Iterator moduleRefs = service_element
-					.getChildrenWithName(new QName(TAG_MODULE));
+            // processing service-wide modules which required to engage globally
+            Iterator<OMElement> moduleRefs = service_element
+                    .getChildrenWithName(new QName(TAG_MODULE));
 
-			processModuleRefs(moduleRefs);
+            processModuleRefs(moduleRefs);
 
-			// processing transports
-			OMElement transports = service_element
-					.getFirstChildWithName(new QName(TAG_TRANSPORTS));
-			if (transports != null) {
-				Iterator transport_itr = transports
-						.getChildrenWithName(new QName(TAG_TRANSPORT));
-				ArrayList<String> trs = new ArrayList<String>();
-				while (transport_itr.hasNext()) {
-					OMElement trsEle = (OMElement) transport_itr.next();
-					String transportName = trsEle.getText().trim();
-					if (axisConfig.getTransportIn(transportName) == null) {
+            // processing transports
+            OMElement transports = service_element
+                    .getFirstChildWithName(new QName(TAG_TRANSPORTS));
+            if (transports != null) {
+                Iterator<OMElement> transport_itr = transports
+                        .getChildrenWithName(new QName(TAG_TRANSPORT));
+                ArrayList<String> trs = new ArrayList<String>();
+                while (transport_itr.hasNext()) {
+                    OMElement trsEle = transport_itr.next();
+                    String transportName = trsEle.getText().trim();
+                    if (axisConfig.getTransportIn(transportName) == null) {
                         log.warn("Service [ " + service.getName()
-								+ "] is trying to expose in a transport : "
-								+ transportName
-								+ " and which is not available in Axis2");
-					} else {
+                                + "] is trying to expose in a transport : "
+                                + transportName
+                                + " and which is not available in Axis2");
+                    } else {
                         trs.add(transportName);
                     }
-				}
+                }
 
                 if(trs.isEmpty()){
                     throw new AxisFault("Service [" + service.getName()
@@ -354,588 +356,588 @@
                         + transports
                         + " and which is/are not available in Axis2");
                 }
-				service.setExposedTransports(trs);
-			}
-			// processing operations
-			Iterator operationsIterator = service_element
-					.getChildrenWithName(new QName(TAG_OPERATION));
-			ArrayList ops = processOperations(operationsIterator);
+                service.setExposedTransports(trs);
+            }
+            // processing operations
+            Iterator<OMElement> operationsIterator = service_element
+                    .getChildrenWithName(new QName(TAG_OPERATION));
+            ArrayList ops = processOperations(operationsIterator);
 
-			for (int i = 0; i < ops.size(); i++) {
-				AxisOperation operationDesc = (AxisOperation) ops.get(i);
-				ArrayList wsamappings = operationDesc.getWSAMappingList();
-				if (wsamappings == null) {
-					continue;
-				}
-				if (service.getOperation(operationDesc.getName()) == null) {
-					service.addOperation(operationDesc);
-				}
-				for (int j = 0; j < wsamappings.size(); j++) {
-					String mapping = (String) wsamappings.get(j);
-					if (mapping.length() > 0) {
-						service.mapActionToOperation(mapping, operationDesc);
-					}
-				}
-			}
-			String objectSupplierValue = (String) service
-					.getParameterValue(TAG_OBJECT_SUPPLIER);
-			if (objectSupplierValue != null) {
-				loadObjectSupplierClass(objectSupplierValue);
-			}
-			// Set the default message receiver for the operations that were
-			// not listed in the services.xml
-			setDefaultMessageReceivers();
-			Utils.processBeanPropertyExclude(service);
-			if (!service.isUseUserWSDL()) {
-				// Generating schema for the service if the impl class is Java
-				if (!service.isWsdlFound()) {
-					// trying to generate WSDL for the service using JAM and
-					// Java reflection
-					try {
-						if (generateWsdl(service)) {
-							Utils.fillAxisService(service, axisConfig,
-									excludeops, null);
-						} else {
-							ArrayList nonRpcOperations = getNonRPCMethods(service);
-							Utils.fillAxisService(service, axisConfig,
-									excludeops, nonRpcOperations);
-						}
-					} catch (Exception e) {
-						throw new DeploymentException(Messages.getMessage(
-								"errorinschemagen", e.getMessage()), e);
-					}
-				}
-			}
-			if (service.isCustomWsdl()) {
-				OMElement mappingElement = service_element
-						.getFirstChildWithName(new QName(TAG_PACKAGE2QNAME));
-				if (mappingElement != null) {
-					processTypeMappings(mappingElement);
-				}
-			}
+            for (int i = 0; i < ops.size(); i++) {
+                AxisOperation operationDesc = (AxisOperation) ops.get(i);
+                ArrayList wsamappings = operationDesc.getWSAMappingList();
+                if (wsamappings == null) {
+                    continue;
+                }
+                if (service.getOperation(operationDesc.getName()) == null) {
+                    service.addOperation(operationDesc);
+                }
+                for (int j = 0; j < wsamappings.size(); j++) {
+                    String mapping = (String) wsamappings.get(j);
+                    if (mapping.length() > 0) {
+                        service.mapActionToOperation(mapping, operationDesc);
+                    }
+                }
+            }
+            String objectSupplierValue = (String) service
+                    .getParameterValue(TAG_OBJECT_SUPPLIER);
+            if (objectSupplierValue != null) {
+                loadObjectSupplierClass(objectSupplierValue);
+            }
+            // Set the default message receiver for the operations that were
+            // not listed in the services.xml
+            setDefaultMessageReceivers();
+            Utils.processBeanPropertyExclude(service);
+            if (!service.isUseUserWSDL()) {
+                // Generating schema for the service if the impl class is Java
+                if (!service.isWsdlFound()) {
+                    // trying to generate WSDL for the service using JAM and
+                    // Java reflection
+                    try {
+                        if (generateWsdl(service)) {
+                            Utils.fillAxisService(service, axisConfig,
+                                    excludeops, null);
+                        } else {
+                            ArrayList nonRpcOperations = getNonRPCMethods(service);
+                            Utils.fillAxisService(service, axisConfig,
+                                    excludeops, nonRpcOperations);
+                        }
+                    } catch (Exception e) {
+                        throw new DeploymentException(Messages.getMessage(
+                                "errorinschemagen", e.getMessage()), e);
+                    }
+                }
+            }
+            if (service.isCustomWsdl()) {
+                OMElement mappingElement = service_element
+                        .getFirstChildWithName(new QName(TAG_PACKAGE2QNAME));
+                if (mappingElement != null) {
+                    processTypeMappings(mappingElement);
+                }
+            }
 
-			for (String opName : excludeops) {
-				service.removeOperation(new QName(opName));
-				service.addExcludeOperationName(opName);
-			}
+            for (String opName : excludeops) {
+                service.removeOperation(new QName(opName));
+                service.addExcludeOperationName(opName);
+            }
 
-			// Need to call the same logic towice
-			setDefaultMessageReceivers();
-			Iterator moduleConfigs = service_element
-					.getChildrenWithName(new QName(TAG_MODULE_CONFIG));
-			processServiceModuleConfig(moduleConfigs, service, service);
+            // Need to call the same logic towice
+            setDefaultMessageReceivers();
+            Iterator<OMElement> moduleConfigs = service_element
+                    .getChildrenWithName(new QName(TAG_MODULE_CONFIG));
+            processServiceModuleConfig(moduleConfigs, service, service);
 
-			// Loading Data Locator(s) configured
-			OMElement dataLocatorElement = service_element
-					.getFirstChildWithName(new QName(
-							DRConstants.DATA_LOCATOR_ELEMENT));
-			if (dataLocatorElement != null) {
-				processDataLocatorConfig(dataLocatorElement, service);
-			}
+            // Loading Data Locator(s) configured
+            OMElement dataLocatorElement = service_element
+                    .getFirstChildWithName(new QName(
+                            DRConstants.DATA_LOCATOR_ELEMENT));
+            if (dataLocatorElement != null) {
+                processDataLocatorConfig(dataLocatorElement, service);
+            }
 
-			processEndpoints(service);
-			processPolicyAttachments(service_element, service);
-			
+            processEndpoints(service);
+            processPolicyAttachments(service_element, service);
+            
 
-		} catch (AxisFault axisFault) {
-			throw new DeploymentException(axisFault);
-		}
+        } catch (AxisFault axisFault) {
+            throw new DeploymentException(axisFault);
+        }
 
         startupServiceLifecycle();
-		return service;
-	}
+        return service;
+    }
 
-	private void setDefaultMessageReceivers() {
-		Iterator operations = service.getPublishedOperations().iterator();
-		while (operations.hasNext()) {
-			AxisOperation operation = (AxisOperation) operations.next();
-			if (operation.getMessageReceiver() == null) {
-				MessageReceiver messageReceiver = loadDefaultMessageReceiver(
-						operation.getMessageExchangePattern(), service);
-				if (messageReceiver == null &&
-				// we assume that if the MEP is ROBUST_IN_ONLY then the in-out
-						// MR can handle that
-						WSDL2Constants.MEP_URI_ROBUST_IN_ONLY.equals(operation
-								.getMessageExchangePattern())) {
-					messageReceiver = loadDefaultMessageReceiver(
-							WSDL2Constants.MEP_URI_IN_OUT, service);
+    private void setDefaultMessageReceivers() {
+        Iterator operations = service.getPublishedOperations().iterator();
+        while (operations.hasNext()) {
+            AxisOperation operation = (AxisOperation) operations.next();
+            if (operation.getMessageReceiver() == null) {
+                MessageReceiver messageReceiver = loadDefaultMessageReceiver(
+                        operation.getMessageExchangePattern(), service);
+                if (messageReceiver == null &&
+                // we assume that if the MEP is ROBUST_IN_ONLY then the in-out
+                        // MR can handle that
+                        WSDL2Constants.MEP_URI_ROBUST_IN_ONLY.equals(operation
+                                .getMessageExchangePattern())) {
+                    messageReceiver = loadDefaultMessageReceiver(
+                            WSDL2Constants.MEP_URI_IN_OUT, service);
 
-				}
-				operation.setMessageReceiver(messageReceiver);
-			}
-		}
-	}
+                }
+                operation.setMessageReceiver(messageReceiver);
+            }
+        }
+    }
 
-	private void loadObjectSupplierClass(String objectSupplierValue)
-			throws AxisFault {
-		try {
-			ClassLoader loader = service.getClassLoader();
-			Class objectSupplierImpl = Loader.loadClass(loader,
-					objectSupplierValue.trim());
-			ObjectSupplier objectSupplier = (ObjectSupplier) objectSupplierImpl
-					.newInstance();
-			service.setObjectSupplier(objectSupplier);
-		} catch (Exception e) {
-			throw AxisFault.makeFault(e);
-		}
-	}
+    private void loadObjectSupplierClass(String objectSupplierValue)
+            throws AxisFault {
+        try {
+            ClassLoader loader = service.getClassLoader();
+            Class objectSupplierImpl = Loader.loadClass(loader,
+                    objectSupplierValue.trim());
+            ObjectSupplier objectSupplier = (ObjectSupplier) objectSupplierImpl
+                    .newInstance();
+            service.setObjectSupplier(objectSupplier);
+        } catch (Exception e) {
+            throw AxisFault.makeFault(e);
+        }
+    }
 
-	/**
-	 * Process the package name to QName mapping:
-	 * 
-	 * &lt;packageMapping&gt; &lt;mapping packageName="foo.bar"
-	 * qname="http://foo/bar/xsd"%gt; ...... ...... &lt;/packageMapping&gt;
-	 * 
-	 * @param packageMappingElement
-	 *            OMElement for the packageMappingElement
-	 */
-	private void processTypeMappings(OMElement packageMappingElement) {
-		Iterator elementItr = packageMappingElement
-				.getChildrenWithName(new QName(TAG_MAPPING));
-		TypeTable typeTable = service.getTypeTable();
-		if (typeTable == null) {
-			typeTable = new TypeTable();
-		}
-		while (elementItr.hasNext()) {
-			OMElement mappingElement = (OMElement) elementItr.next();
-			String packageName = mappingElement.getAttributeValue(new QName(
-					TAG_PACKAGE_NAME));
-			String qName = mappingElement
-					.getAttributeValue(new QName(TAG_QNAME));
-			if (packageName == null || qName == null) {
-				continue;
-			}
-			Iterator keys = service.getNamespaceMap().keySet().iterator();
-			while (keys.hasNext()) {
-				String key = (String) keys.next();
-				if (qName.equals(service.getNamespaceMap().get(key))) {
-					typeTable.addComplexSchema(packageName, new QName(qName,
-							packageName, key));
-				}
-			}
-		}
-		service.setTypeTable(typeTable);
-	}
+    /**
+     * Process the package name to QName mapping:
+     * 
+     * &lt;packageMapping&gt; &lt;mapping packageName="foo.bar"
+     * qname="http://foo/bar/xsd"%gt; ...... ...... &lt;/packageMapping&gt;
+     * 
+     * @param packageMappingElement
+     *            OMElement for the packageMappingElement
+     */
+    private void processTypeMappings(OMElement packageMappingElement) {
+        Iterator<OMElement> elementItr = packageMappingElement
+                .getChildrenWithName(new QName(TAG_MAPPING));
+        TypeTable typeTable = service.getTypeTable();
+        if (typeTable == null) {
+            typeTable = new TypeTable();
+        }
+        while (elementItr.hasNext()) {
+            OMElement mappingElement = elementItr.next();
+            String packageName = mappingElement.getAttributeValue(new QName(
+                    TAG_PACKAGE_NAME));
+            String qName = mappingElement
+                    .getAttributeValue(new QName(TAG_QNAME));
+            if (packageName == null || qName == null) {
+                continue;
+            }
+            Iterator keys = service.getNamespaceMap().keySet().iterator();
+            while (keys.hasNext()) {
+                String key = (String) keys.next();
+                if (qName.equals(service.getNamespaceMap().get(key))) {
+                    typeTable.addComplexSchema(packageName, new QName(qName,
+                            packageName, key));
+                }
+            }
+        }
+        service.setTypeTable(typeTable);
+    }
 
-	private void loadServiceLifeCycleClass(String className)
-			throws DeploymentException {
+    private void loadServiceLifeCycleClass(String className)
+            throws DeploymentException {
         if (className != null) {
             try {
                 ClassLoader loader = service.getClassLoader();
                 Class serviceLifeCycleClassImpl = Loader.loadClass(loader,
-						className);
+                        className);
                 ServiceLifeCycle serviceLifeCycle =
                         (ServiceLifeCycle) serviceLifeCycleClassImpl.newInstance();
-				service.setServiceLifeCycle(serviceLifeCycle);
-			} catch (Exception e) {
-				throw new DeploymentException(e.getMessage(), e);
-			}
-		}
-	}
+                service.setServiceLifeCycle(serviceLifeCycle);
+            } catch (Exception e) {
+                throw new DeploymentException(e.getMessage(), e);
+            }
+        }
+    }
 
-	private boolean generateWsdl(AxisService axisService) {
-		Iterator operatins = axisService.getOperations();
-		if (operatins.hasNext()) {
-			while (operatins.hasNext()) {
-				AxisOperation axisOperation = (AxisOperation) operatins.next();
+    private boolean generateWsdl(AxisService axisService) {
+        Iterator operatins = axisService.getOperations();
+        if (operatins.hasNext()) {
+            while (operatins.hasNext()) {
+                AxisOperation axisOperation = (AxisOperation) operatins.next();
 
-				if (axisOperation.isControlOperation()) {
-					continue;
-				}
+                if (axisOperation.isControlOperation()) {
+                    continue;
+                }
 
-				if (axisOperation.getMessageReceiver() == null) {
-					continue;
-				}
-				String messageReceiverClass = axisOperation
-						.getMessageReceiver().getClass().getName();
-				if (!("org.apache.axis2.rpc.receivers.RPCMessageReceiver"
-						.equals(messageReceiverClass)
-						|| "org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver"
-								.equals(messageReceiverClass)
-						|| "org.apache.axis2.rpc.receivers.RPCInOutAsyncMessageReceiver"
-								.equals(messageReceiverClass) || "org.apache.axis2.jaxws.server.JAXWSMessageReceiver"
-						.equals(messageReceiverClass))) {
-					return false;
-				}
-			}
-		}
-		return true;
-	}
+                if (axisOperation.getMessageReceiver() == null) {
+                    continue;
+                }
+                String messageReceiverClass = axisOperation
+                        .getMessageReceiver().getClass().getName();
+                if (!("org.apache.axis2.rpc.receivers.RPCMessageReceiver"
+                        .equals(messageReceiverClass)
+                        || "org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver"
+                                .equals(messageReceiverClass)
+                        || "org.apache.axis2.rpc.receivers.RPCInOutAsyncMessageReceiver"
+                                .equals(messageReceiverClass) || "org.apache.axis2.jaxws.server.JAXWSMessageReceiver"
+                        .equals(messageReceiverClass))) {
+                    return false;
+                }
+            }
+        }
+        return true;
+    }
 
-	/**
-	 * To get the methods which do not use RPC* MessageReceivers
-	 * 
-	 * @param axisService
-	 *            the AxisService to search
-	 * @return an ArrayList of the LOCAL PARTS of the QNames of any non-RPC
-	 *         operations TODO: Why not just return the AxisOperations
-	 *         themselves??
-	 */
-	private ArrayList<String> getNonRPCMethods(AxisService axisService) {
-		ArrayList<String> excludeOperations = new ArrayList<String>();
-		Iterator<AxisOperation> operatins = axisService.getOperations();
-		if (operatins.hasNext()) {
-			while (operatins.hasNext()) {
-				AxisOperation axisOperation = operatins.next();
-				if (axisOperation.getMessageReceiver() == null) {
-					continue;
-				}
-				String messageReceiverClass = axisOperation
-						.getMessageReceiver().getClass().getName();
-				if (!("org.apache.axis2.rpc.receivers.RPCMessageReceiver"
-						.equals(messageReceiverClass)
-						|| "org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver"
-								.equals(messageReceiverClass)
-						|| "org.apache.axis2.rpc.receivers.RPCInOutAsyncMessageReceiver"
-								.equals(messageReceiverClass) || "org.apache.axis2.jaxws.server.JAXWSMessageReceiver"
-						.equals(messageReceiverClass))) {
-					excludeOperations.add(axisOperation.getName()
-							.getLocalPart());
-				}
-			}
-		}
-		return excludeOperations;
-	}
+    /**
+     * To get the methods which do not use RPC* MessageReceivers
+     * 
+     * @param axisService
+     *            the AxisService to search
+     * @return an ArrayList of the LOCAL PARTS of the QNames of any non-RPC
+     *         operations TODO: Why not just return the AxisOperations
+     *         themselves??
+     */
+    private ArrayList<String> getNonRPCMethods(AxisService axisService) {
+        ArrayList<String> excludeOperations = new ArrayList<String>();
+        Iterator<AxisOperation> operatins = axisService.getOperations();
+        if (operatins.hasNext()) {
+            while (operatins.hasNext()) {
+                AxisOperation axisOperation = operatins.next();
+                if (axisOperation.getMessageReceiver() == null) {
+                    continue;
+                }
+                String messageReceiverClass = axisOperation
+                        .getMessageReceiver().getClass().getName();
+                if (!("org.apache.axis2.rpc.receivers.RPCMessageReceiver"
+                        .equals(messageReceiverClass)
+                        || "org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver"
+                                .equals(messageReceiverClass)
+                        || "org.apache.axis2.rpc.receivers.RPCInOutAsyncMessageReceiver"
+                                .equals(messageReceiverClass) || "org.apache.axis2.jaxws.server.JAXWSMessageReceiver"
+                        .equals(messageReceiverClass))) {
+                    excludeOperations.add(axisOperation.getName()
+                            .getLocalPart());
+                }
+            }
+        }
+        return excludeOperations;
+    }
 
-	/**
-	 * Process &lt;excludeOperation&gt; element in services.xml. Each operation
-	 * referenced will be removed from the AxisService.
-	 * 
-	 * @param excludeOperations
-	 *            the &lt;excludeOperations&gt; element from services.xml
-	 * @return an ArrayList of the String contents of the &lt;operation&gt;
-	 *         elements
-	 */
-	private ArrayList<String> processExcludeOperations(OMElement excludeOperations) {
-		ArrayList<String> exOps = new ArrayList<String>();
-		Iterator excludeOp_itr = excludeOperations
-				.getChildrenWithName(new QName(TAG_OPERATION));
-		while (excludeOp_itr.hasNext()) {
-			OMElement opName = (OMElement) excludeOp_itr.next();
-			exOps.add(opName.getText().trim());
-		}
-		return exOps;
-	}
+    /**
+     * Process &lt;excludeOperation&gt; element in services.xml. Each operation
+     * referenced will be removed from the AxisService.
+     * 
+     * @param excludeOperations
+     *            the &lt;excludeOperations&gt; element from services.xml
+     * @return an ArrayList of the String contents of the &lt;operation&gt;
+     *         elements
+     */
+    private ArrayList<String> processExcludeOperations(OMElement excludeOperations) {
+        ArrayList<String> exOps = new ArrayList<String>();
+        Iterator<OMElement> excludeOp_itr = excludeOperations
+                .getChildrenWithName(new QName(TAG_OPERATION));
+        while (excludeOp_itr.hasNext()) {
+            OMElement opName = excludeOp_itr.next();
+            exOps.add(opName.getText().trim());
+        }
+        return exOps;
+    }
 
-	private void processMessages(Iterator messages, AxisOperation operation)
-			throws DeploymentException {
-		while (messages.hasNext()) {
-			OMElement messageElement = (OMElement) messages.next();
-			OMAttribute label = messageElement
-					.getAttribute(new QName(TAG_LABEL));
+    private void processMessages(Iterator messages, AxisOperation operation)
+            throws DeploymentException {
+        while (messages.hasNext()) {
+            OMElement messageElement = (OMElement) messages.next();
+            OMAttribute label = messageElement
+                    .getAttribute(new QName(TAG_LABEL));
 
-			if (label == null) {
-				throw new DeploymentException(Messages
-						.getMessage("messagelabelcannotfound"));
-			}
+            if (label == null) {
+                throw new DeploymentException(Messages
+                        .getMessage("messagelabelcannotfound"));
+            }
 
-			AxisMessage message = operation.getMessage(label
-					.getAttributeValue());
+            AxisMessage message = operation.getMessage(label
+                    .getAttributeValue());
 
-			Iterator parameters = messageElement.getChildrenWithName(new QName(
-					TAG_PARAMETER));
+            Iterator<OMElement> parameters = messageElement.getChildrenWithName(new QName(
+                    TAG_PARAMETER));
 
-			// processing <wsp:Policy> .. </..> elements
-			Iterator policyElements = PolicyUtil.getPolicyChildren(messageElement);
+            // processing <wsp:Policy> .. </..> elements
+            Iterator<OMElement> policyElements = PolicyUtil.getPolicyChildren(messageElement);
 
-			if (policyElements != null) {
-				processPolicyElements(policyElements, message.getPolicySubject());
-			}
+            if (policyElements != null) {
+                processPolicyElements(policyElements, message.getPolicySubject());
+            }
 
-			// processing <wsp:PolicyReference> .. </..> elements
-			Iterator policyRefElements = PolicyUtil.getPolicyRefChildren(messageElement);
+            // processing <wsp:PolicyReference> .. </..> elements
+            Iterator<OMElement> policyRefElements = PolicyUtil.getPolicyRefChildren(messageElement);
 
-			if (policyRefElements != null) {
-				processPolicyRefElements(policyRefElements, message.getPolicySubject());
-			}
+            if (policyRefElements != null) {
+                processPolicyRefElements(policyRefElements, message.getPolicySubject());
+            }
 
-			processParameters(parameters, message, operation);
+            processParameters(parameters, message, operation);
 
-		}
-	}
+        }
+    }
 
-	/**
-	 * Gets the list of modules that is required to be engaged globally.
-	 * 
-	 * @param moduleRefs
-	 *            <code>java.util.Iterator</code>
-	 * @throws DeploymentException
-	 *             <code>DeploymentException</code>
-	 */
-	protected void processModuleRefs(Iterator moduleRefs)
-			throws DeploymentException {
-//		try {
-			while (moduleRefs.hasNext()) {
-				OMElement moduleref = (OMElement) moduleRefs.next();
-				OMAttribute moduleRefAttribute = moduleref
-						.getAttribute(new QName(TAG_REFERENCE));
+    /**
+     * Gets the list of modules that is required to be engaged globally.
+     * 
+     * @param moduleRefs
+     *            <code>java.util.Iterator</code>
+     * @throws DeploymentException
+     *             <code>DeploymentException</code>
+     */
+    protected void processModuleRefs(Iterator moduleRefs)
+            throws DeploymentException {
+//        try {
+            while (moduleRefs.hasNext()) {
+                OMElement moduleref = (OMElement) moduleRefs.next();
+                OMAttribute moduleRefAttribute = moduleref
+                        .getAttribute(new QName(TAG_REFERENCE));
 
-				if (moduleRefAttribute != null) {
-					String refName = moduleRefAttribute.getAttributeValue();
+                if (moduleRefAttribute != null) {
+                    String refName = moduleRefAttribute.getAttributeValue();
                     service.addModuleref(refName);
-//					if (axisConfig.getModule(refName) == null) {
-//						throw new DeploymentException(Messages.getMessage(
-//								DeploymentErrorMsgs.MODULE_NOT_FOUND, refName));
-//					} else {
-//						service.addModuleref(refName);
-//					}
-				}
-			}
-//		} catch (AxisFault axisFault) {
-//			throw new DeploymentException(axisFault);
-//		}
-	}
+//                    if (axisConfig.getModule(refName) == null) {
+//                        throw new DeploymentException(Messages.getMessage(
+//                                DeploymentErrorMsgs.MODULE_NOT_FOUND, refName));
+//                    } else {
+//                        service.addModuleref(refName);
+//                    }
+                }
+            }
+//        } catch (AxisFault axisFault) {
+//            throw new DeploymentException(axisFault);
+//        }
+    }
 
-	protected void processOperationModuleConfig(Iterator moduleConfigs,
-			ParameterInclude parent, AxisOperation operation)
-			throws DeploymentException {
-		while (moduleConfigs.hasNext()) {
-			OMElement moduleConfig = (OMElement) moduleConfigs.next();
-			OMAttribute moduleName_att = moduleConfig.getAttribute(new QName(
-					ATTRIBUTE_NAME));
+    protected void processOperationModuleConfig(Iterator moduleConfigs,
+            ParameterInclude parent, AxisOperation operation)
+            throws DeploymentException {
+        while (moduleConfigs.hasNext()) {
+            OMElement moduleConfig = (OMElement) moduleConfigs.next();
+            OMAttribute moduleName_att = moduleConfig.getAttribute(new QName(
+                    ATTRIBUTE_NAME));
 
-			if (moduleName_att == null) {
-				throw new DeploymentException(Messages
-						.getMessage(DeploymentErrorMsgs.INVALID_MODULE_CONFIG));
-			} else {
-				String module = moduleName_att.getAttributeValue();
-				ModuleConfiguration moduleConfiguration = new ModuleConfiguration(
-						module, parent);
-				Iterator parameters = moduleConfig
-						.getChildrenWithName(new QName(TAG_PARAMETER));
+            if (moduleName_att == null) {
+                throw new DeploymentException(Messages
+                        .getMessage(DeploymentErrorMsgs.INVALID_MODULE_CONFIG));
+            } else {
+                String module = moduleName_att.getAttributeValue();
+                ModuleConfiguration moduleConfiguration = new ModuleConfiguration(
+                        module, parent);
+                Iterator<OMElement> parameters = moduleConfig
+                        .getChildrenWithName(new QName(TAG_PARAMETER));
 
-				processParameters(parameters, moduleConfiguration, parent);
-				operation.addModuleConfig(moduleConfiguration);
-			}
-		}
-	}
+                processParameters(parameters, moduleConfiguration, parent);
+                operation.addModuleConfig(moduleConfiguration);
+            }
+        }
+    }
 
-	private ArrayList<AxisOperation> processOperations(Iterator operationsIterator)
-			throws AxisFault {
-		ArrayList<AxisOperation> operations = new ArrayList<AxisOperation>();
-		while (operationsIterator.hasNext()) {
-			OMElement operation = (OMElement) operationsIterator.next();
-			// getting operation name
-			OMAttribute op_name_att = operation.getAttribute(new QName(
-					ATTRIBUTE_NAME));
-			if (op_name_att == null) {
-				throw new DeploymentException(Messages.getMessage(Messages
-						.getMessage(DeploymentErrorMsgs.INVALID_OP,
-								"operation name missing")));
-			}
+    private ArrayList<AxisOperation> processOperations(Iterator operationsIterator)
+            throws AxisFault {
+        ArrayList<AxisOperation> operations = new ArrayList<AxisOperation>();
+        while (operationsIterator.hasNext()) {
+            OMElement operation = (OMElement) operationsIterator.next();
+            // getting operation name
+            OMAttribute op_name_att = operation.getAttribute(new QName(
+                    ATTRIBUTE_NAME));
+            if (op_name_att == null) {
+                throw new DeploymentException(Messages.getMessage(Messages
+                        .getMessage(DeploymentErrorMsgs.INVALID_OP,
+                                "operation name missing")));
+            }
 
-			// setting the MEP of the operation
-			OMAttribute op_mep_att = operation.getAttribute(new QName(TAG_MEP));
-			String mepurl = null;
+            // setting the MEP of the operation
+            OMAttribute op_mep_att = operation.getAttribute(new QName(TAG_MEP));
+            String mepurl = null;
 
-			if (op_mep_att != null) {
-				mepurl = op_mep_att.getAttributeValue();
-			}
+            if (op_mep_att != null) {
+                mepurl = op_mep_att.getAttributeValue();
+            }
 
-			String opname = op_name_att.getAttributeValue();
-			AxisOperation op_descrip = null;
+            String opname = op_name_att.getAttributeValue();
+            AxisOperation op_descrip = null;
 
-			// getting the namesapce from the attribute.
-			OMAttribute operationNamespace = operation.getAttribute(new QName(
-					ATTRIBUTE_NAMESPACE));
-			if (operationNamespace != null) {
-				String namespace = operationNamespace.getAttributeValue();
-				op_descrip = service.getOperation(new QName(namespace, opname));
-			}
-			if (op_descrip == null) {
-				op_descrip = service.getOperation(new QName(opname));
-			}
+            // getting the namesapce from the attribute.
+            OMAttribute operationNamespace = operation.getAttribute(new QName(
+                    ATTRIBUTE_NAMESPACE));
+            if (operationNamespace != null) {
+                String namespace = operationNamespace.getAttributeValue();
+                op_descrip = service.getOperation(new QName(namespace, opname));
+            }
+            if (op_descrip == null) {
+                op_descrip = service.getOperation(new QName(opname));
+            }
 
-			if (op_descrip == null) {
-				op_descrip = service.getOperation(new QName(service
-						.getTargetNamespace(), opname));
-			}
-			if (op_descrip == null) {
-				if (mepurl == null) {
-					// assumed MEP is in-out
-					op_descrip = new InOutAxisOperation();
-					op_descrip.setParent(service);
+            if (op_descrip == null) {
+                op_descrip = service.getOperation(new QName(service
+                        .getTargetNamespace(), opname));
+            }
+            if (op_descrip == null) {
+                if (mepurl == null) {
+                    // assumed MEP is in-out
+                    op_descrip = new InOutAxisOperation();
+                    op_descrip.setParent(service);
 
-				} else {
-					op_descrip = AxisOperationFactory
-							.getOperationDescription(mepurl);
-				}
-				op_descrip.setName(new QName(opname));
-				String MEP = op_descrip.getMessageExchangePattern();
-				if (WSDL2Constants.MEP_URI_IN_ONLY.equals(MEP)
-						|| WSDL2Constants.MEP_URI_IN_OPTIONAL_OUT.equals(MEP)
-						|| WSDL2Constants.MEP_URI_OUT_OPTIONAL_IN.equals(MEP)
-						|| WSDL2Constants.MEP_URI_ROBUST_OUT_ONLY.equals(MEP)
-						|| WSDL2Constants.MEP_URI_ROBUST_IN_ONLY.equals(MEP)
-						|| WSDL2Constants.MEP_URI_IN_OUT.equals(MEP)) {
-					AxisMessage inaxisMessage = op_descrip
-							.getMessage(WSDLConstants.MESSAGE_LABEL_IN_VALUE);
-					if (inaxisMessage != null) {
-						inaxisMessage.setName(opname
-								+ Java2WSDLConstants.MESSAGE_SUFFIX);
-					}
-				}
+                } else {
+                    op_descrip = AxisOperationFactory
+                            .getOperationDescription(mepurl);
+                }
+                op_descrip.setName(new QName(opname));
+                String MEP = op_descrip.getMessageExchangePattern();
+                if (WSDL2Constants.MEP_URI_IN_ONLY.equals(MEP)
+                        || WSDL2Constants.MEP_URI_IN_OPTIONAL_OUT.equals(MEP)
+                        || WSDL2Constants.MEP_URI_OUT_OPTIONAL_IN.equals(MEP)
+                        || WSDL2Constants.MEP_URI_ROBUST_OUT_ONLY.equals(MEP)
+                        || WSDL2Constants.MEP_URI_ROBUST_IN_ONLY.equals(MEP)
+                        || WSDL2Constants.MEP_URI_IN_OUT.equals(MEP)) {
+                    AxisMessage inaxisMessage = op_descrip
+                            .getMessage(WSDLConstants.MESSAGE_LABEL_IN_VALUE);
+                    if (inaxisMessage != null) {
+                        inaxisMessage.setName(opname
+                                + Java2WSDLConstants.MESSAGE_SUFFIX);
+                    }
+                }
 
-				if (WSDL2Constants.MEP_URI_OUT_ONLY.equals(MEP)
-						|| WSDL2Constants.MEP_URI_OUT_OPTIONAL_IN.equals(MEP)
-						|| WSDL2Constants.MEP_URI_IN_OPTIONAL_OUT.equals(MEP)
-						|| WSDL2Constants.MEP_URI_ROBUST_OUT_ONLY.equals(MEP)
-						|| WSDL2Constants.MEP_URI_IN_OUT.equals(MEP)) {
-					AxisMessage outAxisMessage = op_descrip
-							.getMessage(WSDLConstants.MESSAGE_LABEL_OUT_VALUE);
-					if (outAxisMessage != null) {
-						outAxisMessage.setName(opname
-								+ Java2WSDLConstants.RESPONSE);
-					}
-				}
-			}
+                if (WSDL2Constants.MEP_URI_OUT_ONLY.equals(MEP)
+                        || WSDL2Constants.MEP_URI_OUT_OPTIONAL_IN.equals(MEP)
+                        || WSDL2Constants.MEP_URI_IN_OPTIONAL_OUT.equals(MEP)
+                        || WSDL2Constants.MEP_URI_ROBUST_OUT_ONLY.equals(MEP)
+                        || WSDL2Constants.MEP_URI_IN_OUT.equals(MEP)) {
+                    AxisMessage outAxisMessage = op_descrip
+                            .getMessage(WSDLConstants.MESSAGE_LABEL_OUT_VALUE);
+                    if (outAxisMessage != null) {
+                        outAxisMessage.setName(opname
+                                + Java2WSDLConstants.RESPONSE);
+                    }
+                }
+            }
 
-			// setting the PolicyInclude
+            // setting the PolicyInclude
 
-			// processing <wsp:Policy> .. </..> elements
-			Iterator policyElements = PolicyUtil.getPolicyChildren(operation);
+            // processing <wsp:Policy> .. </..> elements
+            Iterator policyElements = PolicyUtil.getPolicyChildren(operation);
 
-			if (policyElements != null && policyElements.hasNext()) {
-				processPolicyElements(policyElements, op_descrip.getPolicySubject());
-			}
+            if (policyElements != null && policyElements.hasNext()) {
+                processPolicyElements(policyElements, op_descrip.getPolicySubject());
+            }
 
-			// processing <wsp:PolicyReference> .. </..> elements
-			Iterator policyRefElements = PolicyUtil.getPolicyRefChildren(operation);
+            // processing <wsp:PolicyReference> .. </..> elements
+            Iterator policyRefElements = PolicyUtil.getPolicyRefChildren(operation);
 
-			if (policyRefElements != null && policyRefElements.hasNext()) {
-				processPolicyRefElements(policyRefElements, op_descrip.getPolicySubject());
-			}
+            if (policyRefElements != null && policyRefElements.hasNext()) {
+                processPolicyRefElements(policyRefElements, op_descrip.getPolicySubject());
+            }
 
-			// Operation Parameters
-			Iterator parameters = operation.getChildrenWithName(new QName(
-					TAG_PARAMETER));
-			processParameters(parameters, op_descrip, service);
-			// To process wsamapping;
-			processActionMappings(operation, op_descrip);
+            // Operation Parameters
+            Iterator<OMElement> parameters = operation.getChildrenWithName(new QName(
+                    TAG_PARAMETER));
+            processParameters(parameters, op_descrip, service);
+            // To process wsamapping;
+            processActionMappings(operation, op_descrip);
 
-			// loading the message receivers
-			OMElement receiverElement = operation
-					.getFirstChildWithName(new QName(TAG_MESSAGE_RECEIVER));
+            // loading the message receivers
+            OMElement receiverElement = operation
+                    .getFirstChildWithName(new QName(TAG_MESSAGE_RECEIVER));
 
-			if (receiverElement != null) {
-				MessageReceiver messageReceiver = loadMessageReceiver(service
-						.getClassLoader(), receiverElement);
+            if (receiverElement != null) {
+                MessageReceiver messageReceiver = loadMessageReceiver(service
+                        .getClassLoader(), receiverElement);
 
-				op_descrip.setMessageReceiver(messageReceiver);
-			} else {
-				// setting default message receiver
-				MessageReceiver msgReceiver = loadDefaultMessageReceiver(
-						op_descrip.getMessageExchangePattern(), service);
-				op_descrip.setMessageReceiver(msgReceiver);
-			}
+                op_descrip.setMessageReceiver(messageReceiver);
+            } else {
+                // setting default message receiver
+                MessageReceiver msgReceiver = loadDefaultMessageReceiver(
+                        op_descrip.getMessageExchangePattern(), service);
+                op_descrip.setMessageReceiver(msgReceiver);
+            }
 
-			// Process Module Refs
-			Iterator modules = operation.getChildrenWithName(new QName(
-					TAG_MODULE));
+            // Process Module Refs
+            Iterator<OMElement> modules = operation.getChildrenWithName(new QName(
+                    TAG_MODULE));
 
-			processOperationModuleRefs(modules, op_descrip);
+            processOperationModuleRefs(modules, op_descrip);
 
-			// processing Messages
-			Iterator messages = operation.getChildrenWithName(new QName(
-					TAG_MESSAGE));
+            // processing Messages
+            Iterator<OMElement> messages = operation.getChildrenWithName(new QName(
+                    TAG_MESSAGE));
 
-			processMessages(messages, op_descrip);
+            processMessages(messages, op_descrip);
 
-			// setting Operation phase
-			if (axisConfig != null) {
-				PhasesInfo info = axisConfig.getPhasesInfo();
+            // setting Operation phase
+            if (axisConfig != null) {
+                PhasesInfo info = axisConfig.getPhasesInfo();
 
-				info.setOperationPhases(op_descrip);
-			}
-			Iterator moduleConfigs = operation.getChildrenWithName(new QName(
-					TAG_MODULE_CONFIG));
-			processOperationModuleConfig(moduleConfigs, op_descrip, op_descrip);
-			// adding the operation
-			operations.add(op_descrip);
-		}
-		return operations;
-	}
+                info.setOperationPhases(op_descrip);
+            }
+            Iterator<OMElement> moduleConfigs = operation.getChildrenWithName(new QName(
+                    TAG_MODULE_CONFIG));
+            processOperationModuleConfig(moduleConfigs, op_descrip, op_descrip);
+            // adding the operation
+            operations.add(op_descrip);
+        }
+        return operations;
+    }
 
-	protected void processServiceModuleConfig(Iterator moduleConfigs,
-			ParameterInclude parent, AxisService service)
-			throws DeploymentException {
-		while (moduleConfigs.hasNext()) {
-			OMElement moduleConfig = (OMElement) moduleConfigs.next();
-			OMAttribute moduleName_att = moduleConfig.getAttribute(new QName(
-					ATTRIBUTE_NAME));
+    protected void processServiceModuleConfig(Iterator moduleConfigs,
+            ParameterInclude parent, AxisService service)
+            throws DeploymentException {
+        while (moduleConfigs.hasNext()) {
+            OMElement moduleConfig = (OMElement) moduleConfigs.next();
+            OMAttribute moduleName_att = moduleConfig.getAttribute(new QName(
+                    ATTRIBUTE_NAME));
 
-			if (moduleName_att == null) {
-				throw new DeploymentException(Messages
-						.getMessage(DeploymentErrorMsgs.INVALID_MODULE_CONFIG));
-			} else {
-				String module = moduleName_att.getAttributeValue();
-				ModuleConfiguration moduleConfiguration = new ModuleConfiguration(
-						module, parent);
-				Iterator parameters = moduleConfig
-						.getChildrenWithName(new QName(TAG_PARAMETER));
+            if (moduleName_att == null) {
+                throw new DeploymentException(Messages
+                        .getMessage(DeploymentErrorMsgs.INVALID_MODULE_CONFIG));
+            } else {
+                String module = moduleName_att.getAttributeValue();
+                ModuleConfiguration moduleConfiguration = new ModuleConfiguration(
+                        module, parent);
+                Iterator<OMElement> parameters = moduleConfig
+                        .getChildrenWithName(new QName(TAG_PARAMETER));
 
-				processParameters(parameters, moduleConfiguration, parent);
-				service.addModuleConfig(moduleConfiguration);
-			}
-		}
-	}
+                processParameters(parameters, moduleConfiguration, parent);
+                service.addModuleConfig(moduleConfiguration);
+            }
+        }
+    }
 
-	/*
-	 * process data locator configuration for data retrieval.
-	 */
-	private void processDataLocatorConfig(OMElement dataLocatorElement,
-			AxisService service) {
-		OMAttribute serviceOverallDataLocatorclass = dataLocatorElement
-				.getAttribute(new QName(DRConstants.CLASS_ATTRIBUTE));
-		if (serviceOverallDataLocatorclass != null) {
-			String className = serviceOverallDataLocatorclass
-					.getAttributeValue();
-			service.addDataLocatorClassNames(DRConstants.SERVICE_LEVEL,
-					className);
-		}
-		Iterator iterator = dataLocatorElement.getChildrenWithName(new QName(
-				DRConstants.DIALECT_LOCATOR_ELEMENT));
+    /*
+     * process data locator configuration for data retrieval.
+     */
+    private void processDataLocatorConfig(OMElement dataLocatorElement,
+            AxisService service) {
+        OMAttribute serviceOverallDataLocatorclass = dataLocatorElement
+                .getAttribute(new QName(DRConstants.CLASS_ATTRIBUTE));
+        if (serviceOverallDataLocatorclass != null) {
+            String className = serviceOverallDataLocatorclass
+                    .getAttributeValue();
+            service.addDataLocatorClassNames(DRConstants.SERVICE_LEVEL,
+                    className);
+        }
+        Iterator<OMElement> iterator = dataLocatorElement.getChildrenWithName(new QName(
+                DRConstants.DIALECT_LOCATOR_ELEMENT));
 
-		while (iterator.hasNext()) {
-			OMElement locatorElement = (OMElement) iterator.next();
-			OMAttribute dialect = locatorElement.getAttribute(new QName(
-					DRConstants.DIALECT_ATTRIBUTE));
-			OMAttribute dialectclass = locatorElement.getAttribute(new QName(
-					DRConstants.CLASS_ATTRIBUTE));
-			service.addDataLocatorClassNames(dialect.getAttributeValue(),
-					dialectclass.getAttributeValue());
+        while (iterator.hasNext()) {
+            OMElement locatorElement = iterator.next();
+            OMAttribute dialect = locatorElement.getAttribute(new QName(
+                    DRConstants.DIALECT_ATTRIBUTE));
+            OMAttribute dialectclass = locatorElement.getAttribute(new QName(
+                    DRConstants.CLASS_ATTRIBUTE));
+            service.addDataLocatorClassNames(dialect.getAttributeValue(),
+                    dialectclass.getAttributeValue());
 
-		}
+        }
 
-	}
+    }
 
-	public void setWsdlServiceMap(Map<String,AxisService> wsdlServiceMap) {
-		this.wsdlServiceMap = wsdlServiceMap;
-	}
+    public void setWsdlServiceMap(Map<String,AxisService> wsdlServiceMap) {
+        this.wsdlServiceMap = wsdlServiceMap;
+    }
 
-	private void processEndpoints(AxisService axisService) throws AxisFault {
-		String endpointName = axisService.getEndpointName();
-		if (endpointName == null || endpointName.length() == 0) {
-			Utils.addEndpointsToService(axisService, service.getAxisConfiguration());
-		}
-	}
-	
-	private void processPolicyAttachments(OMElement serviceElement,
+    private void processEndpoints(AxisService axisService) throws AxisFault {
+        String endpointName = axisService.getEndpointName();
+        if (endpointName == null || endpointName.length() == 0) {
+            Utils.addEndpointsToService(axisService, service.getAxisConfiguration());
+        }
+    }
+    
+    private void processPolicyAttachments(OMElement serviceElement,
                                           AxisService service) throws DeploymentException {
-		List<OMElement> attachmentElements = new ArrayList<OMElement>();
-		for (Iterator it = serviceElement.getChildElements(); it.hasNext(); ) {
-		    OMElement elem = (OMElement)it.next();
-		    if (org.apache.neethi.Constants.isPolicyNS(elem.getNamespaceURI()) &&
-		            elem.getLocalName().equals(TAG_POLICY_ATTACHMENT)) {
-		        attachmentElements.add(elem);
-		    }
-		}
-		try {
-			Utils.processPolicyAttachments(attachmentElements.iterator(), service);
-		} catch (Exception e) {
-			throw new DeploymentException(e);
-		}
-	}
+        List<OMElement> attachmentElements = new ArrayList<OMElement>();
+        for (Iterator it = serviceElement.getChildElements(); it.hasNext(); ) {
+            OMElement elem = (OMElement)it.next();
+            if (org.apache.neethi.Constants.isPolicyNS(elem.getNamespaceURI()) &&
+                    elem.getLocalName().equals(TAG_POLICY_ATTACHMENT)) {
+                attachmentElements.add(elem);
+            }
+        }
+        try {
+            Utils.processPolicyAttachments(attachmentElements.iterator(), service);
+        } catch (Exception e) {
+            throw new DeploymentException(e);
+        }
+    }
 
     private void startupServiceLifecycle() {
         if (service.getServiceLifeCycle() != null) {
diff --git a/modules/kernel/src/org/apache/axis2/deployment/ServiceDeployer.java b/modules/kernel/src/org/apache/axis2/deployment/ServiceDeployer.java
index bc7dfec..a82327e 100644
--- a/modules/kernel/src/org/apache/axis2/deployment/ServiceDeployer.java
+++ b/modules/kernel/src/org/apache/axis2/deployment/ServiceDeployer.java
@@ -246,17 +246,10 @@
         }
         AxisServiceGroup serviceGroup = new AxisServiceGroup();
         StringWriter errorWriter = new StringWriter();
-        int index = servicesURL.getPath().lastIndexOf(File.separator);
-         String serviceFile;
-         if(index > 0){
-             serviceFile = servicesURL.getPath().substring(index);
-         } else {
-             serviceFile = servicesURL.getPath();
-         }
          ArrayList<AxisService> servicelist =
          populateService(serviceGroup,
          servicesURL,
-         serviceFile.substring(0, serviceFile.indexOf(".aar")));
+         DescriptionBuilder.getShortFileName(deploymentFileData.getName()));
          try {
             DeploymentEngine.addServiceGroup(serviceGroup, servicelist, servicesURL, null,
              axisConfig);
@@ -299,8 +292,8 @@
         try {
             serviceGroup.setServiceGroupName(serviceName);
             ClassLoader serviceClassLoader = Utils
-                    .createClassLoader(new URL[] { servicesURL }, axisConfig
-                            .getServiceClassLoader(), true, (File) axisConfig
+                    .createClassLoader(servicesURL, null, axisConfig
+                            .getServiceClassLoader(), (File) axisConfig
                             .getParameterValue(Constants.Configuration.ARTIFACTS_TEMP_DIR),
                             axisConfig.isChildFirstClassLoading());
             String metainf = "meta-inf";
diff --git a/modules/kernel/src/org/apache/axis2/deployment/ServiceGroupBuilder.java b/modules/kernel/src/org/apache/axis2/deployment/ServiceGroupBuilder.java
index deec369..3a69dc4 100644
--- a/modules/kernel/src/org/apache/axis2/deployment/ServiceGroupBuilder.java
+++ b/modules/kernel/src/org/apache/axis2/deployment/ServiceGroupBuilder.java
@@ -54,25 +54,25 @@
         try {
 
             // Processing service level parameters
-            Iterator itr = serviceElement.getChildrenWithName(new QName(TAG_PARAMETER));
+            Iterator<OMElement> itr = serviceElement.getChildrenWithName(new QName(TAG_PARAMETER));
 
             processParameters(itr, axisServiceGroup, axisServiceGroup.getParent());
 
-            Iterator moduleConfigs =
+            Iterator<OMElement> moduleConfigs =
                     serviceElement.getChildrenWithName(new QName(TAG_MODULE_CONFIG));
 
             processServiceModuleConfig(moduleConfigs, axisServiceGroup.getParent(),
                                        axisServiceGroup);
 
             // processing service-wide modules which required to engage globally
-            Iterator moduleRefs = serviceElement.getChildrenWithName(new QName(TAG_MODULE));
+            Iterator<OMElement> moduleRefs = serviceElement.getChildrenWithName(new QName(TAG_MODULE));
 
             processModuleRefs(moduleRefs, axisServiceGroup);
 
-            Iterator serviceitr = serviceElement.getChildrenWithName(new QName(TAG_SERVICE));
+            Iterator<OMElement> serviceitr = serviceElement.getChildrenWithName(new QName(TAG_SERVICE));
 
             while (serviceitr.hasNext()) {
-                OMElement service = (OMElement) serviceitr.next();
+                OMElement service = serviceitr.next();
                 OMAttribute serviceNameatt = service.getAttribute(new QName(ATTRIBUTE_NAME));
                 if (serviceNameatt == null) {
                     throw new DeploymentException(
@@ -153,7 +153,7 @@
                 String module = moduleName_att.getAttributeValue();
                 ModuleConfiguration moduleConfiguration =
                         new ModuleConfiguration(module, parent);
-                Iterator parameters = moduleConfig.getChildrenWithName(new QName(TAG_PARAMETER));
+                Iterator<OMElement> parameters = moduleConfig.getChildrenWithName(new QName(TAG_PARAMETER));
 
                 processParameters(parameters, moduleConfiguration, parent);
                 axisService.addModuleConfig(moduleConfiguration);
diff --git a/modules/kernel/src/org/apache/axis2/deployment/TransportDeployer.java b/modules/kernel/src/org/apache/axis2/deployment/TransportDeployer.java
index f5f3f22..4bb4831 100644
--- a/modules/kernel/src/org/apache/axis2/deployment/TransportDeployer.java
+++ b/modules/kernel/src/org/apache/axis2/deployment/TransportDeployer.java
@@ -63,7 +63,7 @@
             element.build();

             AxisConfigBuilder builder = new AxisConfigBuilder(axisConfig);

             // Processing Transport Receivers

-            Iterator trs_Reivers =

+            Iterator<OMElement> trs_Reivers =

                     element.getChildrenWithName(new QName(DeploymentConstants.TAG_TRANSPORT_RECEIVER));

             ArrayList transportReceivers = builder.processTransportReceivers(trs_Reivers);

             for (int i = 0; i < transportReceivers.size(); i++) {

@@ -76,7 +76,7 @@
             }

 

             // Processing Transport Senders

-            Iterator trs_senders =

+            Iterator<OMElement> trs_senders =

                     element.getChildrenWithName(new QName(DeploymentConstants.TAG_TRANSPORT_SENDER));

 

             builder.processTransportSenders(trs_senders);

diff --git a/modules/kernel/src/org/apache/axis2/deployment/WarBasedAxisConfigurator.java b/modules/kernel/src/org/apache/axis2/deployment/WarBasedAxisConfigurator.java
index 555e02a..7133f58 100644
--- a/modules/kernel/src/org/apache/axis2/deployment/WarBasedAxisConfigurator.java
+++ b/modules/kernel/src/org/apache/axis2/deployment/WarBasedAxisConfigurator.java
@@ -226,6 +226,10 @@
                     }
                 }
                 if (repository != null) {
+                    // WEB-INF contains a lib folder, but we don't want to create a class loader that
+                    // attempts to load libraries from there (in particular with parent last as class
+                    // loading policy).
+                    axisConfig.setSystemClassLoader(Thread.currentThread().getContextClassLoader());
                     loadRepository(repository);
                     log.debug("loaded repository from /WEB-INF folder (unpacked war)");
                 }
@@ -235,6 +239,7 @@
                 URL url = config.getServletContext().getResource("/WEB-INF/");
                 if (url != null) {
                     repository = url.toString();
+                    axisConfig.setSystemClassLoader(Thread.currentThread().getContextClassLoader());
                     loadRepositoryFromURL(url);
                     log.debug("loaded repository from /WEB-INF/ folder (URL)");
                 }
diff --git a/modules/kernel/src/org/apache/axis2/deployment/axis2_default.xml b/modules/kernel/src/org/apache/axis2/deployment/axis2_default.xml
index dc87498..2c37fa8 100644
--- a/modules/kernel/src/org/apache/axis2/deployment/axis2_default.xml
+++ b/modules/kernel/src/org/apache/axis2/deployment/axis2_default.xml
@@ -173,12 +173,12 @@
     <transportSender name="local"
                      class="org.apache.axis2.transport.local.LocalTransportSender"/>
     <transportSender name="http"
-                     class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
+                     class="org.apache.axis2.transport.http.impl.httpclient4.HTTPClient4TransportSender">
         <parameter name="PROTOCOL">HTTP/1.1</parameter>
         <parameter name="Transfer-Encoding">chunked</parameter>
     </transportSender>
     <transportSender name="https"
-                     class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
+                     class="org.apache.axis2.transport.http.impl.httpclient4.HTTPClient4TransportSender">
         <parameter name="PROTOCOL">HTTP/1.1</parameter>
         <parameter name="Transfer-Encoding">chunked</parameter>
     </transportSender>
diff --git a/modules/kernel/src/org/apache/axis2/deployment/repository/util/DeploymentFileData.java b/modules/kernel/src/org/apache/axis2/deployment/repository/util/DeploymentFileData.java
index 7435ed8..4981029 100644
--- a/modules/kernel/src/org/apache/axis2/deployment/repository/util/DeploymentFileData.java
+++ b/modules/kernel/src/org/apache/axis2/deployment/repository/util/DeploymentFileData.java
@@ -82,7 +82,12 @@
      * @return the name of the referenced file
      */
     public String getName() {
-        return file.getName(); // No need to check for null due to constructor check
+        if (file != null) {
+            return file.getName();
+        } else {
+            String path = url.getPath();
+            return path.substring(path.lastIndexOf('/') + 1);
+        }
     }
 
 
@@ -118,8 +123,7 @@
                         throw new AxisFault(Messages.getMessage(DeploymentErrorMsgs.FILE_NOT_FOUND,
                                                                 this.file.getAbsolutePath()));
                     }
-                    urlsToLoadFrom = new URL[]{this.file.toURI().toURL()};
-                    classLoader = Utils.createClassLoader(urlsToLoadFrom, parent, true, file, isChildFirstClassLoading);
+                    classLoader = Utils.createClassLoader(this.file.toURI().toURL(), null, parent, file, isChildFirstClassLoading);
                 } catch (Exception e) {
                     throw AxisFault.makeFault(e);
                 }
diff --git a/modules/kernel/src/org/apache/axis2/deployment/util/Utils.java b/modules/kernel/src/org/apache/axis2/deployment/util/Utils.java
index 46f17f9..88ee519 100644
--- a/modules/kernel/src/org/apache/axis2/deployment/util/Utils.java
+++ b/modules/kernel/src/org/apache/axis2/deployment/util/Utils.java
@@ -25,7 +25,6 @@
 import org.apache.axiom.soap.SOAP11Constants;
 import org.apache.axiom.soap.SOAP12Constants;
 import org.apache.axis2.AxisFault;
-import org.apache.axis2.classloader.JarFileClassLoader;
 import org.apache.axis2.Constants;
 import org.apache.axis2.jaxrs.JAXRSModel;
 import org.apache.axis2.context.ConfigurationContext;
@@ -152,27 +151,31 @@
     }
 
     public static URL[] getURLsForAllJars(URL url, File tmpDir) {
-        FileInputStream fin = null;
         InputStream in = null;
         ZipInputStream zin = null;
         try {
-            ArrayList array = new ArrayList();
+            ArrayList<URL> array = new ArrayList<URL>();
             in = url.openStream();
-            String fileName = url.getFile();
-            int index = fileName.lastIndexOf('/');
-            if (index != -1) {
-                fileName = fileName.substring(index + 1);
-            }
-            final File f = createTempFile(fileName, in, tmpDir);
+            if (url.getProtocol().equals("file")) {
+                array.add(url);
+            } else {
+                String fileName = url.getFile();
+                int index = fileName.lastIndexOf('/');
+                if (index != -1) {
+                    fileName = fileName.substring(index + 1);
+                }
+                final File f = createTempFile(fileName, in, tmpDir);
+                in.close();
 
-            fin = (FileInputStream)org.apache.axis2.java.security.AccessController
-                    .doPrivileged(new PrivilegedExceptionAction() {
-                        public Object run() throws FileNotFoundException {
-                            return new FileInputStream(f);
-                        }
-                    });
-            array.add(f.toURI().toURL());
-            zin = new ZipInputStream(fin);
+                in = org.apache.axis2.java.security.AccessController
+                        .doPrivileged(new PrivilegedExceptionAction<InputStream>() {
+                            public InputStream run() throws FileNotFoundException {
+                                return new FileInputStream(f);
+                            }
+                        });
+                array.add(f.toURI().toURL());
+            }
+            zin = new ZipInputStream(in);
 
             ZipEntry entry;
             String entryName;
@@ -190,17 +193,10 @@
                     array.add(f2.toURI().toURL());
                 }
             }
-            return (URL[])array.toArray(new URL[array.size()]);
+            return array.toArray(new URL[array.size()]);
         } catch (Exception e) {
             throw new RuntimeException(e);
         } finally {
-            if (fin != null) {
-                try {
-                    fin.close();
-                } catch (IOException e) {
-                    //
-                }
-            }
             if (in != null) {
                 try {
                     in.close();
@@ -321,13 +317,11 @@
      */
     public static ClassLoader getClassLoader(final ClassLoader parent, File file, final boolean isChildFirstClassLoading)
             throws DeploymentException {
-        URLClassLoader classLoader;
-
         if (file == null)
             return null; // Shouldn't this just return the parent?
 
         try {
-            ArrayList urls = new ArrayList();
+            ArrayList<URL> urls = new ArrayList<URL>();
             urls.add(file.toURI().toURL());
 
             // lower case directory name
@@ -340,51 +334,30 @@
 
             final URL urllist[] = new URL[urls.size()];
             for (int i = 0; i < urls.size(); i++) {
-                urllist[i] = (URL)urls.get(i);
+                urllist[i] = urls.get(i);
             }
-            classLoader = (URLClassLoader)AccessController
-                    .doPrivileged(new PrivilegedAction() {
-                        public Object run() {
-                            if (useJarFileClassLoader()) {
-                                return new JarFileClassLoader(urllist, parent);
-                            } else {
-                                return new DeploymentClassLoader(urllist, null, parent, isChildFirstClassLoading);
-                            }
-                        }
-                    });
-            return classLoader;
+            if (log.isDebugEnabled()) {
+                log.debug("Creating class loader with the following libraries: " + Arrays.asList(urllist));
+            }
+            return createDeploymentClassLoader(urllist, parent, isChildFirstClassLoading);
         } catch (MalformedURLException e) {
             throw new DeploymentException(e);
         }
     }
 
-    private static boolean useJarFileClassLoader() {
-        // The JarFileClassLoader was created to address a locking problem seen only on Windows platforms.
-        // It carries with it a slight performance penalty that needs to be addressed.  Rather than make
-        // *nix OSes carry this burden we'll engage the JarFileClassLoader for Windows or if the user 
-        // specifically requests it.
-        boolean useJarFileClassLoader;
-        if (System.getProperty("org.apache.axis2.classloader.JarFileClassLoader") == null) {
-            useJarFileClassLoader = System.getProperty("os.name").startsWith("Windows");
-        } else {
-            useJarFileClassLoader = Boolean.getBoolean("org.apache.axis2.classloader.JarFileClassLoader");
-        }
-        return useJarFileClassLoader;
-    }
-
-    private static boolean addFiles(ArrayList urls, final File libfiles)
+    private static boolean addFiles(ArrayList<URL> urls, final File libfiles)
             throws MalformedURLException {
-        Boolean exists = (Boolean)org.apache.axis2.java.security.AccessController
-                .doPrivileged(new PrivilegedAction() {
-                    public Object run() {
+        Boolean exists = org.apache.axis2.java.security.AccessController
+                .doPrivileged(new PrivilegedAction<Boolean>() {
+                    public Boolean run() {
                         return libfiles.exists();
                     }
                 });
         if (exists) {
             urls.add(libfiles.toURI().toURL());
-            File jarfiles[] = (File[])org.apache.axis2.java.security.AccessController
-                    .doPrivileged(new PrivilegedAction() {
-                        public Object run() {
+            File jarfiles[] = org.apache.axis2.java.security.AccessController
+                    .doPrivileged(new PrivilegedAction<File[]>() {
+                        public File[] run() {
                             return libfiles.listFiles();
                         }
                     });
@@ -744,38 +717,6 @@
     }
 
     /**
-     * Get names of all *.jar files inside the lib/ directory of a given jar URL
-     *
-     * @param url base URL of a JAR to search
-     * @return a List containing file names (Strings) of all files matching "[lL]ib/*.jar"
-     */
-    public static List findLibJars(URL url) {
-        ArrayList embedded_jars = new ArrayList();
-        try {
-            ZipInputStream zin = new ZipInputStream(url.openStream());
-            ZipEntry entry;
-            String entryName;
-            while ((entry = zin.getNextEntry()) != null) {
-                entryName = entry.getName();
-                /**
-                 * if the entry name start with /lib and ends with .jar add it
-                 * to the the arraylist
-                 */
-                if (entryName != null
-                    && (entryName.startsWith("lib/") || entryName
-                        .startsWith("Lib/"))
-                    && entryName.endsWith(".jar")) {
-                    embedded_jars.add(entryName);
-                }
-            }
-            zin.close();
-        } catch (Exception e) {
-            throw new RuntimeException(e);
-        }
-        return embedded_jars;
-    }
-
-    /**
      * Add the Axis2 lifecycle / session methods to a pre-existing list of names that will be
      * excluded when generating schemas.
      *
@@ -799,35 +740,7 @@
                             }
                         });
         return createDeploymentClassLoader(new URL[]{serviceFile.toURI().toURL()},
-                                           contextClassLoader, new ArrayList(), isChildFirstClassLoading);
-    }
-
-    public static ClassLoader createClassLoader(ArrayList urls,
-                                                ClassLoader serviceClassLoader,
-                                                boolean extractJars,
-                                                File tmpDir,
-                                                boolean isChildFirstClassLoading) {
-        URL url = (URL)urls.get(0);
-        if (extractJars) {
-            try {
-                URL[] urls1 = Utils.getURLsForAllJars(url, tmpDir);
-                urls.remove(0);
-                urls.addAll(0, Arrays.asList(urls1));
-                URL[] urls2 = (URL[])urls.toArray(new URL[urls.size()]);
-                return createDeploymentClassLoader(urls2, serviceClassLoader,
-                                                   null, isChildFirstClassLoading);
-            } catch (Exception e) {
-                log
-                        .warn("Exception extracting jars into temporary directory : "
-                              + e.getMessage()
-                              + " : switching to alternate class loading mechanism");
-                log.debug(e.getMessage(), e);
-            }
-        }
-        List embedded_jars = Utils.findLibJars(url);
-        URL[] urls2 = (URL[])urls.toArray(new URL[urls.size()]);
-        return createDeploymentClassLoader(urls2, serviceClassLoader,
-                                           embedded_jars, isChildFirstClassLoading);
+                                           contextClassLoader, isChildFirstClassLoading);
     }
 
     public static File toFile(URL url) throws UnsupportedEncodingException {
@@ -835,36 +748,26 @@
         return new File(path.replace('/', File.separatorChar).replace('|', ':'));
     }
 
-    public static ClassLoader createClassLoader(URL[] urls,
+    public static ClassLoader createClassLoader(URL archiveUrl, URL[] extraUrls,
                                                 ClassLoader serviceClassLoader,
-                                                boolean extractJars,
                                                 File tmpDir,
                                                 boolean isChildFirstClassLoading) {
-        if (extractJars) {
-            try {
-                URL[] urls1 = Utils.getURLsForAllJars(urls[0], tmpDir);
-                return createDeploymentClassLoader(urls1, serviceClassLoader,
-                                                   null, isChildFirstClassLoading);
-            } catch (Exception e) {
-                log
-                        .warn("Exception extracting jars into temporary directory : "
-                              + e.getMessage()
-                              + " : switching to alternate class loading mechanism");
-                log.debug(e.getMessage(), e);
-            }
+        List<URL> urls = new ArrayList<>();
+        urls.addAll(Arrays.asList(Utils.getURLsForAllJars(archiveUrl, tmpDir)));
+        if (extraUrls != null) {
+            urls.addAll(Arrays.asList(extraUrls));
         }
-        List embedded_jars = Utils.findLibJars(urls[0]);
-        return createDeploymentClassLoader(urls, serviceClassLoader,
-                                           embedded_jars, isChildFirstClassLoading);
+        return createDeploymentClassLoader(urls.toArray(new URL[urls.size()]), serviceClassLoader,
+                                           isChildFirstClassLoading);
     }
 
     private static DeploymentClassLoader createDeploymentClassLoader(
             final URL[] urls, final ClassLoader serviceClassLoader,
-            final List embeddedJars, final boolean isChildFirstClassLoading) {
-        return (DeploymentClassLoader)AccessController
-                .doPrivileged(new PrivilegedAction() {
-                    public Object run() {
-                        return new DeploymentClassLoader(urls, embeddedJars,
+            final boolean isChildFirstClassLoading) {
+        return AccessController
+                .doPrivileged(new PrivilegedAction<DeploymentClassLoader>() {
+                    public DeploymentClassLoader run() {
+                        return new DeploymentClassLoader(urls,
                                                          serviceClassLoader, isChildFirstClassLoading);
                     }
                 });
@@ -883,11 +786,11 @@
         if (excludeBeanProperty != null) {
             OMElement parameterElement = excludeBeanProperty
                     .getParameterElement();
-            Iterator bneasItr = parameterElement.getChildrenWithName(new QName(
+            Iterator<OMElement> bneasItr = parameterElement.getChildrenWithName(new QName(
                     "bean"));
             ExcludeInfo excludeInfo = new ExcludeInfo();
             while (bneasItr.hasNext()) {
-                OMElement bean = (OMElement)bneasItr.next();
+                OMElement bean = bneasItr.next();
                 String clazz = bean.getAttributeValue(new QName(
                         DeploymentConstants.TAG_CLASS_NAME));
                 String excludePropertees = bean.getAttributeValue(new QName(
@@ -1269,10 +1172,10 @@
                 policyComponents.add(policyRef);
             }
 
-            for (Iterator policySubjects = appliesToElem
+            for (Iterator<OMElement> policySubjects = appliesToElem
                     .getChildrenWithName(new QName("policy-subject")); policySubjects
                     .hasNext();) {
-                OMElement policySubject = (OMElement)policySubjects.next();
+                OMElement policySubject = policySubjects.next();
                 String identifier = policySubject.getAttributeValue(new QName(
                         "identifier"));
 
diff --git a/modules/kernel/src/org/apache/axis2/description/AxisService.java b/modules/kernel/src/org/apache/axis2/description/AxisService.java
index bfca88a..1f03432 100644
--- a/modules/kernel/src/org/apache/axis2/description/AxisService.java
+++ b/modules/kernel/src/org/apache/axis2/description/AxisService.java
@@ -64,6 +64,7 @@
 import org.apache.axis2.util.XMLPrettyPrinter;
 import org.apache.axis2.util.XMLUtils;
 import org.apache.axis2.wsdl.WSDLConstants;
+import org.apache.axis2.wsdl.WSDLUtil;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.neethi.Policy;
@@ -2387,7 +2388,7 @@
             Document doc = XMLUtils.newDocument(in);
             String namespaceURI = doc.getDocumentElement().getNamespaceURI();
             if (Constants.NS_URI_WSDL11.equals(namespaceURI)) {
-                WSDLReader reader = WSDLFactory.newInstance().newWSDLReader();
+            	WSDLReader reader = WSDLUtil.newWSDLReaderWithPopulatedExtensionRegistry();
                 reader.setFeature("javax.wsdl.importDocuments", true);
                 Definition wsdlDefinition = reader.readWSDL(getBaseURI(wsdlURL.toString()), doc);
                 if (wsdlDefinition != null) {
diff --git a/modules/kernel/src/org/apache/axis2/description/AxisService2WSDL11.java b/modules/kernel/src/org/apache/axis2/description/AxisService2WSDL11.java
index a25a88e..36420b9 100644
--- a/modules/kernel/src/org/apache/axis2/description/AxisService2WSDL11.java
+++ b/modules/kernel/src/org/apache/axis2/description/AxisService2WSDL11.java
@@ -676,7 +676,7 @@
 					WSDLSerializationUtil.addExtensionElement(fac, port,
 							SOAP_ADDRESS, LOCATION, (endpointURL == null) ? ""
 									: endpointURL, soap);
-					generateEPRElement(fac, port, endpointURL);
+					generateEPRElement(axisEndpoint, fac, port, endpointURL);
 					addPolicyAsExtElement(axisEndpoint, port);
 					service.addChild(modifyPort(port));
 					if (isAlreadyAdded(axisBinding, definition)) {
@@ -726,7 +726,7 @@
 					WSDLSerializationUtil.addExtensionElement(fac, port,
 							SOAP_ADDRESS, LOCATION, (endpointURL == null) ? ""
 									: endpointURL, soap12);
-					generateEPRElement(fac, port, endpointURL);
+					generateEPRElement(axisEndpoint, fac, port, endpointURL);
 					addPolicyAsExtElement(axisEndpoint, port);
 					service.addChild(modifyPort(port));
 					if (isAlreadyAdded(axisBinding, definition)) {
@@ -1310,10 +1310,10 @@
 			OMElement definitionElement) {
 		QName bindingName = axisBinding.getName();
 		QName name = new QName("name");
-		for (Iterator iterator = definitionElement
+		for (Iterator<OMElement> iterator = definitionElement
 				.getChildrenWithName(new QName(wsdl.getNamespaceURI(),
 						BINDING_LOCAL_NAME)); iterator.hasNext();) {
-			OMElement element = (OMElement) iterator.next();
+			OMElement element = iterator.next();
 			String value = element.getAttributeValue(name);
 			if (bindingName.getLocalPart().equals(value)) {
 				return true;
@@ -1351,27 +1351,61 @@
             }
 	}
 	
-	/**
-	 * Generate the Identity element according to the WS-AddressingAndIdentity if the 
-	 * AddressingConstants.IDENTITY_PARAMETER parameter is set. 
-	 * http://schemas.xmlsoap.org/ws/2006/02/addressingidentity/ 
-	 */
-	
-	private void generateIdentityElement(OMFactory fac,OMElement epr, Parameter wsaIdParam) {
-	    
-	    // Create the Identity element
-	    OMElement identity = fac.createOMElement(AddressingConstants.QNAME_IDENTITY);
-	    OMElement keyInfo = fac.createOMElement(AddressingConstants.QNAME_IDENTITY_KEY_INFO);
-	    OMElement x509Data = fac.createOMElement(AddressingConstants.QNAME_IDENTITY_X509_DATA);
-	    OMElement x509cert = fac.createOMElement(AddressingConstants.QNAME_IDENTITY_X509_CERT);
-	    x509cert.setText((String)wsaIdParam.getValue());
-	    
-	    x509Data.addChild(x509cert);
-	    keyInfo.addChild(x509Data);
-	    identity.addChild(keyInfo);
-	    
-	    epr.addChild(identity);
-	    
+    /**
+     * Generate a &lt;wsid:Identity&gt; element according to the <a
+     * href="http://www.oasis-open.org/committees/download.php/29516/ws-addressingandidentity.doc"
+     * >WS-AddressingAndIdentity specification</a> and add it as a child of the given
+     * <code>epr</code> &lt;wsa:EndpointReference&gt; element.
+     * <p>
+     * If none of the <code>identityParameter</code> and <code>x509CertIdentityParameter</code>
+     * configures a valid value, this method will skip creating and adding an identity element.
+     * </p>
+     * 
+     * @param fac
+     *            A factory to use for creating OMElements.
+     * @param epr
+     *            The endpoint reference element to add the generated identity element to. Must not
+     *            be <code>null</code>.
+     * @param identity
+     *            An optional &lt;wsid:Identity&gt; OMElement to clone and use, instead of
+     *            generating a new one.
+     * @param x509CertIdentityParameter
+     *            An optional parameter that may contain a &lt;ds:X509Certificate&gt; String literal
+     *            value to set as key info in the created identity element.
+     */
+    private void generateIdentityElement(OMFactory fac, OMElement epr, OMElement identity, Parameter x509CertIdentityParameter) {
+        if (identity != null) {
+            identity = identity.cloneOMElement();
+            epr.addChild(identity);
+        }
+            
+        if (x509CertIdentityParameter != null && x509CertIdentityParameter.getValue() != null) {
+            if (identity == null) {
+                identity = fac.createOMElement(AddressingConstants.QNAME_IDENTITY);
+                epr.addChild(identity);
+            }
+            
+            OMElement keyInfo = identity.getFirstChildWithName(AddressingConstants.QNAME_IDENTITY_KEY_INFO);
+            if (keyInfo == null) {
+                keyInfo = fac.createOMElement(AddressingConstants.QNAME_IDENTITY_KEY_INFO);
+                identity.addChild(keyInfo);
+            }
+            
+            OMElement x509Data = keyInfo.getFirstChildWithName(AddressingConstants.QNAME_IDENTITY_X509_DATA);
+            if (x509Data == null) {
+                x509Data = fac.createOMElement(AddressingConstants.QNAME_IDENTITY_X509_DATA);
+                keyInfo.addChild(x509Data);
+            }
+            
+            OMElement x509cert = x509Data.getFirstChildWithName(AddressingConstants.QNAME_IDENTITY_X509_CERT);
+            if (x509cert == null) {
+                x509cert = fac.createOMElement(AddressingConstants.QNAME_IDENTITY_X509_CERT);
+                x509Data.addChild(x509cert);
+            }
+            
+            String x509CertValue = (String) x509CertIdentityParameter.getValue();
+            x509cert.setText(x509CertValue);
+        }
 	}
 	
 	
@@ -1384,12 +1418,15 @@
          * </wsa:EndpointReference>
 	 * 
 	 */
-	private void generateEPRElement(OMFactory fac, OMElement port, String endpointURL){
+	private void generateEPRElement(AxisEndpoint endpoint, OMFactory fac, OMElement port, String endpointURL){
+	    //an optional String parameter that contains x509 certificate information 
+	    Parameter x509CertIdentityParameter = axisService.getParameter(AddressingConstants.IDENTITY_PARAMETER);
 	    
-	    Parameter parameter = axisService.getParameter(AddressingConstants.IDENTITY_PARAMETER);
-	            
-	    // If the parameter is not set, return
-	    if (parameter == null || parameter.getValue() == null) {
+	    //an optional OMElement parameter that represents an <wsid:Identity> element
+	    OMElement identityElement = AddressingHelper.getAddressingIdentityParameterValue(endpoint);
+
+	    if ((x509CertIdentityParameter == null || x509CertIdentityParameter.getValue() == null) && identityElement == null) {
+	        //none of these is configured, for backward compatibility do not generate anything and return
 	        return;
 	    }
 	    
@@ -1401,7 +1438,7 @@
 	    wsaEpr.addChild(address);
 	    
 	    // This will generate the identity element if the service parameter is set
-	    generateIdentityElement(fac, wsaEpr, parameter);
+	    generateIdentityElement(fac, wsaEpr, identityElement, x509CertIdentityParameter);
 	    
 	    port.addChild(wsaEpr);   
 	    
diff --git a/modules/kernel/src/org/apache/axis2/description/ParameterIncludeImpl.java b/modules/kernel/src/org/apache/axis2/description/ParameterIncludeImpl.java
index 2a8ccd4..af16f57 100644
--- a/modules/kernel/src/org/apache/axis2/description/ParameterIncludeImpl.java
+++ b/modules/kernel/src/org/apache/axis2/description/ParameterIncludeImpl.java
@@ -38,13 +38,9 @@
 import java.io.IOException;
 import java.io.ObjectInput;
 import java.io.ObjectOutput;
-import java.util.concurrent.ConcurrentHashMap;
 import java.util.ArrayList;
-import java.util.ConcurrentModificationException;
 import java.util.HashMap;
 import java.util.Iterator;
-import java.util.Map;
-
 
 /**
  * Class ParameterIncludeImpl
@@ -88,15 +84,13 @@
     /**
      * Field parmeters
      */
-    protected Map<String, Parameter> parameters;
+    private final HashMap<String, Parameter> parameters;
 
     /**
      * Constructor ParameterIncludeImpl.
      */
     public ParameterIncludeImpl() {
-        // Use a capacity large enough to prevent
-        // resizing
-        parameters = new HashMap<String, Parameter>(64);
+        parameters = new HashMap<String, Parameter>();
     }
 
     /**
@@ -108,26 +102,6 @@
         if (param != null) {
             synchronized (parameters) {
                 parameters.put(param.getName(), param);
-                try {
-                    parameters.put(param.getName(), param);
-                } catch (ConcurrentModificationException cme) {
-                    // The ParameteterIncludeImpl is supposed to be immutable after it is populated.
-                    // But alas, sometimes the callers forget and try to add new items.  If
-                    // this occurs, swap over to the slower ConcurrentHashMap and continue.
-                    if (log.isDebugEnabled()) {
-                        log.debug("ConcurrentModificationException Occured...changing to ConcurrentHashMap");
-                        log.debug("The exception is: " + cme);
-                    }
-
-                    Map newMap = new ConcurrentHashMap(parameters);
-                    newMap.put(param.getName(), param);
-                    parameters = newMap;
-                }
-
-                if (DEBUG_ENABLED) {
-                    this.debugParameterAdd(param);
-                }
-
             }
             
             if (DEBUG_ENABLED) {
@@ -138,22 +112,8 @@
 
     public void removeParameter(Parameter param) throws AxisFault {
         synchronized (parameters) {
-            try {
-                parameters.remove(param.getName());
-            } catch (ConcurrentModificationException cme) {
-                // The ParameteterIncludeImpl is supposed to be immutable after it is populated.
-                // But alas, sometimes the callers forget and try to add new items.  If
-                // this occurs, swap over to the slower ConcurrentHashMap and continue.
-                if (log.isDebugEnabled()) {
-                    log.debug("ConcurrentModificationException Occured...changing to ConcurrentHashMap");
-                    log.debug("The exception is: " + cme);
-                }
-
-                Map newMap = new ConcurrentHashMap(parameters);
-                newMap.remove(param.getName());
-                parameters = newMap;
-            }
-        } 
+            parameters.remove(param.getName());
+        }
     }
 
     /**
@@ -164,13 +124,13 @@
      * @throws AxisFault
      */
     public void deserializeParameters(OMElement parameters) throws AxisFault {
-        Iterator iterator =
+        Iterator<OMElement> iterator =
                 parameters.getChildrenWithName(new QName(DeploymentConstants.TAG_PARAMETER));
 
         while (iterator.hasNext()) {
 
             // this is to check whether some one has locked the parmeter at the top level
-            OMElement parameterElement = (OMElement) iterator.next();
+            OMElement parameterElement = iterator.next();
             Parameter parameter = new Parameter();
 
             // setting parameterElement
@@ -220,11 +180,13 @@
      * @return Returns parameter.
      */
     public Parameter getParameter(String name) {
-        return parameters.get(name);
+        synchronized (parameters) {
+            return parameters.get(name);
+        }
     }
 
     public ArrayList<Parameter> getParameters() {
-        synchronized(parameters) {
+        synchronized (parameters) {
             return new ArrayList<Parameter>(parameters.values());
         }
     }
diff --git a/modules/kernel/src/org/apache/axis2/description/WSDL11ToAxisServiceBuilder.java b/modules/kernel/src/org/apache/axis2/description/WSDL11ToAxisServiceBuilder.java
index 2b22013..68456cb 100644
--- a/modules/kernel/src/org/apache/axis2/description/WSDL11ToAxisServiceBuilder.java
+++ b/modules/kernel/src/org/apache/axis2/description/WSDL11ToAxisServiceBuilder.java
@@ -91,7 +91,6 @@
 import javax.wsdl.extensions.soap12.SOAP12Body;
 import javax.wsdl.extensions.soap12.SOAP12Header;
 import javax.wsdl.extensions.soap12.SOAP12Operation;
-import javax.wsdl.factory.WSDLFactory;
 import javax.wsdl.xml.WSDLLocator;
 import javax.wsdl.xml.WSDLReader;
 import javax.xml.namespace.QName;
@@ -333,10 +332,16 @@
             Binding binding = findBinding(wsdl4jDefinition, wsdl4jService);
             Definition bindingWSDL = getParentDefinition(wsdl4jDefinition,
                     binding.getQName(), COMPONENT_BINDING, new HashSet());
-            Definition portTypeWSDL = getParentDefinition(bindingWSDL,
-                    binding.getPortType().getQName(), COMPONENT_PORT_TYPE, new HashSet());
-            PortType portType = portTypeWSDL.getPortType(binding.getPortType().getQName());
-
+            
+            //do not search for wsdl where port type is defined, this search is depth-first
+            //and might lead to a wsdl where the port is only referenced but undefined
+            //instead look up the port type in the wsdl and only if not found fall back to binding's port type
+            PortType portType = wsdl4jDefinition.getPortType(binding.getPortType().getQName());
+            if (portType == null) {
+                //TODO in case of recursive imports, binding's port type will contain operations with null input message 
+                //requires fix for http://sourceforge.net/p/wsdl4j/bugs/39
+                portType = binding.getPortType();
+            }
 
             if (portType == null) {
                 throw new AxisFault("There is no port type associated with the binding");
@@ -362,7 +367,7 @@
             addDocumentation(axisService, documentationElement);
 
             axisService.setName(wsdl4jService.getQName().getLocalPart());
-            populateEndpoints(binding, bindingWSDL,wsdl4jService, portType, portTypeWSDL);
+            populateEndpoints(binding, bindingWSDL,wsdl4jService, portType);
             processPoliciesInDefintion(wsdl4jDefinition);
             axisService.getPolicyInclude().setPolicyRegistry(registry);
 
@@ -458,8 +463,7 @@
     private void populateEndpoints(Binding binding,
                                    Definition bindingWSDL,
                                    Service wsdl4jService,
-                                   PortType portType,
-                                   Definition portTypeWSDL) throws AxisFault {
+                                   PortType portType) throws AxisFault {
 
         Map wsdl4jPorts = wsdl4jService.getPorts();
         QName bindingName = binding.getQName();
@@ -472,7 +476,7 @@
         // process the port type for this binding
         // although we support multiports they must be belongs to same port type and should have the
         // same soap style
-        populatePortType(portType, portTypeWSDL);
+        populatePortType(portType);
 
         Binding currentBinding;
         Definition currentBindingWSDL = null;
@@ -493,12 +497,12 @@
                     if (axisService.getEndpointName() == null &&
                             bindingName.equals(port.getBinding().getQName())) {
                         populateEndpoint(axisEndpoint, port, currentBinding,
-                                bindingWSDL, portType, portTypeWSDL, true);
+                                bindingWSDL, portType, true);
                         axisService.setEndpointName(axisEndpoint.getName());
                         axisService.setBindingName(axisEndpoint.getBinding().getName().getLocalPart());
                     } else {
                         populateEndpoint(axisEndpoint, port, currentBinding,
-                                bindingWSDL, portType, portTypeWSDL, false);
+                                bindingWSDL, portType, false);
                     }
 
                     axisEndpoint.setParent(axisService);
@@ -524,7 +528,6 @@
                                   Binding wsdl4jBinding,
                                   Definition bindingWSDL,
                                   PortType portType,
-                                  Definition portTypeWSDL,
                                   boolean isSetMessageQNames)
             throws AxisFault {
 
@@ -545,7 +548,6 @@
                     wsdl4jBinding,
                     bindingWSDL,
                     portType,
-                    portTypeWSDL,
                     isSetMessageQNames);
             processedBindings.put(wsdl4jBinding.getQName(), axisBinding);
         }
@@ -564,6 +566,12 @@
     				if(referenceParameters != null){
     					axisEndpoint.addParameter(AddressingConstants.REFERENCE_PARAMETER_PARAMETER, new ArrayList(referenceParameters.values()));
     				}
+    				for (OMElement extensibleElement : epr.getExtensibleElements()) {
+    				    if (AddressingConstants.QNAME_IDENTITY.equals(extensibleElement.getQName())) {
+    				        axisEndpoint.addParameter(AddressingConstants.ADDRESSING_IDENTITY_PARAMETER, extensibleElement.cloneOMElement());
+    				        break;
+    				    }
+    				}
     			} catch (Exception e) {
     				if(log.isDebugEnabled()){
     					log.debug("Exception encountered processing embedded wsa:EndpointReference", e);
@@ -573,8 +581,7 @@
     	}
     }
 
-	private void populatePortType(PortType wsdl4jPortType,
-                                  Definition portTypeWSDL) throws AxisFault {
+	private void populatePortType(PortType wsdl4jPortType) throws AxisFault {
 		copyExtensionAttributes(wsdl4jPortType.getExtensionAttributes(),
 				axisService, PORT_TYPE);
         List wsdl4jOperations = wsdl4jPortType.getOperations();
@@ -595,7 +602,7 @@
         for (Iterator iterator = wsdl4jOperations.iterator(); iterator.hasNext();) {
             wsdl4jOperation = (Operation) iterator.next();
 
-            axisOperation = populateOperations(wsdl4jOperation, wsdl4jPortType, portTypeWSDL);
+            axisOperation = populateOperations(wsdl4jOperation, wsdl4jPortType);
             addDocumentation(axisOperation, wsdl4jOperation.getDocumentationElement());
             if (wsdl4jOperation.getInput() != null) {
                 addMessageDocumentation(axisOperation, wsdl4jOperation.getInput().getDocumentationElement(), WSDLConstants.MESSAGE_LABEL_IN_VALUE);
@@ -640,7 +647,6 @@
                                  Binding wsdl4jBinding,
                                  Definition bindingWSDL,
                                  PortType portType,
-                                 Definition portTypeWSDL,
                                  boolean isSetMessageQNames)
             throws AxisFault {
 
@@ -673,7 +679,7 @@
             axisBindingOperation.setName(new QName(bindingWSDL.getTargetNamespace(), wsdl4jBindingOperation.getName()));
             addDocumentation(axisBindingOperation, wsdl4jBindingOperation.getDocumentationElement());
 
-            axisOperation = axisService.getOperation(new QName(portTypeWSDL.getTargetNamespace(), wsdl4jOperation.getName()));
+            axisOperation = axisService.getOperation(new QName(portType.getQName().getNamespaceURI(), wsdl4jOperation.getName()));
             axisBindingOperation.setAxisOperation(axisOperation);
 
             // process ExtensibilityElements of the wsdl4jBinding
@@ -1401,9 +1407,9 @@
      * @throws AxisFault
      */
     private AxisOperation populateOperations(Operation wsdl4jOperation,
-                                             PortType wsdl4jPortType, Definition dif)
+                                             PortType wsdl4jPortType)
             throws AxisFault {
-        QName opName = new QName(dif.getTargetNamespace(), wsdl4jOperation.getName());
+        QName opName = new QName(wsdl4jPortType.getQName().getNamespaceURI(), wsdl4jOperation.getName());
         // Copy Name Attribute
         AxisOperation axisOperation = axisService.getOperation(opName);
         if (axisOperation == null) {
@@ -1439,7 +1445,7 @@
                 String action = null;
                 if (inputActions == null || inputActions.size() == 0) {
                     action = WSDL11ActionHelper
-                            .getActionFromInputElement(dif, wsdl4jPortType,
+                            .getActionFromInputElement(wsdl4jDefinition, wsdl4jPortType,
                                                        wsdl4jOperation, wsdl4jInputMessage);
                 }
                 if (action != null) {
@@ -1470,7 +1476,7 @@
                 // with the Default Action Pattern
                 String action = axisOperation.getOutputAction();
                 if (action == null) {
-                    action = WSDL11ActionHelper.getActionFromOutputElement(dif,
+                    action = WSDL11ActionHelper.getActionFromOutputElement(wsdl4jDefinition,
                                                                            wsdl4jPortType,
                                                                            wsdl4jOperation,
                                                                            wsdl4jOutputMessage);
@@ -1502,7 +1508,7 @@
                 String action = axisOperation.getOutputAction();
                 if (action == null) {
                     action = WSDL11ActionHelper
-                            .getActionFromInputElement(dif, wsdl4jPortType,
+                            .getActionFromInputElement(wsdl4jDefinition, wsdl4jPortType,
                                                        wsdl4jOperation, wsdl4jInputMessage);
                 }
                 if (action != null) {
@@ -1529,7 +1535,7 @@
                 ArrayList inputActions = axisOperation.getWSAMappingList();
                 String action = null;
                 if (inputActions == null || inputActions.size() == 0) {
-                    action = WSDL11ActionHelper.getActionFromOutputElement(dif,
+                    action = WSDL11ActionHelper.getActionFromOutputElement(wsdl4jDefinition,
                                                                            wsdl4jPortType,
                                                                            wsdl4jOperation,
                                                                            wsdl4jOutputMessage);
@@ -1558,7 +1564,7 @@
                         .setName(faultMessage.getQName().getLocalPart());
 
                 copyExtensibleElements(faultMessage.getExtensibilityElements(),
-                                       dif, axisFaultMessage, PORT_TYPE_OPERATION_FAULT);
+                                       wsdl4jDefinition, axisFaultMessage, PORT_TYPE_OPERATION_FAULT);
 
             }
 
@@ -1567,7 +1573,7 @@
             // with the Default Action Pattern
             String action = axisOperation.getFaultAction(fault.getName());
             if (action == null) {
-                action = WSDL11ActionHelper.getActionFromFaultElement(dif,
+                action = WSDL11ActionHelper.getActionFromFaultElement(wsdl4jDefinition,
                                                                       wsdl4jPortType,
                                                                       wsdl4jOperation, fault);
             }
@@ -1588,7 +1594,7 @@
             
                 String faultAction = axisOperation.getFaultAction(exceptionClassName);
                 if (faultAction == null) {
-                    faultAction = WSDL11ActionHelper.getActionFromFaultElement(dif,
+                    faultAction = WSDL11ActionHelper.getActionFromFaultElement(wsdl4jDefinition,
                                                                           wsdl4jPortType,
                                                                           wsdl4jOperation, fault);
                     if (log.isDebugEnabled()) {
@@ -2322,7 +2328,7 @@
      */
     private Definition readInTheWSDLFile(InputStream in) throws WSDLException {
 
-        WSDLReader reader = WSDLFactory.newInstance().newWSDLReader();
+    	WSDLReader reader = WSDLUtil.newWSDLReaderWithPopulatedExtensionRegistry();
 
         // switch off the verbose mode for all usecases
         reader.setFeature(JAVAX_WSDL_VERBOSE_MODE_KEY, false);
diff --git a/modules/kernel/src/org/apache/axis2/description/java2wsdl/DefaultSchemaGenerator.java b/modules/kernel/src/org/apache/axis2/description/java2wsdl/DefaultSchemaGenerator.java
index d08fdb9..69d5649 100644
--- a/modules/kernel/src/org/apache/axis2/description/java2wsdl/DefaultSchemaGenerator.java
+++ b/modules/kernel/src/org/apache/axis2/description/java2wsdl/DefaultSchemaGenerator.java
@@ -73,6 +73,7 @@
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collection;
+import java.util.Collections;
 import java.util.Comparator;
 import java.util.Hashtable;
 import java.util.LinkedHashMap;
@@ -301,6 +302,14 @@
                 serviceMethods.add(method);
             }
         }
+        // The order of the methods returned by getMethods is undefined, but the test cases assume that the
+        // order is the same on all Java versions. Java 6 seems to use reverse lexical order, so we use that
+        // here to make things deterministic.
+        Collections.sort(serviceMethods, new Comparator<Method>() {
+            public int compare(Method o1, Method o2) {
+                return -o1.getName().compareTo(o2.getName());
+            }
+        });
         methods = processMethods(serviceMethods.toArray(new Method[serviceMethods.size()]));
         
         for (String extraClassName : getExtraClasses()) {
diff --git a/modules/kernel/src/org/apache/axis2/engine/DependencyManager.java b/modules/kernel/src/org/apache/axis2/engine/DependencyManager.java
index c769c03..cb76f77 100644
--- a/modules/kernel/src/org/apache/axis2/engine/DependencyManager.java
+++ b/modules/kernel/src/org/apache/axis2/engine/DependencyManager.java
@@ -29,8 +29,10 @@
 import org.apache.axis2.description.AxisService;
 import org.apache.axis2.description.AxisServiceGroup;
 import org.apache.axis2.description.Parameter;
+import org.apache.axis2.i18n.Messages;
 import org.apache.axis2.service.Lifecycle;
 import org.apache.axis2.util.Loader;
+import org.apache.axis2.util.Utils;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 
@@ -116,7 +118,7 @@
                     Class<?> implClass = Loader.loadClass(
                             classLoader,
                             ((String) implInfoParam.getValue()).trim());
-                    Object serviceImpl = implClass.newInstance();
+                    Object serviceImpl = makeNewServiceObject(service);
                     serviceContext.setProperty(ServiceContext.SERVICE_OBJECT, serviceImpl);
                     initServiceObject(serviceImpl, serviceContext);
                     restoreThreadContext(tc);
@@ -126,6 +128,17 @@
             }
         }
     }
+    
+    protected static Object makeNewServiceObject(AxisService service) throws AxisFault {
+        Object serviceObject = Utils.createServiceObject(service);
+        if (serviceObject == null) {
+            throw new AxisFault(
+                    Messages.getMessage("paramIsNotSpecified", "SERVICE_OBJECT_SUPPLIER"));
+        } else {
+            return serviceObject;
+        }
+    }
+        
 
     /**
      * Notify a service object that it's on death row.
diff --git a/modules/kernel/src/org/apache/axis2/transport/TransportUtils.java b/modules/kernel/src/org/apache/axis2/transport/TransportUtils.java
index 5870963..f147a25 100644
--- a/modules/kernel/src/org/apache/axis2/transport/TransportUtils.java
+++ b/modules/kernel/src/org/apache/axis2/transport/TransportUtils.java
@@ -28,7 +28,6 @@
 import org.apache.axiom.om.OMException;
 import org.apache.axiom.om.OMOutputFormat;
 import org.apache.axiom.om.OMXMLParserWrapper;
-import org.apache.axiom.om.util.DetachableInputStream;
 import org.apache.axiom.soap.SOAP11Constants;
 import org.apache.axiom.soap.SOAP12Constants;
 import org.apache.axiom.soap.SOAPEnvelope;
@@ -106,16 +105,8 @@
 
             SOAPEnvelope env = createSOAPMessage(msgContext, inStream, contentType);
 
-            // if we were told to detach, we will make the call here, this is only applicable
-            // if a DetachableInputStream instance is found on the MessageContext
             if(detach) {
-                DetachableInputStream dis = (DetachableInputStream) msgContext.getProperty(Constants.DETACHABLE_INPUT_STREAM);
-                if(dis != null) {
-                    if(log.isDebugEnabled()) {
-                        log.debug("Detaching input stream after SOAPEnvelope construction");
-                    }
-                    dis.detach();
-                }
+                detachInputStream(msgContext);
             }
             return env;
         } catch (Exception e) {
@@ -196,10 +187,10 @@
             type = getContentType(contentType, msgContext);
             Builder builder = MessageProcessorSelector.getMessageBuilder(type, msgContext);
             if (builder != null) {
-	            if (log.isDebugEnabled()) {
-	                log.debug("createSOAPEnvelope using Builder (" +
-	                          builder.getClass() + ") selected from type (" + type +")");
-	            }
+                if (log.isDebugEnabled()) {
+                    log.debug("createSOAPEnvelope using Builder (" +
+                              builder.getClass() + ") selected from type (" + type +")");
+                }
                 documentElement = builder.processDocument(inStream, contentType, msgContext);
             }
         }
@@ -241,10 +232,10 @@
         if (contentType != null) {
             type = getContentType(contentType, msgContext);
             if (builder != null) {
-	            if (log.isDebugEnabled()) {
-	                log.debug("createSOAPEnvelope using Builder (" +
-	                          builder.getClass() + ") selected from type (" + type +")");
-	            }
+                if (log.isDebugEnabled()) {
+                    log.debug("createSOAPEnvelope using Builder (" +
+                              builder.getClass() + ") selected from type (" + type +")");
+                }
                 documentElement = builder.processDocument(inStream, contentType, msgContext);
             }
         }
@@ -438,114 +429,107 @@
         }
     }
 
-
-
-
-
-        /**
-         * This is a helper method to get the response written flag from the RequestResponseTransport
-         * instance.
-         */
-        public static boolean isResponseWritten(MessageContext messageContext) {
-            RequestResponseTransport reqResTransport = getRequestResponseTransport(messageContext);
-            if (reqResTransport != null) {
-                if (log.isDebugEnabled()) {
-                    log.debug("Found RequestResponseTransport returning isResponseWritten()");
-                }
-                return reqResTransport.isResponseWritten();
-            } else {
-                if (log.isDebugEnabled()) {
-                    log.debug("Did not find RequestResponseTransport returning false from get"
-                            + "ResponseWritten()");
-                }
-                return false;
+    /**
+     * This is a helper method to get the response written flag from the RequestResponseTransport
+     * instance.
+     */
+    public static boolean isResponseWritten(MessageContext messageContext) {
+        RequestResponseTransport reqResTransport = getRequestResponseTransport(messageContext);
+        if (reqResTransport != null) {
+            if (log.isDebugEnabled()) {
+                log.debug("Found RequestResponseTransport returning isResponseWritten()");
             }
+            return reqResTransport.isResponseWritten();
+        } else {
+            if (log.isDebugEnabled()) {
+                log.debug("Did not find RequestResponseTransport returning false from get"
+                        + "ResponseWritten()");
+            }
+            return false;
         }
-
-       /**
-         * This is a helper method to set the response written flag on the RequestResponseTransport
-         * instance.
-        */
-       public static void setResponseWritten(MessageContext messageContext, boolean responseWritten) {
-            RequestResponseTransport reqResTransport = getRequestResponseTransport(messageContext);
-            if (reqResTransport != null) {
-                if (log.isDebugEnabled()) {
-                    log.debug("Found RequestResponseTransport setting response written");
-                }
-                reqResTransport.setResponseWritten(responseWritten);
-            } else {
-                if (log.isDebugEnabled()) {
-                   log.debug("Did not find RequestResponseTransport cannot set response written");
-               }
-           }
-       }
-
-       /**
-        * This is an internal helper method to retrieve the RequestResponseTransport instance
-        * from the MessageContext object. The MessageContext may be the response MessageContext so
-        * in that case we will have to retrieve the request MessageContext from the OperationContext.
-        */
-       private static RequestResponseTransport getRequestResponseTransport(MessageContext messageContext) {
-    	   try {
-    		   // If this is the request MessageContext we should find it directly by the getProperty()
-               // method
-    	       RequestResponseTransport transportControl = (RequestResponseTransport)
-    	           messageContext.getProperty(RequestResponseTransport.TRANSPORT_CONTROL);
-    	       
-               if (transportControl != null) {
-                   return transportControl;
-               }
-               // If this is the response MessageContext we need to look for the request MessageContext
-        	   else if (messageContext.getOperationContext() != null
-        				&& messageContext.getOperationContext()
-                      		.getMessageContext(WSDLConstants.MESSAGE_LABEL_IN_VALUE) != null) {
-        						return (RequestResponseTransport) messageContext.
-        						getOperationContext().getMessageContext(
-        								WSDLConstants.MESSAGE_LABEL_IN_VALUE).getProperty(
-        										RequestResponseTransport.TRANSPORT_CONTROL);
-        		}
-        		else {
-        			return null;
-        		}
-    	   }
-           catch(AxisFault af) {
-           	// probably should not be fatal, so just log the message
-           	String msg = Messages.getMessage("getMessageContextError", af.toString());
-           	log.debug(msg);
-           	return null;
-           }
     }
 
-       /**
-        * Clean up cached attachment file
-        * @param msgContext
-        */
-       public static void deleteAttachments(MessageContext msgContext) {
-       	if (log.isDebugEnabled()) {
-               log.debug("Entering deleteAttachments()");
-           }
+    /**
+     * This is a helper method to set the response written flag on the RequestResponseTransport
+     * instance.
+     */
+    public static void setResponseWritten(MessageContext messageContext, boolean responseWritten) {
+        RequestResponseTransport reqResTransport = getRequestResponseTransport(messageContext);
+        if (reqResTransport != null) {
+            if (log.isDebugEnabled()) {
+                log.debug("Found RequestResponseTransport setting response written");
+            }
+            reqResTransport.setResponseWritten(responseWritten);
+        } else {
+            if (log.isDebugEnabled()) {
+               log.debug("Did not find RequestResponseTransport cannot set response written");
+            }
+        }
+    }
 
-       	Attachments attachments = msgContext.getAttachmentMap();
+    /**
+     * This is an internal helper method to retrieve the RequestResponseTransport instance
+     * from the MessageContext object. The MessageContext may be the response MessageContext so
+     * in that case we will have to retrieve the request MessageContext from the OperationContext.
+     */
+    private static RequestResponseTransport getRequestResponseTransport(MessageContext messageContext) {
+        try {
+            // If this is the request MessageContext we should find it directly by the getProperty()
+            // method
+            RequestResponseTransport transportControl = (RequestResponseTransport)
+                    messageContext.getProperty(RequestResponseTransport.TRANSPORT_CONTROL);
+            
+            if (transportControl != null) {
+                return transportControl;
+            }
+            // If this is the response MessageContext we need to look for the request MessageContext
+            else if (messageContext.getOperationContext() != null
+                    && messageContext.getOperationContext().getMessageContext(WSDLConstants.MESSAGE_LABEL_IN_VALUE) != null) {
+                return (RequestResponseTransport) messageContext.getOperationContext().getMessageContext(
+                        WSDLConstants.MESSAGE_LABEL_IN_VALUE).getProperty(RequestResponseTransport.TRANSPORT_CONTROL);
+            }
+            else {
+                return null;
+            }
+        }
+        catch(AxisFault af) {
+            // probably should not be fatal, so just log the message
+            String msg = Messages.getMessage("getMessageContextError", af.toString());
+            log.debug(msg);
+            return null;
+        }
+    }
 
-           if (attachments != null) {
-               // Get the list of Content IDs for the attachments...but does not try to pull the stream for new attachments.
-               // (Pulling the stream for new attachments will probably fail...the stream is probably closed)
-               List keys = attachments.getContentIDList();
-               if (keys != null && keys.size() > 0) {
-               	String key = null;
-               	File file = null;
-               	   LifecycleManager lcm = (LifecycleManager)msgContext.getRootContext().getAxisConfiguration().getParameterValue(DeploymentConstants.ATTACHMENTS_LIFECYCLE_MANAGER);               		
-               	DataSource dataSource = null;
-                   for (int i = 0; i < keys.size(); i++) {
-                       try {
-                           key = (String) keys.get(i);
-                           dataSource = attachments.getDataHandler(key).getDataSource();
-                           if(dataSource instanceof CachedFileDataSource){
-                           	file = ((CachedFileDataSource)dataSource).getFile();
-                           	if (log.isDebugEnabled()) {
-                                   log.debug("Delete cache attachment file: "+file.getName());
+    /**
+     * Clean up cached attachment file
+     * @param msgContext
+     */
+    public static void deleteAttachments(MessageContext msgContext) {
+        if (log.isDebugEnabled()) {
+            log.debug("Entering deleteAttachments()");
+        }
+
+        Attachments attachments = msgContext.getAttachmentMap();
+
+        if (attachments != null) {
+            // Get the list of Content IDs for the attachments...but does not try to pull the stream for new attachments.
+            // (Pulling the stream for new attachments will probably fail...the stream is probably closed)
+            List keys = attachments.getContentIDList();
+            if (keys != null && keys.size() > 0) {
+                String key = null;
+                File file = null;
+                LifecycleManager lcm = (LifecycleManager)msgContext.getRootContext().getAxisConfiguration().getParameterValue(DeploymentConstants.ATTACHMENTS_LIFECYCLE_MANAGER);                       
+                DataSource dataSource = null;
+                for (int i = 0; i < keys.size(); i++) {
+                    try {
+                        key = (String) keys.get(i);
+                        dataSource = attachments.getDataHandler(key).getDataSource();
+                        if(dataSource instanceof CachedFileDataSource){
+                            file = ((CachedFileDataSource)dataSource).getFile();
+                            if (log.isDebugEnabled()) {
+                                log.debug("Delete cache attachment file: "+file.getName());
                             }
-                           	if(lcm!=null){
+                            if(lcm!=null){
                                 if(log.isDebugEnabled()){
                                     log.debug("deleting file using lifecyclemanager");
                                 }
@@ -553,63 +537,59 @@
                             }else{
                                 file.delete();
                             }
-                           }
-                       }
-                       catch (Exception e) {
-                    	   if (log.isDebugEnabled()) {
-                               log.debug("Delete cache attachment file failed"+ e.getMessage());
-                           }
+                        }
+                    }
+                    catch (Exception e) {
+                        if (log.isDebugEnabled()) {
+                            log.debug("Delete cache attachment file failed"+ e.getMessage());
+                        }
 
-                           if (file != null) {
-                               if(lcm!=null){
-                                   try{
-                                       lcm.deleteOnExit(file);
-                                   }catch(Exception ex){
-                                       file.deleteOnExit();
-                                   }
-                               }
-                               else{
-                                   file.deleteOnExit();
-                               }
-                           }
-                       }
-                   }
-               }
-           }
+                        if (file != null) {
+                            if(lcm!=null){
+                                try{
+                                    lcm.deleteOnExit(file);
+                                }catch(Exception ex){
+                                    file.deleteOnExit();
+                                }
+                            }
+                            else{
+                                file.deleteOnExit();
+                            }
+                        }
+                    }
+                }
+            }
+        }
 
-           if (log.isDebugEnabled()) {
-               log.debug("Exiting deleteAttachments()");
-           }
-       }
+        if (log.isDebugEnabled()) {
+            log.debug("Exiting deleteAttachments()");
+        }
+    }
 
-       /**
-        * This method can be called by components wishing to detach the DetachableInputStream
-        * object that is present on the MessageContext. This is meant to shield components
-        * from any logic that needs to be executed on the DetachableInputStream in order to
-        * have it effectively detached. If the DetachableInputStream is not present, or if
-        * the supplied MessageContext is null, no action will be taken.
-        */
-       public static void detachInputStream(MessageContext msgContext) throws AxisFault {
-           try {
-               if(msgContext != null
-                       &&
-                       msgContext.getProperty(Constants.DETACHABLE_INPUT_STREAM) != null) {
-                   DetachableInputStream dis = (DetachableInputStream) msgContext.getProperty(Constants.DETACHABLE_INPUT_STREAM);
-                   if(log.isDebugEnabled()) {
-                       log.debug("Detaching DetachableInputStream: " + dis);
-                   }
-                   dis.detach();
-               }
-               else {
-                   if(log.isDebugEnabled()) {
-                       log.debug("Detach not performed for MessageContext: " + msgContext);
-                   }
-               }
-           }
-           catch(Throwable t) {
-               throw AxisFault.makeFault(t);
-           }
-       }
+    /**
+     * Prepare the message in the given message context so that the underlying input stream can be
+     * closed.
+     * 
+     * @param msgContext
+     */
+    public static void detachInputStream(MessageContext msgContext) throws AxisFault {
+        if (msgContext != null) {
+            OMXMLParserWrapper builder = (OMXMLParserWrapper)msgContext.getProperty(Constants.BUILDER);
+            if (builder != null) {
+                builder.detach();
+            } else {
+                Attachments attachments = msgContext.getAttachmentMap(false);
+                if (attachments != null) {
+                    attachments.getAllContentIDs();
+                } else {
+                    SOAPEnvelope envelope = msgContext.getEnvelope();
+                    if (envelope != null) {
+                        envelope.build();
+                    }
+                }
+            }
+        }
+    }
 
     /**
      * <p>
@@ -746,4 +726,3 @@
     }
 
 }
-	
\ No newline at end of file
diff --git a/modules/kernel/src/org/apache/axis2/transport/http/HTTPConstants.java b/modules/kernel/src/org/apache/axis2/transport/http/HTTPConstants.java
index 45349ae..3a97a78 100644
--- a/modules/kernel/src/org/apache/axis2/transport/http/HTTPConstants.java
+++ b/modules/kernel/src/org/apache/axis2/transport/http/HTTPConstants.java
@@ -512,11 +512,6 @@
     public static final String AUTO_RELEASE_CONNECTION = "AutoReleaseConnection" ;
 
     /**
-     * Cleanup response
-     */
-    public static final String CLEANUP_RESPONSE = "CleanupResponse";
-
-    /**
      * Method getBytes.
      *
      * @param data
diff --git a/modules/kernel/src/org/apache/axis2/transport/http/SOAPMessageFormatter.java b/modules/kernel/src/org/apache/axis2/transport/http/SOAPMessageFormatter.java
index c642dd2..3788497 100644
--- a/modules/kernel/src/org/apache/axis2/transport/http/SOAPMessageFormatter.java
+++ b/modules/kernel/src/org/apache/axis2/transport/http/SOAPMessageFormatter.java
@@ -20,9 +20,13 @@
 package org.apache.axis2.transport.http;
 
 import org.apache.axiom.attachments.Attachments;
+import org.apache.axiom.om.OMContainer;
 import org.apache.axiom.om.OMElement;
 import org.apache.axiom.om.OMOutputFormat;
 import org.apache.axiom.om.impl.OMMultipartWriter;
+import org.apache.axiom.soap.SOAPEnvelope;
+import org.apache.axiom.soap.SOAPFactory;
+import org.apache.axiom.soap.SOAPMessage;
 import org.apache.axiom.util.UIDGenerator;
 import org.apache.axis2.AxisFault;
 import org.apache.axis2.Constants;
@@ -67,11 +71,23 @@
             if (!(format.isOptimized()) && format.isDoingSWA()) {
                 writeSwAMessage(msgCtxt, out, format, preserve);
             } else {
-                OMElement element = msgCtxt.getEnvelope();
-                if (preserve) {
-                    element.serialize(out, format);
+                SOAPEnvelope envelope = msgCtxt.getEnvelope();
+                // Always use a SOAPMessage for serialization so that we produce an XML declaration.
+                // Note that an XML declaration shouldn't be necessary except for weird cases such as
+                // the UDP transport. This is for compatibility with Axis2 1.7.0 and Axiom 1.2.x;
+                // Axiom 1.3.x no longer produces an XML declaration when serializing a SOAPEnvelope.
+                SOAPMessage message;
+                OMContainer parent = envelope.getParent();
+                if (parent instanceof SOAPMessage) {
+                    message = (SOAPMessage)parent;
                 } else {
-                    element.serializeAndConsume(out, format);
+                    message = ((SOAPFactory)envelope.getOMFactory()).createSOAPMessage();
+                    message.setSOAPEnvelope(envelope);
+                }
+                if (preserve) {
+                    message.serialize(out, format);
+                } else {
+                    message.serializeAndConsume(out, format);
                 }
             }
         } catch (XMLStreamException e) {
@@ -85,34 +101,9 @@
 
     public byte[] getBytes(MessageContext msgCtxt, OMOutputFormat format)
             throws AxisFault {
-        if (log.isDebugEnabled()) {
-            log.debug("start getBytes()");
-            log.debug("  isOptimized=" + format.isOptimized());
-            log.debug("  isDoingSWA=" + format.isDoingSWA());
-        }
-        OMElement element = msgCtxt.getEnvelope();
-        try {
-            ByteArrayOutputStream bytesOut = new ByteArrayOutputStream();
-            if (!format.isOptimized()) {
-                if (format.isDoingSWA()) {
-                    writeSwAMessage(msgCtxt, bytesOut, format, false);
-                } else {
-                    element.serializeAndConsume(bytesOut, format);
-                }
-                return bytesOut.toByteArray();
-            } else {
-                element.serializeAndConsume(bytesOut, format);
-                return bytesOut.toByteArray();
-            }
-        } catch (XMLStreamException e) {
-            throw AxisFault.makeFault(e);
-        } catch (FactoryConfigurationError e) {
-            throw AxisFault.makeFault(e);
-        } finally {
-            if (log.isDebugEnabled()) {
-                log.debug("end getBytes()");
-            }
-        }
+        ByteArrayOutputStream out = new ByteArrayOutputStream();
+        writeTo(msgCtxt, format, out, true);
+        return out.toByteArray();
     }
 
     public String getContentType(MessageContext msgCtxt, OMOutputFormat format,
diff --git a/modules/kernel/src/org/apache/axis2/util/MessageProcessorSelector.java b/modules/kernel/src/org/apache/axis2/util/MessageProcessorSelector.java
index 660eca9..0f831e8 100644
--- a/modules/kernel/src/org/apache/axis2/util/MessageProcessorSelector.java
+++ b/modules/kernel/src/org/apache/axis2/util/MessageProcessorSelector.java
@@ -19,14 +19,6 @@
 
 package org.apache.axis2.util;
 
-import org.apache.axiom.attachments.Attachments;
-import org.apache.axiom.om.OMException;
-import org.apache.axiom.om.impl.MTOMConstants;
-import org.apache.axiom.om.impl.builder.StAXBuilder;
-import org.apache.axiom.om.impl.builder.StAXOMBuilder;
-import org.apache.axiom.om.impl.builder.XOPAwareStAXOMBuilder;
-import org.apache.axiom.soap.impl.builder.MTOMStAXSOAPModelBuilder;
-import org.apache.axiom.soap.impl.builder.StAXSOAPModelBuilder;
 import org.apache.axis2.AxisFault;
 import org.apache.axis2.Constants;
 import org.apache.axis2.builder.Builder;
@@ -41,9 +33,6 @@
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 
-import javax.xml.parsers.FactoryConfigurationError;
-import javax.xml.stream.XMLStreamException;
-import javax.xml.stream.XMLStreamReader;
 import java.util.Map;
 
 /**
@@ -163,47 +152,6 @@
         return messageFormatter;
     }
 
-    public static StAXBuilder getAttachmentBuilder(MessageContext msgContext,
-                                                    Attachments attachments, XMLStreamReader streamReader,
-                                                    String soapEnvelopeNamespaceURI,
-                                                    boolean isSOAP)
-            throws OMException, XMLStreamException, FactoryConfigurationError {
-
-        StAXBuilder builder = null;
-
-        if (isSOAP) {
-            if (attachments.getAttachmentSpecType().equals(
-                    MTOMConstants.MTOM_TYPE)) {
-                //Creates the MTOM specific MTOMStAXSOAPModelBuilder
-                builder = new MTOMStAXSOAPModelBuilder(streamReader,
-                        attachments, soapEnvelopeNamespaceURI);
-                msgContext.setDoingMTOM(true);
-            } else if (attachments.getAttachmentSpecType().equals(
-                    MTOMConstants.SWA_TYPE)) {
-                builder = new StAXSOAPModelBuilder(streamReader,
-                        soapEnvelopeNamespaceURI);
-            } else if (attachments.getAttachmentSpecType().equals(
-                    MTOMConstants.SWA_TYPE_12)) {
-                builder = new StAXSOAPModelBuilder(streamReader,
-                        soapEnvelopeNamespaceURI);
-            }
-
-        }
-        // To handle REST XOP case
-        else {
-            if (attachments.getAttachmentSpecType().equals(MTOMConstants.MTOM_TYPE)) {
-                builder = new XOPAwareStAXOMBuilder(streamReader, attachments);
-
-            } else if (attachments.getAttachmentSpecType().equals(MTOMConstants.SWA_TYPE)) {
-                builder = new StAXOMBuilder(streamReader);
-            } else if (attachments.getAttachmentSpecType().equals(MTOMConstants.SWA_TYPE_12)) {
-                builder = new StAXOMBuilder(streamReader);
-            }
-        }
-
-        return builder;
-    }
-
     private static String getMessageFormatterProperty(MessageContext msgContext) {
         String messageFormatterProperty = null;
         Object property = msgContext
diff --git a/modules/kernel/src/org/apache/axis2/util/PrettyPrinter.java b/modules/kernel/src/org/apache/axis2/util/PrettyPrinter.java
deleted file mode 100644
index d3004e3..0000000
--- a/modules/kernel/src/org/apache/axis2/util/PrettyPrinter.java
+++ /dev/null
@@ -1,102 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.axis2.util;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-
-import java.io.ByteArrayOutputStream;
-import java.io.File;
-import java.io.PrintStream;
-import java.lang.reflect.Field;
-import java.lang.reflect.Method;
-import java.util.Properties;
-
-/**
- * Tidies up the java source code using Jalopy.
- * This is used by both ADB and Codegen hence needs to be in the
- * commons rather than a specific module
- */
-public class PrettyPrinter {
-    private static final Log log = LogFactory.getLog(PrettyPrinter.class);
-
-
-    /**
-     * Pretty prints contents of the java source file.
-     *
-     * @param file
-     */
-    public static void prettify(File file) {
-        // If the user has set "axis2.jalopy=false" on the system property,
-        // then just return back to caller
-        String property = System.getProperty("axis2.jalopy");
-        if((property != null) && !JavaUtils.isTrueExplicitly(property)){
-            return;
-        }
-        PrintStream backupOutputStream = System.out;
-        PrintStream backupErrorStream = System.err;
-        System.setOut(new PrintStream(new ByteArrayOutputStream()));
-        System.setErr(new PrintStream(new ByteArrayOutputStream()));
-        try {
-            Class<?> clazzConfigurator = Loader.loadClass("org.apache.log4j.PropertyConfigurator");
-            Method configure = clazzConfigurator.getMethod("configure", new Class[]{Properties.class});
-            Properties properties = new Properties();
-            properties.setProperty("log4j.logger.de.hunsicker.jalopy.io",
-                    System.getProperty("log4j.logger.de.hunsicker.jalopy.io", "FATAL"));
-            configure.invoke(null, new Object[]{properties});
-
-            // Create an instance of the Jalopy bean
-            Class<?> clazz = Loader.loadClass("de.hunsicker.jalopy.Jalopy");
-            Object prettifier = clazz.newInstance();
-
-            // Set the input file
-            Method input = clazz.getMethod("setInput", new Class[]{File.class});
-            input.invoke(prettifier, new Object[]{file});
-
-            // Set the output file
-            Method output = clazz.getMethod("setOutput", new Class[]{File.class});
-            output.invoke(prettifier, new Object[]{file});
-
-            Class<?> clazz2 = Loader.loadClass("de.hunsicker.jalopy.storage.Convention");
-            Method instance = clazz2.getMethod("getInstance", new Class[]{});
-            Object settings = instance.invoke(null, new Object[]{});
-
-            Class<?> clazz3 = Loader.loadClass("de.hunsicker.jalopy.storage.ConventionKeys");
-            Field field = clazz3.getField("COMMENT_FORMAT_MULTI_LINE");
-            Object key = field.get(null);
-            Method put = clazz2.getMethod("put", new Class[]{key.getClass(), String.class});
-            put.invoke(settings, new Object[]{key, "true"});
-
-            // format and overwrite the given input file
-            Method format = clazz.getMethod("format", new Class[]{});
-            format.invoke(prettifier, new Object[]{});
-            log.debug("Pretty printed file : " + file);
-        } catch (ClassNotFoundException e) {
-            log.debug("Jalopy/Log4j not found - unable to pretty print " + file);
-        } catch (Exception e) {
-            log.warn("Exception occurred while trying to pretty print file " + file, e);
-        } catch (Throwable t) {
-            log.debug("Exception occurred while trying to pretty print file " + file, t);
-        } finally {
-            System.setOut(backupOutputStream);
-            System.setErr(backupErrorStream);
-        }
-    }
-}
diff --git a/modules/kernel/src/org/apache/axis2/util/Utils.java b/modules/kernel/src/org/apache/axis2/util/Utils.java
index 8759648..6898c2d 100644
--- a/modules/kernel/src/org/apache/axis2/util/Utils.java
+++ b/modules/kernel/src/org/apache/axis2/util/Utils.java
@@ -733,10 +733,9 @@
                     final Class<?> serviceClass = Loader.loadClass(
                             classLoader,
                             ((String) serviceClassParam.getValue()).trim());
-                    String className = ((String) serviceClassParam.getValue()).trim();
-                    Class serviceObjectMaker = Loader.loadClass(classLoader, className);
-                    if (serviceObjectMaker.getModifiers() != Modifier.PUBLIC) {
-                        throw new AxisFault("Service class " + className +
+                    int mod = serviceClass.getModifiers();
+                    if (!Modifier.isPublic(mod) || Modifier.isAbstract(mod) || Modifier.isInterface(mod)) {
+                        throw new AxisFault("Service class " + serviceClass.getName() +
                                             " must have public as access Modifier");
                     }
                     return org.apache.axis2.java.security.AccessController.doPrivileged(
diff --git a/modules/kernel/src/org/apache/axis2/util/XMLUtils.java b/modules/kernel/src/org/apache/axis2/util/XMLUtils.java
index 12ab23b..565d0b8 100644
--- a/modules/kernel/src/org/apache/axis2/util/XMLUtils.java
+++ b/modules/kernel/src/org/apache/axis2/util/XMLUtils.java
@@ -45,12 +45,6 @@
 import javax.xml.parsers.SAXParser;
 import javax.xml.parsers.SAXParserFactory;
 import javax.xml.stream.XMLStreamException;
-import javax.xml.transform.Result;
-import javax.xml.transform.Source;
-import javax.xml.transform.Transformer;
-import javax.xml.transform.TransformerFactory;
-import javax.xml.transform.dom.DOMSource;
-import javax.xml.transform.stream.StreamResult;
 import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
 import java.io.IOException;
@@ -509,40 +503,10 @@
      * @throws Exception
      */
     public static OMElement toOM(Element element) throws Exception {
-        return toOM(element, true);
+        OMXMLParserWrapper builder = OMXMLBuilderFactory.createOMBuilder(element, true);
+        builder.detach();
+        return builder.getDocumentElement();
     }
-    
-    /**
-     * Convert DOM Element into a fully built OMElement
-     * @param element
-     * @param buildAll if true, full OM tree is immediately built. if false, caller is responsible 
-     * for building the tree and closing the parser.
-     * @return
-     * @throws Exception
-     */
-    public static OMElement toOM(Element element, boolean buildAll) throws Exception {
-
-        Source source = new DOMSource(element);
-
-        ByteArrayOutputStream baos = new ByteArrayOutputStream();
-        Result result = new StreamResult(baos);
-
-        Transformer xformer = TransformerFactory.newInstance().newTransformer();
-        xformer.transform(source, result);
-
-        ByteArrayInputStream is = new ByteArrayInputStream(baos.toByteArray());
-
-        OMXMLParserWrapper builder = OMXMLBuilderFactory.createOMBuilder(is);
-        builder.setCache(true);
-
-        OMElement omElement = builder.getDocumentElement();
-        if (buildAll) {
-            omElement.build();
-            builder.close();
-        }
-        return omElement;
-    }
-
 
     /**
      * Converts a given OMElement to a DOM Element.
@@ -588,7 +552,6 @@
      */
     public static OMNode toOM(InputStream inputStream, boolean buildAll) throws XMLStreamException {
         OMXMLParserWrapper builder = OMXMLBuilderFactory.createOMBuilder(inputStream);
-        builder.setCache(true);
         OMNode omNode = builder.getDocumentElement();
         
         if (buildAll) {
@@ -623,7 +586,6 @@
      */
     public static OMNode toOM(Reader reader, boolean buildAll) throws XMLStreamException {
         OMXMLParserWrapper builder = OMXMLBuilderFactory.createOMBuilder(reader);
-        builder.setCache(true);
         OMNode omNode = builder.getDocumentElement();
         
         if (buildAll) {
diff --git a/modules/kernel/src/org/apache/axis2/wsdl/WSDLUtil.java b/modules/kernel/src/org/apache/axis2/wsdl/WSDLUtil.java
index 8e7a886..4c9bd55 100644
--- a/modules/kernel/src/org/apache/axis2/wsdl/WSDLUtil.java
+++ b/modules/kernel/src/org/apache/axis2/wsdl/WSDLUtil.java
@@ -19,8 +19,17 @@
 
 package org.apache.axis2.wsdl;
 
+import org.apache.axis2.addressing.AddressingConstants;
 import org.apache.axis2.description.WSDL2Constants;
 
+import javax.wsdl.Fault;
+import javax.wsdl.Input;
+import javax.wsdl.Output;
+import javax.wsdl.WSDLException;
+import javax.wsdl.extensions.AttributeExtensible;
+import javax.wsdl.extensions.ExtensionRegistry;
+import javax.wsdl.factory.WSDLFactory;
+import javax.wsdl.xml.WSDLReader;
 import javax.xml.namespace.QName;
 
 /**
@@ -108,4 +117,68 @@
         return buffer.toString();
     }
 
+    /**
+     * Registers default extension attributes types to given <code>extensionRegistry</code> instance.
+     * <p>
+     * The method configures the following attributes of {@link Input}, {@link Output} and {@link Fault} WSDL elements
+     * to use {@link AttributeExtensible.STRING_TYPE}:
+     * <ul>
+     * <li>{http://www.w3.org/2005/08/addressing}Action</li>
+     * <li>{http://www.w3.org/2006/05/addressing/wsdl}Action</li>
+     * <li>{http://www.w3.org/2007/05/addressing/metadata}Action</li>
+     * <li>{http://schemas.xmlsoap.org/ws/2004/08/addressing}Action</li>
+     * </ul>
+     * </p>
+     * @param extensionRegistry The extension registry to add default extension attribute types to. Must not be null.
+     */
+    public static void registerDefaultExtensionAttributeTypes(ExtensionRegistry extensionRegistry) {
+    	if (extensionRegistry == null) {
+    		throw new IllegalArgumentException("Extension registry must not be null");
+    	}
+    	
+	    QName finalWSANS = new QName(AddressingConstants.Final.WSA_NAMESPACE, AddressingConstants.WSA_ACTION);
+	    extensionRegistry.registerExtensionAttributeType(Input.class, finalWSANS, AttributeExtensible.STRING_TYPE);
+	    extensionRegistry.registerExtensionAttributeType(Output.class, finalWSANS, AttributeExtensible.STRING_TYPE);
+	    extensionRegistry.registerExtensionAttributeType(Fault.class, finalWSANS, AttributeExtensible.STRING_TYPE);
+        
+	    QName finalWSAWNS = new QName(AddressingConstants.Final.WSAW_NAMESPACE, AddressingConstants.WSA_ACTION);
+	    extensionRegistry.registerExtensionAttributeType(Input.class, finalWSAWNS, AttributeExtensible.STRING_TYPE);
+	    extensionRegistry.registerExtensionAttributeType(Output.class, finalWSAWNS, AttributeExtensible.STRING_TYPE);
+	    extensionRegistry.registerExtensionAttributeType(Fault.class, finalWSAWNS, AttributeExtensible.STRING_TYPE);
+	
+	    QName finalWSAMNS = new QName(AddressingConstants.Final.WSAM_NAMESPACE, AddressingConstants.WSA_ACTION);
+	    extensionRegistry.registerExtensionAttributeType(Input.class, finalWSAMNS, AttributeExtensible.STRING_TYPE);
+	    extensionRegistry.registerExtensionAttributeType(Output.class, finalWSAMNS, AttributeExtensible.STRING_TYPE);
+	    extensionRegistry.registerExtensionAttributeType(Fault.class, finalWSAMNS, AttributeExtensible.STRING_TYPE);
+	
+	    QName submissionWSAWNS = new QName(AddressingConstants.Submission.WSA_NAMESPACE, AddressingConstants.WSA_ACTION);
+	    extensionRegistry.registerExtensionAttributeType(Input.class, submissionWSAWNS, AttributeExtensible.STRING_TYPE);
+	    extensionRegistry.registerExtensionAttributeType(Output.class, submissionWSAWNS, AttributeExtensible.STRING_TYPE);
+	    extensionRegistry.registerExtensionAttributeType(Fault.class, submissionWSAWNS, AttributeExtensible.STRING_TYPE);
+    }
+    
+    /**
+     * Creates a new WSDLReader and configures it with a {@link WSDLFactory#newPopulatedExtensionRegistry()} if it does not specify an extension registry.
+     * The method will register default extension attribute types in WSDLReader's {@link WSDLReader#getExtensionRegistry() extensionRegistry},
+     * see {@link #registerDefaultExtensionAttributeTypes(ExtensionRegistry)}. 
+     * 
+     * @return The newly created WSDLReader instance.
+     * @throws WSDLException
+     */
+    public static WSDLReader newWSDLReaderWithPopulatedExtensionRegistry()
+    		throws WSDLException {
+    	WSDLFactory wsdlFactory = WSDLFactory.newInstance();
+        WSDLReader reader = wsdlFactory.newWSDLReader();
+
+        ExtensionRegistry extensionRegistry = reader.getExtensionRegistry();
+        if (extensionRegistry == null) {
+        	extensionRegistry = wsdlFactory.newPopulatedExtensionRegistry();
+        }
+        
+        WSDLUtil.registerDefaultExtensionAttributeTypes(extensionRegistry);
+        
+        reader.setExtensionRegistry(extensionRegistry);
+        
+        return reader;
+    }
 }
diff --git a/modules/kernel/src/org/apache/axis2/wsdl/util/WSDLWrapperReloadImpl.java b/modules/kernel/src/org/apache/axis2/wsdl/util/WSDLWrapperReloadImpl.java
index 7339124..5b9c4eb 100644
--- a/modules/kernel/src/org/apache/axis2/wsdl/util/WSDLWrapperReloadImpl.java
+++ b/modules/kernel/src/org/apache/axis2/wsdl/util/WSDLWrapperReloadImpl.java
@@ -18,12 +18,13 @@
  */

 

 package org.apache.axis2.wsdl.util;

-

-import org.apache.axis2.java.security.AccessController;

-import org.apache.axis2.util.JavaUtils;

-import org.apache.commons.logging.Log;

-import org.apache.commons.logging.LogFactory;

-import org.w3c.dom.Element;

+
+import org.apache.axis2.java.security.AccessController;
+import org.apache.axis2.util.JavaUtils;
+import org.apache.axis2.wsdl.WSDLUtil;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.w3c.dom.Element;
 

 import javax.wsdl.Binding;

 import javax.wsdl.BindingFault;

@@ -42,13 +43,12 @@
 import javax.wsdl.PortType;

 import javax.wsdl.Service;

 import javax.wsdl.Types;

-import javax.wsdl.WSDLException;

-import javax.wsdl.extensions.ExtensibilityElement;

-import javax.wsdl.extensions.ExtensionRegistry;

-import javax.wsdl.factory.WSDLFactory;

-import javax.wsdl.xml.WSDLReader;

-import javax.xml.namespace.QName;

-import java.io.File;

+import javax.wsdl.WSDLException;
+import javax.wsdl.extensions.ExtensibilityElement;
+import javax.wsdl.extensions.ExtensionRegistry;
+import javax.wsdl.xml.WSDLReader;
+import javax.xml.namespace.QName;
+import java.io.File;
 import java.io.IOException;

 import java.io.InputStream;

 import java.lang.ref.SoftReference;

@@ -1514,14 +1514,13 @@
      */

     private WSDLReader getWSDLReader() throws WSDLException {

         WSDLReader reader;

-        try {

-            reader = (WSDLReader) AccessController.doPrivileged(new PrivilegedExceptionAction() {

-                public Object run() throws WSDLException {

-                    WSDLFactory factory = WSDLFactory.newInstance();

-                    return factory.newWSDLReader();

-                }

-            });

-        } catch (PrivilegedActionException e) {

+        try {
+            reader = (WSDLReader) AccessController.doPrivileged(new PrivilegedExceptionAction() {
+                public Object run() throws WSDLException {
+                    return WSDLUtil.newWSDLReaderWithPopulatedExtensionRegistry();
+                }
+            });
+        } catch (PrivilegedActionException e) {
             throw (WSDLException) e.getException();

         }

 	// prevent system out from occurring

diff --git a/modules/kernel/test-resources/deployment/AddressingIdentityServiceTest/service.xml b/modules/kernel/test-resources/deployment/AddressingIdentityServiceTest/service.xml
new file mode 100644
index 0000000..4bf6927
--- /dev/null
+++ b/modules/kernel/test-resources/deployment/AddressingIdentityServiceTest/service.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<service name="Echo">
+    <parameter name="ServiceClass">org.apache.axis2.sample.echo.EchoImpl</parameter>
+
+    <!-- Configure SPN using addressingIdentity extensibility element -->
+    <parameter name="addressingIdentity">
+        <Identity xmlns="http://schemas.xmlsoap.org/ws/2006/02/addressingidentity">
+            <Upn>bob@EXAMPLE.COM</Upn>
+        </Identity>
+    </parameter>
+    
+</service>
diff --git a/modules/kernel/test-resources/deployment/BadConfigOrderChange/axis2.xml b/modules/kernel/test-resources/deployment/BadConfigOrderChange/axis2.xml
index 8a9692b..a361546 100644
--- a/modules/kernel/test-resources/deployment/BadConfigOrderChange/axis2.xml
+++ b/modules/kernel/test-resources/deployment/BadConfigOrderChange/axis2.xml
@@ -33,7 +33,7 @@
 
     <messageReceiver mep="INOUT" class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/>
 
-     <transportSender name="http" class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
+     <transportSender name="http" class="org.apache.axis2.transport.http.impl.httpclient4.HTTPClient4TransportSender">
         <parameter name="PROTOCOL">HTTP/1.0</parameter>
     </transportSender>
 
diff --git a/modules/kernel/test-resources/deployment/SystemPhaseRemove/axis2.xml b/modules/kernel/test-resources/deployment/SystemPhaseRemove/axis2.xml
index 93453fa..9f7c9fe 100644
--- a/modules/kernel/test-resources/deployment/SystemPhaseRemove/axis2.xml
+++ b/modules/kernel/test-resources/deployment/SystemPhaseRemove/axis2.xml
@@ -34,7 +34,7 @@
     <messageReceiver mep="INOUT" class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/>
 
   
-     <transportSender name="http" class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
+     <transportSender name="http" class="org.apache.axis2.transport.http.impl.httpclient4.HTTPClient4TransportSender">
         <parameter name="PROTOCOL">HTTP/1.0</parameter>
     </transportSender>
 
diff --git a/modules/kernel/test-resources/deployment/builderSelectorTest/axis2.xml b/modules/kernel/test-resources/deployment/builderSelectorTest/axis2.xml
index cf95293..3443b88 100644
--- a/modules/kernel/test-resources/deployment/builderSelectorTest/axis2.xml
+++ b/modules/kernel/test-resources/deployment/builderSelectorTest/axis2.xml
@@ -174,12 +174,12 @@
     <transportSender name="local"
                      class="org.apache.axis2.transport.local.LocalTransportSender"/>
     <transportSender name="http"
-                     class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
+                     class="org.apache.axis2.transport.http.impl.httpclient4.HTTPClient4TransportSender">
         <parameter name="PROTOCOL">HTTP/1.1</parameter>
         <parameter name="Transfer-Encoding">chunked</parameter>
     </transportSender>
     <transportSender name="https"
-                     class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
+                     class="org.apache.axis2.transport.http.impl.httpclient4.HTTPClient4TransportSender">
         <parameter name="PROTOCOL">HTTP/1.1</parameter>
         <parameter name="Transfer-Encoding">chunked</parameter>
     </transportSender>
diff --git a/modules/kernel/test-resources/deployment/builderSelectorTest/bad-axis2.xml b/modules/kernel/test-resources/deployment/builderSelectorTest/bad-axis2.xml
index 2e21212..b2842bb 100644
--- a/modules/kernel/test-resources/deployment/builderSelectorTest/bad-axis2.xml
+++ b/modules/kernel/test-resources/deployment/builderSelectorTest/bad-axis2.xml
@@ -162,12 +162,12 @@
     <transportSender name="local"
                      class="org.apache.axis2.transport.local.LocalTransportSender"/>
     <transportSender name="http"
-                     class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
+                     class="org.apache.axis2.transport.http.impl.httpclient4.HTTPClient4TransportSender">
         <parameter name="PROTOCOL">HTTP/1.1</parameter>
         <parameter name="Transfer-Encoding">chunked</parameter>
     </transportSender>
     <transportSender name="https"
-                     class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
+                     class="org.apache.axis2.transport.http.impl.httpclient4.HTTPClient4TransportSender">
         <parameter name="PROTOCOL">HTTP/1.1</parameter>
         <parameter name="Transfer-Encoding">chunked</parameter>
     </transportSender>
diff --git a/modules/kernel/test-resources/deployment/echo/build.xml b/modules/kernel/test-resources/deployment/echo/build.xml
index 952eff0..84f50be 100644
--- a/modules/kernel/test-resources/deployment/echo/build.xml
+++ b/modules/kernel/test-resources/deployment/echo/build.xml
@@ -21,11 +21,11 @@
 
 <project basedir="." default="jar">
     <property name="src" location="."/>
-    <property name="build" location="build"/>
+    <property name="root" location="../../../"/>
+    <property name="build" location="${root}/target/build"/>
     <property name="build.classes" location="${build}/classes"/>
     <property name="build.lib" location="${build}/lib"/>
     <property name="lib" location="lib"/>
-    <property name="root" location="../../../"/>
     <property name="jar.dir" location="${root}/target/echo"/>
 
     <path id="axis.test.classpath">
@@ -36,7 +36,7 @@
     <target name="compile" depends="init" unless="jars.uptodate">
         <mkdir dir="${build.classes}"/>
         <mkdir dir="${build.lib}"/>
-        <javac destdir="${build.classes}" debug="on">
+        <javac destdir="${build.classes}" debug="on" fork="true">
             <classpath refid="axis.test.classpath"/>
             <src path="${src}"/>
         </javac>
diff --git a/modules/kernel/test-resources/deployment/hostConfigrepo/axis2.xml b/modules/kernel/test-resources/deployment/hostConfigrepo/axis2.xml
index 7c2dd24..2e01e5a 100644
--- a/modules/kernel/test-resources/deployment/hostConfigrepo/axis2.xml
+++ b/modules/kernel/test-resources/deployment/hostConfigrepo/axis2.xml
@@ -79,11 +79,11 @@
 
     <transportSender name="tcp" class="org.apache.axis2.transport.tcp.TCPTransportSender"/>
     <transportSender name="local" class="org.apache.axis2.transport.local.LocalTransportSender"/>
-    <transportSender name="http" class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
+    <transportSender name="http" class="org.apache.axis2.transport.http.impl.httpclient4.HTTPClient4TransportSender">
         <parameter name="PROTOCOL">HTTP/1.1</parameter>
     </transportSender>
     <transportSender name="https"
-                     class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
+                     class="org.apache.axis2.transport.http.impl.httpclient4.HTTPClient4TransportSender">
         <parameter name="PROTOCOL">HTTP/1.1</parameter>
     </transportSender>
 
diff --git a/modules/kernel/test-resources/deployment/invalidservice/build.xml b/modules/kernel/test-resources/deployment/invalidservice/build.xml
index 67d120c..8ea069e 100644
--- a/modules/kernel/test-resources/deployment/invalidservice/build.xml
+++ b/modules/kernel/test-resources/deployment/invalidservice/build.xml
@@ -21,11 +21,11 @@
 
 <project basedir="." default="jar">
     <property name="src" location="."/>
-    <property name="build" location="build"/>
+    <property name="root" location="../../../"/>
+    <property name="build" location="${root}/target/build"/>
     <property name="build.classes" location="${build}/classes"/>
     <property name="build.lib" location="${build}/lib"/>
     <property name="lib" location="lib"/>
-    <property name="root" location="../../../"/>
     <property name="jar.dir" location="${root}/target/test-resources/InvalidDeployment/services/"/>
 
     <path id="axis.test.classpath">
@@ -37,7 +37,7 @@
     <target name="compile" depends="init" unless="jars.uptodate">
         <mkdir dir="${build.classes}"/>
         <mkdir dir="${build.lib}"/>
-        <javac destdir="${build.classes}" debug="on">
+        <javac destdir="${build.classes}" debug="on" fork="true">
             <classpath refid="axis.test.classpath"/>
             <src path="${src}"/>
         </javac>
diff --git a/modules/kernel/test-resources/deployment/messageFormatterTest/bad-axis2.xml b/modules/kernel/test-resources/deployment/messageFormatterTest/bad-axis2.xml
index f4d59a7..e622241 100644
--- a/modules/kernel/test-resources/deployment/messageFormatterTest/bad-axis2.xml
+++ b/modules/kernel/test-resources/deployment/messageFormatterTest/bad-axis2.xml
@@ -163,12 +163,12 @@
     <transportSender name="local"
                      class="org.apache.axis2.transport.local.LocalTransportSender"/>
     <transportSender name="http"
-                     class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
+                     class="org.apache.axis2.transport.http.impl.httpclient4.HTTPClient4TransportSender">
         <parameter name="PROTOCOL">HTTP/1.1</parameter>
         <parameter name="Transfer-Encoding">chunked</parameter>
     </transportSender>
     <transportSender name="https"
-                     class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
+                     class="org.apache.axis2.transport.http.impl.httpclient4.HTTPClient4TransportSender">
         <parameter name="PROTOCOL">HTTP/1.1</parameter>
         <parameter name="Transfer-Encoding">chunked</parameter>
     </transportSender>
diff --git a/modules/kernel/test-resources/deployment/module1/build.xml b/modules/kernel/test-resources/deployment/module1/build.xml
index 3c75f51..a1133b2 100644
--- a/modules/kernel/test-resources/deployment/module1/build.xml
+++ b/modules/kernel/test-resources/deployment/module1/build.xml
@@ -21,11 +21,11 @@
 
 <project basedir="." default="jar">
     <property name="src" location="."/>
-    <property name="build" location="build"/>
+    <property name="root" location="../../../"/>
+    <property name="build" location="${root}/target/build"/>
     <property name="build.classes" location="${build}/classes"/>
     <property name="build.lib" location="${build}/lib"/>
     <property name="lib" location="lib"/>
-    <property name="root" location="../../../"/>
     <property name="jar.dir" location="${root}/target/test-resources/deployment/modules/"/>
 
     <path id="axis.test.classpath">
@@ -36,7 +36,7 @@
     <target name="compile" depends="init" unless="jars.uptodate">
         <mkdir dir="${build.classes}"/>
         <mkdir dir="${build.lib}"/>
-        <javac destdir="${build.classes}" debug="on">
+        <javac destdir="${build.classes}" debug="on" fork="true">
             <classpath refid="axis.test.classpath"/>
             <src path="${src}"/>
         </javac>
diff --git a/modules/kernel/test-resources/deployment/server1.xml b/modules/kernel/test-resources/deployment/server1.xml
index 1fd9627..35eddd6 100644
--- a/modules/kernel/test-resources/deployment/server1.xml
+++ b/modules/kernel/test-resources/deployment/server1.xml
@@ -23,7 +23,7 @@
 
     <messageReceiver mep="INOUT" class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/>
 
-    <transportSender name="http" class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
+    <transportSender name="http" class="org.apache.axis2.transport.http.impl.httpclient4.HTTPClient4TransportSender">
         <parameter name="PROTOCOL">HTTP/1.0</parameter>
     </transportSender>
     <module ref="addressing"/>
diff --git a/modules/kernel/test-resources/deployment/service2/build.xml b/modules/kernel/test-resources/deployment/service2/build.xml
index 766420e..554dfed 100644
--- a/modules/kernel/test-resources/deployment/service2/build.xml
+++ b/modules/kernel/test-resources/deployment/service2/build.xml
@@ -21,11 +21,11 @@
 
 <project basedir="." default="jar">
     <property name="src" location="."/>
-    <property name="build" location="build"/>
+    <property name="root" location="../../../"/>
+    <property name="build" location="${root}/target/build"/>
     <property name="build.classes" location="${build}/classes"/>
     <property name="build.lib" location="${build}/lib"/>
     <property name="lib" location="lib"/>
-    <property name="root" location="../../../"/>
     <property name="jar.dir" location="${root}/target/test-resources/deployment/services/"/>
 
     <path id="axis.test.classpath">
@@ -36,7 +36,7 @@
     <target name="compile" depends="init" unless="jars.uptodate">
         <mkdir dir="${build.classes}"/>
         <mkdir dir="${build.lib}"/>
-        <javac destdir="${build.classes}" debug="on">
+        <javac destdir="${build.classes}" debug="on" fork="true">
             <classpath refid="axis.test.classpath"/>
             <src path="${src}"/>
         </javac>
diff --git a/modules/kernel/test-resources/deployment/serviceModule/build.xml b/modules/kernel/test-resources/deployment/serviceModule/build.xml
index 82e1b9b..591be3d 100644
--- a/modules/kernel/test-resources/deployment/serviceModule/build.xml
+++ b/modules/kernel/test-resources/deployment/serviceModule/build.xml
@@ -21,11 +21,11 @@
 
 <project basedir="." default="jar">
     <property name="src" location="."/>
-    <property name="build" location="build"/>
+    <property name="root" location="../../../"/>
+    <property name="build" location="${root}/target/build"/>
     <property name="build.classes" location="${build}/classes"/>
     <property name="build.lib" location="${build}/lib"/>
     <property name="lib" location="lib"/>
-    <property name="root" location="../../../"/>
     <property name="jar.dir" location="${root}/target/test-resources/InvalidDeployment/modules/"/>
 
     <path id="axis.test.classpath">
@@ -36,7 +36,7 @@
     <target name="compile" depends="init" unless="jars.uptodate">
         <mkdir dir="${build.classes}"/>
         <mkdir dir="${build.lib}"/>
-        <javac destdir="${build.classes}" debug="on">
+        <javac destdir="${build.classes}" debug="on" fork="true">
             <classpath refid="axis.test.classpath"/>
             <src path="${src}"/>
         </javac>
diff --git a/modules/kernel/test-resources/wsdl/Version.wsdl b/modules/kernel/test-resources/wsdl/Version.wsdl
new file mode 100644
index 0000000..14ac208
--- /dev/null
+++ b/modules/kernel/test-resources/wsdl/Version.wsdl
@@ -0,0 +1,300 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<wsdl:definitions 
+    xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" 
+    xmlns:ns1="http://org.apache.axis2/xsd" 
+    xmlns:ns="http://axisversion.sample" 
+    xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" 
+    xmlns:xs="http://www.w3.org/2001/XMLSchema" 
+    xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" 
+    xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" 
+    xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/"
+    xmlns:wsp="http://www.w3.org/ns/ws-policy"
+    xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"
+    targetNamespace="http://axisversion.sample">
+    <wsdl:documentation>Version</wsdl:documentation>
+    <wsdl:types>
+        <xs:schema attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="http://axisversion.sample">
+            <xs:element name="VersionException">
+                <xs:complexType>
+                    <xs:sequence>
+                        <xs:element minOccurs="0" name="VersionException" nillable="true" type="ns:Exception"/>
+                    </xs:sequence>
+                </xs:complexType>
+            </xs:element>
+            <xs:complexType name="Exception">
+                <xs:sequence>
+                    <xs:element minOccurs="0" name="Message" nillable="true" type="xs:string"/>
+                </xs:sequence>
+            </xs:complexType>
+            <xs:element name="getVersion">
+                <xs:complexType>
+                    <xs:sequence/>
+                </xs:complexType>
+            </xs:element>
+            <xs:element name="getVersionResponse">
+                <xs:complexType>
+                    <xs:sequence>
+                        <xs:element minOccurs="0" name="return" nillable="true" type="xs:string"/>
+                    </xs:sequence>
+                </xs:complexType>
+            </xs:element>
+        </xs:schema>
+    </wsdl:types>
+    <wsdl:message name="getVersionRequest">
+        <wsdl:part name="parameters" element="ns:getVersion"/>
+    </wsdl:message>
+    <wsdl:message name="getVersionResponse">
+        <wsdl:part name="parameters" element="ns:getVersionResponse"/>
+    </wsdl:message>
+    <wsdl:message name="VersionException">
+        <wsdl:part name="parameters" element="ns:VersionException"/>
+    </wsdl:message>
+    <wsdl:portType name="VersionPortType">
+        <wsdl:operation name="getVersionWSAW" xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl" >
+            <wsdl:input message="ns:getVersionRequest" wsaw:Action="http://axisversion.sample/VersionPortType/getVersionWSAWRequest"/>
+            <wsdl:output message="ns:getVersionResponse" wsaw:Action="http://axisversion.sample/VersionPortType/getVersionWSAWResponse"/>
+            <wsdl:fault message="ns:VersionException" name="VersionException" wsaw:Action="http://axisversion.sample/VersionPortType/Fault/getVersionWSAWException"/>
+        </wsdl:operation>
+        <wsdl:operation name="getVersionWSA" xmlns:wsa="http://www.w3.org/2005/08/addressing">
+            <wsdl:input message="ns:getVersionRequest" wsa:Action="http://axisversion.sample/VersionPortType/getVersionWSARequest"/>
+            <wsdl:output message="ns:getVersionResponse" wsa:Action="http://axisversion.sample/VersionPortType/getVersionWSAResponse"/>
+            <wsdl:fault message="ns:VersionException" name="VersionException" wsa:Action="http://axisversion.sample/VersionPortType/Fault/getVersionWSAException"/>
+        </wsdl:operation>
+        <wsdl:operation name="getVersionWSAM" xmlns:wsam="http://www.w3.org/2007/05/addressing/metadata">
+            <wsdl:input message="ns:getVersionRequest" wsam:Action="http://axisversion.sample/VersionPortType/getVersionWSAMRequest"/>
+            <wsdl:output message="ns:getVersionResponse" wsam:Action="http://axisversion.sample/VersionPortType/getVersionWSAMResponse"/>
+            <wsdl:fault message="ns:VersionException" name="VersionException" wsam:Action="http://axisversion.sample/VersionPortType/Fault/getVersionWSAMException"/>
+        </wsdl:operation>
+        <wsdl:operation name="getVersionWSAWSubmission" xmlns:wsaw="http://schemas.xmlsoap.org/ws/2004/08/addressing">
+            <wsdl:input message="ns:getVersionRequest" wsaw:Action="http://axisversion.sample/VersionPortType/getVersionWSAWSubmissionRequest"/>
+            <wsdl:output message="ns:getVersionResponse" wsaw:Action="http://axisversion.sample/VersionPortType/getVersionWSAWSubmissionResponse"/>
+            <wsdl:fault message="ns:VersionException" name="VersionException" wsaw:Action="http://axisversion.sample/VersionPortType/Fault/getVersionWSAWSubmissionException"/>
+        </wsdl:operation>
+        <wsdl:operation name="getVersionWSAWURI" xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl" >
+            <wsdl:input message="ns:getVersionRequest" wsaw:Action="ns:Version/VersionPortType/getVersionWSAWURIRequest"/>
+            <wsdl:output message="ns:getVersionResponse" wsaw:Action="ns:Version/VersionPortType/getVersionWSAWURIResponse"/>
+            <wsdl:fault message="ns:VersionException" name="VersionException" wsaw:Action="ns:Version/VersionPortType/Fault/getVersionWSAWURIException"/>
+        </wsdl:operation>
+        <wsdl:operation name="getVersionWSAURI" xmlns:wsa="http://www.w3.org/2005/08/addressing">
+            <wsdl:input message="ns:getVersionRequest" wsa:Action="ns:Version/VersionPortType/getVersionWSAURIRequest"/>
+            <wsdl:output message="ns:getVersionResponse" wsa:Action="ns:Version/VersionPortType/getVersionWSAURIResponse"/>
+            <wsdl:fault message="ns:VersionException" name="VersionException" wsa:Action="ns:Version/VersionPortType/Fault/getVersionWSAURIException"/>
+        </wsdl:operation>
+        <wsdl:operation name="getVersionWSAMURI" xmlns:wsam="http://www.w3.org/2007/05/addressing/metadata">
+            <wsdl:input message="ns:getVersionRequest" wsam:Action="ns:Version/VersionPortType/getVersionWSAMURIRequest"/>
+            <wsdl:output message="ns:getVersionResponse" wsam:Action="ns:Version/VersionPortType/getVersionWSAMURIResponse"/>
+            <wsdl:fault message="ns:VersionException" name="VersionException" wsam:Action="ns:Version/VersionPortType/Fault/getVersionWSAMURIException"/>
+        </wsdl:operation>
+        <wsdl:operation name="getVersionWSAWSubmissionURI" xmlns:wsaw="http://schemas.xmlsoap.org/ws/2004/08/addressing">
+            <wsdl:input message="ns:getVersionRequest" wsaw:Action="ns:Version/VersionPortType/getVersionWSAWSubmissionURIRequest"/>
+            <wsdl:output message="ns:getVersionResponse" wsaw:Action="ns:Version/VersionPortType/getVersionWSAWSubmissionURIResponse"/>
+            <wsdl:fault message="ns:VersionException" name="VersionException" wsaw:Action="ns:Version/VersionPortType/Fault/getVersionWSAWSubmissionURIException"/>
+        </wsdl:operation>
+    </wsdl:portType>
+    <wsdl:binding name="VersionSoap11Binding" type="ns:VersionPortType">
+        <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/>
+        <wsdl:operation name="getVersionWSAW">
+            <soap:operation style="document"/>
+            <wsdl:input>
+                <soap:body use="literal"/>
+            </wsdl:input>
+            <wsdl:output>
+                <soap:body use="literal"/>
+            </wsdl:output>
+            <wsdl:fault name="VersionException">
+                <soap:fault use="literal" name="VersionException"/>
+            </wsdl:fault>
+        </wsdl:operation>
+        <wsdl:operation name="getVersionWSA">
+            <soap:operation style="document"/>
+            <wsdl:input>
+                <soap:body use="literal"/>
+            </wsdl:input>
+            <wsdl:output>
+                <soap:body use="literal"/>
+            </wsdl:output>
+            <wsdl:fault name="VersionException">
+                <soap:fault use="literal" name="VersionException"/>
+            </wsdl:fault>
+        </wsdl:operation>
+        <wsdl:operation name="getVersionWSAM">
+            <soap:operation style="document"/>
+            <wsdl:input>
+                <soap:body use="literal"/>
+            </wsdl:input>
+            <wsdl:output>
+                <soap:body use="literal"/>
+            </wsdl:output>
+            <wsdl:fault name="VersionException">
+                <soap:fault use="literal" name="VersionException"/>
+            </wsdl:fault>
+        </wsdl:operation>
+        <wsdl:operation name="getVersionWSAWSubmission">
+            <soap:operation style="document"/>
+            <wsdl:input>
+                <soap:body use="literal"/>
+            </wsdl:input>
+            <wsdl:output>
+                <soap:body use="literal"/>
+            </wsdl:output>
+            <wsdl:fault name="VersionException">
+                <soap:fault use="literal" name="VersionException"/>
+            </wsdl:fault>
+        </wsdl:operation>
+        <wsdl:operation name="getVersionWSAWURI">
+            <soap:operation style="document"/>
+            <wsdl:input>
+                <soap:body use="literal"/>
+            </wsdl:input>
+            <wsdl:output>
+                <soap:body use="literal"/>
+            </wsdl:output>
+            <wsdl:fault name="VersionException">
+                <soap:fault use="literal" name="VersionException"/>
+            </wsdl:fault>
+        </wsdl:operation>
+        <wsdl:operation name="getVersionWSAURI">
+            <soap:operation style="document"/>
+            <wsdl:input>
+                <soap:body use="literal"/>
+            </wsdl:input>
+            <wsdl:output>
+                <soap:body use="literal"/>
+            </wsdl:output>
+            <wsdl:fault name="VersionException">
+                <soap:fault use="literal" name="VersionException"/>
+            </wsdl:fault>
+        </wsdl:operation>
+        <wsdl:operation name="getVersionWSAMURI">
+            <soap:operation style="document"/>
+            <wsdl:input>
+                <soap:body use="literal"/>
+            </wsdl:input>
+            <wsdl:output>
+                <soap:body use="literal"/>
+            </wsdl:output>
+            <wsdl:fault name="VersionException">
+                <soap:fault use="literal" name="VersionException"/>
+            </wsdl:fault>
+        </wsdl:operation>
+        <wsdl:operation name="getVersionWSAWSubmissionURI">
+            <soap:operation style="document"/>
+            <wsdl:input>
+                <soap:body use="literal"/>
+            </wsdl:input>
+            <wsdl:output>
+                <soap:body use="literal"/>
+            </wsdl:output>
+            <wsdl:fault name="VersionException">
+                <soap:fault use="literal" name="VersionException"/>
+            </wsdl:fault>
+        </wsdl:operation>
+    </wsdl:binding>
+    <wsdl:binding name="VersionSoap12Binding" type="ns:VersionPortType">
+        <soap12:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/>
+        <wsdl:operation name="getVersionWSAW">
+            <soap12:operation style="document"/>
+            <wsdl:input>
+                <soap12:body use="literal"/>
+            </wsdl:input>
+            <wsdl:output>
+                <soap12:body use="literal"/>
+            </wsdl:output>
+            <wsdl:fault name="VersionException">
+                <soap12:fault use="literal" name="VersionException"/>
+            </wsdl:fault>
+        </wsdl:operation>
+        <wsdl:operation name="getVersionWSA">
+            <soap12:operation style="document"/>
+            <wsdl:input>
+                <soap12:body use="literal"/>
+            </wsdl:input>
+            <wsdl:output>
+                <soap12:body use="literal"/>
+            </wsdl:output>
+            <wsdl:fault name="VersionException">
+                <soap12:fault use="literal" name="VersionException"/>
+            </wsdl:fault>
+        </wsdl:operation>
+        <wsdl:operation name="getVersionWSAM">
+            <soap12:operation style="document"/>
+            <wsdl:input>
+                <soap12:body use="literal"/>
+            </wsdl:input>
+            <wsdl:output>
+                <soap12:body use="literal"/>
+            </wsdl:output>
+            <wsdl:fault name="VersionException">
+                <soap12:fault use="literal" name="VersionException"/>
+            </wsdl:fault>
+        </wsdl:operation>
+        <wsdl:operation name="getVersionWSAWSubmission">
+            <soap12:operation style="document"/>
+            <wsdl:input>
+                <soap12:body use="literal"/>
+            </wsdl:input>
+            <wsdl:output>
+                <soap12:body use="literal"/>
+            </wsdl:output>
+            <wsdl:fault name="VersionException">
+                <soap12:fault use="literal" name="VersionException"/>
+            </wsdl:fault>
+        </wsdl:operation>
+        <wsdl:operation name="getVersionWSAWURI">
+            <soap12:operation style="document"/>
+            <wsdl:input>
+                <soap12:body use="literal"/>
+            </wsdl:input>
+            <wsdl:output>
+                <soap12:body use="literal"/>
+            </wsdl:output>
+            <wsdl:fault name="VersionException">
+                <soap12:fault use="literal" name="VersionException"/>
+            </wsdl:fault>
+        </wsdl:operation>
+        <wsdl:operation name="getVersionWSAURI">
+            <soap12:operation style="document"/>
+            <wsdl:input>
+                <soap12:body use="literal"/>
+            </wsdl:input>
+            <wsdl:output>
+                <soap12:body use="literal"/>
+            </wsdl:output>
+            <wsdl:fault name="VersionException">
+                <soap12:fault use="literal" name="VersionException"/>
+            </wsdl:fault>
+        </wsdl:operation>
+        <wsdl:operation name="getVersionWSAMURI">
+            <soap12:operation style="document"/>
+            <wsdl:input>
+                <soap12:body use="literal"/>
+            </wsdl:input>
+            <wsdl:output>
+                <soap12:body use="literal"/>
+            </wsdl:output>
+            <wsdl:fault name="VersionException">
+                <soap12:fault use="literal" name="VersionException"/>
+            </wsdl:fault>
+        </wsdl:operation>
+        <wsdl:operation name="getVersionWSAWSubmissionURI">
+            <soap12:operation style="document"/>
+            <wsdl:input>
+                <soap12:body use="literal"/>
+            </wsdl:input>
+            <wsdl:output>
+                <soap12:body use="literal"/>
+            </wsdl:output>
+            <wsdl:fault name="VersionException">
+                <soap12:fault use="literal" name="VersionException"/>
+            </wsdl:fault>
+        </wsdl:operation>
+    </wsdl:binding>
+    <wsdl:service name="Version">
+        <wsdl:port name="VersionHttpSoap11Endpoint" binding="ns:VersionSoap11Binding">
+            <soap:address location="http://localhost:8080/axis2/services/Version.VersionHttpSoap11Endpoint/"/>
+        </wsdl:port>
+        <wsdl:port name="VersionHttpSoap12Endpoint" binding="ns:VersionSoap12Binding">
+            <soap12:address location="http://localhost:8080/axis2/services/Version.VersionHttpSoap12Endpoint/"/>
+        </wsdl:port>
+    </wsdl:service>
+</wsdl:definitions>
diff --git a/modules/kernel/test-resources/wsdl/actionTests.wsdl b/modules/kernel/test-resources/wsdl/actionTests.wsdl
index 9598792..47ce4d4 100644
--- a/modules/kernel/test-resources/wsdl/actionTests.wsdl
+++ b/modules/kernel/test-resources/wsdl/actionTests.wsdl
@@ -77,6 +77,34 @@
 			<wsdl:fault name="echoFault" message="tns:echoechoFault1" wsaw:Action="http://example.org/action/echoFault"></wsdl:fault>
 		</wsdl:operation>
 	</wsdl:portType>
+	<wsdl:portType name="withWSAWActionURI">
+        <wsdl:operation name="echo">
+            <wsdl:input message="tns:echoRequest1" wsaw:Action="tns:actiontest/action/echoIn"></wsdl:input>
+            <wsdl:output message="tns:echoResponse1" wsaw:Action="tns:actiontest/action/echoOut"></wsdl:output>
+            <wsdl:fault name="echoFault" message="tns:echoechoFault1" wsaw:Action="tns:actiontest/action/echoFault"></wsdl:fault>
+        </wsdl:operation>
+    </wsdl:portType>
+    <wsdl:portType name="withWSAActionURI" xmlns:wsa="http://www.w3.org/2005/08/addressing">
+        <wsdl:operation name="echo">
+            <wsdl:input message="tns:echoRequest1" wsa:Action="tns:actiontest/action/echoIn"></wsdl:input>
+            <wsdl:output message="tns:echoResponse1" wsa:Action="tns:actiontest/action/echoOut"></wsdl:output>
+            <wsdl:fault name="echoFault" message="tns:echoechoFault1" wsa:Action="tns:actiontest/action/echoFault"></wsdl:fault>
+        </wsdl:operation>
+    </wsdl:portType>
+    <wsdl:portType name="withWSAMActionURI" xmlns:wsam="http://www.w3.org/2007/05/addressing/metadata">
+        <wsdl:operation name="echo">
+            <wsdl:input message="tns:echoRequest1" wsam:Action="tns:actiontest/action/echoIn"></wsdl:input>
+            <wsdl:output message="tns:echoResponse1" wsam:Action="tns:actiontest/action/echoOut"></wsdl:output>
+            <wsdl:fault name="echoFault" message="tns:echoechoFault1" wsam:Action="tns:actiontest/action/echoFault"></wsdl:fault>
+        </wsdl:operation>
+    </wsdl:portType>
+    <wsdl:portType name="withWSASubmissionActionURI" xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing">
+        <wsdl:operation name="echo">
+            <wsdl:input message="tns:echoRequest1" wsa:Action="tns:actiontest/action/echoIn"></wsdl:input>
+            <wsdl:output message="tns:echoResponse1" wsa:Action="tns:actiontest/action/echoOut"></wsdl:output>
+            <wsdl:fault name="echoFault" message="tns:echoechoFault1" wsa:Action="tns:actiontest/action/echoFault"></wsdl:fault>
+        </wsdl:operation>
+    </wsdl:portType>
 	<wsdl:portType name="withoutWSAWActionNoName">
 		<wsdl:operation name="echo">
 			<wsdl:input message="tns:echoRequest2"></wsdl:input>
diff --git a/modules/kernel/test-resources/wsdl/identity.wsdl b/modules/kernel/test-resources/wsdl/identity.wsdl
new file mode 100644
index 0000000..7454d5c
--- /dev/null
+++ b/modules/kernel/test-resources/wsdl/identity.wsdl
@@ -0,0 +1,165 @@
+<wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
+    xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/"
+    xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:ns1="http://org.apache.axis2/xsd"
+    xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl" xmlns:ns="http://echo.sample.axis2.apache.org"
+    xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+    targetNamespace="http://echo.sample.axis2.apache.org">
+    <wsdl:documentation>Echo</wsdl:documentation>
+    <wsdl:types>
+        <xs:schema attributeFormDefault="qualified"
+            elementFormDefault="qualified" targetNamespace="http://echo.sample.axis2.apache.org">
+            <xs:element name="echoStringArray">
+                <xs:complexType>
+                    <xs:sequence>
+                        <xs:element maxOccurs="unbounded" minOccurs="0" name="in"
+                            nillable="true" type="xs:string" />
+                    </xs:sequence>
+                </xs:complexType>
+            </xs:element>
+            <xs:element name="echoStringArrayResponse">
+                <xs:complexType>
+                    <xs:sequence>
+                        <xs:element maxOccurs="unbounded" minOccurs="0" name="return"
+                            nillable="true" type="xs:string" />
+                    </xs:sequence>
+                </xs:complexType>
+            </xs:element>
+            <xs:element name="echoString">
+                <xs:complexType>
+                    <xs:sequence>
+                        <xs:element minOccurs="0" name="in" nillable="true"
+                            type="xs:string" />
+                    </xs:sequence>
+                </xs:complexType>
+            </xs:element>
+            <xs:element name="echoStringResponse">
+                <xs:complexType>
+                    <xs:sequence>
+                        <xs:element minOccurs="0" name="return" nillable="true"
+                            type="xs:string" />
+                    </xs:sequence>
+                </xs:complexType>
+            </xs:element>
+        </xs:schema>
+    </wsdl:types>
+    <wsdl:message name="echoStringArrayRequest">
+        <wsdl:part name="parameters" element="ns:echoStringArray" />
+    </wsdl:message>
+    <wsdl:message name="echoStringArrayResponse">
+        <wsdl:part name="parameters" element="ns:echoStringArrayResponse" />
+    </wsdl:message>
+    <wsdl:message name="echoStringRequest">
+        <wsdl:part name="parameters" element="ns:echoString" />
+    </wsdl:message>
+    <wsdl:message name="echoStringResponse">
+        <wsdl:part name="parameters" element="ns:echoStringResponse" />
+    </wsdl:message>
+    <wsdl:portType name="EchoPortType">
+        <wsdl:operation name="echoStringArray">
+            <wsdl:input message="ns:echoStringArrayRequest"
+                wsaw:Action="urn:echoStringArray" />
+            <wsdl:output message="ns:echoStringArrayResponse"
+                wsaw:Action="urn:echoStringArrayResponse" />
+        </wsdl:operation>
+        <wsdl:operation name="echoString">
+            <wsdl:input message="ns:echoStringRequest" wsaw:Action="urn:echoString" />
+            <wsdl:output message="ns:echoStringResponse" wsaw:Action="urn:echoStringResponse" />
+        </wsdl:operation>
+    </wsdl:portType>
+    <wsdl:binding name="EchoSoap11Binding" type="ns:EchoPortType">
+        <soap:binding transport="http://schemas.xmlsoap.org/soap/http"
+            style="document" />
+        <wsdl:operation name="echoStringArray">
+            <soap:operation soapAction="urn:echoStringArray"
+                style="document" />
+            <wsdl:input>
+                <soap:body use="literal" />
+            </wsdl:input>
+            <wsdl:output>
+                <soap:body use="literal" />
+            </wsdl:output>
+        </wsdl:operation>
+        <wsdl:operation name="echoString">
+            <soap:operation soapAction="urn:echoString" style="document" />
+            <wsdl:input>
+                <soap:body use="literal" />
+            </wsdl:input>
+            <wsdl:output>
+                <soap:body use="literal" />
+            </wsdl:output>
+        </wsdl:operation>
+    </wsdl:binding>
+    <wsdl:binding name="EchoSoap12Binding" type="ns:EchoPortType">
+        <soap12:binding transport="http://schemas.xmlsoap.org/soap/http"
+            style="document" />
+        <wsdl:operation name="echoStringArray">
+            <soap12:operation soapAction="urn:echoStringArray"
+                style="document" />
+            <wsdl:input>
+                <soap12:body use="literal" />
+            </wsdl:input>
+            <wsdl:output>
+                <soap12:body use="literal" />
+            </wsdl:output>
+        </wsdl:operation>
+        <wsdl:operation name="echoString">
+            <soap12:operation soapAction="urn:echoString" style="document" />
+            <wsdl:input>
+                <soap12:body use="literal" />
+            </wsdl:input>
+            <wsdl:output>
+                <soap12:body use="literal" />
+            </wsdl:output>
+        </wsdl:operation>
+    </wsdl:binding>
+    <wsdl:binding name="EchoHttpBinding" type="ns:EchoPortType">
+        <http:binding verb="POST" />
+        <wsdl:operation name="echoStringArray">
+            <http:operation location="echoStringArray" />
+            <wsdl:input>
+                <mime:content type="application/xml" part="parameters" />
+            </wsdl:input>
+            <wsdl:output>
+                <mime:content type="application/xml" part="parameters" />
+            </wsdl:output>
+        </wsdl:operation>
+        <wsdl:operation name="echoString">
+            <http:operation location="echoString" />
+            <wsdl:input>
+                <mime:content type="application/xml" part="parameters" />
+            </wsdl:input>
+            <wsdl:output>
+                <mime:content type="application/xml" part="parameters" />
+            </wsdl:output>
+        </wsdl:operation>
+    </wsdl:binding>
+    <wsdl:service name="Echo">
+        <wsdl:port name="EchoHttpSoap11Endpoint" binding="ns:EchoSoap11Binding">
+            <soap:address location="http://localhost:8080/axis2/services/Echo.EchoHttpSoap11Endpoint" />
+            <wsa:EndpointReference xmlns:wsa="http://www.w3.org/2005/08/addressing">
+                <wsa:Address>http://localhost:8080/axis2/services/Echo.EchoHttpSoap12Endpoint</wsa:Address>
+                <Identity xmlns="http://schemas.xmlsoap.org/ws/2006/02/addressingidentity">
+                    <Spn>http/server.example.com</Spn>
+                </Identity>
+            </wsa:EndpointReference>
+        </wsdl:port>
+        <wsdl:port name="EchoHttpSoap12Endpoint" binding="ns:EchoSoap12Binding">
+            <soap12:address location="http://localhost:8080/axis2/services/Echo.EchoHttpSoap12Endpoint" />
+            <wsa:EndpointReference xmlns:wsa="http://www.w3.org/2005/08/addressing">
+                <wsa:Address>http://localhost:8080/axis2/services/Echo.EchoHttpSoap12Endpoint</wsa:Address>
+                <Identity xmlns="http://schemas.xmlsoap.org/ws/2006/02/addressingidentity">
+                    <Spn>http/server.example.com</Spn>
+                </Identity>
+            </wsa:EndpointReference>
+        </wsdl:port>
+        <wsdl:port name="EchoHttpEndpoint" binding="ns:EchoHttpBinding">
+            <http:address location="http://localhost:8080/axis2/services/Echo.EchoHttpEndpoint" />
+            <wsa:EndpointReference xmlns:wsa="http://www.w3.org/2005/08/addressing">
+                <wsa:Address>http://localhost:8080/axis2/services/Echo.EchoHttpEndpoint</wsa:Address>
+                <Identity xmlns="http://schemas.xmlsoap.org/ws/2006/02/addressingidentity">
+                    <Spn>http/server.example.com</Spn>
+                </Identity>
+            </wsa:EndpointReference>
+        </wsdl:port>
+    </wsdl:service>
+</wsdl:definitions>
\ No newline at end of file
diff --git a/modules/kernel/test-resources/wsdl/imports/binding/EchoBindings.wsdl b/modules/kernel/test-resources/wsdl/imports/binding/EchoBindings.wsdl
new file mode 100644
index 0000000..99436d2
--- /dev/null
+++ b/modules/kernel/test-resources/wsdl/imports/binding/EchoBindings.wsdl
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<wsdl:definitions 
+    xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" 
+    xmlns:ns="http://tempuri.org" 
+    xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl" 
+    xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" 
+    xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" 
+    xmlns:xs="http://www.w3.org/2001/XMLSchema" 
+    xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/"
+    xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" 
+    targetNamespace="http://tempuri.org/bindings">
+    
+    <wsp:Policy 
+        xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy" 
+        xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" 
+        wsu:Id="basicAuthPolicy">
+        <wsp:ExactlyOne>
+            <wsp:All>
+                <http:BasicAuthentication xmlns:http="http://schemas.microsoft.com/ws/06/2004/policy/http"/>
+            </wsp:All>
+        </wsp:ExactlyOne>
+    </wsp:Policy>
+
+    <wsdl:binding name="EchoServiceSoap12Binding" type="ns:EchoServicePortType">
+        <wsp:PolicyReference xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy" URI="#basicAuthPolicy"/>
+        <soap12:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/>
+        <wsdl:operation name="echo">
+            <soap12:operation soapAction="urn:echo" style="document"/>
+            <wsdl:input>
+                <soap12:body use="literal"/>
+            </wsdl:input>
+            <wsdl:output>
+                <soap12:body use="literal"/>
+            </wsdl:output>
+        </wsdl:operation>
+    </wsdl:binding>
+    
+    <wsdl:binding name="EchoServiceHttpBinding" type="ns:EchoServicePortType">
+        <http:binding verb="POST"/>
+        <wsdl:operation name="echo">
+            <http:operation location="echo"/>
+            <wsdl:input>
+                <mime:content type="application/xml" part="parameters"/>
+            </wsdl:input>
+            <wsdl:output>
+                <mime:content type="application/xml" part="parameters"/>
+            </wsdl:output>
+        </wsdl:operation>
+    </wsdl:binding>
+
+</wsdl:definitions>
diff --git a/modules/kernel/test-resources/wsdl/imports/binding/EchoService.wsdl b/modules/kernel/test-resources/wsdl/imports/binding/EchoService.wsdl
new file mode 100644
index 0000000..0c7d11b
--- /dev/null
+++ b/modules/kernel/test-resources/wsdl/imports/binding/EchoService.wsdl
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<wsdl:definitions 
+    xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" 
+    xmlns:ns="http://tempuri.org" 
+    xmlns:bindings="http://tempuri.org/bindings"
+    xmlns:types="http://tempuri.org/types"
+    xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl" 
+    xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" 
+    xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" 
+    xmlns:xs="http://www.w3.org/2001/XMLSchema" 
+    xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/"
+    xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" 
+    targetNamespace="http://tempuri.org">
+    
+    <wsdl:documentation>EchoService</wsdl:documentation>
+    
+    <wsp:Policy 
+        xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy"
+        xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"
+        wsu:Id="usingAddressingPolicy">
+        <wsp:ExactlyOne>
+            <wsp:All>
+                <wsaws:UsingAddressing xmlns:wsaws="http://schemas.xmlsoap.org/ws/2004/08/addressing" />
+            </wsp:All>
+        </wsp:ExactlyOne>
+    </wsp:Policy>
+    
+    <wsdl:import namespace="http://tempuri.org/bindings" location="EchoBindings.wsdl" />
+    
+    <wsdl:types>
+        <xs:schema targetNamespace="http://tempuri.org/imports">
+            <xs:import schemaLocation="EchoTypes.xsd" namespace="http://tempuri.org/types" />
+        </xs:schema>
+    </wsdl:types>
+    
+    <wsdl:message name="echoRequest">
+        <wsdl:part name="parameters" element="types:echo"/>
+    </wsdl:message>
+    <wsdl:message name="echoResponse">
+        <wsdl:part name="parameters" element="types:echoResponse"/>
+    </wsdl:message>
+    
+    <wsdl:portType name="EchoServicePortType">
+        <wsp:PolicyReference xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy" URI="#usingAddressingPolicy"/>
+        <wsdl:operation name="echo">
+            <wsdl:input message="ns:echoRequest" wsaw:Action="urn:custom:echo"/>
+            <wsdl:output message="ns:echoResponse" wsaw:Action="urn:custom:echoResponse"/>
+        </wsdl:operation>
+    </wsdl:portType>
+    
+    <wsdl:service name="EchoService">
+        <wsdl:port name="EchoServiceHttpSoap12Endpoint" binding="bindings:EchoServiceSoap12Binding">
+            <soap12:address location="http://localhost:9083/wsstack/services/EchoService.EchoServiceHttpSoap12Endpoint/"/>
+        </wsdl:port>
+        <wsdl:port name="EchoServiceHttpEndpoint" binding="bindings:EchoServiceHttpBinding">
+            <http:address location="http://localhost:9083/wsstack/services/EchoService.EchoServiceHttpEndpoint/"/>
+        </wsdl:port>
+    </wsdl:service>
+</wsdl:definitions>
diff --git a/modules/kernel/test-resources/wsdl/imports/binding/EchoTypes.xsd b/modules/kernel/test-resources/wsdl/imports/binding/EchoTypes.xsd
new file mode 100644
index 0000000..034eecb
--- /dev/null
+++ b/modules/kernel/test-resources/wsdl/imports/binding/EchoTypes.xsd
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<xs:schema elementFormDefault="qualified" 
+    targetNamespace="http://tempuri.org/types"
+    xmlns:xs="http://www.w3.org/2001/XMLSchema">
+    <xs:element name="echo">
+        <xs:complexType>
+            <xs:sequence>
+                <xs:element minOccurs="0" name="echo" nillable="true" type="xs:anyType" />
+            </xs:sequence>
+        </xs:complexType>
+    </xs:element>
+    <xs:element name="echoResponse">
+        <xs:complexType>
+            <xs:sequence>
+                <xs:element minOccurs="0" name="return" nillable="true" type="xs:anyType" />
+            </xs:sequence>
+        </xs:complexType>
+    </xs:element>
+</xs:schema>
\ No newline at end of file
diff --git a/modules/kernel/test-resources/wsdl/imports/binding_recursive/EchoBindings.wsdl b/modules/kernel/test-resources/wsdl/imports/binding_recursive/EchoBindings.wsdl
new file mode 100644
index 0000000..53c25d0
--- /dev/null
+++ b/modules/kernel/test-resources/wsdl/imports/binding_recursive/EchoBindings.wsdl
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<wsdl:definitions 
+    xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" 
+    xmlns:ns="http://tempuri.org" 
+    xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl" 
+    xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" 
+    xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" 
+    xmlns:xs="http://www.w3.org/2001/XMLSchema" 
+    xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/"
+    xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" 
+    targetNamespace="http://tempuri.org/bindings">
+    
+    <wsdl:import namespace="http://tempuri.org" location="EchoService.wsdl" />
+    
+    <wsp:Policy 
+        xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy" 
+        xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" 
+        wsu:Id="basicAuthPolicy">
+        <wsp:ExactlyOne>
+            <wsp:All>
+                <http:BasicAuthentication xmlns:http="http://schemas.microsoft.com/ws/06/2004/policy/http"/>
+            </wsp:All>
+        </wsp:ExactlyOne>
+    </wsp:Policy>
+
+    <wsdl:binding name="EchoServiceSoap12Binding" type="ns:EchoServicePortType">
+        <wsp:PolicyReference xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy" URI="#basicAuthPolicy"/>
+        <soap12:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/>
+        <wsdl:operation name="echo">
+            <soap12:operation soapAction="urn:echo" style="document"/>
+            <wsdl:input>
+                <soap12:body use="literal"/>
+            </wsdl:input>
+            <wsdl:output>
+                <soap12:body use="literal"/>
+            </wsdl:output>
+        </wsdl:operation>
+    </wsdl:binding>
+    
+    <wsdl:binding name="EchoServiceHttpBinding" type="ns:EchoServicePortType">
+        <http:binding verb="POST"/>
+        <wsdl:operation name="echo">
+            <http:operation location="echo"/>
+            <wsdl:input>
+                <mime:content type="application/xml" part="parameters"/>
+            </wsdl:input>
+            <wsdl:output>
+                <mime:content type="application/xml" part="parameters"/>
+            </wsdl:output>
+        </wsdl:operation>
+    </wsdl:binding>
+
+</wsdl:definitions>
diff --git a/modules/kernel/test-resources/wsdl/imports/binding_recursive/EchoService.wsdl b/modules/kernel/test-resources/wsdl/imports/binding_recursive/EchoService.wsdl
new file mode 100644
index 0000000..0c7d11b
--- /dev/null
+++ b/modules/kernel/test-resources/wsdl/imports/binding_recursive/EchoService.wsdl
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<wsdl:definitions 
+    xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" 
+    xmlns:ns="http://tempuri.org" 
+    xmlns:bindings="http://tempuri.org/bindings"
+    xmlns:types="http://tempuri.org/types"
+    xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl" 
+    xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" 
+    xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" 
+    xmlns:xs="http://www.w3.org/2001/XMLSchema" 
+    xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/"
+    xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" 
+    targetNamespace="http://tempuri.org">
+    
+    <wsdl:documentation>EchoService</wsdl:documentation>
+    
+    <wsp:Policy 
+        xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy"
+        xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"
+        wsu:Id="usingAddressingPolicy">
+        <wsp:ExactlyOne>
+            <wsp:All>
+                <wsaws:UsingAddressing xmlns:wsaws="http://schemas.xmlsoap.org/ws/2004/08/addressing" />
+            </wsp:All>
+        </wsp:ExactlyOne>
+    </wsp:Policy>
+    
+    <wsdl:import namespace="http://tempuri.org/bindings" location="EchoBindings.wsdl" />
+    
+    <wsdl:types>
+        <xs:schema targetNamespace="http://tempuri.org/imports">
+            <xs:import schemaLocation="EchoTypes.xsd" namespace="http://tempuri.org/types" />
+        </xs:schema>
+    </wsdl:types>
+    
+    <wsdl:message name="echoRequest">
+        <wsdl:part name="parameters" element="types:echo"/>
+    </wsdl:message>
+    <wsdl:message name="echoResponse">
+        <wsdl:part name="parameters" element="types:echoResponse"/>
+    </wsdl:message>
+    
+    <wsdl:portType name="EchoServicePortType">
+        <wsp:PolicyReference xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy" URI="#usingAddressingPolicy"/>
+        <wsdl:operation name="echo">
+            <wsdl:input message="ns:echoRequest" wsaw:Action="urn:custom:echo"/>
+            <wsdl:output message="ns:echoResponse" wsaw:Action="urn:custom:echoResponse"/>
+        </wsdl:operation>
+    </wsdl:portType>
+    
+    <wsdl:service name="EchoService">
+        <wsdl:port name="EchoServiceHttpSoap12Endpoint" binding="bindings:EchoServiceSoap12Binding">
+            <soap12:address location="http://localhost:9083/wsstack/services/EchoService.EchoServiceHttpSoap12Endpoint/"/>
+        </wsdl:port>
+        <wsdl:port name="EchoServiceHttpEndpoint" binding="bindings:EchoServiceHttpBinding">
+            <http:address location="http://localhost:9083/wsstack/services/EchoService.EchoServiceHttpEndpoint/"/>
+        </wsdl:port>
+    </wsdl:service>
+</wsdl:definitions>
diff --git a/modules/kernel/test-resources/wsdl/imports/binding_recursive/EchoTypes.xsd b/modules/kernel/test-resources/wsdl/imports/binding_recursive/EchoTypes.xsd
new file mode 100644
index 0000000..034eecb
--- /dev/null
+++ b/modules/kernel/test-resources/wsdl/imports/binding_recursive/EchoTypes.xsd
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<xs:schema elementFormDefault="qualified" 
+    targetNamespace="http://tempuri.org/types"
+    xmlns:xs="http://www.w3.org/2001/XMLSchema">
+    <xs:element name="echo">
+        <xs:complexType>
+            <xs:sequence>
+                <xs:element minOccurs="0" name="echo" nillable="true" type="xs:anyType" />
+            </xs:sequence>
+        </xs:complexType>
+    </xs:element>
+    <xs:element name="echoResponse">
+        <xs:complexType>
+            <xs:sequence>
+                <xs:element minOccurs="0" name="return" nillable="true" type="xs:anyType" />
+            </xs:sequence>
+        </xs:complexType>
+    </xs:element>
+</xs:schema>
\ No newline at end of file
diff --git a/modules/kernel/test-resources/wsdl/imports/portType/EchoBindings.wsdl b/modules/kernel/test-resources/wsdl/imports/portType/EchoBindings.wsdl
new file mode 100644
index 0000000..1c624ea
--- /dev/null
+++ b/modules/kernel/test-resources/wsdl/imports/portType/EchoBindings.wsdl
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<wsdl:definitions 
+    xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" 
+    xmlns:ns="http://tempuri.org/porttype" 
+    xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl" 
+    xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" 
+    xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" 
+    xmlns:xs="http://www.w3.org/2001/XMLSchema" 
+    xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/"
+    xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" 
+    targetNamespace="http://tempuri.org/bindings">
+    
+    <wsp:Policy 
+        xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy" 
+        xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" 
+        wsu:Id="basicAuthPolicy">
+        <wsp:ExactlyOne>
+            <wsp:All>
+                <http:BasicAuthentication xmlns:http="http://schemas.microsoft.com/ws/06/2004/policy/http"/>
+            </wsp:All>
+        </wsp:ExactlyOne>
+    </wsp:Policy>
+
+    <wsdl:import namespace="http://tempuri.org/porttype" location="EchoPortType.wsdl" />
+
+    <wsdl:binding name="EchoServiceSoap12Binding" type="ns:EchoServicePortType">
+        <wsp:PolicyReference xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy" URI="#basicAuthPolicy"/>
+        <soap12:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/>
+        <wsdl:operation name="echo">
+            <soap12:operation soapAction="urn:echo" style="document"/>
+            <wsdl:input>
+                <soap12:body use="literal"/>
+            </wsdl:input>
+            <wsdl:output>
+                <soap12:body use="literal"/>
+            </wsdl:output>
+        </wsdl:operation>
+    </wsdl:binding>
+    
+    <wsdl:binding name="EchoServiceHttpBinding" type="ns:EchoServicePortType">
+        <http:binding verb="POST"/>
+        <wsdl:operation name="echo">
+            <http:operation location="echo"/>
+            <wsdl:input>
+                <mime:content type="application/xml" part="parameters"/>
+            </wsdl:input>
+            <wsdl:output>
+                <mime:content type="application/xml" part="parameters"/>
+            </wsdl:output>
+        </wsdl:operation>
+    </wsdl:binding>
+
+</wsdl:definitions>
diff --git a/modules/kernel/test-resources/wsdl/imports/portType/EchoPortType.wsdl b/modules/kernel/test-resources/wsdl/imports/portType/EchoPortType.wsdl
new file mode 100644
index 0000000..4bea31a
--- /dev/null
+++ b/modules/kernel/test-resources/wsdl/imports/portType/EchoPortType.wsdl
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<wsdl:definitions 
+    xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" 
+    xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl" 
+    xmlns:xs="http://www.w3.org/2001/XMLSchema"
+    xmlns:types="http://tempuri.org/types"
+    xmlns:ns="http://tempuri.org/porttype"
+    targetNamespace="http://tempuri.org/porttype">
+    
+    <wsdl:types>
+        <xs:schema targetNamespace="http://tempuri.org/imports">
+            <xs:import schemaLocation="EchoTypes.xsd" namespace="http://tempuri.org/types" />
+        </xs:schema>
+    </wsdl:types>
+    
+    <wsdl:message name="echoRequest">
+        <wsdl:part name="parameters" element="types:echo"/>
+    </wsdl:message>
+    <wsdl:message name="echoResponse">
+        <wsdl:part name="parameters" element="types:echoResponse"/>
+    </wsdl:message>
+    
+    <wsdl:portType name="EchoServicePortType">
+        <wsp:PolicyReference xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy" URI="#usingAddressingPolicy"/>
+        <wsdl:operation name="echo">
+            <wsdl:input message="ns:echoRequest" wsaw:Action="urn:custom:echo"/>
+            <wsdl:output message="ns:echoResponse" wsaw:Action="urn:custom:echoResponse"/>
+        </wsdl:operation>
+    </wsdl:portType>
+
+</wsdl:definitions>
diff --git a/modules/kernel/test-resources/wsdl/imports/portType/EchoService.wsdl b/modules/kernel/test-resources/wsdl/imports/portType/EchoService.wsdl
new file mode 100644
index 0000000..3a6222d
--- /dev/null
+++ b/modules/kernel/test-resources/wsdl/imports/portType/EchoService.wsdl
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<wsdl:definitions 
+    xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" 
+    xmlns:ns="http://tempuri.org" 
+    xmlns:bindings="http://tempuri.org/bindings"
+    xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl" 
+    xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" 
+    xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" 
+    xmlns:xs="http://www.w3.org/2001/XMLSchema" 
+    xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/"
+    xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" 
+    targetNamespace="http://tempuri.org">
+    
+    <wsdl:documentation>EchoService</wsdl:documentation>
+    
+    <wsp:Policy 
+        xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy"
+        xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"
+        wsu:Id="usingAddressingPolicy">
+        <wsp:ExactlyOne>
+            <wsp:All>
+                <wsaws:UsingAddressing xmlns:wsaws="http://schemas.xmlsoap.org/ws/2004/08/addressing" />
+            </wsp:All>
+        </wsp:ExactlyOne>
+    </wsp:Policy>
+    
+    <wsdl:import namespace="http://tempuri.org/bindings" location="EchoBindings.wsdl" />
+    
+    <wsdl:service name="EchoService">
+        <wsdl:port name="EchoServiceHttpSoap12Endpoint" binding="bindings:EchoServiceSoap12Binding">
+            <soap12:address location="http://localhost:9083/wsstack/services/EchoService.EchoServiceHttpSoap12Endpoint/"/>
+        </wsdl:port>
+        <wsdl:port name="EchoServiceHttpEndpoint" binding="bindings:EchoServiceHttpBinding">
+            <http:address location="http://localhost:9083/wsstack/services/EchoService.EchoServiceHttpEndpoint/"/>
+        </wsdl:port>
+    </wsdl:service>
+</wsdl:definitions>
diff --git a/modules/kernel/test-resources/wsdl/imports/portType/EchoTypes.xsd b/modules/kernel/test-resources/wsdl/imports/portType/EchoTypes.xsd
new file mode 100644
index 0000000..034eecb
--- /dev/null
+++ b/modules/kernel/test-resources/wsdl/imports/portType/EchoTypes.xsd
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<xs:schema elementFormDefault="qualified" 
+    targetNamespace="http://tempuri.org/types"
+    xmlns:xs="http://www.w3.org/2001/XMLSchema">
+    <xs:element name="echo">
+        <xs:complexType>
+            <xs:sequence>
+                <xs:element minOccurs="0" name="echo" nillable="true" type="xs:anyType" />
+            </xs:sequence>
+        </xs:complexType>
+    </xs:element>
+    <xs:element name="echoResponse">
+        <xs:complexType>
+            <xs:sequence>
+                <xs:element minOccurs="0" name="return" nillable="true" type="xs:anyType" />
+            </xs:sequence>
+        </xs:complexType>
+    </xs:element>
+</xs:schema>
\ No newline at end of file
diff --git a/modules/kernel/test/org/apache/axis2/Axis2Repo.java b/modules/kernel/test/org/apache/axis2/Axis2Repo.java
new file mode 100644
index 0000000..dab2ae7
--- /dev/null
+++ b/modules/kernel/test/org/apache/axis2/Axis2Repo.java
@@ -0,0 +1,56 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.axis2;
+
+import org.apache.axis2.context.ConfigurationContext;
+import org.apache.axis2.context.ConfigurationContextFactory;
+import org.apache.axis2.engine.AxisConfiguration;
+import org.junit.rules.ExternalResource;
+
+public class Axis2Repo extends ExternalResource {
+    private final String location;
+    private ConfigurationContext configurationContext;
+
+    public Axis2Repo(String location) {
+        this.location = location;
+    }
+
+    public ConfigurationContext getConfigurationContext() {
+        return configurationContext;
+    }
+
+    public AxisConfiguration getAxisConfiguration() {
+        return configurationContext.getAxisConfiguration();
+    }
+
+    @Override
+    protected void before() throws Throwable {
+        configurationContext = ConfigurationContextFactory
+                .createConfigurationContextFromFileSystem(location, location + "/axis2.xml");
+    }
+
+    @Override
+    protected void after() {
+        try {
+            configurationContext.terminate();
+        } catch (AxisFault ex) {
+            throw new RuntimeException(ex);
+        }
+    }
+}
diff --git a/modules/kernel/test/org/apache/axis2/addressing/EndpointReferenceHelperTest.java b/modules/kernel/test/org/apache/axis2/addressing/EndpointReferenceHelperTest.java
index 48c5db1..f161e09 100644
--- a/modules/kernel/test/org/apache/axis2/addressing/EndpointReferenceHelperTest.java
+++ b/modules/kernel/test/org/apache/axis2/addressing/EndpointReferenceHelperTest.java
@@ -33,6 +33,11 @@
 import java.util.Map;
 
 public class EndpointReferenceHelperTest extends TestCase {
+    private void compareAttributes(OMAttribute expected, OMAttribute actual) {
+        assertEquals(expected.getNamespace(), actual.getNamespace());
+        assertEquals(expected.getLocalName(), actual.getLocalName());
+        assertEquals(expected.getAttributeValue(), actual.getAttributeValue());
+    }
 
     public void testToAndFromOMForFinalSpecEPR() throws Exception {
         String address = "http://ws.apache.org/axis2";
@@ -77,19 +82,19 @@
 
         assertEquals(epr.getAddress(), deser.getAddress());
         ArrayList addrAttrs = deser.getAddressAttributes();
-        assertEquals(attr1, addrAttrs.get(0));
-        assertEquals(attr2, addrAttrs.get(1));
+        compareAttributes(attr1, (OMAttribute)addrAttrs.get(0));
+        compareAttributes(attr2, (OMAttribute)addrAttrs.get(1));
 
         ArrayList attrs = deser.getAttributes();
-        assertEquals(attr1, attrs.get(0));
-        assertEquals(attr2, attrs.get(1));
+        compareAttributes(attr1, (OMAttribute)attrs.get(0));
+        compareAttributes(attr2, (OMAttribute)attrs.get(1));
 
         ArrayList metadata = deser.getMetaData();
         assertEquals(md1, metadata.get(0));
         assertEquals(md2, metadata.get(1));
         ArrayList mdAttrs = deser.getMetadataAttributes();
-        assertEquals(attr1, mdAttrs.get(0));
-        assertEquals(attr2, mdAttrs.get(1));
+        compareAttributes(attr1, (OMAttribute)mdAttrs.get(0));
+        compareAttributes(attr2, (OMAttribute)mdAttrs.get(1));
 
         ArrayList extelts = deser.getExtensibleElements();
         assertEquals(ext1, extelts.get(0));
@@ -109,15 +114,15 @@
         assertEquals(attr2, addrAttrs.get(1));
 
         attrs = deser.getAttributes();
-        assertEquals(attr1, attrs.get(0));
-        assertEquals(attr2, attrs.get(1));
+        compareAttributes(attr1, (OMAttribute)attrs.get(0));
+        compareAttributes(attr2, (OMAttribute)attrs.get(1));
 
         metadata = deser.getMetaData();
         assertEquals(md1, metadata.get(0));
         assertEquals(md2, metadata.get(1));
         mdAttrs = deser.getMetadataAttributes();
-        assertEquals(attr1, mdAttrs.get(0));
-        assertEquals(attr2, mdAttrs.get(1));
+        compareAttributes(attr1, (OMAttribute)mdAttrs.get(0));
+        compareAttributes(attr2, (OMAttribute)mdAttrs.get(1));
 
         extelts = deser.getExtensibleElements();
         assertEquals(ext1, extelts.get(0));
@@ -187,12 +192,12 @@
 
         assertEquals(epr.getAddress(), deser.getAddress());
         ArrayList addrAttrs = deser.getAddressAttributes();
-        assertEquals(attr1, addrAttrs.get(0));
-        assertEquals(attr2, addrAttrs.get(1));
+        compareAttributes(attr1, (OMAttribute)addrAttrs.get(0));
+        compareAttributes(attr2, (OMAttribute)addrAttrs.get(1));
 
         ArrayList attrs = deser.getAttributes();
-        assertEquals(attr1, attrs.get(0));
-        assertEquals(attr2, attrs.get(1));
+        compareAttributes(attr1, (OMAttribute)attrs.get(0));
+        compareAttributes(attr2, (OMAttribute)attrs.get(1));
 
         //Metadata will be lost unless it is saved as an extensibility element.
         ArrayList metadata = deser.getMetaData();
@@ -216,12 +221,12 @@
 
         assertEquals(epr.getAddress(), deser.getAddress());
         addrAttrs = deser.getAddressAttributes();
-        assertEquals(attr1, addrAttrs.get(0));
-        assertEquals(attr2, addrAttrs.get(1));
+        compareAttributes(attr1, (OMAttribute)addrAttrs.get(0));
+        compareAttributes(attr2, (OMAttribute)addrAttrs.get(1));
 
         attrs = deser.getAttributes();
-        assertEquals(attr1, attrs.get(0));
-        assertEquals(attr2, attrs.get(1));
+        compareAttributes(attr1, (OMAttribute)attrs.get(0));
+        compareAttributes(attr2, (OMAttribute)attrs.get(1));
 
         //Metadata will be lost unless it is saved as an extensibility element.
         metadata = deser.getMetaData();
diff --git a/modules/kernel/test/org/apache/axis2/addressing/wsdl/WSDL11ActionHelperTest.java b/modules/kernel/test/org/apache/axis2/addressing/wsdl/WSDL11ActionHelperTest.java
index 9b31a1d..17ac14d 100644
--- a/modules/kernel/test/org/apache/axis2/addressing/wsdl/WSDL11ActionHelperTest.java
+++ b/modules/kernel/test/org/apache/axis2/addressing/wsdl/WSDL11ActionHelperTest.java
@@ -21,6 +21,7 @@
 
 import junit.framework.TestCase;
 import org.apache.axis2.AbstractTestCase;
+import org.apache.axis2.wsdl.WSDLUtil;
 
 import javax.wsdl.Definition;
 import javax.wsdl.Fault;
@@ -28,7 +29,6 @@
 import javax.wsdl.Operation;
 import javax.wsdl.Output;
 import javax.wsdl.PortType;
-import javax.wsdl.factory.WSDLFactory;
 import javax.wsdl.xml.WSDLReader;
 import javax.xml.namespace.QName;
 import java.io.File;
@@ -43,12 +43,12 @@
 
     protected void setUp() throws Exception {
         super.setUp();
-        WSDLReader reader = WSDLFactory.newInstance().newWSDLReader();
+        WSDLReader reader = WSDLUtil.newWSDLReaderWithPopulatedExtensionRegistry();
         reader.setFeature("javax.wsdl.importDocuments", false);
         reader.setFeature("javax.wsdl.verbose", false);
 
         URL wsdlFile = new File(AbstractTestCase.basedir + testWSDLFile)
-                .toURL();//getClass().getClassLoader().getResource(testWSDLFile);
+                .toURI().toURL();//getClass().getClassLoader().getResource(testWSDLFile);
         definition = reader.readWSDL(wsdlFile.toString());
     }
 
@@ -160,4 +160,156 @@
                 WSDL11ActionHelper.getActionFromFaultElement(definition, pt, op, fault);
         assertEquals(expectedAction, actualAction);
     }
+    
+    // Test reading wsaw:Action values
+    // portType=withWSAWActionURI
+    // operation=echo
+    public void testGetWSAWInputActionURI() {
+        String expectedAction = "tns:actiontest/action/echoIn";
+        PortType pt = definition
+                .getPortType(new QName("http://ws.apache.org/axis2/actiontest/", "withWSAWActionURI"));
+        List operations = pt.getOperations();
+        Operation op = (Operation) operations.get(0);
+        Input in = op.getInput();
+        String actualAction = WSDL11ActionHelper.getActionFromInputElement(definition, pt, op, in);
+        assertEquals(expectedAction, actualAction);
+    }
+
+    public void testGetWSAWOutputActionURI() {
+        String expectedAction = "tns:actiontest/action/echoOut";
+        PortType pt = definition
+                .getPortType(new QName("http://ws.apache.org/axis2/actiontest/", "withWSAWActionURI"));
+        List operations = pt.getOperations();
+        Operation op = (Operation) operations.get(0);
+        Output out = op.getOutput();
+        String actualAction =
+                WSDL11ActionHelper.getActionFromOutputElement(definition, pt, op, out);
+        assertEquals(expectedAction, actualAction);
+    }
+
+    public void testGetWSAWFaultActionURI() {
+        String expectedAction = "tns:actiontest/action/echoFault";
+        PortType pt = definition
+                .getPortType(new QName("http://ws.apache.org/axis2/actiontest/", "withWSAWActionURI"));
+        List operations = pt.getOperations();
+        Operation op = (Operation) operations.get(0);
+        Fault fault = op.getFault("echoFault");
+        String actualAction =
+                WSDL11ActionHelper.getActionFromFaultElement(definition, pt, op, fault);
+        assertEquals(expectedAction, actualAction);
+    }
+    
+    // Test reading wsaw:Action values
+    // portType=withWSAActionURI
+    // operation=echo
+    public void testGetWSAInputAction() {
+        String expectedAction = "tns:actiontest/action/echoIn";
+        PortType pt = definition
+                .getPortType(new QName("http://ws.apache.org/axis2/actiontest/", "withWSAActionURI"));
+        List operations = pt.getOperations();
+        Operation op = (Operation) operations.get(0);
+        Input in = op.getInput();
+        String actualAction = WSDL11ActionHelper.getActionFromInputElement(definition, pt, op, in);
+        assertEquals(expectedAction, actualAction);
+    }
+
+    public void testGetWSAOutputAction() {
+        String expectedAction = "tns:actiontest/action/echoOut";
+        PortType pt = definition
+                .getPortType(new QName("http://ws.apache.org/axis2/actiontest/", "withWSAActionURI"));
+        List operations = pt.getOperations();
+        Operation op = (Operation) operations.get(0);
+        Output out = op.getOutput();
+        String actualAction =
+                WSDL11ActionHelper.getActionFromOutputElement(definition, pt, op, out);
+        assertEquals(expectedAction, actualAction);
+    }
+
+    public void testGetWSAFaultAction() {
+        String expectedAction = "tns:actiontest/action/echoFault";
+        PortType pt = definition
+                .getPortType(new QName("http://ws.apache.org/axis2/actiontest/", "withWSAActionURI"));
+        List operations = pt.getOperations();
+        Operation op = (Operation) operations.get(0);
+        Fault fault = op.getFault("echoFault");
+        String actualAction =
+                WSDL11ActionHelper.getActionFromFaultElement(definition, pt, op, fault);
+        assertEquals(expectedAction, actualAction);
+    }
+    
+    // Test reading wsaw:Action values
+    // portType=withWSAMActionURI
+    // operation=echo
+    public void testGetWSAMInputAction() {
+        String expectedAction = "tns:actiontest/action/echoIn";
+        PortType pt = definition
+                .getPortType(new QName("http://ws.apache.org/axis2/actiontest/", "withWSAMActionURI"));
+        List operations = pt.getOperations();
+        Operation op = (Operation) operations.get(0);
+        Input in = op.getInput();
+        String actualAction = WSDL11ActionHelper.getActionFromInputElement(definition, pt, op, in);
+        assertEquals(expectedAction, actualAction);
+    }
+
+    public void testGetWSAMOutputAction() {
+        String expectedAction = "tns:actiontest/action/echoOut";
+        PortType pt = definition
+                .getPortType(new QName("http://ws.apache.org/axis2/actiontest/", "withWSAMActionURI"));
+        List operations = pt.getOperations();
+        Operation op = (Operation) operations.get(0);
+        Output out = op.getOutput();
+        String actualAction =
+                WSDL11ActionHelper.getActionFromOutputElement(definition, pt, op, out);
+        assertEquals(expectedAction, actualAction);
+    }
+
+    public void testGetWSAMFaultAction() {
+        String expectedAction = "tns:actiontest/action/echoFault";
+        PortType pt = definition
+                .getPortType(new QName("http://ws.apache.org/axis2/actiontest/", "withWSAMActionURI"));
+        List operations = pt.getOperations();
+        Operation op = (Operation) operations.get(0);
+        Fault fault = op.getFault("echoFault");
+        String actualAction =
+                WSDL11ActionHelper.getActionFromFaultElement(definition, pt, op, fault);
+        assertEquals(expectedAction, actualAction);
+    }
+    
+    // Test reading wsaw:Action values
+    // portType=withWSASubmissionActionURI
+    // operation=echo
+    public void testGetWSAWSubmissionInputAction() {
+        String expectedAction = "tns:actiontest/action/echoIn";
+        PortType pt = definition
+                .getPortType(new QName("http://ws.apache.org/axis2/actiontest/", "withWSASubmissionActionURI"));
+        List operations = pt.getOperations();
+        Operation op = (Operation) operations.get(0);
+        Input in = op.getInput();
+        String actualAction = WSDL11ActionHelper.getActionFromInputElement(definition, pt, op, in);
+        assertEquals(expectedAction, actualAction);
+    }
+
+    public void testGetWSAWSubmissionOutputAction() {
+        String expectedAction = "tns:actiontest/action/echoOut";
+        PortType pt = definition
+                .getPortType(new QName("http://ws.apache.org/axis2/actiontest/", "withWSASubmissionActionURI"));
+        List operations = pt.getOperations();
+        Operation op = (Operation) operations.get(0);
+        Output out = op.getOutput();
+        String actualAction =
+                WSDL11ActionHelper.getActionFromOutputElement(definition, pt, op, out);
+        assertEquals(expectedAction, actualAction);
+    }
+
+    public void testGetWSAWSubmissionFaultAction() {
+        String expectedAction = "tns:actiontest/action/echoFault";
+        PortType pt = definition
+                .getPortType(new QName("http://ws.apache.org/axis2/actiontest/", "withWSASubmissionActionURI"));
+        List operations = pt.getOperations();
+        Operation op = (Operation) operations.get(0);
+        Fault fault = op.getFault("echoFault");
+        String actualAction =
+                WSDL11ActionHelper.getActionFromFaultElement(definition, pt, op, fault);
+        assertEquals(expectedAction, actualAction);
+    }
 }
diff --git a/modules/kernel/test/org/apache/axis2/builder/SOAPBuilderTest.java b/modules/kernel/test/org/apache/axis2/builder/SOAPBuilderTest.java
index 4614256..eea4994 100644
--- a/modules/kernel/test/org/apache/axis2/builder/SOAPBuilderTest.java
+++ b/modules/kernel/test/org/apache/axis2/builder/SOAPBuilderTest.java
@@ -37,8 +37,7 @@
     }

 

     /**

-     * Simple test the makes sure SOAPBuilder builds a document and

-     * has a content length

+     * Simple test the makes sure SOAPBuilder builds a document

      * @throws Exception

      */

     public void test() throws Exception {

@@ -49,6 +48,5 @@
         OMElement envelope = soapBuilder.processDocument(fis, "text/xml", mc);

         assertTrue(envelope != null);

         assertTrue(envelope instanceof SOAPEnvelope);

-        assertTrue(mc.getInboundContentLength() > 2000);

     }

 }

diff --git a/modules/kernel/test/org/apache/axis2/classloader/JarFileClassLoaderTest.java b/modules/kernel/test/org/apache/axis2/classloader/JarFileClassLoaderTest.java
deleted file mode 100644
index b122904..0000000
--- a/modules/kernel/test/org/apache/axis2/classloader/JarFileClassLoaderTest.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.axis2.classloader;
-
-import java.io.File;
-import java.net.URL;
-
-import junit.framework.TestCase;
-
-import org.apache.commons.io.FileUtils;
-
-public class JarFileClassLoaderTest extends TestCase {
-    private File tmpDir;
-    
-    @Override
-    protected void setUp() throws Exception {
-        tmpDir = new File(System.getProperty("java.io.tmpdir"), getClass().getName());
-        if (tmpDir.exists()) {
-            FileUtils.deleteDirectory(tmpDir);
-        }
-        // Create the following files in the tmp directory:
-        // outside
-        // root/a
-        // root/dir/b
-        FileUtils.touch(new File(tmpDir, "outside"));
-        File root = new File(tmpDir, "root");
-        root.mkdir();
-        FileUtils.touch(new File(root, "a"));
-        File dir = new File(root, "dir");
-        dir.mkdir();
-        FileUtils.touch(new File(dir, "b"));
-    }
-
-    @Override
-    protected void tearDown() throws Exception {
-        FileUtils.deleteDirectory(tmpDir);
-    }
-
-    /**
-     * Test that if one of the URLs is a directory, the class loader doesn't allow access to files
-     * outside of that directory (by using ".." in the resource name). See AXIS2-4282.
-     * <p>
-     * Note that while
-     * {@linkplain http://java.sun.com/j2se/1.4.2/docs/guide/resources/resources.html} suggests
-     * that ".." should be prohibited altogether, Sun's URLClassLoader implementation allows this,
-     * as long as the resource name doesn't specify a file outside of the directory. E.g.
-     * "dir/../a" is an allowed resource name (equivalent to "a").
-     * 
-     * @throws Exception
-     */
-    public void testConfinement() throws Exception {
-        ClassLoader cl = new JarFileClassLoader(new URL[] { new File(tmpDir, "root").toURL() });
-        assertNull(cl.getResource("../outside"));
-        assertNotNull(cl.getResource("a"));
-        assertNotNull(cl.getResource("dir/b"));
-    }
-}
diff --git a/modules/kernel/test/org/apache/axis2/client/ServiceClientTest.java b/modules/kernel/test/org/apache/axis2/client/ServiceClientTest.java
index 8a2a789..6c0a41c 100644
--- a/modules/kernel/test/org/apache/axis2/client/ServiceClientTest.java
+++ b/modules/kernel/test/org/apache/axis2/client/ServiceClientTest.java
@@ -45,7 +45,7 @@
         if (basedir == null) {
             basedir = ".";
         }
-        URL zipUrl = new File(basedir, "target/test-zip.zip").toURL();
+        URL zipUrl = new File(basedir, "target/test-zip.zip").toURI().toURL();
         URL wsdlUrl = new URL("jar:" + zipUrl + "!/test.wsdl");
         ServiceClient serviceClient = new ServiceClient(configContext, wsdlUrl, new QName("urn:test", "EchoService"), "EchoPort");
         List<XmlSchema> schemas = serviceClient.getAxisService().getSchema();
diff --git a/modules/kernel/test/org/apache/axis2/dataretrieval/SchemaDataLocatorTest.java b/modules/kernel/test/org/apache/axis2/dataretrieval/SchemaDataLocatorTest.java
index a59f32a..70c900e 100644
--- a/modules/kernel/test/org/apache/axis2/dataretrieval/SchemaDataLocatorTest.java
+++ b/modules/kernel/test/org/apache/axis2/dataretrieval/SchemaDataLocatorTest.java
@@ -76,7 +76,7 @@
                 + "SchemaDataLocatorTest.xml");
         assertNotNull(data);
         assertEquals(data.length, 1);
-        assertSimilarXML(s, expected);
+        assertSimilarXML(expected, s);
 
     }
 
diff --git a/modules/kernel/test/org/apache/axis2/deployment/AddressingIdentityServiceTest.java b/modules/kernel/test/org/apache/axis2/deployment/AddressingIdentityServiceTest.java
new file mode 100644
index 0000000..d2b22e3
--- /dev/null
+++ b/modules/kernel/test/org/apache/axis2/deployment/AddressingIdentityServiceTest.java
@@ -0,0 +1,236 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.axis2.deployment;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.InputStream;
+import java.util.Iterator;
+import java.util.Map;
+
+import javax.xml.namespace.QName;
+
+import junit.framework.TestCase;
+
+import org.apache.axiom.om.OMElement;
+import org.apache.axis2.addressing.AddressingConstants;
+import org.apache.axis2.context.ConfigurationContext;
+import org.apache.axis2.context.ConfigurationContextFactory;
+import org.apache.axis2.description.AxisEndpoint;
+import org.apache.axis2.description.AxisService;
+import org.apache.axis2.description.AxisService2WSDL11;
+import org.apache.axis2.description.Parameter;
+import org.apache.axis2.description.TransportInDescription;
+import org.apache.axis2.description.WSDL11ToAxisServiceBuilder;
+import org.apache.axis2.description.java2wsdl.Java2WSDLConstants;
+import org.apache.axis2.engine.AxisConfiguration;
+import org.apache.axis2.wsdl.WSDLConstants;
+
+public class AddressingIdentityServiceTest extends TestCase {
+    private static final String HTTP_ENDPOINT_NAME = "EchoHttpEndpoint";
+    
+    private static final String EXPECTED_SPN = "http/server.example.com";
+    private static final String EXPECTED_UPN = "bob@EXAMPLE.COM";
+    
+    private static final String IDENTITY_SERVICE_XML = "test-resources/deployment/AddressingIdentityServiceTest/service.xml";
+    private static final String IDENTITY_SERVICE_WSDL = "test-resources/wsdl/identity.wsdl";
+                    
+    private AxisConfiguration axisConfig;
+    private ConfigurationContext configContext;
+    
+
+    protected void setUp() throws Exception {
+        this.configContext = ConfigurationContextFactory.createEmptyConfigurationContext();
+        this.axisConfig = configContext.getAxisConfiguration();
+        TransportInDescription httpReceiver = new TransportInDescription("http");
+        httpReceiver.setReceiver(new DummyTransportListener());
+        this.axisConfig.addTransportIn(httpReceiver);
+    }
+
+    /**
+     * Tests AxisService construction from a services.xml containing a 
+     * {@link AddressingConstants#ADDRESSING_IDENTITY_PARAMETER ADDRESSING_IDENTITY_PARAMETER} parameter
+     * containing a &lt;wsa:EndpointReference&gt; element with an UPN identity.
+     * The test will then generate the wsdl using {@link AxisService2WSDL11} API and verify that the port
+     * contains the &lt;wsa:EndpointReference&gt; extensibility element with the same UPN identity.
+     * 
+     * @throws Exception
+     */
+    public void testEndpointReferenceWithUPNIdentityService() throws Exception {
+        InputStream in = null;
+        try {
+            assertNotNull(axisConfig);
+            
+            AxisService service = new AxisService();
+
+            in = new FileInputStream(IDENTITY_SERVICE_XML);
+            ServiceBuilder serviceBuilder = new ServiceBuilder(in, configContext, service);
+            service = serviceBuilder.populateService(serviceBuilder.buildOM());
+            
+            axisConfig.addService(service);
+
+            AxisService2WSDL11 wsdlGenerator = new AxisService2WSDL11(service);
+            wsdlGenerator.setCheckIfEndPointActive(false);
+            OMElement wsdl = wsdlGenerator.generateOM();
+            
+            Map<String, AxisEndpoint> endpoints = service.getEndpoints();
+            assertEquals(String.format("Expected to find %d endpoints for service %s, but found: %d", 3, service.getName(), endpoints.size()), 3, endpoints.size());
+            
+            for (Iterator<String> it = endpoints.keySet().iterator(); it.hasNext(); ) {
+                AxisEndpoint endpoint = service.getEndpoint(it.next());
+                if (HTTP_ENDPOINT_NAME.equals(endpoint.getName())) {
+                    //Axis2 does not attach EPRs to http endpoint, therefore we skip it
+                    continue;
+                }
+                OMElement identityElement = checkWsdlContainsIdentityElement(wsdl, service, endpoint);
+                
+                OMElement upnElement = identityElement.getFirstChildWithName(AddressingConstants.QNAME_IDENTITY_UPN);
+                assertNotNull(String.format("Could not find any '%s' claim in Identity element of endpoint '%s': %s",
+                    AddressingConstants.QNAME_IDENTITY_UPN, endpoint.getName(), identityElement.toString()), upnElement);
+                
+                String upn = upnElement.getText();
+                assertTrue(String.format("Expected to find UPN of '%s' but got: %s", EXPECTED_UPN, upn),
+                    EXPECTED_UPN.equals(upn)); 
+            }
+        } finally {
+            if (in != null) {
+                in.close();
+            }
+        }
+    }
+    
+    /**
+     * Tests AxisService construction from a WSDL containing an &lt;wsa:EndpointReference&gt; port
+     * extensibility element with an SPN identity.
+     * Validates that the AxisEndpoint of the created service contains an 
+     * {@link AddressingConstants#ADDRESSING_IDENTITY_PARAMETER ADDRESSING_IDENTITY_PARAMETER} parameter with 
+     * an &lt;wsid:Identity&gt; OMElement with the same SPN as in the original wsdl.
+     * The test will then re-generate the wsdl using {@link AxisService2WSDL11} API and verify that the port
+     * contains the &lt;wsa:EndpointReference&gt; extensibility element with the same SPN identity.
+     * 
+     * @throws Exception
+     */
+    public void testEndpointReferenceWithSPNIdentityWSDL() throws Exception {
+        InputStream in = null;
+        try {
+            File wsdlFile = new File(IDENTITY_SERVICE_WSDL);
+            in = new FileInputStream(wsdlFile);
+            AxisService service = new WSDL11ToAxisServiceBuilder(in).populateService();
+            assertNotNull("Could not load AxisService from wsdl: " + wsdlFile.getAbsolutePath(), service);
+            
+            Map<String, AxisEndpoint> endpoints = service.getEndpoints();
+            assertFalse(String.format("No endpoints found for service %s", service.getName()), endpoints.isEmpty());
+            
+            for (Iterator<String> it = endpoints.keySet().iterator(); it.hasNext(); ) {
+                AxisEndpoint endpoint = service.getEndpoint(it.next());
+            
+                assertNotNull(String.format("Could not find any '%s' endpoint in wsdl: %s", endpoint.getName(),
+                    wsdlFile.getAbsolutePath()), endpoint);
+                
+                Parameter wsIdentityParameter = endpoint.getParameter(AddressingConstants.ADDRESSING_IDENTITY_PARAMETER);
+                assertNotNull(String.format("Could not find any '%s' parameter on '%s' endpoint.",
+                    AddressingConstants.ADDRESSING_IDENTITY_PARAMETER, endpoint.getName()), wsIdentityParameter);
+                
+                assertNotNull(String.format("Parameter '%s' parameter on '%s' endpoint has null value.",
+                    AddressingConstants.ADDRESSING_IDENTITY_PARAMETER, endpoint.getName()), wsIdentityParameter.getValue());
+                
+                assertTrue(String.format("Value of parameter '%s' on '%s' endpoint is not an instance of %s but is: %s",
+                    AddressingConstants.ADDRESSING_IDENTITY_PARAMETER, endpoint.getName(), OMElement.class, wsIdentityParameter.getValue().getClass().getName()),
+                    wsIdentityParameter.getValue() instanceof OMElement);
+                
+                OMElement identityElement = (OMElement) wsIdentityParameter.getValue();
+                OMElement spnElement = identityElement.getFirstChildWithName(AddressingConstants.QNAME_IDENTITY_SPN);
+                
+                assertNotNull(String.format("Could not find any '%s' child element in Identity element of endpoint '%s': %s",
+                    AddressingConstants.QNAME_IDENTITY_SPN, endpoint.getName(), identityElement.toString()), spnElement);
+                
+                String spn = spnElement.getText();
+    
+                assertTrue(String.format("Expected to find SPN of '%s' but got: %s", EXPECTED_SPN, spn),
+                    EXPECTED_SPN.equals(spn));
+            }
+            
+            axisConfig.addService(service);
+            
+            AxisService2WSDL11 wsdlGenerator = new AxisService2WSDL11(service);
+            OMElement wsdl = wsdlGenerator.generateOM();
+            
+            endpoints = service.getEndpoints();
+            assertFalse(String.format("No endpoints found for service %s", service.getName()), endpoints.isEmpty());
+            
+            for (Iterator<String> it = endpoints.keySet().iterator(); it.hasNext(); ) {
+                AxisEndpoint endpoint = service.getEndpoint(it.next());
+                if (HTTP_ENDPOINT_NAME.equals(endpoint.getName())) {
+                    //Axis2 does not attach EPRs to http endpoint, therefore we skip it
+                    continue;
+                }
+                OMElement identityElement = checkWsdlContainsIdentityElement(wsdl, service, endpoint);
+                
+                OMElement spnElement = identityElement.getFirstChildWithName(AddressingConstants.QNAME_IDENTITY_SPN);
+                assertNotNull(String.format("Could not find any '%s' element in Identity element of endpoint '%s': %s",
+                    AddressingConstants.QNAME_IDENTITY_SPN, endpoint.getName(), identityElement.toString()), spnElement);
+                
+                String spn = spnElement.getText();
+                assertTrue(String.format("Expected to find SPN of '%s' but got: %s", EXPECTED_SPN, spn),
+                    EXPECTED_SPN.equals(spn)); 
+            }
+        } finally {
+            if (in != null) {
+                in.close();
+            }
+        }
+    }
+    
+    private OMElement checkWsdlContainsIdentityElement(OMElement wsdl, AxisService service, AxisEndpoint endpoint) {
+        QName nameAtt = new QName("", Java2WSDLConstants.ATTRIBUTE_NAME);
+        QName serviceQName = new QName(WSDLConstants.WSDL1_1_NAMESPACE, Java2WSDLConstants.SERVICE_LOCAL_NAME);
+        
+        OMElement serviceElement = wsdl.getFirstChildWithName(serviceQName);
+        assertNotNull(String.format("Could not find any '%s' service element in wsdl: \n%s", serviceQName, wsdl.toString()), serviceElement);
+        assertEquals("Expected to find a single service with name: " + service.getName(), service.getName(), serviceElement.getAttributeValue(nameAtt));
+        
+        OMElement portElement = findPort(serviceElement, endpoint.getName());
+        assertNotNull(String.format("Could not find any port element with name '%s' in service element: \n%s",
+            endpoint.getName(), serviceElement.toString()), portElement);
+        
+        OMElement eprElement = portElement.getFirstChildWithName(AddressingConstants.Final.WSA_ENDPOINT_REFERENCE);
+        assertNotNull(String.format("Could not find any '%s' element in port element: \n%s",
+            AddressingConstants.Final.WSA_ENDPOINT_REFERENCE, portElement.toString()), eprElement);
+        
+        OMElement identityElement = eprElement.getFirstChildWithName(AddressingConstants.QNAME_IDENTITY);
+        assertNotNull(String.format("Could not find any '%s' element in EPR element: \n%s",
+            AddressingConstants.QNAME_IDENTITY, eprElement.toString(), identityElement));
+        
+        return identityElement;
+    }
+    
+    private OMElement findPort(OMElement serviceElement, String portName) {
+        QName portQName = new QName(WSDLConstants.WSDL1_1_NAMESPACE, Java2WSDLConstants.PORT);
+        
+        for (Iterator<OMElement> portIter = serviceElement.getChildrenWithName(portQName); portIter.hasNext(); ) {
+            OMElement portElement = portIter.next();
+            if (portName.equals(portElement.getAttributeValue(new QName("", Java2WSDLConstants.ATTRIBUTE_NAME)))) {
+                return portElement;
+            }
+        }
+        
+        return null;
+    }
+}
diff --git a/modules/kernel/test/org/apache/axis2/deployment/DeploymentTotalTest.java b/modules/kernel/test/org/apache/axis2/deployment/DeploymentTotalTest.java
index 5105ff7..c45c504 100644
--- a/modules/kernel/test/org/apache/axis2/deployment/DeploymentTotalTest.java
+++ b/modules/kernel/test/org/apache/axis2/deployment/DeploymentTotalTest.java
@@ -19,39 +19,46 @@
 
 package org.apache.axis2.deployment;
 
-import junit.framework.TestCase;
-import org.apache.axis2.AbstractTestCase;
+import org.apache.axis2.Axis2Repo;
 import org.apache.axis2.AxisFault;
-import org.apache.axis2.context.ConfigurationContextFactory;
 import org.apache.axis2.description.Parameter;
 import org.apache.axis2.engine.AxisConfiguration;
 import org.apache.axis2.engine.Handler;
 import org.apache.axis2.engine.Phase;
 import org.apache.axis2.registry.Handler3;
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
 
 import javax.xml.stream.XMLStreamException;
-import java.util.ArrayList;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+
 import java.util.List;
 
-public class DeploymentTotalTest extends TestCase {
-    AxisConfiguration axisConfig;
+public class DeploymentTotalTest {
+    @Rule
+    public Axis2Repo repo = new Axis2Repo("target/test-resources/deployment");
 
-    protected void setUp() throws Exception {
-        String filename = AbstractTestCase.basedir + "/target/test-resources/deployment";
-        axisConfig = ConfigurationContextFactory
-                .createConfigurationContextFromFileSystem(filename, filename + "/axis2.xml")
-                .getAxisConfiguration();
-        axisConfig.engageModule("module1");
+    @Before
+    public void setUp() throws Exception {
+        repo.getAxisConfiguration().engageModule("module1");
          // OK, no exceptions.  Now make sure we read the correct file...
     }
 
+    @Test
     public void testparseService1() throws AxisFault, XMLStreamException {
-        Parameter param = axisConfig.getParameter("FavoriteColor");
+        Parameter param = repo.getAxisConfiguration().getParameter("FavoriteColor");
         assertNotNull("No FavoriteColor parameter in axis2.xml!", param);
         assertEquals("purple", param.getValue());
     }
 
+    @Test
     public void testDynamicPhase() {
+        AxisConfiguration axisConfig = repo.getAxisConfiguration();
+
         List inFlow = axisConfig.getInFlowPhases();
         for (int i = 0; i < inFlow.size(); i++) {
             Phase phase = (Phase) inFlow.get(i);
diff --git a/modules/kernel/test/org/apache/axis2/deployment/repository/util/DeploymentFileDataTest.java b/modules/kernel/test/org/apache/axis2/deployment/repository/util/DeploymentFileDataTest.java
new file mode 100644
index 0000000..f6ae470
--- /dev/null
+++ b/modules/kernel/test/org/apache/axis2/deployment/repository/util/DeploymentFileDataTest.java
@@ -0,0 +1,44 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.axis2.deployment.repository.util;
+
+import static com.google.common.truth.Truth.assertThat;
+import static org.mockito.Mockito.mock;
+
+import java.io.File;
+import java.net.URL;
+
+import org.apache.axis2.deployment.Deployer;
+import org.junit.Test;
+
+public class DeploymentFileDataTest {
+    @Test
+    public void testGetNameWithFile() {
+        DeploymentFileData dfd = new DeploymentFileData(new File("somedir", "myservice.aar"));
+        assertThat(dfd.getName()).isEqualTo("myservice.aar");
+    }
+
+    @Test
+    public void testGetNameWithURL() throws Exception {
+        DeploymentFileData dfd = new DeploymentFileData(
+                new URL("http://myserver.local/myservice.aar"), mock(Deployer.class),
+                DeploymentFileData.class.getClassLoader());
+        assertThat(dfd.getName()).isEqualTo("myservice.aar");
+    }
+}
diff --git a/modules/kernel/test/org/apache/axis2/description/AxisService2WSDLTest.java b/modules/kernel/test/org/apache/axis2/description/AxisService2WSDLTest.java
index 4b3ab9d..e3cd156 100644
--- a/modules/kernel/test/org/apache/axis2/description/AxisService2WSDLTest.java
+++ b/modules/kernel/test/org/apache/axis2/description/AxisService2WSDLTest.java
@@ -59,8 +59,8 @@
         // + "testGenerateInterfaceOperationElement_WSDL.wsdl",
         // element.toString());
         XMLPrettyPrinter.prettify(element, stream);
-        assertSimilarXML(stream.toString(), readWSDLFromFile("test-resources" + File.separator
-                + "wsdl" + File.separator + "testGenerateInterfaceOperationElement_WSDL.wsdl"));
+        assertSimilarXML(readWSDLFromFile("test-resources" + File.separator
+                + "wsdl" + File.separator + "testGenerateInterfaceOperationElement_WSDL.wsdl"), stream.toString());
 
     }
 
@@ -75,8 +75,8 @@
         // +
         // "testGenerateInterfaceOperationElement11_WSDL.wsdl",element.toString());
         XMLPrettyPrinter.prettify(element, stream);
-        assertSimilarXML(stream.toString(), readWSDLFromFile("test-resources" + File.separator
-                + "wsdl" + File.separator + "testGenerateInterfaceOperationElement11_WSDL.wsdl"));
+        assertSimilarXML(readWSDLFromFile("test-resources" + File.separator
+                + "wsdl" + File.separator + "testGenerateInterfaceOperationElement11_WSDL.wsdl"), stream.toString());
     }
     
     
diff --git a/modules/kernel/test/org/apache/axis2/description/AxisServiceTest.java b/modules/kernel/test/org/apache/axis2/description/AxisServiceTest.java
index 1522363..bf405af 100644
--- a/modules/kernel/test/org/apache/axis2/description/AxisServiceTest.java
+++ b/modules/kernel/test/org/apache/axis2/description/AxisServiceTest.java
@@ -263,8 +263,8 @@
         service.printXSD(stream, "");
         // service has a single schema and it is printed. The it is compared
         // with the saved file
-        assertSimilarXML(stream.toString(), readXMLfromSchemaFile(SampleSchemasDirectory
-                + "printXSDReference.xsd"));
+        assertSimilarXML(readXMLfromSchemaFile(SampleSchemasDirectory
+                + "printXSDReference.xsd"), stream.toString());
     }
 
     public void testPrintWSDL() throws Exception {
@@ -274,7 +274,7 @@
 
         String s = readWSDLFromFile("test-resources" + File.separator + "wsdl" + File.separator
                 + "printWSDLreference.wsdl");
-        assertSimilarXML(stream.toString(), s);
+        assertSimilarXML(s, stream.toString());
     }
 
     public String convertXMLFileToString(String fileName) {
diff --git a/modules/kernel/test/org/apache/axis2/description/WSDL11ToAxisServiceBuilderTest.java b/modules/kernel/test/org/apache/axis2/description/WSDL11ToAxisServiceBuilderTest.java
index 04cdb4d..9e896fe 100644
--- a/modules/kernel/test/org/apache/axis2/description/WSDL11ToAxisServiceBuilderTest.java
+++ b/modules/kernel/test/org/apache/axis2/description/WSDL11ToAxisServiceBuilderTest.java
@@ -18,18 +18,26 @@
  */
 package org.apache.axis2.description;
 
+import java.io.File;
 import java.io.FileInputStream;
+import java.io.IOException;
 import java.io.InputStream;
-import java.util.List;
 import java.util.ArrayList;
-import java.util.Set;
+import java.util.HashMap;
 import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
 
+import javax.wsdl.xml.WSDLLocator;
 import javax.xml.namespace.QName;
 
+import org.apache.axis2.engine.AxisConfiguration;
+import org.apache.axis2.wsdl.WSDLConstants;
 import org.apache.ws.commons.schema.XmlSchema;
 import org.apache.ws.commons.schema.XmlSchemaElement;
 import org.apache.ws.commons.schema.XmlSchemaObject;
+import org.xml.sax.InputSource;
 
 import junit.framework.TestCase;
 
@@ -100,4 +108,223 @@
         return duplicatedGlobalElementDeclarations;
     }
 
+    private AxisService populateAxisService(AxisConfiguration axisConf, File wsdlFile) throws IOException {
+        InputStream in = null;
+        try {
+            in = new FileInputStream(wsdlFile);
+            WSDL11ToAxisServiceBuilder wsdl11Builder = new WSDL11ToAxisServiceBuilder(in);
+            if (axisConf != null) {
+            	wsdl11Builder.useAxisConfiguration(axisConf);
+            }
+            AxisService service = wsdl11Builder.populateService();
+            assertNotNull("Could not load AxisService from wsdl: " + wsdlFile.getAbsolutePath(), service);
+            
+            return service;
+        } finally {
+            if (in != null) {
+                in.close();
+            }
+        }
+    }
+    
+    private void checkOperationActions(AxisService service, AxisOperation operation, String expectedInputAction, String expectedOutputAction, String expectedFaultAction) {
+        assertEquals(String.format("Expected that operation '%s' of service '%s' defines an input action of '%s' but it defines '%s' instead.", operation.getName(), service.getName(), expectedInputAction, operation.getInputAction()), expectedInputAction, operation.getInputAction());
+        assertEquals(String.format("Expected that operation '%s' of service '%s' defines an output action of '%s' but it defines '%s' instead.", operation.getName(), service.getName(), expectedOutputAction, operation.getOutputAction()), expectedOutputAction, operation.getOutputAction());
+        assertEquals(String.format("Expected that operation '%s' of service '%s' defines an input action of '%s' but it defines '%s' instead.", operation.getName(), service.getName(), expectedFaultAction, operation.getFaultAction()), expectedFaultAction, operation.getFaultAction());
+        
+        ArrayList<String> wsaMappingList = operation.getWSAMappingList();
+        assertEquals(String.format("Expected that operation '%s' of service '%s' has a 'wsaMappingList' of size '%d' but size is '%d' instead.", operation.getName(), service.getName(), 1, wsaMappingList.size()), 1, wsaMappingList.size());
+        assertTrue(String.format("Expected that the 'wsaMappingList' of operation '%s' of service '%s' contains an entry of '%s' but it does not.", operation.getName(), service.getName(), expectedInputAction), wsaMappingList.contains(expectedInputAction));
+        
+        assertSame(String.format("Expected that 'operationsAliasesMap' of service '%s' contains a '%s' operation for action '%s'.", service.getName(), operation.getName(), expectedInputAction), service.getOperationByAction(expectedInputAction), operation);
+    }
+    
+    public void testGetVersionActions() throws IOException {
+    	AxisConfiguration axisConf = new AxisConfiguration();
+        AxisService service = populateAxisService(axisConf, new File("test-resources/wsdl/Version.wsdl"));
+        
+        String[] operationNames = new String[] { 
+        		"getVersionWSAW", "getVersionWSA", "getVersionWSAM", "getVersionWSAWSubmission", 
+        		"getVersionWSAWURI", "getVersionWSAURI", "getVersionWSAMURI", "getVersionWSAWSubmissionURI" 
+        };
+        
+        for (String operationName : operationNames) {
+	        QName operationQName = new QName("http://axisversion.sample", operationName);
+	        AxisOperation operation = service.getOperation(operationQName);
+	        assertNotNull(String.format("Could not find AxisOperation '%s' in service: %s", operationQName.toString(), service.getName()), operation);
+	
+	        String prefix = operationName.endsWith("URI") ? "ns:Version" : "http://axisversion.sample";
+	        String expectedInputAction = String.format("%s/VersionPortType/%sRequest", prefix, operationQName.getLocalPart());
+	        String expectedOutputAction = String.format("%s/VersionPortType/%sResponse", prefix, operationQName.getLocalPart());
+	        String expectedFaultAction = String.format("%s/VersionPortType/Fault/%sException", prefix, operationQName.getLocalPart());
+	        
+	        checkOperationActions(service, operation, expectedInputAction,expectedOutputAction,expectedFaultAction);
+        }
+    }
+    
+    /**
+     * Tests parsing of <code>EchoService.wsdl</code> into an AxisService instance. The <code>EchoService.wsdl</code>
+     * imports <code>EchoBindings.wsdl</code>, which contains the binding definitions (note that it does not reverse-import the EchoService.wsdl).
+     * Parsing the wsdl should cause neither a "There is no port type associated with the binding" exception, nor a "Cannot determine the MEP" exception,
+     * provided that Axis2 does not recursively search the port type in all imported wsdls, but looks it up via {@link javax.wsdl.Definition#getPortType(QName)}, 
+     * falling back to {@link javax.wsdl.Binding#getPortType()} if not available (will be the case when port type is imported through another document but not directly)
+     *
+     * The test verifies that no exceptions are thrown and additionally checks that the endpoint, binding, operation and its in/out messages are correctly populated from the WSDL definition.
+     * @throws IOException
+     */
+    public void testImportedBindings() throws IOException {
+        AxisConfiguration axisConf = new AxisConfiguration();
+        WSDLLocator wsdlLocator = new CustomWSDLLocator("test-resources/wsdl/imports/binding/", "EchoService.wsdl");
+        AxisService service = populateAxisService(axisConf, new File(wsdlLocator.getBaseURI()), wsdlLocator);
+        assertValidEchoService(service, wsdlLocator);
+    }
+    
+    /**
+     * Tests parsing of <code>EchoService.wsdl</code> into an AxisService instance. The <code>EchoService.wsdl</code>
+     * imports <code>EchoBindings.wsdl</code>, which reverse-imports the EchoService.wsdl (i.e. we have a circular import).
+     * Parsing the wsdl should cause neither a "There is no port type associated with the binding" exception, nor a "Cannot determine the MEP" exception,
+     * provided that Axis2 does not recursively search the port type in all imported wsdls, but looks it up via {@link javax.wsdl.Definition#getPortType(QName)}, 
+     * falling back to {@link javax.wsdl.Binding#getPortType()} if not available (will be the case when port type is imported through another document but not directly)
+     *
+     * The test verifies that no exceptions are thrown and additionally checks that the endpoint, binding, operation and its in/out messages are correctly populated from the WSDL definition.
+     * @throws IOException
+     */
+    public void testCircularImportedBindings() throws IOException {
+        AxisConfiguration axisConf = new AxisConfiguration();
+        WSDLLocator wsdlLocator = new CustomWSDLLocator("test-resources/wsdl/imports/binding_recursive/", "EchoService.wsdl");
+        AxisService service = populateAxisService(axisConf, new File(wsdlLocator.getBaseURI()), wsdlLocator);
+        assertValidEchoService(service, wsdlLocator);
+    }
+    
+    /**
+     * Tests parsing of <code>EchoService.wsdl</code> into an AxisService instance. The <code>EchoService.wsdl</code>
+     * imports <code>EchoBindings.wsdl</code>, which in turn imports the <code>EchoPortType.wsdl</code>.
+     * Parsing the wsdl should cause neither a "There is no port type associated with the binding" exception, nor a "Cannot determine the MEP" exception,
+     * provided that Axis2 does not recursively search the port type in all imported wsdls, but looks it up via {@link javax.wsdl.Definition#getPortType(QName)}, 
+     * falling back to {@link javax.wsdl.Binding#getPortType()} if not available (will be the case when port type is imported through another document but not directly)
+     *
+     * The test verifies that no exceptions are thrown and additionally checks that the endpoint, binding, operation and its in/out messages are correctly populated from the WSDL definition.
+     * @throws IOException
+     */
+    public void testImportedPortType() throws IOException {
+        AxisConfiguration axisConf = new AxisConfiguration();
+        WSDLLocator wsdlLocator = new CustomWSDLLocator("test-resources/wsdl/imports/portType/", "EchoService.wsdl");
+        AxisService service = populateAxisService(axisConf, new File(wsdlLocator.getBaseURI()), wsdlLocator);
+        assertValidEchoService(service, wsdlLocator);
+    }
+    
+    private void assertValidEchoService(AxisService echoService, WSDLLocator wsdlLocator) {
+        //check soap12 endpoint and binding are available
+        String endpointName = "EchoServiceHttpSoap12Endpoint";
+        AxisEndpoint soap12Endpoint = echoService.getEndpoint(endpointName);
+        assertNotNull(String.format("Cannot find %s endpoint in wsdl definition: %s", endpointName, wsdlLocator.getBaseURI()), soap12Endpoint);
+        
+        AxisBinding soap12Binding = soap12Endpoint.getBinding();
+        assertNotNull(String.format("Binding not set on %s endpoint in wsdl definition: %s", endpointName, wsdlLocator.getBaseURI()), soap12Binding);
+        
+        //check that policy reference is present on the binding subject
+        String bindingPolicyRefId = "#basicAuthPolicy";
+        assertNotNull(String.format("Cannot find policy reference %s on binding %s", bindingPolicyRefId, soap12Binding.getName()),
+                soap12Binding.getPolicySubject().getAttachedPolicyComponent(bindingPolicyRefId));
+        
+        //check that binding operation and respective operation are available
+        QName echoBindingOpName = new QName("http://tempuri.org/bindings", "echo");
+        AxisBindingOperation echoBindingOp = (AxisBindingOperation) soap12Binding.getChild(echoBindingOpName);
+        assertNotNull(String.format("Cannot find %s binding operation on binding %s",  echoBindingOpName, soap12Binding), echoBindingOp);
+        
+        AxisOperation echoOp = echoBindingOp.getAxisOperation();
+        assertNotNull(String.format("Operation not set on binding operation %s",  echoBindingOp.getName()), echoOp);
+        
+        //check that operation style is correctly identified and an operation with respective mep is created
+        assertTrue(String.format("Operation %s is not an instance of %s", echoOp.getName(), InOutAxisOperation.class.getName()), echoOp instanceof InOutAxisOperation);
+        assertEquals(String.format("Operation %s specifies an unexpected MEP uri: %s", echoOp.getName(), echoOp.getMessageExchangePattern()), 
+                WSDL2Constants.MEP_URI_IN_OUT, echoOp.getMessageExchangePattern());
+        
+        //check in/out messages
+        AxisMessage inMessage =  echoOp.getMessage(WSDLConstants.MESSAGE_LABEL_IN_VALUE);
+        assertNotNull(String.format("No input message set on operation %s", echoOp.getName()), inMessage);
+        QName echoInMessageName = new QName("http://tempuri.org/types", "echo");
+        assertEquals(String.format("Unexpected input message QName set on operation %s", echoOp.getName()), echoInMessageName, inMessage.getElementQName());
+        //message name is 'echoRequest' whereas the QName's local name is simply 'echo'
+        assertEquals(String.format("Unexpected input message name set on operation %s", echoOp.getName()), "echoRequest", inMessage.getName());
+        
+        AxisMessage outMessage =  echoOp.getMessage(WSDLConstants.MESSAGE_LABEL_OUT_VALUE);
+        assertNotNull(String.format("No output message set on operation %s", echoOp.getName()), outMessage);
+        QName echoOutMessageName = new QName("http://tempuri.org/types", "echoResponse");
+        assertEquals(String.format("Unexpected output message QName set on operation %s", echoOp.getName()), echoOutMessageName, outMessage.getElementQName());
+        assertEquals(String.format("Unexpected output message name set on operation %s", echoOp.getName()), echoOutMessageName.getLocalPart(), outMessage.getName());
+    }
+    
+    private AxisService populateAxisService(AxisConfiguration axisConf, File wsdlFile, WSDLLocator wsdlLocator) throws IOException {
+        InputStream in = null;
+        try {
+            in = new FileInputStream(wsdlFile);
+            WSDL11ToAxisServiceBuilder wsdl11Builder = new WSDL11ToAxisServiceBuilder(in);
+            if (wsdlLocator != null) {
+                wsdl11Builder.setCustomWSDLResolver(wsdlLocator);
+            }
+            wsdl11Builder.setDocumentBaseUri(wsdlFile.getParentFile().toURI().toString());
+            if (axisConf != null) {
+                wsdl11Builder.useAxisConfiguration(axisConf);
+            }
+            AxisService service = wsdl11Builder.populateService();
+            assertNotNull("Could not load AxisService from wsdl: " + wsdlFile.getAbsolutePath(), service);
+            
+            return service;
+        } finally {
+            if (in != null) {
+                in.close();
+            }
+        }
+    }
+    
+    //custom locator that can located imported wsdls relative to the base wsdl uri (code borrowed from wsdl4j)
+    class CustomWSDLLocator implements WSDLLocator {
+        private String wsdlURI;
+
+        private InputSource baseInputSource;
+        private Map<String, InputSource> importInputSources = new HashMap<String, InputSource>();
+        private boolean closed = false;
+        private String baseURI;
+        private String lastImportURI;
+
+        public CustomWSDLLocator(String baseURI, String wsdlURI) {
+            this.baseURI = baseURI;
+            this.wsdlURI = wsdlURI;
+        }
+
+        public InputSource getBaseInputSource() {
+            if (baseInputSource == null) {
+                lastImportURI = baseURI + wsdlURI;
+                baseInputSource = new InputSource(lastImportURI);
+            }
+            return baseInputSource;
+        }
+
+        public InputSource getImportInputSource(String parentLocation, String importLocation) {
+            InputSource inSource = (InputSource) importInputSources.get(importLocation);
+            if (inSource == null) {
+                lastImportURI = baseURI + importLocation;
+                inSource = new InputSource(lastImportURI);
+                importInputSources.put(importLocation, inSource);
+            }
+            return inSource;
+        }
+
+        public String getBaseURI() {
+            return baseURI + wsdlURI;
+        }
+
+        public String getLatestImportURI() {
+            return lastImportURI;
+        }
+
+        public void close() {
+            closed = true;
+        }
+
+        public boolean isClosed() {
+            return closed;
+        }
+    }
 }
diff --git a/modules/kernel/test/org/apache/axis2/description/WSDLWrapperTest.java b/modules/kernel/test/org/apache/axis2/description/WSDLWrapperTest.java
index 26a1020..fb7e861 100644
--- a/modules/kernel/test/org/apache/axis2/description/WSDLWrapperTest.java
+++ b/modules/kernel/test/org/apache/axis2/description/WSDLWrapperTest.java
@@ -20,23 +20,23 @@
 package org.apache.axis2.description;

 

 import junit.framework.TestCase;

-import org.apache.axis2.AbstractTestCase;

-import org.apache.axis2.context.ConfigurationContextFactory;

-import org.apache.axis2.engine.AxisConfiguration;

-import org.apache.axis2.wsdl.util.WSDLDefinitionWrapper;

-import org.w3c.dom.Document;

-import org.xml.sax.ErrorHandler;

+import org.apache.axis2.AbstractTestCase;
+import org.apache.axis2.context.ConfigurationContextFactory;
+import org.apache.axis2.engine.AxisConfiguration;
+import org.apache.axis2.wsdl.WSDLUtil;
+import org.apache.axis2.wsdl.util.WSDLDefinitionWrapper;
+import org.w3c.dom.Document;
+import org.xml.sax.ErrorHandler;
 import org.xml.sax.InputSource;

 import org.xml.sax.SAXException;

 import org.xml.sax.SAXParseException;

 

-import javax.wsdl.Definition;

-import javax.wsdl.Types;

-import javax.wsdl.WSDLException;

-import javax.wsdl.factory.WSDLFactory;

-import javax.wsdl.xml.WSDLLocator;

-import javax.wsdl.xml.WSDLReader;

-import javax.xml.namespace.QName;

+import javax.wsdl.Definition;
+import javax.wsdl.Types;
+import javax.wsdl.WSDLException;
+import javax.wsdl.xml.WSDLLocator;
+import javax.wsdl.xml.WSDLReader;
+import javax.xml.namespace.QName;
 import javax.xml.parsers.DocumentBuilder;

 import javax.xml.parsers.DocumentBuilderFactory;

 import javax.xml.parsers.ParserConfigurationException;

@@ -115,7 +115,7 @@
                       .createConfigurationContextFromFileSystem(null, axis2xml)

                       .getAxisConfiguration();

 

-            WSDLDefinitionWrapper passthru = new WSDLDefinitionWrapper(def1, testResourceFile1.toURL(), false);

+            WSDLDefinitionWrapper passthru = new WSDLDefinitionWrapper(def1, testResourceFile1.toURI().toURL(), false);

 

             Definition def_passthru = passthru.getUnwrappedDefinition();

             String def_passthru_str = def_passthru.toString();

@@ -123,7 +123,7 @@
             String def_passthru_namespace = def_passthru.getTargetNamespace();

             Types def_passthru_types = def_passthru.getTypes();

 

-            WSDLDefinitionWrapper serialize = new WSDLDefinitionWrapper(def1, testResourceFile1.toURL(), axisCfg); 

+            WSDLDefinitionWrapper serialize = new WSDLDefinitionWrapper(def1, testResourceFile1.toURI().toURL(), axisCfg); 

 

             Definition def_serialize = serialize.getUnwrappedDefinition();

             String def_serialize_str = def_serialize.toString();

@@ -131,7 +131,7 @@
             String def_serialize_namespace = def_serialize.getTargetNamespace();

             Types def_serialize_types = def_serialize.getTypes();

 

-            WSDLDefinitionWrapper reload = new WSDLDefinitionWrapper(def1, testResourceFile1.toURL(), 2); 

+            WSDLDefinitionWrapper reload = new WSDLDefinitionWrapper(def1, testResourceFile1.toURI().toURL(), 2); 

 

             Definition def_reload = reload.getUnwrappedDefinition();

             String def_reload_str = def_reload.toString();

@@ -145,13 +145,13 @@
         }

     }

 

-

-    private Definition readInTheWSDLFile(InputStream in) throws WSDLException {

-

-        WSDLReader reader = WSDLFactory.newInstance().newWSDLReader();

-

-        // switch off the verbose mode for all usecases

-        reader.setFeature(JAVAX_WSDL_VERBOSE_MODE_KEY, false);

+
+    private Definition readInTheWSDLFile(InputStream in) throws WSDLException {
+
+    	WSDLReader reader = WSDLUtil.newWSDLReaderWithPopulatedExtensionRegistry();
+
+        // switch off the verbose mode for all usecases
+        reader.setFeature(JAVAX_WSDL_VERBOSE_MODE_KEY, false);
 

         // if the custem resolver is present then use it

         if (customWSLD4JResolver != null) {

diff --git a/modules/kernel/test/org/apache/axis2/description/java2wsdl/DefaultSchemaGeneratorTest.java b/modules/kernel/test/org/apache/axis2/description/java2wsdl/DefaultSchemaGeneratorTest.java
index 37084ea..cd387de 100644
--- a/modules/kernel/test/org/apache/axis2/description/java2wsdl/DefaultSchemaGeneratorTest.java
+++ b/modules/kernel/test/org/apache/axis2/description/java2wsdl/DefaultSchemaGeneratorTest.java
@@ -112,8 +112,7 @@
             String XML1 = byteArrayOutputStream.toString();
             String XML2 = readSchema(c, i);
 
-            assertSimilarXML(XML1, XML2);
-            assertIdenticalXML(XML1, XML2);
+            assertSimilarXML(XML2, XML1);
         }
 
     }
@@ -131,8 +130,7 @@
             xmlSchema.write(byteArrayOutputStream);
             String XML1 = byteArrayOutputStream.toString();
             String XML2 = readSchemaWithCustomSchema(c, i);
-            assertSimilarXML(XML1, XML2);
-            assertIdenticalXML(XML1, XML2);
+            assertSimilarXML(XML2, XML1);
         }
 
     }
@@ -151,8 +149,7 @@
             String XML1 = byteArrayOutputStream.toString();
             String XML2 = readSchemaWithMappingSchema(c, i);
             XML1 = prepareForMapping(XML1);
-            assertSimilarXML(XML1, XML2);
-            assertIdenticalXML(XML1, XML2);
+            assertSimilarXML(XML2, XML1);
         }
 
     }
@@ -224,8 +221,7 @@
             String XML1 = byteArrayOutputStream.toString();
             XML1 = prepareForDOM(XML1);
             String XML2 = readSchema(c, i);
-            assertSimilarXML(XML1, XML2);
-            assertIdenticalXML(XML1, XML2);
+            assertSimilarXML(XML2, XML1);
         }
 
     }
@@ -262,8 +258,7 @@
                 XML1 = prepareForMap(XML1);
             }
             String XML2 = readSchema(c, i);
-            assertSimilarXML(XML1, XML2);
-            assertIdenticalXML(XML1, XML2);
+            assertSimilarXML(XML2, XML1);
         }
 
     }
@@ -315,8 +310,7 @@
                 XML1 = prepareForPOJO(XML1);
             }
             String XML2 = readSchema(c, i);
-            assertSimilarXML(XML1, XML2);
-            assertIdenticalXML(XML1, XML2);
+            assertSimilarXML(XML2, XML1);
         }
 
     }
@@ -358,8 +352,7 @@
                 XML1 = prepareForExc(XML1);
             }
             String XML2 = readSchema(c, i);
-            assertSimilarXML(XML1, XML2);
-            assertIdenticalXML(XML1, XML2);
+            assertSimilarXML(XML2, XML1);
         }
 
     }
@@ -404,8 +397,7 @@
             }
             XML1 = prepareForEnum(XML1);
             String XML2 = readSchema(c, i);
-            assertSimilarXML(XML1, XML2);
-            assertIdenticalXML(XML1, XML2);
+            assertSimilarXML(XML2, XML1);
         }
     }
 
diff --git a/modules/kernel/test/org/apache/axis2/description/java2wsdl/XMLSchemaTest.java b/modules/kernel/test/org/apache/axis2/description/java2wsdl/XMLSchemaTest.java
index 63a10f9..51f2da7 100644
--- a/modules/kernel/test/org/apache/axis2/description/java2wsdl/XMLSchemaTest.java
+++ b/modules/kernel/test/org/apache/axis2/description/java2wsdl/XMLSchemaTest.java
@@ -20,12 +20,15 @@
 package org.apache.axis2.description.java2wsdl;
 
 import junit.framework.TestCase;
+
 import org.apache.axis2.util.XMLPrettyPrinter;
 import org.apache.ws.commons.schema.XmlSchema;
 import org.apache.ws.commons.schema.XmlSchemaCollection;
 import org.custommonkey.xmlunit.Diff;
+import org.custommonkey.xmlunit.XMLUnit;
 
 import javax.xml.transform.stream.StreamSource;
+
 import java.io.BufferedReader;
 import java.io.ByteArrayOutputStream;
 import java.io.File;
@@ -55,16 +58,15 @@
             + "schemas" + File.separator + "mapping_files" + File.separator
             + "mapping1.txt";
 
-    public void assertSimilarXML(String XML1, String XML2) throws Exception {
-        Diff myDiff = new Diff(XML1, XML2);
-        assertTrue("XML similar " + myDiff.toString(), myDiff.similar());
-
-    }
-
-    public void assertIdenticalXML(String XML1, String XML2) throws Exception {
-        Diff myDiff = new Diff(XML1, XML2);
-        assertTrue("XML similar " + myDiff.toString(), myDiff.identical());
-
+    public void assertSimilarXML(String expected, String actual) throws Exception {
+        boolean ignoreWhitespace = XMLUnit.getIgnoreWhitespace();
+        XMLUnit.setIgnoreWhitespace(true);
+        try {
+            Diff myDiff = new Diff(expected, actual);
+            assertTrue("XML similar " + myDiff.toString(), myDiff.similar());
+        } finally {
+            XMLUnit.setIgnoreWhitespace(ignoreWhitespace);
+        }
     }
 
     public void loadSampleSchemaFile(ArrayList<XmlSchema> schemas) throws Exception{
@@ -120,8 +122,9 @@
     
    
     public String readWSDLFromFile(String path) throws Exception {
-        File file=new File(path);
-        XMLPrettyPrinter.prettify(file);    //this is used to correct unnecessary formatting in the file
+        // Don't do this; it will overwrite a file in the source tree (see AXIS2-5781).
+//        File file=new File(path);
+//        XMLPrettyPrinter.prettify(file);    //this is used to correct unnecessary formatting in the file
         return readFile(path);
     }
     
diff --git a/modules/kernel/test/org/apache/axis2/transport/tcp/TCPTransportTest.java b/modules/kernel/test/org/apache/axis2/transport/tcp/TCPTransportTest.java
deleted file mode 100644
index 827fca9..0000000
--- a/modules/kernel/test/org/apache/axis2/transport/tcp/TCPTransportTest.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.axis2.transport.tcp;
-
-import junit.framework.TestCase;
-import org.apache.axiom.om.impl.builder.StAXBuilder;
-import org.apache.axiom.om.util.StAXUtils;
-import org.apache.axiom.soap.SOAPEnvelope;
-import org.apache.axiom.soap.impl.builder.StAXSOAPModelBuilder;
-import org.apache.axis2.AxisFault;
-
-import javax.xml.stream.XMLStreamReader;
-import java.io.InputStream;
-
-public class TCPTransportTest extends TestCase {
-    public TCPTransportTest(String arg0) {
-        super(arg0);
-    }
-
-    public void testTransportSender() throws AxisFault {
-    }
-
-    public SOAPEnvelope createSOAPEnvelope(InputStream in) throws AxisFault {
-        try {
-            XMLStreamReader xmlreader =
-                    StAXUtils.createXMLStreamReader(in);
-            StAXBuilder builder = new StAXSOAPModelBuilder(xmlreader, null);
-            return (SOAPEnvelope) builder.getDocumentElement();
-        } catch (Exception e) {
-            throw new AxisFault(e.getMessage(), e);
-        }
-    }
-
-}
diff --git a/modules/transport/local/src/org/apache/axis2/transport/local/NonBlockingLocalTransportSender.java b/modules/kernel/test/org/apache/axis2/util/FinalClass.java
similarity index 80%
copy from modules/transport/local/src/org/apache/axis2/transport/local/NonBlockingLocalTransportSender.java
copy to modules/kernel/test/org/apache/axis2/util/FinalClass.java
index 1576c00..da00644 100644
--- a/modules/transport/local/src/org/apache/axis2/transport/local/NonBlockingLocalTransportSender.java
+++ b/modules/kernel/test/org/apache/axis2/util/FinalClass.java
@@ -16,13 +16,8 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+package org.apache.axis2.util;
 
-package org.apache.axis2.transport.local;
-
-public class NonBlockingLocalTransportSender extends LocalTransportSender {
-
-    protected boolean isNonBlocking() {
-        return true;
-    }
+public final class FinalClass {
 
 }
diff --git a/modules/kernel/test/org/apache/axis2/util/MessageContextBuilderTest.java b/modules/kernel/test/org/apache/axis2/util/MessageContextBuilderTest.java
index 07a30a7..8fe6ad2 100644
--- a/modules/kernel/test/org/apache/axis2/util/MessageContextBuilderTest.java
+++ b/modules/kernel/test/org/apache/axis2/util/MessageContextBuilderTest.java
@@ -76,7 +76,7 @@
         SOAPFault fault = faultContext.getEnvelope().getBody().getFault();

         String se = faultContext.getEnvelope().getNamespace().getPrefix();

         

-        assertEquals (fault.getCode().getTextAsQName().getPrefix(), se);

+        assertEquals (fault.getCode().getValueAsQName().getPrefix(), se);

     }

 

     

diff --git a/modules/kernel/test/org/apache/axis2/util/UtilsTest.java b/modules/kernel/test/org/apache/axis2/util/UtilsTest.java
new file mode 100644
index 0000000..ceed432
--- /dev/null
+++ b/modules/kernel/test/org/apache/axis2/util/UtilsTest.java
@@ -0,0 +1,39 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.axis2.util;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import org.apache.axis2.Constants;
+import org.apache.axis2.description.AxisService;
+import org.junit.Test;
+
+public class UtilsTest {
+    /**
+     * Regression test for AXIS2-1871.
+     * 
+     * @throws Exception
+     */
+    @Test
+    public void testCreateServiceObjectWithFinalClass() throws Exception {
+        AxisService service = new AxisService();
+        service.addParameter(Constants.SERVICE_CLASS, FinalClass.class.getName());
+        assertThat(Utils.createServiceObject(service)).isInstanceOf(FinalClass.class);
+    }
+}
diff --git a/modules/kernel/test/org/apache/axis2/validation/ValidateAxis2XMLTest.java b/modules/kernel/test/org/apache/axis2/validation/ValidateAxis2XMLTest.java
index 32881d5..8c2c6fb 100644
--- a/modules/kernel/test/org/apache/axis2/validation/ValidateAxis2XMLTest.java
+++ b/modules/kernel/test/org/apache/axis2/validation/ValidateAxis2XMLTest.java
@@ -54,7 +54,7 @@
             SAXParser parser = factory.newSAXParser();

 

             //validate against the given schemaURL

-            parser.setProperty(extSchemaProp, xsdSource.toURL().toString());

+            parser.setProperty(extSchemaProp, xsdSource.toURI().toURL().toString());

 

             // parse (validates) the xml

             parser.parse(xmlSource, new DefaultHandler());

diff --git a/modules/kernel/test/org/apache/axis2/wsdl/WSDLUtilTest.java b/modules/kernel/test/org/apache/axis2/wsdl/WSDLUtilTest.java
new file mode 100644
index 0000000..aa4ac6d
--- /dev/null
+++ b/modules/kernel/test/org/apache/axis2/wsdl/WSDLUtilTest.java
@@ -0,0 +1,86 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.axis2.wsdl;
+
+import javax.wsdl.WSDLException;
+import javax.wsdl.extensions.AttributeExtensible;
+import javax.wsdl.extensions.ExtensionRegistry;
+import javax.wsdl.xml.WSDLReader;
+import javax.xml.namespace.QName;
+
+import junit.framework.TestCase;
+
+import org.apache.axis2.addressing.AddressingConstants;
+
+/**
+ * Unit test for {@link WSDLUtil}.
+ */
+public class WSDLUtilTest extends TestCase {
+
+	/**
+	 * Tests whether creating new WSDLReader using {@link WSDLUtil#newWSDLReaderWithPopulatedExtensionRegistry()}
+	 * correctly registers extension attributes' types.
+	 * @throws WSDLException
+	 */
+    public void testNewWSDLReaderWithPopulatedExtensionRegistry() throws WSDLException {
+    	WSDLReader reader = WSDLUtil.newWSDLReaderWithPopulatedExtensionRegistry();
+    	
+    	ExtensionRegistry extRegistry = reader.getExtensionRegistry();
+    	assertNotNull(extRegistry);
+    	
+    	checkExtensionAttributeTypes(extRegistry, true);
+    }
+
+    /**
+     * The method will assert that the default extension attribute types in the given <code>extensionRegistry</code>
+     * are registered or not depending on the specified <code>isExpectRegistered</code> argument.
+     * See {@link WSDLUtil#registerDefaultExtensionAttributeTypes(ExtensionRegistry)}.
+     * 
+     * @param extRegistry The extension registry to check.
+     * @param isExpectRegistered Whether to expect that default extension types are registered. If set to false,
+     * the method will expect that the default extension attribute types are not registered and the 
+     * extension registry returns {@link AttributeExtensible.NO_DECLARED_TYPE} when queried for these.
+     */
+    private void checkExtensionAttributeTypes(ExtensionRegistry extRegistry, boolean isExpectRegistered) {
+    	assertNotNull(extRegistry);
+    	
+    	int expectedType = isExpectRegistered ? AttributeExtensible.STRING_TYPE : AttributeExtensible.NO_DECLARED_TYPE;
+    	
+	    QName finalWSANS = new QName(AddressingConstants.Final.WSA_NAMESPACE, AddressingConstants.WSA_ACTION);
+	    assertEquals(expectedType, extRegistry.queryExtensionAttributeType(javax.wsdl.Input.class, finalWSANS));
+	    assertEquals(expectedType, extRegistry.queryExtensionAttributeType(javax.wsdl.Output.class, finalWSANS));
+	    assertEquals(expectedType, extRegistry.queryExtensionAttributeType(javax.wsdl.Fault.class, finalWSANS));
+	    
+	    QName finalWSAWNS = new QName(AddressingConstants.Final.WSAW_NAMESPACE, AddressingConstants.WSA_ACTION);
+	    assertEquals(expectedType, extRegistry.queryExtensionAttributeType(javax.wsdl.Input.class, finalWSAWNS));
+	    assertEquals(expectedType, extRegistry.queryExtensionAttributeType(javax.wsdl.Output.class, finalWSAWNS));
+	    assertEquals(expectedType, extRegistry.queryExtensionAttributeType(javax.wsdl.Fault.class, finalWSAWNS));
+
+	    QName finalWSAMNS = new QName(AddressingConstants.Final.WSAM_NAMESPACE, AddressingConstants.WSA_ACTION);
+	    assertEquals(expectedType, extRegistry.queryExtensionAttributeType(javax.wsdl.Input.class, finalWSAMNS));
+	    assertEquals(expectedType, extRegistry.queryExtensionAttributeType(javax.wsdl.Output.class, finalWSAMNS));
+	    assertEquals(expectedType, extRegistry.queryExtensionAttributeType(javax.wsdl.Fault.class, finalWSAMNS));
+	
+	    QName submissionWSAWNS = new QName(AddressingConstants.Submission.WSA_NAMESPACE, AddressingConstants.WSA_ACTION);
+	    assertEquals(expectedType, extRegistry.queryExtensionAttributeType(javax.wsdl.Input.class, submissionWSAWNS));
+	    assertEquals(expectedType, extRegistry.queryExtensionAttributeType(javax.wsdl.Output.class, submissionWSAWNS));
+	    assertEquals(expectedType, extRegistry.queryExtensionAttributeType(javax.wsdl.Fault.class, submissionWSAWNS));
+    }
+}
diff --git a/modules/metadata/pom.xml b/modules/metadata/pom.xml
index e732d3c..75b0528 100755
--- a/modules/metadata/pom.xml
+++ b/modules/metadata/pom.xml
@@ -23,9 +23,9 @@
     <modelVersion>4.0.0</modelVersion>
     <parent>
         <groupId>org.apache.axis2</groupId>
-        <artifactId>axis2-parent</artifactId>
-        <version>1.7.0-SNAPSHOT</version>
-        <relativePath>../parent/pom.xml</relativePath>
+        <artifactId>axis2</artifactId>
+        <version>1.8.0-SNAPSHOT</version>
+        <relativePath>../../pom.xml</relativePath>
     </parent>
     <artifactId>axis2-metadata</artifactId>
     <name>Apache Axis2 - Metadata</name>
@@ -66,10 +66,6 @@
             </exclusions>
         </dependency>
         <dependency>
-            <groupId>com.sun.xml.bind</groupId>
-            <artifactId>jaxb-xjc</artifactId>
-        </dependency>
-        <dependency>
             <groupId>junit</groupId>
             <artifactId>junit</artifactId>
             <scope>test</scope>
@@ -158,24 +154,23 @@
                 </executions>
             </plugin>
             <plugin>
-                <artifactId>maven-dependency-plugin</artifactId>
+                <groupId>com.github.veithen.alta</groupId>
+                <artifactId>alta-maven-plugin</artifactId>
                 <executions>
                     <execution>
-                        <phase>generate-resources</phase>
                         <goals>
-                            <goal>copy</goal>
+                            <goal>generate-properties</goal>
                         </goals>
                         <configuration>
-                            <artifactItems>
-                                <artifactItem>
+                            <artifacts>
+                                <artifact>
                                     <groupId>org.apache.geronimo.specs</groupId>
                                     <artifactId>geronimo-jaxws_2.2_spec</artifactId>
-                                    <type>jar</type>
-                                 </artifactItem>
-                            </artifactItems>
-                            <overWrite>true</overWrite>
-                            <outputDirectory>${project.build.directory}/endorsed</outputDirectory>
-                            <stripVersion>true</stripVersion>
+                                 </artifact>
+                            </artifacts>
+                            <name>jaxws.bootclasspath</name>
+                            <value>%file%</value>
+                            <separator>${path.separator}</separator>
                         </configuration>
                     </execution>
                 </executions>
@@ -185,11 +180,8 @@
                 <inherited>true</inherited>
                 <configuration>
                     <compilerArgument>
-                        -Xbootclasspath/p:${project.build.directory}/endorsed/geronimo-jaxws_2.2_spec.jar   
+                        -Xbootclasspath/p:${jaxws.bootclasspath}
                     </compilerArgument>
-                    <compilerVersion>1.5</compilerVersion>
-                    <source>1.5</source>
-                    <target>1.5</target>
                 </configuration>
             </plugin>
             <plugin>
@@ -209,39 +201,39 @@
                 </executions>
             </plugin>
             <plugin>
+                <groupId>org.codehaus.mojo</groupId>
+                <artifactId>jaxb2-maven-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>testXjc</goal>
+                        </goals>
+                        <configuration>
+                            <sourceType>WSDL</sourceType>
+                            <testSources>
+                                <testSource>test-resources/wsdl/ProxyDocLitWrapped.wsdl</testSource>
+                            </testSources>
+                            <packageName>org.test.proxy.doclitwrapped</packageName>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+            <plugin>
+                <!-- Work around a problem in jaxb2-maven-plugin which confuses compile sources
+                     and test sources, causing test sources to be included in the source JAR.
+                     Should be fixed by https://github.com/mojohaus/jaxb2-maven-plugin/pull/94. -->
+                <artifactId>maven-source-plugin</artifactId>
+                <configuration>
+                    <excludes>
+                        <exclude>org/test/**</exclude>
+                    </excludes>
+                </configuration>
+            </plugin>
+            <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-antrun-plugin</artifactId>
                 <executions>
                     <execution>
-                        <id>gen-ts</id>
-                        <phase>generate-test-sources</phase>
-                        <configuration>
-                            <tasks unless="maven.test.skip">
-                                <!-- Theres got to be a better way to do this -->
-                                <property name="schema.source.dir" value="test-resources/xsd" />
-                                <property name="wsdl.source.dir" value="test-resources/wsdl" />
-                                <property name="schema.output.base.dir" value="target/schema" />
-                                <property name="schema.generated.src.dir" value="${schema.output.base.dir}/src" />
-                                <property name="schema.generated.classes.dir" value="${schema.output.base.dir}/classes" />
-                                <!-- make the dirs -->
-                                <mkdir dir="${schema.output.base.dir}" />
-                                <mkdir dir="${schema.generated.src.dir}" />
-                                <mkdir dir="${schema.generated.classes.dir}" />
-                                <!-- Run JAXB schema compiler with designated schemas -->
-                                <echo>Generating JAX-B classes from XSDs</echo>
-                                <echo>Generating java from ProxyDocLitWrapped.wsdl</echo>
-                                <java classname="com.sun.tools.xjc.Driver" fork="true">
-                                    <classpath refid="maven.runtime.classpath" />
-                                    <classpath location="${compiled.classes.dir}" />
-                                    <arg line="-d ${schema.generated.src.dir} -quiet -p org.test.proxy.doclitwrapped -quiet -wsdl ${wsdl.source.dir}/ProxyDocLitWrapped.wsdl" />
-                                </java>
-                            </tasks>
-                        </configuration>
-                        <goals>
-                            <goal>run</goal>
-                        </goals>
-                    </execution>
-                    <execution>
                         <id>build-repo</id>
                         <phase>test-compile</phase>
                         <configuration>
@@ -264,29 +256,11 @@
                 </executions>
             </plugin>
             <plugin>
-                <groupId>org.codehaus.mojo</groupId>
-                <artifactId>build-helper-maven-plugin</artifactId>
-                <executions>
-                    <execution>
-                        <id>add-test-source</id>
-                        <phase>process-test-resources</phase>
-                        <goals>
-                            <goal>add-test-source</goal>
-                        </goals>
-                        <configuration>
-                            <sources>
-                                <source>${basedir}/target/schema/src</source>
-                            </sources>
-                        </configuration>
-                    </execution>
-                </executions>
-            </plugin>
-            <plugin>
                 <artifactId>maven-surefire-plugin</artifactId>
                 <inherited>true</inherited>
                 <configuration>
                     <argLine>
-                        -Xbootclasspath/p:${project.build.directory}/endorsed/geronimo-jaxws_2.2_spec.jar   
+                        -Xbootclasspath/p:${jaxws.bootclasspath}
                     </argLine>
                     <includes>
                         <include>**/*Tests.java</include>
diff --git a/modules/metadata/src/org/apache/axis2/jaxws/description/builder/JAXWSRIWSDLGenerator.java b/modules/metadata/src/org/apache/axis2/jaxws/description/builder/JAXWSRIWSDLGenerator.java
index 5381900..11b5a86 100644
--- a/modules/metadata/src/org/apache/axis2/jaxws/description/builder/JAXWSRIWSDLGenerator.java
+++ b/modules/metadata/src/org/apache/axis2/jaxws/description/builder/JAXWSRIWSDLGenerator.java
@@ -36,6 +36,7 @@
 import org.apache.axis2.transport.http.HTTPConstants;
 import org.apache.axis2.util.SchemaUtil;
 import org.apache.axis2.wsdl.WSDLConstants;
+import org.apache.axis2.wsdl.WSDLUtil;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.ws.commons.schema.XmlSchema;
@@ -47,7 +48,6 @@
 import javax.servlet.ServletContext;
 import javax.wsdl.Definition;
 import javax.wsdl.WSDLException;
-import javax.wsdl.factory.WSDLFactory;
 import javax.wsdl.xml.WSDLReader;
 import javax.xml.parsers.DocumentBuilderFactory;
 import javax.xml.ws.WebServiceException;
@@ -238,9 +238,8 @@
         for (File wsdlFile : wsdlFiles) {
             if (wsdlFile != null) {
                 try {
-                    WSDLFactory wsdlFactory = WSDLFactory.newInstance();
-                    WSDLReader wsdlReader = wsdlFactory.newWSDLReader();
-                    InputStream is = wsdlFile.toURL().openStream();
+                    WSDLReader wsdlReader = WSDLUtil.newWSDLReaderWithPopulatedExtensionRegistry();
+                    InputStream is = wsdlFile.toURI().toURL().openStream();
                     Definition definition = wsdlReader.readWSDL(localOutputDirectory,
                             new InputSource(is));
                     try {
@@ -332,7 +331,7 @@
             List<File> schemaFiles = getSchemaFiles(localOutputDirectory);
             for (File schemaFile : schemaFiles) {
                 // generate dom document for current schema file
-                Document parsedDoc = fac.newDocumentBuilder().parse(schemaFile.toURL().toString());
+                Document parsedDoc = fac.newDocumentBuilder().parse(schemaFile.toURI().toURL().toString());
                 // read the schema through XmlSchema
                 XmlSchema doc = schemaCollection.read(parsedDoc.getDocumentElement(),
                         UIDGenerator.generateUID());
diff --git a/modules/metadata/src/org/apache/axis2/jaxws/description/impl/OperationDescriptionImpl.java b/modules/metadata/src/org/apache/axis2/jaxws/description/impl/OperationDescriptionImpl.java
index fdd442c..102c505 100644
--- a/modules/metadata/src/org/apache/axis2/jaxws/description/impl/OperationDescriptionImpl.java
+++ b/modules/metadata/src/org/apache/axis2/jaxws/description/impl/OperationDescriptionImpl.java
@@ -1010,7 +1010,12 @@
             syncOperationDescription = opDesc;
         }
         if (log.isDebugEnabled()) {
-            log.debug("Synchronous operationDescription: " + syncOperationDescription);
+            if (syncOperationDescription != null) {
+                // Just log the operation name here, to avoid an infinite loop
+                log.debug("Synchronous operationDescription: " + syncOperationDescription.getOperationName());
+            } else {
+                log.debug("Synchronous operationDescription: null");
+            }
         }
         return syncOperationDescription;
     }
@@ -2167,7 +2172,7 @@
                 WSDL4JWrapper wsdl4j = null;
                 try {
                     File file = new File(wsdlLocation);
-                    URL url = file.toURL();
+                    URL url = file.toURI().toURL();
                     wsdl4j = new WSDL4JWrapper(url, true, 2);  // In this context, limit the wsdl memory
                     def = wsdl4j.getDefinition();
                 } catch (Throwable t) {
@@ -2268,7 +2273,7 @@
             string.append(sameline);
             string.append("SOAP Use: " + getSoapBindingUse());
             string.append(sameline);
-            string.append("SOAP Paramater Style: " + getSoapBindingParameterStyle());
+            string.append("SOAP Parameter Style: " + getSoapBindingParameterStyle());
             //
             string.append(newline);
             string.append("Result name: " + getResultName());
@@ -2293,7 +2298,7 @@
             string.append(newline);
             string.append("Java method name: " + getJavaMethodName());
             string.append(newline);
-            string.append("Java paramaters: " + Arrays.toString(getJavaParameters()));
+            string.append("Java parameters: " + Arrays.toString(getJavaParameters()));
             string.append(newline);
             string.append("Service Implementation method: " + getMethodFromServiceImpl());
             string.append(newline);
@@ -2308,7 +2313,7 @@
                     string.append("Parameter Description: " + paramDesc.toString());
                 }
             } else {
-                string.append("No Paramater Descriptions");
+                string.append("No Parameter Descriptions");
             }
 
             string.append(newline);
diff --git a/modules/metadata/src/org/apache/axis2/jaxws/description/impl/URIResolverImpl.java b/modules/metadata/src/org/apache/axis2/jaxws/description/impl/URIResolverImpl.java
index 13758cd..7414264 100644
--- a/modules/metadata/src/org/apache/axis2/jaxws/description/impl/URIResolverImpl.java
+++ b/modules/metadata/src/org/apache/axis2/jaxws/description/impl/URIResolverImpl.java
@@ -256,7 +256,7 @@
                 streamURL = (URL) AccessController.doPrivileged(
                         new PrivilegedExceptionAction() {
                             public Object run() throws MalformedURLException {
-                                return file.toURL();
+                                return file.toURI().toURL();
                             }
                         }
                 );
diff --git a/modules/metadata/src/org/apache/axis2/jaxws/util/BaseWSDLLocator.java b/modules/metadata/src/org/apache/axis2/jaxws/util/BaseWSDLLocator.java
index 69f98d9..1521961 100644
--- a/modules/metadata/src/org/apache/axis2/jaxws/util/BaseWSDLLocator.java
+++ b/modules/metadata/src/org/apache/axis2/jaxws/util/BaseWSDLLocator.java
@@ -126,7 +126,7 @@
                 if(is == null){
                     try{
                         File file = new File(relativeLocation);
-                        absoluteURL = file.toURL();
+                        absoluteURL = file.toURI().toURL();
                         is = absoluteURL.openStream();  
                         lastestImportURI = absoluteURL.toExternalForm();
                     }
diff --git a/modules/metadata/src/org/apache/axis2/jaxws/util/CatalogWSDLLocator.java b/modules/metadata/src/org/apache/axis2/jaxws/util/CatalogWSDLLocator.java
index 513255c..d6eb84b 100644
--- a/modules/metadata/src/org/apache/axis2/jaxws/util/CatalogWSDLLocator.java
+++ b/modules/metadata/src/org/apache/axis2/jaxws/util/CatalogWSDLLocator.java
@@ -117,7 +117,7 @@
         if (is == null) {
             try {
                 File file = new File(importPath);
-                is = file.toURL().openStream();
+                is = file.toURI().toURL().openStream();
             }
             catch (Throwable t) {
                 // No FFDC required
@@ -180,7 +180,7 @@
         if (is == null) {
             try {
                 File file = new File(wsdlLocation);
-                streamURL = file.toURL();
+                streamURL = file.toURI().toURL();
                 is = streamURL.openStream();
                 is.close();
             }
diff --git a/modules/metadata/src/org/apache/axis2/jaxws/util/ModuleWSDLLocator.java b/modules/metadata/src/org/apache/axis2/jaxws/util/ModuleWSDLLocator.java
index da40dcd..7aa26d7 100644
--- a/modules/metadata/src/org/apache/axis2/jaxws/util/ModuleWSDLLocator.java
+++ b/modules/metadata/src/org/apache/axis2/jaxws/util/ModuleWSDLLocator.java
@@ -99,7 +99,7 @@
         if (is == null) {
             try {
                 File file = new File(importPath);
-                is = file.toURL().openStream();
+                is = file.toURI().toURL().openStream();
             }
             catch (Throwable t) {
                 // No FFDC required
@@ -156,7 +156,7 @@
         if (is == null) {
             try {
                 File file = new File(wsdlLocation);
-                streamURL = file.toURL();
+                streamURL = file.toURI().toURL();
                 is = streamURL.openStream();
                 is.close();
             }
diff --git a/modules/metadata/src/org/apache/axis2/jaxws/util/SoapUtils.java b/modules/metadata/src/org/apache/axis2/jaxws/util/SoapUtils.java
index 6285d4a..bef16ff 100644
--- a/modules/metadata/src/org/apache/axis2/jaxws/util/SoapUtils.java
+++ b/modules/metadata/src/org/apache/axis2/jaxws/util/SoapUtils.java
@@ -21,23 +21,15 @@
 
 import org.apache.axiom.om.OMAbstractFactory;
 import org.apache.axiom.om.OMElement;
-import org.apache.axiom.om.impl.builder.StAXOMBuilder;
+import org.apache.axiom.om.OMXMLBuilderFactory;
 import org.apache.axiom.soap.SOAPEnvelope;
 import org.apache.axiom.soap.SOAPFactory;
 
-import javax.xml.stream.XMLStreamReader;
-
 public class SoapUtils {
 
 
     public static OMElement getOMElement(SOAPEnvelope response) {
-        XMLStreamReader parser = response.getXMLStreamReader();
-
-        StAXOMBuilder builder =
-                new StAXOMBuilder(OMAbstractFactory.getOMFactory(), parser);
-
-        return builder.getDocumentElement();
-
+        return OMXMLBuilderFactory.createStAXOMBuilder(response.getXMLStreamReader()).getDocumentElement();
     }
 
     public static SOAPFactory getSoapFactory(String soapVersionURI) {
diff --git a/modules/metadata/src/org/apache/axis2/jaxws/util/WSDL4JWrapper.java b/modules/metadata/src/org/apache/axis2/jaxws/util/WSDL4JWrapper.java
index 30887ab..24b9cf2 100644
--- a/modules/metadata/src/org/apache/axis2/jaxws/util/WSDL4JWrapper.java
+++ b/modules/metadata/src/org/apache/axis2/jaxws/util/WSDL4JWrapper.java
@@ -32,6 +32,7 @@
 import org.apache.axis2.metadata.factory.ResourceFinderFactory;
 import org.apache.axis2.metadata.registry.MetadataFactoryRegistry;
 import org.apache.axis2.metadata.resource.ResourceFinder;
+import org.apache.axis2.wsdl.WSDLUtil;
 import org.apache.axis2.wsdl.util.WSDLDefinitionWrapper;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
@@ -44,7 +45,6 @@
 import javax.wsdl.WSDLException;
 import javax.wsdl.extensions.ExtensibilityElement;
 import javax.wsdl.extensions.soap.SOAPOperation;
-import javax.wsdl.factory.WSDLFactory;
 import javax.wsdl.xml.WSDLReader;
 import javax.xml.namespace.QName;
 import java.io.File;
@@ -464,8 +464,7 @@
             reader = (WSDLReader)AccessController.doPrivileged(
                     new PrivilegedExceptionAction() {
                         public Object run() throws WSDLException {
-                            WSDLFactory factory = WSDLFactory.newInstance();
-                            return factory.newWSDLReader();
+                        	return WSDLUtil.newWSDLReaderWithPopulatedExtensionRegistry();
                         }
                     });
         } catch (PrivilegedActionException e) {
diff --git a/modules/metadata/src/org/apache/axis2/jaxws/wsdl/WSDLReaderConfiguratorImpl.java b/modules/metadata/src/org/apache/axis2/jaxws/wsdl/WSDLReaderConfiguratorImpl.java
index bc6ef05..a6cc08f 100644
--- a/modules/metadata/src/org/apache/axis2/jaxws/wsdl/WSDLReaderConfiguratorImpl.java
+++ b/modules/metadata/src/org/apache/axis2/jaxws/wsdl/WSDLReaderConfiguratorImpl.java
@@ -17,14 +17,18 @@
  * under the License.

  */

 

-package org.apache.axis2.jaxws.wsdl;

-

-import javax.wsdl.WSDLException;

-import javax.wsdl.xml.WSDLReader;

-

-/**

- * An instance of this class will be registered with the MetadataFactoryRegistry

- * and will be retrieved when a WSDLReader instance is created. This implementation

+package org.apache.axis2.jaxws.wsdl;
+
+import javax.wsdl.WSDLException;
+import javax.wsdl.extensions.ExtensionRegistry;
+import javax.wsdl.factory.WSDLFactory;
+import javax.wsdl.xml.WSDLReader;
+
+import org.apache.axis2.wsdl.WSDLUtil;
+
+/**
+ * An instance of this class will be registered with the MetadataFactoryRegistry
+ * and will be retrieved when a WSDLReader instance is created. This implementation
  * will be able to configure the instance as needed.

  *

  */

@@ -35,9 +39,18 @@
 	 */

 	public void configureReaderInstance(WSDLReader reader) throws WSDLException 

 	{

-		// prevent the WSDLReader instance from using the System.out

-		// stream for messages and logging

-		reader.setFeature(com.ibm.wsdl.Constants.FEATURE_VERBOSE, false);

-	}

-

-}

+		// prevent the WSDLReader instance from using the System.out
+		// stream for messages and logging
+		reader.setFeature(com.ibm.wsdl.Constants.FEATURE_VERBOSE, false);
+		
+		WSDLFactory factory = WSDLFactory.newInstance();
+		ExtensionRegistry extRegistry = reader.getExtensionRegistry();
+		if (extRegistry == null) {
+			extRegistry = factory.newPopulatedExtensionRegistry();
+		}
+		
+		WSDLUtil.registerDefaultExtensionAttributeTypes(extRegistry);
+		reader.setExtensionRegistry(extRegistry);
+	}
+
+}
diff --git a/modules/metadata/src/org/apache/axis2/metadata/registry/MetadataFactoryRegistry.java b/modules/metadata/src/org/apache/axis2/metadata/registry/MetadataFactoryRegistry.java
index a4a5588..e274469 100644
--- a/modules/metadata/src/org/apache/axis2/metadata/registry/MetadataFactoryRegistry.java
+++ b/modules/metadata/src/org/apache/axis2/metadata/registry/MetadataFactoryRegistry.java
@@ -99,7 +99,7 @@
                 url = classLoader.getResource(configurationFileLoc);
                 if(url == null) {
                     File file = new File(configurationFileLoc);
-                    url = file.toURL();
+                    url = file.toURI().toURL();
                 }
                 // the presence of this file is optional
                 if(url != null) {
diff --git a/modules/metadata/test-resources/log4j.properties b/modules/metadata/test-resources/log4j.properties
index bb56812..9808688 100644
--- a/modules/metadata/test-resources/log4j.properties
+++ b/modules/metadata/test-resources/log4j.properties
@@ -25,7 +25,6 @@
 

 # Set the enterprise logger priority to FATAL

 log4j.logger.org.apache.axis2.enterprise=FATAL

-log4j.logger.de.hunsicker.jalopy.io=FATAL

 log4j.logger.httpclient.wire.header=FATAL

 log4j.logger.org.apache.commons.httpclient=FATAL

 

diff --git a/modules/metadata/test/org/apache/axis2/jaxws/description/DescriptionTestUtils.java b/modules/metadata/test/org/apache/axis2/jaxws/description/DescriptionTestUtils.java
index cd771e5..d5ff087 100644
--- a/modules/metadata/test/org/apache/axis2/jaxws/description/DescriptionTestUtils.java
+++ b/modules/metadata/test/org/apache/axis2/jaxws/description/DescriptionTestUtils.java
@@ -21,9 +21,9 @@
 package org.apache.axis2.jaxws.description;
 
 import org.apache.axis2.jaxws.description.builder.DescriptionBuilderComposite;
+import org.apache.axis2.wsdl.WSDLUtil;
 
 import javax.wsdl.Definition;
-import javax.wsdl.factory.WSDLFactory;
 import javax.wsdl.xml.WSDLReader;
 import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
@@ -57,7 +57,7 @@
         String urlString = getWSDLLocation(wsdlFileName);
         // Get the URL to the WSDL file.  Note that 'basedir' is setup by Maven
         try {
-            wsdlURL = new File(urlString).getAbsoluteFile().toURL();
+            wsdlURL = new File(urlString).getAbsoluteFile().toURI().toURL();
         } catch (Exception e) {
             System.out.println("Caught exception creating WSDL URL :" + urlString +
                     "; exception: " + e.toString());
@@ -68,8 +68,7 @@
     static public Definition createWSDLDefinition(URL wsdlURL) {
         Definition wsdlDefinition = null;
         try {
-            WSDLFactory factory = WSDLFactory.newInstance();
-            WSDLReader reader = factory.newWSDLReader();
+        	WSDLReader reader = WSDLUtil.newWSDLReaderWithPopulatedExtensionRegistry();
             wsdlDefinition = reader.readWSDL(wsdlURL.toString());
             wsdlDefinition.setDocumentBaseURI(wsdlURL.toString());
         }
diff --git a/modules/metadata/test/org/apache/axis2/jaxws/description/impl/ClientDBCSupportEndpointTests.java b/modules/metadata/test/org/apache/axis2/jaxws/description/impl/ClientDBCSupportEndpointTests.java
index 4d1085f..e4944d2 100644
--- a/modules/metadata/test/org/apache/axis2/jaxws/description/impl/ClientDBCSupportEndpointTests.java
+++ b/modules/metadata/test/org/apache/axis2/jaxws/description/impl/ClientDBCSupportEndpointTests.java
@@ -277,7 +277,7 @@
                 fail("Exception creating File(WSDL): " + e.toString());

             }

             File file = new File(wsdlLocation);

-            url = file.toURL();

+            url = file.toURI().toURL();

         } catch (MalformedURLException e) {

             e.printStackTrace();

             fail("Exception converting WSDL file to URL: " + e.toString());

diff --git a/modules/metadata/test/org/apache/axis2/jaxws/description/impl/ClientDBCSupportHandlersTests.java b/modules/metadata/test/org/apache/axis2/jaxws/description/impl/ClientDBCSupportHandlersTests.java
index e1f652b..22ed66d 100644
--- a/modules/metadata/test/org/apache/axis2/jaxws/description/impl/ClientDBCSupportHandlersTests.java
+++ b/modules/metadata/test/org/apache/axis2/jaxws/description/impl/ClientDBCSupportHandlersTests.java
@@ -121,7 +121,7 @@
             String sep = "/";

             configLoc = sep + "test-resources" + sep + "test-handler.xml";

             String baseDir = new File(System.getProperty("basedir",".")).getCanonicalPath();

-            is = new File(baseDir + configLoc).toURL().openStream();

+            is = new File(baseDir + configLoc).toURI().toURL().openStream();

         }

         catch(Exception e) {

             e.printStackTrace();

diff --git a/modules/metadata/test/org/apache/axis2/jaxws/description/impl/DescriptionFactoryImplTests.java b/modules/metadata/test/org/apache/axis2/jaxws/description/impl/DescriptionFactoryImplTests.java
index 95b3764..1e7cc6f 100644
--- a/modules/metadata/test/org/apache/axis2/jaxws/description/impl/DescriptionFactoryImplTests.java
+++ b/modules/metadata/test/org/apache/axis2/jaxws/description/impl/DescriptionFactoryImplTests.java
@@ -247,7 +247,7 @@
             String sep = "/";
             configLoc = sep + "test-resources" + sep + "test-handler.xml";
             String baseDir = new File(System.getProperty("basedir",".")).getCanonicalPath();
-            is = new File(baseDir + configLoc).toURL().openStream();
+            is = new File(baseDir + configLoc).toURI().toURL().openStream();
         }
         catch(Exception e) {
             e.printStackTrace();
diff --git a/modules/metadata/test/org/apache/axis2/jaxws/description/impl/ParameterDescriptionImplTests.java b/modules/metadata/test/org/apache/axis2/jaxws/description/impl/ParameterDescriptionImplTests.java
index 99cde0a..6ee2c84 100644
--- a/modules/metadata/test/org/apache/axis2/jaxws/description/impl/ParameterDescriptionImplTests.java
+++ b/modules/metadata/test/org/apache/axis2/jaxws/description/impl/ParameterDescriptionImplTests.java
@@ -28,9 +28,8 @@
 
 public class ParameterDescriptionImplTests extends TestCase {
 
-    public void test1() {
-        Method[] methods = TestInterface.class.getMethods();
-        Method method1 = methods[0];
+    public void test1() throws Exception {
+        Method method1 = TestInterface.class.getMethod("method1", Holder.class);
         ParameterDescription pdc1 = new ParameterDescriptionImpl(0, method1.getParameterTypes()[0],
                                                                  method1.getGenericParameterTypes()[0],
                                                                  method1.getAnnotations(), null);
@@ -39,9 +38,8 @@
 
     }
 
-    public void test2() {
-        Method[] methods = TestInterface.class.getMethods();
-        Method method2 = methods[1];
+    public void test2() throws Exception {
+        Method method2 = TestInterface.class.getMethod("method2", Holder.class);
         ParameterDescription pdc2 = new ParameterDescriptionImpl(0, method2.getParameterTypes()[0],
                                                                  method2.getGenericParameterTypes()[0],
                                                                  method2.getAnnotations(), null);
@@ -52,9 +50,8 @@
         }
     }
 
-    public void test3() {
-        Method[] methods = TestInterface.class.getMethods();
-        Method method3 = methods[2];
+    public void test3() throws Exception {
+        Method method3 = TestInterface.class.getMethod("method3", Holder.class);
         ParameterDescription pdc3 = new ParameterDescriptionImpl(0, method3.getParameterTypes()[0],
                                                                  method3.getGenericParameterTypes()[0],
                                                                  method3.getAnnotations(), null);
@@ -62,9 +59,8 @@
         assertEquals(List[].class, pdc3.getParameterActualType());
     }
 
-    public void test4() {
-        Method[] methods = TestInterface.class.getMethods();
-        Method method4 = methods[3];
+    public void test4() throws Exception {
+        Method method4 = TestInterface.class.getMethod("method4", String[].class);
         ParameterDescription pdc4 = new ParameterDescriptionImpl(0, method4.getParameterTypes()[0],
                                                                  method4.getGenericParameterTypes()[0],
                                                                  method4.getAnnotations(), null);
@@ -72,9 +68,8 @@
         assertEquals(String[].class, pdc4.getParameterActualType());
     }
 
-    public void test5() {
-        Method[] methods = TestInterface.class.getMethods();
-        Method method5 = methods[4];
+    public void test5() throws Exception {
+        Method method5 = TestInterface.class.getMethod("method5", List[].class);
         ParameterDescription pdc = new ParameterDescriptionImpl(0, method5.getParameterTypes()[0],
                                                                 method5.getGenericParameterTypes()[0],
                                                                 method5.getAnnotations(), null);
diff --git a/modules/metadata/test/org/apache/axis2/metadata/registry/MetadataFactoryRegistryTests.java b/modules/metadata/test/org/apache/axis2/metadata/registry/MetadataFactoryRegistryTests.java
index 2c0b19f..aa5c041 100644
--- a/modules/metadata/test/org/apache/axis2/metadata/registry/MetadataFactoryRegistryTests.java
+++ b/modules/metadata/test/org/apache/axis2/metadata/registry/MetadataFactoryRegistryTests.java
@@ -18,14 +18,14 @@
  */

 

 package org.apache.axis2.metadata.registry;

-

-import junit.framework.TestCase;

-import org.apache.axis2.jaxws.wsdl.WSDLReaderConfigurator;

-

-import javax.wsdl.factory.WSDLFactory;

-import javax.wsdl.xml.WSDLReader;

-import java.io.File;

-

+
+import junit.framework.TestCase;
+import org.apache.axis2.jaxws.wsdl.WSDLReaderConfigurator;
+import org.apache.axis2.wsdl.WSDLUtil;
+
+import javax.wsdl.xml.WSDLReader;
+import java.io.File;
+
 

 public class MetadataFactoryRegistryTests extends TestCase {

     

@@ -50,14 +50,13 @@
     }

     

     public void testRegisterWSDLReaderConfigurator() {

-    	Exception e = null;

-    	WSDLReader reader = null;

-    	try {

-    		WSDLFactory factory = WSDLFactory.newInstance();

-        	reader = factory.newWSDLReader();

-    	}

-    	catch(Exception e2) {

-    		e.printStackTrace();

+    	Exception e = null;
+    	WSDLReader reader = null;
+    	try {
+    		reader = WSDLUtil.newWSDLReaderWithPopulatedExtensionRegistry();
+    	}
+    	catch(Exception e2) {
+    		e.printStackTrace();
     		e = e2;

     	}

     	assertNull(e);

diff --git a/modules/mex/pom.xml b/modules/mex/pom.xml
index fc2f8ef..526da5b 100644
--- a/modules/mex/pom.xml
+++ b/modules/mex/pom.xml
@@ -23,9 +23,9 @@
     <modelVersion>4.0.0</modelVersion>
     <parent>
         <groupId>org.apache.axis2</groupId>
-        <artifactId>axis2-parent</artifactId>
-        <version>1.7.0-SNAPSHOT</version>
-        <relativePath>../parent/pom.xml</relativePath>
+        <artifactId>axis2</artifactId>
+        <version>1.8.0-SNAPSHOT</version>
+        <relativePath>../../pom.xml</relativePath>
     </parent>
     <artifactId>mex</artifactId>
     <packaging>mar</packaging>
diff --git a/modules/mex/src/org/apache/axis2/mex/om/Metadata.java b/modules/mex/src/org/apache/axis2/mex/om/Metadata.java
index d539142..7b777e9 100644
--- a/modules/mex/src/org/apache/axis2/mex/om/Metadata.java
+++ b/modules/mex/src/org/apache/axis2/mex/om/Metadata.java
@@ -166,13 +166,13 @@
 	  if (aFactory == null) {
 	     aFactory = factory;
 	   }
-	   Iterator mexSections = mexElement.getChildrenWithName(new QName(namespaceValue, MexConstants.SPEC.METADATA_SECTION));
+	   Iterator<OMElement> mexSections = mexElement.getChildrenWithName(new QName(namespaceValue, MexConstants.SPEC.METADATA_SECTION));
         
            if (mexSections == null){
          	throw new MexOMException("Metadata element does not contain MetadataSection element.");
          }
         while (mexSections.hasNext()){
-        	OMElement aSection = (OMElement) mexSections.next();
+        	OMElement aSection = mexSections.next();
             MetadataSection metadataSection = new MetadataSection(aFactory, namespaceValue);
             addMetadatSection(metadataSection.fromOM(aSection)); 
         }
diff --git a/modules/mex/src/org/apache/axis2/mex/util/MexUtil.java b/modules/mex/src/org/apache/axis2/mex/util/MexUtil.java
index 624a89c..c5f9d6b 100644
--- a/modules/mex/src/org/apache/axis2/mex/util/MexUtil.java
+++ b/modules/mex/src/org/apache/axis2/mex/util/MexUtil.java
@@ -241,12 +241,12 @@
 			return forms;
 		
 		OMElement mexConfig = mexParm.getParameterElement();
-		Iterator ite = mexConfig.getChildrenWithName(new QName(
+		Iterator<OMElement> ite = mexConfig.getChildrenWithName(new QName(
 				MexConstants.MEX_CONFIG.OUTPUT_FORM_PARM));
 		String dialectForm_configured = null;
 		String serviceForm_configured = null;
 		while (ite.hasNext()) {
-			OMElement elem = (OMElement) ite.next();
+			OMElement elem = ite.next();
 			String form_value = elem.getAttributeValue(new QName(
 					MexConstants.MEX_CONFIG.FORMS_PARM));
 			String dialect_value = elem.getAttributeValue(new QName(
diff --git a/modules/mtompolicy-mar/pom.xml b/modules/mtompolicy-mar/pom.xml
index 8e0cca9..ae02e86 100644
--- a/modules/mtompolicy-mar/pom.xml
+++ b/modules/mtompolicy-mar/pom.xml
@@ -23,9 +23,9 @@
     <modelVersion>4.0.0</modelVersion>
     <parent>
         <groupId>org.apache.axis2</groupId>
-        <artifactId>axis2-parent</artifactId>
-        <version>1.7.0-SNAPSHOT</version>
-        <relativePath>../parent/pom.xml</relativePath>
+        <artifactId>axis2</artifactId>
+        <version>1.8.0-SNAPSHOT</version>
+        <relativePath>../../pom.xml</relativePath>
     </parent>
     <artifactId>mtompolicy</artifactId>
     <name>Apache Axis2 - MTOM Policy module</name>
diff --git a/modules/mtompolicy/pom.xml b/modules/mtompolicy/pom.xml
index bd184d3..f2cf3b9 100644
--- a/modules/mtompolicy/pom.xml
+++ b/modules/mtompolicy/pom.xml
@@ -23,9 +23,9 @@
     <modelVersion>4.0.0</modelVersion>
     <parent>
         <groupId>org.apache.axis2</groupId>
-        <artifactId>axis2-parent</artifactId>
-        <version>1.7.0-SNAPSHOT</version>
-        <relativePath>../parent/pom.xml</relativePath>
+        <artifactId>axis2</artifactId>
+        <version>1.8.0-SNAPSHOT</version>
+        <relativePath>../../pom.xml</relativePath>
     </parent>
     <artifactId>axis2-mtompolicy</artifactId>
     <name>Apache Axis2 - MTOM Policy</name>
diff --git a/modules/mtompolicy/test/org/apache/axis2/policy/model/MTOMAssertionTest.java b/modules/mtompolicy/test/org/apache/axis2/policy/model/MTOMAssertionTest.java
index 220879f..2111e96 100644
--- a/modules/mtompolicy/test/org/apache/axis2/policy/model/MTOMAssertionTest.java
+++ b/modules/mtompolicy/test/org/apache/axis2/policy/model/MTOMAssertionTest.java
@@ -21,11 +21,13 @@
 
 import junit.framework.TestCase;
 import org.apache.axiom.om.OMElement;
-import org.apache.axiom.om.impl.builder.StAXOMBuilder;
+import org.apache.axiom.om.OMXMLBuilderFactory;
+import org.apache.axiom.om.OMXMLParserWrapper;
 import org.apache.neethi.Assertion;
 import org.apache.neethi.Policy;
 import org.apache.neethi.PolicyEngine;
 
+import java.io.FileInputStream;
 import java.util.Iterator;
 import java.util.List;
 
@@ -152,7 +154,8 @@
     
 
     private Policy getPolicy(String filePath) throws Exception {
-        StAXOMBuilder builder = new StAXOMBuilder(filePath);
+        OMXMLParserWrapper builder = OMXMLBuilderFactory.createOMBuilder(
+                new FileInputStream(filePath));
         OMElement elem = builder.getDocumentElement();
         return PolicyEngine.getPolicy(elem);
     }
diff --git a/modules/osgi-tests/pom.xml b/modules/osgi-tests/pom.xml
new file mode 100644
index 0000000..9cc7e53
--- /dev/null
+++ b/modules/osgi-tests/pom.xml
@@ -0,0 +1,160 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  ~ Licensed to the Apache Software Foundation (ASF) under one
+  ~ or more contributor license agreements. See the NOTICE file
+  ~ distributed with this work for additional information
+  ~ regarding copyright ownership. The ASF licenses this file
+  ~ to you under the Apache License, Version 2.0 (the
+  ~ "License"); you may not use this file except in compliance
+  ~ with the License. You may obtain a copy of the License at
+  ~
+  ~ http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing,
+  ~ software distributed under the License is distributed on an
+  ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  ~ KIND, either express or implied. See the License for the
+  ~ specific language governing permissions and limitations
+  ~ under the License.
+  -->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+    <parent>
+        <groupId>org.apache.axis2</groupId>
+        <artifactId>axis2</artifactId>
+        <version>1.8.0-SNAPSHOT</version>
+        <relativePath>../../pom.xml</relativePath>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+    <artifactId>osgi-tests</artifactId>
+    <name>Apache Axis2 - OSGi Tests</name>
+    <url>http://axis.apache.org/axis2/java/core/</url>
+    <scm>
+        <connection>scm:svn:http://svn.apache.org/repos/asf/axis/axis2/java/core/trunk/modules/osgi-tests</connection>
+        <developerConnection>scm:svn:https://svn.apache.org/repos/asf/axis/axis2/java/core/trunk/modules/osgi-tests</developerConnection>
+        <url>http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/osgi-tests</url>
+    </scm>
+    <properties>
+        <exam.version>3.4.0</exam.version>
+    </properties>
+    <dependencies>
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>org.apache.axis2.osgi</artifactId>
+            <version>${project.version}</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>com.sun.mail</groupId>
+            <artifactId>javax.mail</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>commons-fileupload</groupId>
+            <artifactId>commons-fileupload</artifactId>
+            <scope>test</scope>
+        </dependency>
+        
+        <dependency>
+            <groupId>org.apache.felix</groupId>
+            <artifactId>org.apache.felix.framework</artifactId>
+            <version>5.0.0</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.ops4j.pax.exam</groupId>
+            <artifactId>pax-exam-container-native</artifactId>
+            <version>${exam.version}</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.ops4j.pax.exam</groupId>
+            <artifactId>pax-exam-link-assembly</artifactId>
+            <version>${exam.version}</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>axis2-testutils</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+    </dependencies>
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>com.github.veithen.alta</groupId>
+                <artifactId>alta-maven-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>generate-test-resources</goal>
+                        </goals>
+                        <configuration>
+                            <name>%bundle.symbolicName%.link</name>
+                            <value>%url%</value>
+                            <dependencySet>
+                                <scope>test</scope>
+                            </dependencySet>
+                            <artifacts>
+                                <artifact>
+                                    <groupId>org.apache.felix</groupId>
+                                    <artifactId>org.apache.felix.http.jetty</artifactId>
+                                    <version>2.2.2</version>
+                                </artifact>
+                                <artifact>
+                                    <groupId>org.apache.felix</groupId>
+                                    <artifactId>org.apache.felix.http.whiteboard</artifactId>
+                                    <version>2.2.2</version>
+                                </artifact>
+                                <artifact>
+                                    <groupId>org.apache.felix</groupId>
+                                    <artifactId>org.apache.felix.configadmin</artifactId>
+                                    <version>1.8.0</version>
+                                </artifact>
+                                <artifact>
+                                    <groupId>org.apache.servicemix.bundles</groupId>
+                                    <artifactId>org.apache.servicemix.bundles.wsdl4j</artifactId>
+                                    <version>1.6.2_6</version>
+                                </artifact>
+                                <artifact>
+                                    <groupId>org.apache.geronimo.specs</groupId>
+                                    <artifactId>geronimo-servlet_2.5_spec</artifactId>
+                                    <version>1.2</version>
+                                </artifact>
+                                <artifact>
+                                    <groupId>org.apache.servicemix.bundles</groupId>
+                                    <artifactId>org.apache.servicemix.bundles.commons-httpclient</artifactId>
+                                    <version>3.1_7</version>
+                                </artifact>
+                                <artifact>
+                                    <groupId>org.apache.servicemix.bundles</groupId>
+                                    <artifactId>org.apache.servicemix.bundles.commons-codec</artifactId>
+                                    <version>1.3_5</version>
+                                </artifact>
+                                <artifact>
+                                    <groupId>org.apache.httpcomponents</groupId>
+                                    <artifactId>httpcore-osgi</artifactId>
+                                </artifact>
+                                <artifact>
+                                    <groupId>org.apache.httpcomponents</groupId>
+                                    <artifactId>httpclient-osgi</artifactId>
+                                </artifact>
+                            </artifacts>
+                            <paxExam>${exam.version}</paxExam>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+            <plugin>
+                <artifactId>maven-deploy-plugin</artifactId>
+                <configuration>
+                    <skip>true</skip>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+</project>
diff --git a/modules/osgi-tests/src/test/java/OSGiTest.java b/modules/osgi-tests/src/test/java/OSGiTest.java
new file mode 100644
index 0000000..0779006
--- /dev/null
+++ b/modules/osgi-tests/src/test/java/OSGiTest.java
@@ -0,0 +1,175 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+import static org.junit.Assert.assertEquals;
+import static org.ops4j.pax.exam.CoreOptions.frameworkProperty;
+import static org.ops4j.pax.exam.CoreOptions.options;
+import static org.ops4j.pax.exam.CoreOptions.provision;
+import static org.ops4j.pax.exam.CoreOptions.url;
+import static org.ops4j.pax.tinybundles.core.TinyBundles.bundle;
+
+import java.util.concurrent.CountDownLatch;
+
+import org.apache.axiom.om.OMAbstractFactory;
+import org.apache.axiom.om.OMElement;
+import org.apache.axiom.om.OMFactory;
+import org.apache.axis2.addressing.EndpointReference;
+import org.apache.axis2.client.Options;
+import org.apache.axis2.client.ServiceClient;
+import org.apache.axis2.osgi.module.Handler1;
+import org.apache.axis2.osgi.module.Handler2;
+import org.apache.axis2.osgi.module.SimpleModule;
+import org.apache.axis2.osgi.service.Activator;
+import org.apache.axis2.osgi.service.Calculator;
+import org.apache.axis2.osgi.service.Version;
+import org.apache.axis2.testutils.PortAllocator;
+import org.apache.felix.framework.FrameworkFactory;
+import org.junit.Test;
+import org.ops4j.pax.exam.ExamSystem;
+import org.ops4j.pax.exam.nat.internal.NativeTestContainer;
+import org.ops4j.pax.exam.spi.DefaultExamSystem;
+import org.osgi.framework.Bundle;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.BundleEvent;
+import org.osgi.framework.BundleListener;
+import org.osgi.framework.Constants;
+import org.osgi.framework.FrameworkEvent;
+import org.osgi.framework.FrameworkListener;
+
+public class OSGiTest {
+    @Test
+    public void test() throws Throwable {
+        int httpPort = PortAllocator.allocatePort();
+        ExamSystem system = DefaultExamSystem.create(options(
+                url("link:classpath:META-INF/links/org.ops4j.pax.logging.api.link"),
+                url("link:classpath:META-INF/links/org.osgi.compendium.link"),
+                url("link:classpath:org.apache.felix.configadmin.link"),
+                url("link:classpath:org.apache.servicemix.bundles.wsdl4j.link"),
+                url("link:classpath:org.apache.geronimo.specs.geronimo-ws-metadata_2.0_spec.link"),
+                url("link:classpath:com.sun.mail.javax.mail.link"), // TODO: should no longer be necessary
+                url("link:classpath:org.apache.geronimo.specs.geronimo-servlet_2.5_spec.link"),
+                url("link:classpath:org.apache.james.apache-mime4j-core.link"),
+                url("link:classpath:org.apache.ws.commons.axiom.axiom-api.link"),
+                url("link:classpath:org.apache.ws.commons.axiom.axiom-impl.link"),
+                url("link:classpath:org.apache.commons.fileupload.link"),
+                url("link:classpath:org.apache.commons.io.link"),
+                url("link:classpath:org.apache.servicemix.bundles.commons-httpclient.link"), // TODO: still necessary???
+                url("link:classpath:org.apache.servicemix.bundles.commons-codec.link"), // TODO: still necessary???
+                url("link:classpath:org.apache.httpcomponents.httpcore.link"),
+                url("link:classpath:org.apache.httpcomponents.httpclient.link"),
+                url("link:classpath:org.apache.neethi.link"),
+                url("link:classpath:org.apache.woden.core.link"),
+                url("link:classpath:org.apache.ws.xmlschema.core.link"),
+                url("link:classpath:org.apache.felix.http.jetty.link"),
+                url("link:classpath:org.apache.felix.http.whiteboard.link"),
+                url("link:classpath:org.apache.axis2.osgi.link"),
+                provision(bundle()
+                    .add(Handler1.class)
+                    .add(Handler2.class)
+                    .add(SimpleModule.class)
+                    .add("META-INF/module.xml", OSGiTest.class.getResource("/META-INF/module.xml"))
+                    .set(Constants.BUNDLE_SYMBOLICNAME, "simple.module")
+                    .set(Constants.DYNAMICIMPORT_PACKAGE, "*")
+                    .build()),
+                provision(bundle()
+                    .add(Activator.class)
+                    .add(Calculator.class)
+                    .add(Version.class)
+                    .add("META-INF/services.xml", OSGiTest.class.getResource("/META-INF/services.xml"))
+                    .set(Constants.BUNDLE_SYMBOLICNAME, "version.service")
+                    .set(Constants.BUNDLE_ACTIVATOR, Activator.class.getName())
+                    .set(Constants.DYNAMICIMPORT_PACKAGE, "*")
+                    .build()),
+                frameworkProperty("org.osgi.service.http.port").value(String.valueOf(httpPort))));
+        NativeTestContainer container = new NativeTestContainer(system, new FrameworkFactory());
+        container.start();
+        try {
+            OMFactory factory = OMAbstractFactory.getOMFactory();
+            OMElement payload = factory.createOMElement("getVersion", factory.createOMNamespace("http://service.osgi.axis2.apache.org", "ns"));
+            Options options = new Options();
+            options.setTo(new EndpointReference("http://localhost:" + httpPort + "/services/Version"));
+            ServiceClient serviceClient = new ServiceClient();
+            serviceClient.setOptions(options);
+            OMElement result = serviceClient.sendReceive(payload);
+            assertEquals("getVersionResponse", result.getLocalName());
+            // Stop the Axis2 bundle explicitly here so that we can test that it cleanly shuts down (see AXIS2-5646)
+            stopBundle(getAxis2Bundle(container));
+        } finally {
+            container.stop();
+        }
+    }
+    
+    private static Bundle getAxis2Bundle(NativeTestContainer container) {
+        for (Bundle bundle : container.getSystemBundle().getBundleContext().getBundles()) {
+            if (bundle.getSymbolicName().equals("org.apache.axis2.osgi")) {
+                return bundle;
+            }
+        }
+        throw new Error("Axis2 bundle not found");
+    }
+
+    static class Listener implements FrameworkListener, BundleListener {
+        private final Bundle bundle;
+        private final CountDownLatch latch = new CountDownLatch(1);
+        private Throwable throwable;
+        
+        Listener(Bundle bundle) {
+            this.bundle = bundle;
+        }
+
+        public void frameworkEvent(FrameworkEvent event) {
+            if (event.getType() == FrameworkEvent.ERROR && event.getSource() == bundle && throwable == null) {
+                throwable = event.getThrowable();
+            }
+        }
+
+        public void bundleChanged(BundleEvent event) {
+            if (event.getType() == BundleEvent.STOPPED && event.getSource() == bundle) {
+                latch.countDown();
+            }
+        }
+        
+        void check() throws Throwable {
+            latch.await();
+            if (throwable != null) {
+                throw throwable;
+            }
+        }
+    }
+    
+    /**
+     * Stop the given bundle and throw any exception triggered during the stop operation.
+     */
+    private static void stopBundle(Bundle bundle) throws Throwable {
+        // The listener must be registered on the system bundle; registering it on the bundle
+        // passed as parameter won't work because a stopping bundle can't receive asynchronous events.
+        BundleContext systemBundleContext = bundle.getBundleContext().getBundle(0).getBundleContext();
+        Listener listener = new Listener(bundle);
+        // Need a framework listener to intercept errors that would otherwise end up only being logged
+        systemBundleContext.addFrameworkListener(listener);
+        systemBundleContext.addBundleListener(listener);
+        try {
+            // Note: the stop method may also throw exceptions
+            bundle.stop();
+            listener.check();
+        } finally {
+            systemBundleContext.removeFrameworkListener(listener);
+            systemBundleContext.removeBundleListener(listener);
+        }
+    }
+}
diff --git a/modules/osgi-tests/src/test/java/org/apache/axis2/osgi/module/Handler1.java b/modules/osgi-tests/src/test/java/org/apache/axis2/osgi/module/Handler1.java
new file mode 100644
index 0000000..c712770
--- /dev/null
+++ b/modules/osgi-tests/src/test/java/org/apache/axis2/osgi/module/Handler1.java
@@ -0,0 +1,31 @@
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.axis2.osgi.module;
+
+import org.apache.axis2.AxisFault;
+import org.apache.axis2.context.MessageContext;
+import org.apache.axis2.handlers.AbstractHandler;
+
+/**
+ *
+ */
+public class Handler1 extends AbstractHandler {
+
+    public InvocationResponse invoke(MessageContext messageContext) throws AxisFault {
+        System.out.println("Handler1 invoked");
+        return InvocationResponse.CONTINUE;
+    }
+}
diff --git a/modules/osgi-tests/src/test/java/org/apache/axis2/osgi/module/Handler2.java b/modules/osgi-tests/src/test/java/org/apache/axis2/osgi/module/Handler2.java
new file mode 100644
index 0000000..8e3b397
--- /dev/null
+++ b/modules/osgi-tests/src/test/java/org/apache/axis2/osgi/module/Handler2.java
@@ -0,0 +1,31 @@
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.axis2.osgi.module;
+
+import org.apache.axis2.AxisFault;
+import org.apache.axis2.context.MessageContext;
+import org.apache.axis2.handlers.AbstractHandler;
+
+/*
+* 
+*/
+public class Handler2 extends AbstractHandler{
+
+    public InvocationResponse invoke(MessageContext messageContext) throws AxisFault {
+        System.out.println("Handler2 invoked");
+        return InvocationResponse.CONTINUE;
+    }
+}
diff --git a/modules/osgi-tests/src/test/java/org/apache/axis2/osgi/module/SimpleModule.java b/modules/osgi-tests/src/test/java/org/apache/axis2/osgi/module/SimpleModule.java
new file mode 100644
index 0000000..43cf39e
--- /dev/null
+++ b/modules/osgi-tests/src/test/java/org/apache/axis2/osgi/module/SimpleModule.java
@@ -0,0 +1,51 @@
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.axis2.osgi.module;
+
+import org.apache.axis2.modules.Module;
+import org.apache.axis2.context.ConfigurationContext;
+import org.apache.axis2.description.AxisModule;
+import org.apache.axis2.description.AxisDescription;
+import org.apache.axis2.AxisFault;
+import org.apache.neethi.Assertion;
+import org.apache.neethi.Policy;
+
+/**
+* 
+*/
+public class SimpleModule implements Module{
+
+    public void init(ConfigurationContext configurationContext, AxisModule axisModule)
+            throws AxisFault {
+        System.out.println("Simple module init");
+    }
+
+    public void engageNotify(AxisDescription axisDescription) throws AxisFault {
+        System.out.println("Simple module engage notify");
+    }
+
+    public boolean canSupportAssertion(Assertion assertion) {
+        return false;
+    }
+
+    public void applyPolicy(Policy policy, AxisDescription axisDescription) throws AxisFault {
+        System.out.println("Simple module apply policy");
+    }
+
+    public void shutdown(ConfigurationContext configurationContext) throws AxisFault {
+        System.out.println("Simple module shutdown");
+    }
+}
diff --git a/modules/osgi-tests/src/test/java/org/apache/axis2/osgi/service/Activator.java b/modules/osgi-tests/src/test/java/org/apache/axis2/osgi/service/Activator.java
new file mode 100644
index 0000000..191dd4b
--- /dev/null
+++ b/modules/osgi-tests/src/test/java/org/apache/axis2/osgi/service/Activator.java
@@ -0,0 +1,39 @@
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.axis2.osgi.service;
+
+import org.osgi.framework.BundleActivator;
+import org.osgi.framework.BundleContext;
+import org.apache.axis2.osgi.deployment.tracker.WSTracker;
+
+import java.util.Dictionary;
+import java.util.Properties;
+
+/*
+* 
+*/
+public class Activator implements BundleActivator {
+
+    public void start(BundleContext context) throws Exception {
+        Dictionary prop = new Properties();
+        prop.put(WSTracker.AXIS2_WS, "myCal");
+        context.registerService(Calculator.class.getName(), new Calculator(), prop);
+    }
+
+    public void stop(BundleContext context) throws Exception {
+
+    }
+}
diff --git a/modules/osgi-tests/src/test/java/org/apache/axis2/osgi/service/Calculator.java b/modules/osgi-tests/src/test/java/org/apache/axis2/osgi/service/Calculator.java
new file mode 100644
index 0000000..e75d274
--- /dev/null
+++ b/modules/osgi-tests/src/test/java/org/apache/axis2/osgi/service/Calculator.java
@@ -0,0 +1,26 @@
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.axis2.osgi.service;
+
+/*
+* 
+*/
+public class Calculator {
+
+    public double add(double x, double y) {
+        return x + y;
+    }
+}
diff --git a/modules/osgi-tests/src/test/java/org/apache/axis2/osgi/service/Version.java b/modules/osgi-tests/src/test/java/org/apache/axis2/osgi/service/Version.java
new file mode 100644
index 0000000..d0cb020
--- /dev/null
+++ b/modules/osgi-tests/src/test/java/org/apache/axis2/osgi/service/Version.java
@@ -0,0 +1,25 @@
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.axis2.osgi.service;
+
+/**
+ *
+ */
+public class Version {
+    public String getVersion() throws Exception {
+        return "Hello This is the a sample Version service";
+    }
+}
diff --git a/modules/osgi-tests/src/test/resources/META-INF/module.xml b/modules/osgi-tests/src/test/resources/META-INF/module.xml
new file mode 100644
index 0000000..fdaafde
--- /dev/null
+++ b/modules/osgi-tests/src/test/resources/META-INF/module.xml
@@ -0,0 +1,18 @@
+
+<module name="simpleModule" class="org.apache.axis2.osgi.module.SimpleModule">
+    <Description>Sample Module for demo purpose only</Description>
+    <InFlow>
+        <handler name="Handler1" class="org.apache.axis2.osgi.module.Handler1">
+            <order phase="OperationInPhase" />
+        </handler>
+    </InFlow>
+
+    <OutFlow>
+        <!-- We don't need to have two handlers to handle these two version. So lets handle both of them in one. -->
+        <handler name="Handler2" class="org.apache.axis2.osgi.module.Handler2">
+            <order phase="MessageOut"/>
+        </handler>
+    </OutFlow>
+
+
+</module>
diff --git a/modules/tool/axis2-aar-maven-plugin/src/test/resources/services.xml b/modules/osgi-tests/src/test/resources/META-INF/services.xml
similarity index 73%
copy from modules/tool/axis2-aar-maven-plugin/src/test/resources/services.xml
copy to modules/osgi-tests/src/test/resources/META-INF/services.xml
index 4b6163a..a56705b 100644
--- a/modules/tool/axis2-aar-maven-plugin/src/test/resources/services.xml
+++ b/modules/osgi-tests/src/test/resources/META-INF/services.xml
@@ -1,4 +1,3 @@
-<?xml version="1.0" encoding="UTF-8"?>
 <!--
   ~ Licensed to the Apache Software Foundation (ASF) under one
   ~ or more contributor license agreements. See the NOTICE file
@@ -17,11 +16,13 @@
   ~ specific language governing permissions and limitations
   ~ under the License.
   -->
-<serviceGroup>
-	<service name="SimpleService">
-		<parameter name="ServiceClass">sample.SimpleService</parameter>
-		<operation name="helloService">
-			<messageReceiver class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" />
-		</operation>
-	</service>
-</serviceGroup>
+
+<serviceGroup name="Builtin">
+    <service name="Version">
+        <module ref="simpleModule"/>
+        <description>
+            This service is to get the running Axis version
+        </description>
+        <parameter name="ServiceClass">org.apache.axis2.osgi.service.Version</parameter>
+    </service>
+</serviceGroup>
\ No newline at end of file
diff --git a/modules/osgi/pom.xml b/modules/osgi/pom.xml
index 464bfdd..a3755a9 100644
--- a/modules/osgi/pom.xml
+++ b/modules/osgi/pom.xml
@@ -23,9 +23,9 @@
 
     <parent>
         <groupId>org.apache.axis2</groupId>
-        <artifactId>axis2-parent</artifactId>
-        <version>1.7.0-SNAPSHOT</version>
-        <relativePath>../parent/pom.xml</relativePath>
+        <artifactId>axis2</artifactId>
+        <version>1.8.0-SNAPSHOT</version>
+        <relativePath>../../pom.xml</relativePath>
     </parent>
 
     <modelVersion>4.0.0</modelVersion>
@@ -80,10 +80,9 @@
                             org.apache.axis2.*;-split-package:=merge-last; version=1.5,
                         </Export-Package>
                         <Import-Package>
-                            !javax.xml.namespace,
+                            javax.xml.namespace,
                             !org.apache.axis2.*,
-                            javax.ws.rs; version=1.0,
-                            javax.xml.namespace; version=0.0.0,
+                            javax.ws.rs; resolution:=optional,
                             javax.servlet; version=2.4.0,
                             javax.servlet.http; version=2.4.0,
                             javax.transaction,
@@ -94,9 +93,9 @@
                             org.osgi.service.log; version=1.3,
                             org.osgi.service.cm; version=1.2.0,
                             com.ibm.wsdl.util.xml,
-                            javax.activation;version="1.1",
+                            com.ibm.wsdl,
+                            javax.activation,
                             javax.jws;version="2.0",
-                            javax.jms;version="1.1",
                             javax.mail;version="1.4",
                             javax.management,
                             javax.mail.internet;version="1.4",
@@ -109,42 +108,22 @@
                             javax.wsdl.xml,
                             javax.net.*,
                             javax.xml.parsers;resolution:=optional,
-                            javax.xml.stream;resolution:=optional;version="1.0",
+                            javax.xml.stream,
                             javax.xml.transform;resolution:=optional,
                             javax.xml.transform.dom;resolution:=optional,
                             javax.xml.transform.stream;resolution:=optional,
                             javax.xml.datatype.*,
                             org.apache.axiom.*,
                             org.apache.commons.fileupload.*,
-                            org.apache.commons.httpclient.*,
                             org.apache.commons.lang;resolution:=optional,
                             org.apache.commons.logging,
-                            org.apache.http;resolution:=optional,
-                            org.apache.http.entity;resolution:=optional,
-                            org.apache.http.impl;resolution:=optional,
-                            org.apache.http.impl.entity;resolution:=optional,
-                            org.apache.http.impl.io;resolution:=optional,
-                            org.apache.http.impl.auth;resolution:=optional,
-                            org.apache.http.impl.conn;resolution:=optional,
-                            org.apache.http.io;resolution:=optional,
-                            org.apache.http.message;resolution:=optional,
-                            org.apache.http.params;resolution:=optional,
-                            org.apache.http.protocol;resolution:=optional,
-                            org.apache.http.util;resolution:=optional,
                             org.apache.neethi,
                             org.apache.woden.*;version="0.0.0",
                             org.apache.ws.commons.schema.*,
                             org.w3c.dom;resolution:=optional,
                             org.w3c.dom.traversal;resolution:=optional,
                             org.xml.sax;resolution:=optional,
-                            org.apache.http.client.*,
-                            org.apache.http.auth;resolution:=optional,
-                            org.apache.http.conn;resolution:=optional,
-                            org.apache.http.conn.params;resolution:=optional,
-                            org.apache.http.conn.scheme;resolution:=optional,
-                            org.apache.http.conn.ssl;resolution:=optional,
-                            org.apache.http.impl.client;resolution:=optional,
-                            org.apache.http.impl.conn.tsccm;resolution:=optional
+                            *
                         </Import-Package>
                         <Private-Package>
                             org.apache.axis2.osgi.internal,
@@ -156,18 +135,11 @@
                             org.apache.axis2.context.ConfigurationContext
                         </Export-Service>
                         <Bundle-RequiredExecutionEnvironment>
-                            J2SE-1.5
+                            J2SE-1.6
                         </Bundle-RequiredExecutionEnvironment>
                     </instructions>
                 </configuration>
             </plugin>
-            <plugin>
-                <artifactId>maven-compiler-plugin</artifactId>
-                <configuration>
-                    <source>1.5</source>
-                    <target>1.5</target>
-                </configuration>
-            </plugin>
         </plugins>
     </build>
 
diff --git a/modules/osgi/resources/org/apache/axis2/osgi/deployment/axis2.xml b/modules/osgi/resources/org/apache/axis2/osgi/deployment/axis2.xml
index 0181025..8fb19bc 100644
--- a/modules/osgi/resources/org/apache/axis2/osgi/deployment/axis2.xml
+++ b/modules/osgi/resources/org/apache/axis2/osgi/deployment/axis2.xml
@@ -201,7 +201,7 @@
     <transportSender name="local"

                      class="org.apache.axis2.transport.local.LocalTransportSender"/>

     <transportSender name="http"

-                     class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">

+                     class="org.apache.axis2.transport.http.impl.httpclient4.HTTPClient4TransportSender">

         <parameter name="PROTOCOL">HTTP/1.1</parameter>

         <parameter name="Transfer-Encoding">chunked</parameter>

 

@@ -210,7 +210,7 @@
     </transportSender>

 

     <transportSender name="https"

-                     class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">

+                     class="org.apache.axis2.transport.http.impl.httpclient4.HTTPClient4TransportSender">

         <parameter name="PROTOCOL">HTTP/1.1</parameter>

         <parameter name="Transfer-Encoding">chunked</parameter>

     </transportSender>

diff --git a/modules/osgi/src/org/apache/axis2/osgi/OSGiAxisServlet.java b/modules/osgi/src/org/apache/axis2/osgi/OSGiAxisServlet.java
index bdaca4b..f9493c9 100644
--- a/modules/osgi/src/org/apache/axis2/osgi/OSGiAxisServlet.java
+++ b/modules/osgi/src/org/apache/axis2/osgi/OSGiAxisServlet.java
@@ -17,12 +17,7 @@
 
 import org.apache.axis2.AxisFault;
 import org.apache.axis2.context.ConfigurationContext;
-import org.apache.axis2.engine.AxisConfigurator;
-import org.apache.axis2.osgi.deployment.OSGiConfigurationContextFactory;
 import org.apache.axis2.transport.http.AxisServlet;
-import org.apache.axis2.transport.http.ListingAgent;
-import org.osgi.framework.BundleContext;
-import org.osgi.framework.ServiceReference;
 
 import javax.servlet.ServletConfig;
 import javax.servlet.ServletContext;
@@ -34,34 +29,36 @@
  */
 public class OSGiAxisServlet extends AxisServlet {
 
-    private BundleContext context;
+    private ConfigurationContext configurationContext;
 
-    /**
-     * OSGiAxisServlet needs an referenc to OSGi environmentb
-     *
-     * @param context BundleContext
-     */
-    public OSGiAxisServlet(BundleContext context) {
-        this.context = context;
+    public OSGiAxisServlet(ConfigurationContext configurationContext) {
+        this.configurationContext = configurationContext;
     }
 
+    @Override
+    protected ConfigurationContext initConfigContext(ServletConfig config) throws ServletException {
+        return configurationContext;
+    }
+
+    @Override
+    protected void initTransports() throws AxisFault {
+        // Not sure if this is correct, but the original OSGiAxisServlet code effectively skipped
+        // the invocation of the initTransports method.
+    }
 
     public void init(ServletConfig servletConfig) throws ServletException {
-        this.servletConfig = servletConfig;
-        ServiceReference reference =
-                context.getServiceReference(ConfigurationContext.class.getName());
-        if (reference == null) {
-            throw new ServletException(
-                    "An instance of ConfigurationContext is not available to continue the proccess.");
-        }
-        configContext = (ConfigurationContext) context.getService(reference);
-        axisConfiguration = configContext.getAxisConfiguration();
-        agent = new ListingAgent(configContext);
-        initParams();
+        super.init(servletConfig);
         ServletContext servletContext = servletConfig.getServletContext();
         if (servletContext != null) {
             servletContext.setAttribute(this.getClass().getName(), this);
         }
 
     }
+
+    @Override
+    public void destroy() {
+        // Do nothing. This prevents AxisServlet from terminating the configuration context.
+        // The configuration context is terminated by OSGiConfigurationContextFactory, and
+        // invoking the terminate method twice (potentially concurrently) causes problems.
+    }
 }
diff --git a/modules/osgi/src/org/apache/axis2/osgi/deployment/OSGiConfigurationContextFactory.java b/modules/osgi/src/org/apache/axis2/osgi/deployment/OSGiConfigurationContextFactory.java
index 67c2269..28a3ef6 100644
--- a/modules/osgi/src/org/apache/axis2/osgi/deployment/OSGiConfigurationContextFactory.java
+++ b/modules/osgi/src/org/apache/axis2/osgi/deployment/OSGiConfigurationContextFactory.java
@@ -56,6 +56,8 @@
 
     private ServiceRegistration mngServiceRegistration;
 
+    private ServiceRegistration transportServiceRegistration;
+    
     private ConfigurationContext configCtx;
 
     private ServiceRegistration configCtxServiceRegistration;
@@ -72,11 +74,20 @@
     }
 
     public synchronized void stop() {
+        if (configCtxServiceRegistration != null) {
+            configCtxServiceRegistration.unregister();
+        }
+        
+        if (transportServiceRegistration != null) {
+            transportServiceRegistration.unregister();
+        }
+        
         if (mngServiceRegistration != null) {
             mngServiceRegistration.unregister();
         }
         bundleTracker.close();
         if (configCtx != null) {
+            log.debug("Terminating configuration context");
             try {
                 configCtx.terminate();
                 configCtx = null;
@@ -119,7 +130,7 @@
             Dictionary prop = new Properties();
             prop.put(PROTOCOL, "http");
             //adding the default listener
-            context.registerService(TransportListener.class.getName(), new HttpListener(context),
+            transportServiceRegistration = context.registerService(TransportListener.class.getName(), new HttpListener(context),
                                     prop);
             log.info("Axis2 environment has started.");
         } catch (AxisFault e) {
diff --git a/modules/osgi/src/org/apache/axis2/osgi/deployment/OSGiServerConfigurator.java b/modules/osgi/src/org/apache/axis2/osgi/deployment/OSGiServerConfigurator.java
index 4102b01..062f4fb 100644
--- a/modules/osgi/src/org/apache/axis2/osgi/deployment/OSGiServerConfigurator.java
+++ b/modules/osgi/src/org/apache/axis2/osgi/deployment/OSGiServerConfigurator.java
@@ -73,20 +73,32 @@
     }
 
     public AxisConfiguration populateAxisConfiguration(InputStream in) throws DeploymentException {
-        axisConfig = new AxisConfiguration();
-        AxisConfigBuilder builder =
-                new AxisConfigBuilder(in, axisConfig, this);
-        builder.populateConfig();
+        // Dirty hack necessary because class loading in AxisConfigBuilder is completely broken:
+        // although it is possible to configure the class loaders explicitly in the AxisConfiguration,
+        // the AxisConfigBuilder will still use the thread context class loader in some places.
+        // On the other hand, in an OSGi environment, the TCCL is not well defined. To avoid problems,
+        // we set it to the class loader of the Axis2 OSGi bundle.
+        Thread currentThread = Thread.currentThread();
+        ClassLoader savedTCCL = currentThread.getContextClassLoader();
+        currentThread.setContextClassLoader(OSGiServerConfigurator.class.getClassLoader());
         try {
-            if (in != null) {
-                in.close();
+            axisConfig = new AxisConfiguration();
+            AxisConfigBuilder builder =
+                    new AxisConfigBuilder(in, axisConfig, this);
+            builder.populateConfig();
+            try {
+                if (in != null) {
+                    in.close();
+                }
+            } catch (IOException e) {
+                String msg = "Error in closing input stream";
+                throw new DeploymentException(msg, e);
             }
-        } catch (IOException e) {
-            String msg = "Error in closing input stream";
-            throw new DeploymentException(msg, e);
+            //TODO: if module deployer neede to set it should be set here.
+            return axisConfig;
+        } finally {
+            currentThread.setContextClassLoader(savedTCCL);
         }
-        //TODO: if module deployer neede to set it should be set here.
-        return axisConfig;
     }
 
     public void loadServices() {
diff --git a/modules/osgi/src/org/apache/axis2/osgi/deployment/OSGiServiceGroupBuilder.java b/modules/osgi/src/org/apache/axis2/osgi/deployment/OSGiServiceGroupBuilder.java
index 9530dfe..9594675 100644
--- a/modules/osgi/src/org/apache/axis2/osgi/deployment/OSGiServiceGroupBuilder.java
+++ b/modules/osgi/src/org/apache/axis2/osgi/deployment/OSGiServiceGroupBuilder.java
@@ -60,25 +60,25 @@
         try {
 
             // Processing service level parameters
-            Iterator itr = serviceElement.getChildrenWithName(new QName(TAG_PARAMETER));
+            Iterator<OMElement> itr = serviceElement.getChildrenWithName(new QName(TAG_PARAMETER));
 
             processParameters(itr, axisServiceGroup, axisServiceGroup.getParent());
 
-            Iterator moduleConfigs =
+            Iterator<OMElement> moduleConfigs =
                     serviceElement.getChildrenWithName(new QName(TAG_MODULE_CONFIG));
 
             processServiceModuleConfig(moduleConfigs, axisServiceGroup.getParent(),
                                        axisServiceGroup);
 
             // processing service-wide modules which required to engage globally
-            Iterator moduleRefs = serviceElement.getChildrenWithName(new QName(TAG_MODULE));
+            Iterator<OMElement> moduleRefs = serviceElement.getChildrenWithName(new QName(TAG_MODULE));
 
             processModuleRefs(moduleRefs, axisServiceGroup);
 
-            Iterator serviceitr = serviceElement.getChildrenWithName(new QName(TAG_SERVICE));
+            Iterator<OMElement> serviceitr = serviceElement.getChildrenWithName(new QName(TAG_SERVICE));
 
             while (serviceitr.hasNext()) {
-                OMElement service = (OMElement) serviceitr.next();
+                OMElement service = serviceitr.next();
                 OMAttribute serviceNameatt = service.getAttribute(new QName(ATTRIBUTE_NAME));
                 if (serviceNameatt == null) {
                     throw new DeploymentException(
diff --git a/modules/osgi/src/org/apache/axis2/osgi/deployment/ServiceRegistry.java b/modules/osgi/src/org/apache/axis2/osgi/deployment/ServiceRegistry.java
index 663ecd3..ec1c90d 100644
--- a/modules/osgi/src/org/apache/axis2/osgi/deployment/ServiceRegistry.java
+++ b/modules/osgi/src/org/apache/axis2/osgi/deployment/ServiceRegistry.java
@@ -174,17 +174,19 @@
                         unreslovedBundles.add(bundle);
                     }
                     try {
-                        for (Iterator iterator = axisServiceGroup.getServices();
-                             iterator.hasNext();) {
-                            AxisService service = (AxisService) iterator.next();
-                            log.info("[Axis2/OSGi] Service - " + service.getName());
+                        if (log.isInfoEnabled()) {
+                            List<String> serviceNames = new ArrayList<String>();
+                            for (Iterator<AxisService> iterator = axisServiceGroup.getServices();
+                                    iterator.hasNext(); ) {
+                                AxisService service = (AxisService) iterator.next();
+                                serviceNames.add(service.getName());
+                            }
+                            log.info("Stopping service group "
+                                    + axisServiceGroup.getServiceGroupName() + " with services "
+                                    + serviceNames + " in bundle " + bundle.getSymbolicName());
                         }
                         configCtx.getAxisConfiguration()
                                 .removeServiceGroup(axisServiceGroup.getServiceGroupName());
-                        log.info("[Axis2/OSGi] Stopping " +
-                                 axisServiceGroup.getServiceGroupName() +
-                                 " service group in Bundle - " +
-                                 bundle.getSymbolicName());
                     } catch (AxisFault e) {
                         String msg = "Error while removing the service group";
                         log.error(msg, e);
diff --git a/modules/osgi/src/org/apache/axis2/osgi/internal/Activator.java b/modules/osgi/src/org/apache/axis2/osgi/internal/Activator.java
index 2bf97c9..3323afe 100644
--- a/modules/osgi/src/org/apache/axis2/osgi/internal/Activator.java
+++ b/modules/osgi/src/org/apache/axis2/osgi/internal/Activator.java
@@ -15,18 +15,20 @@
  */
 package org.apache.axis2.osgi.internal;
 
+import java.util.Hashtable;
+
 import org.apache.axis2.context.ConfigurationContext;
 import org.apache.axis2.osgi.OSGiAxisServlet;
+
 import static org.apache.axis2.osgi.deployment.OSGiAxis2Constants.AXIS2_OSGi_ROOT_CONTEXT;
+
 import org.apache.axis2.osgi.deployment.OSGiConfigurationContextFactory;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.osgi.framework.*;
-import org.osgi.service.http.HttpService;
-import org.osgi.service.http.NamespaceException;
 import org.osgi.util.tracker.ServiceTracker;
 
-import javax.servlet.ServletException;
+import javax.servlet.Servlet;
 
 /**
  * Activator will set the necessary parameters that initiate Axis2 OSGi integration
@@ -35,7 +37,7 @@
 
     private static Log log = LogFactory.getLog(Activator.class);
 
-    private HttpServiceTracker tracker;
+    private ConfigurationContextTracker tracker;
 
     private final OSGiConfigurationContextFactory managedService;
 
@@ -45,61 +47,49 @@
 
     public void start(BundleContext context) throws Exception {
         managedService.start(context);
-        managedService.updated(null);
-        tracker = new HttpServiceTracker(context);
+        tracker = new ConfigurationContextTracker(context);
         tracker.open();
     }
 
     public void stop(BundleContext context) {
         tracker.close();
         managedService.stop();
-        //ungetService ConfigurationContext.class.getName()
-        ServiceReference configCtxRef =
-                context.getServiceReference(ConfigurationContext.class.getName());
-        if (configCtxRef != null) {
-            context.ungetService(configCtxRef);
-        }
     }
 
-    //HttpServiceTracker
+    class ConfigurationContextTracker extends ServiceTracker {
 
-    class HttpServiceTracker extends ServiceTracker {
-
-        public HttpServiceTracker(BundleContext context) {
-            super(context, HttpService.class.getName(), null);
+        public ConfigurationContextTracker(BundleContext context) {
+            super(context, ConfigurationContext.class.getName(), null);
         }
 
         public Object addingService(ServiceReference serviceReference) {
 
-            HttpService httpService = (HttpService) context.getService(serviceReference);
-            try {
-                OSGiAxisServlet axisServlet = new OSGiAxisServlet(context);
-                ServiceReference configCtxRef =
-                        context.getServiceReference(ConfigurationContext.class.getName());
-                ConfigurationContext configCtx =
-                        (ConfigurationContext) context.getService(configCtxRef);
-                String propServiceContextRoot = context.getProperty(AXIS2_OSGi_ROOT_CONTEXT);
-                String serviceContextRoot = "services";
-                if (propServiceContextRoot != null && propServiceContextRoot.length() != 0) {
-                    if (propServiceContextRoot.startsWith("/")) {
-                        serviceContextRoot = propServiceContextRoot.substring(1);
-                    } else {
-                        serviceContextRoot = propServiceContextRoot;
-                    }
+            ConfigurationContext configCtx = (ConfigurationContext) context.getService(serviceReference);
+            OSGiAxisServlet axisServlet = new OSGiAxisServlet(configCtx);
+            String propServiceContextRoot = context.getProperty(AXIS2_OSGi_ROOT_CONTEXT);
+            String serviceContextRoot = "services";
+            if (propServiceContextRoot != null && propServiceContextRoot.length() != 0) {
+                if (propServiceContextRoot.startsWith("/")) {
+                    serviceContextRoot = propServiceContextRoot.substring(1);
+                } else {
+                    serviceContextRoot = propServiceContextRoot;
                 }
-                configCtx.setServicePath(serviceContextRoot);
-                String contextRoot = "/" + serviceContextRoot;
-                log.info("Registering SOAP message listener servlet to context : " + contextRoot);
-                httpService.registerServlet(contextRoot, axisServlet, null, null);
-            } catch (ServletException e) {
-                String msg = "Error while registering servlets";
-                log.error(msg, e);
-            } catch (NamespaceException e) {
-                String msg = "Namespace missmatch when registering servlets";
-                log.error(msg, e);
             }
-            return httpService;
+            configCtx.setServicePath(serviceContextRoot);
+            String contextRoot = "/" + serviceContextRoot;
+            log.info("Registering SOAP message listener servlet to context : " + contextRoot);
+            Hashtable props = new Hashtable();
+            props.put("alias", contextRoot);
+            // Register the servlet as an OSGi service to be picked up by the HTTP whiteboard service.
+            // We return the ServiceRegistration so that we can unregister the servlet later.
+            return context.registerService(Servlet.class.getName(), axisServlet, props);
         }
 
+        @Override
+        public void removedService(ServiceReference reference, Object service) {
+            // Unregister the servlet and unget the reference to the ConfigurationContext.
+            ((ServiceRegistration)service).unregister();
+            context.ungetService(reference);
+        }
     }
 }
diff --git a/modules/ping/pom.xml b/modules/ping/pom.xml
index f8a12fd..3b387c9 100644
--- a/modules/ping/pom.xml
+++ b/modules/ping/pom.xml
@@ -23,9 +23,9 @@
     <modelVersion>4.0.0</modelVersion>
     <parent>
         <groupId>org.apache.axis2</groupId>
-        <artifactId>axis2-parent</artifactId>
-        <version>1.7.0-SNAPSHOT</version>
-        <relativePath>../parent/pom.xml</relativePath>
+        <artifactId>axis2</artifactId>
+        <version>1.8.0-SNAPSHOT</version>
+        <relativePath>../../pom.xml</relativePath>
     </parent>
     <artifactId>ping</artifactId>
     <packaging>mar</packaging>
diff --git a/modules/ping/src/org/apache/axis2/ping/PingMessageReceiver.java b/modules/ping/src/org/apache/axis2/ping/PingMessageReceiver.java
index b73f472..65b1c3b 100644
--- a/modules/ping/src/org/apache/axis2/ping/PingMessageReceiver.java
+++ b/modules/ping/src/org/apache/axis2/ping/PingMessageReceiver.java
@@ -95,12 +95,12 @@
 
         if (!serviceLevel && element != null) {
             //Operations to be pinged has been specified in the ping request
-            Iterator<?> elementIterator = pingRequestElement.getChildrenWithName(new QName(TAG_OPERATION));
+            Iterator<OMElement> elementIterator = pingRequestElement.getChildrenWithName(new QName(TAG_OPERATION));
             ArrayList<AxisOperation> operationList = new ArrayList<AxisOperation>();
             AxisOperation axisOperation;
 
             while (elementIterator.hasNext()) {
-                OMElement opElement = (OMElement) elementIterator.next();
+                OMElement opElement = elementIterator.next();
                 String operationName = opElement.getText();
                 axisOperation = inMessage.getAxisService().getOperation(new QName(operationName));
 
diff --git a/modules/resource-bundle/pom.xml b/modules/resource-bundle/pom.xml
index f97a91f..eb14fe0 100644
--- a/modules/resource-bundle/pom.xml
+++ b/modules/resource-bundle/pom.xml
@@ -23,9 +23,9 @@
     <modelVersion>4.0.0</modelVersion>
     <parent>
         <groupId>org.apache.axis2</groupId>
-        <artifactId>axis2-parent</artifactId>
-        <version>1.7.0-SNAPSHOT</version>
-        <relativePath>../parent/pom.xml</relativePath>
+        <artifactId>axis2</artifactId>
+        <version>1.8.0-SNAPSHOT</version>
+        <relativePath>../../pom.xml</relativePath>
     </parent>
     <artifactId>axis2-resource-bundle</artifactId>
     <name>Apache Axis2 - Resource bundle</name>
diff --git a/modules/saaj/pom.xml b/modules/saaj/pom.xml
index 5b83a93..b418d24 100644
--- a/modules/saaj/pom.xml
+++ b/modules/saaj/pom.xml
@@ -23,9 +23,9 @@
     <modelVersion>4.0.0</modelVersion>
     <parent>
         <groupId>org.apache.axis2</groupId>
-        <artifactId>axis2-parent</artifactId>
-        <version>1.7.0-SNAPSHOT</version>
-        <relativePath>../parent/pom.xml</relativePath>
+        <artifactId>axis2</artifactId>
+        <version>1.8.0-SNAPSHOT</version>
+        <relativePath>../../pom.xml</relativePath>
     </parent>
     <artifactId>axis2-saaj</artifactId>
     <name>Apache Axis2 - SAAJ</name>
@@ -38,10 +38,6 @@
     </scm>
     <dependencies>
         <dependency>
-            <groupId>org.apache.geronimo.specs</groupId>
-            <artifactId>geronimo-saaj_1.3_spec</artifactId>
-        </dependency>
-        <dependency>
             <groupId>org.apache.ws.commons.axiom</groupId>
             <artifactId>axiom-dom</artifactId>
             <scope>runtime</scope>
@@ -90,6 +86,11 @@
             <scope>test</scope>
         </dependency>
         <dependency>
+            <groupId>commons-httpclient</groupId>
+            <artifactId>commons-httpclient</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
             <groupId>com.sun.xml.messaging.saaj</groupId>
             <artifactId>saaj-impl</artifactId>
             <version>1.3.2</version>
@@ -101,6 +102,12 @@
                 </exclusion>
             </exclusions>
         </dependency>
+        <dependency>
+            <groupId>org.apache.ws.commons.axiom</groupId>
+            <artifactId>saaj-testsuite</artifactId>
+            <version>${axiom.version}</version>
+            <scope>test</scope>
+        </dependency>
         <!-- This is required on IBM JDKs (and potentially others) because saaj-impl depends
              on Sun's internal copy of Xerces. See AXIS2-4228. -->
         <dependency>
@@ -140,12 +147,28 @@
                 </executions>
             </plugin>
             <plugin>
-                <artifactId>maven-compiler-plugin</artifactId>
-                <inherited>true</inherited>
-                <configuration>
-                    <source>1.5</source>
-                    <target>1.5</target>
-                </configuration>
+                <groupId>com.github.veithen.alta</groupId>
+                <artifactId>alta-maven-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>generate-properties</goal>
+                        </goals>
+                        <configuration>
+                            <name>surefire.bootclasspath</name>
+                            <value>%file%</value>
+                            <separator>${path.separator}</separator>
+                            <artifacts>
+                                <artifact>
+                                    <!-- TODO: make the test cases compatible with the SAAJ API in the JRE and remove this -->
+                                    <groupId>org.apache.geronimo.specs</groupId>
+                                    <artifactId>geronimo-saaj_1.3_spec</artifactId>
+                                    <version>1.0.1</version>
+                                </artifact>
+                            </artifacts>
+                        </configuration>
+                    </execution>
+                </executions>
             </plugin>
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
@@ -160,7 +183,7 @@
                         presence of jaxp-ri on the classpath.
                       * Please leave this on a single line. Adding a newline between the two
                         options causes a build failure. -->
-                    <argLine>-Djava.endorsed.dirs=${m2Repository}/org/apache/geronimo/specs/geronimo-saaj_1.3_spec/${geronimo.spec.saaj.version}/ -Dcom.sun.org.apache.xerces.internal.xni.parser.XMLParserConfiguration=com.sun.org.apache.xerces.internal.parsers.XIncludeParserConfiguration</argLine>
+                    <argLine>-Xbootclasspath/p:${surefire.bootclasspath} -Dcom.sun.org.apache.xerces.internal.xni.parser.XMLParserConfiguration=com.sun.org.apache.xerces.internal.parsers.XIncludeParserConfiguration</argLine>
                     <systemProperties>
                         <!-- Prevent Mac OS X from showing an icon in the dock during the test run -->
                         <property>
diff --git a/modules/saaj/src/org/apache/axis2/saaj/CommentImpl.java b/modules/saaj/src/org/apache/axis2/saaj/CommentImpl.java
index 1415b14..888f770 100644
--- a/modules/saaj/src/org/apache/axis2/saaj/CommentImpl.java
+++ b/modules/saaj/src/org/apache/axis2/saaj/CommentImpl.java
@@ -18,19 +18,16 @@
  */
 package org.apache.axis2.saaj;
 
-import javax.xml.soap.SOAPElement;
-
+import org.apache.axiom.om.OMComment;
 import org.w3c.dom.Comment;
 
 public class CommentImpl extends TextImplEx implements Comment {
-
-    public CommentImpl(String data, SOAPElement parent) {
-        super(data, parent);
+    public CommentImpl(OMComment textNode) {
+        super(textNode);
     }
 
-    public CommentImpl(String data, SOAPElement parent,
-                       org.w3c.dom.Node prevSibling, org.w3c.dom.Node nextSibling) {
-        super(data, parent, prevSibling, nextSibling);
+    public CommentImpl(String data) {
+        super(data);
     }
 
     public boolean isComment() {
diff --git a/modules/saaj/src/org/apache/axis2/saaj/DetailImpl.java b/modules/saaj/src/org/apache/axis2/saaj/DetailImpl.java
index d25db48..c9d4d25 100644
--- a/modules/saaj/src/org/apache/axis2/saaj/DetailImpl.java
+++ b/modules/saaj/src/org/apache/axis2/saaj/DetailImpl.java
@@ -70,9 +70,7 @@
      */
     public DetailEntry addDetailEntry(Name name) throws SOAPException {
         SOAPElementImpl<?> childElement = (SOAPElementImpl<?>)addChildElement(name);
-        DetailEntryImpl detailEntry = new DetailEntryImpl(childElement.omTarget);
-        childElement.target.setUserData(SAAJ_NODE, detailEntry, null);
-        return detailEntry;
+        return new DetailEntryImpl(childElement.omTarget);
     }
 
     /**
@@ -99,9 +97,7 @@
      */
     public DetailEntry addDetailEntry(QName qname) throws SOAPException {
         SOAPElementImpl<?> childElement = (SOAPElementImpl<?>)addChildElement(qname);
-        DetailEntryImpl detailEntry = new DetailEntryImpl(childElement.omTarget);
-        childElement.target.setUserData(SAAJ_NODE, detailEntry, null);
-        return detailEntry;
+        return new DetailEntryImpl(childElement.omTarget);
     }
 
     public SOAPElement addAttribute(QName qname, String value) throws SOAPException {
diff --git a/modules/saaj/src/org/apache/axis2/saaj/NodeImpl.java b/modules/saaj/src/org/apache/axis2/saaj/NodeImpl.java
new file mode 100644
index 0000000..b7d6a3c
--- /dev/null
+++ b/modules/saaj/src/org/apache/axis2/saaj/NodeImpl.java
@@ -0,0 +1,43 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.axis2.saaj;
+
+import javax.xml.soap.Node;
+import javax.xml.soap.SOAPElement;
+import javax.xml.soap.SOAPException;
+
+import org.apache.axiom.om.OMNode;
+
+public abstract class NodeImpl<T extends org.w3c.dom.Node, S extends OMNode> extends ProxyNode<T,S> implements Node {
+    public NodeImpl(T target, S omTarget) {
+        super(target, omTarget);
+    }
+
+    public final void detachNode() {
+        omTarget.detach();
+    }
+
+    public final SOAPElement getParentElement() {
+        return (SOAPElement)getParentNode();
+    }
+
+    public void setParentElement(SOAPElement parent) throws SOAPException {
+        (((SOAPElementImpl<?>)parent).omTarget).addChild(this.omTarget);
+    }
+}
diff --git a/modules/saaj/src/org/apache/axis2/saaj/ProxyNode.java b/modules/saaj/src/org/apache/axis2/saaj/ProxyNode.java
new file mode 100644
index 0000000..1cd9caf
--- /dev/null
+++ b/modules/saaj/src/org/apache/axis2/saaj/ProxyNode.java
@@ -0,0 +1,357 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.axis2.saaj;
+
+import org.apache.axiom.om.OMComment;
+import org.apache.axiom.om.OMDocument;
+import org.apache.axiom.om.OMElement;
+import org.apache.axiom.om.OMException;
+import org.apache.axiom.om.OMInformationItem;
+import org.apache.axiom.om.OMText;
+import org.apache.axiom.soap.SOAPBody;
+import org.apache.axiom.soap.SOAPEnvelope;
+import org.apache.axiom.soap.SOAPFault;
+import org.apache.axiom.soap.SOAPFaultDetail;
+import org.apache.axiom.soap.SOAPFaultNode;
+import org.apache.axiom.soap.SOAPHeader;
+import org.apache.axiom.soap.SOAPHeaderBlock;
+import org.w3c.dom.Attr;
+import org.w3c.dom.DOMException;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.w3c.dom.NamedNodeMap;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+import org.w3c.dom.TypeInfo;
+import org.w3c.dom.UserDataHandler;
+
+import javax.xml.soap.SOAPElement;
+import javax.xml.soap.SOAPException;
+
+/**
+ * A representation of a node (element) in a DOM representation of an XML document that provides
+ * some tree manipulation methods. This interface provides methods for getting the value of a node,
+ * for getting and setting the parent of a node, and for removing a node.
+ */
+public abstract class ProxyNode<T extends org.w3c.dom.Node, S extends OMInformationItem> implements Node {
+    protected final T target;
+    protected final S omTarget;
+    static final String SAAJ_NODE = "saaj.node";
+
+    public ProxyNode(T target, S omTarget) {
+        this.target = target;
+        this.omTarget = omTarget;
+        target.setUserData(SAAJ_NODE, this, null);
+    }
+
+    public final T getTarget() {
+        return target;
+    }
+
+    public final S getOMTarget() {
+        return omTarget;
+    }
+
+    /**
+     * Notifies the implementation that this <code>Node</code> object is no longer being used by the
+     * application and that the implementation is free to reuse this object for nodes that may be
+     * created later.
+     * <p/>
+     * Calling the method <code>recycleNode</code> implies that the method <code>detachNode</code>
+     * has been called previously.
+     */
+    public void recycleNode() {
+        // No corresponding implementation in OM
+        // There is no implementation in Axis 1.2 also
+    }
+
+    public void setType(int nodeType) throws OMException {
+        throw new UnsupportedOperationException("TODO");
+    }
+
+    public int getType() {
+        return this.getNodeType();
+    }
+
+    public TypeInfo getSchemaTypeInfo() {
+        // TODO - Fixme.
+        throw new UnsupportedOperationException("TODO");
+    }
+
+    public void setIdAttribute(String name, boolean isId) throws DOMException {
+        // TODO - Fixme.
+        throw new UnsupportedOperationException("TODO");
+    }
+
+    public void setIdAttributeNS(String namespaceURI, String localName, boolean isId)
+            throws DOMException {
+        // TODO - Fixme.
+        throw new UnsupportedOperationException("TODO");
+    }
+
+    public void setIdAttributeNode(Attr idAttr, boolean isId) throws DOMException {
+        // TODO - Fixme.
+        throw new UnsupportedOperationException("TODO");
+    }
+
+    /**
+     * Converts or extracts the SAAJ node from the given DOM Node (domNode)
+     *
+     * @param domNode
+     * @return the SAAJ Node corresponding to the domNode
+     */
+    Node toSAAJNode(Node domNode) {
+        return toSAAJNode(domNode, this);
+    }
+    
+    /**
+     * Converts or extracts the SAAJ node from the given DOM Node (domNode)
+     *
+     * @param domNode
+     * @return the SAAJ Node corresponding to the domNode
+     */
+    static Node toSAAJNode(Node domNode, Node parentNode) {
+        if (domNode == null) {
+            return null;
+        }
+        Node saajNode = (Node)domNode.getUserData(SAAJ_NODE);
+        if (saajNode == null) {  // if SAAJ node has not been set in userData, try to construct it
+            return toSAAJNode2(domNode, parentNode);
+        }
+        return saajNode;
+    }
+
+    private static Node toSAAJNode2(Node domNode, Node parentNode) {
+        if (domNode == null) {
+            return null;
+        }
+        if (domNode instanceof org.w3c.dom.Text) {
+            return new TextImplEx((OMText)domNode);
+        } else if (domNode instanceof org.w3c.dom.Comment) {
+            return new CommentImpl((OMComment)domNode);
+        } else if (domNode instanceof SOAPBody) {
+            return new org.apache.axis2.saaj.SOAPBodyImpl((SOAPBody)domNode);
+        } else if (domNode instanceof SOAPEnvelope) {
+            return new org.apache.axis2.saaj.SOAPEnvelopeImpl((SOAPEnvelope)domNode);
+        } else if (domNode instanceof SOAPFaultNode) {
+            return new org.apache.axis2.saaj.SOAPFaultElementImpl<SOAPFaultNode>((SOAPFaultNode)domNode);
+        } else if (domNode instanceof SOAPFaultDetail) {
+            return new org.apache.axis2.saaj.DetailImpl((SOAPFaultDetail)domNode);
+        } else if (domNode instanceof SOAPFault) {
+            return new org.apache.axis2.saaj.SOAPFaultImpl((SOAPFault)domNode);
+        } else if (domNode instanceof SOAPHeaderBlock) {
+            return new org.apache.axis2.saaj.SOAPHeaderElementImpl((SOAPHeaderBlock)domNode);
+        } else if (domNode instanceof SOAPHeader) {
+            return new org.apache.axis2.saaj.SOAPHeaderImpl((SOAPHeader)domNode);
+        } else if (domNode instanceof Document) {
+            return new SAAJDocument((OMDocument)domNode);
+        } else { // instanceof org.apache.axis2.om.impl.dom.ElementImpl
+            return new SOAPElementImpl<OMElement>((OMElement)domNode);
+        }
+    }
+    
+    public org.w3c.dom.Node getParentNode() {
+        return toSAAJNode(target.getParentNode());
+    }
+
+    public final boolean hasAttributes() {
+        return target.hasAttributes();
+    }
+
+    public final boolean isSupported(String feature, String version) {
+        return target.isSupported(feature, version);
+    }
+
+    public final String getBaseURI() {
+        return target.getBaseURI();
+    }
+
+    public final String getNodeValue() throws DOMException {
+        return target.getNodeValue();
+    }
+
+    public final void setNodeValue(String nodeValue) throws DOMException {
+        target.setNodeValue(nodeValue);
+    }
+
+    public final org.w3c.dom.Node insertBefore(org.w3c.dom.Node newChild, org.w3c.dom.Node refChild) throws DOMException {
+        return target.insertBefore(newChild, refChild);
+    }
+
+    public final org.w3c.dom.Node replaceChild(org.w3c.dom.Node newChild, org.w3c.dom.Node oldChild) throws DOMException {
+        return target.replaceChild(newChild, oldChild);
+    }
+
+    public final org.w3c.dom.Node cloneNode(boolean deep) {
+        return target.cloneNode(deep);
+    }
+
+    public final void normalize() {
+        target.normalize();
+    }
+
+    public final void setPrefix(String prefix) throws DOMException {
+        target.setPrefix(prefix);
+    }
+
+    public final short compareDocumentPosition(org.w3c.dom.Node other) throws DOMException {
+        return target.compareDocumentPosition(other);
+    }
+
+    public final void setTextContent(String textContent) throws DOMException {
+        target.setTextContent(textContent);
+    }
+
+    public final boolean isSameNode(org.w3c.dom.Node other) {
+        return target.isSameNode(other);
+    }
+
+    public final String lookupPrefix(String namespaceURI) {
+        return target.lookupPrefix(namespaceURI);
+    }
+
+    public final boolean isDefaultNamespace(String namespaceURI) {
+        return target.isDefaultNamespace(namespaceURI);
+    }
+
+    public final String lookupNamespaceURI(String prefix) {
+        return null;
+    }
+
+    public final boolean isEqualNode(org.w3c.dom.Node arg) {
+        return target.isEqualNode(arg);
+    }
+
+    public final Object getFeature(String feature, String version) {
+        return target.getFeature(feature, version);
+    }
+
+    public final Object setUserData(String key, Object data, UserDataHandler handler) {
+        return target.setUserData(key, data, handler);
+    }
+
+    public final Object getUserData(String key) {
+        return target.getUserData(key);
+    }
+
+    public final org.w3c.dom.Node removeChild(org.w3c.dom.Node oldChild) throws DOMException {
+        if (oldChild instanceof ProxyNode) {
+            oldChild = ((ProxyNode<?,?>)oldChild).getTarget();
+        }
+        return target.removeChild(oldChild);
+    }
+
+    public final String getNodeName() {
+        return target.getNodeName();
+    }
+
+    public final short getNodeType() {
+        return target.getNodeType();
+    }
+
+    public final Document getOwnerDocument() {
+        return (Document)toSAAJNode(target.getOwnerDocument());
+    }
+
+    public final String getLocalName() {
+        return target.getLocalName();
+    }
+
+    public final String getNamespaceURI() {
+        return target.getNamespaceURI();
+    }
+
+    public final String getPrefix() {
+        return target.getPrefix();
+    }
+
+    public final org.w3c.dom.Node getFirstChild() {
+        return toSAAJNode(target.getFirstChild());
+    }
+
+    public final boolean hasChildNodes() {
+        return target.hasChildNodes();
+    }
+
+    public final org.w3c.dom.Node getLastChild() {
+        return toSAAJNode(target.getLastChild());
+    }
+
+    protected final NodeList toSAAJNodeList(NodeList nodes) {
+        NodeListImpl result = new NodeListImpl();
+        for (int i = 0; i < nodes.getLength(); i++) {
+            result.addNode(toSAAJNode(nodes.item(i)));
+        }
+        return result;
+    }
+
+    public final NodeList getChildNodes() {
+        return toSAAJNodeList(target.getChildNodes());
+    }
+
+    public final org.w3c.dom.Node appendChild(org.w3c.dom.Node child) throws DOMException {        
+        if (getOwnerDocument() != child.getOwnerDocument()) {
+            throw new DOMException(DOMException.WRONG_DOCUMENT_ERR, "Wrong document");
+        }
+        try {
+            if (child instanceof Element) {
+                return appendElement((Element)child);
+            } else {
+                target.appendChild(((ProxyNode<?,?>)child).target);
+                return child;
+            }
+        } catch (SOAPException e) {
+            DOMException ex = 
+                new DOMException(DOMException.HIERARCHY_REQUEST_ERR, e.getMessage());
+            ex.initCause(e);
+            throw ex;
+        }
+    }
+    
+    protected Element appendElement(Element child) throws SOAPException {
+        String namespaceURI = child.getNamespaceURI();
+        String prefix = child.getPrefix();
+
+        SOAPElementImpl<OMElement> childEle = (SOAPElementImpl<OMElement>)child;
+        
+        if (namespaceURI != null && namespaceURI.trim().length() > 0) {
+            childEle.omTarget.setNamespace(childEle.omTarget.declareNamespace(namespaceURI, prefix));
+        }
+        target.appendChild(childEle.target);
+        childEle.setParentElement((SOAPElement)this);
+        return childEle;
+    }
+
+    public final String getTextContent() throws DOMException {
+        return target.getTextContent();
+    }
+
+    public final NamedNodeMap getAttributes() {
+        return target.getAttributes();
+    }
+
+    public final org.w3c.dom.Node getNextSibling() {
+        return toSAAJNode(target.getNextSibling());
+    }
+
+    public final org.w3c.dom.Node getPreviousSibling() {
+        return toSAAJNode(target.getPreviousSibling());
+    }
+}
diff --git a/modules/saaj/src/org/apache/axis2/saaj/SAAJDocument.java b/modules/saaj/src/org/apache/axis2/saaj/SAAJDocument.java
new file mode 100644
index 0000000..221e025
--- /dev/null
+++ b/modules/saaj/src/org/apache/axis2/saaj/SAAJDocument.java
@@ -0,0 +1,179 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.axis2.saaj;
+
+import org.apache.axiom.om.OMDocument;
+import org.w3c.dom.Attr;
+import org.w3c.dom.CDATASection;
+import org.w3c.dom.Comment;
+import org.w3c.dom.DOMConfiguration;
+import org.w3c.dom.DOMException;
+import org.w3c.dom.DOMImplementation;
+import org.w3c.dom.Document;
+import org.w3c.dom.DocumentFragment;
+import org.w3c.dom.DocumentType;
+import org.w3c.dom.Element;
+import org.w3c.dom.EntityReference;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+import org.w3c.dom.ProcessingInstruction;
+import org.w3c.dom.Text;
+
+public final class SAAJDocument extends ProxyNode<Document,OMDocument> implements Document {
+    public SAAJDocument(OMDocument target) {
+        super((Document)target, target);
+    }
+
+    public String getValue() {
+        throw new UnsupportedOperationException();
+    }
+
+    public void setValue(String value) {
+        throw new UnsupportedOperationException();
+    }
+
+    public Node adoptNode(Node arg0) throws DOMException {
+        return target.adoptNode(arg0);
+    }
+
+    public Attr createAttribute(String arg0) throws DOMException {
+        return target.createAttribute(arg0);
+    }
+
+    public Attr createAttributeNS(String arg0, String arg1) throws DOMException {
+        return target.createAttributeNS(arg0, arg1);
+    }
+
+    public CDATASection createCDATASection(String arg0) throws DOMException {
+        return (CDATASection)toSAAJNode(target.createCDATASection(arg0));
+    }
+
+    public Comment createComment(String arg0) {
+        return (Comment)toSAAJNode(target.createComment(arg0));
+    }
+
+    public DocumentFragment createDocumentFragment() {
+        return target.createDocumentFragment();
+    }
+
+    public Element createElement(String arg0) throws DOMException {
+        return (Element)toSAAJNode(target.createElementNS(null, arg0));
+    }
+
+    public Element createElementNS(String arg0, String arg1) throws DOMException {
+        return (Element)toSAAJNode(target.createElementNS(arg0, arg1));
+    }
+
+    public EntityReference createEntityReference(String arg0) throws DOMException {
+        return target.createEntityReference(arg0);
+    }
+
+    public ProcessingInstruction createProcessingInstruction(String arg0, String arg1)
+            throws DOMException {
+        return target.createProcessingInstruction(arg0, arg1);
+    }
+
+    public Text createTextNode(String arg0) {
+        return (Text)toSAAJNode(target.createTextNode(arg0));
+    }
+
+    public DocumentType getDoctype() {
+        return target.getDoctype();
+    }
+
+    public Element getDocumentElement() {
+        return target.getDocumentElement();
+    }
+
+    public String getDocumentURI() {
+        return target.getDocumentURI();
+    }
+
+    public DOMConfiguration getDomConfig() {
+        return target.getDomConfig();
+    }
+
+    public Element getElementById(String arg0) {
+        return target.getElementById(arg0);
+    }
+
+    public NodeList getElementsByTagName(String arg0) {
+        return target.getElementsByTagName(arg0);
+    }
+
+    public NodeList getElementsByTagNameNS(String arg0, String arg1) {
+        return target.getElementsByTagNameNS(arg0, arg1);
+    }
+
+    public DOMImplementation getImplementation() {
+        return target.getImplementation();
+    }
+
+    public String getInputEncoding() {
+        return target.getInputEncoding();
+    }
+
+    public Node getParentNode() {
+        return target.getParentNode();
+    }
+
+    public boolean getStrictErrorChecking() {
+        return target.getStrictErrorChecking();
+    }
+
+    public String getXmlEncoding() {
+        return target.getXmlEncoding();
+    }
+
+    public boolean getXmlStandalone() {
+        return target.getXmlStandalone();
+    }
+
+    public String getXmlVersion() {
+        return target.getXmlVersion();
+    }
+
+    public Node importNode(Node arg0, boolean arg1) throws DOMException {
+        return target.importNode(arg0, arg1);
+    }
+
+    public void normalizeDocument() {
+        target.normalizeDocument();
+    }
+
+    public Node renameNode(Node arg0, String arg1, String arg2) throws DOMException {
+        return target.renameNode(arg0, arg1, arg2);
+    }
+
+    public void setDocumentURI(String arg0) {
+        target.setDocumentURI(arg0);
+    }
+
+    public void setStrictErrorChecking(boolean arg0) {
+        target.setStrictErrorChecking(arg0);
+    }
+
+    public void setXmlStandalone(boolean arg0) throws DOMException {
+        target.setXmlStandalone(arg0);
+    }
+
+    public void setXmlVersion(String arg0) throws DOMException {
+        target.setXmlVersion(arg0);
+    }
+}
diff --git a/modules/saaj/src/org/apache/axis2/saaj/SAAJNode.java b/modules/saaj/src/org/apache/axis2/saaj/SAAJNode.java
deleted file mode 100644
index c0a4b0e..0000000
--- a/modules/saaj/src/org/apache/axis2/saaj/SAAJNode.java
+++ /dev/null
@@ -1,472 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.axis2.saaj;
-
-import org.apache.axiom.om.OMContainer;
-import org.apache.axiom.om.OMElement;
-import org.apache.axiom.om.OMException;
-import org.apache.axiom.om.OMNode;
-import org.apache.axiom.soap.SOAPBody;
-import org.apache.axiom.soap.SOAPEnvelope;
-import org.apache.axiom.soap.SOAPFault;
-import org.apache.axiom.soap.SOAPFaultDetail;
-import org.apache.axiom.soap.SOAPFaultNode;
-import org.apache.axiom.soap.SOAPHeader;
-import org.apache.axiom.soap.SOAPHeaderBlock;
-import org.w3c.dom.Attr;
-import org.w3c.dom.Comment;
-import org.w3c.dom.DOMException;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.NamedNodeMap;
-import org.w3c.dom.NodeList;
-import org.w3c.dom.Text;
-import org.w3c.dom.TypeInfo;
-import org.w3c.dom.UserDataHandler;
-
-import javax.xml.soap.Node;
-import javax.xml.soap.SOAPElement;
-import javax.xml.soap.SOAPException;
-
-/**
- * A representation of a node (element) in a DOM representation of an XML document that provides
- * some tree manipulation methods. This interface provides methods for getting the value of a node,
- * for getting and setting the parent of a node, and for removing a node.
- */
-public abstract class SAAJNode<T extends org.w3c.dom.Node, S extends OMNode> implements Node {
-    protected final T target;
-    protected final S omTarget;
-    protected SOAPElement parentElement;
-    static final String SAAJ_NODE = "saaj.node";
-
-    public SAAJNode(T target, S omTarget) {
-        this.target = target;
-        this.omTarget = omTarget;
-    }
-
-    public final T getTarget() {
-        return target;
-    }
-
-    public final S getOMTarget() {
-        return omTarget;
-    }
-
-    /**
-     * Removes this <code>Node</code> object from the tree. Once removed, this node can be garbage
-     * collected if there are no application references to it.
-     */
-    public void detachNode() {
-        this.detach();
-    }
-
-    public OMNode detach() {
-        parentElement = null;
-        return null;
-    }
-
-    /**
-     * Removes this <code>Node</code> object from the tree. Once removed, this node can be garbage
-     * collected if there are no application references to it.
-     */
-    public SOAPElement getParentElement() {
-        return this.parentElement;
-    }
-
-    public OMContainer getParent() {
-        return (OMContainer)this.parentElement;
-    }
-
-    /* public OMNode getOMNode() {
-        return omNode;
-    }*/
-
-    /**
-     * Notifies the implementation that this <code>Node</code> object is no longer being used by the
-     * application and that the implementation is free to reuse this object for nodes that may be
-     * created later.
-     * <p/>
-     * Calling the method <code>recycleNode</code> implies that the method <code>detachNode</code>
-     * has been called previously.
-     */
-    public void recycleNode() {
-        // No corresponding implementation in OM
-        // There is no implementation in Axis 1.2 also
-    }
-
-    /**
-     * Sets the parent of this <code>Node</code> object to the given <code>SOAPElement</code>
-     * object.
-     *
-     * @param parent the <code>SOAPElement</code> object to be set as the parent of this
-     *               <code>Node</code> object
-     * @throws SOAPException if there is a problem in setting the parent to the given element
-     * @see #getParentElement() getParentElement()
-     */
-    public void setParentElement(SOAPElement parent) throws SOAPException {
-        this.parentElement = parent;
-    }
-
-    public void setType(int nodeType) throws OMException {
-        throw new UnsupportedOperationException("TODO");
-    }
-
-    public int getType() {
-        return this.getNodeType();
-    }
-
-    public TypeInfo getSchemaTypeInfo() {
-        // TODO - Fixme.
-        throw new UnsupportedOperationException("TODO");
-    }
-
-    public void setIdAttribute(String name, boolean isId) throws DOMException {
-        // TODO - Fixme.
-        throw new UnsupportedOperationException("TODO");
-    }
-
-    public void setIdAttributeNS(String namespaceURI, String localName, boolean isId)
-            throws DOMException {
-        // TODO - Fixme.
-        throw new UnsupportedOperationException("TODO");
-    }
-
-    public void setIdAttributeNode(Attr idAttr, boolean isId) throws DOMException {
-        // TODO - Fixme.
-        throw new UnsupportedOperationException("TODO");
-    }
-
-    /**
-     * Converts or extracts the SAAJ node from the given DOM Node (domNode)
-     *
-     * @param domNode
-     * @return the SAAJ Node corresponding to the domNode
-     */
-    javax.xml.soap.Node toSAAJNode(org.w3c.dom.Node domNode) {
-        return toSAAJNode(domNode, this);
-    }
-    
-    /**
-     * Converts or extracts the SAAJ node from the given DOM Node (domNode)
-     *
-     * @param domNode
-     * @return the SAAJ Node corresponding to the domNode
-     */
-    static javax.xml.soap.Node toSAAJNode(org.w3c.dom.Node domNode, Node parentNode) {
-        if (domNode == null) {
-            return null;
-        }
-        Node saajNode = (Node)domNode.getUserData(SAAJ_NODE);
-        if (saajNode == null) {  // if SAAJ node has not been set in userData, try to construct it
-            return toSAAJNode2(domNode, parentNode);
-        }
-        // update siblings for text nodes
-        if (domNode instanceof org.w3c.dom.Text || domNode instanceof org.w3c.dom.Comment) {
-            org.w3c.dom.Node prevSiblingDOMNode = domNode.getPreviousSibling();
-            org.w3c.dom.Node nextSiblingDOMNode = domNode.getNextSibling();
-            
-            TextImplEx saajTextNode = (TextImplEx)saajNode;
-            
-            saajTextNode.setPreviousSibling(prevSiblingDOMNode);
-            saajTextNode.setNextSibling(nextSiblingDOMNode);
-        }
-        return saajNode;
-    }
-
-    private static javax.xml.soap.Node toSAAJNode2(org.w3c.dom.Node domNode, Node parentNode) {
-        if (domNode == null) {
-            return null;
-        }
-        if (domNode instanceof org.w3c.dom.Text) {
-            Text text = (Text)domNode;
-            org.w3c.dom.Node prevSiblingDOMNode = text.getPreviousSibling();
-            org.w3c.dom.Node nextSiblingDOMNode = text.getNextSibling();
-            SOAPElementImpl<OMElement> parent = new SOAPElementImpl<OMElement>((OMElement)domNode.getParentNode());
-            TextImplEx saajTextNode =
-                    new TextImplEx(text.getData(), parent, prevSiblingDOMNode, nextSiblingDOMNode);
-            domNode.setUserData(SAAJ_NODE, saajTextNode, null);
-            return saajTextNode;
-        } else if (domNode instanceof org.w3c.dom.Comment) {
-            Comment comment = (Comment)domNode;
-            org.w3c.dom.Node prevSiblingDOMNode = comment.getPreviousSibling();
-            org.w3c.dom.Node nextSiblingDOMNode = comment.getNextSibling();
-            SOAPElementImpl<OMElement> parent = new SOAPElementImpl<OMElement>((OMElement)domNode.getParentNode());
-            CommentImpl saajTextNode = new CommentImpl(comment.getData(),
-                                                     parent, prevSiblingDOMNode,
-                                                     nextSiblingDOMNode);
-            domNode.setUserData(SAAJ_NODE, saajTextNode, null);
-            return saajTextNode;
-        } else if (domNode instanceof SOAPBody) {
-            javax.xml.soap.SOAPBody saajSOAPBody =
-                    new org.apache.axis2.saaj.SOAPBodyImpl((SOAPBody)domNode);
-            domNode.setUserData(SAAJ_NODE, saajSOAPBody, null);
-            return saajSOAPBody;
-        } else if (domNode instanceof SOAPEnvelope) {
-            javax.xml.soap.SOAPEnvelope saajEnvelope
-                    = new org.apache.axis2.saaj.SOAPEnvelopeImpl((SOAPEnvelope)domNode);
-            domNode.setUserData(SAAJ_NODE, saajEnvelope, null);
-            return saajEnvelope;
-        } else if (domNode instanceof SOAPFaultNode) {
-            javax.xml.soap.SOAPFaultElement saajSOAPFaultEle
-                    = new org.apache.axis2.saaj.SOAPFaultElementImpl<SOAPFaultNode>((SOAPFaultNode)domNode);
-            domNode.setUserData(SAAJ_NODE, saajSOAPFaultEle, null);
-            return saajSOAPFaultEle;
-        } else if (domNode instanceof SOAPFaultDetail) {
-            javax.xml.soap.Detail saajDetail
-                    = new org.apache.axis2.saaj.DetailImpl((SOAPFaultDetail)domNode);
-            domNode.setUserData(SAAJ_NODE, saajDetail, null);
-            return saajDetail;
-        } else if (domNode instanceof SOAPFault) {
-            javax.xml.soap.SOAPFault saajSOAPFault
-                    = new org.apache.axis2.saaj.SOAPFaultImpl((SOAPFault)domNode);
-            domNode.setUserData(SAAJ_NODE, saajSOAPFault, null);
-            return saajSOAPFault;
-        } else if (domNode instanceof SOAPHeaderBlock) {
-            javax.xml.soap.SOAPHeaderElement saajSOAPHeaderEle
-                    = new org.apache.axis2.saaj.SOAPHeaderElementImpl((SOAPHeaderBlock)domNode);
-            domNode.setUserData(SAAJ_NODE, saajSOAPHeaderEle, null);
-            return saajSOAPHeaderEle;
-        } else if (domNode instanceof SOAPHeader) {
-            javax.xml.soap.SOAPHeader saajSOAPHeader
-                    = new org.apache.axis2.saaj.SOAPHeaderImpl((SOAPHeader)domNode);
-            domNode.setUserData(SAAJ_NODE, saajSOAPHeader, null);
-            return saajSOAPHeader;
-        } else if (domNode instanceof Document) {
-            
-            // Must be a SOAPEnvelope
-            if (!(parentNode instanceof org.apache.axis2.saaj.SOAPEnvelopeImpl)) {
-                return null;
-            }
-            org.apache.axis2.saaj.SOAPEnvelopeImpl saajEnv = 
-                (org.apache.axis2.saaj.SOAPEnvelopeImpl) parentNode;
-            javax.xml.soap.SOAPPart saajSOAPPart = null;
-            if (saajEnv.getSOAPPartParent() != null) {
-                // return existing SOAPPart
-                saajSOAPPart = saajEnv.getSOAPPartParent();
-                
-            } else {
-                // Create Message and SOAPPart
-                SOAPMessageImpl saajSOAPMessage = 
-                        new SOAPMessageImpl(saajEnv);
-                saajSOAPPart = saajSOAPMessage.getSOAPPart();
-            }
-            
-            domNode.setUserData(SAAJ_NODE, saajSOAPPart, null);
-            return saajSOAPPart;
-        } else { // instanceof org.apache.axis2.om.impl.dom.ElementImpl
-            SOAPElementImpl<OMElement> saajSOAPElement = new SOAPElementImpl<OMElement>((OMElement)domNode);
-            domNode.setUserData(SAAJ_NODE, saajSOAPElement, null);
-            return saajSOAPElement;
-        }
-    }
-    
-    // TODO: the existence of this method probably indicates a problem in TextImplEx
-    public org.w3c.dom.Node getParentNode() {
-        return null;
-    }
-
-    public final boolean hasAttributes() {
-        return parentElement.hasAttributes();
-    }
-
-    public final boolean isSupported(String feature, String version) {
-        return parentElement.isSupported(feature, version);
-    }
-
-    public final String getBaseURI() {
-        return parentElement.getBaseURI();
-    }
-
-    public final String getNodeValue() throws DOMException {
-        return target.getNodeValue();
-    }
-
-    public final void setNodeValue(String nodeValue) throws DOMException {
-        target.setNodeValue(nodeValue);
-    }
-
-    public final org.w3c.dom.Node insertBefore(org.w3c.dom.Node newChild, org.w3c.dom.Node refChild) throws DOMException {
-        return target.insertBefore(newChild, refChild);
-    }
-
-    public final org.w3c.dom.Node replaceChild(org.w3c.dom.Node newChild, org.w3c.dom.Node oldChild) throws DOMException {
-        return target.replaceChild(newChild, oldChild);
-    }
-
-    public final org.w3c.dom.Node cloneNode(boolean deep) {
-        return target.cloneNode(deep);
-    }
-
-    public final void normalize() {
-        target.normalize();
-    }
-
-    public final void setPrefix(String prefix) throws DOMException {
-        target.setPrefix(prefix);
-    }
-
-    public final short compareDocumentPosition(org.w3c.dom.Node other) throws DOMException {
-        return target.compareDocumentPosition(other);
-    }
-
-    public final void setTextContent(String textContent) throws DOMException {
-        target.setTextContent(textContent);
-    }
-
-    public final boolean isSameNode(org.w3c.dom.Node other) {
-        return target.isSameNode(other);
-    }
-
-    public final String lookupPrefix(String namespaceURI) {
-        return target.lookupPrefix(namespaceURI);
-    }
-
-    public final boolean isDefaultNamespace(String namespaceURI) {
-        return target.isDefaultNamespace(namespaceURI);
-    }
-
-    public final String lookupNamespaceURI(String prefix) {
-        return null;
-    }
-
-    public final boolean isEqualNode(org.w3c.dom.Node arg) {
-        return target.isEqualNode(arg);
-    }
-
-    public final Object getFeature(String feature, String version) {
-        return target.getFeature(feature, version);
-    }
-
-    public final Object setUserData(String key, Object data, UserDataHandler handler) {
-        return target.setUserData(key, data, handler);
-    }
-
-    public final Object getUserData(String key) {
-        return target.getUserData(key);
-    }
-
-    public final org.w3c.dom.Node removeChild(org.w3c.dom.Node oldChild) throws DOMException {
-        if (oldChild instanceof SAAJNode) {
-            oldChild = ((SAAJNode<?,?>)oldChild).getTarget();
-        }
-        return target.removeChild(oldChild);
-    }
-
-    public final String getNodeName() {
-        return target.getNodeName();
-    }
-
-    public final short getNodeType() {
-        return parentElement.getNodeType();
-    }
-
-    public final Document getOwnerDocument() {
-        return target.getOwnerDocument();
-    }
-
-    public final String getLocalName() {
-        return target.getLocalName();
-    }
-
-    public final String getNamespaceURI() {
-        return target.getNamespaceURI();
-    }
-
-    public final String getPrefix() {
-        return target.getPrefix();
-    }
-
-    public final org.w3c.dom.Node getFirstChild() {
-        return toSAAJNode(target.getFirstChild());
-    }
-
-    public final boolean hasChildNodes() {
-        return target.hasChildNodes();
-    }
-
-    public final org.w3c.dom.Node getLastChild() {
-        return toSAAJNode(target.getLastChild());
-    }
-
-    protected final NodeList toSAAJNodeList(NodeList nodes) {
-        NodeListImpl result = new NodeListImpl();
-        for (int i = 0; i < nodes.getLength(); i++) {
-            result.addNode(toSAAJNode(nodes.item(i)));
-        }
-        return result;
-    }
-
-    public final NodeList getChildNodes() {
-        return toSAAJNodeList(target.getChildNodes());
-    }
-
-    public final org.w3c.dom.Node appendChild(org.w3c.dom.Node child) throws DOMException {        
-        if (getOwnerDocument() != child.getOwnerDocument()) {
-            throw new DOMException(DOMException.WRONG_DOCUMENT_ERR, "Wrong document");
-        }
-        try {
-            if (child instanceof Text) {
-                return appendText((Text)child);
-            } else if (child instanceof Element) {
-                return appendElement((Element)child);
-            }
-        } catch (SOAPException e) {
-            DOMException ex = 
-                new DOMException(DOMException.HIERARCHY_REQUEST_ERR, e.getMessage());
-            ex.initCause(e);
-            throw ex;
-        }
-        throw new DOMException(DOMException.HIERARCHY_REQUEST_ERR,
-                "An attempt was made to insert a node where it is not permitted.");
-    }
-
-    protected Text appendText(Text child) throws SOAPException {
-        String text = child.getData();
-        Text textNode = getOwnerDocument().createTextNode(text);
-        target.appendChild(textNode);
-        TextImplEx saajTextNode = new TextImplEx(text, (SOAPElement)this);
-        textNode.setUserData(SAAJ_NODE, saajTextNode, null);
-        return saajTextNode;
-    }
-    
-    protected Element appendElement(Element child) throws SOAPException {
-        String namespaceURI = child.getNamespaceURI();
-        String prefix = child.getPrefix();
-
-        SOAPElementImpl<OMElement> childEle = new SOAPElementImpl<OMElement>((OMElement)child);
-        
-        childEle.target.setUserData(SAAJ_NODE, childEle, null);
-        if (namespaceURI != null && namespaceURI.trim().length() > 0) {
-            childEle.omTarget.setNamespace(childEle.omTarget.declareNamespace(namespaceURI, prefix));
-        }
-        target.appendChild(childEle.target);
-        childEle.target.getParentNode().setUserData(SAAJ_NODE, this, null);
-        childEle.setParentElement((SOAPElement)this);
-        return childEle;
-    }
-
-    public final String getTextContent() throws DOMException {
-        return target.getTextContent();
-    }
-
-    public final NamedNodeMap getAttributes() {
-        return target.getAttributes();
-    }
-}
diff --git a/modules/saaj/src/org/apache/axis2/saaj/SOAPBodyElementImpl.java b/modules/saaj/src/org/apache/axis2/saaj/SOAPBodyElementImpl.java
index 4b41854..7453b21 100644
--- a/modules/saaj/src/org/apache/axis2/saaj/SOAPBodyElementImpl.java
+++ b/modules/saaj/src/org/apache/axis2/saaj/SOAPBodyElementImpl.java
@@ -39,7 +39,7 @@
         if (!(parent instanceof SOAPBody)) {
             throw new IllegalArgumentException("Parent is not a SOAPBody");
         }
-        this.parentElement = parent;
+        super.setParentElement(parent);
     }
 
     public SOAPElement addAttribute(QName qname, String value) throws SOAPException {
diff --git a/modules/saaj/src/org/apache/axis2/saaj/SOAPBodyImpl.java b/modules/saaj/src/org/apache/axis2/saaj/SOAPBodyImpl.java
index f87e41d..18a807f 100644
--- a/modules/saaj/src/org/apache/axis2/saaj/SOAPBodyImpl.java
+++ b/modules/saaj/src/org/apache/axis2/saaj/SOAPBodyImpl.java
@@ -22,9 +22,8 @@
 import org.apache.axiom.om.OMElement;
 import org.apache.axiom.om.OMNamespace;
 import org.apache.axiom.om.OMNode;
-import org.apache.axiom.soap.SOAP11Version;
-import org.apache.axiom.soap.SOAP12Version;
 import org.apache.axiom.soap.SOAPFactory;
+import org.apache.axiom.soap.SOAPVersion;
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;
 import org.w3c.dom.NamedNodeMap;
@@ -64,10 +63,8 @@
             throw new SOAPException("A SOAPFault has been already added to this SOAPBody");
         }
         SOAPBodyElementImpl<OMElement> childEle =
-                new SOAPBodyElementImpl<OMElement>((OMElement)getOwnerDocument().createElement(localName));
-        childEle.target.setUserData(SAAJ_NODE, childEle, null);
+                new SOAPBodyElementImpl<OMElement>((OMElement)target.getOwnerDocument().createElementNS(null, localName));
         target.appendChild(childEle.target);
-        childEle.target.getParentNode().setUserData(SAAJ_NODE, this, null);
         isBodyElementAdded = true;
         return childEle;
     }
@@ -80,12 +77,10 @@
         }
         SOAPBodyElementImpl<OMElement> childEle =
                 new SOAPBodyElementImpl<OMElement>(
-                        (OMElement)getOwnerDocument().createElementNS(namespaceURI,
+                        (OMElement)target.getOwnerDocument().createElementNS(namespaceURI,
                                                                         localName));
-        childEle.target.setUserData(SAAJ_NODE, childEle, null);
         childEle.omTarget.setNamespace(childEle.omTarget.declareNamespace(namespaceURI, prefix));
         target.appendChild(childEle.target);
-        childEle.target.getParentNode().setUserData(SAAJ_NODE, this, null);
         childEle.setParentElement(this);
         return childEle;
     }
@@ -95,18 +90,24 @@
         String namespaceURI = child.getNamespaceURI();
         String prefix = child.getPrefix();
 
-        SOAPBodyElementImpl<OMElement> childEle = new SOAPBodyElementImpl<OMElement>((OMElement)child);
+        SOAPBodyElementImpl<?> childEle = toSOAPBodyElement(child);
 
-        childEle.target.setUserData(SAAJ_NODE, childEle, null);
         if (namespaceURI != null && namespaceURI.trim().length() > 0) {
             childEle.omTarget.setNamespace(childEle.omTarget.declareNamespace(namespaceURI, prefix));
         }
         target.appendChild(childEle.target);
-        childEle.target.getParentNode().setUserData(SAAJ_NODE, this, null);
         childEle.setParentElement(this);
         return childEle;
     }
     
+    private SOAPBodyElementImpl<?> toSOAPBodyElement(Element element) {
+        if (element instanceof SOAPBodyElementImpl) {
+            return (SOAPBodyElementImpl<?>)element;
+        } else {
+            return new SOAPBodyElementImpl<OMElement>(((SOAPElementImpl<?>)element).omTarget);
+        }
+    }
+    
     public SOAPElement addChildElement(SOAPElement soapElement) throws SOAPException {
         String namespaceURI = soapElement.getNamespaceURI();
         String prefix = soapElement.getPrefix();
@@ -116,12 +117,12 @@
         if (namespaceURI == null || namespaceURI.trim().length() == 0) {
             childEle =
                 new SOAPBodyElementImpl<OMElement>(
-                        (OMElement)getOwnerDocument().createElement(localName));
+                        (OMElement)target.getOwnerDocument().createElementNS(null, localName));
         } else {
             omTarget.declareNamespace(namespaceURI, prefix);
             childEle =
                 new SOAPBodyElementImpl<OMElement>(
-                        (OMElement)getOwnerDocument().createElementNS(namespaceURI,
+                        (OMElement)target.getOwnerDocument().createElementNS(namespaceURI,
                                                                         localName));            
         }
 
@@ -139,12 +140,10 @@
             }
         }
 
-        childEle.target.setUserData(SAAJ_NODE, childEle, null);
         if (namespaceURI != null && namespaceURI.trim().length() > 0) {
             childEle.omTarget.setNamespace(childEle.omTarget.declareNamespace(namespaceURI, prefix));
         }
         target.appendChild(childEle.target);
-        childEle.target.getParentNode().setUserData(SAAJ_NODE, this, null);
         childEle.setParentElement(this);
         return childEle;
     }
@@ -163,20 +162,18 @@
         SOAPBodyElementImpl<OMElement> childEle;
         if (uri == null || "".equals(uri)) {
             childEle = new SOAPBodyElementImpl<OMElement>(
-                    (OMElement)getOwnerDocument().createElement(localName));
+                    (OMElement)target.getOwnerDocument().createElementNS(null, localName));
         } else if (prefix.length() == 0) {
             childEle = new SOAPBodyElementImpl<OMElement>(
-                (OMElement)getOwnerDocument().createElementNS(uri,
+                (OMElement)target.getOwnerDocument().createElementNS(uri,
                                                                 localName));
         } else {
             childEle = new SOAPBodyElementImpl<OMElement>(
-                    (OMElement)getOwnerDocument().createElementNS(uri,
+                    (OMElement)target.getOwnerDocument().createElementNS(uri,
                                                                     prefix + ":" + localName));
         }
-        childEle.target.setUserData(SAAJ_NODE, childEle, null);
         childEle.omTarget.setNamespace(omTarget.getOMFactory().createOMNamespace(uri, prefix));
         target.appendChild(childEle.target);
-        childEle.target.getParentNode().setUserData(SAAJ_NODE, this, null);
         isBodyElementAdded = true;
         childEle.setParentElement(this);
         return childEle;
@@ -198,7 +195,6 @@
         // set default fault code and string
         saajSOAPFault.setDefaults();
         
-        ((Element)omTarget.getFault()).setUserData(SAAJ_NODE, saajSOAPFault, null);
         return saajSOAPFault;
     }
 
@@ -399,11 +395,11 @@
         }
         if (node instanceof org.w3c.dom.Text) {
             org.w3c.dom.Text domText = (org.w3c.dom.Text)node;
-            return new TextImplEx(domText.getData(), parent);
+            return new TextImplEx(domText.getData());
         }
         if (node instanceof org.w3c.dom.Comment) {
             org.w3c.dom.Comment domText = (org.w3c.dom.Comment)node;
-            return new CommentImpl(domText.getData(), parent);
+            return new CommentImpl(domText.getData());
         }
         Element domEle = ((Element)node);
         int indexOfColon = domEle.getTagName().indexOf(":");
@@ -469,15 +465,6 @@
         return saajEle;
     }
 
-    public void detachNode() {
-        this.detach();
-    }
-
-    public OMNode detach() {
-        this.parentElement = null;
-        return this.omTarget.detach();
-    }
-
     public Iterator getChildElements(Name name) {
         QName qName = new QName(name.getURI(), name.getLocalName());
         return getChildren(omTarget.getChildrenWithName(qName));
@@ -496,31 +483,29 @@
         SOAPBodyElementImpl<OMElement> childEle;
         if (qname.getNamespaceURI() == null || "".equals(qname.getNamespaceURI())) {
             childEle = new SOAPBodyElementImpl<OMElement>(
-                    (OMElement)getOwnerDocument().createElement(qname.getLocalPart()));
+                    (OMElement)target.getOwnerDocument().createElementNS(null, qname.getLocalPart()));
         }else if(null == qname.getPrefix() || "".equals(qname.getPrefix().trim())) {
             childEle = new SOAPBodyElementImpl<OMElement>(
-                    (OMElement)getOwnerDocument().createElementNS(qname.getNamespaceURI(),
+                    (OMElement)target.getOwnerDocument().createElementNS(qname.getNamespaceURI(),
                                                                             qname.getLocalPart()));
         }else {
             childEle = new SOAPBodyElementImpl<OMElement>(
-                    (OMElement)getOwnerDocument().createElementNS(qname.getNamespaceURI(),
+                    (OMElement)target.getOwnerDocument().createElementNS(qname.getNamespaceURI(),
                                                                     qname.getPrefix() + ":" +
                                                                             qname.getLocalPart()));
         }
-        childEle.target.setUserData(SAAJ_NODE, childEle, null);
         childEle.omTarget.setNamespace(omTarget.getOMFactory().createOMNamespace(qname.getNamespaceURI(), qname.getPrefix()));
 
         target.appendChild(childEle.target);
-        childEle.target.getParentNode().setUserData(SAAJ_NODE, this, null);
         isBodyElementAdded = true;
         childEle.setParentElement(this);
         return childEle;
     }
 
     public QName createQName(String localName, String prefix) throws SOAPException {
-        if (((SOAPFactory)this.omTarget.getOMFactory()).getSOAPVersion() == SOAP11Version.getSingleton()) {
+        if (((SOAPFactory)this.omTarget.getOMFactory()).getSOAPVersion() == SOAPVersion.SOAP11) {
             return super.createQName(localName, prefix);
-        } else if (((SOAPFactory)this.omTarget.getOMFactory()).getSOAPVersion() == SOAP12Version.getSingleton()) {
+        } else if (((SOAPFactory)this.omTarget.getOMFactory()).getSOAPVersion() == SOAPVersion.SOAP12) {
             if (this.omTarget.findNamespaceURI(prefix) == null) {
                 throw new SOAPException("Only Namespace Qualified elements are allowed");
             } else {
@@ -564,11 +549,11 @@
         return super.addTextNode(text);
     }
 
-    private Iterator getChildren(Iterator childIter) {
+    private Iterator getChildren(Iterator<? extends OMNode> childIter) {
         Collection childElements = new ArrayList();
         while (childIter.hasNext()) {
             org.w3c.dom.Node domNode = (org.w3c.dom.Node)childIter.next();
-            Node saajNode = toSAAJNode(domNode);
+            org.w3c.dom.Node saajNode = toSAAJNode(domNode);
             if (saajNode instanceof javax.xml.soap.Text) {
                 childElements.add(saajNode);
             } else if (!(saajNode instanceof SOAPBodyElement)) {
@@ -578,14 +563,9 @@
 
                         SOAPFactory omFactory = (SOAPFactory)this.omTarget.getOMFactory();
                         org.apache.axiom.soap.SOAPFault fault = omFactory.createSOAPFault(omTarget);
-                        SOAPFaultImpl saajSOAPFault = new SOAPFaultImpl(fault);
-                        ((Element)omTarget.getFault())
-                                .setUserData(SAAJ_NODE, saajSOAPFault, null);
-                        childElements.add(saajSOAPFault);
+                        childElements.add(new SOAPFaultImpl(fault));
                     } else {
-                        SOAPBodyElement saajBodyEle = new SOAPBodyElementImpl<OMElement>((OMElement)domNode);
-                        domNode.setUserData(SAAJ_NODE, saajBodyEle, null);
-                        childElements.add(saajBodyEle);
+                        childElements.add(new SOAPBodyElementImpl<OMElement>((OMElement)domNode));
                     }
                 }
             } else {
diff --git a/modules/saaj/src/org/apache/axis2/saaj/SOAPElementImpl.java b/modules/saaj/src/org/apache/axis2/saaj/SOAPElementImpl.java
index 2b304bf..b9eb987 100644
--- a/modules/saaj/src/org/apache/axis2/saaj/SOAPElementImpl.java
+++ b/modules/saaj/src/org/apache/axis2/saaj/SOAPElementImpl.java
@@ -23,11 +23,8 @@
 import org.apache.axiom.om.OMElement;
 import org.apache.axiom.om.OMNamespace;
 import org.apache.axiom.om.OMNode;
-import org.apache.axiom.om.OMText;
-import org.apache.axiom.om.impl.OMElementEx;
-import org.apache.axiom.soap.SOAP11Version;
-import org.apache.axiom.soap.SOAP12Version;
 import org.apache.axiom.soap.SOAPFactory;
+import org.apache.axiom.soap.SOAPVersion;
 import org.w3c.dom.Attr;
 import org.w3c.dom.DOMException;
 import org.w3c.dom.Element;
@@ -53,7 +50,7 @@
 import java.util.Collection;
 import java.util.Iterator;
 
-public class SOAPElementImpl<T extends OMElement> extends SAAJNode<Element,T> implements SOAPElement {
+public class SOAPElementImpl<T extends OMElement> extends NodeImpl<Element,T> implements SOAPElement {
     private String encodingStyle;
 
     public SOAPElementImpl(T element) {
@@ -71,7 +68,7 @@
      */
     public SOAPElement addAttribute(Name name, String value) throws SOAPException {
         if (name.getURI() == null || name.getURI().trim().length() == 0) {
-            target.setAttribute(name.getLocalName(), value);
+            target.setAttributeNS("", name.getLocalName(), value);
         } else {
             target.setAttributeNS(name.getURI(), name.getPrefix() + ":" + name.getLocalName(),
                                    value);
@@ -98,11 +95,11 @@
 
         SOAPElementImpl<OMElement> childEle;        
         if (namespaceURI == null || namespaceURI.trim().length() == 0) {
-            childEle =  new SOAPElementImpl<OMElement>((OMElement)getOwnerDocument().createElement(localName));
+            childEle =  new SOAPElementImpl<OMElement>((OMElement)getOwnerDocument().createElementNS(null, localName));
         } else {
             omTarget.declareNamespace(namespaceURI, prefix);
             childEle =
-                new SOAPElementImpl<OMElement>((OMElement)getOwnerDocument().createElementNS(namespaceURI,
+                new SOAPElementImpl<OMElement>((OMElement)target.getOwnerDocument().createElementNS(namespaceURI,
                                                                                     localName));
         }
         
@@ -120,12 +117,10 @@
             }
         }
 
-        childEle.target.setUserData(SAAJ_NODE, childEle, null);
         if (namespaceURI != null && namespaceURI.trim().length() > 0) {
             childEle.omTarget.setNamespace(childEle.omTarget.declareNamespace(namespaceURI, prefix));
         }
         target.appendChild(childEle.target);
-        childEle.target.getParentNode().setUserData(SAAJ_NODE, this, null);
         childEle.setParentElement(this);
         return childEle;
     }
@@ -138,16 +133,13 @@
         if (prefix == null) {
             prefix = "";
         }
-        SOAPElementImpl<OMElement> childEle =
-                new SOAPElementImpl<OMElement>((OMElement)getOwnerDocument().
-                        createElementNS(namespaceURI, prefix.length() == 0 ? localName : prefix + ":" + localName));
+        SOAPElementImpl<OMElement> childEle = (SOAPElementImpl<OMElement>)getOwnerDocument().
+                        createElementNS(namespaceURI, prefix.length() == 0 ? localName : prefix + ":" + localName);
     
-        childEle.target.setUserData(SAAJ_NODE, childEle, null);
         childEle.omTarget.setNamespace(prefix.length() == 0
                 ? childEle.omTarget.declareDefaultNamespace(namespaceURI)
                 : childEle.omTarget.declareNamespace(namespaceURI, prefix));
         target.appendChild(childEle.target);
-        childEle.target.getParentNode().setUserData(SAAJ_NODE, this, null);
         childEle.setParentElement(this);
         return childEle;
     }
@@ -170,10 +162,8 @@
       */
     public SOAPElement addChildElement(String localName) throws SOAPException {
         SOAPElementImpl<OMElement> childEle =
-                new SOAPElementImpl<OMElement>((OMElement)getOwnerDocument().createElement(localName));
-        childEle.target.setUserData(SAAJ_NODE, childEle, null);
+                (SOAPElementImpl<OMElement>)getOwnerDocument().createElementNS(null, localName);
         target.appendChild(childEle.target);
-        childEle.target.getParentNode().setUserData(SAAJ_NODE, this, null);
         childEle.setParentElement(this);
         return childEle;
     }
@@ -182,6 +172,9 @@
       * @see javax.xml.soap.SOAPElement#addNamespaceDeclaration(java.lang.String, java.lang.String)
       */
     public SOAPElement addNamespaceDeclaration(String prefix, String uri) throws SOAPException {
+        if (uri == null) {
+            uri = "";
+        }
         if (prefix == null || prefix.length() == 0) {
             omTarget.declareDefaultNamespace(uri);
         } else {
@@ -204,9 +197,7 @@
         //Therefore create a text node and add it
         //TODO: May need to address the situation where the prev sibling of the textnode itself is a textnode
         Text textNode = getOwnerDocument().createTextNode(text);
-        target.appendChild(textNode);
-        TextImplEx saajTextNode = new TextImplEx((OMText)textNode, this);
-        textNode.setUserData(SAAJ_NODE, saajTextNode, null);
+        appendChild(textNode);
         return this;
     }
 
@@ -274,7 +265,7 @@
       */
     public Iterator getChildElements(Name name) {
         QName qName = new QName(name.getURI(), name.getLocalName());
-        Iterator childIter = omTarget.getChildrenWithName(qName);
+        Iterator<OMElement> childIter = omTarget.getChildrenWithName(qName);
         Collection childElements = new ArrayList();
         while (childIter.hasNext()) {
             childElements.add(toSAAJNode((org.w3c.dom.Node)childIter.next()));
@@ -423,7 +414,7 @@
     }
 
     public Iterator getChildElements(QName qname) {
-        Iterator childIter = omTarget.getChildrenWithName(qname);
+        Iterator<OMElement> childIter = omTarget.getChildrenWithName(qname);
         Collection childElements = new ArrayList();
         while (childIter.hasNext()) {
             childElements.add(toSAAJNode((org.w3c.dom.Node)childIter.next()));
@@ -507,7 +498,7 @@
      *          the encodingStyle is invalid for this SOAPElement.
      */
     public void setEncodingStyle(String encodingStyle) throws SOAPException {
-        if (((SOAPFactory)this.omTarget.getOMFactory()).getSOAPVersion() == SOAP11Version.getSingleton()) {
+        if (((SOAPFactory)this.omTarget.getOMFactory()).getSOAPVersion() == SOAPVersion.SOAP11) {
             try {
                 URI uri = new URI(encodingStyle);
                 if (!(this instanceof SOAPEnvelope)) {
@@ -521,7 +512,7 @@
                 throw new IllegalArgumentException("Invalid Encoding style : "
                         + encodingStyle + ":" + e);
             }
-        } else if (((SOAPFactory)this.omTarget.getOMFactory()).getSOAPVersion() == SOAP12Version.getSingleton()) {
+        } else if (((SOAPFactory)this.omTarget.getOMFactory()).getSOAPVersion() == SOAPVersion.SOAP12) {
             if (this instanceof SOAPHeader || this instanceof SOAPBody ||
                     this instanceof SOAPFault ||
                     this instanceof SOAPFaultElement || this instanceof SOAPEnvelope ||
@@ -645,30 +636,6 @@
     }
 
     /**
-     * Returns the parent element of this <code>Node</code> object. This method can throw an
-     * <code>UnsupportedOperationException</code> if the tree is not kept in memory.
-     *
-     * @return the <code>SOAPElement</code> object that is the parent of this <code>Node</code>
-     *         object or <code>null</code> if this <code>Node</code> object is root
-     * @throws UnsupportedOperationException if the whole tree is not kept in memory
-     * @see #setParentElement(javax.xml.soap.SOAPElement) setParentElement(javax.xml.soap.SOAPElement)
-     */
-    public SOAPElement getParentElement() {
-        if (this.parentElement == null) {
-            javax.xml.soap.Node parentNode = toSAAJNode(target.getParentNode());
-            if (parentNode instanceof SOAPElement) {
-                this.parentElement = (SOAPElement) parentNode;
-            }
-        }
-        return this.parentElement;
-    }
-
-    public void setParentElement(SOAPElement parent) throws SOAPException {
-        this.parentElement = parent;
-        ((OMElementEx)this.omTarget).setParent(((SOAPElementImpl<? extends OMElement>)parent).omTarget);
-    }
-
-    /**
      * Returns the the value of the immediate child of this <code>Node</code> object if a child
      * exists and its value is text.
      *
@@ -696,28 +663,6 @@
         return super.clone();
     }
 
-    public Node getParentNode() {
-        Node parentNode = null;
-        if (this.parentElement == null) {
-            parentNode = toSAAJNode(target.getParentNode());
-            if (parentNode instanceof SOAPElement) {
-                this.parentElement = (SOAPElement) parentNode;
-            }
-        } else {
-            parentNode = this.parentElement;
-        }
-        return parentNode;
-    }
-
-    /** dom Node method */
-    public org.w3c.dom.Node getNextSibling() {
-        return toSAAJNode(target.getNextSibling());
-    }
-
-    public Node getPreviousSibling() {
-        return toSAAJNode(target.getPreviousSibling());
-    }
-
     /**
      * If this is a Text node then this method will set its value, otherwise it sets the value of
      * the immediate (Text) child of this node. The value of the immediate child of this node can be
@@ -746,16 +691,6 @@
         }
     }
 
-    public void detachNode() {
-        this.detach();
-    }
-
-    public OMNode detach() {
-        OMNode omNode = this.omTarget.detach();
-        this.parentElement = null;
-        return omNode;
-    }
-
     public String toString() {
         return target.toString();
     }
diff --git a/modules/saaj/src/org/apache/axis2/saaj/SOAPEnvelopeImpl.java b/modules/saaj/src/org/apache/axis2/saaj/SOAPEnvelopeImpl.java
index 753fe3e..f4bd412 100644
--- a/modules/saaj/src/org/apache/axis2/saaj/SOAPEnvelopeImpl.java
+++ b/modules/saaj/src/org/apache/axis2/saaj/SOAPEnvelopeImpl.java
@@ -20,10 +20,9 @@
 package org.apache.axis2.saaj;
 
 import org.apache.axiom.om.OMNode;
-import org.apache.axiom.soap.SOAP11Version;
-import org.apache.axiom.soap.SOAP12Version;
 import org.apache.axiom.soap.SOAPEnvelope;
 import org.apache.axiom.soap.SOAPFactory;
+import org.apache.axiom.soap.SOAPVersion;
 import org.w3c.dom.Element;
 import org.w3c.dom.Node;
 
@@ -130,12 +129,8 @@
     public SOAPHeader addHeader() throws SOAPException {
         org.apache.axiom.soap.SOAPHeader header = omTarget.getHeader();
         if (header == null) {
-            SOAPHeaderImpl saajSOAPHeader;
             header = ((SOAPFactory)this.omTarget.getOMFactory()).createSOAPHeader(omTarget);
-            saajSOAPHeader = new SOAPHeaderImpl(header);
-            saajSOAPHeader.setParentElement(this);
-            ((Element)omTarget.getHeader()).setUserData(SAAJ_NODE, saajSOAPHeader, null);
-            return saajSOAPHeader;
+            return new SOAPHeaderImpl(header);
         } else {
             throw new SOAPException("Header already present, can't set header again without " +
                     "deleting the existing header. " +
@@ -160,7 +155,6 @@
             body = ((SOAPFactory)this.omTarget.getOMFactory()).createSOAPBody(omTarget);
             SOAPBodyImpl saajSOAPBody = new SOAPBodyImpl(body);
             saajSOAPBody.setParentElement(this);
-            ((Element)omTarget.getBody()).setUserData(SAAJ_NODE, saajSOAPBody, null);
             return saajSOAPBody;
         } else {
             throw new SOAPException("Body already present, can't set body again without " +
@@ -184,7 +178,7 @@
      * on Envelop
      */
     public SOAPElement addAttribute(Name name, String value) throws SOAPException {
-        if (((SOAPFactory)this.omTarget.getOMFactory()).getSOAPVersion() == SOAP12Version.getSingleton()) {
+        if (((SOAPFactory)this.omTarget.getOMFactory()).getSOAPVersion() == SOAPVersion.SOAP12) {
             if ("encodingStyle".equals(name.getLocalName())) {
                 throw new SOAPException(
                         "SOAP1.2 does not allow encodingStyle attribute to be set " +
@@ -199,9 +193,9 @@
      * element
      */
     public SOAPElement addChildElement(Name name) throws SOAPException {
-        if (((SOAPFactory)this.omTarget.getOMFactory()).getSOAPVersion() == SOAP12Version.getSingleton()) {
+        if (((SOAPFactory)this.omTarget.getOMFactory()).getSOAPVersion() == SOAPVersion.SOAP12) {
             throw new SOAPException("Cannot add elements after body element");
-        } else if (((SOAPFactory)this.omTarget.getOMFactory()).getSOAPVersion() == SOAP11Version.getSingleton()) {
+        } else if (((SOAPFactory)this.omTarget.getOMFactory()).getSOAPVersion() == SOAPVersion.SOAP11) {
             //Let elements to be added any where.
             return super.addChildElement(name);
         }
diff --git a/modules/saaj/src/org/apache/axis2/saaj/SOAPFaultImpl.java b/modules/saaj/src/org/apache/axis2/saaj/SOAPFaultImpl.java
index 4537bab..ae37c4e 100644
--- a/modules/saaj/src/org/apache/axis2/saaj/SOAPFaultImpl.java
+++ b/modules/saaj/src/org/apache/axis2/saaj/SOAPFaultImpl.java
@@ -23,9 +23,7 @@
 import org.apache.axiom.om.OMFactory;
 import org.apache.axiom.om.OMNamespace;
 import org.apache.axiom.soap.SOAP11Constants;
-import org.apache.axiom.soap.SOAP11Version;
 import org.apache.axiom.soap.SOAP12Constants;
-import org.apache.axiom.soap.SOAP12Version;
 import org.apache.axiom.soap.SOAPFactory;
 import org.apache.axiom.soap.SOAPFaultCode;
 import org.apache.axiom.soap.SOAPFaultDetail;
@@ -35,6 +33,7 @@
 import org.apache.axiom.soap.SOAPFaultSubCode;
 import org.apache.axiom.soap.SOAPFaultText;
 import org.apache.axiom.soap.SOAPFaultValue;
+import org.apache.axiom.soap.SOAPVersion;
 import org.w3c.dom.Element;
 
 import javax.xml.namespace.QName;
@@ -63,7 +62,7 @@
     }
 
     void setDefaults() throws SOAPException {
-        if (((SOAPFactory)this.omTarget.getOMFactory()).getSOAPVersion() == SOAP11Version.getSingleton()) {
+        if (((SOAPFactory)this.omTarget.getOMFactory()).getSOAPVersion() == SOAPVersion.SOAP11) {
             setFaultCode(SOAP11Constants.QNAME_SENDER_FAULTCODE);
         } else {
             setFaultCode(SOAP12Constants.QNAME_SENDER_FAULTCODE);
@@ -111,11 +110,11 @@
 //        		localName = faultCode.substring(faultCode.indexOf(":")+1);
 //        	}
 
-        if (((SOAPFactory)this.omTarget.getOMFactory()).getSOAPVersion() == SOAP11Version.getSingleton()) {
+        if (((SOAPFactory)this.omTarget.getOMFactory()).getSOAPVersion() == SOAPVersion.SOAP11) {
             soapFactory = (SOAPFactory)this.omTarget.getOMFactory();
             soapFaultCode = soapFactory.createSOAPFaultCode(omTarget);
             soapFaultCode.setText(faultCode);
-        } else if (((SOAPFactory)this.omTarget.getOMFactory()).getSOAPVersion() == SOAP12Version.getSingleton()) {
+        } else if (((SOAPFactory)this.omTarget.getOMFactory()).getSOAPVersion() == SOAPVersion.SOAP12) {
             soapFactory = (SOAPFactory)this.omTarget.getOMFactory();
             soapFaultCode = soapFactory.createSOAPFaultCode(omTarget);
             SOAPFaultValue soapFaultValue = soapFactory.createSOAPFaultValue(soapFaultCode);
@@ -134,9 +133,9 @@
      */
     public String getFaultCode() {
         if (omTarget != null && omTarget.getCode() != null) {
-            if (((SOAPFactory)this.omTarget.getOMFactory()).getSOAPVersion() == SOAP11Version.getSingleton()) {
+            if (((SOAPFactory)this.omTarget.getOMFactory()).getSOAPVersion() == SOAPVersion.SOAP11) {
                 return omTarget.getCode().getText();
-            } else if (((SOAPFactory)this.omTarget.getOMFactory()).getSOAPVersion() == SOAP12Version.getSingleton()) {
+            } else if (((SOAPFactory)this.omTarget.getOMFactory()).getSOAPVersion() == SOAPVersion.SOAP12) {
                 return omTarget.getCode().getValue().getText();
             } else {
                 return null;
@@ -188,9 +187,9 @@
      * @see #getFaultString() getFaultString()
      */
     public void setFaultString(String faultString) throws SOAPException {
-        if (((SOAPFactory)this.omTarget.getOMFactory()).getSOAPVersion() == SOAP11Version.getSingleton()) {
+        if (((SOAPFactory)this.omTarget.getOMFactory()).getSOAPVersion() == SOAPVersion.SOAP11) {
             setFaultString(faultString, null);
-        } else if (((SOAPFactory)this.omTarget.getOMFactory()).getSOAPVersion() == SOAP12Version.getSingleton()) {
+        } else if (((SOAPFactory)this.omTarget.getOMFactory()).getSOAPVersion() == SOAPVersion.SOAP12) {
             setFaultString(faultString, Locale.getDefault());
         }
     }
@@ -261,7 +260,6 @@
         SOAPFactory factory = (SOAPFactory)this.omTarget.getOMFactory();
         omDetail = factory.createSOAPFaultDetail(this.omTarget);
         Detail saajDetail = new DetailImpl(omDetail);
-        ((Element)omTarget.getDetail()).setUserData(SAAJ_NODE, saajDetail, null);
         isDetailAdded = true;
         return saajDetail;
     }
@@ -288,17 +286,17 @@
     public void setFaultString(String faultString, Locale locale) throws SOAPException {
         if (this.omTarget.getReason() != null) {
             SOAPFaultReason reason = this.omTarget.getReason();
-            if (((SOAPFactory)this.omTarget.getOMFactory()).getSOAPVersion() == SOAP11Version.getSingleton()) {
+            if (((SOAPFactory)this.omTarget.getOMFactory()).getSOAPVersion() == SOAPVersion.SOAP11) {
                 reason.setText(faultString);
-            } else if (((SOAPFactory)this.omTarget.getOMFactory()).getSOAPVersion() == SOAP12Version.getSingleton()) {
+            } else if (((SOAPFactory)this.omTarget.getOMFactory()).getSOAPVersion() == SOAPVersion.SOAP12) {
                 addFaultReasonText(faultString, locale);
             }
         } else {
-            if (((SOAPFactory)this.omTarget.getOMFactory()).getSOAPVersion() == SOAP11Version.getSingleton()) {
+            if (((SOAPFactory)this.omTarget.getOMFactory()).getSOAPVersion() == SOAPVersion.SOAP11) {
                 SOAPFaultReason reason = ((SOAPFactory)this.omTarget
                         .getOMFactory()).createSOAPFaultReason(this.omTarget);
                 reason.setText(faultString);
-            } else if (((SOAPFactory)this.omTarget.getOMFactory()).getSOAPVersion() == SOAP12Version.getSingleton()) {
+            } else if (((SOAPFactory)this.omTarget.getOMFactory()).getSOAPVersion() == SOAPVersion.SOAP12) {
                 addFaultReasonText(faultString, locale);
             }
         }
@@ -318,9 +316,9 @@
      * @since SAAJ 1.2
      */
     public Locale getFaultStringLocale() {
-        if (((SOAPFactory)this.omTarget.getOMFactory()).getSOAPVersion() == SOAP11Version.getSingleton()) {
+        if (((SOAPFactory)this.omTarget.getOMFactory()).getSOAPVersion() == SOAPVersion.SOAP11) {
             return this.faultReasonLocale;
-        } else if (((SOAPFactory)this.omTarget.getOMFactory()).getSOAPVersion() == SOAP12Version.getSingleton()) {
+        } else if (((SOAPFactory)this.omTarget.getOMFactory()).getSOAPVersion() == SOAPVersion.SOAP12) {
             Locale locale = null;
             try {
                 if (getFaultReasonLocales().hasNext()) {
@@ -353,9 +351,9 @@
         if (locale == null) {
             throw new SOAPException("Received null for locale");
         }
-        if (((SOAPFactory)this.omTarget.getOMFactory()).getSOAPVersion() == SOAP11Version.getSingleton()) {
+        if (((SOAPFactory)this.omTarget.getOMFactory()).getSOAPVersion() == SOAPVersion.SOAP11) {
             throw new UnsupportedOperationException("Not supported in SOAP 1.1");
-        } else if (((SOAPFactory)this.omTarget.getOMFactory()).getSOAPVersion() == SOAP12Version.getSingleton()) {
+        } else if (((SOAPFactory)this.omTarget.getOMFactory()).getSOAPVersion() == SOAPVersion.SOAP12) {
             removeDefaults();
             
             String existingReasonText = getFaultReasonText(locale);
@@ -405,7 +403,7 @@
         if (subcode.getNamespaceURI() == null || subcode.getNamespaceURI().trim().length() == 0) {
             throw new SOAPException("Unqualified QName object : " + subcode);
         }
-        if (((SOAPFactory)this.omTarget.getOMFactory()).getSOAPVersion() == SOAP11Version.getSingleton()) {
+        if (((SOAPFactory)this.omTarget.getOMFactory()).getSOAPVersion() == SOAPVersion.SOAP11) {
             throw new UnsupportedOperationException();
         }
 
@@ -446,14 +444,7 @@
      */
     public QName getFaultCodeAsQName() {
         SOAPFaultCode soapFaultCode = this.omTarget.getCode();
-        if (soapFaultCode != null) {
-            if (((SOAPFactory)this.omTarget.getOMFactory()).getSOAPVersion() == SOAP11Version.getSingleton()) {
-                return soapFaultCode.getTextAsQName();
-            } else {
-                return soapFaultCode.getValue().getTextAsQName();
-            }
-        }
-        return null;
+        return soapFaultCode != null ? soapFaultCode.getValueAsQName() : null;
     }
 
     /**
@@ -465,7 +456,7 @@
      *          - if this message does not support the SOAP 1.2 concept of Fault Node.
      */
     public String getFaultNode() {
-        if (((SOAPFactory)this.omTarget.getOMFactory()).getSOAPVersion() == SOAP11Version.getSingleton()) {
+        if (((SOAPFactory)this.omTarget.getOMFactory()).getSOAPVersion() == SOAPVersion.SOAP11) {
             throw new UnsupportedOperationException("Message does not support the " +
                     "SOAP 1.2 concept of Fault Node");
         } else {
@@ -490,7 +481,7 @@
      * @since SAAJ 1.3
      */
     public Iterator getFaultReasonLocales() throws SOAPException {
-        if (((SOAPFactory)this.omTarget.getOMFactory()).getSOAPVersion() == SOAP11Version.getSingleton()) {
+        if (((SOAPFactory)this.omTarget.getOMFactory()).getSOAPVersion() == SOAPVersion.SOAP11) {
             throw new UnsupportedOperationException("Message does not support the " +
                     "SOAP 1.2 concept of Fault Reason");
         } else {
@@ -530,7 +521,7 @@
      * @since SAAJ 1.3
      */
     public String getFaultReasonText(Locale locale) throws SOAPException {
-        if (((SOAPFactory)this.omTarget.getOMFactory()).getSOAPVersion() == SOAP11Version.getSingleton()) {
+        if (((SOAPFactory)this.omTarget.getOMFactory()).getSOAPVersion() == SOAPVersion.SOAP11) {
             throw new UnsupportedOperationException("Message does not support the " +
                     "SOAP 1.2 concept of Fault Reason");
         } else {
@@ -562,7 +553,7 @@
      */
 
     public Iterator getFaultReasonTexts() throws SOAPException {
-        if (((SOAPFactory)this.omTarget.getOMFactory()).getSOAPVersion() == SOAP11Version.getSingleton()) {
+        if (((SOAPFactory)this.omTarget.getOMFactory()).getSOAPVersion() == SOAPVersion.SOAP11) {
             throw new UnsupportedOperationException();
         }
 
@@ -585,7 +576,7 @@
      * @since SAAJ 1.3
      */
     public String getFaultRole() {
-        if (((SOAPFactory)this.omTarget.getOMFactory()).getSOAPVersion() == SOAP11Version.getSingleton()) {
+        if (((SOAPFactory)this.omTarget.getOMFactory()).getSOAPVersion() == SOAPVersion.SOAP11) {
             throw new UnsupportedOperationException("Message does not support the " +
                     "SOAP 1.2 concept of Fault Reason");
         } else {
@@ -607,14 +598,13 @@
      *          - if this message does not support the SOAP 1.2 concept of Subcode.
      */
     public Iterator getFaultSubcodes() {
-        if (((SOAPFactory)this.omTarget.getOMFactory()).getSOAPVersion() == SOAP11Version.getSingleton()) {
+        if (((SOAPFactory)this.omTarget.getOMFactory()).getSOAPVersion() == SOAPVersion.SOAP11) {
             throw new UnsupportedOperationException();
         }
         ArrayList faultSubcodes = new ArrayList();
         SOAPFaultSubCode subCodeElement = this.omTarget.getCode().getSubCode();
         while (subCodeElement != null) {
-            QName qname = subCodeElement.getValue().getTextAsQName();
-            faultSubcodes.add(qname);
+            faultSubcodes.add(subCodeElement.getValueAsQName());
             subCodeElement = subCodeElement.getSubCode();
         }
         return faultSubcodes.iterator();
@@ -638,7 +628,7 @@
      *          - if this message does not support the SOAP 1.2 concept of Subcode.
      */
     public void removeAllFaultSubcodes() {
-        if (((SOAPFactory)this.omTarget.getOMFactory()).getSOAPVersion() == SOAP11Version.getSingleton()) {
+        if (((SOAPFactory)this.omTarget.getOMFactory()).getSOAPVersion() == SOAPVersion.SOAP11) {
             throw new UnsupportedOperationException();
         } else {
             omTarget.getCode().getSubCode().detach();
@@ -664,9 +654,9 @@
         }
 
         org.apache.axiom.soap.SOAPFactory soapFactory = null;
-        if (((SOAPFactory)this.omTarget.getOMFactory()).getSOAPVersion() == SOAP11Version.getSingleton()) {
+        if (((SOAPFactory)this.omTarget.getOMFactory()).getSOAPVersion() == SOAPVersion.SOAP11) {
             soapFactory = (SOAPFactory)this.omTarget.getOMFactory();
-        } else if (((SOAPFactory)this.omTarget.getOMFactory()).getSOAPVersion() == SOAP12Version.getSingleton()) {
+        } else if (((SOAPFactory)this.omTarget.getOMFactory()).getSOAPVersion() == SOAPVersion.SOAP12) {
             if (!(qname.getNamespaceURI()
                     .equals(SOAPConstants.URI_NS_SOAP_1_2_ENVELOPE))) {
                 throw new SOAPException("Incorrect URI"
@@ -683,12 +673,12 @@
                 .getPrefix();
 
         OMFactory factory = omTarget.getOMFactory();
-        if (((SOAPFactory)factory).getSOAPVersion() == SOAP11Version.getSingleton()) {
+        if (((SOAPFactory)factory).getSOAPVersion() == SOAPVersion.SOAP11) {
             soapFaultCode.setText(prefix + ":" + qname.getLocalPart());
             OMNamespace omNamespace = factory.createOMNamespace(qname.getNamespaceURI(),
                                                           qname.getPrefix());
             soapFaultCode.declareNamespace(omNamespace);
-        } else if (((SOAPFactory)factory).getSOAPVersion() == SOAP12Version.getSingleton()) {
+        } else if (((SOAPFactory)factory).getSOAPVersion() == SOAPVersion.SOAP12) {
             SOAPFaultValue soapFaultValue = soapFactory.createSOAPFaultValue(soapFaultCode);
             // don't just use the default prefix, use the passed one or the parent's
             soapFaultValue.setText(prefix + ":" + qname.getLocalPart());
@@ -713,7 +703,7 @@
 
     public void setFaultNode(String s) throws SOAPException {
         SOAPFactory soapFactory = (SOAPFactory)this.omTarget.getOMFactory();
-        if (((SOAPFactory)this.omTarget.getOMFactory()).getSOAPVersion() == SOAP11Version.getSingleton()) {
+        if (((SOAPFactory)this.omTarget.getOMFactory()).getSOAPVersion() == SOAPVersion.SOAP11) {
             throw new UnsupportedOperationException("message does not support " +
                     "the SOAP 1.2 concept of Fault Node");
         }
@@ -733,7 +723,7 @@
      */
     public void setFaultRole(String uri) throws SOAPException {
         SOAPFactory soapFactory = (SOAPFactory)this.omTarget.getOMFactory();
-        if (((SOAPFactory)this.omTarget.getOMFactory()).getSOAPVersion() == SOAP11Version.getSingleton()) {
+        if (((SOAPFactory)this.omTarget.getOMFactory()).getSOAPVersion() == SOAPVersion.SOAP11) {
             throw new UnsupportedOperationException("message does not support the " +
                     "SOAP 1.2 concept of Fault Role");
         }
@@ -755,12 +745,10 @@
         Collection childElements = new ArrayList();
         while (childIter.hasNext()) {
             org.w3c.dom.Node domNode = (org.w3c.dom.Node)childIter.next();
-            Node saajNode = toSAAJNode(domNode);
+            org.w3c.dom.Node saajNode = toSAAJNode(domNode);
             if (!(saajNode instanceof SOAPFaultElement)) {
                 // silently replace node, as per saaj 1.2 spec
-                SOAPFaultElement bodyEle = new SOAPFaultElementImpl<OMElement>((OMElement)domNode);
-                domNode.setUserData(SAAJ_NODE, bodyEle, null);
-                childElements.add(bodyEle);
+                childElements.add(new SOAPFaultElementImpl<OMElement>((OMElement)domNode));
             } else {
                 childElements.add(saajNode);
             }
diff --git a/modules/saaj/src/org/apache/axis2/saaj/SOAPHeaderElementImpl.java b/modules/saaj/src/org/apache/axis2/saaj/SOAPHeaderElementImpl.java
index 866e168..b343ffc 100644
--- a/modules/saaj/src/org/apache/axis2/saaj/SOAPHeaderElementImpl.java
+++ b/modules/saaj/src/org/apache/axis2/saaj/SOAPHeaderElementImpl.java
@@ -19,9 +19,9 @@
 
 package org.apache.axis2.saaj;
 
-import org.apache.axiom.soap.SOAP11Version;
 import org.apache.axiom.soap.SOAPFactory;
 import org.apache.axiom.soap.SOAPHeaderBlock;
+import org.apache.axiom.soap.SOAPVersion;
 
 import javax.xml.soap.SOAPElement;
 import javax.xml.soap.SOAPException;
@@ -96,7 +96,7 @@
      *                       - if this message does not support the SOAP 1.2 concept of Fault Role.
      */
     public void setRole(String uri) throws SOAPException {
-        if (((SOAPFactory)this.omTarget.getOMFactory()).getSOAPVersion() == SOAP11Version.getSingleton()) {
+        if (((SOAPFactory)this.omTarget.getOMFactory()).getSOAPVersion() == SOAPVersion.SOAP11) {
             throw new UnsupportedOperationException();
         } else {
             this.omTarget.setRole(uri);
@@ -104,7 +104,7 @@
     }
 
     public String getRole() {
-        if (((SOAPFactory)this.omTarget.getOMFactory()).getSOAPVersion() == SOAP11Version.getSingleton()) {
+        if (((SOAPFactory)this.omTarget.getOMFactory()).getSOAPVersion() == SOAPVersion.SOAP11) {
             throw new UnsupportedOperationException();
         } else {
             return this.omTarget.getRole();
@@ -125,7 +125,7 @@
      *                       support the SOAP 1.2 concept of Relay attribute.
      */
     public void setRelay(boolean flag) throws SOAPException {
-        if (((SOAPFactory)this.omTarget.getOMFactory()).getSOAPVersion() == SOAP11Version.getSingleton()) {
+        if (((SOAPFactory)this.omTarget.getOMFactory()).getSOAPVersion() == SOAPVersion.SOAP11) {
             throw new UnsupportedOperationException();
         } else {
             this.omTarget.setRelay(flag);
@@ -133,7 +133,7 @@
     }
 
     public boolean getRelay() {
-        if (((SOAPFactory)this.omTarget.getOMFactory()).getSOAPVersion() == SOAP11Version.getSingleton()) {
+        if (((SOAPFactory)this.omTarget.getOMFactory()).getSOAPVersion() == SOAPVersion.SOAP11) {
             throw new UnsupportedOperationException();
         } else {
             return this.omTarget.getRelay();
diff --git a/modules/saaj/src/org/apache/axis2/saaj/SOAPHeaderImpl.java b/modules/saaj/src/org/apache/axis2/saaj/SOAPHeaderImpl.java
index ae78602..290cded 100644
--- a/modules/saaj/src/org/apache/axis2/saaj/SOAPHeaderImpl.java
+++ b/modules/saaj/src/org/apache/axis2/saaj/SOAPHeaderImpl.java
@@ -21,17 +21,14 @@
 
 import org.apache.axiom.om.OMElement;
 import org.apache.axiom.om.OMNamespace;
-import org.apache.axiom.om.OMNode;
-import org.apache.axiom.soap.SOAP11Version;
-import org.apache.axiom.soap.SOAP12Version;
 import org.apache.axiom.soap.SOAPFactory;
 import org.apache.axiom.soap.SOAPHeaderBlock;
+import org.apache.axiom.soap.SOAPVersion;
 import org.apache.axis2.namespace.Constants;
 import org.w3c.dom.Element;
 
 import javax.xml.namespace.QName;
 import javax.xml.soap.Name;
-import javax.xml.soap.Node;
 import javax.xml.soap.SOAPElement;
 import javax.xml.soap.SOAPException;
 import javax.xml.soap.SOAPHeader;
@@ -78,8 +75,6 @@
         OMNamespace ns = omTarget.getOMFactory().createOMNamespace(uri, prefix);
         SOAPHeaderBlock headerBlock = ((SOAPFactory)this.omTarget.getOMFactory()).createSOAPHeaderBlock(localName, ns, omTarget);
         SOAPHeaderElementImpl soapHeaderElement = new SOAPHeaderElementImpl(headerBlock);
-        target.setUserData(SAAJ_NODE, this, null);
-        soapHeaderElement.target.setUserData(SAAJ_NODE, soapHeaderElement, null);
         soapHeaderElement.setParentElement(this);
         return soapHeaderElement;
     }
@@ -100,8 +95,6 @@
         SOAPHeaderBlock headerBlock = ((SOAPFactory)this.omTarget.getOMFactory()).createSOAPHeaderBlock(
                 soapElement.getLocalName(), ns, omTarget);
         SOAPHeaderElementImpl soapHeaderElement = new SOAPHeaderElementImpl(headerBlock);
-        target.setUserData(SAAJ_NODE, this, null);
-        soapHeaderElement.target.setUserData(SAAJ_NODE, soapHeaderElement, null);
         soapHeaderElement.setParentElement(this);
         return soapHeaderElement;
     }
@@ -113,11 +106,8 @@
         SOAPHeaderBlock headerBlock = ((SOAPFactory)this.omTarget.getOMFactory()).createSOAPHeaderBlock(
                 child.getLocalName(), ns, omTarget);
      
-        target.setUserData(SAAJ_NODE, this, null);
-        
         SOAPHeaderElementImpl soapHeaderElement = new SOAPHeaderElementImpl(headerBlock);
         copyContents(soapHeaderElement, child);
-        soapHeaderElement.target.setUserData(SAAJ_NODE, soapHeaderElement, null);
         soapHeaderElement.setParentElement(this);
         return soapHeaderElement;
     }
@@ -146,8 +136,6 @@
                 name.getLocalName(), ns, omTarget);
 
         SOAPHeaderElementImpl soapHeaderElement = new SOAPHeaderElementImpl(headerBlock);
-        target.setUserData(SAAJ_NODE, this, null);
-        soapHeaderElement.target.setUserData(SAAJ_NODE, soapHeaderElement, null);
         soapHeaderElement.setParentElement(this);
         return soapHeaderElement;
     }
@@ -262,7 +250,7 @@
     public SOAPHeaderElement addNotUnderstoodHeaderElement(QName qname) throws SOAPException {
         SOAPHeaderBlock soapHeaderBlock = null;
         OMNamespace ns = omTarget.getOMFactory().createOMNamespace(qname.getNamespaceURI(), qname.getPrefix());
-        if (((SOAPFactory)this.omTarget.getOMFactory()).getSOAPVersion() == SOAP11Version.getSingleton()) {
+        if (((SOAPFactory)this.omTarget.getOMFactory()).getSOAPVersion() == SOAPVersion.SOAP11) {
             throw new UnsupportedOperationException();
         } else {
             soapHeaderBlock = this.omTarget.addHeaderBlock(
@@ -327,9 +315,9 @@
     }
 
     public SOAPElement addTextNode(String text) throws SOAPException {
-        if (((SOAPFactory)this.omTarget.getOMFactory()).getSOAPVersion() == SOAP11Version.getSingleton()) {
+        if (((SOAPFactory)this.omTarget.getOMFactory()).getSOAPVersion() == SOAPVersion.SOAP11) {
             return super.addTextNode(text);
-        } else if (((SOAPFactory)this.omTarget.getOMFactory()).getSOAPVersion() == SOAP12Version.getSingleton()) {
+        } else if (((SOAPFactory)this.omTarget.getOMFactory()).getSOAPVersion() == SOAPVersion.SOAP12) {
             throw new SOAPException("Cannot add text node to SOAPHeader");
         } else {
             return null;
@@ -349,28 +337,16 @@
         Collection childElements = new ArrayList();
         while (childIter.hasNext()) {
             org.w3c.dom.Node domNode = (org.w3c.dom.Node)childIter.next();
-            Node saajNode = toSAAJNode(domNode);
+            org.w3c.dom.Node saajNode = toSAAJNode(domNode);
             if (saajNode instanceof javax.xml.soap.Text) {
                 childElements.add(saajNode);
             } else if (!(saajNode instanceof SOAPHeaderElement)) {
                 // silently replace node, as per saaj 1.2 spec
-                SOAPHeaderElement headerEle = new SOAPHeaderElementImpl((SOAPHeaderBlock)domNode);
-                domNode.setUserData(SAAJ_NODE, headerEle, null);
-                childElements.add(headerEle);
+                childElements.add(new SOAPHeaderElementImpl((SOAPHeaderBlock)domNode));
             } else {
                 childElements.add(saajNode);
             }
         }
         return childElements.iterator();
     }
-
-    public void detachNode() {
-        this.detach();
-    }
-
-    public OMNode detach() {
-        OMNode omNode = omTarget.detach();
-        parentElement = null;
-        return omNode;
-    }
 }
diff --git a/modules/saaj/src/org/apache/axis2/saaj/SOAPMessageImpl.java b/modules/saaj/src/org/apache/axis2/saaj/SOAPMessageImpl.java
index e5a5f4c..b15d38c 100644
--- a/modules/saaj/src/org/apache/axis2/saaj/SOAPMessageImpl.java
+++ b/modules/saaj/src/org/apache/axis2/saaj/SOAPMessageImpl.java
@@ -20,14 +20,14 @@
 package org.apache.axis2.saaj;
 
 import org.apache.axiom.attachments.Attachments;
-import org.apache.axiom.mime.ContentTypeBuilder;
+import org.apache.axiom.mime.ContentType;
 import org.apache.axiom.mime.MediaType;
 import org.apache.axiom.om.OMException;
 import org.apache.axiom.om.OMOutputFormat;
 import org.apache.axiom.om.impl.OMMultipartWriter;
-import org.apache.axiom.soap.SOAP11Version;
 import org.apache.axiom.soap.SOAPEnvelope;
 import org.apache.axiom.soap.SOAPFactory;
+import org.apache.axiom.soap.SOAPVersion;
 import org.apache.axiom.util.UIDGenerator;
 import org.apache.axis2.saaj.util.SAAJUtil;
 import org.apache.axis2.transport.http.HTTPConstants;
@@ -270,11 +270,11 @@
     public void saveChanges() throws SOAPException {
         try {
             String contentTypeValue = getSingleHeaderValue(HTTPConstants.HEADER_CONTENT_TYPE);
-            ContentTypeBuilder contentType;
+            ContentType.Builder contentType;
             if (isEmptyString(contentTypeValue)) {
-                contentType = new ContentTypeBuilder(attachmentParts.size() > 0 ? MediaType.MULTIPART_RELATED : getMediaType());
+                contentType = ContentType.builder().setMediaType(attachmentParts.size() > 0 ? MediaType.MULTIPART_RELATED : getMediaType());
             } else {
-                contentType = new ContentTypeBuilder(contentTypeValue);
+                contentType = new ContentType(contentTypeValue).toBuilder();
                 //Use configures the baseType with multipart/related while no attachment exists or all the attachments are removed
                 if (contentType.getMediaType().equals(MediaType.MULTIPART_RELATED) && attachmentParts.size() == 0) {
                     contentType.setMediaType(getMediaType());
@@ -311,11 +311,11 @@
                 
                 //Configure charset
                 String soapPartContentTypeValue = getSingleHeaderValue(soapPart.getMimeHeader(HTTPConstants.HEADER_CONTENT_TYPE));
-                ContentTypeBuilder soapPartContentType = null;
+                ContentType.Builder soapPartContentType;
                 if (isEmptyString(soapPartContentTypeValue)) {
-                    soapPartContentType = new ContentTypeBuilder(soapPartContentTypeValue);
+                    soapPartContentType = new ContentType(soapPartContentTypeValue).toBuilder();
                 } else {
-                    soapPartContentType = new ContentTypeBuilder(getMediaType());
+                    soapPartContentType = ContentType.builder().setMediaType(getMediaType());
                 }                
                 setCharsetParameter(soapPartContentType);
             } else {
@@ -323,7 +323,7 @@
                 setCharsetParameter(contentType);
             }
             
-            mimeHeaders.setHeader(HTTPConstants.HEADER_CONTENT_TYPE, contentType.toString());
+            mimeHeaders.setHeader(HTTPConstants.HEADER_CONTENT_TYPE, contentType.build().toString());
         } catch (ParseException e) {
             throw new SOAPException("Invalid Content Type Field in the Mime Message", e);
         }
@@ -374,7 +374,7 @@
             if (attachmentParts.isEmpty()) {
                 envelope.serialize(out, format);
             } else {
-                ContentTypeBuilder contentType = new ContentTypeBuilder(getSingleHeaderValue(HTTPConstants.HEADER_CONTENT_TYPE));
+                ContentType.Builder contentType = new ContentType(getSingleHeaderValue(HTTPConstants.HEADER_CONTENT_TYPE)).toBuilder();
                 String boundary = contentType.getParameter("boundary");
                 if(isEmptyString(boundary)) {
                     boundary = UIDGenerator.generateMimeBoundary();
@@ -393,10 +393,10 @@
                 }
                 format.setRootContentId(rootContentId);
 
-                format.setSOAP11(((SOAPFactory)((SOAPEnvelopeImpl) soapPart.getEnvelope()).omTarget.getOMFactory()).getSOAPVersion() == SOAP11Version.getSingleton());
+                format.setSOAP11(((SOAPFactory)((SOAPEnvelopeImpl) soapPart.getEnvelope()).omTarget.getOMFactory()).getSOAPVersion() == SOAPVersion.SOAP11);
                 
                 //Double save the content-type in case anything is updated
-                mimeHeaders.setHeader(HTTPConstants.HEADER_CONTENT_TYPE, contentType.toString());
+                mimeHeaders.setHeader(HTTPConstants.HEADER_CONTENT_TYPE, contentType.build().toString());
 
                 OMMultipartWriter mpw = new OMMultipartWriter(out, format);
                 OutputStream rootPartOutputStream = mpw.writeRootPart();
@@ -615,7 +615,7 @@
      * @param contentType
      * @throws SOAPException
      */
-    private void setCharsetParameter(ContentTypeBuilder contentType) throws SOAPException{
+    private void setCharsetParameter(ContentType.Builder contentType) throws SOAPException{
         String charset = (String)getProperty(CHARACTER_SET_ENCODING); 
         if (!isEmptyString(charset)) {
             contentType.setParameter("charset", charset);
diff --git a/modules/saaj/src/org/apache/axis2/saaj/SOAPPartImpl.java b/modules/saaj/src/org/apache/axis2/saaj/SOAPPartImpl.java
index b16b68f..5225613 100644
--- a/modules/saaj/src/org/apache/axis2/saaj/SOAPPartImpl.java
+++ b/modules/saaj/src/org/apache/axis2/saaj/SOAPPartImpl.java
@@ -24,13 +24,9 @@
 import org.apache.axiom.mime.MediaType;
 import org.apache.axiom.om.OMAbstractFactory;
 import org.apache.axiom.om.OMMetaFactory;
-import org.apache.axiom.om.impl.MTOMConstants;
-import org.apache.axiom.om.util.StAXUtils;
-import org.apache.axiom.soap.SOAP11Constants;
-import org.apache.axiom.soap.SOAP12Constants;
+import org.apache.axiom.om.OMXMLBuilderFactory;
 import org.apache.axiom.soap.SOAPFactory;
-import org.apache.axiom.soap.impl.builder.MTOMStAXSOAPModelBuilder;
-import org.apache.axiom.soap.impl.builder.StAXSOAPModelBuilder;
+import org.apache.axiom.soap.SOAPModelBuilder;
 import org.apache.axis2.saaj.util.IDGenerator;
 import org.apache.axis2.saaj.util.SAAJUtil;
 import org.apache.axis2.transport.http.HTTPConstants;
@@ -61,7 +57,6 @@
 import javax.xml.soap.SOAPMessage;
 import javax.xml.soap.SOAPPart;
 import javax.xml.stream.XMLInputFactory;
-import javax.xml.stream.XMLStreamException;
 import javax.xml.stream.XMLStreamReader;
 import javax.xml.transform.Result;
 import javax.xml.transform.Source;
@@ -139,14 +134,12 @@
 
         String charset;
         boolean isMTOM;
-        String soapEnvelopeNamespaceURI;
         OMMetaFactory metaFactory = OMAbstractFactory.getMetaFactory(OMAbstractFactory.FEATURE_DOM);
         SOAPFactory soapFactory;
         if (contentType == null) {
             charset = null;
             isMTOM = false;
-            soapFactory = metaFactory.getSOAP11Factory();
-            soapEnvelopeNamespaceURI = null;
+            soapFactory = null;
         } else {
             MediaType baseType = contentType.getMediaType();
             MediaType soapContentType;
@@ -168,10 +161,8 @@
             }
             
             if (soapContentType.equals(MediaType.TEXT_XML)) {
-                soapEnvelopeNamespaceURI = SOAP11Constants.SOAP_ENVELOPE_NAMESPACE_URI;
                 soapFactory = metaFactory.getSOAP11Factory();
             } else if (soapContentType.equals(MediaType.APPLICATION_SOAP_XML)) {
-                soapEnvelopeNamespaceURI = SOAP12Constants.SOAP_ENVELOPE_NAMESPACE_URI;
                 soapFactory = metaFactory.getSOAP12Factory();
             } else {
                 throw new SOAPException("Unrecognized content type '" + soapContentType + "'");
@@ -180,31 +171,18 @@
             charset = contentType.getParameter("charset");
         }
         
-        XMLStreamReader streamReader;
-        try {
-            if (charset != null) {
-            	streamReader = StAXUtils.createXMLStreamReader(inputStream, charset);
-            } else {
-            	streamReader = StAXUtils.createXMLStreamReader(inputStream);                	
-            }
-        } catch (XMLStreamException e) {
-            throw new SOAPException(e);
-        }
-
-        StAXSOAPModelBuilder builder;
+        SOAPModelBuilder builder;
         if (isMTOM && attachments != null) {
-            builder = new MTOMStAXSOAPModelBuilder(streamReader,
-                                                   soapFactory,
-                                                   attachments,
-                                                   soapEnvelopeNamespaceURI);
+            builder = OMXMLBuilderFactory.createSOAPModelBuilder(metaFactory, attachments);
         } else {
-            builder = new StAXSOAPModelBuilder(streamReader,
-                                               soapFactory,
-                                               soapEnvelopeNamespaceURI);
+            builder = OMXMLBuilderFactory.createSOAPModelBuilder(metaFactory, inputStream, charset);
         }
         
         try {
             org.apache.axiom.soap.SOAPEnvelope soapEnvelope = builder.getSOAPEnvelope();
+            if (soapFactory != null && soapEnvelope.getOMFactory() != soapFactory) {
+                throw new SOAPException("SOAP version of message doesn't match Content-Type");
+            }
             envelope = new SOAPEnvelopeImpl(soapEnvelope);
             envelope.omTarget.build();
             this.document = envelope.getOwnerDocument();
@@ -354,9 +332,8 @@
                 reader = inputFactory.createXMLStreamReader(is);
             }
 
-            StAXSOAPModelBuilder builder1 = new StAXSOAPModelBuilder(reader,
-                                                (SOAPFactory)this.envelope.omTarget
-                                                        .getOMFactory(), null);
+            SOAPModelBuilder builder1 = OMXMLBuilderFactory.createStAXSOAPModelBuilder(
+                    envelope.omTarget.getOMFactory().getMetaFactory(), reader);
 
             envelope = new SOAPEnvelopeImpl(builder1.getSOAPEnvelope());
             envelope.omTarget.build();
@@ -1192,7 +1169,7 @@
     	throw new IllegalStateException("Cannot set value of SOAPPart.");
     }
     
-    javax.xml.soap.Node toSAAJNode(org.w3c.dom.Node domNode) {
-        return SAAJNode.toSAAJNode(domNode, this);
+    Node toSAAJNode(org.w3c.dom.Node domNode) {
+        return ProxyNode.toSAAJNode(domNode, this);
     }
 }
diff --git a/modules/saaj/src/org/apache/axis2/saaj/TextImplEx.java b/modules/saaj/src/org/apache/axis2/saaj/TextImplEx.java
index c2ae1ed..951371e 100644
--- a/modules/saaj/src/org/apache/axis2/saaj/TextImplEx.java
+++ b/modules/saaj/src/org/apache/axis2/saaj/TextImplEx.java
@@ -20,38 +20,18 @@
 package org.apache.axis2.saaj;
 
 import org.apache.axiom.om.OMAbstractFactory;
-import org.apache.axiom.om.OMText;
+import org.apache.axiom.om.OMNode;
 import org.w3c.dom.DOMException;
 
-import javax.xml.soap.SOAPElement;
 import javax.xml.soap.Text;
 
-public class TextImplEx extends SAAJNode<org.w3c.dom.Text,OMText> implements Text {
-    private org.w3c.dom.Node previousSibling;
-    private org.w3c.dom.Node nextSibling;
-
-    public TextImplEx(String data, SOAPElement parent) {
-        this(OMAbstractFactory.getMetaFactory(OMAbstractFactory.FEATURE_DOM).getOMFactory().createOMText(data), parent);
+public class TextImplEx extends NodeImpl<org.w3c.dom.CharacterData,OMNode> implements Text {
+    public TextImplEx(String data) {
+        this(OMAbstractFactory.getMetaFactory(OMAbstractFactory.FEATURE_DOM).getOMFactory().createOMText(data));
     }
 
-    public TextImplEx(OMText textNode, SOAPElement parent) {
-        super((org.w3c.dom.Text)textNode, textNode);
-        this.parentElement = parent;
-    }
-
-    public TextImplEx(String data, SOAPElement parent,
-                      org.w3c.dom.Node prevSibling, org.w3c.dom.Node nextSibling) {
-        this(data, parent);
-        this.previousSibling = prevSibling;
-        this.nextSibling = nextSibling;
-    }
-
-    public void setNextSibling(org.w3c.dom.Node nextSibling) {
-        this.nextSibling = nextSibling;
-    }
-
-    public void setPreviousSibling(org.w3c.dom.Node previousSibling) {
-        this.previousSibling = previousSibling;
+    public TextImplEx(OMNode textNode) {
+        super((org.w3c.dom.CharacterData)textNode, textNode);
     }
 
     /**
@@ -61,7 +41,7 @@
      *         otherwise
      */
     public boolean isComment() {
-        String value = omTarget.getText();
+        String value = target.getData();
         return value.startsWith("<!--") && value.endsWith("-->");
     }
 
@@ -80,12 +60,11 @@
      *                      <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
      */
     public org.w3c.dom.Text splitText(int offset) throws DOMException {
-        return target.splitText(offset);
+        return ((Text)target).splitText(offset);
     }
 
     public boolean isElementContentWhitespace() {
-        // TODO - Fixme.
-        throw new UnsupportedOperationException("TODO");
+        return ((org.w3c.dom.Text)target).isElementContentWhitespace();
     }
 
     public String getWholeText() {
@@ -235,16 +214,6 @@
         return getValue();
     }
 
-
-    public org.w3c.dom.Node getNextSibling() {
-        return toSAAJNode(nextSibling);
-    }
-
-
-    public org.w3c.dom.Node getPreviousSibling() {
-        return toSAAJNode(previousSibling);
-    }
-
     public int getLength() {
         return target.getLength();
     }
diff --git a/modules/saaj/src/org/apache/axis2/saaj/util/SAAJUtil.java b/modules/saaj/src/org/apache/axis2/saaj/util/SAAJUtil.java
index 7b3739d..24a8793 100644
--- a/modules/saaj/src/org/apache/axis2/saaj/util/SAAJUtil.java
+++ b/modules/saaj/src/org/apache/axis2/saaj/util/SAAJUtil.java
@@ -19,16 +19,10 @@
 
 package org.apache.axis2.saaj.util;
 
-import org.apache.axiom.attachments.Attachments;
 import org.apache.axiom.om.OMAbstractFactory;
+import org.apache.axiom.om.OMAttachmentAccessor;
 import org.apache.axiom.om.OMElement;
-import org.apache.axiom.om.OMMetaFactory;
-import org.apache.axiom.soap.SOAP11Constants;
-import org.apache.axiom.soap.SOAP12Constants;
-import org.apache.axiom.soap.SOAPEnvelope;
-import org.apache.axiom.soap.SOAPFactory;
-import org.apache.axiom.soap.impl.builder.MTOMStAXSOAPModelBuilder;
-import org.apache.axiom.soap.impl.builder.StAXSOAPModelBuilder;
+import org.apache.axiom.om.OMXMLBuilderFactory;
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;
 
@@ -38,10 +32,13 @@
 import javax.xml.soap.MimeHeader;
 import javax.xml.soap.MimeHeaders;
 import javax.xml.soap.SOAPException;
+import javax.xml.transform.stax.StAXSource;
 
 import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
+import java.util.HashMap;
 import java.util.Iterator;
+import java.util.Map;
 
 /** Utility class for the Axis2-WSS4J Module */
 public class SAAJUtil {
@@ -53,28 +50,9 @@
      * @return the DOM Document of the given SOAP Envelope
      */
     public static Document getDocumentFromSOAPEnvelope(org.apache.axiom.soap.SOAPEnvelope env) {
-        env.build();
-
-        //Check the namespace and find SOAP version and factory
-        String nsURI;
-        OMMetaFactory metaFactory = OMAbstractFactory.getMetaFactory(OMAbstractFactory.FEATURE_DOM);
-        SOAPFactory factory;
-        if (env.getNamespace().getNamespaceURI()
-                .equals(SOAP11Constants.SOAP_ENVELOPE_NAMESPACE_URI)) {
-            nsURI = SOAP11Constants.SOAP_ENVELOPE_NAMESPACE_URI;
-            factory = metaFactory.getSOAP11Factory();
-        } else {
-            nsURI = SOAP12Constants.SOAP_ENVELOPE_NAMESPACE_URI;
-            factory = metaFactory.getSOAP12Factory();
-        }
-
-        StAXSOAPModelBuilder stAXSOAPModelBuilder =
-                new StAXSOAPModelBuilder(env.getXMLStreamReader(), factory, nsURI);
-        SOAPEnvelope envelope = (stAXSOAPModelBuilder).getSOAPEnvelope();
-        envelope.build();
-
-        Element envElem = (Element)envelope;
-        return envElem.getOwnerDocument();
+        return (Document)OMXMLBuilderFactory.createStAXSOAPModelBuilder(
+                OMAbstractFactory.getMetaFactory(OMAbstractFactory.FEATURE_DOM),
+                env.getXMLStreamReader()).getSOAPMessage();
     }
 
     /**
@@ -84,46 +62,20 @@
      * @return the org.apache.axis2.soap.impl.dom.SOAPEnvelopeImpl of the given SOAP Envelope
      */
     public static Element toDOOMSOAPEnvelope(org.apache.axiom.soap.SOAPEnvelope env) {
-        env.build();
-
-        //Check the namespace and find SOAP version and factory
-        String nsURI;
-        OMMetaFactory metaFactory = OMAbstractFactory.getMetaFactory(OMAbstractFactory.FEATURE_DOM);
-        SOAPFactory factory;
-        if (env.getNamespace().getNamespaceURI()
-                .equals(SOAP11Constants.SOAP_ENVELOPE_NAMESPACE_URI)) {
-            nsURI = SOAP11Constants.SOAP_ENVELOPE_NAMESPACE_URI;
-            factory = metaFactory.getSOAP11Factory();
-        } else {
-            nsURI = SOAP12Constants.SOAP_ENVELOPE_NAMESPACE_URI;
-            factory = metaFactory.getSOAP11Factory();
-        }
-
-        StAXSOAPModelBuilder stAXSOAPModelBuilder =
-                new StAXSOAPModelBuilder(env.getXMLStreamReader(), factory, nsURI);
-        SOAPEnvelope envelope = (stAXSOAPModelBuilder).getSOAPEnvelope();
-        envelope.build();
-
-        return (Element)envelope;
+        return (Element)OMXMLBuilderFactory.createStAXSOAPModelBuilder(
+                OMAbstractFactory.getMetaFactory(OMAbstractFactory.FEATURE_DOM),
+                env.getXMLStreamReader()).getSOAPEnvelope();
     }
 
     public static org.apache.axiom.soap.SOAPEnvelope
             getSOAPEnvelopeFromDOOMDocument(org.w3c.dom.Document doc) {
-
-        OMElement docElem = (OMElement)doc.getDocumentElement();
-        StAXSOAPModelBuilder stAXSOAPModelBuilder =
-                new StAXSOAPModelBuilder(docElem.getXMLStreamReader(), null);
-        return stAXSOAPModelBuilder.getSOAPEnvelope();
+        return OMXMLBuilderFactory.createStAXSOAPModelBuilder(((OMElement)doc.getDocumentElement()).getXMLStreamReader()).getSOAPEnvelope();
     }
 
 
     public static org.apache.axiom.soap.SOAPEnvelope
             toOMSOAPEnvelope(org.w3c.dom.Element elem) {
-
-        OMElement docElem = (OMElement)elem;
-        StAXSOAPModelBuilder stAXSOAPModelBuilder =
-                new StAXSOAPModelBuilder(docElem.getXMLStreamReader(), null);
-        return stAXSOAPModelBuilder.getSOAPEnvelope();
+        return OMXMLBuilderFactory.createStAXSOAPModelBuilder(((OMElement)elem).getXMLStreamReader()).getSOAPEnvelope();
     }
     
     /**
@@ -136,8 +88,7 @@
      */
     public static org.apache.axiom.soap.SOAPEnvelope toOMSOAPEnvelope(
             javax.xml.soap.SOAPMessage message) throws SOAPException {
-        
-        Attachments attachments = new Attachments();
+        final Map<String,DataHandler> attachments = new HashMap<String,DataHandler>();
         for (Iterator it = message.getAttachments(); it.hasNext(); ) {
             AttachmentPart attachment = (AttachmentPart)it.next();
             String contentId = attachment.getContentId();
@@ -149,12 +100,18 @@
                 if (contentId.startsWith("<") && contentId.endsWith(">")) {
                     contentId = contentId.substring(1, contentId.length()-1);
                 }
-                attachments.addDataHandler(contentId, dh);
+                attachments.put(contentId, dh);
             }
         }
         OMElement docElem = (OMElement)message.getSOAPPart().getDocumentElement();
-        MTOMStAXSOAPModelBuilder builder = new MTOMStAXSOAPModelBuilder(docElem.getXMLStreamReader(), attachments);
-        return builder.getSOAPEnvelope();
+        OMAttachmentAccessor attachmentAccessor = new OMAttachmentAccessor() {
+            @Override
+            public DataHandler getDataHandler(String contentID) {
+                return attachments.get(contentID);
+            }
+        };
+        return OMXMLBuilderFactory.createSOAPModelBuilder(OMAbstractFactory.getMetaFactory(),
+                new StAXSource(docElem.getXMLStreamReader()), attachmentAccessor).getSOAPEnvelope();
     }
 
     /**
diff --git a/modules/saaj/test-resources/log4j.properties b/modules/saaj/test-resources/log4j.properties
index 497f046..869707a 100644
--- a/modules/saaj/test-resources/log4j.properties
+++ b/modules/saaj/test-resources/log4j.properties
@@ -26,7 +26,6 @@
 

 # Set the enterprise logger priority to FATAL

 log4j.logger.org.apache.axis2.enterprise=FATAL

-log4j.logger.de.hunsicker.jalopy.io=FATAL

 log4j.logger.httpclient.wire.header=FATAL

 log4j.logger.org.apache.commons.httpclient=FATAL

 

@@ -40,4 +39,4 @@
 log4j.appender.LOGFILE.File=axis2.log

 log4j.appender.LOGFILE.Append=true

 log4j.appender.LOGFILE.layout=org.apache.log4j.PatternLayout

-log4j.appender.LOGFILE.layout.ConversionPattern=%d [%t] %-5p %c %x - %m%n
\ No newline at end of file
+log4j.appender.LOGFILE.layout.ConversionPattern=%d [%t] %-5p %c %x - %m%n

diff --git a/modules/saaj/test-resources/saaj-repo/axis2.xml b/modules/saaj/test-resources/saaj-repo/axis2.xml
index 3cfaab1..ba29f97 100644
--- a/modules/saaj/test-resources/saaj-repo/axis2.xml
+++ b/modules/saaj/test-resources/saaj-repo/axis2.xml
@@ -51,7 +51,7 @@
     <!-- Transport Outs -->
     <!-- ================================================= -->
 
-  <transportSender name="http" class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
+  <transportSender name="http" class="org.apache.axis2.transport.http.impl.httpclient4.HTTPClient4TransportSender">
             <parameter name="PROTOCOL">HTTP/1.1</parameter>
     </transportSender>
     <transportSender name="local" class="org.apache.axis2.transport.local.LocalTransportSender"/>
diff --git a/modules/saaj/test/org/apache/axis2/saaj/AttachmentTest.java b/modules/saaj/test/org/apache/axis2/saaj/AttachmentTest.java
index b247ce3..2e3a683 100644
--- a/modules/saaj/test/org/apache/axis2/saaj/AttachmentTest.java
+++ b/modules/saaj/test/org/apache/axis2/saaj/AttachmentTest.java
@@ -321,4 +321,4 @@
         }
         return true;
     }
-}
\ No newline at end of file
+}
diff --git a/modules/transport/local/src/org/apache/axis2/transport/local/NonBlockingLocalTransportSender.java b/modules/saaj/test/org/apache/axis2/saaj/ImplementationTest.java
similarity index 70%
copy from modules/transport/local/src/org/apache/axis2/transport/local/NonBlockingLocalTransportSender.java
copy to modules/saaj/test/org/apache/axis2/saaj/ImplementationTest.java
index 1576c00..65be4b4 100644
--- a/modules/transport/local/src/org/apache/axis2/transport/local/NonBlockingLocalTransportSender.java
+++ b/modules/saaj/test/org/apache/axis2/saaj/ImplementationTest.java
@@ -16,13 +16,15 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+package org.apache.axis2.saaj;
 
-package org.apache.axis2.transport.local;
+import junit.framework.TestCase;
+import junit.framework.TestSuite;
 
-public class NonBlockingLocalTransportSender extends LocalTransportSender {
+import org.apache.axiom.ts.saaj.SAAJTestSuiteBuilder;
 
-    protected boolean isNonBlocking() {
-        return true;
+public class ImplementationTest extends TestCase {
+    public static TestSuite suite() throws Exception {
+        return new SAAJTestSuiteBuilder(new SAAJMetaFactoryImpl()).build();
     }
-
 }
diff --git a/modules/saaj/test/org/apache/axis2/saaj/SOAPEnvelopeTest.java b/modules/saaj/test/org/apache/axis2/saaj/SOAPEnvelopeTest.java
index 30e88b3..c62e036 100644
--- a/modules/saaj/test/org/apache/axis2/saaj/SOAPEnvelopeTest.java
+++ b/modules/saaj/test/org/apache/axis2/saaj/SOAPEnvelopeTest.java
@@ -704,4 +704,4 @@
         assertEquals("this is a test with a comment node", text.getData().trim());
         assertFalse(iter.hasNext());        
     }
-}
\ No newline at end of file
+}
diff --git a/modules/saaj/test/org/apache/axis2/saaj/SOAPHeaderTest.java b/modules/saaj/test/org/apache/axis2/saaj/SOAPHeaderTest.java
index 6993ce0..876fd38 100644
--- a/modules/saaj/test/org/apache/axis2/saaj/SOAPHeaderTest.java
+++ b/modules/saaj/test/org/apache/axis2/saaj/SOAPHeaderTest.java
@@ -457,4 +457,4 @@
         assertFalse(it.hasNext());
         assertEquals(0, header.getChildNodes().getLength());
     }
-}
\ No newline at end of file
+}
diff --git a/modules/saaj/test/org/apache/axis2/saaj/SOAPPartTest.java b/modules/saaj/test/org/apache/axis2/saaj/SOAPPartTest.java
index 52eb62e..1ebb839 100644
--- a/modules/saaj/test/org/apache/axis2/saaj/SOAPPartTest.java
+++ b/modules/saaj/test/org/apache/axis2/saaj/SOAPPartTest.java
@@ -20,7 +20,6 @@
 package org.apache.axis2.saaj;
 
 import junit.framework.Assert;
-import org.apache.axiom.soap.impl.dom.soap11.SOAP11Factory;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.w3c.dom.Document;
@@ -196,50 +195,6 @@
         assertTrue(node == null);
     }
     
-    /**
-     * Check parent processing of SOAPMessage
-     */
-    // TODO: check why this fails with Sun's SAAJ implementation
-    @Test
-    public void test_parentAccess2() throws Exception {
-
-        MessageFactory mf = MessageFactory.newInstance();
-        SOAPMessage m = mf.createMessage();
-        SOAPPart sp = m.getSOAPPart();
-        SOAPEnvelope se = sp.getEnvelope();
-        Node node = se.getParentNode();
-        assertTrue(node == sp);
-        node = node.getParentNode();
-        assertTrue(node == null);
-
-        SOAPElement e = se.getParentElement();
-        assertTrue(node == null);
-    }
-    
-    /**
-     * Check parent processing of SOAPMessage
-     */
-    @Validated @Test
-    public void test_parentAccess3() throws Exception {
-
-        SOAP11Factory axiomSF = new SOAP11Factory();
-        org.apache.axiom.soap.SOAPEnvelope axiomSE = axiomSF.createSOAPEnvelope();
-        org.apache.axiom.soap.SOAPMessage axiomSM = axiomSF.createSOAPMessage();
-        axiomSM.setSOAPEnvelope(axiomSE);
-        
-        SOAPEnvelopeImpl se = new SOAPEnvelopeImpl(axiomSE);
-        SOAPMessageImpl sm = new SOAPMessageImpl(se);
-        SOAPPartImpl sp = new SOAPPartImpl(sm, se);
-        
-        Node node = se.getParentNode();
-        assertTrue(node == sp);
-        node = node.getParentNode();
-        assertTrue(node == null);
-
-        SOAPElement e = se.getParentElement();
-        assertTrue(node == null);
-    }
-    
     // TODO: check why this fails with Sun's SAAJ implementation
     @Test
     public void testNodeTypes() throws Exception {
diff --git a/modules/samples/book/src/main/log4j.properties b/modules/samples/book/src/main/log4j.properties
index 55757e4..3a33724 100644
--- a/modules/samples/book/src/main/log4j.properties
+++ b/modules/samples/book/src/main/log4j.properties
@@ -23,7 +23,6 @@
 

 # Set the enterprise logger priority to FATAL

 log4j.logger.org.apache.axis2.enterprise=FATAL

-log4j.logger.de.hunsicker.jalopy.io=FATAL

 log4j.logger.httpclient.wire.header=FATAL

 log4j.logger.org.apache.commons.httpclient=FATAL

 

@@ -37,4 +36,4 @@
 log4j.appender.LOGFILE.File=axis2.log

 log4j.appender.LOGFILE.Append=true

 log4j.appender.LOGFILE.layout=org.apache.log4j.PatternLayout

-log4j.appender.LOGFILE.layout.ConversionPattern=%d [%t] %-5p %c %x - %m%n
\ No newline at end of file
+log4j.appender.LOGFILE.layout.ConversionPattern=%d [%t] %-5p %c %x - %m%n

diff --git a/modules/samples/databinding/README.txt b/modules/samples/databinding/README.txt
index 520cf71..395efb6 100644
--- a/modules/samples/databinding/README.txt
+++ b/modules/samples/databinding/README.txt
@@ -14,7 +14,6 @@
  * Install Apache Ant 1.6.2 or later.

  * Please create a directory named lib under the directory that contains this file.

  * Download the following libraries and drop them into the new lib directory:

-   * Latest stax-utils jar from https://stax-utils.dev.java.net/servlets/ProjectDocumentList?folderID=1106

    * Version 1.0.4 of Castor jar from http://dist.codehaus.org/castor/1.0.4/castor-1.0.4.jar.

      (The latest releases of castor are available at http://www.castor.org/download.html, but this example may not run 	

      with versions later than 1.0.4)

diff --git a/modules/samples/databinding/build.xml b/modules/samples/databinding/build.xml
index 3920acf..66228d3 100644
--- a/modules/samples/databinding/build.xml
+++ b/modules/samples/databinding/build.xml
@@ -173,13 +173,11 @@
         </jar>
     </target>
 
-    <!--We are not shipping castor and stax-utils jars with the release. This target can be used to
+    <!--We are not shipping castor and Xerces jars with the release. This target can be used to
     download those jars that are required to run this sample.-->
     <target name="download.jars">
        <mkdir dir="lib"/>
 
-        <get src="http://ws.zones.apache.org/repository/stax-utils/jars/stax-utils-20060915.jar"
-             dest="lib/stax-utils-20060915.jar" verbose="true"/>
         <get src="http://dist.codehaus.org/castor/1.0.4/castor-1.0.4.jar" dest="lib/castor-1.0.4.jar"
              verbose="true"/>
         <get src="http://repo2.maven.org/maven2/xerces/xercesImpl/2.9.1/xercesImpl-2.9.1.jar"
diff --git a/modules/samples/databinding/client/src/samples/databinding/StockClient.java b/modules/samples/databinding/client/src/samples/databinding/StockClient.java
index f088d08..6a396e4 100644
--- a/modules/samples/databinding/client/src/samples/databinding/StockClient.java
+++ b/modules/samples/databinding/client/src/samples/databinding/StockClient.java
@@ -17,13 +17,16 @@
  * under the License.
  */
 package samples.databinding;
+
+import org.apache.axiom.om.OMAbstractFactory;
+import org.apache.axiom.om.OMDocument;
 import org.apache.axiom.om.OMElement;
-import org.apache.axiom.om.impl.builder.SAXOMBuilder;
 import org.exolab.castor.xml.Marshaller;
 import org.exolab.castor.xml.UnmarshalHandler;
 import org.exolab.castor.xml.Unmarshaller;
 import org.xml.sax.ContentHandler;
 import org.xml.sax.SAXException;
+
 import samples.databinding.data.GetStockQuote;
 import samples.databinding.data.GetStockQuoteResponse;
 
@@ -31,7 +34,6 @@
 import javax.xml.transform.TransformerFactory;
 import javax.xml.transform.sax.SAXResult;
 
-import javanet.staxutils.StAXSource;
 public final class StockClient {
     public static void main(String[] args) throws Exception {
         if (args.length != 2) {
@@ -49,20 +51,18 @@
         stub._getServiceClient().getOptions().setAction("getStockQuote");
         GetStockQuote stockQuote = new GetStockQuote();
         stockQuote.setSymbol(symbol);
-        SAXOMBuilder builder = new SAXOMBuilder();
-        Marshaller.marshal(stockQuote, builder);
+        OMDocument document = OMAbstractFactory.getOMFactory().createOMDocument();
+        Marshaller.marshal(stockQuote, document.getSAXResult().getHandler());
         OMElement response = stub.getStockQuote(
-                builder.getRootElement());
+                document.getOMDocumentElement());
 
 
-        StAXSource staxSource =
-                new StAXSource(response.getXMLStreamReader());
         Unmarshaller unmarshaller = new Unmarshaller(GetStockQuoteResponse.class);
         UnmarshalHandler unmarshalHandler = unmarshaller.createHandler();
         GetStockQuoteResponse stockQuoteResponse;
         try {
             ContentHandler contentHandler = Unmarshaller.getContentHandler(unmarshalHandler);
-            TransformerFactory.newInstance().newTransformer().transform(staxSource, new SAXResult(contentHandler));
+            TransformerFactory.newInstance().newTransformer().transform(response.getSAXSource(false), new SAXResult(contentHandler));
             stockQuoteResponse = (GetStockQuoteResponse) unmarshalHandler.getObject();
         } catch (SAXException e) {
             throw new RuntimeException(e);
diff --git a/modules/samples/databinding/client/src/samples/databinding/StockClient2.java b/modules/samples/databinding/client/src/samples/databinding/StockClient2.java
index 4f40ff4..267196e 100644
--- a/modules/samples/databinding/client/src/samples/databinding/StockClient2.java
+++ b/modules/samples/databinding/client/src/samples/databinding/StockClient2.java
@@ -17,27 +17,28 @@
  * under the License.
  */
 package samples.databinding;
+
 import org.apache.axiom.om.OMAbstractFactory;
 import org.apache.axiom.om.OMDataSource;
 import org.apache.axiom.om.OMElement;
 import org.apache.axiom.om.OMFactory;
 import org.apache.axiom.om.OMOutputFormat;
-import org.apache.axiom.om.impl.builder.SAXOMBuilder;
+import org.apache.axiom.om.ds.AbstractPushOMDataSource;
 import org.jdom.Document;
 import org.jdom.Element;
 import org.jdom.JDOMException;
 import org.jdom.input.StAXBuilder;
-import org.jdom.output.SAXOutputter;
 import org.jdom.output.StAXOutputter;
-import org.jdom.output.XMLOutputter;
 import org.jdom.xpath.XPath;
 
 import javax.xml.stream.XMLStreamException;
 import javax.xml.stream.XMLStreamReader;
 import javax.xml.stream.XMLStreamWriter;
+
 import java.io.IOException;
 import java.io.OutputStream;
 import java.io.Writer;
+
 public final class StockClient2 {
     public static void main(String[] args) throws Exception {
         if (args.length != 2) {
@@ -74,31 +75,13 @@
         System.out.println("Price = " + price.getText());
     }
 
-    private static class JDOMDataSource implements OMDataSource {
+    private static class JDOMDataSource extends AbstractPushOMDataSource {
         private final Element data;
 
         private JDOMDataSource(Element data) {
             this.data = data;
         }
 
-        public void serialize(OutputStream output, OMOutputFormat format) throws XMLStreamException {
-            try {
-                XMLOutputter outputter = new XMLOutputter();
-                outputter.output(data, output);
-            } catch (IOException e) {
-                throw new XMLStreamException(e);
-            }
-        }
-
-        public void serialize(Writer writer, OMOutputFormat format) throws XMLStreamException {
-            try {
-                XMLOutputter outputter = new XMLOutputter();
-                outputter.output(data, writer);
-            } catch (IOException e) {
-                throw new XMLStreamException(e);
-            }
-        }
-
         public void serialize(XMLStreamWriter xmlWriter) throws XMLStreamException {
             StAXOutputter outputter = new StAXOutputter(xmlWriter);
             try {
@@ -107,15 +90,5 @@
                 throw new XMLStreamException(e);
             }
         }
-
-        public XMLStreamReader getReader() throws XMLStreamException {
-            SAXOMBuilder builder = new SAXOMBuilder();
-            SAXOutputter outputter = new SAXOutputter();
-            outputter.setContentHandler(builder);
-            outputter.setEntityResolver(builder);
-            outputter.setDTDHandler(builder);
-            outputter.setEntityResolver(builder);
-            return builder.getRootElement().getXMLStreamReader();
-        }
     }
 }
diff --git a/modules/samples/databinding/service/src/samples/databinding/StockQuoteServiceSkeleton.java b/modules/samples/databinding/service/src/samples/databinding/StockQuoteServiceSkeleton.java
index f261040..9a3d7fb 100644
--- a/modules/samples/databinding/service/src/samples/databinding/StockQuoteServiceSkeleton.java
+++ b/modules/samples/databinding/service/src/samples/databinding/StockQuoteServiceSkeleton.java
@@ -16,16 +16,10 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-
-/**
- * StockQuoteServiceSkeleton.java
- *
- * This file was auto-generated from WSDL
- * by the Apache Axis2 version: 1.1-SNAPSHOT Nov 03, 2006 (06:54:07 EST)
- */
 package samples.databinding;
-import javanet.staxutils.StAXSource;
-import org.apache.axiom.om.impl.builder.SAXOMBuilder;
+
+import org.apache.axiom.om.OMDocument;
+import org.apache.axiom.om.OMElement;
 import org.apache.axis2.AxisFault;
 import org.exolab.castor.xml.MarshalException;
 import org.exolab.castor.xml.Marshaller;
@@ -34,6 +28,7 @@
 import org.exolab.castor.xml.ValidationException;
 import org.xml.sax.ContentHandler;
 import org.xml.sax.SAXException;
+
 import samples.databinding.data.Change;
 import samples.databinding.data.GetStockQuote;
 import samples.databinding.data.GetStockQuoteResponse;
@@ -43,6 +38,7 @@
 import javax.xml.transform.TransformerException;
 import javax.xml.transform.TransformerFactory;
 import javax.xml.transform.sax.SAXResult;
+
 import java.io.IOException;
 import java.util.Calendar;
 /**
@@ -54,15 +50,13 @@
      *
      * @param param0
      */
-    public org.apache.axiom.om.OMElement getStockQuote(org.apache.axiom.om.OMElement param0) throws AxisFault {
-        StAXSource staxSource =
-                new StAXSource(param0.getXMLStreamReader());
+    public OMElement getStockQuote(OMElement param0) throws AxisFault {
         Unmarshaller unmarshaller = new Unmarshaller(GetStockQuote.class);
         UnmarshalHandler unmarshalHandler = unmarshaller.createHandler();
         GetStockQuote stockQuote;
         try {
             ContentHandler contentHandler = Unmarshaller.getContentHandler(unmarshalHandler);
-            TransformerFactory.newInstance().newTransformer().transform(staxSource, new SAXResult(contentHandler));
+            TransformerFactory.newInstance().newTransformer().transform(param0.getSAXSource(false), new SAXResult(contentHandler));
             stockQuote = (GetStockQuote) unmarshalHandler.getObject();
         } catch (SAXException e) {
             throw new RuntimeException(e);
@@ -90,9 +84,10 @@
         quote.setChange(change);
 
         stockQuoteResponse.setQuote(quote);
-        SAXOMBuilder builder = new SAXOMBuilder();
+        
+        OMDocument document = param0.getOMFactory().createOMDocument();
         try {
-            Marshaller.marshal(stockQuoteResponse, builder);
+            Marshaller.marshal(stockQuoteResponse, document.getSAXResult().getHandler());
         } catch (MarshalException e) {
             throw new RuntimeException(e);
         } catch (ValidationException e) {
@@ -100,7 +95,7 @@
         } catch (IOException e) {
             throw new RuntimeException(e);
         }
-        return builder.getRootElement();
+        return document.getOMDocumentElement();
     }
 }
     
diff --git a/modules/samples/dynamicclient/server/pom.xml b/modules/samples/dynamicclient/server/pom.xml
index 3fb517d..d7861ca 100644
--- a/modules/samples/dynamicclient/server/pom.xml
+++ b/modules/samples/dynamicclient/server/pom.xml
@@ -50,16 +50,6 @@
 	</dependencies>
 	<build>
 		<plugins>
-
-			<plugin>
-				<groupId>org.apache.maven.plugins</groupId>
-				<artifactId>maven-compiler-plugin</artifactId>
-				<configuration>
-					<source>1.5</source>
-					<target>1.5</target>
-				</configuration>
-			</plugin>
-
 			<plugin>
 				<groupId>org.apache.axis2</groupId>
 				<artifactId>simple-server-maven-plugin</artifactId>
diff --git a/modules/samples/eventing/build.xml b/modules/samples/eventing/build.xml
deleted file mode 100644
index 5a5afe6..0000000
--- a/modules/samples/eventing/build.xml
+++ /dev/null
@@ -1,105 +0,0 @@
-<!--
-  ~ Licensed to the Apache Software Foundation (ASF) under one
-  ~ or more contributor license agreements. See the NOTICE file
-  ~ distributed with this work for additional information
-  ~ regarding copyright ownership. The ASF licenses this file
-  ~ to you under the Apache License, Version 2.0 (the
-  ~ "License"); you may not use this file except in compliance
-  ~ with the License. You may obtain a copy of the License at
-  ~
-  ~ http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing,
-  ~ software distributed under the License is distributed on an
-  ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  ~ KIND, either express or implied. See the License for the
-  ~ specific language governing permissions and limitations
-  ~ under the License.
-  -->
-
-<project default="build.sample">
-
-    
-	<!--<classpath id="classpath1">
-		<pathelement location="lib/*.jar"/>
-	</classpath>-->
-	
-	<target name="build.sample">
-		<property name="eventing.temp.dir" value="build/temp" />
-	    <property name="listner1.temp.dir" value="${eventing.temp.dir}/listner1" />
-	    <property name="listner2.temp.dir" value="${eventing.temp.dir}/listner2" />
-	    <property name="publisher.temp.dir" value="${eventing.temp.dir}/publisher" />
-	        
-	    <mkdir dir="${listner1.temp.dir}" />
-	    <mkdir dir="${listner1.temp.dir}/META-INF" />
-	    <mkdir dir="${listner2.temp.dir}" />
-	    <mkdir dir="${listner2.temp.dir}/META-INF" />
-	    <mkdir dir="${publisher.temp.dir}" />
-	    <mkdir dir="${publisher.temp.dir}/META-INF" />
-
-	    <mkdir dir="build/classes" />
-	    <mkdir dir="build/lib" />
-	    	
-		<javac srcdir="src" destdir="build/classes">
-			<classpath>
-			    <fileset dir="build/lib">
-			        <include name="*.jar"/>
-			    </fileset>
-			</classpath>
-		</javac>
-		
-	    <copy toFile="${listner1.temp.dir}/META-INF/services.xml" file="listner1.services.xml"/>
-	    <copy toFile="${listner2.temp.dir}/META-INF/services.xml" file="listner2.services.xml"/>
-	        <copy toFile="${publisher.temp.dir}/META-INF/services.xml" file="publisher.services.xml"/>
-	        
-	        <jar destfile="build/ListnerService1.aar">
-	            <fileset dir="build/classes">
-	                <include name="sample/eventing/**/**/*ListnerService1*" />
-	            </fileset>
-	            <fileset dir="${listner1.temp.dir}">
-	                <include name="META-INF/**"/>
-	            </fileset>
-	        </jar>
-	        
-	        <jar destfile="build/ListnerService2.aar">
-	            <fileset dir="build/classes">
-	                <include name="sample/eventing/**/**/*ListnerService2*" />
-	            </fileset>
-	            <fileset dir="${listner2.temp.dir}">
-	                <include name="META-INF/**"/>
-	            </fileset>
-	        </jar>
-	        
-	        <jar destfile="build/PublisherService.aar">
-	            <fileset dir="build/classes">
-	                <include name="sample/eventing/**/**/*PublisherService*" />
-	            </fileset>
-	            <fileset dir="${publisher.temp.dir}">
-	                <include name="META-INF/**"/>
-	            </fileset>
-	        </jar>
-	        
-	        <jar destfile="build/ListnerService1.aar">
-	            <fileset dir="build/classes">
-	                <include name="sample/eventing/**/**/*ListnerService1*" />
-	            </fileset>
-	            <fileset dir="${listner1.temp.dir}">
-	                <include name="META-INF/**"/>
-	            </fileset>
-	        </jar>
-	        
-	        <jar destfile="build/EventingSample.jar">
-	            <fileset dir="build/classes">
-	                <include name="sample/eventing/**"/>
-	            </fileset>
-	        </jar>
-	        
-	        <copy todir="build">
-	            <fileset dir=".">
-	            	 <include name="*.sh"/>
-	            	 <include name="*.bat"/>
-	        	</fileset>
-	        </copy>
-	</target>
-
-</project>
\ No newline at end of file
diff --git a/modules/samples/eventing/listner1.services.xml b/modules/samples/eventing/listner1.services.xml
deleted file mode 100644
index 8450b66..0000000
--- a/modules/samples/eventing/listner1.services.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-<!--
-  ~ Licensed to the Apache Software Foundation (ASF) under one
-  ~ or more contributor license agreements. See the NOTICE file
-  ~ distributed with this work for additional information
-  ~ regarding copyright ownership. The ASF licenses this file
-  ~ to you under the Apache License, Version 2.0 (the
-  ~ "License"); you may not use this file except in compliance
-  ~ with the License. You may obtain a copy of the License at
-  ~
-  ~ http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing,
-  ~ software distributed under the License is distributed on an
-  ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  ~ KIND, either express or implied. See the License for the
-  ~ specific language governing permissions and limitations
-  ~ under the License.
-  -->
-
-<service name="ListnerService1">
-
-   <parameter name="ServiceClass" locked="xsd:false">sample.eventing.ListnerService1</parameter>
-
-    <description>
-        The Listner Service 1 of the Axis2 Eventing sample.
-    </description>
-
-    <operation name="publish" mep="http://www.w3.org/ns/wsdl/in-only">  
-        <messageReceiver class="org.apache.axis2.receivers.RawXMLINOnlyMessageReceiver" />
-    </operation>
-           
-</service>
\ No newline at end of file
diff --git a/modules/samples/eventing/listner2.services.xml b/modules/samples/eventing/listner2.services.xml
deleted file mode 100644
index 83cd909..0000000
--- a/modules/samples/eventing/listner2.services.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-<!--
-  ~ Licensed to the Apache Software Foundation (ASF) under one
-  ~ or more contributor license agreements. See the NOTICE file
-  ~ distributed with this work for additional information
-  ~ regarding copyright ownership. The ASF licenses this file
-  ~ to you under the Apache License, Version 2.0 (the
-  ~ "License"); you may not use this file except in compliance
-  ~ with the License. You may obtain a copy of the License at
-  ~
-  ~ http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing,
-  ~ software distributed under the License is distributed on an
-  ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  ~ KIND, either express or implied. See the License for the
-  ~ specific language governing permissions and limitations
-  ~ under the License.
-  -->
-
-<service name="ListnerService2">
-
-   <parameter name="ServiceClass" locked="xsd:false">sample.eventing.ListnerService2</parameter>
-
-    <description>
-        The Listner Service 2 of the Axis2 Eventing sample.
-    </description>
-
-    <operation name="publish" mep="http://www.w3.org/ns/wsdl/in-only">  
-        <messageReceiver class="org.apache.axis2.receivers.RawXMLINOnlyMessageReceiver" />
-    </operation>
-           
-</service>
\ No newline at end of file
diff --git a/modules/samples/eventing/publisher.services.xml b/modules/samples/eventing/publisher.services.xml
deleted file mode 100644
index 0bf561f..0000000
--- a/modules/samples/eventing/publisher.services.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<!--
-  ~ Licensed to the Apache Software Foundation (ASF) under one
-  ~ or more contributor license agreements. See the NOTICE file
-  ~ distributed with this work for additional information
-  ~ regarding copyright ownership. The ASF licenses this file
-  ~ to you under the Apache License, Version 2.0 (the
-  ~ "License"); you may not use this file except in compliance
-  ~ with the License. You may obtain a copy of the License at
-  ~
-  ~ http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing,
-  ~ software distributed under the License is distributed on an
-  ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  ~ KIND, either express or implied. See the License for the
-  ~ specific language governing permissions and limitations
-  ~ under the License.
-  -->
-
-<service name="PublisherService">
-
-   <parameter name="ServiceClass" locked="xsd:false">sample.eventing.PublisherService</parameter>
-
-    <description>
-        The Publisher Service of the Axis2 Eventing sample.
-    </description>
-
-    <module ref="savan" />
-    <module ref="addressing" />
-	      
-    <operation name="dummyMethod" mep="http://www.w3.org/ns/wsdl/in-only">  
-        <messageReceiver class="org.apache.axis2.receivers.RawXMLINOnlyMessageReceiver" />
-		<actionMapping>uuid:DummyMethodAction</actionMapping>
-    </operation>
-           
-</service>
\ No newline at end of file
diff --git a/modules/samples/eventing/readme.txt b/modules/samples/eventing/readme.txt
deleted file mode 100644
index 396d0a4..0000000
--- a/modules/samples/eventing/readme.txt
+++ /dev/null
@@ -1,19 +0,0 @@
-Steps to build and run the Savan-Eventing sample
-------------------------------------------------
-
-To build
---------
-
-1. Move to the sample folder.
-2. Create a subfolders 'build/lib'.
-3. Copy all the jars from a compatible Axis2 distribution to 'build/lib'.
-4. Copy the savan jar file to 'build/lib'.
-5. Run 'ant' to build the sample.
-
-
-To run
-------
-1. Start a Axis2 server.
-2. Deploy savan and addressing modules.
-3. Deploy the three services that were created in the 'build' folder.
-4. Run the 'samples.eventing.Client' class, you can pass the repository with a '-r' parameter and the server port with a '-p' parameter.
diff --git a/modules/samples/eventing/run.bat b/modules/samples/eventing/run.bat
deleted file mode 100644
index be73af0..0000000
--- a/modules/samples/eventing/run.bat
+++ /dev/null
@@ -1,58 +0,0 @@
-@echo off

-

-REM  Licensed to the Apache Software Foundation (ASF) under one

-REM  or more contributor license agreements. See the NOTICE file

-REM  distributed with this work for additional information

-REM  regarding copyright ownership. The ASF licenses this file

-REM  to you under the Apache License, Version 2.0 (the

-REM  "License"); you may not use this file except in compliance

-REM  with the License. You may obtain a copy of the License at

-REM  

-REM  http://www.apache.org/licenses/LICENSE-2.0

-REM  

-REM  Unless required by applicable law or agreed to in writing,

-REM  software distributed under the License is distributed on an

-REM  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

-REM  KIND, either express or implied. See the License for the

-REM  specific language governing permissions and limitations

-REM  under the License.

-

-rem ---------------------------------------------------------------------------

-rem Start script for running the Eventing Sample Client

-rem

-rem ---------------------------------------------------------------------------

-

-rem store the current directory

-set CURRENT_DIR=%cd%

-

-rem check the AXIS2_HOME environment variable

-if not "%AXIS2_HOME%" == "" goto gotHome

-

-rem guess the home. Jump two directories up and take that as the home

-cd ..

-cd ..

-set AXIS2_HOME=%cd%

-

-echo using Axis Home %AXIS2_HOME%

-

-

-:gotHome

-if EXIST "%AXIS2_HOME%\lib\axis2*.jar" goto okHome

-echo The AXIS2_HOME environment variable seems not to point to the correct loaction!

-echo This environment variable is needed to run this program

-pause

-goto end

-

-:okHome

-cd %CURRENT_DIR%

-

-setlocal EnableDelayedExpansion

-rem loop through the libs and add them to the class path

-set AXIS2_CLASS_PATH=%AXIS2_HOME%

-FOR %%c in (%AXIS2_HOME%\lib\*.jar) DO set AXIS2_CLASS_PATH=!AXIS2_CLASS_PATH!;%%c

-

-set AXIS2_CLASS_PATH=%AXIS2_CLASS_PATH%;"%CURRENT_DIR%\EventingSample.jar"

-

-java -cp %AXIS2_CLASS_PATH% -Daxis2.repo=%AXIS2_HOME% sample.eventing.Client

-endlocal

-:end
\ No newline at end of file
diff --git a/modules/samples/eventing/run.sh b/modules/samples/eventing/run.sh
deleted file mode 100644
index 2b71e48..0000000
--- a/modules/samples/eventing/run.sh
+++ /dev/null
@@ -1,29 +0,0 @@
-#!/bin/sh

-

-#  Licensed to the Apache Software Foundation (ASF) under one

-#  or more contributor license agreements. See the NOTICE file

-#  distributed with this work for additional information

-#  regarding copyright ownership. The ASF licenses this file

-#  to you under the Apache License, Version 2.0 (the

-#  "License"); you may not use this file except in compliance

-#  with the License. You may obtain a copy of the License at

-#  

-#  http://www.apache.org/licenses/LICENSE-2.0

-#  

-#  Unless required by applicable law or agreed to in writing,

-#  software distributed under the License is distributed on an

-#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

-#  KIND, either express or implied. See the License for the

-#  specific language governing permissions and limitations

-#  under the License.

-

-export AXIS2_HOME=../..

-AXIS2_CLASSPATH=$AXIS2_CLASSPATH:SGCCalculator.jar

-for f in $AXIS2_HOME/lib/*.jar

-do

-  AXIS2_CLASSPATH=$AXIS2_CLASSPATH:$f

-done

-export AXIS2_CLASSPATH

-echo classpath: $AXIS2_CLASSPATH

-

-java -classpath $AXIS2_CLASSPATH -Daxis2.repo=$AXIS2_HOME  sample.sgccalculator.CalcClient

diff --git a/modules/samples/eventing/src/sample/eventing/Client.java b/modules/samples/eventing/src/sample/eventing/Client.java
deleted file mode 100644
index f7731e0..0000000
--- a/modules/samples/eventing/src/sample/eventing/Client.java
+++ /dev/null
@@ -1,296 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package sample.eventing;
-
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.IOException;
-import java.io.InputStreamReader;
-import java.util.Date;
-
-import javax.xml.namespace.QName;
-
-import org.apache.axiom.om.OMAbstractFactory;
-import org.apache.axiom.om.OMElement;
-import org.apache.axiom.om.OMFactory;
-import org.apache.axiom.om.OMNamespace;
-import org.apache.axis2.AxisFault;
-import org.apache.axis2.addressing.EndpointReference;
-import org.apache.axis2.client.Options;
-import org.apache.axis2.client.ServiceClient;
-import org.apache.axis2.context.ConfigurationContext;
-import org.apache.axis2.context.ConfigurationContextFactory;
-import org.apache.savan.eventing.client.EventingClient;
-import org.apache.savan.eventing.client.EventingClientBean;
-import org.apache.savan.eventing.client.SubscriptionStatus;
-
-public class Client {
-
-    BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
-    
-    private final int MIN_OPTION = 1;
-    private final int MAX_OPTION = 9;
-    
-    private final String SUBSCRIBER_1_ID = "subscriber1";
-    private final String SUBSCRIBER_2_ID = "subscriber2";
-    
-    private ServiceClient serviceClient = null;
-    private Options options = null;
-    private EventingClient eventingClient = null;
-    
-    private String toAddressPart = "/axis2/services/PublisherService";
-    private String listner1AddressPart = "/axis2/services/ListnerService1";
-    private String listner2AddressPart = "/axis2/services/ListnerService2";
-    
-	private final String applicationNamespaceName = "http://tempuri.org/"; 
-	private final String dummyMethod = "dummyMethod";
-    
-	private static String repo = null;
-	private static int port = 8080;
-	private static String serverIP = "127.0.0.1";
-	
-	private static final String portParam = "-p";
-	private static final String repoParam = "-r";
-	private static final String helpParam = "-h";
-	
-	public static void main (String[] args) throws Exception {
-		
-		for (int i=0;i<args.length;i++) {
-			if (helpParam.equalsIgnoreCase(args[i])) {
-				displayHelp ();
-				System.exit(0);
-			}
-		}
-		
-		String portStr = getParam(portParam,args);
-		if (portStr!=null) {
-			port = Integer.parseInt(portStr);
-			System.out.println("Server Port was set to:" + port);
-		}
-		
-		String repoStr = getParam(repoParam,args);
-		if (repoStr!=null) {
-			repo = repoStr;
-			System.out.println("Client Repository was set to:" + repo);
-		}
-		
-		Client c = new Client ();
-		c.run ();
-	}
-	
-	private static void displayHelp () {
-		System.out.println("Help page for the Eventing Client");
-		System.out.println("---------------------------------");
-		System.out.println("Set the client reposiory using the parameter -r");
-		System.out.println("Set the server port using the parameter -p");
-	}
-	
-    /**
-     * This will check the given parameter in the array and will return, if available
-     *
-     * @param param
-     * @param args
-     * @return
-     */
-    private static String getParam(String param, String[] args) {
-        if (param == null || "".equals(param)) {
-            return null;
-        }
-
-        for (int i = 0; i < args.length; i = i + 2) {
-            String arg = args[i];
-            if (param.equalsIgnoreCase(arg) && (args.length >= (i + 1))) {
-                return args[i + 1];
-            }
-        }
-        return null;
-    }
-	
-	public void run () throws Exception {
-		
-		System.out.println("\n");
-		System.out.println("Welcome to Axis2 Eventing Sample");
-		System.out.println("================================\n");
-		
-		boolean validOptionSelected = false;
-		int selectedOption = -1;
-		while (!validOptionSelected) {
-			displayMenu();
-			selectedOption = getIntInput();
-			if (selectedOption>=MIN_OPTION && selectedOption<=MAX_OPTION)
-				validOptionSelected = true;
-			else 
-				System.out.println("\nInvalid Option \n\n");
-		}
-			
-		initClient ();
-		performAction (selectedOption);
-		
-		//TODO publish
-		
-		System.out.println("Press enter to initialize the publisher service.");
-		reader.readLine();
-		
-		options.setAction("uuid:DummyMethodAction");
-		serviceClient.fireAndForget(getDummyMethodRequestElement ());
-		
-		while (true) {
-			
-			validOptionSelected = false;
-			selectedOption = -1;
-			while (!validOptionSelected) {
-				displayMenu();
-				selectedOption = getIntInput();
-				if (selectedOption>=MIN_OPTION && selectedOption<=MAX_OPTION)
-					validOptionSelected = true;
-				else 
-					System.out.println("\nInvalid Option \n\n");
-			}
-				
-			performAction (selectedOption);
-			
-		}
-	}
-	
-	private void displayMenu () {
-		System.out.println("Press 1 to subscribe Listner Service 1");
-		System.out.println("Press 2 to subscribe Listner Service 2");
-		System.out.println("Press 3 to subscribe both listner services");
-		System.out.println("Press 4 to unsubscribe Listner Service 1");
-		System.out.println("Press 5 to unsubscribe Listner Service 2");
-		System.out.println("Press 6 to unsubscribe both listner services");
-		System.out.println("Press 7 to to get the status of the subscription to Service 1");
-		System.out.println("Press 8 to to get the status of the subscription to Service 2");
-		System.out.println("Press 9 to Exit");
-	}
-	
-	private int getIntInput () throws IOException {
-        String option = reader.readLine();
-        try {
-            return Integer.parseInt(option);
-        } catch (NumberFormatException e) {
-        	//invalid option
-        	return -1;
-        }
-	}
-	
-	private void initClient () throws AxisFault {
-
-		String CLIENT_REPO = null;
-		String AXIS2_XML = null;
-		
-		if (repo!=null) {
-			CLIENT_REPO = repo;
-			AXIS2_XML = repo + File.separator + "axis2.xml";
-		} else {
-//			throw new AxisFault ("Please specify the client repository as a program argument.Use '-h' for help.");
-		}
-		
-		ConfigurationContext configContext = ConfigurationContextFactory.createConfigurationContextFromFileSystem(CLIENT_REPO,null);
-		serviceClient = new ServiceClient (configContext,null); //TODO give a repo
-		
-		options = new Options ();
-		serviceClient.setOptions(options);
-		serviceClient.engageModule(new QName ("addressing"));
-		
-		eventingClient = new EventingClient (serviceClient);
-		
-		String toAddress = "http://" + serverIP + ":" + port + toAddressPart;
-		options.setTo(new EndpointReference (toAddress));
-	}
-	
-	private void performAction (int action) throws Exception {
-		
-		switch (action) {
-		case 1:
-			doSubscribe(SUBSCRIBER_1_ID);
-			break;
-		case 2:
-			doSubscribe(SUBSCRIBER_2_ID);
-			break;
-		case 3:
-			doSubscribe(SUBSCRIBER_1_ID);
-			doSubscribe(SUBSCRIBER_2_ID);
-			break;
-		case 4:
-			doUnsubscribe(SUBSCRIBER_1_ID);
-			break;
-		case 5:
-			doUnsubscribe(SUBSCRIBER_2_ID);
-			break;
-		case 6:
-			doUnsubscribe(SUBSCRIBER_1_ID);
-			doUnsubscribe(SUBSCRIBER_2_ID);
-			break;
-		case 7:
-			doGetStatus(SUBSCRIBER_1_ID);
-			break;
-		case 8:
-			doGetStatus(SUBSCRIBER_2_ID);
-			break;
-		case 9:
-			System.exit(0);
-			break;
-		default:
-			break;
-		}
-	}
-	
-	private void doSubscribe (String ID) throws Exception {
-		EventingClientBean bean = new EventingClientBean ();
-		
-		String subscribingAddress = null;
-		if (SUBSCRIBER_1_ID.equals(ID)) {
-            subscribingAddress = "http://" + serverIP + ":" + port + listner1AddressPart;
-		} else if (SUBSCRIBER_2_ID.equals(ID)) {
-            subscribingAddress = "http://" + serverIP + ":" + port + listner2AddressPart;
-		}
-	
-		bean.setDeliveryEPR(new EndpointReference (subscribingAddress));
-	
-		//uncomment following to set an expiration time of 10 minutes.
-//		Date date = new Date ();
-//		date.setMinutes(date.getMinutes()+10);
-//		bean.setExpirationTime(date);
-		
-		eventingClient.subscribe(bean,ID);
-		Thread.sleep(1000);   //TODO remove if not sequired
-	}
-	
-	private void doUnsubscribe (String ID) throws Exception {
-		eventingClient.unsubscribe(ID);
-		Thread.sleep(1000);   //TODO remove if not sequired
-	}
-	
-	private void doGetStatus (String ID) throws Exception {
-		SubscriptionStatus status  = eventingClient.getSubscriptionStatus(ID);
-		Thread.sleep(1000);   //TODO remove if not sequired
-		
-		String statusValue = status.getExpirationValue();
-		System.out.println("Status of the subscriber '" + ID +"' is" + statusValue);
-	}
-	
-	private OMElement getDummyMethodRequestElement() {
-		OMFactory fac = OMAbstractFactory.getOMFactory();
-		OMNamespace namespace = fac.createOMNamespace(applicationNamespaceName,"ns1");
-		return fac.createOMElement(dummyMethod, namespace);
-	}
-	
-}
diff --git a/modules/samples/eventing/src/sample/eventing/ListnerService1.java b/modules/samples/eventing/src/sample/eventing/ListnerService1.java
deleted file mode 100644
index 0ffbb19..0000000
--- a/modules/samples/eventing/src/sample/eventing/ListnerService1.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package sample.eventing;
-
-import org.apache.axiom.om.OMElement;
-
-public class ListnerService1 {
-	
-	String name = "ListnerService1";
-
-	public void publish(OMElement param) throws Exception {
-		System.out.println("\n");
-		System.out.println("'" + name + "' got a new publication...");
-		System.out.println(param);
-		System.out.println("\n");
-	}
-
-}
diff --git a/modules/samples/eventing/src/sample/eventing/ListnerService2.java b/modules/samples/eventing/src/sample/eventing/ListnerService2.java
deleted file mode 100644
index 75b5746..0000000
--- a/modules/samples/eventing/src/sample/eventing/ListnerService2.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package sample.eventing;
-
-import org.apache.axiom.om.OMElement;
-
-public class ListnerService2 {
-  
-	String name = "ListnerService2";
-  
-	public void publish(OMElement param) throws Exception  {
-		System.out.println("\n");
-		System.out.println("'" + name +  "' got a new publication...");
-		System.out.println(param);
-		System.out.println("\n");
-	}
-
-}
diff --git a/modules/samples/eventing/src/sample/eventing/PublisherService.java b/modules/samples/eventing/src/sample/eventing/PublisherService.java
deleted file mode 100644
index dfd625d..0000000
--- a/modules/samples/eventing/src/sample/eventing/PublisherService.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package sample.eventing;
-
-import java.net.URI;
-import java.util.Random;
-
-import org.apache.axiom.om.OMAbstractFactory;
-import org.apache.axiom.om.OMElement;
-import org.apache.axiom.om.OMFactory;
-import org.apache.axiom.om.OMNamespace;
-import org.apache.axis2.AxisFault;
-import org.apache.axis2.context.ServiceContext;
-import org.apache.savan.publication.client.PublicationClient;
-import org.apache.savan.storage.SubscriberStore;
-import org.apache.savan.util.CommonUtil;
-
-public class PublisherService {
-  
-	ServiceContext serviceContext = null;
-	
-	public void init(ServiceContext serviceContext) throws AxisFault {
-		System.out.println("Eventing Service INIT called");
-		this.serviceContext = serviceContext;
-		
-		PublisherThread thread = new PublisherThread ();
-		thread.start();
-	}
-  
-	public void dummyMethod(OMElement param) throws Exception  {
-		System.out.println("Eventing Service dummy method called");
-	}
-	
-	private class PublisherThread extends Thread {
-		
-		String Publication = "Publication";
-		String publicationNamespaceValue = "http://tempuri/publication/";
-		Random r = new Random ();
-		
-		public void run () {
-			try {
-				while (true) {
-					
-					Thread.sleep(5000);
-					
-					//publishing
-					System.out.println("Publishing next publication...");
-					
-					SubscriberStore store = CommonUtil.getSubscriberStore(serviceContext.getAxisService());
-					if (store==null)
-						throw new Exception ("Cant find the Savan subscriber store");
-					
-					OMElement data = getNextPublicationData ();
-					
-					PublicationClient publicationClient = new PublicationClient (serviceContext.getConfigurationContext());
-					publicationClient.sendPublication(data,serviceContext.getAxisService(),null);
-				}
-			} catch (Exception e) {
-				// TODO Auto-generated catch block
-				e.printStackTrace();
-			}
-		}
-		
-		public OMElement getNextPublicationData () {
-			OMFactory factory = OMAbstractFactory.getOMFactory();
-			OMNamespace namespace = factory.createOMNamespace(publicationNamespaceValue,"ns1");
-			OMElement publicationElement = factory.createOMElement(Publication,namespace);
-			
-			int value = r.nextInt();
-			publicationElement.setText(Integer.toString(value));
-			
-			OMElement data = factory.createOMElement("publish",namespace);
-			data.addChild(publicationElement);
-			
-			
-			return data;
-		}
-	}
-}
diff --git a/modules/samples/java_first_jaxws/pom.xml b/modules/samples/java_first_jaxws/pom.xml
index f7119ff..f58cc15 100644
--- a/modules/samples/java_first_jaxws/pom.xml
+++ b/modules/samples/java_first_jaxws/pom.xml
@@ -17,14 +17,15 @@
   ~ under the License.
   -->
 
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
     <modelVersion>4.0.0</modelVersion>
-    <groupId>org.apache.axis2.examples</groupId>
+    <parent>
+        <groupId>org.apache.axis2.examples</groupId>
+        <artifactId>samples</artifactId>
+        <version>1.8.0-SNAPSHOT</version>
+    </parent>
     <artifactId>java_first_jaxws</artifactId>
     <name>JAXWS - Starting from Java Example</name>
-    <version>1.7.0-SNAPSHOT</version>
     <packaging>war</packaging>
     <inceptionYear>2004</inceptionYear>
 
@@ -38,22 +39,22 @@
         <dependency>
             <groupId>org.apache.axis2</groupId>
             <artifactId>axis2-kernel</artifactId>
-            <version>1.7.0-SNAPSHOT</version>
+            <version>1.8.0-SNAPSHOT</version>
         </dependency>
         <dependency>
             <groupId>org.apache.axis2</groupId>
             <artifactId>axis2-jaxws</artifactId>
-            <version>1.7.0-SNAPSHOT</version>
+            <version>1.8.0-SNAPSHOT</version>
         </dependency>
         <dependency>
             <groupId>org.apache.axis2</groupId>
             <artifactId>axis2-codegen</artifactId>
-            <version>1.7.0-SNAPSHOT</version>
+            <version>1.8.0-SNAPSHOT</version>
         </dependency>
         <dependency>
             <groupId>org.apache.axis2</groupId>
             <artifactId>axis2-adb</artifactId>
-            <version>1.7.0-SNAPSHOT</version>
+            <version>1.8.0-SNAPSHOT</version>
         </dependency>
         <dependency>
             <groupId>com.sun.xml.ws</groupId>
@@ -99,15 +100,6 @@
     <build>
         <plugins>
             <plugin>
-                <artifactId>maven-compiler-plugin</artifactId>
-                <version>2.3.2</version>
-                <configuration>
-                    <compilerVersion>1.5</compilerVersion>
-                    <source>1.5</source>
-                    <target>1.5</target>
-                </configuration>
-            </plugin>
-            <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-war-plugin</artifactId>
                 <version>2.1.1</version>
@@ -158,14 +150,4 @@
             </testResource>
         </testResources>
     </build>
-    <repositories>
-        <repository>
-            <id>apache.snapshots</id>
-            <name>Apache Snapshot Repository</name>
-            <url>http://repository.apache.org/snapshots</url>
-            <releases>
-                <enabled>false</enabled>
-            </releases>
-        </repository>
-    </repositories>
 </project>
diff --git a/modules/samples/java_first_jaxws/src/webapp/WEB-INF/axis2.xml b/modules/samples/java_first_jaxws/src/webapp/WEB-INF/axis2.xml
index 4ba3d52..fceda4d 100644
--- a/modules/samples/java_first_jaxws/src/webapp/WEB-INF/axis2.xml
+++ b/modules/samples/java_first_jaxws/src/webapp/WEB-INF/axis2.xml
@@ -187,7 +187,7 @@
     <!-- transportSender name="local"

                      class="org.apache.axis2.transport.local.LocalTransportSender"/ -->

     <transportSender name="http"

-                     class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">

+                     class="org.apache.axis2.transport.http.impl.httpclient4.HTTPClient4TransportSender">

         <parameter name="PROTOCOL">HTTP/1.1</parameter>

         <parameter name="Transfer-Encoding">chunked</parameter>

 

@@ -196,7 +196,7 @@
     </transportSender>

 

     <transportSender name="https"

-                     class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">

+                     class="org.apache.axis2.transport.http.impl.httpclient4.HTTPClient4TransportSender">

         <parameter name="PROTOCOL">HTTP/1.1</parameter>

         <parameter name="Transfer-Encoding">chunked</parameter>

     </transportSender>

diff --git a/modules/samples/java_first_jaxws/src/webapp/WEB-INF/classes/log4j.properties b/modules/samples/java_first_jaxws/src/webapp/WEB-INF/classes/log4j.properties
index 3048ddc..ad3d8a7 100644
--- a/modules/samples/java_first_jaxws/src/webapp/WEB-INF/classes/log4j.properties
+++ b/modules/samples/java_first_jaxws/src/webapp/WEB-INF/classes/log4j.properties
@@ -24,7 +24,6 @@
 

 # Set the enterprise logger priority to FATAL

 log4j.logger.org.apache.axis2.enterprise=FATAL

-log4j.logger.de.hunsicker.jalopy.io=FATAL

 log4j.logger.httpclient.wire.header=FATAL

 log4j.logger.org.apache.commons.httpclient=FATAL

 

@@ -38,4 +37,4 @@
 log4j.appender.LOGFILE.File=axis2.log

 log4j.appender.LOGFILE.Append=true

 log4j.appender.LOGFILE.layout=org.apache.log4j.PatternLayout

-log4j.appender.LOGFILE.layout.ConversionPattern=%d [%t] %-5p %c %x - %m%n
\ No newline at end of file
+log4j.appender.LOGFILE.layout.ConversionPattern=%d [%t] %-5p %c %x - %m%n

diff --git a/modules/samples/jaxws-addressbook/pom.xml b/modules/samples/jaxws-addressbook/pom.xml
index 8532b60..f19fc67 100644
--- a/modules/samples/jaxws-addressbook/pom.xml
+++ b/modules/samples/jaxws-addressbook/pom.xml
@@ -17,13 +17,15 @@
   ~ under the License.
   -->
 
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
     <modelVersion>4.0.0</modelVersion>
-    <groupId>org.apache.axis2.samples</groupId>
+    <parent>
+        <groupId>org.apache.axis2.examples</groupId>
+        <artifactId>samples</artifactId>
+        <version>1.8.0-SNAPSHOT</version>
+    </parent>
     <artifactId>jaxws-addressbook</artifactId>
     <packaging>jar</packaging>
-    <version>1.7.0-SNAPSHOT</version>
     <name>JAXWS Addressbook Service</name>
     <build>
         <sourceDirectory>src</sourceDirectory>
@@ -54,66 +56,22 @@
                 </executions>
             </plugin>
             <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-antrun-plugin</artifactId>
-                <version>1.3</version>
-                <executions>
-                    <execution>
-                        <id>gen-sources</id>
-                        <phase>generate-sources</phase>
-                        <configuration>
-                            <tasks>
-                                <property name="schema.output.base.dir" value="target/schema"/>
-                                <property name="schema.generated.src.dir" value="${schema.output.base.dir}/src"/>
-                                <property name="schema.generated.classes.dir"
-                                          value="${schema.output.base.dir}/classes"/>
-                                <!-- make the dirs -->
-                                <mkdir dir="${schema.output.base.dir}"/>
-                                <mkdir dir="${schema.generated.src.dir}"/>
-                                <mkdir dir="${schema.generated.classes.dir}"/>
-                                <!-- Run JAXB schema compiler with designated schemas -->
-                                <echo>Generating java from echo.xsd</echo>
-                                <java classname="com.sun.tools.xjc.Driver" fork="true">
-                                    <classpath refid="maven.runtime.classpath"/>
-                                    <classpath location="${compiled.classes.dir}"/>
-                                    <arg line="-d ${schema.generated.src.dir} src/AddressBookEntry.xsd"/>
-                                </java>
-                            </tasks>
-                        </configuration>
-                        <goals>
-                            <goal>run</goal>
-                        </goals>
-                    </execution>
-                </executions>
-            </plugin>
-            <plugin>
                 <groupId>org.codehaus.mojo</groupId>
-                <artifactId>build-helper-maven-plugin</artifactId>
-                <version>1.5</version>
+                <artifactId>jaxb2-maven-plugin</artifactId>
                 <executions>
                     <execution>
-                        <id>add-sources</id>
-                        <phase>process-resources</phase>
                         <goals>
-                            <goal>add-source</goal>
+                            <goal>xjc</goal>
                         </goals>
                         <configuration>
+                            <sourceType>XmlSchema</sourceType>
                             <sources>
-                                <source>${basedir}/target/schema/src</source>
+                                <source>src/AddressBookEntry.xsd</source>
                             </sources>
                         </configuration>
                     </execution>
                 </executions>
             </plugin>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-compiler-plugin</artifactId>
-                <version>2.3.2</version>
-                <configuration>
-                    <source>1.5</source>
-                    <target>1.5</target>
-                </configuration>
-            </plugin>
         </plugins>
     </build>
     <dependencies>
@@ -131,17 +89,7 @@
         <dependency>
             <groupId>org.apache.axis2</groupId>
             <artifactId>axis2-jaxws</artifactId>
-            <version>1.7.0-SNAPSHOT</version>
+            <version>1.8.0-SNAPSHOT</version>
         </dependency>
     </dependencies>
-    <repositories>
-        <repository>
-            <id>apache.snapshots</id>
-            <name>Apache Snapshot Repository</name>
-            <url>http://repository.apache.org/snapshots</url>
-            <releases>
-                <enabled>false</enabled>
-            </releases>
-        </repository>
-    </repositories>
 </project>
diff --git a/modules/samples/jaxws-calculator/pom.xml b/modules/samples/jaxws-calculator/pom.xml
index a4e4d27..1fd9ded 100644
--- a/modules/samples/jaxws-calculator/pom.xml
+++ b/modules/samples/jaxws-calculator/pom.xml
@@ -17,13 +17,15 @@
   ~ under the License.
   -->
 
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
     <modelVersion>4.0.0</modelVersion>
-    <groupId>org.apache.axis2.samples</groupId>
+    <parent>
+        <groupId>org.apache.axis2.examples</groupId>
+        <artifactId>samples</artifactId>
+        <version>1.8.0-SNAPSHOT</version>
+    </parent>
     <artifactId>jaxws-calculator</artifactId>
     <packaging>jar</packaging>
-    <version>1.7.0-SNAPSHOT</version>
     <name>JAXWS Calculator Service</name>
     <build>
         <sourceDirectory>src</sourceDirectory>
@@ -52,15 +54,6 @@
                     </execution>
                 </executions>
             </plugin>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-compiler-plugin</artifactId>
-                <version>2.3.2</version>
-                <configuration>
-                    <source>1.5</source>
-                    <target>1.5</target>
-                </configuration>
-            </plugin>
         </plugins>
     </build>
     <dependencies>
@@ -78,17 +71,7 @@
         <dependency>
             <groupId>org.apache.axis2</groupId>
             <artifactId>axis2-jaxws</artifactId>
-            <version>1.7.0-SNAPSHOT</version>
+            <version>1.8.0-SNAPSHOT</version>
         </dependency>
     </dependencies>
-    <repositories>
-        <repository>
-            <id>apache.snapshots</id>
-            <name>Apache Snapshot Repository</name>
-            <url>http://repository.apache.org/snapshots</url>
-            <releases>
-                <enabled>false</enabled>
-            </releases>
-        </repository>
-    </repositories>
 </project>
diff --git a/modules/samples/jaxws-interop/pom.xml b/modules/samples/jaxws-interop/pom.xml
index 9638c02..d4116a5 100644
--- a/modules/samples/jaxws-interop/pom.xml
+++ b/modules/samples/jaxws-interop/pom.xml
@@ -17,13 +17,15 @@
   ~ under the License.
   -->
 
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
     <modelVersion>4.0.0</modelVersion>
-    <groupId>org.apache.axis2.samples</groupId>
+    <parent>
+        <groupId>org.apache.axis2.examples</groupId>
+        <artifactId>samples</artifactId>
+        <version>1.8.0-SNAPSHOT</version>
+    </parent>
     <artifactId>jaxws-interop</artifactId>
     <packaging>jar</packaging>
-    <version>1.7.0-SNAPSHOT</version>
     <name>JAXWS Interop Sample</name>
     <build>
         <sourceDirectory>src</sourceDirectory>
@@ -32,17 +34,6 @@
             <directory>resources</directory>
           </resource>
         </resources>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-compiler-plugin</artifactId>
-                <version>2.3.2</version>
-                <configuration>
-                    <source>1.5</source>
-                    <target>1.5</target>
-                </configuration>
-            </plugin>
-        </plugins>
     </build>
     <dependencies>
         <dependency>
@@ -59,17 +50,7 @@
         <dependency>
             <groupId>org.apache.axis2</groupId>
             <artifactId>axis2-jaxws</artifactId>
-            <version>1.7.0-SNAPSHOT</version>
+            <version>1.8.0-SNAPSHOT</version>
         </dependency>
     </dependencies>
-    <repositories>
-        <repository>
-            <id>apache.snapshots</id>
-            <name>Apache Snapshot Repository</name>
-            <url>http://repository.apache.org/snapshots</url>
-            <releases>
-                <enabled>false</enabled>
-            </releases>
-        </repository>
-    </repositories>
 </project>
diff --git a/modules/samples/jaxws-samples/pom.xml b/modules/samples/jaxws-samples/pom.xml
index 37918d6..50d6595 100644
--- a/modules/samples/jaxws-samples/pom.xml
+++ b/modules/samples/jaxws-samples/pom.xml
@@ -17,14 +17,15 @@
   ~ under the License.
   -->
 
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
     <modelVersion>4.0.0</modelVersion>
-    <groupId>org.apache.axis2.examples</groupId>
+    <parent>
+        <groupId>org.apache.axis2.examples</groupId>
+        <artifactId>samples</artifactId>
+        <version>1.8.0-SNAPSHOT</version>
+    </parent>
     <artifactId>jaxws-samples</artifactId>
     <name>JAXWS Samples - Echo, Ping, MTOM</name>
-    <version>1.7.0-SNAPSHOT</version>
     <packaging>war</packaging>
     <dependencies>
         <dependency>
@@ -36,27 +37,27 @@
         <dependency>
             <groupId>org.apache.axis2</groupId>
             <artifactId>axis2-kernel</artifactId>
-            <version>1.7.0-SNAPSHOT</version>
+            <version>1.8.0-SNAPSHOT</version>
         </dependency>
         <dependency>
             <groupId>org.apache.axis2</groupId>
             <artifactId>axis2-jaxws</artifactId>
-            <version>1.7.0-SNAPSHOT</version>
+            <version>1.8.0-SNAPSHOT</version>
         </dependency>
         <dependency>
             <groupId>org.apache.axis2</groupId>
             <artifactId>axis2-codegen</artifactId>
-            <version>1.7.0-SNAPSHOT</version>
+            <version>1.8.0-SNAPSHOT</version>
         </dependency>
         <dependency>
             <groupId>org.apache.axis2</groupId>
             <artifactId>axis2-adb</artifactId>
-            <version>1.7.0-SNAPSHOT</version>
+            <version>1.8.0-SNAPSHOT</version>
         </dependency>
         <dependency>
             <groupId>org.apache.axis2</groupId>
             <artifactId>addressing</artifactId>
-            <version>1.7.0-SNAPSHOT</version>
+            <version>1.8.0-SNAPSHOT</version>
             <type>mar</type>
         </dependency>
         <dependency>
@@ -103,15 +104,6 @@
     <build>
         <plugins>
             <plugin>
-                <artifactId>maven-compiler-plugin</artifactId>
-                <version>2.3.2</version>
-                <configuration>
-                    <compilerVersion>1.5</compilerVersion>
-                    <source>1.5</source>
-                    <target>1.5</target>
-                </configuration>
-            </plugin>
-            <plugin>
                 <artifactId>maven-dependency-plugin</artifactId>
                 <version>2.2</version>
                 <executions>
@@ -171,14 +163,4 @@
             </testResource>
         </testResources>
     </build>
-    <repositories>
-        <repository>
-            <id>apache.snapshots</id>
-            <name>Apache Snapshot Repository</name>
-            <url>http://repository.apache.org/snapshots</url>
-            <releases>
-                <enabled>false</enabled>
-            </releases>
-        </repository>
-    </repositories>
 </project>
diff --git a/modules/samples/jaxws-samples/src/webapp/WEB-INF/axis2.xml b/modules/samples/jaxws-samples/src/webapp/WEB-INF/axis2.xml
index f1c8574..2a06d01 100644
--- a/modules/samples/jaxws-samples/src/webapp/WEB-INF/axis2.xml
+++ b/modules/samples/jaxws-samples/src/webapp/WEB-INF/axis2.xml
@@ -210,7 +210,7 @@
     <transportSender name="local"

                      class="org.apache.axis2.transport.local.LocalTransportSender"/>

     <transportSender name="http"

-                     class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">

+                     class="org.apache.axis2.transport.http.impl.httpclient4.HTTPClient4TransportSender">

         <parameter name="PROTOCOL">HTTP/1.1</parameter>

         <parameter name="Transfer-Encoding">chunked</parameter>

 

@@ -219,7 +219,7 @@
     </transportSender>

 

     <transportSender name="https"

-                     class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">

+                     class="org.apache.axis2.transport.http.impl.httpclient4.HTTPClient4TransportSender">

         <parameter name="PROTOCOL">HTTP/1.1</parameter>

         <parameter name="Transfer-Encoding">chunked</parameter>

     </transportSender>

diff --git a/modules/samples/jaxws-samples/src/webapp/WEB-INF/classes/log4j.properties b/modules/samples/jaxws-samples/src/webapp/WEB-INF/classes/log4j.properties
index 3048ddc..ad3d8a7 100644
--- a/modules/samples/jaxws-samples/src/webapp/WEB-INF/classes/log4j.properties
+++ b/modules/samples/jaxws-samples/src/webapp/WEB-INF/classes/log4j.properties
@@ -24,7 +24,6 @@
 

 # Set the enterprise logger priority to FATAL

 log4j.logger.org.apache.axis2.enterprise=FATAL

-log4j.logger.de.hunsicker.jalopy.io=FATAL

 log4j.logger.httpclient.wire.header=FATAL

 log4j.logger.org.apache.commons.httpclient=FATAL

 

@@ -38,4 +37,4 @@
 log4j.appender.LOGFILE.File=axis2.log

 log4j.appender.LOGFILE.Append=true

 log4j.appender.LOGFILE.layout=org.apache.log4j.PatternLayout

-log4j.appender.LOGFILE.layout.ConversionPattern=%d [%t] %-5p %c %x - %m%n
\ No newline at end of file
+log4j.appender.LOGFILE.layout.ConversionPattern=%d [%t] %-5p %c %x - %m%n

diff --git a/modules/samples/jaxws-version/pom.xml b/modules/samples/jaxws-version/pom.xml
index 821ea0c..14412f8 100644
--- a/modules/samples/jaxws-version/pom.xml
+++ b/modules/samples/jaxws-version/pom.xml
@@ -17,12 +17,14 @@
   ~ under the License.
   -->
 
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
     <modelVersion>4.0.0</modelVersion>
-    <groupId>org.apache.axis2.examples</groupId>      
+    <parent>
+        <groupId>org.apache.axis2.examples</groupId>
+        <artifactId>samples</artifactId>
+        <version>1.8.0-SNAPSHOT</version>
+    </parent>
     <artifactId>jaxws-version</artifactId>
-    <version>1.7.0-SNAPSHOT</version>
     <packaging>jar</packaging>
     <name>Apache Axis2 -JAXWS Version Service</name>
     <build>
@@ -32,16 +34,6 @@
             <directory>resources</directory>
           </resource>
         </resources>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-compiler-plugin</artifactId>
-                <configuration>
-                    <source>1.5</source>
-                    <target>1.5</target>
-                </configuration>
-            </plugin>
-        </plugins>
     </build>
     <dependencies>
         <dependency>
@@ -50,14 +42,4 @@
             <version>${project.version}</version>
         </dependency>
     </dependencies>
-    <repositories>
-        <repository>
-            <id>apache.snapshots</id>
-            <name>Apache Snapshot Repository</name>
-            <url>http://repository.apache.org/snapshots</url>
-            <releases>
-                <enabled>false</enabled>
-            </releases>
-        </repository>
-    </repositories>
 </project>
diff --git a/modules/samples/json/resources/axis2.xml b/modules/samples/json/resources/axis2.xml
index 0598ee1..67003c2 100644
--- a/modules/samples/json/resources/axis2.xml
+++ b/modules/samples/json/resources/axis2.xml
@@ -236,7 +236,7 @@
     <transportSender name="local"
                      class="org.apache.axis2.transport.local.LocalTransportSender"/>
     <transportSender name="http"
-                     class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
+                     class="org.apache.axis2.transport.http.impl.httpclient4.HTTPClient4TransportSender">
         <parameter name="PROTOCOL">HTTP/1.1</parameter>
         <parameter name="Transfer-Encoding">chunked</parameter>
 
@@ -245,7 +245,7 @@
     </transportSender>
 
     <transportSender name="https"
-                     class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
+                     class="org.apache.axis2.transport.http.impl.httpclient4.HTTPClient4TransportSender">
         <parameter name="PROTOCOL">HTTP/1.1</parameter>
         <parameter name="Transfer-Encoding">chunked</parameter>
     </transportSender>
diff --git a/modules/samples/json/src/META-INF/services.xml b/modules/samples/json/src/META-INF/services.xml
index b9ccb27..bd0ac93 100644
--- a/modules/samples/json/src/META-INF/services.xml
+++ b/modules/samples/json/src/META-INF/services.xml
@@ -1,7 +1,7 @@
 <service name="JsonService">
-    <Description>
+    <description>
         This is a sample service to test json implementation
-    </Description>
+    </description>
     <messageReceivers>
         <messageReceiver mep="http://www.w3.org/ns/wsdl/in-out"
         class="org.apache.axis2.json.gson.rpc.JsonRpcMessageReceiver"  />
@@ -9,4 +9,4 @@
                          class="org.apache.axis2.json.gson.rpc.JsonInOnlyRPCMessageReceiver"/>
     </messageReceivers>
     <parameter name="ServiceClass" locked="false">sample.json.service.JsonService</parameter>
-</service>
\ No newline at end of file
+</service>
diff --git a/modules/samples/pom.xml b/modules/samples/pom.xml
new file mode 100644
index 0000000..9ae5602
--- /dev/null
+++ b/modules/samples/pom.xml
@@ -0,0 +1,63 @@
+<!--
+  ~ Licensed to the Apache Software Foundation (ASF) under one
+  ~ or more contributor license agreements. See the NOTICE file
+  ~ distributed with this work for additional information
+  ~ regarding copyright ownership. The ASF licenses this file
+  ~ to you under the Apache License, Version 2.0 (the
+  ~ "License"); you may not use this file except in compliance
+  ~ with the License. You may obtain a copy of the License at
+  ~
+  ~ http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing,
+  ~ software distributed under the License is distributed on an
+  ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  ~ KIND, either express or implied. See the License for the
+  ~ specific language governing permissions and limitations
+  ~ under the License.
+  -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.apache.axis2</groupId>
+        <artifactId>axis2</artifactId>
+        <version>1.8.0-SNAPSHOT</version>
+        <relativePath>../../pom.xml</relativePath>
+    </parent>
+    <groupId>org.apache.axis2.examples</groupId>
+    <artifactId>samples</artifactId>
+    <name>Samples parent POM</name>
+    <packaging>pom</packaging>
+    <modules>
+        <module>java_first_jaxws</module>
+        <module>jaxws-addressbook</module>
+        <module>jaxws-calculator</module>
+        <module>jaxws-interop</module>
+        <module>jaxws-samples</module>
+        <module>jaxws-version</module>
+        <module>transport/https-sample</module>
+        <module>transport/jms-sample</module>
+    </modules>
+    <build>
+        <plugins>
+            <plugin>
+                <artifactId>maven-deploy-plugin</artifactId>
+                <configuration>
+                    <skip>true</skip>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+    <repositories>
+        <repository>
+            <!-- Necessary because the samples are copied into the binary distribution -->
+            <id>apache.snapshots</id>
+            <name>Apache Snapshot Repository</name>
+            <url>http://repository.apache.org/snapshots</url>
+            <releases>
+                <enabled>false</enabled>
+            </releases>
+        </repository>
+    </repositories>
+</project>
diff --git a/modules/samples/transport/https-sample/httpsClient/pom.xml b/modules/samples/transport/https-sample/httpsClient/pom.xml
index fad40ed..dd58eaf 100644
--- a/modules/samples/transport/https-sample/httpsClient/pom.xml
+++ b/modules/samples/transport/https-sample/httpsClient/pom.xml
@@ -10,15 +10,14 @@
     License for the ~ specific language governing permissions and limitations 
     ~ under the License. -->
 
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
     <modelVersion>4.0.0</modelVersion>
     <parent>
         <artifactId>https-sample</artifactId>
         <groupId>org.apache.axis2.examples</groupId>
-        <version>1.7.0-SNAPSHOT</version>
+        <version>1.8.0-SNAPSHOT</version>
     </parent>
     <groupId>org.apache.axis2.examples</groupId>
     <artifactId>httpsClient</artifactId>
-    <version>1.7.0-SNAPSHOT</version>
+    <version>1.8.0-SNAPSHOT</version>
 </project>
\ No newline at end of file
diff --git a/modules/samples/transport/https-sample/httpsService/pom.xml b/modules/samples/transport/https-sample/httpsService/pom.xml
index 24a3f29..0a0f41c 100644
--- a/modules/samples/transport/https-sample/httpsService/pom.xml
+++ b/modules/samples/transport/https-sample/httpsService/pom.xml
@@ -10,23 +10,23 @@
     License for the ~ specific language governing permissions and limitations 
     ~ under the License. -->
 
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
     <modelVersion>4.0.0</modelVersion>
     <parent>
         <artifactId>https-sample</artifactId>
         <groupId>org.apache.axis2.examples</groupId>
-        <version>1.7.0-SNAPSHOT</version>
+        <version>1.8.0-SNAPSHOT</version>
     </parent>
     <groupId>org.apache.axis2.examples</groupId>
     <artifactId>httpsService</artifactId>
-    <version>1.7.0-SNAPSHOT</version>
+    <version>1.8.0-SNAPSHOT</version>
     <packaging>war</packaging>
     <build>
         <plugins>
             <plugin>
                 <groupId>org.codehaus.mojo</groupId>
                 <artifactId>keytool-maven-plugin</artifactId>
+                <version>1.5</version>
                 <executions>
                     <execution>
                         <phase>generate-resources</phase>
@@ -55,13 +55,13 @@
             <plugin>
                 <groupId>org.mortbay.jetty</groupId>
                 <artifactId>maven-jetty-plugin</artifactId>
+                <version>6.1.26</version>
                 <configuration>
                     <webAppConfig>
                         <contextPath>/</contextPath>
                     </webAppConfig>
                     <connectors>
-                        <connector
-                            implementation="org.mortbay.jetty.security.SslSocketConnector">
+                        <connector implementation="org.mortbay.jetty.security.SslSocketConnector">
                             <port>8443</port>
                             <maxIdleTime>60000</maxIdleTime>
                             <keystore>${project.build.directory}/jetty-ssl.keystore</keystore>
diff --git a/modules/samples/transport/https-sample/httpsService/src/main/webapp/WEB-INF/axis2.xml b/modules/samples/transport/https-sample/httpsService/src/main/webapp/WEB-INF/axis2.xml
index 7af2c9b..923c0d5 100644
--- a/modules/samples/transport/https-sample/httpsService/src/main/webapp/WEB-INF/axis2.xml
+++ b/modules/samples/transport/https-sample/httpsService/src/main/webapp/WEB-INF/axis2.xml
@@ -212,7 +212,7 @@
     <!-- ================================================= -->
 
     <transportSender name="http"
-                     class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
+                     class="org.apache.axis2.transport.http.impl.httpclient4.HTTPClient4TransportSender">
         <parameter name="PROTOCOL">HTTP/1.1</parameter>
         <parameter name="Transfer-Encoding">chunked</parameter>
 
@@ -221,7 +221,7 @@
     </transportSender>
 
     <transportSender name="https"
-                     class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
+                     class="org.apache.axis2.transport.http.impl.httpclient4.HTTPClient4TransportSender">
         <parameter name="PROTOCOL">HTTP/1.1</parameter>
         <parameter name="Transfer-Encoding">chunked</parameter>
     </transportSender>
diff --git a/modules/samples/transport/https-sample/pom.xml b/modules/samples/transport/https-sample/pom.xml
index 97cdd6a..d41c3e3 100644
--- a/modules/samples/transport/https-sample/pom.xml
+++ b/modules/samples/transport/https-sample/pom.xml
@@ -10,26 +10,17 @@
     License for the ~ specific language governing permissions and limitations 
     ~ under the License. -->
 
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
     <modelVersion>4.0.0</modelVersion>
-    <groupId>org.apache.axis2.examples</groupId>
+    <parent>
+        <groupId>org.apache.axis2.examples</groupId>
+        <artifactId>samples</artifactId>
+        <version>1.8.0-SNAPSHOT</version>
+        <relativePath>../../pom.xml</relativePath>
+    </parent>
     <artifactId>https-sample</artifactId>
-    <version>1.7.0-SNAPSHOT</version>
     <packaging>pom</packaging>
     <name>Apache Axis2 Transport-HTTPS sample</name>
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-compiler-plugin</artifactId>
-                <configuration>
-                    <source>1.5</source>
-                    <target>1.5</target>
-                </configuration>
-            </plugin>
-        </plugins>
-    </build>
     <dependencies>
         <dependency>
             <groupId>org.apache.axis2</groupId>
@@ -47,16 +38,6 @@
             <version>${project.version}</version>
         </dependency>
     </dependencies>
-    <repositories>
-        <repository>
-            <id>apache.snapshots</id>
-            <name>Apache Snapshot Repository</name>
-            <url>http://repository.apache.org/snapshots</url>
-            <releases>
-                <enabled>false</enabled>
-            </releases>
-        </repository>
-    </repositories>
     <modules>
         <module>httpsService</module>
         <module>httpsClient</module>
diff --git a/modules/samples/transport/jms-sample/jmsService/pom.xml b/modules/samples/transport/jms-sample/jmsService/pom.xml
index 6da8880..ff1bb26 100644
--- a/modules/samples/transport/jms-sample/jmsService/pom.xml
+++ b/modules/samples/transport/jms-sample/jmsService/pom.xml
@@ -1,14 +1,13 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
     <modelVersion>4.0.0</modelVersion>
     <parent>
         <artifactId>jms-sample</artifactId>
         <groupId>org.apache.axis2.examples</groupId>
-        <version>1.7.0-SNAPSHOT</version>
+        <version>1.8.0-SNAPSHOT</version>
     </parent>
     <groupId>org.apache.axis2.examples</groupId>
     <artifactId>jmsService</artifactId>
-    <version>1.7.0-SNAPSHOT</version>
+    <version>1.8.0-SNAPSHOT</version>
     <build>
         <plugins>
             <plugin>
diff --git a/modules/samples/transport/jms-sample/jmsService/src/main/resources/axis2.xml b/modules/samples/transport/jms-sample/jmsService/src/main/resources/axis2.xml
index c44813b..937fad1 100644
--- a/modules/samples/transport/jms-sample/jmsService/src/main/resources/axis2.xml
+++ b/modules/samples/transport/jms-sample/jmsService/src/main/resources/axis2.xml
@@ -219,7 +219,7 @@
     <!-- ================================================= -->
 
      <transportSender name="http"
-                     class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
+                     class="org.apache.axis2.transport.http.impl.httpclient4.HTTPClient4TransportSender">
         <parameter name="PROTOCOL">HTTP/1.1</parameter>
         <parameter name="Transfer-Encoding">chunked</parameter>
       </transportSender>  
diff --git a/modules/samples/transport/jms-sample/pom.xml b/modules/samples/transport/jms-sample/pom.xml
index 0b0bafa..e10b5a8 100644
--- a/modules/samples/transport/jms-sample/pom.xml
+++ b/modules/samples/transport/jms-sample/pom.xml
@@ -10,26 +10,17 @@
     License for the ~ specific language governing permissions and limitations 
     ~ under the License. -->
 
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
     <modelVersion>4.0.0</modelVersion>
-    <groupId>org.apache.axis2.examples</groupId>
+    <parent>
+        <groupId>org.apache.axis2.examples</groupId>
+        <artifactId>samples</artifactId>
+        <version>1.8.0-SNAPSHOT</version>
+        <relativePath>../../pom.xml</relativePath>
+    </parent>
     <artifactId>jms-sample</artifactId>
-    <version>1.7.0-SNAPSHOT</version>
     <packaging>pom</packaging>
     <name>Apache Axis2 Transport-JMS sample</name>
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-compiler-plugin</artifactId>
-                <configuration>
-                    <source>1.5</source>
-                    <target>1.5</target>
-                </configuration>
-            </plugin>
-        </plugins>
-    </build>
     <dependencies>
         <dependency>
             <groupId>org.apache.axis2</groupId>
@@ -47,16 +38,6 @@
             <version>${project.version}</version>
         </dependency>
     </dependencies>
-    <repositories>
-        <repository>
-            <id>apache.snapshots</id>
-            <name>Apache Snapshot Repository</name>
-            <url>http://repository.apache.org/snapshots</url>
-            <releases>
-                <enabled>false</enabled>
-            </releases>
-        </repository>
-    </repositories>
     <modules>
         <module>jmsService</module>
     </modules>
diff --git a/modules/samples/userguide/conf/axis2.xml b/modules/samples/userguide/conf/axis2.xml
index 035088f..15d7beb 100644
--- a/modules/samples/userguide/conf/axis2.xml
+++ b/modules/samples/userguide/conf/axis2.xml
@@ -162,7 +162,7 @@
     <transportSender name="local"
                      class="org.apache.axis2.transport.local.LocalTransportSender"/>
     <transportSender name="http"
-                     class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
+                     class="org.apache.axis2.transport.http.impl.httpclient4.HTTPClient4TransportSender">
         <parameter name="PROTOCOL">HTTP/1.1</parameter>
         <parameter name="Transfer-Encoding">chunked</parameter>
         
@@ -171,7 +171,7 @@
     </transportSender>
     
     <transportSender name="https"
-                     class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
+                     class="org.apache.axis2.transport.http.impl.httpclient4.HTTPClient4TransportSender">
         <parameter name="PROTOCOL">HTTP/1.1</parameter>
         <parameter name="Transfer-Encoding">chunked</parameter>
     </transportSender>
diff --git a/modules/samples/version/pom.xml b/modules/samples/version/pom.xml
index daa3e6b..b6c5182 100644
--- a/modules/samples/version/pom.xml
+++ b/modules/samples/version/pom.xml
@@ -21,9 +21,9 @@
     <modelVersion>4.0.0</modelVersion>
     <parent>
         <groupId>org.apache.axis2</groupId>
-        <artifactId>axis2-parent</artifactId>
-        <version>1.7.0-SNAPSHOT</version>
-        <relativePath>../../parent/pom.xml</relativePath>
+        <artifactId>axis2</artifactId>
+        <version>1.8.0-SNAPSHOT</version>
+        <relativePath>../../../pom.xml</relativePath>
     </parent>
     <artifactId>version</artifactId>
     <packaging>aar</packaging>
@@ -53,14 +53,6 @@
                 </executions>
             </plugin>
             <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-compiler-plugin</artifactId>
-                <configuration>
-                    <source>1.4</source>
-                    <target>1.4</target>
-                </configuration>
-            </plugin>
-            <plugin>
                 <groupId>org.apache.axis2</groupId>
                 <artifactId>axis2-aar-maven-plugin</artifactId>
                 <extensions>true</extensions>
diff --git a/modules/samples/yahoojsonsearch/resources/axis2.xml b/modules/samples/yahoojsonsearch/resources/axis2.xml
index eb64b27..591efb3 100644
--- a/modules/samples/yahoojsonsearch/resources/axis2.xml
+++ b/modules/samples/yahoojsonsearch/resources/axis2.xml
@@ -188,12 +188,12 @@
     <transportSender name="local"
                      class="org.apache.axis2.transport.local.LocalTransportSender"/>
     <transportSender name="http"
-                     class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
+                     class="org.apache.axis2.transport.http.impl.httpclient4.HTTPClient4TransportSender">
         <parameter name="PROTOCOL">HTTP/1.1</parameter>
         <parameter name="Transfer-Encoding">chunked</parameter>
     </transportSender>
     <transportSender name="https"
-                     class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
+                     class="org.apache.axis2.transport.http.impl.httpclient4.HTTPClient4TransportSender">
         <parameter name="PROTOCOL">HTTP/1.1</parameter>
         <parameter name="Transfer-Encoding">chunked</parameter>
     </transportSender>
diff --git a/modules/scripting/pom.xml b/modules/scripting/pom.xml
index ded7475..3a79a04 100644
--- a/modules/scripting/pom.xml
+++ b/modules/scripting/pom.xml
@@ -23,9 +23,9 @@
     <modelVersion>4.0.0</modelVersion>
     <parent>
         <groupId>org.apache.axis2</groupId>
-        <artifactId>axis2-parent</artifactId>
-        <version>1.7.0-SNAPSHOT</version>
-        <relativePath>../parent/pom.xml</relativePath>
+        <artifactId>axis2</artifactId>
+        <version>1.8.0-SNAPSHOT</version>
+        <relativePath>../../pom.xml</relativePath>
     </parent>
     <artifactId>scripting</artifactId>
     <packaging>mar</packaging>
diff --git a/modules/scripting/src/org/apache/axis2/scripting/ScriptDeploymentEngine.java b/modules/scripting/src/org/apache/axis2/scripting/ScriptDeploymentEngine.java
index dfdeb76..53cbc71 100644
--- a/modules/scripting/src/org/apache/axis2/scripting/ScriptDeploymentEngine.java
+++ b/modules/scripting/src/org/apache/axis2/scripting/ScriptDeploymentEngine.java
@@ -195,7 +195,7 @@
 
             InputStream definition;
             try {
-                definition = wsdlFile.toURL().openStream();
+                definition = wsdlFile.toURI().toURL().openStream();
             } catch (Exception e) {
                 throw new AxisFault("exception opening wsdl", e);
             }
@@ -239,7 +239,7 @@
     protected String readScriptSource(File scriptFile) throws AxisFault {
         InputStream is;
         try {
-            is = scriptFile.toURL().openStream();
+            is = scriptFile.toURI().toURL().openStream();
         } catch (IOException e) {
             throw new AxisFault("IOException opening script: " + scriptFile, e);
         }
diff --git a/modules/scripting/src/org/apache/axis2/scripting/convertors/DefaultOMElementConvertor.java b/modules/scripting/src/org/apache/axis2/scripting/convertors/DefaultOMElementConvertor.java
index 4b54a42..a884bf2 100644
--- a/modules/scripting/src/org/apache/axis2/scripting/convertors/DefaultOMElementConvertor.java
+++ b/modules/scripting/src/org/apache/axis2/scripting/convertors/DefaultOMElementConvertor.java
@@ -20,11 +20,10 @@
 package org.apache.axis2.scripting.convertors;
 
 import org.apache.axiom.om.OMElement;
-import org.apache.axiom.om.impl.builder.StAXOMBuilder;
+import org.apache.axiom.om.OMXMLBuilderFactory;
 import org.apache.bsf.BSFEngine;
 
-import javax.xml.stream.XMLStreamException;
-import java.io.ByteArrayInputStream;
+import java.io.StringReader;
 
 /**
  * The DefaultOMElementConvertor converts between Synapse OMElements and Strings
@@ -32,16 +31,8 @@
 public class DefaultOMElementConvertor implements OMElementConvertor {
 
     public OMElement fromScript(Object o) {
-        try {
-
-            byte[] xmlBytes = o.toString().getBytes();
-            StAXOMBuilder builder = new StAXOMBuilder(new ByteArrayInputStream(xmlBytes));
-            OMElement omElement = builder.getDocumentElement();
-            return omElement;
-
-        } catch (XMLStreamException e) {
-            throw new RuntimeException(e);
-        }
+        return OMXMLBuilderFactory.createOMBuilder(
+                new StringReader(o.toString())).getDocumentElement();
     }
 
     public Object toScript(OMElement omElement) {
diff --git a/modules/scripting/src/org/apache/axis2/scripting/convertors/JSOMElementConvertor.java b/modules/scripting/src/org/apache/axis2/scripting/convertors/JSOMElementConvertor.java
index 0467ab0..15ceaba 100644
--- a/modules/scripting/src/org/apache/axis2/scripting/convertors/JSOMElementConvertor.java
+++ b/modules/scripting/src/org/apache/axis2/scripting/convertors/JSOMElementConvertor.java
@@ -20,7 +20,8 @@
 package org.apache.axis2.scripting.convertors;
 
 import org.apache.axiom.om.OMElement;
-import org.apache.axiom.om.impl.builder.StAXOMBuilder;
+import org.apache.axiom.om.OMXMLBuilderFactory;
+import org.apache.axiom.om.OMXMLParserWrapper;
 import org.apache.xmlbeans.XmlObject;
 import org.mozilla.javascript.Context;
 import org.mozilla.javascript.Scriptable;
@@ -28,8 +29,6 @@
 import org.mozilla.javascript.Wrapper;
 import org.mozilla.javascript.xml.XMLObject;
 
-import javax.xml.stream.XMLStreamException;
-
 /**
  * JSObjectConvertor converts between OMElements and JavaScript E4X XML objects
  */
@@ -76,16 +75,10 @@
         Scriptable jsXML = (Scriptable) ScriptableObject.callMethod((Scriptable) o, "copy", new Object[0]);
         Wrapper wrapper = (Wrapper) ScriptableObject.callMethod((XMLObject)jsXML, "getXmlObject", new Object[0]);
         XmlObject xmlObject = (XmlObject)wrapper.unwrap();
-        try {
+        OMXMLParserWrapper builder = OMXMLBuilderFactory.createOMBuilder(xmlObject.newInputStream());
+        OMElement omElement = builder.getDocumentElement();
 
-            StAXOMBuilder builder = new StAXOMBuilder(xmlObject.newInputStream());
-            OMElement omElement = builder.getDocumentElement();
-
-            return omElement;
-
-        } catch (XMLStreamException e) {
-            throw new RuntimeException(e);
-        }
+        return omElement;
     }
 
 }
diff --git a/modules/scripting/src/org/apache/axis2/scripting/convertors/RBOMElementConvertor.java b/modules/scripting/src/org/apache/axis2/scripting/convertors/RBOMElementConvertor.java
index 23335dd..d2d351d 100644
--- a/modules/scripting/src/org/apache/axis2/scripting/convertors/RBOMElementConvertor.java
+++ b/modules/scripting/src/org/apache/axis2/scripting/convertors/RBOMElementConvertor.java
@@ -20,12 +20,11 @@
 package org.apache.axis2.scripting.convertors;
 
 import org.apache.axiom.om.OMElement;
-import org.apache.axiom.om.impl.builder.StAXOMBuilder;
+import org.apache.axiom.om.OMXMLBuilderFactory;
 import org.apache.bsf.BSFEngine;
 import org.apache.bsf.BSFException;
 
-import javax.xml.stream.XMLStreamException;
-import java.io.ByteArrayInputStream;
+import java.io.StringReader;
 
 /**
  * OMElementConvertor for Ruby scripts
@@ -57,17 +56,8 @@
     }
 
     public OMElement fromScript(Object o) {
-        try {
-
-            byte[] xmlBytes = o.toString().getBytes();
-            StAXOMBuilder builder = new StAXOMBuilder(new ByteArrayInputStream(xmlBytes));
-            OMElement omElement = builder.getDocumentElement();
-
-            return omElement;
-
-        } catch (XMLStreamException e) {
-            throw new RuntimeException(e);
-        }
+        return OMXMLBuilderFactory.createOMBuilder(
+                new StringReader(o.toString())).getDocumentElement();
     }
 
     public void setEngine(BSFEngine e) {
diff --git a/modules/scripting/test/org/apache/axis2/scripting/ScriptModuleTest.java b/modules/scripting/test/org/apache/axis2/scripting/ScriptModuleTest.java
index c1da88e..2fba1e6 100644
--- a/modules/scripting/test/org/apache/axis2/scripting/ScriptModuleTest.java
+++ b/modules/scripting/test/org/apache/axis2/scripting/ScriptModuleTest.java
@@ -62,9 +62,9 @@
         AxisConfiguration axisConfig = new AxisConfiguration();
         URL url = getClass().getClassLoader().getResource("org/apache/axis2/scripting/testrepo/test.js");
         File dir = Utils.toFile(url).getParentFile();
-        axisConfig.setRepository(dir.getParentFile().toURL());
+        axisConfig.setRepository(dir.getParentFile().toURI().toURL());
         axisConfig.addParameter(new Parameter("scriptServicesDir", dir.getName()));
-        assertEquals(dir.toURL(), module.getScriptServicesDirectory(axisConfig).toURL());
+        assertEquals(dir.toURI().toURL(), module.getScriptServicesDirectory(axisConfig).toURI().toURL());
     }
 
 //    public void testCreateService() throws AxisFault {
@@ -80,7 +80,7 @@
         AxisConfiguration axisConfig = new AxisConfiguration();
         URL url = getClass().getClassLoader().getResource("org/apache/axis2/scripting/testrepo/test.js");
         File dir = Utils.toFile(url).getParentFile();
-        axisConfig.setRepository(dir.getParentFile().toURL());
+        axisConfig.setRepository(dir.getParentFile().toURI().toURL());
         axisConfig.addParameter(new Parameter("scriptServicesDir", dir.getName()));
         ConfigurationContext configContext = new ConfigurationContext(axisConfig);
 
diff --git a/modules/scripting/test/org/apache/axis2/scripting/TestUtils.java b/modules/scripting/test/org/apache/axis2/scripting/TestUtils.java
index a22de77..77cec0d 100644
--- a/modules/scripting/test/org/apache/axis2/scripting/TestUtils.java
+++ b/modules/scripting/test/org/apache/axis2/scripting/TestUtils.java
@@ -22,7 +22,7 @@
 import org.apache.axiom.om.OMAbstractFactory;
 import org.apache.axiom.om.OMDocument;
 import org.apache.axiom.om.OMElement;
-import org.apache.axiom.om.impl.builder.StAXOMBuilder;
+import org.apache.axiom.om.OMXMLBuilderFactory;
 import org.apache.axiom.soap.SOAPEnvelope;
 import org.apache.axis2.AxisFault;
 import org.apache.axis2.context.ConfigurationContext;
@@ -33,23 +33,12 @@
 import org.apache.axis2.description.Parameter;
 import org.apache.axis2.engine.AxisConfiguration;
 
-import javax.xml.stream.XMLInputFactory;
-import javax.xml.stream.XMLStreamException;
-import javax.xml.stream.XMLStreamReader;
 import java.io.StringReader;
 
 public class TestUtils {
 
     public static OMElement createOMElement(String xml) {
-        try {
-
-            XMLStreamReader reader = XMLInputFactory.newInstance().createXMLStreamReader(new StringReader(xml));
-            StAXOMBuilder builder = new StAXOMBuilder(reader);
-            return builder.getDocumentElement();
-
-        } catch (XMLStreamException e) {
-            throw new RuntimeException(e);
-        }
+        return OMXMLBuilderFactory.createOMBuilder(new StringReader(xml)).getDocumentElement();
     }
 
     public static MessageContext createMockMessageContext(String payload) throws AxisFault {
diff --git a/modules/soapmonitor/module/pom.xml b/modules/soapmonitor/module/pom.xml
index 75a97e4..10de59c 100644
--- a/modules/soapmonitor/module/pom.xml
+++ b/modules/soapmonitor/module/pom.xml
@@ -23,9 +23,9 @@
     <modelVersion>4.0.0</modelVersion>
     <parent>
         <groupId>org.apache.axis2</groupId>
-        <artifactId>axis2-parent</artifactId>
-        <version>1.7.0-SNAPSHOT</version>
-        <relativePath>../../parent/pom.xml</relativePath>
+        <artifactId>axis2</artifactId>
+        <version>1.8.0-SNAPSHOT</version>
+        <relativePath>../../../pom.xml</relativePath>
     </parent>
     <artifactId>soapmonitor</artifactId>
     <packaging>mar</packaging>
diff --git a/modules/soapmonitor/servlet/pom.xml b/modules/soapmonitor/servlet/pom.xml
index 332cec3..f1302a8 100644
--- a/modules/soapmonitor/servlet/pom.xml
+++ b/modules/soapmonitor/servlet/pom.xml
@@ -23,9 +23,9 @@
     <modelVersion>4.0.0</modelVersion>
     <parent>
         <groupId>org.apache.axis2</groupId>
-        <artifactId>axis2-parent</artifactId>
-        <version>1.7.0-SNAPSHOT</version>
-        <relativePath>../../parent/pom.xml</relativePath>
+        <artifactId>axis2</artifactId>
+        <version>1.8.0-SNAPSHOT</version>
+        <relativePath>../../../pom.xml</relativePath>
     </parent>
     <artifactId>axis2-soapmonitor-servlet</artifactId>
     <packaging>jar</packaging>
diff --git a/modules/spring/pom.xml b/modules/spring/pom.xml
index c0d7802..3085646 100644
--- a/modules/spring/pom.xml
+++ b/modules/spring/pom.xml
@@ -23,9 +23,9 @@
     <modelVersion>4.0.0</modelVersion>
     <parent>
         <groupId>org.apache.axis2</groupId>
-        <artifactId>axis2-parent</artifactId>
-        <version>1.7.0-SNAPSHOT</version>
-        <relativePath>../parent/pom.xml</relativePath>
+        <artifactId>axis2</artifactId>
+        <version>1.8.0-SNAPSHOT</version>
+        <relativePath>../../pom.xml</relativePath>
     </parent>
     <artifactId>axis2-spring</artifactId>
     <name>Apache Axis2 - spring</name>
diff --git a/modules/testutils/pom.xml b/modules/testutils/pom.xml
index 73ae471..e361699 100644
--- a/modules/testutils/pom.xml
+++ b/modules/testutils/pom.xml
@@ -21,9 +21,9 @@
     <modelVersion>4.0.0</modelVersion>
     <parent>
         <groupId>org.apache.axis2</groupId>
-        <artifactId>axis2-parent</artifactId>
-        <version>1.7.0-SNAPSHOT</version>
-        <relativePath>../parent/pom.xml</relativePath>
+        <artifactId>axis2</artifactId>
+        <version>1.8.0-SNAPSHOT</version>
+        <relativePath>../../pom.xml</relativePath>
     </parent>
     <artifactId>axis2-testutils</artifactId>
     <name>Apache Axis2 - Test Utilities</name>
@@ -40,6 +40,16 @@
             <version>${project.version}</version>
         </dependency>
         <dependency>
+            <groupId>org.eclipse.jetty</groupId>
+            <artifactId>jetty-webapp</artifactId>
+            <version>7.6.15.v20140411</version>
+        </dependency>
+        <dependency>
+            <groupId>org.bouncycastle</groupId>
+            <artifactId>bcpkix-jdk15on</artifactId>
+            <version>1.49</version>
+        </dependency>
+        <dependency>
             <groupId>junit</groupId>
             <artifactId>junit</artifactId>
         </dependency>
diff --git a/modules/testutils/src/main/java/org/apache/axis2/testutils/AbstractAxis2Server.java b/modules/testutils/src/main/java/org/apache/axis2/testutils/AbstractAxis2Server.java
new file mode 100644
index 0000000..d34c443
--- /dev/null
+++ b/modules/testutils/src/main/java/org/apache/axis2/testutils/AbstractAxis2Server.java
@@ -0,0 +1,72 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.axis2.testutils;
+
+import javax.net.ssl.SSLContext;
+
+import org.apache.axis2.AxisFault;
+import org.apache.axis2.addressing.EndpointReference;
+import org.apache.axis2.context.ConfigurationContext;
+import org.apache.axis2.context.ConfigurationContextFactory;
+import org.junit.rules.ExternalResource;
+
+public abstract class AbstractAxis2Server extends ExternalResource {
+    private final String repositoryPath;
+    private ConfigurationContext configurationContext;
+
+    public AbstractAxis2Server(String repositoryPath) {
+        if (repositoryPath == null || repositoryPath.trim().length() == 0) {
+            throw new IllegalArgumentException("Axis2 repository must not be null or empty");
+        }
+        this.repositoryPath = repositoryPath;
+    }
+
+    final String getRepositoryPath() {
+        return repositoryPath;
+    }
+
+    public final ConfigurationContext getConfigurationContext() {
+        if (configurationContext == null) {
+            throw new IllegalStateException();
+        }
+        return configurationContext;
+    }
+
+    @Override
+    protected void before() throws Throwable {
+        configurationContext =
+                ConfigurationContextFactory.createConfigurationContextFromFileSystem(repositoryPath);
+        startServer(configurationContext);
+    }
+
+    @Override
+    protected void after() {
+        stopServer();
+        configurationContext = null;
+    }
+
+    protected abstract void startServer(ConfigurationContext configurationContext) throws Throwable;
+    protected abstract void stopServer();
+
+    public abstract boolean isSecure();
+    public abstract SSLContext getClientSSLContext() throws Exception;
+    public abstract int getPort();
+    public abstract String getEndpoint(String serviceName) throws AxisFault;
+    public abstract EndpointReference getEndpointReference(String serviceName) throws AxisFault;
+}
diff --git a/modules/testutils/src/main/java/org/apache/axis2/testutils/Axis2Server.java b/modules/testutils/src/main/java/org/apache/axis2/testutils/Axis2Server.java
new file mode 100644
index 0000000..24f2308
--- /dev/null
+++ b/modules/testutils/src/main/java/org/apache/axis2/testutils/Axis2Server.java
@@ -0,0 +1,77 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.axis2.testutils;
+
+import javax.net.ssl.SSLContext;
+
+import org.apache.axis2.AxisFault;
+import org.apache.axis2.addressing.EndpointReference;
+import org.apache.axis2.context.ConfigurationContext;
+import org.apache.axis2.transport.http.SimpleHTTPServer;
+
+public class Axis2Server extends AbstractAxis2Server {
+    private int port = -1;
+    private SimpleHTTPServer server;
+
+    public Axis2Server(String repositoryPath) {
+        super(repositoryPath);
+    }
+
+    @Override
+    public boolean isSecure() {
+        return false;
+    }
+
+    @Override
+    public SSLContext getClientSSLContext() {
+        return null;
+    }
+
+    @Override
+    public int getPort() {
+        if (port == -1) {
+            throw new IllegalStateException();
+        }
+        return port;
+    }
+
+    @Override
+    public String getEndpoint(String serviceName) throws AxisFault {
+        return getEndpointReference(serviceName).getAddress();
+    }
+
+    @Override
+    public EndpointReference getEndpointReference(String serviceName) throws AxisFault {
+        return server.getEPRForService(serviceName, "localhost");
+    }
+
+    @Override
+    protected void startServer(ConfigurationContext configurationContext) throws Throwable {
+        port = PortAllocator.allocatePort();
+        server = new SimpleHTTPServer(configurationContext, port);
+        server.start();
+    }
+
+    @Override
+    protected void stopServer() {
+        port = -1;
+        server.stop();
+        server = null;
+    }
+}
diff --git a/modules/testutils/src/main/java/org/apache/axis2/testutils/ClientHelper.java b/modules/testutils/src/main/java/org/apache/axis2/testutils/ClientHelper.java
new file mode 100644
index 0000000..71d5af4
--- /dev/null
+++ b/modules/testutils/src/main/java/org/apache/axis2/testutils/ClientHelper.java
@@ -0,0 +1,103 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.axis2.testutils;
+
+import java.io.IOException;
+import java.net.URL;
+import java.net.URLConnection;
+import java.net.URLStreamHandler;
+
+import javax.net.ssl.HttpsURLConnection;
+import javax.net.ssl.SSLContext;
+import javax.xml.namespace.QName;
+
+import org.apache.axis2.client.ServiceClient;
+import org.apache.axis2.client.Stub;
+import org.apache.axis2.context.ConfigurationContext;
+import org.apache.axis2.context.ConfigurationContextFactory;
+import org.junit.rules.ExternalResource;
+
+public class ClientHelper extends ExternalResource {
+    private final AbstractAxis2Server server;
+    private final String repositoryPath;
+    private ConfigurationContext configurationContext;
+
+    public ClientHelper(AbstractAxis2Server server, String repositoryPath) {
+        this.server = server;
+        this.repositoryPath = repositoryPath;
+    }
+
+    public ClientHelper(AbstractAxis2Server server) {
+        this(server, server.getRepositoryPath());
+    }
+
+    @Override
+    protected final void before() throws Throwable {
+        configurationContext =
+                ConfigurationContextFactory.createConfigurationContextFromFileSystem(repositoryPath);
+        SSLContext sslContext = server.getClientSSLContext();
+        if (sslContext != null) {
+            configurationContext.setProperty(SSLContext.class.getName(), sslContext);
+        }
+    }
+
+    @Override
+    protected final void after() {
+        configurationContext = null;
+    }
+
+    public final ServiceClient createServiceClient(String serviceName) throws Exception {
+        ServiceClient serviceClient = new ServiceClient(configurationContext, null);
+        serviceClient.getOptions().setTo(server.getEndpointReference(serviceName));
+        configureServiceClient(serviceClient);
+        return serviceClient;
+    }
+
+    public final ServiceClient createServiceClient(String serviceName, QName wsdlServiceName, String portName) throws Exception {
+        URLStreamHandler handler;
+        if (server.isSecure()) {
+            final SSLContext sslContext = server.getClientSSLContext();
+            handler = new URLStreamHandler() {
+                @Override
+                protected URLConnection openConnection(URL url) throws IOException {
+                    HttpsURLConnection conn = (HttpsURLConnection)new URL(url.toExternalForm()).openConnection();
+                    conn.setSSLSocketFactory(sslContext.getSocketFactory());
+                    return conn;
+                }
+            };
+        } else {
+            handler = null;
+        }
+        ServiceClient serviceClient = new ServiceClient(configurationContext,
+                new URL(null, server.getEndpoint(serviceName) + "?wsdl", handler), wsdlServiceName, portName);
+        configureServiceClient(serviceClient);
+        return serviceClient;
+    }
+
+    public final <T extends Stub> T createStub(Class<T> type, String serviceName) throws Exception {
+        T stub = type
+                .getConstructor(ConfigurationContext.class, String.class)
+                .newInstance(configurationContext, server.getEndpoint(serviceName));
+        configureServiceClient(stub._getServiceClient());
+        return stub;
+    }
+
+    protected void configureServiceClient(ServiceClient serviceClient) throws Exception {
+    }
+}
diff --git a/modules/testutils/src/main/java/org/apache/axis2/testutils/JettyServer.java b/modules/testutils/src/main/java/org/apache/axis2/testutils/JettyServer.java
new file mode 100644
index 0000000..6cd51fc
--- /dev/null
+++ b/modules/testutils/src/main/java/org/apache/axis2/testutils/JettyServer.java
@@ -0,0 +1,287 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.axis2.testutils;
+
+import java.io.File;
+import java.io.FileOutputStream;
+import java.math.BigInteger;
+import java.security.KeyPair;
+import java.security.KeyPairGenerator;
+import java.security.KeyStore;
+import java.security.PrivateKey;
+import java.security.PublicKey;
+import java.security.SecureRandom;
+import java.security.cert.X509Certificate;
+import java.util.Date;
+import java.util.Random;
+
+import javax.net.ssl.SSLContext;
+import javax.net.ssl.TrustManagerFactory;
+import javax.servlet.ServletConfig;
+import javax.servlet.ServletException;
+
+import org.eclipse.jetty.server.Connector;
+import org.eclipse.jetty.server.Server;
+import org.eclipse.jetty.server.nio.SelectChannelConnector;
+import org.eclipse.jetty.server.ssl.SslSelectChannelConnector;
+import org.eclipse.jetty.servlet.ServletHolder;
+import org.eclipse.jetty.util.ssl.SslContextFactory;
+import org.eclipse.jetty.webapp.WebAppContext;
+import org.apache.axis2.addressing.EndpointReference;
+import org.apache.axis2.context.ConfigurationContext;
+import org.apache.axis2.transport.http.AxisServlet;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.bouncycastle.asn1.x500.X500Name;
+import org.bouncycastle.asn1.x509.SubjectPublicKeyInfo;
+import org.bouncycastle.cert.X509CertificateHolder;
+import org.bouncycastle.cert.X509v3CertificateBuilder;
+import org.bouncycastle.cert.jcajce.JcaX509CertificateConverter;
+import org.bouncycastle.operator.jcajce.JcaContentSignerBuilder;
+
+/**
+ * Support for running an embedded Jetty server
+ */
+public class JettyServer extends AbstractAxis2Server {
+    /**
+     * The alias of the certificate to configure for Jetty's ssl context factory: {@value}
+     */
+    private static final String CERT_ALIAS = "server";
+    
+    /**
+     * Webapp resource base directory to use: {@value}
+     */
+    private static final String WEBAPP_DIR = "target" + File.separator + "webapp";
+    
+    private static final Log log = LogFactory.getLog(JettyServer.class);
+    
+    private final boolean secure;
+    private File keyStoreFile;
+    private SSLContext clientSslContext;
+    private SslContextFactory serverSslContextFactory;
+    private Server server;
+    
+    /**
+     * Constructor.
+     * 
+     * @param repositoryPath
+     *            The path to the Axis2 repository to use. Must not be null or empty.
+     * @param secure
+     *            Whether to enable HTTPS.
+     */
+    public JettyServer(String repositoryPath, boolean secure) {
+        super(repositoryPath);
+        this.secure = secure;
+    }
+    
+    private String generatePassword(Random random) {
+        char[] password = new char[8];
+        for (int i=0; i<password.length; i++) {
+            password[i] = (char)('0' + random.nextInt(10));
+        }
+        return new String(password);
+    }
+    
+    private void writeKeyStore(KeyStore keyStore, File file, String password) throws Exception {
+        FileOutputStream out = new FileOutputStream(file);
+        try {
+            keyStore.store(out, password.toCharArray());
+        } finally {
+            out.close();
+        }
+    }
+    
+    private void generateKeys() throws Exception {
+        SecureRandom random = new SecureRandom();
+        
+        // Generate key pair
+        KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("RSA");
+        keyPairGenerator.initialize(1024, random);
+        KeyPair keyPair = keyPairGenerator.generateKeyPair();
+        PrivateKey privateKey = keyPair.getPrivate();
+        PublicKey publicKey = keyPair.getPublic();
+        
+        // Generate certificate
+        X500Name dn = new X500Name("cn=localhost,o=Apache");
+        BigInteger serial = BigInteger.valueOf(random.nextInt());
+        Date notBefore = new Date();
+        Date notAfter = new Date(notBefore.getTime() + 3600000L);
+        SubjectPublicKeyInfo subPubKeyInfo =  SubjectPublicKeyInfo.getInstance(publicKey.getEncoded());
+        X509v3CertificateBuilder certBuilder = new X509v3CertificateBuilder(dn, serial, notBefore, notAfter, dn, subPubKeyInfo);
+        X509CertificateHolder certHolder = certBuilder.build(new JcaContentSignerBuilder("SHA1WithRSA").build(privateKey));
+        X509Certificate cert = new JcaX509CertificateConverter().getCertificate(certHolder);
+        
+        // Build key store
+        keyStoreFile = File.createTempFile("keystore", "jks", null);
+        String keyStorePassword = generatePassword(random);
+        String keyPassword = generatePassword(random);
+        KeyStore keyStore = KeyStore.getInstance("JKS");
+        keyStore.load(null, null);
+        keyStore.setKeyEntry(CERT_ALIAS, privateKey, keyPassword.toCharArray(), new X509Certificate[] { cert });
+        writeKeyStore(keyStore, keyStoreFile, keyStorePassword);
+        
+        // Build trust store
+        KeyStore trustStore = KeyStore.getInstance("JKS");
+        trustStore.load(null, null);
+        trustStore.setCertificateEntry(CERT_ALIAS, cert);
+        
+        serverSslContextFactory = new SslContextFactory();
+        serverSslContextFactory.setKeyStorePath(keyStoreFile.getAbsolutePath());
+        serverSslContextFactory.setKeyStorePassword(keyStorePassword);
+        serverSslContextFactory.setKeyManagerPassword(keyPassword);
+        serverSslContextFactory.setCertAlias(CERT_ALIAS);
+        
+        clientSslContext = SSLContext.getInstance("TLS");
+        TrustManagerFactory tmfactory = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());
+        tmfactory.init(trustStore);
+        clientSslContext.init(null, tmfactory.getTrustManagers(), null);
+    }
+    
+    @Override
+    public SSLContext getClientSSLContext() throws Exception {
+        if (secure) {
+            if (clientSslContext == null) {
+                generateKeys();
+            }
+            return clientSslContext;
+        } else {
+            return null;
+        }
+    }
+
+    @Override
+    protected void startServer(final ConfigurationContext configurationContext) throws Throwable {
+        server = new Server();
+        
+        if (!secure) {
+            SelectChannelConnector connector = new SelectChannelConnector();
+            server.addConnector(connector);
+        } else {
+            if (serverSslContextFactory == null) {
+                generateKeys();
+            }
+            SslSelectChannelConnector sslConnector = new SslSelectChannelConnector(serverSslContextFactory);
+            server.addConnector(sslConnector);
+        }
+        
+        WebAppContext context = new WebAppContext();
+        File webappDir = new File(WEBAPP_DIR);
+        if (!webappDir.exists() && !webappDir.mkdirs()) {
+            log.error("Failed to create Axis2 webapp directory: " + webappDir.getAbsolutePath());
+        }
+        
+        context.setResourceBase(webappDir.getAbsolutePath());
+        context.setContextPath("/axis2");
+        context.setParentLoaderPriority(true);
+        context.setThrowUnavailableOnStartupException(true);
+        
+        @SuppressWarnings("serial")
+        ServletHolder servlet = new ServletHolder(new AxisServlet() {
+            @Override
+            protected ConfigurationContext initConfigContext(ServletConfig config)
+                    throws ServletException {
+                return configurationContext;
+            }
+        });
+        
+        //load on startup to trigger Axis2 initialization and service deployment
+        //this is for backward compatibility with the SimpleHttpServer which initializes Axis2 on startup
+        servlet.setInitOrder(0);
+        
+        context.addServlet(servlet, "/services/*");
+        
+        server.setHandler(context);
+        
+        try {
+            server.start();
+        }
+        catch (SecurityException e) {
+            if (e.getMessage().equals("class \"javax.servlet.ServletRequestListener\"'s signer information does not match signer information of other classes in the same package")) {
+                log.error(
+                 "It is likely your test classpath contains multiple different versions of servlet api.\n" +
+                 "If you are running this test in an IDE, please configure it to exclude Rampart's core module servlet api dependency.");
+                throw e;
+            }
+        }
+        
+        log.info("Server started on port " + getPort());
+    }
+    
+    @Override
+    protected void stopServer() {
+        if (server != null) {
+            log.info("Stop called");
+            try {
+                server.stop();
+            } catch (Exception ex) {
+                log.error("Failed to stop Jetty server", ex);
+            }
+            server = null;
+        }
+        if (keyStoreFile != null) {
+            keyStoreFile.delete();
+            keyStoreFile = null;
+        }
+        clientSslContext = null;
+        serverSslContextFactory = null;
+    }
+
+    @Override
+    public boolean isSecure() {
+        return secure;
+    }
+
+    /**
+     * @return Jetty's http connector port. 
+     * @throws IllegalStateException If Jetty is not running or the http connector cannot be found.
+     */
+    @Override
+    public int getPort() throws IllegalStateException {
+        if (server == null) {
+            throw new IllegalStateException("Jetty server is not initialized");
+        }
+        if (!server.isStarted()) {
+            throw new IllegalStateException("Jetty server is not started");
+        }
+        
+        Connector[] connectors = server.getConnectors();
+        if (connectors.length == 0) {
+            throw new IllegalStateException("Jetty server is not configured with any connectors");
+        }
+        
+        for (Connector connector : connectors) {
+            if (connector instanceof SelectChannelConnector) {
+                //must be the http connector
+                return connector.getLocalPort();
+            }
+        }
+        
+        throw new IllegalStateException("Could not find Jetty http connector");
+    }
+
+    @Override
+    public String getEndpoint(String serviceName) {
+        return String.format("%s://localhost:%s/axis2/services/%s", secure ? "https" : "http", getPort(), serviceName);
+    }
+
+    @Override
+    public EndpointReference getEndpointReference(String serviceName) {
+        return new EndpointReference(getEndpoint(serviceName));
+    }
+}
diff --git a/modules/testutils/src/main/java/org/apache/axis2/testutils/RuntimeIgnoreRunNotifier.java b/modules/testutils/src/main/java/org/apache/axis2/testutils/RuntimeIgnoreRunNotifier.java
index 7de608c..0255882 100644
--- a/modules/testutils/src/main/java/org/apache/axis2/testutils/RuntimeIgnoreRunNotifier.java
+++ b/modules/testutils/src/main/java/org/apache/axis2/testutils/RuntimeIgnoreRunNotifier.java
@@ -87,7 +87,7 @@
     }
 
     @Override
-    public void testAborted(Description description, Throwable cause) {
-        target.testAborted(description, cause);
+    public void fireTestAssumptionFailed(Failure failure) {
+        target.fireTestAssumptionFailed(failure);
     }
 }
\ No newline at end of file
diff --git a/modules/tool/archetype/quickstart-webapp/pom.xml b/modules/tool/archetype/quickstart-webapp/pom.xml
index 056acfd..b1f4a48 100644
--- a/modules/tool/archetype/quickstart-webapp/pom.xml
+++ b/modules/tool/archetype/quickstart-webapp/pom.xml
@@ -19,18 +19,17 @@
   ~ under the License.
   -->
 
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
 	<modelVersion>4.0.0</modelVersion>
 	<parent>
 		<groupId>org.apache.axis2</groupId>
-		<artifactId>axis2-parent</artifactId>
-		<version>1.7.0-SNAPSHOT</version>
-		<relativePath>../../../parent/pom.xml</relativePath>
+		<artifactId>axis2</artifactId>
+		<version>1.8.0-SNAPSHOT</version>
+		<relativePath>../../../../pom.xml</relativePath>
 	</parent>
 	<groupId>org.apache.axis2.archetype</groupId>
 	<artifactId>quickstart-webapp</artifactId>
-	<version>1.7.0-SNAPSHOT</version>
+	<version>1.8.0-SNAPSHOT</version>
 	<packaging>maven-archetype</packaging>
 	<name>Axis2 quickstart-web archetype </name>
 	<description>Maven archetype for creating a  Axis2 web Service as a webapp </description>
@@ -51,4 +50,4 @@
 			</extension>
 		</extensions>
 	</build>
-</project>
\ No newline at end of file
+</project>
diff --git a/modules/tool/archetype/quickstart/pom.xml b/modules/tool/archetype/quickstart/pom.xml
index f1776e9..9e7eb8f 100644
--- a/modules/tool/archetype/quickstart/pom.xml
+++ b/modules/tool/archetype/quickstart/pom.xml
@@ -19,18 +19,17 @@
   ~ under the License.
   -->
 
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
 	<modelVersion>4.0.0</modelVersion>
 	<parent>
 		<groupId>org.apache.axis2</groupId>
-		<artifactId>axis2-parent</artifactId>
-		<version>1.7.0-SNAPSHOT</version>
-		<relativePath>../../../parent/pom.xml</relativePath>
+		<artifactId>axis2</artifactId>
+		<version>1.8.0-SNAPSHOT</version>
+		<relativePath>../../../../pom.xml</relativePath>
 	</parent>
 	<groupId>org.apache.axis2.archetype</groupId>
 	<artifactId>quickstart</artifactId>
-	<version>1.7.0-SNAPSHOT</version>
+	<version>1.8.0-SNAPSHOT</version>
 	<packaging>maven-archetype</packaging>
 	<name>Axis2 quickstart archetype </name>
 	<description>Maven archetype for creating a  Axis2 web Service </description>
@@ -51,4 +50,4 @@
 			</extension>
 		</extensions>
 	</build>
-</project>
\ No newline at end of file
+</project>
diff --git a/modules/tool/axis2-aar-maven-plugin/pom.xml b/modules/tool/axis2-aar-maven-plugin/pom.xml
index 6dc1b61..30226e3 100644
--- a/modules/tool/axis2-aar-maven-plugin/pom.xml
+++ b/modules/tool/axis2-aar-maven-plugin/pom.xml
@@ -23,9 +23,9 @@
     <modelVersion>4.0.0</modelVersion>
     <parent>
         <groupId>org.apache.axis2</groupId>
-        <artifactId>axis2-parent</artifactId>
-        <version>1.7.0-SNAPSHOT</version>
-        <relativePath>../../parent/pom.xml</relativePath>
+        <artifactId>axis2</artifactId>
+        <version>1.8.0-SNAPSHOT</version>
+        <relativePath>../../../pom.xml</relativePath>
     </parent>
     <artifactId>axis2-aar-maven-plugin</artifactId>
     <packaging>maven-plugin</packaging>
@@ -40,7 +40,7 @@
         </dependency>
         <dependency>
             <groupId>org.apache.maven</groupId>
-            <artifactId>maven-project</artifactId>
+            <artifactId>maven-core</artifactId>
         </dependency>
         <dependency>
             <groupId>org.apache.maven</groupId>
@@ -56,13 +56,19 @@
         </dependency>
 
         <dependency>
-            <groupId>org.apache.maven.shared</groupId>
-            <artifactId>maven-plugin-testing-harness</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
             <groupId>commons-httpclient</groupId>
             <artifactId>commons-httpclient</artifactId>
+            <exclusions>
+                <exclusion>
+                    <groupId>commons-logging</groupId>
+                    <artifactId>commons-logging</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
+            <!-- Maven supports SLF4J -->
+            <groupId>org.slf4j</groupId>
+            <artifactId>jcl-over-slf4j</artifactId>
         </dependency>
     </dependencies>
     <url>http://axis.apache.org/axis2/java/core/</url>
@@ -71,6 +77,12 @@
         <developerConnection>scm:svn:https://svn.apache.org/repos/asf/axis/axis2/java/core/trunk/modules/tool/axis2-aar-maven-plugin</developerConnection>
         <url>http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/tool/axis2-aar-maven-plugin</url>
     </scm>
+    <distributionManagement>
+        <site>
+            <id>site</id>
+            <url>scm:svn:https://svn.apache.org/repos/asf/axis/site/axis2/java/core-staging/tools/maven-plugins/axis2-aar-maven-plugin</url>
+        </site>
+    </distributionManagement>
     <build>
         <plugins>
             <plugin>
@@ -94,6 +106,22 @@
                     <goalPrefix>axis2</goalPrefix>
                 </configuration>
             </plugin>
+            <plugin>
+                <artifactId>maven-invoker-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>install</goal>
+                            <goal>integration-test</goal>
+                            <goal>verify</goal>
+                        </goals>
+                        <configuration>
+                            <cloneProjectsTo>${project.build.directory}/it</cloneProjectsTo>
+                            <postBuildHookScript>verify</postBuildHookScript>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
         </plugins>
     </build>
     <developers>
@@ -109,4 +137,16 @@
             <email>john.pfeifer@hnpsolutions.com</email>
         </contributor>
     </contributors>
+    <reporting>
+        <plugins>
+            <plugin>
+                <artifactId>maven-project-info-reports-plugin</artifactId>
+                <reportSets>
+                    <reportSet>
+                        <reports />
+                    </reportSet>
+                </reportSets>
+            </plugin>
+        </plugins>
+    </reporting>
 </project>
diff --git a/modules/tool/axis2-aar-maven-plugin/src/test/resources/aar-plugin-config-1.xml b/modules/tool/axis2-aar-maven-plugin/src/it/test1/pom.xml
similarity index 67%
rename from modules/tool/axis2-aar-maven-plugin/src/test/resources/aar-plugin-config-1.xml
rename to modules/tool/axis2-aar-maven-plugin/src/it/test1/pom.xml
index d4dea4b..bcf8116 100644
--- a/modules/tool/axis2-aar-maven-plugin/src/test/resources/aar-plugin-config-1.xml
+++ b/modules/tool/axis2-aar-maven-plugin/src/it/test1/pom.xml
@@ -21,17 +21,28 @@
 
 <project>
     <modelVersion>4.0.0</modelVersion>
-    <groupId>org.apache.axis2</groupId>
+    <parent>
+        <groupId>@pom.groupId@</groupId>
+        <artifactId>axis2</artifactId>
+        <version>@pom.version@</version>
+    </parent>
     <artifactId>axis2-aar-plugin-basic-test1</artifactId>
-    <version>SNAPSHOT</version>
     <name>Test 1 of the axis2-wsdl2code-maven-plugin</name>
     <build>
+        <finalName>test1</finalName>
         <plugins>
             <plugin>
-                <groupId>org.apache.axis2</groupId>
+                <groupId>@pom.groupId@</groupId>
                	<artifactId>axis2-aar-maven-plugin</artifactId>
-                <version>SNAPSHOT</version>
-                <configuration/>
+                <version>@pom.version@</version>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>aar</goal>
+                        </goals>
+                        <configuration/>
+                    </execution>
+                </executions>
             </plugin>
         </plugins>
     </build>
diff --git a/modules/tool/axis2-aar-maven-plugin/src/test/resources/services.xml b/modules/tool/axis2-aar-maven-plugin/src/it/test1/src/main/resources/META-INF/services.xml
similarity index 76%
rename from modules/tool/axis2-aar-maven-plugin/src/test/resources/services.xml
rename to modules/tool/axis2-aar-maven-plugin/src/it/test1/src/main/resources/META-INF/services.xml
index 4b6163a..abfe3d6 100644
--- a/modules/tool/axis2-aar-maven-plugin/src/test/resources/services.xml
+++ b/modules/tool/axis2-aar-maven-plugin/src/it/test1/src/main/resources/META-INF/services.xml
@@ -18,10 +18,10 @@
   ~ under the License.
   -->
 <serviceGroup>
-	<service name="SimpleService">
-		<parameter name="ServiceClass">sample.SimpleService</parameter>
-		<operation name="helloService">
-			<messageReceiver class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" />
-		</operation>
-	</service>
+    <service name="SimpleService">
+        <parameter name="ServiceClass">sample.SimpleService</parameter>
+        <operation name="helloService">
+            <messageReceiver class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" />
+        </operation>
+    </service>
 </serviceGroup>
diff --git a/modules/tool/axis2-aar-maven-plugin/src/it/test1/verify.bsh b/modules/tool/axis2-aar-maven-plugin/src/it/test1/verify.bsh
new file mode 100644
index 0000000..3bc66ec
--- /dev/null
+++ b/modules/tool/axis2-aar-maven-plugin/src/it/test1/verify.bsh
@@ -0,0 +1,5 @@
+import java.io.*;
+
+if (!new File(basedir, "target/test1.aar").exists()) {
+    throw new IllegalStateException("The build didn't generate the expected output file");
+}
diff --git a/modules/tool/axis2-aar-maven-plugin/src/test/resources/AdditionalDir/AdditionalFile.txt b/modules/tool/axis2-aar-maven-plugin/src/it/test2/AdditionalDir/AdditionalFile.txt
similarity index 100%
rename from modules/tool/axis2-aar-maven-plugin/src/test/resources/AdditionalDir/AdditionalFile.txt
rename to modules/tool/axis2-aar-maven-plugin/src/it/test2/AdditionalDir/AdditionalFile.txt
diff --git a/modules/tool/axis2-aar-maven-plugin/src/it/test2/pom.xml b/modules/tool/axis2-aar-maven-plugin/src/it/test2/pom.xml
new file mode 100644
index 0000000..51d3517
--- /dev/null
+++ b/modules/tool/axis2-aar-maven-plugin/src/it/test2/pom.xml
@@ -0,0 +1,58 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+  ~ Licensed to the Apache Software Foundation (ASF) under one
+  ~ or more contributor license agreements. See the NOTICE file
+  ~ distributed with this work for additional information
+  ~ regarding copyright ownership. The ASF licenses this file
+  ~ to you under the Apache License, Version 2.0 (the
+  ~ "License"); you may not use this file except in compliance
+  ~ with the License. You may obtain a copy of the License at
+  ~
+  ~ http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing,
+  ~ software distributed under the License is distributed on an
+  ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  ~ KIND, either express or implied. See the License for the
+  ~ specific language governing permissions and limitations
+  ~ under the License.
+  -->
+<project>
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>@pom.groupId@</groupId>
+        <artifactId>axis2</artifactId>
+        <version>@pom.version@</version>
+    </parent>
+    <artifactId>axis2-aar-plugin-configuration-test1</artifactId>
+    <name>Test 1 of the axis2-wsdl2code-maven-plugin</name>
+    <build>
+        <finalName>test2</finalName>
+        <plugins>
+            <plugin>
+                <groupId>@pom.groupId@</groupId>
+               	<artifactId>axis2-aar-maven-plugin</artifactId>
+                <version>@pom.version@</version>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>aar</goal>
+                        </goals>
+                        <configuration>
+                            <servicesXmlFile>services.xml</servicesXmlFile>
+                            <wsdlFile>simple.wsdl</wsdlFile>
+                            <wsdlFileName>SimpleService.wsdl</wsdlFileName>
+                            <fileSets>
+                                <fileSet>
+                                    <directory>AdditionalDir</directory>
+                                    <outputDirectory>META-INF/docs</outputDirectory>
+                                </fileSet>
+                            </fileSets>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
+</project>
diff --git a/modules/tool/axis2-aar-maven-plugin/src/test/resources/services.xml b/modules/tool/axis2-aar-maven-plugin/src/it/test2/services.xml
similarity index 76%
copy from modules/tool/axis2-aar-maven-plugin/src/test/resources/services.xml
copy to modules/tool/axis2-aar-maven-plugin/src/it/test2/services.xml
index 4b6163a..abfe3d6 100644
--- a/modules/tool/axis2-aar-maven-plugin/src/test/resources/services.xml
+++ b/modules/tool/axis2-aar-maven-plugin/src/it/test2/services.xml
@@ -18,10 +18,10 @@
   ~ under the License.
   -->
 <serviceGroup>
-	<service name="SimpleService">
-		<parameter name="ServiceClass">sample.SimpleService</parameter>
-		<operation name="helloService">
-			<messageReceiver class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" />
-		</operation>
-	</service>
+    <service name="SimpleService">
+        <parameter name="ServiceClass">sample.SimpleService</parameter>
+        <operation name="helloService">
+            <messageReceiver class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" />
+        </operation>
+    </service>
 </serviceGroup>
diff --git a/modules/tool/axis2-aar-maven-plugin/src/test/resources/simple.wsdl b/modules/tool/axis2-aar-maven-plugin/src/it/test2/simple.wsdl
similarity index 100%
rename from modules/tool/axis2-aar-maven-plugin/src/test/resources/simple.wsdl
rename to modules/tool/axis2-aar-maven-plugin/src/it/test2/simple.wsdl
diff --git a/modules/tool/axis2-aar-maven-plugin/src/it/test2/verify.bsh b/modules/tool/axis2-aar-maven-plugin/src/it/test2/verify.bsh
new file mode 100644
index 0000000..f79fced
--- /dev/null
+++ b/modules/tool/axis2-aar-maven-plugin/src/it/test2/verify.bsh
@@ -0,0 +1,5 @@
+import java.io.*;
+
+if (!new File(basedir, "target/test2.aar").exists()) {
+    throw new IllegalStateException("The build didn't generate the expected output file");
+}
diff --git a/modules/tool/axis2-aar-maven-plugin/src/main/java/org/apache/axis2/maven2/aar/AarMojo.java b/modules/tool/axis2-aar-maven-plugin/src/main/java/org/apache/axis2/maven2/aar/AarMojo.java
index c00969b..8fc92c4 100644
--- a/modules/tool/axis2-aar-maven-plugin/src/main/java/org/apache/axis2/maven2/aar/AarMojo.java
+++ b/modules/tool/axis2-aar-maven-plugin/src/main/java/org/apache/axis2/maven2/aar/AarMojo.java
@@ -23,6 +23,7 @@
 import org.apache.maven.archiver.MavenArchiver;
 import org.apache.maven.artifact.Artifact;
 import org.apache.maven.artifact.DependencyResolutionRequiredException;
+import org.apache.maven.execution.MavenSession;
 import org.apache.maven.plugin.MojoExecutionException;
 import org.apache.maven.project.MavenProjectHelper;
 import org.codehaus.plexus.archiver.ArchiverException;
@@ -41,6 +42,15 @@
  */
 public class AarMojo extends AbstractAarMojo {
     /**
+     * The Maven Session
+     *
+     * @required
+     * @readonly
+     * @parameter expression="${session}"
+     */
+    private MavenSession session;
+    
+    /**
      * The directory for the generated aar.
      *
      * @parameter expression="${project.build.directory}"
@@ -132,7 +142,7 @@
         jarArchiver.addDirectory(aarDirectory);
 
         // create archive
-        archiver.createArchive(project, archive);
+        archiver.createArchive(session, project, archive);
 
         if (classifier != null) {
             projectHelper.attachArtifact(project, "aar", classifier, aarFile);
diff --git a/modules/tool/axis2-aar-maven-plugin/src/main/java/org/apache/axis2/maven2/aar/AbstractAarMojo.java b/modules/tool/axis2-aar-maven-plugin/src/main/java/org/apache/axis2/maven2/aar/AbstractAarMojo.java
index 13c14b0..3d0f776 100644
--- a/modules/tool/axis2-aar-maven-plugin/src/main/java/org/apache/axis2/maven2/aar/AbstractAarMojo.java
+++ b/modules/tool/axis2-aar-maven-plugin/src/main/java/org/apache/axis2/maven2/aar/AbstractAarMojo.java
@@ -30,7 +30,6 @@
 import java.io.File;
 import java.io.IOException;
 import java.util.ArrayList;
-import java.util.Iterator;
 import java.util.List;
 import java.util.Set;
 
@@ -157,12 +156,11 @@
             copyMetaInfFile(wsdlFile, wsdlFileTarget, wsdlExistsBeforeCopyingClasses, "WSDL file");
 
             if (includeDependencies) {
-                Set artifacts = project.getArtifacts();
+                Set<Artifact> artifacts = project.getArtifacts();
 
-                List duplicates = findDuplicates(artifacts);
+                List<String> duplicates = findDuplicates(artifacts);
 
-                for (Iterator iter = artifacts.iterator(); iter.hasNext();) {
-                    Artifact artifact = (Artifact)iter.next();
+                for (Artifact artifact : artifacts) {
                     String targetFileName = getDefaultFinalName(artifact);
 
                     getLog().debug("Processing: " + targetFileName);
@@ -198,11 +196,10 @@
      * @param artifacts set of artifacts
      * @return List of duplicated artifacts
      */
-    private List findDuplicates(Set artifacts) {
-        List duplicates = new ArrayList();
-        List identifiers = new ArrayList();
-        for (Iterator iter = artifacts.iterator(); iter.hasNext();) {
-            Artifact artifact = (Artifact)iter.next();
+    private List<String> findDuplicates(Set<Artifact> artifacts) {
+        List<String> duplicates = new ArrayList<String>();
+        List<String> identifiers = new ArrayList<String>();
+        for (Artifact artifact : artifacts) {
             String candidate = getDefaultFinalName(artifact);
             if (identifiers.contains(candidate)) {
                 duplicates.add(candidate);
diff --git a/modules/tool/axis2-aar-maven-plugin/src/test/java/org/apache/axis2/maven2/aar/AarMojoTest.java b/modules/tool/axis2-aar-maven-plugin/src/test/java/org/apache/axis2/maven2/aar/AarMojoTest.java
deleted file mode 100644
index 60fc747..0000000
--- a/modules/tool/axis2-aar-maven-plugin/src/test/java/org/apache/axis2/maven2/aar/AarMojoTest.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.axis2.maven2.aar;
-
-import java.io.File;
-
-public class AarMojoTest extends AbstractAarTest {
-
-	public void testAarMojoGoal() throws Exception {
-
-		AarMojo mojo = (AarMojo) getAarMojoGoal("aar",
-				"target/test-classes/aar-plugin-config-1.xml");
-		mojo.execute();
-		String aarName = "target/axis2-aar-plugin-basic-test1.aar";
-		assertTrue(" Can not find " + aarName, new File(aarName).exists());
-	}
-
-	public void testAarMojoGoalConfiguration() throws Exception {
-
-		AarMojo mojo = (AarMojo) getAarMojoGoal("aar",
-				"target/test-classes/aar-plugin-config-2.xml");
-		mojo.execute();
-		String aarName = "target/axis2-aar-plugin-configuration-test1.aar";
-		assertTrue(" Can not find " + aarName, new File(aarName).exists());
-	}
-
-}
diff --git a/modules/tool/axis2-aar-maven-plugin/src/test/java/org/apache/axis2/maven2/aar/AbstractAarTest.java b/modules/tool/axis2-aar-maven-plugin/src/test/java/org/apache/axis2/maven2/aar/AbstractAarTest.java
deleted file mode 100644
index 4fa567c..0000000
--- a/modules/tool/axis2-aar-maven-plugin/src/test/java/org/apache/axis2/maven2/aar/AbstractAarTest.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.axis2.maven2.aar;
-
-import java.io.File;
-
-import org.apache.maven.artifact.Artifact;
-import org.apache.maven.artifact.DefaultArtifact;
-import org.apache.maven.artifact.versioning.VersionRange;
-import org.apache.maven.model.Model;
-import org.apache.maven.model.io.xpp3.MavenXpp3Reader;
-import org.apache.maven.plugin.Mojo;
-import org.apache.maven.plugin.testing.AbstractMojoTestCase;
-import org.apache.maven.plugin.testing.stubs.DefaultArtifactHandlerStub;
-import org.apache.maven.project.MavenProject;
-import org.codehaus.plexus.util.ReaderFactory;
-
-public abstract class AbstractAarTest extends AbstractMojoTestCase {
-
-	public Mojo getAarMojoGoal(String goal, String testPom) throws Exception {
-
-		File pom = new File(getBasedir(), testPom);
-		MavenXpp3Reader pomReader = new MavenXpp3Reader();
-		MavenProject project = new MavenProject();
-		Model model = pomReader.read(ReaderFactory.newXmlReader(pom));
-		// Set project properties.
-		setVariableValueToObject(project, "model", model);
-		setVariableValueToObject(project, "file", pom);
-		Artifact artifact = new DefaultArtifact(model.getGroupId(),
-				model.getArtifactId(),
-				VersionRange.createFromVersionSpec("SNAPSHOT"), null, "aar",
-				null, (new DefaultArtifactHandlerStub("aar", null)));
-		artifact.setBaseVersion("SNAPSHOT");
-		artifact.setVersion("SNAPSHOT");
-		setVariableValueToObject(project, "artifact", artifact);
-		// Create and set Mojo properties.
-		Mojo mojo = lookupMojo(goal, pom);
-		setVariableValueToObject(mojo, "aarDirectory", new File(getBasedir(),
-				"target/aar"));
-		setVariableValueToObject(mojo, "aarName", model.getArtifactId());
-		setVariableValueToObject(mojo, "outputDirectory", "target");
-		setVariableValueToObject(mojo, "project", project);
-		// Use some classes only for testing.
-		setVariableValueToObject(mojo, "classesDirectory", new File(
-				getBasedir(), "target/classes"));
-		assertNotNull(mojo);
-		return mojo;
-
-	}
-
-}
diff --git a/modules/tool/axis2-aar-maven-plugin/src/test/resources/aar-plugin-config-2.xml b/modules/tool/axis2-aar-maven-plugin/src/test/resources/aar-plugin-config-2.xml
deleted file mode 100644
index 58fe9dc..0000000
--- a/modules/tool/axis2-aar-maven-plugin/src/test/resources/aar-plugin-config-2.xml
+++ /dev/null
@@ -1,47 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<!--
-  ~ Licensed to the Apache Software Foundation (ASF) under one
-  ~ or more contributor license agreements. See the NOTICE file
-  ~ distributed with this work for additional information
-  ~ regarding copyright ownership. The ASF licenses this file
-  ~ to you under the Apache License, Version 2.0 (the
-  ~ "License"); you may not use this file except in compliance
-  ~ with the License. You may obtain a copy of the License at
-  ~
-  ~ http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing,
-  ~ software distributed under the License is distributed on an
-  ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  ~ KIND, either express or implied. See the License for the
-  ~ specific language governing permissions and limitations
-  ~ under the License.
-  -->
-<project>
-	<modelVersion>4.0.0</modelVersion>
-	<groupId>org.apache.axis2</groupId>
-	<artifactId>axis2-aar-plugin-configuration-test1</artifactId>
-	<version>SNAPSHOT</version>
-	<name>Test 1 of the axis2-wsdl2code-maven-plugin</name>
-	<build>
-		<plugins>
-			<plugin>
-				<groupId>org.apache.axis2</groupId>
-				<artifactId>axis2-aar-maven-plugin</artifactId>
-				<version>SNAPSHOT</version>
-				<configuration>
-					<servicesXmlFile>target/test-classes/services.xml</servicesXmlFile>
-					<wsdlFile>target/test-classes/simple.wsdl</wsdlFile>
-					<wsdlFileName>SimpleService.wsdl</wsdlFileName>
-					<fileSets>
-						<fileSet>
-							<directory>target/test-classes/AdditionalDir</directory>
-							<outputDirectory>META-INF/docs</outputDirectory>
-						</fileSet>
-					</fileSets>
-				</configuration>
-			</plugin>
-		</plugins>
-	</build>
-</project>
diff --git a/modules/tool/axis2-ant-plugin/pom.xml b/modules/tool/axis2-ant-plugin/pom.xml
index ef97c98..3e78e8d 100644
--- a/modules/tool/axis2-ant-plugin/pom.xml
+++ b/modules/tool/axis2-ant-plugin/pom.xml
@@ -23,9 +23,9 @@
     <modelVersion>4.0.0</modelVersion>
     <parent>
         <groupId>org.apache.axis2</groupId>
-        <artifactId>axis2-parent</artifactId>
-        <version>1.7.0-SNAPSHOT</version>
-        <relativePath>../../parent/pom.xml</relativePath>
+        <artifactId>axis2</artifactId>
+        <version>1.8.0-SNAPSHOT</version>
+        <relativePath>../../../pom.xml</relativePath>
     </parent>
     <artifactId>axis2-ant-plugin</artifactId>
     <name>Apache Axis2 - tool - Ant Plugin</name>
@@ -72,11 +72,6 @@
             <artifactId>commons-logging</artifactId>
         </dependency>
         <dependency>
-            <groupId>commons-httpclient</groupId>
-            <artifactId>commons-httpclient</artifactId>
-            <scope>runtime</scope>
-        </dependency>
-        <dependency>
             <groupId>org.apache.neethi</groupId>
             <artifactId>neethi</artifactId>
         </dependency>
@@ -85,12 +80,8 @@
             <artifactId>xmlschema-core</artifactId>
         </dependency>
         <dependency>
-            <groupId>org.apache.geronimo.specs</groupId>
-            <artifactId>geronimo-javamail_1.4_spec</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.geronimo.specs</groupId>
-            <artifactId>geronimo-activation_1.1_spec</artifactId>
+            <groupId>com.sun.mail</groupId>
+            <artifactId>javax.mail</artifactId>
         </dependency>
         <dependency>
             <groupId>org.apache.ant</groupId>
@@ -154,8 +145,8 @@
                 </executions>
             </plugin>
             <plugin>
-                <groupId>org.codehaus.gmaven</groupId>
-                <artifactId>gmaven-plugin</artifactId>
+                <groupId>org.codehaus.gmavenplus</groupId>
+                <artifactId>gmavenplus-plugin</artifactId>
                 <executions>
                     <execution>
                         <phase>test</phase>
@@ -163,34 +154,36 @@
                             <goal>execute</goal>
                         </goals>
                         <configuration>
-                            <source>
-                                import groovy.xml.*
-                                
-                                if (project.properties['maven.test.skip']) {
-                                    println 'Tests are skipped'
-                                    return
-                                }
-                                
-                                def parser = new XmlParser()
-                                def wsdl = new Namespace('http://schemas.xmlsoap.org/wsdl/')
-                                def xs = new Namespace('http://www.w3.org/2001/XMLSchema')
-
-                                println 'Checking extraclasses*.wsdl'
-                                
-                                for (i in 1..3) {                                
-                                    def wsdlDoc = parser.parse(new File(project.build.directory, "java2wsdl/extraclasses${i}.wsdl"))
-                                    def complexTypes = wsdlDoc[wsdl.types][xs.schema][xs.complexType].'@name'
-                                    assert complexTypes.contains('ExtraClass1')
-                                    assert complexTypes.contains('ExtraClass2')
-                                }
-                                
-                                println 'Checking mappings.wsdl'
-                                
-                                def wsdlDoc = parser.parse(new File(project.build.directory, "java2wsdl/mappings.wsdl"))
-                                def namespaces = wsdlDoc[wsdl.types][xs.schema].'@targetNamespace'
-                                assert namespaces.contains('http://www.example.org/schema/test-service')
-                                assert namespaces.contains('http://www.example.org/schema/test')
-                            </source>
+                            <scripts>
+                                <script>
+                                    import groovy.xml.*
+                                    
+                                    if (System.properties['maven.test.skip']) {
+                                        println 'Tests are skipped'
+                                        return
+                                    }
+                                    
+                                    def parser = new XmlParser()
+                                    def wsdl = new Namespace('http://schemas.xmlsoap.org/wsdl/')
+                                    def xs = new Namespace('http://www.w3.org/2001/XMLSchema')
+    
+                                    println 'Checking extraclasses*.wsdl'
+                                    
+                                    for (i in 1..3) {                                
+                                        def wsdlDoc = parser.parse(new File(project.build.directory, "java2wsdl/extraclasses${i}.wsdl"))
+                                        def complexTypes = wsdlDoc[wsdl.types][xs.schema][xs.complexType].'@name'
+                                        assert complexTypes.contains('ExtraClass1')
+                                        assert complexTypes.contains('ExtraClass2')
+                                    }
+                                    
+                                    println 'Checking mappings.wsdl'
+                                    
+                                    def wsdlDoc = parser.parse(new File(project.build.directory, "java2wsdl/mappings.wsdl"))
+                                    def namespaces = wsdlDoc[wsdl.types][xs.schema].'@targetNamespace'
+                                    assert namespaces.contains('http://www.example.org/schema/test-service')
+                                    assert namespaces.contains('http://www.example.org/schema/test')
+                                </script>
+                            </scripts>
                         </configuration>
                     </execution>
                 </executions>
diff --git a/modules/tool/axis2-ant-plugin/src/main/java/org/apache/axis2/tool/ant/AntCodegenTask.java b/modules/tool/axis2-ant-plugin/src/main/java/org/apache/axis2/tool/ant/AntCodegenTask.java
index aa3417b..417e0b6 100644
--- a/modules/tool/axis2-ant-plugin/src/main/java/org/apache/axis2/tool/ant/AntCodegenTask.java
+++ b/modules/tool/axis2-ant-plugin/src/main/java/org/apache/axis2/tool/ant/AntCodegenTask.java
@@ -23,7 +23,9 @@
 import org.apache.axis2.util.CommandLineOptionConstants;
 import org.apache.axis2.util.CommandLineOptionParser;
 import org.apache.axis2.util.URLProcessor;
+import org.apache.axis2.wsdl.codegen.CodeGenConfiguration;
 import org.apache.axis2.wsdl.codegen.CodeGenerationEngine;
+import org.apache.axis2.wsdl.codegen.CodegenConfigLoader;
 import org.apache.axis2.wsdl.util.ConfigPropertyFileLoader;
 import org.apache.tools.ant.AntClassLoader;
 import org.apache.tools.ant.BuildException;
@@ -413,7 +415,9 @@
             Map commandLineOptions = this.fillOptionMap();
             CommandLineOptionParser parser =
                     new CommandLineOptionParser(commandLineOptions);
-            new CodeGenerationEngine(parser).generate();
+            CodeGenConfiguration config = new CodeGenConfiguration();
+            CodegenConfigLoader.loadConfig(config, parser.getAllOptions());
+            new CodeGenerationEngine(config).generate();
         } catch (Throwable e) {
             throw new BuildException(e);
         }
diff --git a/modules/tool/axis2-ant-plugin/src/main/java/org/apache/axis2/tool/ant/Java2WSDLTask.java b/modules/tool/axis2-ant-plugin/src/main/java/org/apache/axis2/tool/ant/Java2WSDLTask.java
index 600d404..5c23d49 100644
--- a/modules/tool/axis2-ant-plugin/src/main/java/org/apache/axis2/tool/ant/Java2WSDLTask.java
+++ b/modules/tool/axis2-ant-plugin/src/main/java/org/apache/axis2/tool/ant/Java2WSDLTask.java
@@ -278,8 +278,6 @@
 

             Thread.currentThread().setContextClassLoader(cl);

 

-            if (outputLocation != null) cl.addPathElement(outputLocation);

-

             new Java2WSDLCodegenEngine(commandLineOptions).generate();

             Thread.currentThread().setContextClassLoader(conextClassLoader);

         } catch (Throwable e) {

diff --git a/modules/java2wsdl/src/org/apache/ws/java2wsdl/Mapper.java b/modules/tool/axis2-ant-plugin/src/main/java/org/apache/ws/java2wsdl/Mapper.java
similarity index 100%
rename from modules/java2wsdl/src/org/apache/ws/java2wsdl/Mapper.java
rename to modules/tool/axis2-ant-plugin/src/main/java/org/apache/ws/java2wsdl/Mapper.java
diff --git a/modules/java2wsdl/src/org/apache/ws/java2wsdl/MappingSet.java b/modules/tool/axis2-ant-plugin/src/main/java/org/apache/ws/java2wsdl/MappingSet.java
similarity index 100%
rename from modules/java2wsdl/src/org/apache/ws/java2wsdl/MappingSet.java
rename to modules/tool/axis2-ant-plugin/src/main/java/org/apache/ws/java2wsdl/MappingSet.java
diff --git a/modules/java2wsdl/src/org/apache/ws/java2wsdl/NamespaceMapping.java b/modules/tool/axis2-ant-plugin/src/main/java/org/apache/ws/java2wsdl/NamespaceMapping.java
similarity index 100%
rename from modules/java2wsdl/src/org/apache/ws/java2wsdl/NamespaceMapping.java
rename to modules/tool/axis2-ant-plugin/src/main/java/org/apache/ws/java2wsdl/NamespaceMapping.java
diff --git a/modules/tool/axis2-ant-plugin/src/test/resources/log4j.properties b/modules/tool/axis2-ant-plugin/src/test/resources/log4j.properties
index 1e4804f..79942cf 100644
--- a/modules/tool/axis2-ant-plugin/src/test/resources/log4j.properties
+++ b/modules/tool/axis2-ant-plugin/src/test/resources/log4j.properties
@@ -24,7 +24,6 @@
 
 # Set the enterprise logger priority to FATAL
 log4j.logger.org.apache.axis2.enterprise=FATAL
-log4j.logger.de.hunsicker.jalopy.io=FATAL
 log4j.logger.httpclient.wire.header=FATAL
 log4j.logger.org.apache.commons.httpclient=FATAL
 
diff --git a/modules/tool/axis2-eclipse-codegen-plugin/pom.xml b/modules/tool/axis2-eclipse-codegen-plugin/pom.xml
index a518523..8e1f009 100644
--- a/modules/tool/axis2-eclipse-codegen-plugin/pom.xml
+++ b/modules/tool/axis2-eclipse-codegen-plugin/pom.xml
@@ -23,9 +23,9 @@
     <modelVersion>4.0.0</modelVersion>
     <parent>
         <groupId>org.apache.axis2</groupId>
-        <artifactId>axis2-parent</artifactId>
-        <version>1.7.0-SNAPSHOT</version>
-        <relativePath>../../parent/pom.xml</relativePath>
+        <artifactId>axis2</artifactId>
+        <version>1.8.0-SNAPSHOT</version>
+        <relativePath>../../../pom.xml</relativePath>
     </parent>
     <artifactId>axis2.eclipse.codegen.plugin</artifactId>
     <name>Apache Axis2 - tool - Eclipse Codegen Plugin</name>
@@ -91,9 +91,13 @@
         </dependency>
         <dependency>
             <groupId>${project.groupId}</groupId>
-            <artifactId>axis2-jibx</artifactId>
+            <artifactId>axis2-jibx-codegen</artifactId>
             <version>${project.version}</version>
         </dependency>
+        <dependency>
+            <groupId>org.apache.ant</groupId>
+            <artifactId>ant</artifactId>
+        </dependency>
     </dependencies>
     <build>
         <resources>
@@ -186,11 +190,23 @@
                     <manifestLocation>META-INF</manifestLocation>
                     <instructions>
                         <!-- Embed all dependencies, except those which are provided by the Eclipse runtime -->
-                        <Embed-Dependency>*;scope=compile|runtime;groupId=!org.eclipse.*;artifactId=!commons-logging|wstx-asl|geronimo-activation_1.1_spec|geronimo-javamail_1.4_spec|geronimo-stax-api_1.0_spec|ant*</Embed-Dependency>
+                        <Embed-Dependency>*;scope=compile|runtime;groupId=!org.eclipse.*;artifactId=!commons-logging|woodstox-core-asl|ant*</Embed-Dependency>
                         <Embed-Directory>lib</Embed-Directory>
                         <Embed-Transitive>true</Embed-Transitive>
                         <!-- Exclude imports that are actually not used -->
-                        <Import-Package>!org.dom4j*,!nu.xom,!org.jdom*,!javax.portlet,!com.sun.*,!org.apache.xmlbeans.*,!org.xmlpull.*,!org.apache.commons.io*,!org.relaxng.datatype,*</Import-Package>
+                        <Import-Package>
+                            !org.dom4j*,
+                            !nu.xom,
+                            !org.jdom*,
+                            !javax.portlet,
+                            !com.sun.*,
+                            !org.jvnet.ws.databinding,
+                            !org.apache.xmlbeans.*,
+                            !org.xmlpull.*,
+                            !org.apache.commons.io*,
+                            !org.relaxng.datatype,
+                            *
+                        </Import-Package>
                         <Export-Package />
                         <Bundle-Name>Axis2 Codegen Wizard Plug-in</Bundle-Name>
                         <Bundle-Activator>org.apache.axis2.tool.codegen.eclipse.plugin.CodegenWizardPlugin</Bundle-Activator>
@@ -201,8 +217,8 @@
                 </configuration>
             </plugin>
             <plugin>
-                <groupId>org.codehaus.gmaven</groupId>
-                <artifactId>gmaven-plugin</artifactId>
+                <groupId>org.codehaus.gmavenplus</groupId>
+                <artifactId>gmavenplus-plugin</artifactId>
                 <executions>
                     <execution>
                         <id>extract-bundle-symbolicname-and-version</id>
@@ -211,13 +227,15 @@
                             <goal>execute</goal>
                         </goals>
                         <configuration>
-                            <source>
-                                import java.util.jar.Manifest
-                                
-                                Manifest manifest = new Manifest(new FileInputStream(new File(project.basedir, "META-INF/MANIFEST.MF")))
-                                project.properties["bundle-symbolic-name"] = manifest.mainAttributes.getValue("Bundle-SymbolicName").find("^[^;]*") 
-                                project.properties["bundle-version"] = manifest.mainAttributes.getValue("Bundle-Version")
-                            </source>
+                            <scripts>
+                                <script>
+                                    import java.util.jar.Manifest
+                                    
+                                    Manifest manifest = new Manifest(new FileInputStream(new File(project.basedir, "META-INF/MANIFEST.MF")))
+                                    project.properties["bundle-symbolic-name"] = manifest.mainAttributes.getValue("Bundle-SymbolicName").find("^[^;]*") 
+                                    project.properties["bundle-version"] = manifest.mainAttributes.getValue("Bundle-Version")
+                                </script>
+                            </scripts>
                         </configuration>
                     </execution>
                 </executions>
@@ -254,10 +272,15 @@
             <build>
                 <plugins>
                     <plugin>
-                        <artifactId>maven-install-plugin</artifactId>
-                        <configuration>
-                            <createChecksum>true</createChecksum>
-                        </configuration>
+                        <groupId>net.nicoulaj.maven.plugins</groupId>
+                        <artifactId>checksum-maven-plugin</artifactId>
+                        <executions>
+                            <execution>
+                                <goals>
+                                    <goal>artifacts</goal>
+                                </goals>
+                            </execution>
+                        </executions>
                     </plugin>
                 </plugins>
             </build>
diff --git a/modules/tool/axis2-eclipse-codegen-plugin/src/main/java/org/apache/axis2/tool/codegen/WSDL2JavaGenerator.java b/modules/tool/axis2-eclipse-codegen-plugin/src/main/java/org/apache/axis2/tool/codegen/WSDL2JavaGenerator.java
index d6a8cbc..abdba57 100644
--- a/modules/tool/axis2-eclipse-codegen-plugin/src/main/java/org/apache/axis2/tool/codegen/WSDL2JavaGenerator.java
+++ b/modules/tool/axis2-eclipse-codegen-plugin/src/main/java/org/apache/axis2/tool/codegen/WSDL2JavaGenerator.java
@@ -175,7 +175,7 @@
 			
 			String baseUri;
 			if ("file".equals(url.getProtocol())){
-				baseUri = new File(url.getFile()).getParentFile().toURL().toExternalForm();
+				baseUri = new File(url.getFile()).getParentFile().toURI().toURL().toExternalForm();
 			}else{
 				baseUri = url.toExternalForm().substring(0,
 						url.toExternalForm().lastIndexOf("/")
diff --git a/modules/tool/axis2-eclipse-codegen-plugin/src/main/java/org/apache/axis2/tool/codegen/eclipse/CodeGenWizard.java b/modules/tool/axis2-eclipse-codegen-plugin/src/main/java/org/apache/axis2/tool/codegen/eclipse/CodeGenWizard.java
index 06e4f58..941d5a8 100644
--- a/modules/tool/axis2-eclipse-codegen-plugin/src/main/java/org/apache/axis2/tool/codegen/eclipse/CodeGenWizard.java
+++ b/modules/tool/axis2-eclipse-codegen-plugin/src/main/java/org/apache/axis2/tool/codegen/eclipse/CodeGenWizard.java
@@ -39,6 +39,7 @@
 import org.apache.axis2.tool.core.SrcCompiler;
 import org.apache.axis2.wsdl.codegen.CodeGenConfiguration;
 import org.apache.axis2.wsdl.codegen.CodeGenerationEngine;
+import org.apache.axis2.wsdl.codegen.CodegenConfigLoader;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.commons.logging.impl.Log4JLogger;
@@ -267,7 +268,8 @@
 
                  //Fix for the CodeGenConfiguration Contructor Change
                  //CodeGenConfiguration codegenConfig = new CodeGenConfiguration(service, optionsMap);
-                 CodeGenConfiguration codegenConfig = new CodeGenConfiguration(optionsMap);
+                 CodeGenConfiguration codegenConfig = new CodeGenConfiguration();
+                 CodegenConfigLoader.loadConfig(codegenConfig, optionsMap);
                  codegenConfig.addAxisService(service);
                  
                  //set the wsdl definision for codegen config for skeleton generarion.
diff --git a/modules/tool/axis2-eclipse-codegen-plugin/src/main/java/org/apache/axis2/tool/codegen/eclipse/util/ClassFileReader.java b/modules/tool/axis2-eclipse-codegen-plugin/src/main/java/org/apache/axis2/tool/codegen/eclipse/util/ClassFileReader.java
index 52223b8..5ff5385 100644
--- a/modules/tool/axis2-eclipse-codegen-plugin/src/main/java/org/apache/axis2/tool/codegen/eclipse/util/ClassFileReader.java
+++ b/modules/tool/axis2-eclipse-codegen-plugin/src/main/java/org/apache/axis2/tool/codegen/eclipse/util/ClassFileReader.java
@@ -56,7 +56,7 @@
 					if (classPathEntry.startsWith("http://")) {
 						urls[i] = new URL(classPathEntry);
 					} else {
-						urls[i] = new File(classPathEntry).toURL();
+						urls[i] = new File(classPathEntry).toURI().toURL();
 					}
 				}
 			} catch (MalformedURLException e) {
diff --git a/modules/tool/axis2-eclipse-codegen-plugin/src/main/java/org/apache/axis2/tool/codegen/eclipse/util/WSDLPropertyReader.java b/modules/tool/axis2-eclipse-codegen-plugin/src/main/java/org/apache/axis2/tool/codegen/eclipse/util/WSDLPropertyReader.java
index c1e87f4..162cc6a 100644
--- a/modules/tool/axis2-eclipse-codegen-plugin/src/main/java/org/apache/axis2/tool/codegen/eclipse/util/WSDLPropertyReader.java
+++ b/modules/tool/axis2-eclipse-codegen-plugin/src/main/java/org/apache/axis2/tool/codegen/eclipse/util/WSDLPropertyReader.java
@@ -20,12 +20,12 @@
 package org.apache.axis2.tool.codegen.eclipse.util;
 
 import org.apache.axis2.util.URLProcessor;
+import org.apache.axis2.wsdl.WSDLUtil;
 
 import javax.wsdl.Definition;
 import javax.wsdl.Port;
 import javax.wsdl.Service;
 import javax.wsdl.WSDLException;
-import javax.wsdl.factory.WSDLFactory;
 import javax.wsdl.xml.WSDLReader;
 import javax.xml.namespace.QName;
 import java.util.ArrayList;
@@ -49,7 +49,7 @@
     private Definition wsdlDefinition = null;
     
 	public void readWSDL(String filepath) throws WSDLException {
-		WSDLReader reader = WSDLFactory.newInstance().newWSDLReader();
+		WSDLReader reader = WSDLUtil.newWSDLReaderWithPopulatedExtensionRegistry();
 		wsdlDefinition = reader.readWSDL(filepath); 
 	}
 	
diff --git a/modules/tool/axis2-eclipse-codegen-plugin/src/main/java/org/apache/axis2/tool/core/ClassFileHandler.java b/modules/tool/axis2-eclipse-codegen-plugin/src/main/java/org/apache/axis2/tool/core/ClassFileHandler.java
index 835356b..c07b6b1 100644
--- a/modules/tool/axis2-eclipse-codegen-plugin/src/main/java/org/apache/axis2/tool/core/ClassFileHandler.java
+++ b/modules/tool/axis2-eclipse-codegen-plugin/src/main/java/org/apache/axis2/tool/core/ClassFileHandler.java
@@ -46,7 +46,7 @@
         if (!fileEndpoint.exists()){
             throw new IOException("the location is invalid");
         }
-        final URL[] urlList = {fileEndpoint.toURL()};
+        final URL[] urlList = {fileEndpoint.toURI().toURL()};
         URLClassLoader clazzLoader = AccessController.doPrivileged(new PrivilegedAction<URLClassLoader>() {
 			public URLClassLoader run() {
 				return new URLClassLoader(urlList);
diff --git a/modules/tool/axis2-eclipse-service-plugin/pom.xml b/modules/tool/axis2-eclipse-service-plugin/pom.xml
index f3108bc..d2245f0 100644
--- a/modules/tool/axis2-eclipse-service-plugin/pom.xml
+++ b/modules/tool/axis2-eclipse-service-plugin/pom.xml
@@ -23,9 +23,9 @@
     <modelVersion>4.0.0</modelVersion>
     <parent>
         <groupId>org.apache.axis2</groupId>
-        <artifactId>axis2-parent</artifactId>
-        <version>1.7.0-SNAPSHOT</version>
-        <relativePath>../../parent/pom.xml</relativePath>
+        <artifactId>axis2</artifactId>
+        <version>1.8.0-SNAPSHOT</version>
+        <relativePath>../../../pom.xml</relativePath>
     </parent>
     <artifactId>axis2.eclipse.service.plugin</artifactId>
     <name>Apache Axis2 - tool - Eclipse service Plugin</name>
@@ -163,11 +163,21 @@
                     <manifestLocation>META-INF</manifestLocation>
                     <instructions>
                         <!-- Embed all dependencies, except those which are provided by the Eclipse runtime -->
-                        <Embed-Dependency>*;scope=compile|runtime;groupId=!org.eclipse.*;artifactId=!commons-logging|wstx-asl|geronimo-activation_1.1_spec|geronimo-javamail_1.4_spec|geronimo-stax-api_1.0_spec|ant*</Embed-Dependency>
+                        <Embed-Dependency>*;scope=compile|runtime;groupId=!org.eclipse.*;artifactId=!commons-logging|woodstox-core-asl|ant*</Embed-Dependency>
                         <Embed-Directory>lib</Embed-Directory>
                         <Embed-Transitive>true</Embed-Transitive>
                         <!-- Exclude imports that are actually not used -->
-                        <Import-Package>!org.dom4j*,!nu.xom,!org.jdom*,!javax.portlet,!com.sun.*,!org.apache.commons.io*,!org.relaxng.datatype,*</Import-Package>
+                        <Import-Package>
+                            !org.dom4j*,
+                            !nu.xom,
+                            !org.jdom*,
+                            !javax.portlet,
+                            !com.sun.*,
+                            !org.jvnet.ws.databinding,
+                            !org.apache.commons.io*,
+                            !org.relaxng.datatype,
+                            *
+                        </Import-Package>
                         <Export-Package />
                         <Bundle-Name>Axis2 Service Maker</Bundle-Name>
                         <Bundle-Activator>org.apache.axis2.tool.service.eclipse.plugin.ServiceArchiver</Bundle-Activator>
@@ -178,8 +188,8 @@
                 </configuration>
             </plugin>
             <plugin>
-                <groupId>org.codehaus.gmaven</groupId>
-                <artifactId>gmaven-plugin</artifactId>
+                <groupId>org.codehaus.gmavenplus</groupId>
+                <artifactId>gmavenplus-plugin</artifactId>
                 <executions>
                     <execution>
                         <id>extract-bundle-symbolicname-and-version</id>
@@ -188,13 +198,15 @@
                             <goal>execute</goal>
                         </goals>
                         <configuration>
-                            <source>
-                                import java.util.jar.Manifest
-                                
-                                Manifest manifest = new Manifest(new FileInputStream(new File(project.basedir, "META-INF/MANIFEST.MF")))
-                                project.properties["bundle-symbolic-name"] = manifest.mainAttributes.getValue("Bundle-SymbolicName").find("^[^;]*") 
-                                project.properties["bundle-version"] = manifest.mainAttributes.getValue("Bundle-Version")
-                            </source>
+                            <scripts>
+                                <script>
+                                    import java.util.jar.Manifest
+                                    
+                                    Manifest manifest = new Manifest(new FileInputStream(new File(project.basedir, "META-INF/MANIFEST.MF")))
+                                    project.properties["bundle-symbolic-name"] = manifest.mainAttributes.getValue("Bundle-SymbolicName").find("^[^;]*") 
+                                    project.properties["bundle-version"] = manifest.mainAttributes.getValue("Bundle-Version")
+                                </script>
+                            </scripts>
                         </configuration>
                     </execution>
                 </executions>
@@ -231,10 +243,15 @@
             <build>
                 <plugins>
                     <plugin>
-                        <artifactId>maven-install-plugin</artifactId>
-                        <configuration>
-                            <createChecksum>true</createChecksum>
-                        </configuration>
+                        <groupId>net.nicoulaj.maven.plugins</groupId>
+                        <artifactId>checksum-maven-plugin</artifactId>
+                        <executions>
+                            <execution>
+                                <goals>
+                                    <goal>artifacts</goal>
+                                </goals>
+                            </execution>
+                        </executions>
                     </plugin>
                 </plugins>
             </build>
diff --git a/modules/tool/axis2-eclipse-service-plugin/src/main/java/org/apache/axis2/tool/core/ClassFileHandler.java b/modules/tool/axis2-eclipse-service-plugin/src/main/java/org/apache/axis2/tool/core/ClassFileHandler.java
index 835356b..c07b6b1 100644
--- a/modules/tool/axis2-eclipse-service-plugin/src/main/java/org/apache/axis2/tool/core/ClassFileHandler.java
+++ b/modules/tool/axis2-eclipse-service-plugin/src/main/java/org/apache/axis2/tool/core/ClassFileHandler.java
@@ -46,7 +46,7 @@
         if (!fileEndpoint.exists()){
             throw new IOException("the location is invalid");
         }
-        final URL[] urlList = {fileEndpoint.toURL()};
+        final URL[] urlList = {fileEndpoint.toURI().toURL()};
         URLClassLoader clazzLoader = AccessController.doPrivileged(new PrivilegedAction<URLClassLoader>() {
 			public URLClassLoader run() {
 				return new URLClassLoader(urlList);
diff --git a/modules/tool/axis2-eclipse-service-plugin/src/main/java/org/apache/axis2/tool/service/eclipse/ui/ServiceXMLGenerationPage.java b/modules/tool/axis2-eclipse-service-plugin/src/main/java/org/apache/axis2/tool/service/eclipse/ui/ServiceXMLGenerationPage.java
index 5c4efb8..0b65b97 100644
--- a/modules/tool/axis2-eclipse-service-plugin/src/main/java/org/apache/axis2/tool/service/eclipse/ui/ServiceXMLGenerationPage.java
+++ b/modules/tool/axis2-eclipse-service-plugin/src/main/java/org/apache/axis2/tool/service/eclipse/ui/ServiceXMLGenerationPage.java
@@ -222,7 +222,7 @@
         //get a URL from the class file location
         try {
             String classFileLocation = getClassFileLocation();
-            URL classFileURL = new File(classFileLocation).toURL();
+            URL classFileURL = new File(classFileLocation).toURI().toURL();
             
            ArrayList listofURLs = new ArrayList();
            listofURLs.add(classFileURL);
@@ -232,7 +232,7 @@
             if (libFileList!=null){
             	int count = libFileList.length;
 				for (int i=0;i<count;i++){
-					listofURLs.add(new File(libFileList[i]).toURL());
+					listofURLs.add(new File(libFileList[i]).toURI().toURL());
             	}
             }
            
diff --git a/modules/tool/axis2-eclipse-service-plugin/src/main/java/org/apache/axis2/tool/service/eclipse/ui/WSDLOptionsPage.java b/modules/tool/axis2-eclipse-service-plugin/src/main/java/org/apache/axis2/tool/service/eclipse/ui/WSDLOptionsPage.java
index 7e68aa3..2347dfe 100644
--- a/modules/tool/axis2-eclipse-service-plugin/src/main/java/org/apache/axis2/tool/service/eclipse/ui/WSDLOptionsPage.java
+++ b/modules/tool/axis2-eclipse-service-plugin/src/main/java/org/apache/axis2/tool/service/eclipse/ui/WSDLOptionsPage.java
@@ -197,7 +197,7 @@
         //get a URL from the class file location
         try {
             String classFileLocation = getClassFileLocation();
-            URL classFileURL = new File(classFileLocation).toURL();
+            URL classFileURL = new File(classFileLocation).toURI().toURL();
             ClassLoader loader = new URLClassLoader(new URL[] { classFileURL });
 
             Class clazz = loader.loadClass(classNameTextBox.getText());
diff --git a/modules/tool/axis2-idea-plugin/idea-plugin-aseembly.xml b/modules/tool/axis2-idea-plugin/idea-plugin-aseembly.xml
index fcd3575..c5aae7b 100644
--- a/modules/tool/axis2-idea-plugin/idea-plugin-aseembly.xml
+++ b/modules/tool/axis2-idea-plugin/idea-plugin-aseembly.xml
@@ -18,6 +18,7 @@
   -->

 

 <assembly>

+    <id>plugin</id>

     <includeBaseDirectory>false</includeBaseDirectory>

     <formats>

         <format>zip</format>

diff --git a/modules/tool/axis2-idea-plugin/pom.xml b/modules/tool/axis2-idea-plugin/pom.xml
index 7c12494..c4562d9 100644
--- a/modules/tool/axis2-idea-plugin/pom.xml
+++ b/modules/tool/axis2-idea-plugin/pom.xml
@@ -23,9 +23,9 @@
     <modelVersion>4.0.0</modelVersion>
     <parent>
         <groupId>org.apache.axis2</groupId>
-        <artifactId>axis2-parent</artifactId>
-        <version>1.7.0-SNAPSHOT</version>
-        <relativePath>../../parent/pom.xml</relativePath>
+        <artifactId>axis2</artifactId>
+        <version>1.8.0-SNAPSHOT</version>
+        <relativePath>../../../pom.xml</relativePath>
     </parent>
     <artifactId>axis2-idea-plugin</artifactId>
     <name>Apache Axis2 - tool - Intellij IDEA Plugin</name>
@@ -45,7 +45,7 @@
         </dependency>
         <dependency>
             <groupId>org.apache.maven</groupId>
-            <artifactId>maven-project</artifactId>
+            <artifactId>maven-core</artifactId>
         </dependency>
         <dependency>
             <groupId>org.apache.maven</groupId>
@@ -85,12 +85,8 @@
             <version>${project.version}</version>
         </dependency>
         <dependency>
-            <groupId>org.apache.geronimo.specs</groupId>
-            <artifactId>geronimo-javamail_1.4_spec</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.geronimo.specs</groupId>
-            <artifactId>geronimo-activation_1.1_spec</artifactId>
+            <groupId>com.sun.mail</groupId>
+            <artifactId>javax.mail</artifactId>
         </dependency>
         <dependency>
             <groupId>com.intellij</groupId>
@@ -118,7 +114,7 @@
         </dependency>
         <dependency>
             <groupId>org.apache.woden</groupId>
-            <artifactId>woden-impl-commons</artifactId>
+            <artifactId>woden-core</artifactId>
         </dependency>
         <dependency>
             <groupId>log4j</groupId>
@@ -152,14 +148,6 @@
             </plugin>
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-compiler-plugin</artifactId>
-                <configuration>
-                    <source>1.5</source>
-                    <target>1.5</target>
-                </configuration>
-            </plugin>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-jar-plugin</artifactId>
                 <configuration>
                     <archive>
@@ -181,6 +169,7 @@
                             <descriptors>
                                 <descriptor>${pom.basedir}/idea-plugin-aseembly.xml</descriptor>
                             </descriptors>
+                            <appendAssemblyId>false</appendAssemblyId>
                         </configuration>
                     </execution>
                 </executions>
@@ -199,10 +188,15 @@
             <build>
                 <plugins>
                     <plugin>
-                        <artifactId>maven-install-plugin</artifactId>
-                        <configuration>
-                            <createChecksum>true</createChecksum>
-                        </configuration>
+                        <groupId>net.nicoulaj.maven.plugins</groupId>
+                        <artifactId>checksum-maven-plugin</artifactId>
+                        <executions>
+                            <execution>
+                                <goals>
+                                    <goal>artifacts</goal>
+                                </goals>
+                            </execution>
+                        </executions>
                     </plugin>
                 </plugins>
             </build>
diff --git a/modules/tool/axis2-idea-plugin/src/main/java/org/apache/axis2/tools/bean/ClassLoadingTestBean.java b/modules/tool/axis2-idea-plugin/src/main/java/org/apache/axis2/tools/bean/ClassLoadingTestBean.java
index 2dfd122..d9320d1 100644
--- a/modules/tool/axis2-idea-plugin/src/main/java/org/apache/axis2/tools/bean/ClassLoadingTestBean.java
+++ b/modules/tool/axis2-idea-plugin/src/main/java/org/apache/axis2/tools/bean/ClassLoadingTestBean.java
@@ -43,7 +43,7 @@
                     if (classPathEntry.startsWith("http://")) {
                         urls[i] = new URL(classPathEntry);
                     } else {
-                        urls[i] = new File(classPathEntry).toURL();
+                        urls[i] = new File(classPathEntry).toURI().toURL();
                     }
                 }
             } catch (MalformedURLException e) {
diff --git a/modules/tool/axis2-idea-plugin/src/main/java/org/apache/axis2/tools/bean/CodegenBean.java b/modules/tool/axis2-idea-plugin/src/main/java/org/apache/axis2/tools/bean/CodegenBean.java
index 4bf0a29..b32ff0c 100644
--- a/modules/tool/axis2-idea-plugin/src/main/java/org/apache/axis2/tools/bean/CodegenBean.java
+++ b/modules/tool/axis2-idea-plugin/src/main/java/org/apache/axis2/tools/bean/CodegenBean.java
@@ -29,14 +29,15 @@
 import org.apache.axis2.util.CommandLineOption;
 import org.apache.axis2.util.CommandLineOptionConstants;
 import org.apache.axis2.util.URLProcessor;
+import org.apache.axis2.wsdl.WSDLUtil;
 import org.apache.axis2.wsdl.codegen.CodeGenConfiguration;
 import org.apache.axis2.wsdl.codegen.CodeGenerationEngine;
+import org.apache.axis2.wsdl.codegen.CodegenConfigLoader;
 
 import javax.wsdl.Definition;
 import javax.wsdl.Port;
 import javax.wsdl.Service;
 import javax.wsdl.WSDLException;
-import javax.wsdl.factory.WSDLFactory;
 import javax.wsdl.xml.WSDLReader;
 import javax.xml.namespace.QName;
 import java.io.File;
@@ -259,7 +260,7 @@
 
             String baseUri;
             if ("file".equals(url.getProtocol())) {
-                baseUri = new File(url.getFile()).getParentFile().toURL().toExternalForm();
+                baseUri = new File(url.getFile()).getParentFile().toURI().toURL().toExternalForm();
             } else {
                 baseUri = url.toExternalForm().substring(0,
                         url.toExternalForm().lastIndexOf("/")
@@ -383,7 +384,8 @@
             if (!"xmlbeans".equals(getDatabindingName())) {
                 Thread.currentThread().setContextClassLoader(Class.class.getClassLoader());
             }
-            CodeGenConfiguration codegenConfig = new CodeGenConfiguration(fillOptionMap());
+            CodeGenConfiguration codegenConfig = new CodeGenConfiguration();
+            CodegenConfigLoader.loadConfig(codegenConfig, fillOptionMap());
             codegenConfig.addAxisService(getAxisService(WSDLFileName));
             codegenConfig.setWsdlDefinition(wsdlDefinition);
             //set the baseURI
@@ -391,7 +393,8 @@
             new CodeGenerationEngine(codegenConfig).generate();
         } catch (Throwable e) {
             try {
-                CodeGenConfiguration codegenConfig = new CodeGenConfiguration(fillOptionMap());
+                CodeGenConfiguration codegenConfig = new CodeGenConfiguration();
+                CodegenConfigLoader.loadConfig(codegenConfig, fillOptionMap());
                 codegenConfig.addAxisService(getAxisService(WSDLFileName));
                 codegenConfig.setWsdlDefinition(wsdlDefinition);
                 //set the baseURI
@@ -412,7 +415,7 @@
 
     public void readWSDL() throws WSDLException {
 
-        WSDLReader reader = WSDLFactory.newInstance().newWSDLReader();
+    	WSDLReader reader = WSDLUtil.newWSDLReaderWithPopulatedExtensionRegistry();
         wsdlDefinition = reader.readWSDL(WSDLFileName) ;
         if (wsdlDefinition != null) {
             wsdlDefinition.setDocumentBaseURI(WSDLFileName);
diff --git a/modules/tool/axis2-idea-plugin/src/main/java/org/apache/ideaplugin/frames/ServiceXMLGenerationPage.java b/modules/tool/axis2-idea-plugin/src/main/java/org/apache/ideaplugin/frames/ServiceXMLGenerationPage.java
index 58be6d5..6451f08 100644
--- a/modules/tool/axis2-idea-plugin/src/main/java/org/apache/ideaplugin/frames/ServiceXMLGenerationPage.java
+++ b/modules/tool/axis2-idea-plugin/src/main/java/org/apache/ideaplugin/frames/ServiceXMLGenerationPage.java
@@ -191,7 +191,7 @@
         //get a URL from the class file location
         try {
             String classFileLocation = archiveBean.getClassLoc().getPath();
-            URL classFileURL = new File(classFileLocation).toURL();
+            URL classFileURL = new File(classFileLocation).toURI().toURL();
 
            ArrayList listofURLs = new ArrayList();
            listofURLs.add(classFileURL);
@@ -206,7 +206,7 @@
             if (libFileList!=null){
                 int count = libFileList.length;
                 for (int i=0;i<count;i++){
-                    listofURLs.add(new File(libFileList[i]).toURL());
+                    listofURLs.add(new File(libFileList[i]).toURI().toURL());
                 }
             }
             txtServiceName.setText("MyService" + count);
diff --git a/modules/tool/axis2-idea-plugin/src/main/java/org/apache/ideaplugin/frames/WSDLFileSelectionPage.java b/modules/tool/axis2-idea-plugin/src/main/java/org/apache/ideaplugin/frames/WSDLFileSelectionPage.java
index c53048e..f844fc7 100644
--- a/modules/tool/axis2-idea-plugin/src/main/java/org/apache/ideaplugin/frames/WSDLFileSelectionPage.java
+++ b/modules/tool/axis2-idea-plugin/src/main/java/org/apache/ideaplugin/frames/WSDLFileSelectionPage.java
@@ -23,12 +23,12 @@
 import org.apache.axis2.tools.component.WizardPanel;
 import org.apache.axis2.tools.idea.WSDLFileFilter;
 import org.apache.axis2.tools.wizardframe.CodegenFrame;
+import org.apache.axis2.wsdl.WSDLUtil;
 import org.apache.ideaplugin.bean.ArchiveBean;
 
 import javax.swing.*;
 import javax.swing.border.EmptyBorder;
 import javax.wsdl.WSDLException;
-import javax.wsdl.factory.WSDLFactory;
 import javax.wsdl.xml.WSDLReader;
 import java.awt.*;
 import java.awt.event.ActionEvent;
@@ -205,7 +205,7 @@
     private void checkWSDLFile(){
         if (txtWSDL.getText().equals("") ) {
             try{
-                WSDLReader reader = WSDLFactory.newInstance().newWSDLReader();
+            	WSDLReader reader = WSDLUtil.newWSDLReaderWithPopulatedExtensionRegistry();
                 reader.readWSDL(txtWSDL.getText().trim()) ;
             }catch(WSDLException e1) {
                 txtWSDL.setText("");
diff --git a/modules/tool/axis2-idea-plugin/src/site/apt/howto.apt b/modules/tool/axis2-idea-plugin/src/site/apt/howto.apt
deleted file mode 100644
index 80a7a4c..0000000
--- a/modules/tool/axis2-idea-plugin/src/site/apt/howto.apt
+++ /dev/null
@@ -1,23 +0,0 @@
- ------
- Maven 2 Aar Plugin: configuration examples
- ------
- Jochen Wiedmann 
- <jochen.wiedmann@gmail.com>
- ------
-
-Introduction
-
-  The Aar plugin allows the packaging of an Axis 2 service aar in 3 different modes:
-
-   * aar (default): generates the aar artifact
-
-   * inplace: package the aar in the source tree
-
-   * exploded : package an exploded aar application
-
-  Each mode is materialized by a goal. For instance, to generate an exploded
-  sar from the current project, one would type
-
-+--------
-  mvn aar:exploded
-+---------
diff --git a/modules/tool/axis2-idea-plugin/src/site/apt/introduction.apt b/modules/tool/axis2-idea-plugin/src/site/apt/introduction.apt
deleted file mode 100644
index 3857db5..0000000
--- a/modules/tool/axis2-idea-plugin/src/site/apt/introduction.apt
+++ /dev/null
@@ -1,15 +0,0 @@
- ------
- Maven 2 Aar Plugin
- ------
- Jochen Wiedmann
- <jochen.wiedmann@gmail.com>
- ------
-
-Introduction
-
-  This plugin generates an Axis 2 service file (AAR file).
-
-  The full description of goals is available {{{howto.html}here}}.
-
-
-
diff --git a/modules/tool/axis2-idea-plugin/src/site/site.xml b/modules/tool/axis2-idea-plugin/src/site/site.xml
deleted file mode 100644
index 70d7f1f..0000000
--- a/modules/tool/axis2-idea-plugin/src/site/site.xml
+++ /dev/null
@@ -1,42 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-
-<!--
-  ~ Licensed to the Apache Software Foundation (ASF) under one
-  ~ or more contributor license agreements. See the NOTICE file
-  ~ distributed with this work for additional information
-  ~ regarding copyright ownership. The ASF licenses this file
-  ~ to you under the Apache License, Version 2.0 (the
-  ~ "License"); you may not use this file except in compliance
-  ~ with the License. You may obtain a copy of the License at
-  ~
-  ~ http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing,
-  ~ software distributed under the License is distributed on an
-  ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  ~ KIND, either express or implied. See the License for the
-  ~ specific language governing permissions and limitations
-  ~ under the License.
-  -->
-
-<project name="Maven Axis 2 AAR Plugin">
-  <bannerLeft>
-    <name>Maven Axis 2 AAR Plugin</name>
-    <src>http://maven.apache.org/images/apache-maven-project.png</src>
-    <href>http://maven.apache.org/</href>
-  </bannerLeft>
-  <bannerRight>
-    <src>http://maven.apache.org/images/maven-small.gif</src>
-  </bannerRight>
-  <body>
-    <links>
-      <item name="Maven 2" href="http://maven.apache.org/maven2/"/>
-    </links>
-
-    <menu name="Overview">
-      <item name="Introduction" href="introduction.html"/>
-      <item name="How to Use" href="howto.html"/>
-    </menu>
-    ${reports}
-  </body>
-</project>
diff --git a/modules/tool/axis2-java2wsdl-maven-plugin/pom.xml b/modules/tool/axis2-java2wsdl-maven-plugin/pom.xml
index 3d7a11a..73fba83 100644
--- a/modules/tool/axis2-java2wsdl-maven-plugin/pom.xml
+++ b/modules/tool/axis2-java2wsdl-maven-plugin/pom.xml
@@ -23,9 +23,9 @@
     <modelVersion>4.0.0</modelVersion>
     <parent>
         <groupId>org.apache.axis2</groupId>
-        <artifactId>axis2-parent</artifactId>
-        <version>1.7.0-SNAPSHOT</version>
-        <relativePath>../../parent/pom.xml</relativePath>
+        <artifactId>axis2</artifactId>
+        <version>1.8.0-SNAPSHOT</version>
+        <relativePath>../../../pom.xml</relativePath>
     </parent>
     <artifactId>axis2-java2wsdl-maven-plugin</artifactId>
     <name>Apache Axis2 - tool - Java2WSDL Maven Plugin</name>
@@ -39,6 +39,12 @@
         <developerConnection>scm:svn:https://svn.apache.org/repos/asf/axis/axis2/java/core/trunk/modules/tool/axis2-java2wsdl-maven-plugin</developerConnection>
         <url>http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/tool/axis2-java2wsdl-maven-plugin</url>
     </scm>
+    <distributionManagement>
+        <site>
+            <id>site</id>
+            <url>scm:svn:https://svn.apache.org/repos/asf/axis/site/axis2/java/core-staging/tools/maven-plugins/axis2-java2wsdl-maven-plugin</url>
+        </site>
+    </distributionManagement>
     <build>
         <sourceDirectory>src/main/java</sourceDirectory>
         <testSourceDirectory>src/test/java</testSourceDirectory>
@@ -74,6 +80,21 @@
                     <goalPrefix>axis2</goalPrefix>
                 </configuration>
             </plugin>
+            <plugin>
+                <artifactId>maven-invoker-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>install</goal>
+                            <goal>integration-test</goal>
+                            <goal>verify</goal>
+                        </goals>
+                        <configuration>
+                            <cloneProjectsTo>${project.build.directory}/it</cloneProjectsTo>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
         </plugins>
     </build>
     <dependencies>
@@ -81,11 +102,23 @@
             <groupId>org.apache.axis2</groupId>
             <artifactId>axis2-java2wsdl</artifactId>
             <version>${project.version}</version>
+            <exclusions>
+                <exclusion>
+                    <groupId>commons-logging</groupId>
+                    <artifactId>commons-logging</artifactId>
+                </exclusion>
+            </exclusions>
         </dependency>
         <dependency>
             <groupId>org.apache.axis2</groupId>
             <artifactId>axis2-adb</artifactId>
             <version>${project.version}</version>
+            <exclusions>
+                <exclusion>
+                    <groupId>commons-logging</groupId>
+                    <artifactId>commons-logging</artifactId>
+                </exclusion>
+            </exclusions>
         </dependency>
         <dependency>
             <groupId>org.apache.maven</groupId>
@@ -93,12 +126,24 @@
         </dependency>
         <dependency>
             <groupId>org.apache.maven</groupId>
-            <artifactId>maven-project</artifactId>
+            <artifactId>maven-core</artifactId>
         </dependency>
-
         <dependency>
-            <groupId>org.apache.maven.shared</groupId>
-            <artifactId>maven-plugin-testing-harness</artifactId>
+            <!-- Maven supports SLF4J -->
+            <groupId>org.slf4j</groupId>
+            <artifactId>jcl-over-slf4j</artifactId>
         </dependency>
     </dependencies>
+    <reporting>
+        <plugins>
+            <plugin>
+                <artifactId>maven-project-info-reports-plugin</artifactId>
+                <reportSets>
+                    <reportSet>
+                        <reports />
+                    </reportSet>
+                </reportSets>
+            </plugin>
+        </plugins>
+    </reporting>
 </project>
diff --git a/modules/tool/axis2-java2wsdl-maven-plugin/src/test/test1/pom.xml b/modules/tool/axis2-java2wsdl-maven-plugin/src/it/test1/pom.xml
similarity index 64%
rename from modules/tool/axis2-java2wsdl-maven-plugin/src/test/test1/pom.xml
rename to modules/tool/axis2-java2wsdl-maven-plugin/src/it/test1/pom.xml
index c1cf26d..a3de66b 100644
--- a/modules/tool/axis2-java2wsdl-maven-plugin/src/test/test1/pom.xml
+++ b/modules/tool/axis2-java2wsdl-maven-plugin/src/it/test1/pom.xml
@@ -21,19 +21,29 @@
 
 <project>
     <modelVersion>4.0.0</modelVersion>
-    <groupId>org.apache.axis2</groupId>
+    <parent>
+        <groupId>@pom.groupId@</groupId>
+        <artifactId>axis2</artifactId>
+        <version>@pom.version@</version>
+    </parent>
     <artifactId>axis2-wsdl2code-maven-plugin-test1</artifactId>
-    <version>SNAPSHOT</version>
     <name>Test 1 of the axis2-wsdl2code-maven-plugin</name>
     <build>
         <plugins>
             <plugin>
-                <groupId>org.apache.axis2</groupId>
+                <groupId>@pom.groupId@</groupId>
                 <artifactId>axis2-java2wsdl-maven-plugin</artifactId>
-                <version>SNAPSHOT</version>
-                <configuration>
-                    <className>org.apache.axis2.maven2.java2wsdl.test.Adder</className>
-                </configuration>
+                <version>@pom.version@</version>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>java2wsdl</goal>
+                        </goals>
+                        <configuration>
+                            <className>org.apache.axis2.maven2.java2wsdl.test.Adder</className>
+                        </configuration>
+                    </execution>
+                </executions>
             </plugin>
         </plugins>
     </build>
diff --git a/modules/tool/axis2-java2wsdl-maven-plugin/src/test/java/org/apache/axis2/maven2/java2wsdl/test/Adder.java b/modules/tool/axis2-java2wsdl-maven-plugin/src/it/test1/src/main/java/org/apache/axis2/maven2/java2wsdl/test/Adder.java
similarity index 100%
rename from modules/tool/axis2-java2wsdl-maven-plugin/src/test/java/org/apache/axis2/maven2/java2wsdl/test/Adder.java
rename to modules/tool/axis2-java2wsdl-maven-plugin/src/it/test1/src/main/java/org/apache/axis2/maven2/java2wsdl/test/Adder.java
diff --git a/modules/tool/axis2-java2wsdl-maven-plugin/src/main/java/org/apache/axis2/maven2/java2wsdl/Java2WSDLMojo.java b/modules/tool/axis2-java2wsdl-maven-plugin/src/main/java/org/apache/axis2/maven2/java2wsdl/Java2WSDLMojo.java
index c198eb7..af5c13f 100644
--- a/modules/tool/axis2-java2wsdl-maven-plugin/src/main/java/org/apache/axis2/maven2/java2wsdl/Java2WSDLMojo.java
+++ b/modules/tool/axis2-java2wsdl-maven-plugin/src/main/java/org/apache/axis2/maven2/java2wsdl/Java2WSDLMojo.java
@@ -229,15 +229,15 @@
                         Java2WSDLConstants.OUTPUT_FILENAME_OPTION,
                         outputFile.getName() );
 
-        Artifact artifact = project.getArtifact();
-        Set artifacts = project.getArtifacts();
-        String[] artifactFileNames = new String[artifacts.size() + (artifact == null ? 0 : 1)];
+        Artifact projectArtifact = project.getArtifact();
+        Set<Artifact> artifacts = project.getArtifacts();
+        String[] artifactFileNames = new String[artifacts.size() + (projectArtifact == null ? 0 : 1)];
         int j = 0;
-        for(Iterator i = artifacts.iterator(); i.hasNext(); j++) {
-            artifactFileNames[j] = ((Artifact) i.next()).getFile().getAbsolutePath();
+        for (Artifact artifact : artifacts) {
+            artifactFileNames[j++] = artifact.getFile().getAbsolutePath();
         }
-        if(artifact != null) {
-            File file = artifact.getFile();
+        if(projectArtifact != null) {
+            File file = projectArtifact.getFile();
             if(file != null){
                 artifactFileNames[j] = file.getAbsolutePath();
             }
diff --git a/modules/tool/axis2-java2wsdl-maven-plugin/src/test/java/org/apache/axis2/maven2/java2wsdl/Java2WSDLMojoTest.java b/modules/tool/axis2-java2wsdl-maven-plugin/src/test/java/org/apache/axis2/maven2/java2wsdl/Java2WSDLMojoTest.java
deleted file mode 100644
index d2b574e..0000000
--- a/modules/tool/axis2-java2wsdl-maven-plugin/src/test/java/org/apache/axis2/maven2/java2wsdl/Java2WSDLMojoTest.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.axis2.maven2.java2wsdl;
-
-import org.apache.maven.plugin.testing.AbstractMojoTestCase;
-import org.apache.maven.plugin.testing.stubs.MavenProjectStub;
-
-import java.io.File;
-
-
-/**
- * Test case for running the java2wsdl goal.
- */
-public class Java2WSDLMojoTest extends AbstractMojoTestCase {
-    private static final String WSDL_FILE = "target/generated-sources/java2wsdl/service.xml";
-
-    /**
-     * Tests running the WSDL generator.
-     */
-    public void testJava() throws Exception {
-        final String dir = "src/test/test1";
-        runTest(dir , "java2wsdl" );
-        assertTrue( new File(dir, WSDL_FILE).exists());
-    }
-
-    protected Java2WSDLMojo newMojo( String pDir, String pGoal ) throws Exception
-    {
-        final File baseDir = new File(new File(getBasedir()), pDir);
-        File testPom = new File( baseDir, "pom.xml" );
-        Java2WSDLMojo mojo = (Java2WSDLMojo) lookupMojo( pGoal, testPom );
-        MavenProjectStub project = new MavenProjectStub(){
-            public File getBasedir() { return baseDir; }
-        };
-        setVariableValueToObject(mojo, "project", project);
-        setVariableValueToObject(mojo, "outputFileName", WSDL_FILE);
-        return mojo;
-    }
-
-    protected void runTest( String pDir, String pGoal )
-        throws Exception
-    {
-        newMojo( pDir, pGoal ).execute();
-    }
-}
diff --git a/modules/tool/axis2-mar-maven-plugin/pom.xml b/modules/tool/axis2-mar-maven-plugin/pom.xml
index 4cc555a..b37be87 100644
--- a/modules/tool/axis2-mar-maven-plugin/pom.xml
+++ b/modules/tool/axis2-mar-maven-plugin/pom.xml
@@ -23,9 +23,9 @@
     <modelVersion>4.0.0</modelVersion>
     <parent>
         <groupId>org.apache.axis2</groupId>
-        <artifactId>axis2-parent</artifactId>
-        <version>1.7.0-SNAPSHOT</version>
-        <relativePath>../../parent/pom.xml</relativePath>
+        <artifactId>axis2</artifactId>
+        <version>1.8.0-SNAPSHOT</version>
+        <relativePath>../../../pom.xml</relativePath>
     </parent>
     <artifactId>axis2-mar-maven-plugin</artifactId>
     <packaging>maven-plugin</packaging>
@@ -37,33 +37,22 @@
         <dependency>
             <groupId>org.apache.maven</groupId>
             <artifactId>maven-plugin-api</artifactId>
-            <version>${maven.version}</version>
         </dependency>
         <dependency>
             <groupId>org.apache.maven</groupId>
-            <artifactId>maven-project</artifactId>
-            <version>${maven.version}</version>
+            <artifactId>maven-core</artifactId>
         </dependency>
         <dependency>
             <groupId>org.apache.maven</groupId>
             <artifactId>maven-artifact</artifactId>
-            <version>${maven.artifact.version}</version>
         </dependency>
         <dependency>
             <groupId>org.apache.maven</groupId>
             <artifactId>maven-archiver</artifactId>
-            <version>${maven.archiver.version}</version>
         </dependency>
         <dependency>
             <groupId>org.codehaus.plexus</groupId>
             <artifactId>plexus-utils</artifactId>
-            <version>${plexus.utils.version}</version>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.maven.shared</groupId>
-            <artifactId>maven-plugin-testing-harness</artifactId>
-            <scope>test</scope>
         </dependency>
     </dependencies>
     <url>http://axis.apache.org/axis2/java/core/</url>
@@ -72,6 +61,12 @@
         <developerConnection>scm:svn:https://svn.apache.org/repos/asf/axis/axis2/java/core/trunk/modules/tool/axis2-mar-maven-plugin</developerConnection>
         <url>http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/tool/axis2-mar-maven-plugin</url>
     </scm>
+    <distributionManagement>
+        <site>
+            <id>site</id>
+            <url>scm:svn:https://svn.apache.org/repos/asf/axis/site/axis2/java/core-staging/tools/maven-plugins/axis2-mar-maven-plugin</url>
+        </site>
+    </distributionManagement>
     <build>
         <plugins>
             <plugin>
@@ -110,4 +105,16 @@
             <email>john.pfeifer@hnpsolutions.com</email>
         </contributor>
     </contributors>
+    <reporting>
+        <plugins>
+            <plugin>
+                <artifactId>maven-project-info-reports-plugin</artifactId>
+                <reportSets>
+                    <reportSet>
+                        <reports />
+                    </reportSet>
+                </reportSets>
+            </plugin>
+        </plugins>
+    </reporting>
 </project>
diff --git a/modules/tool/axis2-mar-maven-plugin/src/main/java/org/apache/axis2/maven2/mar/AbstractMarMojo.java b/modules/tool/axis2-mar-maven-plugin/src/main/java/org/apache/axis2/maven2/mar/AbstractMarMojo.java
index 764a1c2..fc60b75 100644
--- a/modules/tool/axis2-mar-maven-plugin/src/main/java/org/apache/axis2/maven2/mar/AbstractMarMojo.java
+++ b/modules/tool/axis2-mar-maven-plugin/src/main/java/org/apache/axis2/maven2/mar/AbstractMarMojo.java
@@ -30,7 +30,6 @@
 import java.io.File;
 import java.io.IOException;
 import java.util.ArrayList;
-import java.util.Iterator;
 import java.util.List;
 import java.util.Set;
 
@@ -136,13 +135,12 @@
             copyMetaInfFile( moduleXmlFile, moduleFileTarget, existsBeforeCopyingClasses, "module.xml file" );
 
             if(includeDependencies){
-                Set artifacts = project.getArtifacts();
+                Set<Artifact> artifacts = project.getArtifacts();
     
-                List duplicates = findDuplicates( artifacts );
+                List<String> duplicates = findDuplicates( artifacts );
     
-                for ( Iterator iter = artifacts.iterator(); iter.hasNext(); )
+                for (Artifact artifact : artifacts)
                 {
-                	Artifact artifact = (Artifact) iter.next();
                 	String targetFileName = getDefaultFinalName( artifact );
     
                 	getLog().debug( "Processing: " + targetFileName );
@@ -179,13 +177,12 @@
      * @param artifacts set of artifacts
      * @return List of duplicated artifacts
      */
-    private List findDuplicates( Set artifacts )
+    private List<String> findDuplicates( Set<Artifact> artifacts )
     {
-        List duplicates = new ArrayList();
-        List identifiers = new ArrayList();
-        for ( Iterator iter = artifacts.iterator(); iter.hasNext(); )
+        List<String> duplicates = new ArrayList<String>();
+        List<String> identifiers = new ArrayList<String>();
+        for (Artifact artifact : artifacts)
         {
-            Artifact artifact = (Artifact) iter.next();
             String candidate = getDefaultFinalName( artifact );
             if ( identifiers.contains( candidate ) )
             {
diff --git a/modules/tool/axis2-mar-maven-plugin/src/main/java/org/apache/axis2/maven2/mar/MarMojo.java b/modules/tool/axis2-mar-maven-plugin/src/main/java/org/apache/axis2/maven2/mar/MarMojo.java
index 27a003d..cd8d9e7 100644
--- a/modules/tool/axis2-mar-maven-plugin/src/main/java/org/apache/axis2/maven2/mar/MarMojo.java
+++ b/modules/tool/axis2-mar-maven-plugin/src/main/java/org/apache/axis2/maven2/mar/MarMojo.java
@@ -23,6 +23,7 @@
 import org.apache.maven.archiver.MavenArchiver;
 import org.apache.maven.artifact.Artifact;
 import org.apache.maven.artifact.DependencyResolutionRequiredException;
+import org.apache.maven.execution.MavenSession;
 import org.apache.maven.plugin.MojoExecutionException;
 import org.apache.maven.project.MavenProjectHelper;
 import org.codehaus.plexus.archiver.ArchiverException;
@@ -42,6 +43,15 @@
 public class MarMojo extends AbstractMarMojo
 {
     /**
+     * The Maven Session
+     *
+     * @required
+     * @readonly
+     * @parameter expression="${session}"
+     */
+    private MavenSession session;
+    
+    /**
      * The directory for the generated mar.
      * 
      * @parameter expression="${project.build.directory}"
@@ -138,7 +148,7 @@
         jarArchiver.addDirectory( marDirectory );
 
         // create archive
-        archiver.createArchive( project, archive );
+        archiver.createArchive(session, project, archive);
 
         if ( classifier != null )
         {
diff --git a/modules/tool/axis2-repo-maven-plugin/pom.xml b/modules/tool/axis2-repo-maven-plugin/pom.xml
index 124a0fc..c8ced28 100644
--- a/modules/tool/axis2-repo-maven-plugin/pom.xml
+++ b/modules/tool/axis2-repo-maven-plugin/pom.xml
@@ -21,15 +21,16 @@
     <modelVersion>4.0.0</modelVersion>
     <parent>
         <groupId>org.apache.axis2</groupId>
-        <artifactId>axis2-parent</artifactId>
-        <version>1.7.0-SNAPSHOT</version>
-        <relativePath>../../parent/pom.xml</relativePath>
+        <artifactId>axis2</artifactId>
+        <version>1.8.0-SNAPSHOT</version>
+        <relativePath>../../../pom.xml</relativePath>
     </parent>
     <artifactId>axis2-repo-maven-plugin</artifactId>
     <packaging>maven-plugin</packaging>
-    <name>Apache Axis2 - tool - Repository Maven Plugin</name>
+    <name>axis2-repo-maven-plugin</name>
     <description>
-        A Maven 2 plugin for creating Axis 2 repositories from project dependencies
+        axis2-repo-maven-plugin is a Maven plugin that creates Axis2 repositories from project dependencies.
+        It supports both AAR and MAR files.
     </description>
     <dependencies>
         <dependency>
@@ -38,20 +39,60 @@
         </dependency>
         <dependency>
             <groupId>org.apache.maven</groupId>
-            <artifactId>maven-project</artifactId>
+            <artifactId>maven-core</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.maven</groupId>
+            <artifactId>maven-archiver</artifactId>
         </dependency>
         <dependency>
             <groupId>org.apache.maven.shared</groupId>
             <artifactId>maven-common-artifact-filters</artifactId>
-            <version>1.2</version>
+            <version>3.0.1</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.ws.commons.axiom</groupId>
+            <artifactId>axiom-api</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.ws.commons.axiom</groupId>
+            <artifactId>axiom-impl</artifactId>
+            <scope>runtime</scope>
+        </dependency>
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>addressing</artifactId>
+            <version>${project.version}</version>
+            <type>mar</type>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>ping</artifactId>
+            <version>${project.version}</version>
+            <type>mar</type>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>mex</artifactId>
+            <version>${project.version}</version>
+            <type>mar</type>
+            <scope>test</scope>
         </dependency>
     </dependencies>
-    <url>http://axis.apache.org/axis2/java/core/</url>
+    <url>http://axis.apache.org/axis2/java/core/tools/maven-plugins/axis2-repo-maven-plugin/</url>
     <scm>
         <connection>scm:svn:http://svn.apache.org/repos/asf/axis/axis2/java/core/trunk/modules/tool/axis2-repo-maven-plugin</connection>
         <developerConnection>scm:svn:https://svn.apache.org/repos/asf/axis/axis2/java/core/trunk/modules/tool/axis2-repo-maven-plugin</developerConnection>
         <url>http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/tool/axis2-repo-maven-plugin</url>
     </scm>
+    <distributionManagement>
+        <site>
+            <id>site</id>
+            <url>scm:svn:https://svn.apache.org/repos/asf/axis/site/axis2/java/core-staging/tools/maven-plugins/axis2-repo-maven-plugin</url>
+        </site>
+    </distributionManagement>
     <build>
         <plugins>
             <plugin>
@@ -75,14 +116,38 @@
                     <goalPrefix>axis2</goalPrefix>
                 </configuration>
             </plugin>
+            <plugin>
+                <artifactId>maven-invoker-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>install</goal>
+                            <goal>integration-test</goal>
+                            <goal>verify</goal>
+                        </goals>
+                    </execution>
+                </executions>
+                <configuration>
+                    <cloneProjectsTo>${project.build.directory}/it</cloneProjectsTo>
+                </configuration>
+            </plugin>
         </plugins>
     </build>
     <reporting>
         <plugins>
             <plugin>
+                <artifactId>maven-project-info-reports-plugin</artifactId>
+                <reportSets>
+                    <reportSet>
+                        <reports>
+                            <report>index</report>
+                        </reports>
+                    </reportSet>
+                </reportSets>
+            </plugin>
+            <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-plugin-plugin</artifactId>
-                <version>2.6</version>
             </plugin>
         </plugins>
     </reporting>
diff --git a/modules/tool/axis2-repo-maven-plugin/src/it/AXIS2-5782/pom.xml b/modules/tool/axis2-repo-maven-plugin/src/it/AXIS2-5782/pom.xml
new file mode 100644
index 0000000..285b724
--- /dev/null
+++ b/modules/tool/axis2-repo-maven-plugin/src/it/AXIS2-5782/pom.xml
@@ -0,0 +1,71 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  ~ Licensed to the Apache Software Foundation (ASF) under one
+  ~ or more contributor license agreements. See the NOTICE file
+  ~ distributed with this work for additional information
+  ~ regarding copyright ownership. The ASF licenses this file
+  ~ to you under the Apache License, Version 2.0 (the
+  ~ "License"); you may not use this file except in compliance
+  ~ with the License. You may obtain a copy of the License at
+  ~
+  ~ http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing,
+  ~ software distributed under the License is distributed on an
+  ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  ~ KIND, either express or implied. See the License for the
+  ~ specific language governing permissions and limitations
+  ~ under the License.
+  -->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>@pom.groupId@</groupId>
+        <artifactId>axis2</artifactId>
+        <version>@pom.version@</version>
+    </parent>
+    <artifactId>test</artifactId>
+    <dependencies>
+        <dependency>
+            <groupId>@pom.groupId@</groupId>
+            <artifactId>addressing</artifactId>
+            <version>@pom.version@</version>
+            <type>mar</type>
+        </dependency>
+        <dependency>
+            <groupId>@pom.groupId@</groupId>
+            <artifactId>ping</artifactId>
+            <version>@pom.version@</version>
+            <type>mar</type>
+        </dependency>
+        <dependency>
+            <groupId>@pom.groupId@</groupId>
+            <artifactId>mex</artifactId>
+            <version>@pom.version@</version>
+            <type>mar</type>
+        </dependency>
+    </dependencies>
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>@pom.groupId@</groupId>
+                <artifactId>axis2-repo-maven-plugin</artifactId>
+                <version>@pom.version@</version>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>create-repository</goal>
+                        </goals>
+                        <configuration>
+                            <modules>
+                                <!-- Test with additional whitespace -->
+                                addressing,
+                                ping
+                            </modules>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
+</project>
diff --git a/modules/tool/axis2-repo-maven-plugin/src/main/java/org/apache/axis2/maven2/repo/AbstractCreateRepositoryMojo.java b/modules/tool/axis2-repo-maven-plugin/src/main/java/org/apache/axis2/maven2/repo/AbstractCreateRepositoryMojo.java
index ec95985..e29e940 100644
--- a/modules/tool/axis2-repo-maven-plugin/src/main/java/org/apache/axis2/maven2/repo/AbstractCreateRepositoryMojo.java
+++ b/modules/tool/axis2-repo-maven-plugin/src/main/java/org/apache/axis2/maven2/repo/AbstractCreateRepositoryMojo.java
@@ -20,7 +20,13 @@
 package org.apache.axis2.maven2.repo;
 
 import java.io.File;
+import java.io.FileOutputStream;
 import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.net.URL;
+import java.net.URLClassLoader;
+import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.HashMap;
 import java.util.HashSet;
@@ -29,15 +35,26 @@
 import java.util.Map;
 import java.util.Set;
 
+import javax.xml.namespace.QName;
+import javax.xml.stream.XMLStreamException;
+
+import org.apache.axiom.om.OMDocument;
+import org.apache.axiom.om.OMElement;
+import org.apache.axiom.om.OMNode;
+import org.apache.axiom.om.OMXMLBuilderFactory;
 import org.apache.maven.artifact.Artifact;
 import org.apache.maven.plugin.AbstractMojo;
 import org.apache.maven.plugin.MojoExecutionException;
 import org.apache.maven.plugin.MojoFailureException;
+import org.apache.maven.plugin.logging.Log;
 import org.apache.maven.project.MavenProject;
 import org.apache.maven.shared.artifact.filter.collection.ArtifactFilterException;
 import org.apache.maven.shared.artifact.filter.collection.FilterArtifacts;
 import org.apache.maven.shared.artifact.filter.collection.ScopeFilter;
 import org.apache.maven.shared.artifact.filter.collection.TypeFilter;
+import org.codehaus.plexus.archiver.ArchiverException;
+import org.codehaus.plexus.archiver.jar.JarArchiver;
+import org.codehaus.plexus.util.DirectoryScanner;
 import org.codehaus.plexus.util.FileUtils;
 import org.codehaus.plexus.util.StringUtils;
 
@@ -73,6 +90,13 @@
     private String modulesDirectory;
     
     /**
+     * The directory (relative to the repository root) where JAX-WS service JARs will be deployed.
+     * 
+     * @parameter default-value="servicejars"
+     */
+    private String jaxwsServicesDirectory;
+    
+    /**
      * The <tt>axis2.xml</tt> file to be copied into the repository.
      * 
      * @parameter
@@ -80,8 +104,15 @@
     private File axis2xml;
     
     /**
+     * If present, an <tt>axis2.xml</tt> file will be generated (Experimental).
+     * 
+     * @parameter
+     */
+    private GeneratedAxis2Xml generatedAxis2xml;
+    
+    /**
      * The directory (relative to the repository root) where the <tt>axis2.xml</tt> file will be
-     * copied. If this parameter is not set, then the file will be copied into the repository
+     * written. If this parameter is not set, then the file will be written into the repository
      * root.
      * 
      * @parameter
@@ -153,11 +184,50 @@
      */
     private String services;
     
+    /**
+     * A list of JAX-WS service JARs to be generated (by packaging class files from the current
+     * project).
+     * 
+     * @parameter
+     */
+    private JAXWSService[] jaxwsServices;
+    
     protected abstract String getScope();
     
+    protected abstract File getInputDirectory();
+    
     protected abstract File getOutputDirectory();
+    
+    protected abstract File[] getClassDirectories();
 
+    private void addMessageHandlers(OMElement root, MessageHandler[] handlers, String localName) {
+        OMElement parent = root.getFirstChildWithName(new QName(localName + "s"));
+        for (MessageHandler handler : handlers) {
+            OMElement element = parent.getOMFactory().createOMElement(localName, null, parent);
+            element.addAttribute("contentType", handler.getContentType(), null);
+            element.addAttribute("class", handler.getClassName(), null);
+        }
+    }
+    
     public void execute() throws MojoExecutionException, MojoFailureException {
+        Log log = getLog();
+        File inputDirectory = getInputDirectory();
+        File outputDirectory = getOutputDirectory();
+        if (inputDirectory.exists()) {
+            log.info("Copying files from " + inputDirectory);
+            DirectoryScanner ds = new DirectoryScanner();
+            ds.setBasedir(inputDirectory);
+            ds.scan();
+            for (String relativePath : ds.getIncludedFiles()) {
+                try {
+                    FileUtils.copyFile(
+                            new File(inputDirectory, relativePath),
+                            new File(outputDirectory, relativePath));
+                } catch (IOException ex) {
+                    throw new MojoExecutionException("Failed to copy " + relativePath, ex);
+                }
+            }
+        }
         Set<Artifact> artifacts = new HashSet<Artifact>();
         if (useDependencies) {
             artifacts.addAll(projectArtifacts);
@@ -168,7 +238,6 @@
                 artifacts.addAll(project.getAttachedArtifacts());
             }
         }
-        File outputDirectory = getOutputDirectory();
         if (includeModules || includeServices) {
             FilterArtifacts filter = new FilterArtifacts();
             filter.addFilter(new ScopeFilter(getScope(), null));
@@ -191,35 +260,112 @@
                 File file = artifact.getFile();
                 if (file == null || file.isDirectory()) {
                     throw new MojoFailureException("Artifact " + artifact.getId() + " not available. " +
-                    		"This typically means that it is part of the reactor but that the " +
-                    		"package phase has not been executed.");
+                            "This typically means that it is part of the reactor but that the " +
+                            "package phase has not been executed.");
                 }
                 String type = artifact.getType();
                 ArchiveDeployer deployer = deployers.get(type);
                 if (deployer == null) {
                     throw new MojoExecutionException("No deployer found for artifact type " + type);
                 }
-                deployer.deploy(getLog(), artifact);
+                deployer.deploy(log, artifact);
             }
             for (ArchiveDeployer deployer : deployers.values()) {
-                deployer.finish(getLog());
+                deployer.finish(log);
             }
         }
-        if (axis2xml != null) {
-            getLog().info("Copying axis2.xml");
+        if (jaxwsServices != null) {
+            File targetDirectory = new File(outputDirectory, jaxwsServicesDirectory);
+            for (JAXWSService service : jaxwsServices) {
+                String jarName = service.getName() + ".jar";
+                try {
+                    JarArchiver archiver = new JarArchiver();
+                    archiver.setDestFile(new File(targetDirectory, jarName));
+                    String[] packages = service.getPackages();
+                    String[] includes = new String[packages.length];
+                    for (int i=0; i<packages.length; i++) {
+                        includes[i] = packages[i].replace('.', '/') + "/**/*.class";
+                    }
+                    for (File classDirectory : getClassDirectories()) {
+                        archiver.addDirectory(classDirectory, includes, new String[0]);
+                    }
+                    archiver.createArchive();
+                } catch (ArchiverException ex) {
+                    throw new MojoExecutionException("Failed to build " + jarName, ex);
+                } catch (IOException ex) {
+                    throw new MojoExecutionException("Failed to build " + jarName, ex);
+                }
+            }
+        }
+        if (generatedAxis2xml != null || axis2xml != null) {
             File targetDirectory = configurationDirectory == null
                     ? outputDirectory : new File(outputDirectory, configurationDirectory);
-            try {
-                FileUtils.copyFile(axis2xml, new File(targetDirectory, "axis2.xml"));
-            } catch (IOException ex) {
-                throw new MojoExecutionException("Error copying axis2.xml file: " + ex.getMessage(), ex);
+            targetDirectory.mkdirs();
+            File axis2xmlFile = new File(targetDirectory, "axis2.xml");
+            if (axis2xml != null) {
+                log.info("Copying axis2.xml");
+                try {
+                    FileUtils.copyFile(axis2xml, axis2xmlFile);
+                } catch (IOException ex) {
+                    throw new MojoExecutionException("Error copying axis2.xml file: " + ex.getMessage(), ex);
+                }
+            } else {
+                log.info("Generating axis2.xml");
+                try {
+                    FilterArtifacts filter = new FilterArtifacts();
+                    filter.addFilter(new ScopeFilter(getScope(), null));
+                    filter.addFilter(new TypeFilter("jar", null));
+                    List<URL> urls = new ArrayList<URL>();
+                    for (Artifact artifact : filter.filter(projectArtifacts)) {
+                        urls.add(artifact.getFile().toURI().toURL());
+                    }
+                    URLClassLoader classLoader = URLClassLoader.newInstance(urls.toArray(new URL[urls.size()]));
+                    InputStream in = classLoader.getResourceAsStream("org/apache/axis2/deployment/axis2_default.xml");
+                    if (in == null) {
+                        throw new MojoFailureException("The default axis2.xml file could not be found");
+                    }
+                    try {
+                        OMDocument axis2xmlDoc = OMXMLBuilderFactory.createOMBuilder(in).getDocument();
+                        OMElement root = axis2xmlDoc.getOMDocumentElement();
+                        for (Iterator<OMNode> it = root.getDescendants(false); it.hasNext(); ) {
+                            OMNode node = it.next();
+                            if (node instanceof OMElement) {
+                                OMElement element = (OMElement)node;
+                                String classAttr = element.getAttributeValue(new QName("class"));
+                                if (classAttr != null) {
+                                    try {
+                                        classLoader.loadClass(classAttr);
+                                    } catch (ClassNotFoundException ex) {
+                                        it.remove();
+                                    }
+                                }
+                            }
+                        }
+                        addMessageHandlers(root, generatedAxis2xml.getMessageBuilders(), "messageBuilder");
+                        addMessageHandlers(root, generatedAxis2xml.getMessageFormatters(), "messageFormatter");
+                        OutputStream out = new FileOutputStream(axis2xmlFile);
+                        try {
+                            axis2xmlDoc.serialize(out);
+                        } finally {
+                            out.close();
+                        }
+                    } finally {
+                        in.close();
+                    }
+                } catch (ArtifactFilterException ex) {
+                    throw new MojoExecutionException(ex.getMessage(), ex);
+                } catch (IOException ex) {
+                    throw new MojoExecutionException(ex.getMessage(), ex);
+                } catch (XMLStreamException ex) {
+                    throw new MojoExecutionException(ex.getMessage(), ex);
+                }
             }
         }
     }
 
     private void selectArtifacts(Set<Artifact> artifacts, String list, String type) throws MojoFailureException {
         if (list != null) {
-            Set<String> set = new HashSet<String>(Arrays.asList(StringUtils.split(list, ",")));
+            Set<String> set = new HashSet<String>(Arrays.asList(StringUtils.stripAll(StringUtils.split(list, ","))));
             for (Iterator<Artifact> it = artifacts.iterator(); it.hasNext(); ) {
                 Artifact artifact = it.next();
                 if (artifact.getType().equals(type) && !set.remove(artifact.getArtifactId())) {
diff --git a/modules/tool/axis2-repo-maven-plugin/src/main/java/org/apache/axis2/maven2/repo/ArchiveDeployer.java b/modules/tool/axis2-repo-maven-plugin/src/main/java/org/apache/axis2/maven2/repo/ArchiveDeployer.java
index af39a2d..36f9165 100644
--- a/modules/tool/axis2-repo-maven-plugin/src/main/java/org/apache/axis2/maven2/repo/ArchiveDeployer.java
+++ b/modules/tool/axis2-repo-maven-plugin/src/main/java/org/apache/axis2/maven2/repo/ArchiveDeployer.java
@@ -54,7 +54,7 @@
         StringBuilder buffer = new StringBuilder(artifact.getArtifactId());
         if (!stripVersion) {
             buffer.append("-");
-            buffer.append(artifact.getVersion());
+            buffer.append(artifact.getBaseVersion());
         }
         buffer.append(".");
         buffer.append(artifact.getType());
diff --git a/modules/tool/axis2-repo-maven-plugin/src/main/java/org/apache/axis2/maven2/repo/CreateRepositoryMojo.java b/modules/tool/axis2-repo-maven-plugin/src/main/java/org/apache/axis2/maven2/repo/CreateRepositoryMojo.java
index 16b0bb5..6c8b5c6 100644
--- a/modules/tool/axis2-repo-maven-plugin/src/main/java/org/apache/axis2/maven2/repo/CreateRepositoryMojo.java
+++ b/modules/tool/axis2-repo-maven-plugin/src/main/java/org/apache/axis2/maven2/repo/CreateRepositoryMojo.java
@@ -33,19 +33,42 @@
  */
 public class CreateRepositoryMojo extends AbstractCreateRepositoryMojo {
     /**
+     * Input directory with additional files to be copied to the repository.
+     * 
+     * @parameter default-value="src/main/repository"
+     */
+    private File inputDirectory;
+    
+    /**
      * The output directory where the repository will be created.
      * 
      * @parameter default-value="${project.build.directory}/repository"
      */
     private File outputDirectory;
     
+    /**
+     * @parameter expression="${project.build.outputDirectory}"
+     * @readonly
+     */
+    private File buildOutputDirectory;
+    
     @Override
     protected String getScope() {
         return Artifact.SCOPE_RUNTIME;
     }
 
     @Override
+    protected File getInputDirectory() {
+        return inputDirectory;
+    }
+
+    @Override
     protected File getOutputDirectory() {
         return outputDirectory;
     }
+
+    @Override
+    protected File[] getClassDirectories() {
+        return new File[] { buildOutputDirectory };
+    }
 }
diff --git a/modules/tool/axis2-repo-maven-plugin/src/main/java/org/apache/axis2/maven2/repo/CreateTestRepositoryMojo.java b/modules/tool/axis2-repo-maven-plugin/src/main/java/org/apache/axis2/maven2/repo/CreateTestRepositoryMojo.java
index 74d5611..e9e80d9 100644
--- a/modules/tool/axis2-repo-maven-plugin/src/main/java/org/apache/axis2/maven2/repo/CreateTestRepositoryMojo.java
+++ b/modules/tool/axis2-repo-maven-plugin/src/main/java/org/apache/axis2/maven2/repo/CreateTestRepositoryMojo.java
@@ -31,11 +31,18 @@
  * is skipped if the <code>maven.test.skip</code> property is set to <code>true</code>.
  * 
  * @goal create-test-repository
- * @phase generate-test-resources
+ * @phase process-test-classes
  * @requiresDependencyResolution test
  */
 public class CreateTestRepositoryMojo extends AbstractCreateRepositoryMojo {
     /**
+     * Input directory with additional files to be copied to the repository.
+     * 
+     * @parameter default-value="src/test/repository"
+     */
+    private File inputDirectory;
+    
+    /**
      * The output directory where the repository will be created.
      * 
      * @parameter default-value="${project.build.directory}/test-repository"
@@ -48,17 +55,39 @@
      */
     private boolean skip;
     
+    /**
+     * @parameter expression="${project.build.outputDirectory}"
+     * @readonly
+     */
+    private File buildOutputDirectory;
+    
+    /**
+     * @parameter expression="${project.build.testOutputDirectory}"
+     * @readonly
+     */
+    private File buildTestOutputDirectory;
+    
     @Override
     protected String getScope() {
         return Artifact.SCOPE_TEST;
     }
 
     @Override
+    protected File getInputDirectory() {
+        return inputDirectory;
+    }
+
+    @Override
     protected File getOutputDirectory() {
         return outputDirectory;
     }
 
     @Override
+    protected File[] getClassDirectories() {
+        return new File[] { buildOutputDirectory, buildTestOutputDirectory };
+    }
+
+    @Override
     public void execute() throws MojoExecutionException, MojoFailureException {
         if (skip) {
             getLog().info("Tests are skipped");
diff --git a/modules/tool/axis2-repo-maven-plugin/src/main/java/org/apache/axis2/maven2/repo/GeneratedAxis2Xml.java b/modules/tool/axis2-repo-maven-plugin/src/main/java/org/apache/axis2/maven2/repo/GeneratedAxis2Xml.java
new file mode 100644
index 0000000..b926341
--- /dev/null
+++ b/modules/tool/axis2-repo-maven-plugin/src/main/java/org/apache/axis2/maven2/repo/GeneratedAxis2Xml.java
@@ -0,0 +1,40 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.axis2.maven2.repo;
+
+public class GeneratedAxis2Xml {
+    private MessageHandler[] messageBuilders;
+    private MessageHandler[] messageFormatters;
+    
+    public MessageHandler[] getMessageBuilders() {
+        return messageBuilders;
+    }
+    
+    public void setMessageBuilders(MessageHandler[] messageBuilders) {
+        this.messageBuilders = messageBuilders;
+    }
+    
+    public MessageHandler[] getMessageFormatters() {
+        return messageFormatters;
+    }
+    
+    public void setMessageFormatters(MessageHandler[] messageFormatters) {
+        this.messageFormatters = messageFormatters;
+    }
+}
diff --git a/modules/kernel/src/org/apache/axis2/classloader/JarStreamHandlerFactory.java b/modules/tool/axis2-repo-maven-plugin/src/main/java/org/apache/axis2/maven2/repo/JAXWSService.java
similarity index 65%
copy from modules/kernel/src/org/apache/axis2/classloader/JarStreamHandlerFactory.java
copy to modules/tool/axis2-repo-maven-plugin/src/main/java/org/apache/axis2/maven2/repo/JAXWSService.java
index e32813e..ac9ecd3 100644
--- a/modules/kernel/src/org/apache/axis2/classloader/JarStreamHandlerFactory.java
+++ b/modules/tool/axis2-repo-maven-plugin/src/main/java/org/apache/axis2/maven2/repo/JAXWSService.java
@@ -16,17 +16,25 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+package org.apache.axis2.maven2.repo;
 
-package org.apache.axis2.classloader;
-
-import java.net.URLStreamHandler;
-import java.net.URLStreamHandlerFactory;
-
-public class JarStreamHandlerFactory implements URLStreamHandlerFactory {
-    public URLStreamHandler createURLStreamHandler(String protocol) {
-        if("jar".equalsIgnoreCase(protocol)){
-            return new JarFileUrlStreamHandler();
-        }
-        return null;
+public final class JAXWSService {
+    private String name;
+    private String[] packages;
+    
+    public String getName() {
+        return name;
+    
+    }
+    public void setName(String name) {
+        this.name = name;
+    }
+    
+    public String[] getPackages() {
+        return packages;
+    }
+    
+    public void setPackages(String[] packages) {
+        this.packages = packages;
     }
 }
diff --git a/modules/transport/http/src/org/apache/axis2/transport/http/impl/httpclient3/RESTRequestEntity2Impl.java b/modules/tool/axis2-repo-maven-plugin/src/main/java/org/apache/axis2/maven2/repo/MessageHandler.java
similarity index 65%
rename from modules/transport/http/src/org/apache/axis2/transport/http/impl/httpclient3/RESTRequestEntity2Impl.java
rename to modules/tool/axis2-repo-maven-plugin/src/main/java/org/apache/axis2/maven2/repo/MessageHandler.java
index 2ccf3c8..0c7a5ee 100644
--- a/modules/transport/http/src/org/apache/axis2/transport/http/impl/httpclient3/RESTRequestEntity2Impl.java
+++ b/modules/tool/axis2-repo-maven-plugin/src/main/java/org/apache/axis2/maven2/repo/MessageHandler.java
@@ -16,20 +16,25 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+package org.apache.axis2.maven2.repo;
 
-package org.apache.axis2.transport.http.impl.httpclient3;
-
-import org.apache.axis2.transport.http.RESTRequestEntity2;
-import org.apache.commons.httpclient.methods.RequestEntity;
-
-public class RESTRequestEntity2Impl extends RESTRequestEntity2 implements RequestEntity {
-
-    public RESTRequestEntity2Impl(String postRequestBody, String contentType) {
-        super(postRequestBody, contentType);
-    }
-
+public class MessageHandler {
+    private String contentType;
+    private String className;
+    
     public String getContentType() {
-        return getContentTypeAsString();
+        return contentType;
     }
-
+    
+    public void setContentType(String contentType) {
+        this.contentType = contentType;
+    }
+    
+    public String getClassName() {
+        return className;
+    }
+    
+    public void setClassName(String className) {
+        this.className = className;
+    }
 }
diff --git a/modules/tool/axis2-aar-maven-plugin/src/test/resources/services.xml b/modules/tool/axis2-repo-maven-plugin/src/site/site.xml
similarity index 65%
copy from modules/tool/axis2-aar-maven-plugin/src/test/resources/services.xml
copy to modules/tool/axis2-repo-maven-plugin/src/site/site.xml
index 4b6163a..68745c3 100644
--- a/modules/tool/axis2-aar-maven-plugin/src/test/resources/services.xml
+++ b/modules/tool/axis2-repo-maven-plugin/src/site/site.xml
@@ -17,11 +17,14 @@
   ~ specific language governing permissions and limitations
   ~ under the License.
   -->
-<serviceGroup>
-	<service name="SimpleService">
-		<parameter name="ServiceClass">sample.SimpleService</parameter>
-		<operation name="helloService">
-			<messageReceiver class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" />
-		</operation>
-	</service>
-</serviceGroup>
+<project name="axis2-repo-maven-plugin">
+    <body>
+        <menu name="Overview">
+            <item name="About" href="index.html"/>
+            <item name="Plugin Documentation" href="plugin-info.html">
+                <item name="create-repository" href="create-repository-mojo.html"/>
+                <item name="create-test-repository" href="create-test-repository-mojo.html"/>
+            </item>
+        </menu>
+    </body>
+</project>
diff --git a/modules/tool/axis2-wsdl2code-maven-plugin/pom.xml b/modules/tool/axis2-wsdl2code-maven-plugin/pom.xml
index b92f1e3..a9c7062 100644
--- a/modules/tool/axis2-wsdl2code-maven-plugin/pom.xml
+++ b/modules/tool/axis2-wsdl2code-maven-plugin/pom.xml
@@ -23,20 +23,26 @@
     <modelVersion>4.0.0</modelVersion>
     <parent>
         <groupId>org.apache.axis2</groupId>
-        <artifactId>axis2-parent</artifactId>
-        <version>1.7.0-SNAPSHOT</version>
-        <relativePath>../../parent/pom.xml</relativePath>
+        <artifactId>axis2</artifactId>
+        <version>1.8.0-SNAPSHOT</version>
+        <relativePath>../../../pom.xml</relativePath>
     </parent>
     <artifactId>axis2-wsdl2code-maven-plugin</artifactId>
     <name>Apache Axis2 - tool - WSDL2Code Maven Plugin</name>
     <packaging>maven-plugin</packaging>
     <description>The Axis 2 Plugin for Maven allows client side and server side sources from a WSDL.</description>
-    <url>http://axis.apache.org/axis2/java/core/</url>
+    <url>http://axis.apache.org/axis2/java/core/tools/maven-plugins/axis2-wsdl2code-maven-plugin</url>
     <scm>
         <connection>scm:svn:http://svn.apache.org/repos/asf/axis/axis2/java/core/trunk/modules/tool/axis2-wsdl2code-maven-plugin</connection>
         <developerConnection>scm:svn:https://svn.apache.org/repos/asf/axis/axis2/java/core/trunk/modules/tool/axis2-wsdl2code-maven-plugin</developerConnection>
         <url>http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/tool/axis2-wsdl2code-maven-plugin</url>
     </scm>
+    <distributionManagement>
+        <site>
+            <id>site</id>
+            <url>scm:svn:https://svn.apache.org/repos/asf/axis/site/axis2/java/core-staging/tools/maven-plugins/axis2-wsdl2code-maven-plugin</url>
+        </site>
+    </distributionManagement>
     <dependencies>
         <dependency>
             <groupId>org.apache.maven</groupId>
@@ -48,54 +54,117 @@
         </dependency>
         <dependency>
             <groupId>org.apache.maven</groupId>
-            <artifactId>maven-project</artifactId>
+            <artifactId>maven-core</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>maven-shared</artifactId>
+            <version>${project.version}</version>
         </dependency>
         <dependency>
             <groupId>org.apache.axis2</groupId>
             <artifactId>axis2-codegen</artifactId>
             <version>${project.version}</version>
+            <exclusions>
+                <exclusion>
+                    <groupId>commons-logging</groupId>
+                    <artifactId>commons-logging</artifactId>
+                </exclusion>
+            </exclusions>
         </dependency>
         <dependency>
             <groupId>org.apache.axis2</groupId>
             <artifactId>axis2-kernel</artifactId>
             <version>${project.version}</version>
+            <exclusions>
+                <exclusion>
+                    <groupId>commons-logging</groupId>
+                    <artifactId>commons-logging</artifactId>
+                </exclusion>
+            </exclusions>
         </dependency>
         <dependency>
             <groupId>org.apache.axis2</groupId>
             <artifactId>axis2-adb</artifactId>
             <version>${project.version}</version>
+            <exclusions>
+                <exclusion>
+                    <groupId>commons-logging</groupId>
+                    <artifactId>commons-logging</artifactId>
+                </exclusion>
+            </exclusions>
         </dependency>
         <dependency>
             <groupId>org.apache.axis2</groupId>
             <artifactId>axis2-adb-codegen</artifactId>
             <version>${project.version}</version>
+            <exclusions>
+                <exclusion>
+                    <groupId>commons-logging</groupId>
+                    <artifactId>commons-logging</artifactId>
+                </exclusion>
+            </exclusions>
         </dependency>
         <dependency>
             <groupId>org.apache.axis2</groupId>
             <artifactId>axis2-java2wsdl</artifactId>
             <version>${project.version}</version>
+            <exclusions>
+                <exclusion>
+                    <groupId>commons-logging</groupId>
+                    <artifactId>commons-logging</artifactId>
+                </exclusion>
+            </exclusions>
         </dependency>
         <dependency>
             <groupId>org.apache.axis2</groupId>
             <artifactId>axis2-xmlbeans</artifactId>
             <version>${project.version}</version>
+            <exclusions>
+                <exclusion>
+                    <groupId>commons-logging</groupId>
+                    <artifactId>commons-logging</artifactId>
+                </exclusion>
+            </exclusions>
         </dependency>
         <dependency>
-            <groupId>jalopy</groupId>
-            <artifactId>jalopy</artifactId>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>axis2-jaxbri</artifactId>
+            <version>${project.version}</version>
+            <scope>runtime</scope>
+            <exclusions>
+                <exclusion>
+                    <groupId>commons-logging</groupId>
+                    <artifactId>commons-logging</artifactId>
+                </exclusion>
+            </exclusions>
         </dependency>
         <dependency>
-        	<groupId>log4j</groupId>
-            <artifactId>log4j</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.maven.shared</groupId>
-            <artifactId>maven-plugin-testing-harness</artifactId>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>axis2-jibx-codegen</artifactId>
+            <version>${project.version}</version>
+            <scope>runtime</scope>
+            <exclusions>
+                <exclusion>
+                    <groupId>log4j</groupId>
+                    <artifactId>log4j</artifactId>
+                </exclusion>
+            </exclusions>
         </dependency>
         <dependency>
             <groupId>org.codehaus.plexus</groupId>
             <artifactId>plexus-utils</artifactId>
         </dependency>
+        <dependency>
+            <!-- Maven supports SLF4J, so use it. -->
+            <groupId>org.slf4j</groupId>
+            <artifactId>jcl-over-slf4j</artifactId>
+        </dependency>
+        <dependency>
+            <!-- JiBX uses log4j -->
+            <groupId>org.slf4j</groupId>
+            <artifactId>log4j-over-slf4j</artifactId>
+        </dependency>
     </dependencies>
     <build>
         <plugins>
@@ -115,24 +184,45 @@
                 </executions>
             </plugin>
             <plugin>
-                <artifactId>maven-clean-plugin</artifactId>
-                <configuration>
-                    <filesets>
-                        <fileset>
-                            <directory>src/test/test1/target</directory>
-                        </fileset>
-                        <fileset>
-                            <directory>src/test/test2/target</directory>
-                        </fileset>
-                    </filesets>
-                </configuration>
-            </plugin>
-            <plugin>
                 <artifactId>maven-plugin-plugin</artifactId>
                 <configuration>
                     <goalPrefix>axis2</goalPrefix>
                 </configuration>
             </plugin>
+            <plugin>
+                <artifactId>maven-invoker-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>install</goal>
+                            <goal>integration-test</goal>
+                            <goal>verify</goal>
+                        </goals>
+                    </execution>
+                </executions>
+                <configuration>
+                    <cloneProjectsTo>${project.build.directory}/it</cloneProjectsTo>
+                    <goals>
+                        <goal>generate-sources</goal>
+                    </goals>
+                </configuration>
+            </plugin>
         </plugins>
     </build>
+    <reporting>
+        <plugins>
+            <plugin>
+                <artifactId>maven-project-info-reports-plugin</artifactId>
+                <reportSets>
+                    <reportSet>
+                        <reports />
+                    </reportSet>
+                </reportSets>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-plugin-plugin</artifactId>
+            </plugin>
+        </plugins>
+    </reporting>
 </project>
diff --git a/modules/tool/axis2-wsdl2code-maven-plugin/src/it/test1/pom.xml b/modules/tool/axis2-wsdl2code-maven-plugin/src/it/test1/pom.xml
new file mode 100644
index 0000000..66e0547
--- /dev/null
+++ b/modules/tool/axis2-wsdl2code-maven-plugin/src/it/test1/pom.xml
@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+  ~ Licensed to the Apache Software Foundation (ASF) under one
+  ~ or more contributor license agreements. See the NOTICE file
+  ~ distributed with this work for additional information
+  ~ regarding copyright ownership. The ASF licenses this file
+  ~ to you under the Apache License, Version 2.0 (the
+  ~ "License"); you may not use this file except in compliance
+  ~ with the License. You may obtain a copy of the License at
+  ~
+  ~ http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing,
+  ~ software distributed under the License is distributed on an
+  ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  ~ KIND, either express or implied. See the License for the
+  ~ specific language governing permissions and limitations
+  ~ under the License.
+  -->
+
+<project>
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>@pom.groupId@</groupId>
+        <artifactId>axis2</artifactId>
+        <version>@pom.version@</version>
+    </parent>
+    <artifactId>axis2-wsdl2code-maven-plugin-test1</artifactId>
+    <name>Test 1 of the axis2-wsdl2code-maven-plugin</name>
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>@pom.groupId@</groupId>
+                <artifactId>axis2-wsdl2code-maven-plugin</artifactId>
+                <version>@pom.version@</version>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>wsdl2code</goal>
+                        </goals>
+                        <configuration>
+                            <wsdlFile>src/main/axis2/service.wsdl</wsdlFile>
+                            <syncMode>both</syncMode>
+                            <generateServerSide>true</generateServerSide>
+                            <generateServerSideInterface>true</generateServerSideInterface>
+                            <generateAllClasses>true</generateAllClasses>
+                            <generateServicesXml>true</generateServicesXml>
+                            <packageName>demo</packageName>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
+</project>
diff --git a/modules/tool/axis2-wsdl2code-maven-plugin/src/test/test1/src/main/axis2/service.wsdl b/modules/tool/axis2-wsdl2code-maven-plugin/src/it/test1/src/main/axis2/service.wsdl
similarity index 100%
rename from modules/tool/axis2-wsdl2code-maven-plugin/src/test/test1/src/main/axis2/service.wsdl
rename to modules/tool/axis2-wsdl2code-maven-plugin/src/it/test1/src/main/axis2/service.wsdl
diff --git a/modules/tool/axis2-wsdl2code-maven-plugin/src/it/test2/pom.xml b/modules/tool/axis2-wsdl2code-maven-plugin/src/it/test2/pom.xml
new file mode 100644
index 0000000..d93efa8
--- /dev/null
+++ b/modules/tool/axis2-wsdl2code-maven-plugin/src/it/test2/pom.xml
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+  ~ Licensed to the Apache Software Foundation (ASF) under one
+  ~ or more contributor license agreements. See the NOTICE file
+  ~ distributed with this work for additional information
+  ~ regarding copyright ownership. The ASF licenses this file
+  ~ to you under the Apache License, Version 2.0 (the
+  ~ "License"); you may not use this file except in compliance
+  ~ with the License. You may obtain a copy of the License at
+  ~
+  ~ http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing,
+  ~ software distributed under the License is distributed on an
+  ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  ~ KIND, either express or implied. See the License for the
+  ~ specific language governing permissions and limitations
+  ~ under the License.
+  -->
+
+<project>
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>@pom.groupId@</groupId>
+        <artifactId>axis2</artifactId>
+        <version>@pom.version@</version>
+    </parent>
+    <artifactId>axis2-wsdl2code-maven-plugin-test1</artifactId>
+    <name>Test 2 of the axis2-wsdl2code-maven-plugin to test
+        schema import with space character in wsdl location path</name>
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>@pom.groupId@</groupId>
+                <artifactId>axis2-wsdl2code-maven-plugin</artifactId>
+                <version>@pom.version@</version>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>wsdl2code</goal>
+                        </goals>
+                        <configuration>
+                            <wsdlFile>src/main/axis2/test dir/service.wsdl</wsdlFile>
+                            <syncMode>both</syncMode>
+                            <generateServerSide>true</generateServerSide>
+                            <generateServerSideInterface>true</generateServerSideInterface>
+                            <generateAllClasses>true</generateAllClasses>
+                            <generateServicesXml>true</generateServicesXml>
+                            <packageName>demo2</packageName>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
+</project>
diff --git a/modules/tool/axis2-wsdl2code-maven-plugin/src/test/test2/src/main/axis2/test dir/service.wsdl b/modules/tool/axis2-wsdl2code-maven-plugin/src/it/test2/src/main/axis2/test dir/service.wsdl
similarity index 100%
rename from modules/tool/axis2-wsdl2code-maven-plugin/src/test/test2/src/main/axis2/test dir/service.wsdl
rename to modules/tool/axis2-wsdl2code-maven-plugin/src/it/test2/src/main/axis2/test dir/service.wsdl
diff --git a/modules/tool/axis2-wsdl2code-maven-plugin/src/test/test2/src/main/axis2/test dir/service.xsd b/modules/tool/axis2-wsdl2code-maven-plugin/src/it/test2/src/main/axis2/test dir/service.xsd
similarity index 100%
rename from modules/tool/axis2-wsdl2code-maven-plugin/src/test/test2/src/main/axis2/test dir/service.xsd
rename to modules/tool/axis2-wsdl2code-maven-plugin/src/it/test2/src/main/axis2/test dir/service.xsd
diff --git a/modules/tool/axis2-wsdl2code-maven-plugin/src/main/java/org/apache/axis2/maven2/wsdl2code/AbstractWSDL2CodeMojo.java b/modules/tool/axis2-wsdl2code-maven-plugin/src/main/java/org/apache/axis2/maven2/wsdl2code/AbstractWSDL2CodeMojo.java
new file mode 100644
index 0000000..c733849
--- /dev/null
+++ b/modules/tool/axis2-wsdl2code-maven-plugin/src/main/java/org/apache/axis2/maven2/wsdl2code/AbstractWSDL2CodeMojo.java
@@ -0,0 +1,375 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.axis2.maven2.wsdl2code;
+
+import org.apache.axis2.maven.shared.NamespaceMapping;
+import org.apache.axis2.maven.shared.NamespaceMappingUtil;
+import org.apache.axis2.wsdl.codegen.CodeGenConfiguration;
+import org.apache.axis2.wsdl.codegen.CodeGenerationEngine;
+import org.apache.axis2.wsdl.codegen.CodeGenerationException;
+import org.apache.axis2.wsdl.codegen.extension.JiBXExtension;
+import org.apache.maven.plugin.AbstractMojo;
+import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.plugin.MojoFailureException;
+import org.apache.maven.project.MavenProject;
+
+import java.io.File;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Properties;
+
+public abstract class AbstractWSDL2CodeMojo extends AbstractMojo {
+    /**
+     * The maven project.
+     *
+     * @parameter expression="${project}"
+     * @readonly
+     * @required
+     */
+    private MavenProject project;
+
+    /**
+     * The WSDL file, which is being read.
+     *
+     * @parameter expression="${axis2.wsdl2code.wsdlFile}" default-value="src/main/resources/service.wsdl"
+     */
+    private String wsdlFile;
+
+    /**
+     * Package name of the generated sources; will be used to create a package structure below the
+     * output directory.
+     *
+     * @parameter expression="${axis2.wsdl2code.package}"
+     */
+    private String packageName;
+
+    /**
+     * The programming language of the generated sources.
+     *
+     * @parameter expression="${axis2.wsdl2code.language}" default-value="java"
+     */
+    private String language;
+
+    /**
+     * The databinding framework, which is being used by the generated sources.
+     *
+     * @parameter expression="${axis2.wsdl2code.databindingName}" default-value="adb"
+     */
+    private String databindingName;
+
+    /**
+     * The binding file for JiBX databinding.
+     *
+     * @parameter expression="${axis2.wsdl2code.jibxBindingFile}"
+     */
+    private String jibxBindingFile;
+
+    /**
+     * Port name, for which to generate sources. By default, sources will be generated for a
+     * randomly picked port.
+     *
+     * @parameter expression="${axis2.wsdl2code.portName}"
+     */
+    private String portName;
+
+    /**
+     * Service name, for which to generate sources. By default, sources will be generated for all
+     * services.
+     *
+     * @parameter expression="${axis2.wsdl2code.serviceName}"
+     */
+    private String serviceName;
+
+    /**
+     * Mode, for which sources are being generated; either of "sync", "async" or "both".
+     *
+     * @parameter expression="${axis2.wsdl2code.syncMode}" default-value="both"
+     */
+    private String syncMode;
+
+    /**
+     * Whether server side sources are being generated.
+     *
+     * @parameter expression="${axis2.wsdl2code.generateServerSide}" default-value="false"
+     */
+    private boolean generateServerSide;
+
+    /**
+     * Whether a test case is being generated.
+     *
+     * @parameter expression="${axis2.wsdl2code.generateTestCase}" default-value="false"
+     */
+    private boolean generateTestcase;
+
+    /**
+     * Whether a "services.xml" file is being generated.
+     *
+     * @parameter expression="${axis2.wsdl2code.generateServicesXml}" default-value="false"
+     */
+    private boolean generateServicesXml;
+
+    /**
+     * Whether to generate simply all classes. This is only valid in conjunction with
+     * "generateServerSide".
+     *
+     * @parameter expression="${axis2.wsdl2code.generateAllClasses}" default-value="false"
+     */
+    private boolean generateAllClasses;
+
+    /**
+     * Whether to unpack classes.
+     *
+     * @parameter expression="${axis2.wsdl2code.unpackClasses}" default-value="false"
+     */
+    private boolean unpackClasses;
+
+    /**
+     * Whether to generate the server side interface.
+     *
+     * @parameter expression="${axis2.wsdl2code.generateServerSideInterface}" default-value="false"
+     */
+    private boolean generateServerSideInterface = false;
+
+    /**
+     * @parameter expression="${axis2.wsdl2code.repositoryPath}"
+     */
+    private String repositoryPath = null;
+
+    /**
+     * @parameter expression="${axis2.wsdl2code.externalMapping}"
+     */
+    private File externalMapping = null;
+
+    /**
+     * @parameter expression="${axis2.wsdl2code.wsdlVersion}" default-value="1.1"
+     */
+    private String wsdlVersion;
+
+    /**
+     * @parameter expression="${axis2.wsdl2code.targetSourceFolderLocation}" default-value="src"
+     */
+    private String targetSourceFolderLocation;
+
+    /**
+     * @parameter expression="${axis2.wsdl2code.targetResourcesFolderLocation}"
+     */
+    private String targetResourcesFolderLocation = null;
+
+    /**
+     * This will select between wrapped and unwrapped during code generation. Maps to the -uw option
+     * of the command line tool.
+     * 
+     * @parameter expression="${axis2.wsdl2code.unwrap}" default-value="false"
+     */
+    private boolean unwrap = false;
+
+    /**
+     * Set this to true to generate code for all ports.
+     * 
+     * @parameter expression="${axis2.wsdl2code.allPorts}" default-value="false"
+     */
+    private boolean allPorts = false;
+
+    /**
+     * @parameter expression="${axis2.wsdl2code.backwardCompatible}" default-value="false" *
+     */
+    private boolean backwardCompatible = false;
+
+    /**
+     * @parameter expression="${axis2.wsdl2code.flattenFiles}" default-value="false" *
+     */
+    private boolean flattenFiles = false;
+
+    /**
+     * @parameter expression="${axis2.wsdl2code.skipMessageReceiver}" default-value="false" *
+     */
+    private boolean skipMessageReceiver = false;
+
+    /**
+     * @parameter expression="${axis2.wsdl2code.skipBuildXML}" default-value="false" *
+     */
+    private boolean skipBuildXML = false;
+
+    /**
+     * @parameter expression="${axis2.wsdl2code.skipWSDL}" default-value="false" *
+     */
+    private boolean skipWSDL = false;
+
+    /**
+     * @parameter expression="${axis2.wsdl2code.overWrite}" default-value="false" *
+     */
+    private boolean overWrite = false;
+
+    /**
+     * @parameter expression="${axis2.wsdl2code.suppressPrefixes}" default-value="false" *
+     */
+    private boolean suppressPrefixes = false;
+
+    /**
+     * Specify databinding specific extra options
+     *
+     * @parameter expression="${axis2.java2wsdl.options}"
+     */
+    private Properties options;
+
+    /**
+     * Map of namespace URI to packages in the format {@code uri1=package1,uri2=package2,...}. Using
+     * this parameter is discouraged. In general, you should use the {@code namespaceUris}
+     * parameter. However, the latter cannot be set on the command line.
+     * 
+     * @parameter expression="${axis2.wsdl2code.namespaceToPackages}"
+     */
+    private String namespaceToPackages = null;
+
+    /**
+     * Map of namespace URI to packages. Example:
+     * <pre>
+     * &lt;namespaceMappings>
+     *   &lt;namespaceMapping>
+     *     &lt;uri>uri1&lt;/uri>
+     *     &lt;packageName>package1&lt;/packageName>
+     *   &lt;/namespaceMapping>
+     *   ...
+     * &lt;/namespaceMapping></pre>
+     * 
+     * @parameter
+     */
+    private NamespaceMapping[] namespaceMappings;
+    
+    /**
+     * @parameter
+     * @deprecated Use {@code namespaceMappings} instead.
+     */
+    private NamespaceMapping[] namespaceURIs = null;
+    
+    /**
+     * The charset encoding to use for generated source files.
+     * 
+     * @parameter default-value="${project.build.sourceEncoding}"
+     */
+    private String encoding;
+    
+    private CodeGenConfiguration buildConfiguration() throws CodeGenerationException, MojoFailureException {
+        CodeGenConfiguration config = new CodeGenConfiguration();
+        
+        ////////////////////////////////////////////////////////////////
+        //WSDL file name
+        // here we need to set the project base uri to relative paths.
+        if (wsdlFile.indexOf(":") == -1){
+           //i.e this is not a uri
+           File file = new File(wsdlFile);
+           if (!file.isAbsolute()){
+               wsdlFile = project.getBasedir() + File.separator + wsdlFile; 
+           }
+        }
+
+        config.setOutputLocation(getOutputDirectory());
+        config.setDatabindingType(databindingName);
+
+        if ("jibx".equals(databindingName)) {
+            config.getProperties().put(JiBXExtension.BINDING_PATH_OPTION, jibxBindingFile);
+        }
+
+        if ("async".equals(syncMode)) {
+            config.setSyncOn(false);
+            config.setAsyncOn(true);
+        } else if ("sync".equals(syncMode)) {
+            config.setSyncOn(true);
+            config.setAsyncOn(false);
+        } else if ("both".equals(syncMode)) {
+            config.setSyncOn(true);
+            config.setAsyncOn(true);
+        } else {
+            throw new MojoFailureException("Invalid syncMode: " + syncMode +
+                    ", expected either of 'sync', 'async' or 'both'.");
+        }
+
+        config.setPackageName(packageName);
+        config.setOutputLanguage(language);
+        config.setServerSide(generateServerSide);
+        config.setGenerateDeployementDescriptor(generateServicesXml);
+        config.setGenerateAll(generateAllClasses);
+        config.setWriteTestCase(generateTestcase);
+        config.setPackClasses(!unpackClasses);
+        config.setServerSideInterface(generateServerSideInterface);
+        config.setParametersWrapped(!unwrap);
+        config.setAllPorts(allPorts);
+        config.setBackwordCompatibilityMode(backwardCompatible);
+        config.setFlattenFiles(flattenFiles);
+        config.setSkipMessageReceiver(skipMessageReceiver);
+        config.setSkipBuildXML(skipBuildXML);
+        config.setSkipWriteWSDLs(skipWSDL);
+        config.setOverride(overWrite);
+        config.setSuppressPrefixesMode(suppressPrefixes);
+        config.setRepositoryPath(repositoryPath);
+        config.setTypeMappingFile(externalMapping);
+        config.setWSDLVersion(wsdlVersion);
+        config.setSourceLocation(targetSourceFolderLocation);
+        if (targetResourcesFolderLocation != null) {
+            config.setResourceLocation(targetResourcesFolderLocation);
+        }
+
+        if(options != null) {
+            config.getProperties().putAll(options);
+        }
+
+        config.setServiceName(serviceName);
+        config.setPortName(portName);
+        config.setUri2PackageNameMap(getNamespaceToPackagesMap());
+        config.setOutputEncoding(encoding);
+        
+        config.loadWsdl(wsdlFile);
+        
+        return config;
+    }
+
+    private Map<String,String> getNamespaceToPackagesMap() throws MojoFailureException {
+        Map<String,String> map = new HashMap<String,String>();
+        if (namespaceToPackages != null) {
+            for (String pair : namespaceToPackages.trim().split(",")) {
+                String values[] = pair.split("=");
+                map.put(values[0].trim(), values[1].trim());
+            }
+        }
+        NamespaceMappingUtil.addToMap(namespaceURIs, map);
+        NamespaceMappingUtil.addToMap(namespaceMappings, map);
+        return map;
+    }
+
+    public void execute() throws MojoFailureException, MojoExecutionException {
+        File outputDirectory = getOutputDirectory();
+        outputDirectory.mkdirs();
+        addSourceRoot(project, new File(outputDirectory, targetSourceFolderLocation));
+
+        try {
+            new CodeGenerationEngine(buildConfiguration()).generate();
+        } catch (CodeGenerationException e) {
+            Throwable t = e;
+            while (t.getCause() != null) {
+                t = t.getCause();
+            }
+            t.printStackTrace();
+            throw new MojoExecutionException(e.getMessage(), e);
+        }
+    }
+
+    protected abstract File getOutputDirectory();
+    protected abstract void addSourceRoot(MavenProject project, File srcDir);
+}
diff --git a/modules/tool/axis2-wsdl2code-maven-plugin/src/main/java/org/apache/axis2/maven2/wsdl2code/GenerateSourcesMojo.java b/modules/tool/axis2-wsdl2code-maven-plugin/src/main/java/org/apache/axis2/maven2/wsdl2code/GenerateSourcesMojo.java
new file mode 100644
index 0000000..1bfd75b
--- /dev/null
+++ b/modules/tool/axis2-wsdl2code-maven-plugin/src/main/java/org/apache/axis2/maven2/wsdl2code/GenerateSourcesMojo.java
@@ -0,0 +1,48 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.axis2.maven2.wsdl2code;
+
+import java.io.File;
+
+import org.apache.maven.project.MavenProject;
+
+/**
+ * Generates source code from a WSDL.
+ * 
+ * @goal generate-sources
+ * @phase generate-sources
+ */
+public class GenerateSourcesMojo extends AbstractWSDL2CodeMojo {
+    /**
+     * The output directory, where the generated sources are being created.
+     *
+     * @parameter expression="${axis2.wsdl2code.target}" default-value="${project.build.directory}/generated-sources/wsdl2code"
+     */
+    private File outputDirectory;
+    
+    @Override
+    protected File getOutputDirectory() {
+        return outputDirectory;
+    }
+
+    @Override
+    protected void addSourceRoot(MavenProject project, File srcDir) {
+        project.addCompileSourceRoot(srcDir.getPath());
+    }
+}
diff --git a/modules/tool/axis2-wsdl2code-maven-plugin/src/main/java/org/apache/axis2/maven2/wsdl2code/GenerateTestSourcesMojo.java b/modules/tool/axis2-wsdl2code-maven-plugin/src/main/java/org/apache/axis2/maven2/wsdl2code/GenerateTestSourcesMojo.java
new file mode 100644
index 0000000..c190f03
--- /dev/null
+++ b/modules/tool/axis2-wsdl2code-maven-plugin/src/main/java/org/apache/axis2/maven2/wsdl2code/GenerateTestSourcesMojo.java
@@ -0,0 +1,50 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.axis2.maven2.wsdl2code;
+
+import java.io.File;
+
+import org.apache.maven.project.MavenProject;
+
+/**
+ * Generates source code from a WSDL, for use in unit tests. This goal bind by default to the
+ * generate-test-sources phase and adds the sources to the test sources of the project; it is
+ * otherwise identical to the axis2-wsdl2code:generate-sources goal.
+ * 
+ * @goal generate-test-sources
+ * @phase generate-test-sources
+ */
+public class GenerateTestSourcesMojo extends AbstractWSDL2CodeMojo {
+    /**
+     * The output directory, where the generated sources are being created.
+     *
+     * @parameter expression="${axis2.wsdl2code.target}" default-value="${project.build.directory}/generated-test-sources/wsdl2code"
+     */
+    private File outputDirectory;
+    
+    @Override
+    protected File getOutputDirectory() {
+        return outputDirectory;
+    }
+
+    @Override
+    protected void addSourceRoot(MavenProject project, File srcDir) {
+        project.addTestCompileSourceRoot(srcDir.getPath());
+    }
+}
diff --git a/modules/tool/axis2-wsdl2code-maven-plugin/src/main/java/org/apache/axis2/maven2/wsdl2code/WSDL2CodeMojo.java b/modules/tool/axis2-wsdl2code-maven-plugin/src/main/java/org/apache/axis2/maven2/wsdl2code/WSDL2CodeMojo.java
index 7cb8398..37581a7 100644
--- a/modules/tool/axis2-wsdl2code-maven-plugin/src/main/java/org/apache/axis2/maven2/wsdl2code/WSDL2CodeMojo.java
+++ b/modules/tool/axis2-wsdl2code-maven-plugin/src/main/java/org/apache/axis2/maven2/wsdl2code/WSDL2CodeMojo.java
@@ -19,48 +19,20 @@
 
 package org.apache.axis2.maven2.wsdl2code;
 
-import org.apache.axis2.util.CommandLineOption;
-import org.apache.axis2.util.CommandLineOptionConstants;
-import org.apache.axis2.util.CommandLineOptionParser;
-import org.apache.axis2.wsdl.codegen.CodeGenerationEngine;
-import org.apache.axis2.wsdl.codegen.CodeGenerationException;
-import org.apache.maven.artifact.Artifact;
-import org.apache.maven.plugin.AbstractMojo;
-import org.apache.maven.plugin.MojoExecutionException;
-import org.apache.maven.plugin.MojoFailureException;
-import org.apache.maven.plugin.logging.Log;
+import java.io.File;
+
 import org.apache.maven.project.MavenProject;
 
-import java.io.File;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Map;
-import java.util.Properties;
-
-
 /**
- * @description A Mojo for generating Java sources from a WSDL.
+ * Generates source code from a WSDL.
+ * 
  * @goal wsdl2code
  * @phase generate-sources
- * @requiresDependencyResolution test
+ * @deprecated This goal is identical to axis2-wsdl2code:generate-sources; either switch to that
+ *             goal or use the new axis2-wsdl2code:generate-test-sources goal if you need to
+ *             generate code for use in unit tests only.
  */
-public class WSDL2CodeMojo extends AbstractMojo {
-    /**
-     * The maven project.
-     *
-     * @parameter expression="${project}"
-     * @read-only
-     * @required
-     */
-    private MavenProject project;
-
-    /**
-     * The WSDL file, which is being read.
-     *
-     * @parameter expression="${axis2.wsdl2code.wsdlFile}" default-value="src/main/resources/service.wsdl"
-     */
-    private String wsdlFile;
-
+public class WSDL2CodeMojo extends GenerateSourcesMojo {
     /**
      * The output directory, where the generated sources are being created.
      *
@@ -68,597 +40,13 @@
      */
     private File outputDirectory;
 
-    /**
-     * Package name of the generated sources; will be used to create a package structure below the
-     * output directory.
-     *
-     * @parameter expression="${axis2.wsdl2code.package}"     * 
-     */
-    private String packageName;
-
-    /**
-     * The programming language of the generated sources.
-     *
-     * @parameter expression="${axis2.wsdl2code.language}" default-value="java"
-     */
-    private String language;
-
-    /**
-     * The databinding framework, which is being used.
-     *
-     * @parameter expression="${axis2.wsdl2code.databindingName}" default-value="adb"
-     */
-    private String databindingName;
-
-    /**
-     * The binding file for JiBX databinding.
-     *
-     * @parameter expression="${axis2.wsdl2code.jibxBindingFile}"
-     */
-    private String jibxBindingFile;
-
-    /**
-     * Port name, for which to generate sources. By default, sources will be generated for all
-     * ports.
-     *
-     * @parameter expression="${axis2.wsdl2code.portName}"
-     */
-    private String portName;
-
-    /**
-     * Service name, for which to generate sources. By default, sources will be generated for all
-     * services.
-     *
-     * @parameter expression="${axis2.wsdl2code.serviceName}"
-     */
-    private String serviceName;
-
-    /**
-     * Mode, for which sources are being generated; either of "sync", "async" or "both".
-     *
-     * @parameter expression="${axis2.wsdl2code.syncMode}" default-value="both"
-     */
-    private String syncMode;
-
-    /**
-     * Whether server side sources are being generated.
-     *
-     * @parameter expression="${axis2.wsdl2code.generateServerSide}" default-value="false"
-     */
-    private boolean generateServerSide;
-
-    /**
-     * Whether to generate sources for a test case.
-     *
-     * @parameter expression="${axis2.wsdl2code.generateTestCase}" default-value="false"
-     */
-    private boolean generateTestcase;
-
-    /**
-     * Whether to generate a "services.xml" file.
-     *
-     * @parameter expression="${axis2.wsdl2code.generateServicesXml}" default-value="false"
-     */
-    private boolean generateServicesXml;
-
-    /**
-     * Whether to generate simply all classes. This is only valid in conjunction with
-     * "generateServerSide".
-     *
-     * @parameter expression="${axis2.wsdl2code.generateAllClasses}" default-value="false"
-     */
-    private boolean generateAllClasses;
-
-    /**
-     * Whether to unpack classes.
-     *
-     * @parameter expression="${axis2.wsdl2code.unpackClasses}" default-value="false"
-     */
-    private boolean unpackClasses;
-
-    /**
-     * Whether to generate the server side interface.
-     *
-     * @parameter expression="${axis2.wsdl2code.generateServerSideInterface}" default-value="false"
-     */
-    private boolean generateServerSideInterface = false;
-
-    /**
-     * @parameter expression="${axis2.wsdl2code.repositoryPath}"
-     */
-    private String repositoryPath = null;
-
-    /**
-     * @parameter expression="${axis2.wsdl2code.externalMapping}"
-     */
-    private String externalMapping = null;
-
-    /**
-     * @parameter expression="${axis2.wsdl2code.wsdlVersion}"
-     */
-    private String wsdlVersion = null;
-
-    /**
-     * @parameter expression="${axis2.wsdl2code.targetSourceFolderLocation}" default-value="src"
-     */
-    private String targetSourceFolderLocation;
-
-    /**
-     * @parameter expression="${axis2.wsdl2code.targetResourcesFolderLocation}"
-     */
-    private String targetResourcesFolderLocation = null;
-
-    /**
-     * @parameter expression="${axis2.wsdl2code.unwrap}" default-value="false" *
-     */
-    private boolean unwrap = false;
-
-    /**
-     * @parameter expression="${axis2.wsdl2code.allPorts}" default-value="false" *
-     */
-    private boolean allPorts = false;
-
-    /**
-     * @parameter expression="${axis2.wsdl2code.backwardCompatible}" default-value="false" *
-     */
-    private boolean backwardCompatible = false;
-
-    /**
-     * @parameter expression="${axis2.wsdl2code.flattenFiles}" default-value="false" *
-     */
-    private boolean flattenFiles = false;
-
-    /**
-     * @parameter expression="${axis2.wsdl2code.skipMessageReceiver}" default-value="false" *
-     */
-    private boolean skipMessageReceiver = false;
-
-    /**
-     * @parameter expression="${axis2.wsdl2code.skipBuildXML}" default-value="false" *
-     */
-    private boolean skipBuildXML = false;
-
-    /**
-     * @parameter expression="${axis2.wsdl2code.skipWSDL}" default-value="false" *
-     */
-    private boolean skipWSDL = false;
-
-    /**
-     * @parameter expression="${axis2.wsdl2code.overWrite}" default-value="false" *
-     */
-    private boolean overWrite = false;
-
-    /**
-     * @parameter expression="${axis2.wsdl2code.suppressPrefixes}" default-value="false" *
-     */
-    private boolean suppressPrefixes = false;
-
-    /**
-     * Specify databinding specific extra options
-     *
-     * @parameter expression="${axis2.java2wsdl.options}"
-     */
-    private Properties options;
-
-    /** @parameter expression="${axis2.wsdl2code.namespaceToPackages}" */
-    private String namespaceToPackages = null;
-
-    /** @parameter */
-    private NamespaceURIMapping[] namespaceURIs = null;
-    
-    /**
-     * @parameter expression="${axis2.wsdl2code.http-proxy-host}"
-     */
-    private String httpProxyHost = null;
-
-    /**
-     * @parameter expression="${axis2.wsdl2code.http-proxy-port}"
-     */
-    private String httpProxyPort = null;
-
-    /**
-     * @parameter expression="${axis2.wsdl2code.http-proxy-user}"
-     */
-    private String httpProxyUser = null;
-
-    /**
-     * @parameter expression="${axis2.wsdl2code.http-proxy-password}"
-     */
-    private String httpProxyPassword = null;
-
-    /** Fills the option map. This map is passed onto the code generation API to generate the code. */
-    private Map<String,CommandLineOption> fillOptionMap() throws MojoFailureException {
-        Map<String,CommandLineOption> optionMap = new HashMap<String,CommandLineOption>();
-
-        ////////////////////////////////////////////////////////////////
-        //WSDL file name
-        // here we need to set the project base uri to relative paths.
-        if (wsdlFile.indexOf(":") == -1){
-           //i.e this is not a uri
-           File file = new File(wsdlFile);
-           if (!file.isAbsolute()){
-               wsdlFile = project.getBasedir() + File.separator + wsdlFile; 
-           }
-        }
-
-        optionMap.put(
-                CommandLineOptionConstants.WSDL2JavaConstants.WSDL_LOCATION_URI_OPTION,
-                new CommandLineOption(
-                        CommandLineOptionConstants.WSDL2JavaConstants.WSDL_LOCATION_URI_OPTION,
-                        getStringArray(wsdlFile)));
-        //output location
-        optionMap.put(
-                CommandLineOptionConstants.WSDL2JavaConstants.OUTPUT_LOCATION_OPTION,
-                new CommandLineOption(
-                        CommandLineOptionConstants.WSDL2JavaConstants.OUTPUT_LOCATION_OPTION,
-                        getStringArray(outputDirectory.getPath())));
-        //////////////////////////////////////////////////////////////////
-        // Databinding type
-        optionMap.put(
-                CommandLineOptionConstants.WSDL2JavaConstants.DATA_BINDING_TYPE_OPTION,
-                new CommandLineOption(
-                        CommandLineOptionConstants.WSDL2JavaConstants.DATA_BINDING_TYPE_OPTION,
-                        getStringArray(databindingName)));
-
-        if ("jibx".equals(databindingName)) {
-            String key = CommandLineOptionConstants.WSDL2JavaConstants.EXTRA_OPTIONTYPE_PREFIX
-                             + org.apache.axis2.wsdl.codegen.extension.JiBXExtension.BINDING_PATH_OPTION;
-            optionMap.put(key, new CommandLineOption(key, getStringArray(jibxBindingFile)));
-        }
-
-        if ("async".equals(syncMode)) {
-            // Async only option - forcing to generate async methods only
-            optionMap.put(
-                    CommandLineOptionConstants.WSDL2JavaConstants.CODEGEN_ASYNC_ONLY_OPTION,
-                    new CommandLineOption(
-                            CommandLineOptionConstants.WSDL2JavaConstants.CODEGEN_ASYNC_ONLY_OPTION,
-                            new String[0]));
-        } else if ("sync".equals(syncMode)) {
-            // Sync only option - forcing to generate Sync methods only
-            optionMap.put(
-                    CommandLineOptionConstants.WSDL2JavaConstants.CODEGEN_SYNC_ONLY_OPTION,
-                    new CommandLineOption(
-                            CommandLineOptionConstants.WSDL2JavaConstants.CODEGEN_SYNC_ONLY_OPTION,
-                            new String[0]));
-        } else if ("both".equals(syncMode)) {
-            // Do nothing
-        } else {
-            throw new MojoFailureException("Invalid syncMode: " + syncMode +
-                    ", expected either of 'sync', 'async' or 'both'.");
-        }
-
-        //Package
-        optionMap.put(
-                CommandLineOptionConstants.WSDL2JavaConstants.PACKAGE_OPTION,
-                new CommandLineOption(
-                        CommandLineOptionConstants.WSDL2JavaConstants.PACKAGE_OPTION,
-                        getStringArray(packageName)));
-
-        //stub language
-        optionMap.put(
-                CommandLineOptionConstants.WSDL2JavaConstants.STUB_LANGUAGE_OPTION,
-                new CommandLineOption(
-                        CommandLineOptionConstants.WSDL2JavaConstants.STUB_LANGUAGE_OPTION,
-                        getStringArray(language)));
-
-        //server side and generate services.xml options
-        if (generateServerSide) {
-            optionMap.put(
-                    CommandLineOptionConstants.WSDL2JavaConstants.SERVER_SIDE_CODE_OPTION,
-                    new CommandLineOption(
-                            CommandLineOptionConstants.WSDL2JavaConstants.SERVER_SIDE_CODE_OPTION,
-                            new String[0]));
-
-            //services XML generation - effective only when specified as the server side
-            if (generateServicesXml) {
-                optionMap.put(
-                        CommandLineOptionConstants.WSDL2JavaConstants
-                                .GENERATE_SERVICE_DESCRIPTION_OPTION,
-                        new CommandLineOption(
-                                CommandLineOptionConstants.WSDL2JavaConstants
-                                        .GENERATE_SERVICE_DESCRIPTION_OPTION,
-                                new String[0]));
-            }
-            //generate all option - Only valid when generating serverside code
-            if (generateAllClasses) {
-                optionMap.put(
-                        CommandLineOptionConstants.WSDL2JavaConstants.GENERATE_ALL_OPTION,
-                        new CommandLineOption(
-                                CommandLineOptionConstants.WSDL2JavaConstants.GENERATE_ALL_OPTION,
-                                new String[0]));
-            }
-
-        }
-
-        //generate the test case
-        if (generateTestcase) {
-            optionMap.put(
-                    CommandLineOptionConstants.WSDL2JavaConstants.GENERATE_TEST_CASE_OPTION,
-                    new CommandLineOption(
-                            CommandLineOptionConstants.WSDL2JavaConstants.GENERATE_TEST_CASE_OPTION,
-                            new String[0]));
-        }
-
-        //Unwrap classes option - this determines whether the generated classes are inside the stub/MR
-        //or gets generates as seperate classes
-        if (unpackClasses) {
-            optionMap.put(
-                    CommandLineOptionConstants.WSDL2JavaConstants.UNPACK_CLASSES_OPTION,
-                    new CommandLineOption(
-                            CommandLineOptionConstants.WSDL2JavaConstants.UNPACK_CLASSES_OPTION,
-                            new String[0]));
-        }
-
-        //server side interface option
-        if (generateServerSideInterface) {
-            optionMap.put(
-                    CommandLineOptionConstants.WSDL2JavaConstants.SERVER_SIDE_INTERFACE_OPTION,
-                    new CommandLineOption(
-                            CommandLineOptionConstants.WSDL2JavaConstants.SERVER_SIDE_INTERFACE_OPTION,
-                            new String[0]));
-        }
-
-        if (unwrap) {
-            optionMap.put(
-                    CommandLineOptionConstants.WSDL2JavaConstants.UNWRAP_PARAMETERS,
-                    new CommandLineOption(
-                            CommandLineOptionConstants.WSDL2JavaConstants.UNWRAP_PARAMETERS,
-                            new String[0]));
-        }
-
-        if (allPorts) {
-            optionMap.put(
-                    CommandLineOptionConstants.WSDL2JavaConstants.All_PORTS_OPTION,
-                    new CommandLineOption(
-                            CommandLineOptionConstants.WSDL2JavaConstants.All_PORTS_OPTION,
-                            new String[0]));
-        }
-
-        if (backwardCompatible) {
-            optionMap.put(
-                    CommandLineOptionConstants.WSDL2JavaConstants.BACKWORD_COMPATIBILITY_OPTION,
-                    new CommandLineOption(
-                            CommandLineOptionConstants.WSDL2JavaConstants.BACKWORD_COMPATIBILITY_OPTION,
-                            new String[0]));
-        }
-
-        if (flattenFiles) {
-            optionMap.put(
-                    CommandLineOptionConstants.WSDL2JavaConstants.FLATTEN_FILES_OPTION,
-                    new CommandLineOption(
-                            CommandLineOptionConstants.WSDL2JavaConstants.FLATTEN_FILES_OPTION,
-                            new String[0]));
-        }
-
-        if (skipMessageReceiver) {
-            optionMap.put(
-                    CommandLineOptionConstants.WSDL2JavaConstants.NO_MESSAGE_RECEIVER_OPTION_LONG,
-                    new CommandLineOption(
-                            CommandLineOptionConstants.WSDL2JavaConstants.NO_MESSAGE_RECEIVER_OPTION_LONG,
-                            new String[0]));
-        }
-
-        if (skipBuildXML) {
-            optionMap.put(
-                    CommandLineOptionConstants.WSDL2JavaConstants.NO_BUILD_XML_OPTION_LONG,
-                    new CommandLineOption(
-                            CommandLineOptionConstants.WSDL2JavaConstants.NO_BUILD_XML_OPTION_LONG,
-                            new String[0]));
-        }
-
-        if (skipWSDL) {
-            optionMap.put(
-                    CommandLineOptionConstants.WSDL2JavaConstants.NO_WSDLS_OPTION_LONG,
-                    new CommandLineOption(
-                            CommandLineOptionConstants.WSDL2JavaConstants.NO_WSDLS_OPTION_LONG,
-                            new String[0]));
-        }
-
-        if (overWrite) {
-            optionMap.put(
-                    CommandLineOptionConstants.WSDL2JavaConstants.OVERRIDE_OPTION,
-                    new CommandLineOption(
-                            CommandLineOptionConstants.WSDL2JavaConstants.OVERRIDE_OPTION,
-                            new String[0]));
-        }
-
-        if (suppressPrefixes) {
-            optionMap.put(
-                    CommandLineOptionConstants.WSDL2JavaConstants.SUPPRESS_PREFIXES_OPTION,
-                    new CommandLineOption(
-                            CommandLineOptionConstants.WSDL2JavaConstants.SUPPRESS_PREFIXES_OPTION,
-                            new String[0]));
-        }
-
-        if (repositoryPath != null) {
-            optionMap.put(
-                    CommandLineOptionConstants.WSDL2JavaConstants.REPOSITORY_PATH_OPTION,
-                    new CommandLineOption(
-                            CommandLineOptionConstants.WSDL2JavaConstants.REPOSITORY_PATH_OPTION,
-                            new String[]{repositoryPath}));
-        }
-
-        if (externalMapping != null) {
-            optionMap.put(
-                    CommandLineOptionConstants.WSDL2JavaConstants.EXTERNAL_MAPPING_OPTION,
-                    new CommandLineOption(
-                            CommandLineOptionConstants.WSDL2JavaConstants.EXTERNAL_MAPPING_OPTION,
-                            new String[]{externalMapping}));
-        }
-
-        if (wsdlVersion != null) {
-            optionMap.put(
-                    CommandLineOptionConstants.WSDL2JavaConstants.WSDL_VERSION_OPTION,
-                    new CommandLineOption(
-                            CommandLineOptionConstants.WSDL2JavaConstants.WSDL_VERSION_OPTION,
-                            new String[]{wsdlVersion}));
-        }
-
-        optionMap.put(
-                CommandLineOptionConstants.WSDL2JavaConstants.SOURCE_FOLDER_NAME_OPTION,
-                new CommandLineOption(
-                        CommandLineOptionConstants.WSDL2JavaConstants.SOURCE_FOLDER_NAME_OPTION,
-                        new String[]{targetSourceFolderLocation}));
-
-        if (targetResourcesFolderLocation != null) {
-            optionMap.put(
-                    CommandLineOptionConstants.WSDL2JavaConstants.RESOURCE_FOLDER_OPTION,
-                    new CommandLineOption(
-                            CommandLineOptionConstants.WSDL2JavaConstants.RESOURCE_FOLDER_OPTION,
-                            new String[]{targetResourcesFolderLocation}));
-        }
-
-        if(options != null) {
-            for (Map.Entry<?,?> entry : options.entrySet()) {
-                String key = CommandLineOptionConstants.WSDL2JavaConstants.EXTRA_OPTIONTYPE_PREFIX + entry.getKey();
-                String value = (String) entry.getValue();
-                optionMap.put(
-                        key,
-                        new CommandLineOption(
-                                key,
-                                new String[]{value}));
-            }
-        }
-
-        optionMap.put(
-                CommandLineOptionConstants.WSDL2JavaConstants.SERVICE_NAME_OPTION,
-                new CommandLineOption(
-                        CommandLineOptionConstants.WSDL2JavaConstants.SERVICE_NAME_OPTION,
-                        new String[] { serviceName }));
-
-        optionMap.put(
-                CommandLineOptionConstants.WSDL2JavaConstants.PORT_NAME_OPTION,
-                new CommandLineOption(
-                        CommandLineOptionConstants.WSDL2JavaConstants.PORT_NAME_OPTION,
-                        new String[] { portName }));
-        // set the namespaces
-        if (!((namespaceToPackages == null) && (namespaceURIs == null))) {
-            optionMap.put(
-                    CommandLineOptionConstants.WSDL2JavaConstants.NAME_SPACE_TO_PACKAGE_OPTION,
-                    new CommandLineOption(
-                            CommandLineOptionConstants.WSDL2JavaConstants.NAME_SPACE_TO_PACKAGE_OPTION,
-                            new String[] { getNamespaceToPackagesMap() }));
-        }
-        
-        if (httpProxyHost != null) {
-            optionMap
-                    .put(CommandLineOptionConstants.WSDL2JavaConstants.HTTP_PROXY_HOST_OPTION_LONG,
-                            new CommandLineOption(
-                                    CommandLineOptionConstants.WSDL2JavaConstants.HTTP_PROXY_HOST_OPTION_LONG,
-                                    new String[] { httpProxyHost }));
-        }
-
-        if (httpProxyPort != null) {
-            optionMap
-                    .put(CommandLineOptionConstants.WSDL2JavaConstants.HTTP_PROXY_PORT_OPTION_LONG,
-                            new CommandLineOption(
-                                    CommandLineOptionConstants.WSDL2JavaConstants.HTTP_PROXY_PORT_OPTION_LONG,
-                                    new String[] { httpProxyPort }));
-        }
-
-        if (httpProxyUser != null) {
-            optionMap
-                    .put(CommandLineOptionConstants.WSDL2JavaConstants.HTTP_PROXY_USER_OPTION_LONG,
-                            new CommandLineOption(
-                                    CommandLineOptionConstants.WSDL2JavaConstants.HTTP_PROXY_USER_OPTION_LONG,
-                                    new String[] { httpProxyUser }));
-        }
-
-        if (httpProxyPassword != null) {
-            optionMap
-                    .put(CommandLineOptionConstants.WSDL2JavaConstants.HTTP_PROXY_PASSWORD_OPTION_LONG,
-                            new CommandLineOption(
-                                    CommandLineOptionConstants.WSDL2JavaConstants.HTTP_PROXY_PASSWORD_OPTION_LONG,
-                                    new String[] { httpProxyPassword }));
-        }
-        
-        return optionMap;
+    @Override
+    protected File getOutputDirectory() {
+        return outputDirectory;
     }
 
-    private String getNamespaceToPackagesMap() throws MojoFailureException {
-        StringBuffer sb = new StringBuffer();
-        if (namespaceToPackages != null) {
-            sb.append(namespaceToPackages);
-        }
-        if (namespaceURIs != null) {
-            for (int i = 0; i < namespaceURIs.length; i++) {
-                NamespaceURIMapping mapping = namespaceURIs[i];
-                String uri = mapping.getUri();
-                if (uri == null) {
-                    throw new MojoFailureException(
-                            "A namespace to package mapping requires an uri child element.");
-                }
-                String uriPackageName = mapping.getPackageName();
-                if (uriPackageName == null) {
-                    throw new MojoFailureException(
-                            "A namespace to package mapping requires a packageName child element.");
-                }
-                if (sb.length() > 0) {
-                    sb.append(",");
-                }
-                sb.append(uri);
-                sb.append('=');
-                sb.append(uriPackageName);
-            }
-        }
-        return (sb.length() != 0) ? sb.toString() : null;
-    }
-
-    /**
-     * Utility method to convert a string into a single item string[]
-     *
-     * @param value
-     * @return Returns String[].
-     */
-    private String[] getStringArray(String value) {
-        String[] values = new String[1];
-        values[0] = value;
-        return values;
-    }
-
-    public void execute() throws MojoFailureException, MojoExecutionException {
-
-        fixCompileSourceRoots();
-        showDependencies();
-
-        Map<String,CommandLineOption> commandLineOptions = this.fillOptionMap();
-        CommandLineOptionParser parser =
-                new CommandLineOptionParser(commandLineOptions);
-        try {
-            new CodeGenerationEngine(parser).generate();
-        } catch (CodeGenerationException e) {
-            Throwable t = e;
-            while (t.getCause() != null) {
-                t = t.getCause();
-            }
-            t.printStackTrace();
-            throw new MojoExecutionException(e.getMessage(), e);
-        }
-    }
-
-    private void showDependencies() {
-        Log log = getLog();
-        if (!log.isDebugEnabled()) {
-            return;
-        }
-        log.debug("The projects dependency artifacts are: ");
-        for (Iterator<?> iter = project.getDependencyArtifacts().iterator(); iter.hasNext();) {
-            Artifact artifact = (Artifact)iter.next();
-            log.debug("    " + artifact.getGroupId() + ":" + artifact.getArtifactId() +
-                    ":" + artifact.getVersion() + ":" + artifact.getClassifier() +
-                    ":" + artifact.getScope() + ":" + artifact.getType());
-        }
-        log.debug("The projects transitive artifacts are: ");
-        for (Iterator<?> iter = project.getArtifacts().iterator(); iter.hasNext();) {
-            Artifact artifact = (Artifact)iter.next();
-            log.debug("    " + artifact.getGroupId() + ":" + artifact.getArtifactId() +
-                    ":" + artifact.getVersion() + ":" + artifact.getClassifier() +
-                    ":" + artifact.getScope() + ":" + artifact.getType());
-        }
-    }
-
-    private void fixCompileSourceRoots() {
-        File srcDir = new File(outputDirectory, targetSourceFolderLocation);
+    @Override
+    protected void addSourceRoot(MavenProject project, File srcDir) {
         project.addCompileSourceRoot(srcDir.getPath());
-	}
+    }
 }
diff --git a/modules/tool/axis2-wsdl2code-maven-plugin/src/main/resources/META-INF/m2e/lifecycle-mapping-metadata.xml b/modules/tool/axis2-wsdl2code-maven-plugin/src/main/resources/META-INF/m2e/lifecycle-mapping-metadata.xml
new file mode 100644
index 0000000..9df38b5
--- /dev/null
+++ b/modules/tool/axis2-wsdl2code-maven-plugin/src/main/resources/META-INF/m2e/lifecycle-mapping-metadata.xml
@@ -0,0 +1,36 @@
+<?xml version="1.0"?>
+<!--
+  ~ Licensed to the Apache Software Foundation (ASF) under one
+  ~ or more contributor license agreements. See the NOTICE file
+  ~ distributed with this work for additional information
+  ~ regarding copyright ownership. The ASF licenses this file
+  ~ to you under the Apache License, Version 2.0 (the
+  ~ "License"); you may not use this file except in compliance
+  ~ with the License. You may obtain a copy of the License at
+  ~
+  ~ http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing,
+  ~ software distributed under the License is distributed on an
+  ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  ~ KIND, either express or implied. See the License for the
+  ~ specific language governing permissions and limitations
+  ~ under the License.
+  -->
+<lifecycleMappingMetadata>
+    <pluginExecutions>
+        <pluginExecution>
+            <pluginExecutionFilter>
+                <goals>
+                    <goal>generate-sources</goal>
+                    <goal>generate-test-sources</goal>
+                </goals>
+            </pluginExecutionFilter>
+            <action>
+                <execute>
+                    <runOnConfiguration>true</runOnConfiguration>
+                </execute>
+            </action>
+        </pluginExecution>
+    </pluginExecutions>
+</lifecycleMappingMetadata>
diff --git a/modules/tool/axis2-wsdl2code-maven-plugin/src/site/apt/configuration.apt b/modules/tool/axis2-wsdl2code-maven-plugin/src/site/apt/configuration.apt
deleted file mode 100644
index 67da834..0000000
--- a/modules/tool/axis2-wsdl2code-maven-plugin/src/site/apt/configuration.apt
+++ /dev/null
@@ -1,71 +0,0 @@
-Configuration
-
-  The WSDL2Code goal takes the following parameters as input. All parameters can be set from the command line by using
-  properties. For example, the parameter "generateServerSide" may be set using the property
-  "axis2.wsdl2code.generateServerSide". If the parameter isn't set via property or in the POM, then a default
-  value applies.
-
-*-----------------------------+------------------------------------------------+------------------------------------------------+
-| Parameter name              | Command line property                          | Description                                    |
-|                             | Default value                                  |                                                |
-*-----------------------------+------------------------------------------------+------------------------------------------------+
-| databindingName             | ${axis2.wsdl2code.databindingName}             | Data binding framework, which is being used by |
-|                             | adb                                            | the generated sources.                         |
-*-----------------------------+------------------------------------------------+------------------------------------------------+
-| generateAllClasses          | ${axis2.wsdl2code.generateAllClasses}          | Whether to generate simply all classes. This   |
-|                             | false                                          | is only valid in conjunction with              |
-|                             |                                                | "generateServerSide".                          |
-*-----------------------------+------------------------------------------------+------------------------------------------------+
-| generateServerSide          | ${axis2.wsdl2code.generateServerSide}          | Whether server side sources are being          |
-|                             | false                                          | generated.                                     |
-*-----------------------------+------------------------------------------------+------------------------------------------------+
-| generateServerSideInterface | ${axis2.wsdl2code.generateServerSideInterface} | Whether to generate the server side            |
-|                             | false                                          | interface.                                     |
-*-----------------------------+------------------------------------------------+------------------------------------------------+
-| generateServicesXml         | ${axis2.wsdl2code.generateServicesXml}         | Whether a "services.xml" file is being         |
-|                             | false                                          | generated.                                     |
-*-----------------------------+------------------------------------------------+------------------------------------------------+
-| generateTestcase            | ${axis2.wsdl2code.generateTestCase}            | Whether a test case is being generated.        |
-|                             | false                                          |                                                |
-*-----------------------------+------------------------------------------------+------------------------------------------------+
-| language                    | ${axis2.wsdl2code.language}                    | Programming language of the generated sources. |
-|                             | java                                           |                                                |
-*-----------------------------+------------------------------------------------+------------------------------------------------+
-| namespaceToPackages         | ${axis2.wsdl2code.namespaceToPackages}         | Map of namespace URI to packages in the format |
-|                             |                                                | uri1=package1,uri2=package2,...                |
-|                             |                                                | Using this parameter is discouraged. In        |
-|                             |                                                | general, you should use the                    |
-|                             |                                                | namespaceUris parameter. However, the latter   |
-|                             |                                                | cannot be set on the command line.             |
-*-----------------------------+------------------------------------------------+------------------------------------------------+
-| namespaceURIs               |                                                | Map of namespace URI to packages. Example:     |
-|                             |                                                | \<namespaceURIs\>                              |
-|                             |                                                |   \<namespaceURI\>                             |
-|                             |                                                |     \<uri\>uri1\</uri1\>                       |
-|                             |                                                |     \<package\>package1\</package\>            |
-|                             |                                                |   \</namespaceURI\>                            |
-|                             |                                                |   ...                                          |
-|                             |                                                | \</namespaceURIs\>                             |
-*-----------------------------+------------------------------------------------+------------------------------------------------+
-| outputDirectory             | ${axis2.wsdl2code.target}                      | Target directory, where sources are being      |
-|                             | target/generated-sources/axis2/wsdl2code       | generated.                                     |
-*-----------------------------+------------------------------------------------+------------------------------------------------+
-| packageName                 | ${axis2.wsdl2code.package}                     | Package name of the generated sources.         |
-*-----------------------------+------------------------------------------------+------------------------------------------------+
-| portName                    | ${axis2.wsdl2code.portName}                    | Port name, for which sources are being         |
-|                             |                                                | generated. By default, sources are generated   |
-|                             |                                                | for all ports.                                 |
-*-----------------------------+------------------------------------------------+------------------------------------------------+
-| serviceName                 | ${axis2.wsdl2code.serviceName}                 | Service name, for which sources are being      |
-|                             |                                                | generated. By default, sources are generated   |
-|                             |                                                | for all services.                              |
-*-----------------------------+------------------------------------------------+------------------------------------------------+
-| syncMode                    | ${axis2.wsdl2code.syncMode}                    | Sync mode, for which sources are being         |
-|                             | both                                           | generated; either of "sync", "async", or       |
-|                             |                                                | "both" (default).                              |
-*-----------------------------+------------------------------------------------+------------------------------------------------+
-| unpackClasses               | ${axis2.wsdl2code.unpackClasses}               | Whether to unpack classes.                     |
-*-----------------------------+------------------------------------------------+------------------------------------------------|
-| wsdlFile                    | ${axis2.wsdl2code.wsdl}                        | Location of the WSDL file, which is read as    |
-|                             | src/main/axis2/service.wsdl                    | input.                                         |
-*-----------------------------+------------------------------------------------+------------------------------------------------+
diff --git a/modules/tool/axis2-wsdl2code-maven-plugin/src/site/apt/goals.apt b/modules/tool/axis2-wsdl2code-maven-plugin/src/site/apt/goals.apt
deleted file mode 100644
index 90e0f6d..0000000
--- a/modules/tool/axis2-wsdl2code-maven-plugin/src/site/apt/goals.apt
+++ /dev/null
@@ -1,55 +0,0 @@
- ------
- Maven 2 WSDL2Code Plugin: configuration examples
- ------
- Jochen Wiedmann 
- <jochen.wiedmann@gmail.com>
- ------
-
-Goals
-
-  The WSDl2Code offers a single goal:
-
-   * wsdl2code (default): Reads the WSDL and generates code.
-
-  To run the plugin, add the following section to your POM:
-
-------------------------
-  <build>
-    <plugins>
-      <plugin>
-        <groupId>org.apache.axis2.maven2</groupId>
-        <artifactId>axis2-wsdl2code-maven-plugin</artifactId>
-        <executions>
-          <execution>
-            <goals>
-              <goal>wsdl2code</goal>
-            </goals>
-          </execution>
-          <configuration>
-            <packageName>com.foo.myservice</packageName>
-          </configuration>
-        </executions>
-      </plugin>
-    </plugins>
-  </build>
-------------------------
-
-  The plugin will be invoked automatically in the generate-sources
-  phase. You can also invoke it directly from the command line by
-  running the command
-
-+--------
-  mvn wsdl2code:wsdl2code
-+---------
-
-
-The WSDL2Code Goal
-
-  By default, the plugin reads the file <<<src/main/axis2/service.wsdl>>>.
-  Sources for the Java programming language and the ADB data binding are
-  generated into <<<target/generated-sources/axis2/wsdl2code>>>.
-  Note the configuration element <<<packageName>>> above, which sets
-  the package name, thus a subdirectory.
-
-  See the detailed documentation on {{{configuration.html}properties}} for
-  how to configure the goal.
diff --git a/modules/tool/axis2-wsdl2code-maven-plugin/src/site/apt/introduction.apt b/modules/tool/axis2-wsdl2code-maven-plugin/src/site/apt/introduction.apt
deleted file mode 100644
index 031ddd9..0000000
--- a/modules/tool/axis2-wsdl2code-maven-plugin/src/site/apt/introduction.apt
+++ /dev/null
@@ -1,14 +0,0 @@
- ------
- Maven 2 WSDL2Code Plugin
- ------
- Jochen Wiedmann
- <jochen.wiedmann@gmail.com>
- ------
-
-Introduction
-
-  This plugin takes as input a WSDL and generates client
-  and server stubs for calling or implementing a web service
-  matching the WSDL.
-
-  The full description of goals is available {{{goals.html}here}}.
diff --git a/modules/webapp/src/main/webapp/axis2-web/disengage.jsp b/modules/tool/axis2-wsdl2code-maven-plugin/src/site/markdown/index.md
similarity index 77%
copy from modules/webapp/src/main/webapp/axis2-web/disengage.jsp
copy to modules/tool/axis2-wsdl2code-maven-plugin/src/site/markdown/index.md
index 0c5c055..ae06721 100644
--- a/modules/webapp/src/main/webapp/axis2-web/disengage.jsp
+++ b/modules/tool/axis2-wsdl2code-maven-plugin/src/site/markdown/index.md
@@ -1,4 +1,4 @@
-<%--
+<!--
   ~ Licensed to the Apache Software Foundation (ASF) under one
   ~ or more contributor license agreements. See the NOTICE file
   ~ distributed with this work for additional information
@@ -15,8 +15,13 @@
   ~ KIND, either express or implied. See the License for the
   ~ specific language governing permissions and limitations
   ~ under the License.
-  --%>
-<%@ page contentType="text/html;charset=UTF-8" language="java" %>
-<jsp:include page="include/adminheader.jsp"/>
-<%=request.getSession().getAttribute("status")%>
-<jsp:include page="include/adminfooter.jsp"/>
\ No newline at end of file
+  -->
+
+About
+-----
+
+This plugin takes as input a WSDL and generates client
+and server stubs for calling or implementing a web service
+matching the WSDL.
+
+The full description of goals is available [here](plugin-info.html).
diff --git a/modules/tool/axis2-wsdl2code-maven-plugin/src/site/markdown/usage.md b/modules/tool/axis2-wsdl2code-maven-plugin/src/site/markdown/usage.md
new file mode 100644
index 0000000..d740b4e
--- /dev/null
+++ b/modules/tool/axis2-wsdl2code-maven-plugin/src/site/markdown/usage.md
@@ -0,0 +1,56 @@
+<!--
+  ~ Licensed to the Apache Software Foundation (ASF) under one
+  ~ or more contributor license agreements. See the NOTICE file
+  ~ distributed with this work for additional information
+  ~ regarding copyright ownership. The ASF licenses this file
+  ~ to you under the Apache License, Version 2.0 (the
+  ~ "License"); you may not use this file except in compliance
+  ~ with the License. You may obtain a copy of the License at
+  ~
+  ~ http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing,
+  ~ software distributed under the License is distributed on an
+  ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  ~ KIND, either express or implied. See the License for the
+  ~ specific language governing permissions and limitations
+  ~ under the License.
+  -->
+
+Usage
+-----
+
+axis2-wsdl2code-maven-plugin offers to goals: `generate-sources` and `generate-test-sources`.
+Both read a given WSDL and generate source code, but they differ in the phases in which they
+expect to be executed. Use `generate-sources` if the generated classes should become part of the
+artifact produced by the Maven module; use `generate-test-sources` if the generated code is only
+used by the unit tests.
+
+To run the plugin, add the following section to your POM:
+
+    <build>
+      <plugins>
+        <plugin>
+          <groupId>org.apache.axis2</groupId>
+          <artifactId>axis2-wsdl2code-maven-plugin</artifactId>
+          <executions>
+            <execution>
+              <goals>
+                <goal>generate-sources</goal>
+              </goals>
+              <configuration>
+                <packageName>com.foo.myservice</packageName>
+                <wsdlFile>src/main/wsdl/myservice.wsdl</wsdlFile>
+                <databindingName>xmlbeans</databindingName>
+              </configuration>
+            </execution>
+          </executions>
+        </plugin>
+      </plugins>
+    </build>
+
+The plugin will be invoked automatically in the generate-sources
+phase.
+
+See the detailed documentation on [properties](wsdl2code-mojo.html) for
+how to configure the goal.
diff --git a/modules/tool/axis2-wsdl2code-maven-plugin/src/site/site.xml b/modules/tool/axis2-wsdl2code-maven-plugin/src/site/site.xml
index 6820e4d..4f875c3 100644
--- a/modules/tool/axis2-wsdl2code-maven-plugin/src/site/site.xml
+++ b/modules/tool/axis2-wsdl2code-maven-plugin/src/site/site.xml
@@ -19,28 +19,15 @@
   ~ under the License.
   -->
 
-<project name="Maven Axis 2 WSDL2Code Plugin">
-  <bannerLeft>
-    <name>Maven Axis 2 WSDL2Code Plugin</name>
-    <src>http://maven.apache.org/images/apache-maven-project.png</src>
-    <href>http://maven.apache.org/</href>
-  </bannerLeft>
-  <bannerRight>
-    <src>http://maven.apache.org/images/maven-small.gif</src>
-  </bannerRight>
-  <body>
-    <links>
-      <item name="Apache" href="http://www.apache.org/"/>
-      <item name="Webservices" href="http://ws.apache.org/"/>
-      <item name="Axis 2" href="http://ws.apache.org/axis2/"/>
-      <item name="Maven 2" href="http://maven.apache.org/maven2/"/>
-    </links>
-
-    <menu name="Overview">
-      <item name="Introduction" href="introduction.html"/>
-      <item name="How to Use" href="howto.html"/>
-      <item name="Configuration" href="configuration.html"/>
-    </menu>
-    ${reports}
-  </body>
+<project name="axis2-wsdl2code-maven-plugin">
+    <body>
+        <menu name="Overview">
+            <item name="About" href="index.html"/>
+            <item name="Usage" href="usage.html"/>
+            <item name="Plugin Documentation" href="plugin-info.html">
+                <item name="generate-sources" href="generate-sources-mojo.html"/>
+                <item name="generate-test-sources" href="generate-test-sources-mojo.html"/>
+            </item>
+        </menu>
+    </body>
 </project>
diff --git a/modules/tool/axis2-wsdl2code-maven-plugin/src/test/java/org/apache/axis2/maven2/wsdl2code/WSDL2CodeMojoTest.java b/modules/tool/axis2-wsdl2code-maven-plugin/src/test/java/org/apache/axis2/maven2/wsdl2code/WSDL2CodeMojoTest.java
deleted file mode 100644
index 04833e0..0000000
--- a/modules/tool/axis2-wsdl2code-maven-plugin/src/test/java/org/apache/axis2/maven2/wsdl2code/WSDL2CodeMojoTest.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.axis2.maven2.wsdl2code;
-
-import org.apache.maven.plugin.testing.AbstractMojoTestCase;
-import org.apache.maven.plugin.testing.stubs.MavenProjectStub;
-
-import java.io.File;
-import java.util.HashSet;
-
-/** Test class for running the wsdl2code mojo. */
-public class WSDL2CodeMojoTest extends AbstractMojoTestCase {
-    /** Tests running the java generator. */
-    public void testJava() throws Exception {
-        runTest("src/test/test1", "wsdl2code", "src/main/axis2/service.wsdl");
-    }
-
-    /** This test is added to test wsdl2codegen when there is schema import
-     * involved and the wsdl path contains space character */
-    public void testSchemaImport() throws Exception {
-        runTest("src/test/test2", "wsdl2code", "src/main/axis2/test dir/service.wsdl");
-    }
-
-    protected WSDL2CodeMojo newMojo(String pDir, String pGoal, String baseFilePath) throws Exception {
-        File baseDir = new File(new File(getBasedir()), pDir);
-        File testPom = new File(baseDir, "pom.xml");
-        WSDL2CodeMojo mojo = (WSDL2CodeMojo)lookupMojo(pGoal, testPom);
-        MavenProjectStub project = new MavenProjectStub();
-        project.setDependencyArtifacts(new HashSet());
-        setVariableValueToObject(mojo, "project", project);
-        setVariableValueToObject(mojo, "wsdlFile",
-                                 new File(baseDir, baseFilePath).getAbsolutePath());
-        setVariableValueToObject(mojo, "outputDirectory",
-                                 new File(baseDir, "target/generated-sources/axis2/wsdl2code"));
-        setVariableValueToObject(mojo, "syncMode", "both");
-        setVariableValueToObject(mojo, "databindingName", "adb");
-        setVariableValueToObject(mojo, "language", "java");
-        // "src" is the default, but we need to set this explicitly because of MPLUGINTESTING-7
-        setVariableValueToObject(mojo, "targetSourceFolderLocation", "src");
-        return mojo;
-    }
-
-    protected void runTest(String pDir, String pGoal, String baseFilePath)
-            throws Exception {
-        newMojo(pDir, pGoal, baseFilePath).execute();
-    }
-}
diff --git a/modules/tool/axis2-wsdl2code-maven-plugin/src/test/resources/log4j.properties b/modules/tool/axis2-wsdl2code-maven-plugin/src/test/resources/log4j.properties
index 1e4804f..79942cf 100644
--- a/modules/tool/axis2-wsdl2code-maven-plugin/src/test/resources/log4j.properties
+++ b/modules/tool/axis2-wsdl2code-maven-plugin/src/test/resources/log4j.properties
@@ -24,7 +24,6 @@
 
 # Set the enterprise logger priority to FATAL
 log4j.logger.org.apache.axis2.enterprise=FATAL
-log4j.logger.de.hunsicker.jalopy.io=FATAL
 log4j.logger.httpclient.wire.header=FATAL
 log4j.logger.org.apache.commons.httpclient=FATAL
 
diff --git a/modules/tool/axis2-wsdl2code-maven-plugin/src/test/test1/pom.xml b/modules/tool/axis2-wsdl2code-maven-plugin/src/test/test1/pom.xml
deleted file mode 100644
index 81f03c5..0000000
--- a/modules/tool/axis2-wsdl2code-maven-plugin/src/test/test1/pom.xml
+++ /dev/null
@@ -1,44 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<!--
-  ~ Licensed to the Apache Software Foundation (ASF) under one
-  ~ or more contributor license agreements. See the NOTICE file
-  ~ distributed with this work for additional information
-  ~ regarding copyright ownership. The ASF licenses this file
-  ~ to you under the Apache License, Version 2.0 (the
-  ~ "License"); you may not use this file except in compliance
-  ~ with the License. You may obtain a copy of the License at
-  ~
-  ~ http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing,
-  ~ software distributed under the License is distributed on an
-  ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  ~ KIND, either express or implied. See the License for the
-  ~ specific language governing permissions and limitations
-  ~ under the License.
-  -->
-
-<project>
-    <modelVersion>4.0.0</modelVersion>
-    <groupId>org.apache.axis2.maven2</groupId>
-    <artifactId>axis2-wsdl2code-maven-plugin-test1</artifactId>
-    <version>SNAPSHOT</version>
-    <name>Test 1 of the axis2-wsdl2code-maven-plugin</name>
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.axis2</groupId>
-                <artifactId>axis2-wsdl2code-maven-plugin</artifactId>
-                <version>SNAPSHOT</version>
-                <configuration>
-                    <generateServerSide>true</generateServerSide>
-                    <generateServerSideInterface>true</generateServerSideInterface>
-                    <generateAllClasses>true</generateAllClasses>
-                    <generateServicesXml>true</generateServicesXml>
-                    <packageName>demo</packageName>
-                </configuration>
-            </plugin>
-        </plugins>
-    </build>
-</project>
diff --git a/modules/tool/axis2-wsdl2code-maven-plugin/src/test/test2/pom.xml b/modules/tool/axis2-wsdl2code-maven-plugin/src/test/test2/pom.xml
deleted file mode 100644
index 9880071..0000000
--- a/modules/tool/axis2-wsdl2code-maven-plugin/src/test/test2/pom.xml
+++ /dev/null
@@ -1,45 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<!--
-  ~ Licensed to the Apache Software Foundation (ASF) under one
-  ~ or more contributor license agreements. See the NOTICE file
-  ~ distributed with this work for additional information
-  ~ regarding copyright ownership. The ASF licenses this file
-  ~ to you under the Apache License, Version 2.0 (the
-  ~ "License"); you may not use this file except in compliance
-  ~ with the License. You may obtain a copy of the License at
-  ~
-  ~ http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing,
-  ~ software distributed under the License is distributed on an
-  ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  ~ KIND, either express or implied. See the License for the
-  ~ specific language governing permissions and limitations
-  ~ under the License.
-  -->
-
-<project>
-    <modelVersion>4.0.0</modelVersion>
-    <groupId>org.apache.axis2.maven2</groupId>
-    <artifactId>axis2-wsdl2code-maven-plugin-test1</artifactId>
-    <version>SNAPSHOT</version>
-    <name>Test 2 of the axis2-wsdl2code-maven-plugin to test
-        schema import with space character in wsdl location path</name>
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.axis2</groupId>
-                <artifactId>axis2-wsdl2code-maven-plugin</artifactId>
-                <version>SNAPSHOT</version>
-                <configuration>
-                    <generateServerSide>true</generateServerSide>
-                    <generateServerSideInterface>true</generateServerSideInterface>
-                    <generateAllClasses>true</generateAllClasses>
-                    <generateServicesXml>true</generateServicesXml>
-                    <packageName>demo2</packageName>
-                </configuration>
-            </plugin>
-        </plugins>
-    </build>
-</project>
diff --git a/modules/tool/axis2-xsd2java-maven-plugin/pom.xml b/modules/tool/axis2-xsd2java-maven-plugin/pom.xml
new file mode 100644
index 0000000..23f8182
--- /dev/null
+++ b/modules/tool/axis2-xsd2java-maven-plugin/pom.xml
@@ -0,0 +1,114 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  ~ Licensed to the Apache Software Foundation (ASF) under one
+  ~ or more contributor license agreements. See the NOTICE file
+  ~ distributed with this work for additional information
+  ~ regarding copyright ownership. The ASF licenses this file
+  ~ to you under the Apache License, Version 2.0 (the
+  ~ "License"); you may not use this file except in compliance
+  ~ with the License. You may obtain a copy of the License at
+  ~
+  ~ http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing,
+  ~ software distributed under the License is distributed on an
+  ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  ~ KIND, either express or implied. See the License for the
+  ~ specific language governing permissions and limitations
+  ~ under the License.
+  -->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+
+    <modelVersion>4.0.0</modelVersion>
+
+    <parent>
+        <groupId>org.apache.axis2</groupId>
+        <artifactId>axis2</artifactId>
+        <version>1.8.0-SNAPSHOT</version>
+        <relativePath>../../../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>axis2-xsd2java-maven-plugin</artifactId>
+    <packaging>maven-plugin</packaging>
+    <url>http://axis.apache.org/axis2/java/core/tools/maven-plugins/axis2-xsd2java-maven-plugin</url>
+    <scm>
+        <connection>scm:svn:http://svn.apache.org/repos/asf/axis/axis2/java/core/trunk/modules/tool/axis2-xsd2java-maven-plugin</connection>
+        <developerConnection>scm:svn:https://svn.apache.org/repos/asf/axis/axis2/java/core/trunk/modules/tool/axis2-xsd2java-maven-plugin</developerConnection>
+        <url>http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/tool/axis2-xsd2java-maven-plugin</url>
+    </scm>
+    <distributionManagement>
+        <site>
+            <id>site</id>
+            <url>scm:svn:https://svn.apache.org/repos/asf/axis/site/axis2/java/core-staging/tools/maven-plugins/axis2-xsd2java-maven-plugin</url>
+        </site>
+    </distributionManagement>
+
+    <dependencies>
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>axis2-adb-codegen</artifactId>
+            <version>${project.version}</version>
+            <exclusions>
+                <exclusion>
+                    <groupId>commons-logging</groupId>
+                    <artifactId>commons-logging</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.maven</groupId>
+            <artifactId>maven-plugin-api</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.maven</groupId>
+            <artifactId>maven-core</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>maven-shared</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <!-- Maven supports SLF4J. -->
+            <groupId>org.slf4j</groupId>
+            <artifactId>jcl-over-slf4j</artifactId>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <artifactId>maven-remote-resources-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>process</goal>
+                        </goals>
+                        <configuration>
+                            <resourceBundles>
+                                <resourceBundle>org.apache.axis2:axis2-resource-bundle:${project.version}</resourceBundle>
+                            </resourceBundles>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
+
+    <reporting>
+        <plugins>
+            <plugin>
+                <artifactId>maven-project-info-reports-plugin</artifactId>
+                <reportSets>
+                    <reportSet>
+                        <reports />
+                    </reportSet>
+                </reportSets>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-plugin-plugin</artifactId>
+            </plugin>
+        </plugins>
+    </reporting>
+</project>
diff --git a/modules/tool/axis2-xsd2java-maven-plugin/src/main/java/org/apache/axis2/maven/xsd2java/AbstractXSD2JavaMojo.java b/modules/tool/axis2-xsd2java-maven-plugin/src/main/java/org/apache/axis2/maven/xsd2java/AbstractXSD2JavaMojo.java
new file mode 100644
index 0000000..870791b
--- /dev/null
+++ b/modules/tool/axis2-xsd2java-maven-plugin/src/main/java/org/apache/axis2/maven/xsd2java/AbstractXSD2JavaMojo.java
@@ -0,0 +1,121 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.axis2.maven.xsd2java;
+
+import java.io.File;
+
+import org.apache.axis2.maven.shared.NamespaceMapping;
+import org.apache.axis2.maven.shared.NamespaceMappingUtil;
+import org.apache.axis2.schema.CompilerOptions;
+import org.apache.axis2.schema.SchemaCompilationException;
+import org.apache.axis2.schema.SchemaCompiler;
+import org.apache.maven.plugin.AbstractMojo;
+import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.plugin.MojoFailureException;
+import org.apache.maven.project.MavenProject;
+import org.apache.ws.commons.schema.XmlSchemaCollection;
+import org.xml.sax.InputSource;
+
+public abstract class AbstractXSD2JavaMojo extends AbstractMojo {
+    /**
+     * The maven project.
+     * 
+     * @parameter expression="${project}"
+     * @readonly
+     * @required
+     */
+    private MavenProject project;
+
+    /**
+     * The list of XSD files for which to generate the Java code.
+     * 
+     * @parameter
+     * @required
+     */
+    private File[] xsdFiles;
+
+    /**
+     * Mapping of namespaces to target Java packages.
+     * 
+     * @parameter
+     */
+    private NamespaceMapping[] namespaceMappings;
+
+    /**
+     * The Java package to use for schema items without namespace.
+     * 
+     * @parameter
+     */
+    private String noNamespacePackageName;
+
+    /**
+     * @parameter
+     */
+    private String mapperClassPackage;
+
+    /**
+     * @parameter
+     */
+    private boolean helperMode;
+
+    /**
+     * @parameter
+     */
+    private String packageName;
+
+    /**
+     * Specifies whether unexpected elements should be ignored (log warning) instead of creating an
+     * exception.
+     * 
+     * @parameter
+     */
+    private boolean ignoreUnexpected;
+
+    public void execute() throws MojoExecutionException, MojoFailureException {
+        File outputDirectory = getOutputDirectory();
+        outputDirectory.mkdirs();
+        CompilerOptions compilerOptions = new CompilerOptions();
+        compilerOptions.setOutputLocation(outputDirectory);
+        compilerOptions.setGenerateAll(true);
+        NamespaceMappingUtil.addToMap(namespaceMappings, compilerOptions.getNs2PackageMap());
+        if (noNamespacePackageName != null) {
+            compilerOptions.getNs2PackageMap().put("", noNamespacePackageName);
+        }
+        compilerOptions.setMapperClassPackage(mapperClassPackage);
+        compilerOptions.setHelperMode(helperMode);
+        if (packageName != null) {
+            compilerOptions.setPackageName(packageName);
+        }
+        compilerOptions.setIgnoreUnexpected(ignoreUnexpected);
+        compilerOptions.setWriteOutput(true);
+        try {
+            for (File xsdFile : xsdFiles) {
+                XmlSchemaCollection schemaCollection = new XmlSchemaCollection();
+                SchemaCompiler compiler = new SchemaCompiler(compilerOptions);
+                compiler.compile(schemaCollection.read(new InputSource(xsdFile.toURI().toString())));
+            }
+        } catch (SchemaCompilationException ex) {
+            throw new MojoExecutionException("An error occurred during 'xsd2java' processing: " + ex.getMessage(), ex);
+        }
+        addSourceRoot(project);
+    }
+
+    protected abstract File getOutputDirectory();
+    protected abstract void addSourceRoot(MavenProject project);
+}
diff --git a/modules/tool/axis2-xsd2java-maven-plugin/src/main/java/org/apache/axis2/maven/xsd2java/GenerateSourcesMojo.java b/modules/tool/axis2-xsd2java-maven-plugin/src/main/java/org/apache/axis2/maven/xsd2java/GenerateSourcesMojo.java
new file mode 100644
index 0000000..92807bf
--- /dev/null
+++ b/modules/tool/axis2-xsd2java-maven-plugin/src/main/java/org/apache/axis2/maven/xsd2java/GenerateSourcesMojo.java
@@ -0,0 +1,48 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.axis2.maven.xsd2java;
+
+import java.io.File;
+
+import org.apache.maven.project.MavenProject;
+
+/**
+ * Generates Java classes from the specified schema files.
+ * 
+ * @goal generate-sources
+ * @phase generate-sources
+ */
+public class GenerateSourcesMojo extends AbstractXSD2JavaMojo {
+    /**
+     * The output directory for the generated Java code.
+     *
+     * @parameter default-value="${project.build.directory}/generated-sources/xsd2java"
+     */
+    private File outputDirectory;
+    
+    @Override
+    protected File getOutputDirectory() {
+        return outputDirectory;
+    }
+
+    @Override
+    protected void addSourceRoot(MavenProject project) {
+        project.addCompileSourceRoot(outputDirectory.getPath());
+    }
+}
diff --git a/modules/tool/axis2-xsd2java-maven-plugin/src/main/java/org/apache/axis2/maven/xsd2java/GenerateTestSourcesMojo.java b/modules/tool/axis2-xsd2java-maven-plugin/src/main/java/org/apache/axis2/maven/xsd2java/GenerateTestSourcesMojo.java
new file mode 100644
index 0000000..dceaf84
--- /dev/null
+++ b/modules/tool/axis2-xsd2java-maven-plugin/src/main/java/org/apache/axis2/maven/xsd2java/GenerateTestSourcesMojo.java
@@ -0,0 +1,50 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.axis2.maven.xsd2java;
+
+import java.io.File;
+
+import org.apache.maven.project.MavenProject;
+
+/**
+ * Generates Java classes from the specified schema files, for use in unit tests. This goal binds by
+ * default to the generate-test-sources phase and adds the sources to the test sources of the
+ * project; it is otherwise identical to the axis2-xsd2java:generate-sources goal.
+ * 
+ * @goal generate-test-sources
+ * @phase generate-test-sources
+ */
+public class GenerateTestSourcesMojo extends AbstractXSD2JavaMojo {
+    /**
+     * The output directory for the generated Java code.
+     *
+     * @parameter default-value="${project.build.directory}/generated-test-sources/xsd2java"
+     */
+    private File outputDirectory;
+    
+    @Override
+    protected File getOutputDirectory() {
+        return outputDirectory;
+    }
+
+    @Override
+    protected void addSourceRoot(MavenProject project) {
+        project.addTestCompileSourceRoot(outputDirectory.getPath());
+    }
+}
diff --git a/modules/webapp/src/main/webapp/axis2-web/disengage.jsp b/modules/tool/axis2-xsd2java-maven-plugin/src/site/markdown/index.md
similarity index 78%
rename from modules/webapp/src/main/webapp/axis2-web/disengage.jsp
rename to modules/tool/axis2-xsd2java-maven-plugin/src/site/markdown/index.md
index 0c5c055..aefcf5f 100644
--- a/modules/webapp/src/main/webapp/axis2-web/disengage.jsp
+++ b/modules/tool/axis2-xsd2java-maven-plugin/src/site/markdown/index.md
@@ -1,4 +1,4 @@
-<%--
+<!--
   ~ Licensed to the Apache Software Foundation (ASF) under one
   ~ or more contributor license agreements. See the NOTICE file
   ~ distributed with this work for additional information
@@ -15,8 +15,11 @@
   ~ KIND, either express or implied. See the License for the
   ~ specific language governing permissions and limitations
   ~ under the License.
-  --%>
-<%@ page contentType="text/html;charset=UTF-8" language="java" %>
-<jsp:include page="include/adminheader.jsp"/>
-<%=request.getSession().getAttribute("status")%>
-<jsp:include page="include/adminfooter.jsp"/>
\ No newline at end of file
+  -->
+
+About
+-----
+
+This plugin takes as input a one or more XSD schemas and generates Axis2 ADB Java Bean classes.
+
+The full description of goals is available [here](plugin-info.html).
diff --git a/modules/tool/axis2-xsd2java-maven-plugin/src/site/markdown/usage.md b/modules/tool/axis2-xsd2java-maven-plugin/src/site/markdown/usage.md
new file mode 100644
index 0000000..515525b
--- /dev/null
+++ b/modules/tool/axis2-xsd2java-maven-plugin/src/site/markdown/usage.md
@@ -0,0 +1,64 @@
+<!--
+  ~ Licensed to the Apache Software Foundation (ASF) under one
+  ~ or more contributor license agreements. See the NOTICE file
+  ~ distributed with this work for additional information
+  ~ regarding copyright ownership. The ASF licenses this file
+  ~ to you under the Apache License, Version 2.0 (the
+  ~ "License"); you may not use this file except in compliance
+  ~ with the License. You may obtain a copy of the License at
+  ~
+  ~ http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing,
+  ~ software distributed under the License is distributed on an
+  ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  ~ KIND, either express or implied. See the License for the
+  ~ specific language governing permissions and limitations
+  ~ under the License.
+  -->
+
+Usage
+-----
+
+axis2-xsd2java-maven-plugin offers two goals: `generate-sources` and `generate-test-sources`.
+Both read one or more XSD files and generate the corresponding ADB beans, but they differ in the phases in which they
+expect to be executed. Use `generate-sources` if the generated classes should become part of the
+artifact produced by the Maven module; use `generate-test-sources` if the generated code is only
+used by the unit tests.
+
+To run the plugin, add the following section to your POM:
+
+    <build>
+      <plugins>
+        <plugin>
+          <groupId>org.apache.axis2.maven2</groupId>
+          <artifactId>axis2-xsd2java-maven-plugin</artifactId>
+          <executions>
+            <execution>
+              <goals>
+                <goal>generate-sources</goal>
+              </goals>
+            </execution>
+            <configuration>
+              <xsdFiles>
+                <xsdFile>src/main/resources/xsd/attribute.xsd</xsdFile>
+              </xsdFiles>
+              <namespaceMappings>
+                <namespaceMapping>
+                  <uri>http://www.example.org/schema/test</uri>
+                  <packageName>org.example.schema.test</packageName>
+                </namespaceMapping>
+              </namespaceMappings>
+            </configuration>
+          </executions>
+        </plugin>
+      </plugins>
+    </build>
+
+The plugin will be invoked automatically in the generate-sources
+phase.
+
+It reads the specified XSD files and creates the matching Axis2 ADB Java bean classes.  The mapping from
+XSD target-namespaces to Java packages is specified with the `namespaceMappings` configuration element above.
+
+See the detailed documentation on [properties](generate-sources-mojo.html) for how to configure the goal.
diff --git a/modules/tool/axis2-aar-maven-plugin/src/test/resources/services.xml b/modules/tool/axis2-xsd2java-maven-plugin/src/site/site.xml
similarity index 60%
copy from modules/tool/axis2-aar-maven-plugin/src/test/resources/services.xml
copy to modules/tool/axis2-xsd2java-maven-plugin/src/site/site.xml
index 4b6163a..6e4ef5e 100644
--- a/modules/tool/axis2-aar-maven-plugin/src/test/resources/services.xml
+++ b/modules/tool/axis2-xsd2java-maven-plugin/src/site/site.xml
@@ -1,4 +1,5 @@
-<?xml version="1.0" encoding="UTF-8"?>
+<?xml version="1.0" encoding="ISO-8859-1"?>
+
 <!--
   ~ Licensed to the Apache Software Foundation (ASF) under one
   ~ or more contributor license agreements. See the NOTICE file
@@ -17,11 +18,16 @@
   ~ specific language governing permissions and limitations
   ~ under the License.
   -->
-<serviceGroup>
-	<service name="SimpleService">
-		<parameter name="ServiceClass">sample.SimpleService</parameter>
-		<operation name="helloService">
-			<messageReceiver class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" />
-		</operation>
-	</service>
-</serviceGroup>
+
+<project name="axis2-xsd2java-maven-plugin">
+    <body>
+        <menu name="Overview">
+            <item name="About" href="index.html"/>
+            <item name="Usage" href="usage.html"/>
+            <item name="Plugin Documentation" href="plugin-info.html">
+                <item name="generate-sources" href="generate-sources-mojo.html"/>
+                <item name="generate-test-sources" href="generate-test-sources-mojo.html"/>
+            </item>
+        </menu>
+    </body>
+</project>
diff --git a/modules/tool/maven-shared/pom.xml b/modules/tool/maven-shared/pom.xml
new file mode 100644
index 0000000..a74ccfa
--- /dev/null
+++ b/modules/tool/maven-shared/pom.xml
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+  ~ Licensed to the Apache Software Foundation (ASF) under one
+  ~ or more contributor license agreements. See the NOTICE file
+  ~ distributed with this work for additional information
+  ~ regarding copyright ownership. The ASF licenses this file
+  ~ to you under the Apache License, Version 2.0 (the
+  ~ "License"); you may not use this file except in compliance
+  ~ with the License. You may obtain a copy of the License at
+  ~
+  ~ http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing,
+  ~ software distributed under the License is distributed on an
+  ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  ~ KIND, either express or implied. See the License for the
+  ~ specific language governing permissions and limitations
+  ~ under the License.
+  -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.apache.axis2</groupId>
+        <artifactId>axis2</artifactId>
+        <version>1.8.0-SNAPSHOT</version>
+        <relativePath>../../../pom.xml</relativePath>
+    </parent>
+    <artifactId>maven-shared</artifactId>
+    <scm>
+        <connection>scm:svn:http://svn.apache.org/repos/asf/axis/axis2/java/core/trunk/modules/tool/maven-shared</connection>
+        <developerConnection>scm:svn:https://svn.apache.org/repos/asf/axis/axis2/java/core/trunk/modules/tool/maven-shared</developerConnection>
+        <url>http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/tool/maven-shared</url>
+    </scm>
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.maven</groupId>
+            <artifactId>maven-plugin-api</artifactId>
+        </dependency>
+    </dependencies>
+    <build>
+        <plugins>
+            <plugin>
+                <artifactId>maven-remote-resources-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>process</goal>
+                        </goals>
+                        <configuration>
+                            <resourceBundles>
+                                <resourceBundle>org.apache.axis2:axis2-resource-bundle:${project.version}</resourceBundle>
+                            </resourceBundles>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
+</project>
diff --git a/modules/tool/axis2-wsdl2code-maven-plugin/src/main/java/org/apache/axis2/maven2/wsdl2code/NamespaceURIMapping.java b/modules/tool/maven-shared/src/main/java/org/apache/axis2/maven/shared/NamespaceMapping.java
similarity index 94%
rename from modules/tool/axis2-wsdl2code-maven-plugin/src/main/java/org/apache/axis2/maven2/wsdl2code/NamespaceURIMapping.java
rename to modules/tool/maven-shared/src/main/java/org/apache/axis2/maven/shared/NamespaceMapping.java
index 5444b07..9f8f222 100644
--- a/modules/tool/axis2-wsdl2code-maven-plugin/src/main/java/org/apache/axis2/maven2/wsdl2code/NamespaceURIMapping.java
+++ b/modules/tool/maven-shared/src/main/java/org/apache/axis2/maven/shared/NamespaceMapping.java
@@ -17,10 +17,10 @@
  * under the License.
  */
 
-package org.apache.axis2.maven2.wsdl2code;
+package org.apache.axis2.maven.shared;
 
 /** Data class for specifying URI->Package mappings. */
-public class NamespaceURIMapping {
+public class NamespaceMapping {
     private String uri, packageName;
 
     /** Returns the package name, to which the URI shall be mapped. */
diff --git a/modules/tool/maven-shared/src/main/java/org/apache/axis2/maven/shared/NamespaceMappingUtil.java b/modules/tool/maven-shared/src/main/java/org/apache/axis2/maven/shared/NamespaceMappingUtil.java
new file mode 100644
index 0000000..8fc7299
--- /dev/null
+++ b/modules/tool/maven-shared/src/main/java/org/apache/axis2/maven/shared/NamespaceMappingUtil.java
@@ -0,0 +1,45 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.axis2.maven.shared;
+
+import java.util.Map;
+
+import org.apache.maven.plugin.MojoFailureException;
+
+public final class NamespaceMappingUtil {
+    private NamespaceMappingUtil() {}
+    
+    public static void addToMap(NamespaceMapping[] mappings, Map<String,String> map) throws MojoFailureException {
+        if (mappings != null) {
+            for (NamespaceMapping mapping : mappings) {
+                String uri = mapping.getUri();
+                if (uri == null) {
+                    throw new MojoFailureException(
+                            "A namespace to package mapping requires an uri child element.");
+                }
+                String packageName = mapping.getPackageName();
+                if (packageName == null) {
+                    throw new MojoFailureException(
+                            "A namespace to package mapping requires a packageName child element.");
+                }
+                map.put(uri, packageName);
+            }
+        }
+    }
+}
diff --git a/modules/tool/simple-server-maven-plugin/pom.xml b/modules/tool/simple-server-maven-plugin/pom.xml
index dd8c287..6e36538 100644
--- a/modules/tool/simple-server-maven-plugin/pom.xml
+++ b/modules/tool/simple-server-maven-plugin/pom.xml
@@ -19,14 +19,13 @@
   ~ under the License.
   -->
 
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
     <modelVersion>4.0.0</modelVersion>
     <parent>
         <groupId>org.apache.axis2</groupId>
-        <artifactId>axis2-parent</artifactId>
-        <version>1.7.0-SNAPSHOT</version>
-        <relativePath>../../parent/pom.xml</relativePath>
+        <artifactId>axis2</artifactId>
+        <version>1.8.0-SNAPSHOT</version>
+        <relativePath>../../../pom.xml</relativePath>
     </parent>
     <artifactId>simple-server-maven-plugin</artifactId>
     <name>Apache Axis2 Simple HTTP server Maven Plugin</name>
@@ -70,21 +69,50 @@
             <groupId>org.apache.axis2</groupId>
             <artifactId>axis2-kernel</artifactId>
             <version>${project.version}</version>
+            <exclusions>
+                <exclusion>
+                    <groupId>commons-logging</groupId>
+                    <artifactId>commons-logging</artifactId>
+                </exclusion>
+            </exclusions>
         </dependency>
         <dependency>
             <groupId>org.apache.axis2</groupId>
             <artifactId>axis2-adb</artifactId>
             <version>${project.version}</version>
+            <exclusions>
+                <exclusion>
+                    <groupId>commons-logging</groupId>
+                    <artifactId>commons-logging</artifactId>
+                </exclusion>
+            </exclusions>
         </dependency>
         <dependency>
             <groupId>org.apache.axis2</groupId>
             <artifactId>axis2-transport-http</artifactId>
             <version>${project.version}</version>
+            <exclusions>
+                <exclusion>
+                    <groupId>commons-logging</groupId>
+                    <artifactId>commons-logging</artifactId>
+                </exclusion>
+            </exclusions>
         </dependency>
         <dependency>
             <groupId>org.apache.axis2</groupId>
             <artifactId>axis2-transport-local</artifactId>
             <version>${project.version}</version>
+            <exclusions>
+                <exclusion>
+                    <groupId>commons-logging</groupId>
+                    <artifactId>commons-logging</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
+            <!-- Maven supports SLF4J -->
+            <groupId>org.slf4j</groupId>
+            <artifactId>jcl-over-slf4j</artifactId>
         </dependency>
     </dependencies>
 </project>
diff --git a/modules/transport/base/pom.xml b/modules/transport/base/pom.xml
index bd01947..3ed5594 100644
--- a/modules/transport/base/pom.xml
+++ b/modules/transport/base/pom.xml
@@ -22,9 +22,9 @@
     <modelVersion>4.0.0</modelVersion>
     <parent>
         <groupId>org.apache.axis2</groupId>
-        <artifactId>axis2-parent</artifactId>
-        <version>1.7.0-SNAPSHOT</version>
-        <relativePath>../../parent/pom.xml</relativePath>
+        <artifactId>axis2</artifactId>
+        <version>1.8.0-SNAPSHOT</version>
+        <relativePath>../../../pom.xml</relativePath>
     </parent>
 
     <groupId>org.apache.axis2</groupId>
@@ -45,7 +45,6 @@
             <plugin>
                 <groupId>org.apache.felix</groupId>
                 <artifactId>maven-bundle-plugin</artifactId>
-                <version>1.4.0</version>
                 <extensions>true</extensions>
                 <configuration>
                     <instructions>
diff --git a/modules/transport/base/src/main/java/org/apache/axis2/format/PlainTextFormatter.java b/modules/transport/base/src/main/java/org/apache/axis2/format/PlainTextFormatter.java
index 51a9726..c5dc13b 100644
--- a/modules/transport/base/src/main/java/org/apache/axis2/format/PlainTextFormatter.java
+++ b/modules/transport/base/src/main/java/org/apache/axis2/format/PlainTextFormatter.java
@@ -24,7 +24,6 @@
 import org.apache.axis2.AxisFault;
 import org.apache.axiom.om.OMOutputFormat;
 import org.apache.axiom.om.OMElement;
-import org.apache.axiom.om.util.ElementHelper;
 import org.apache.axis2.transport.base.BaseConstants;
 
 import java.io.ByteArrayOutputStream;
@@ -35,7 +34,6 @@
 import java.net.URL;
 
 import javax.activation.DataSource;
-import javax.xml.stream.XMLStreamException;
 
 public class PlainTextFormatter implements MessageFormatterEx {
 
@@ -50,12 +48,10 @@
         if (BaseConstants.DEFAULT_TEXT_WRAPPER.equals(textElt.getQName())) {
             try {
                 Writer out = new OutputStreamWriter(outputStream, format.getCharSetEncoding());
-                ElementHelper.writeTextTo(textElt, out, preserve);
+                textElt.writeTextTo(out, preserve);
                 out.flush();
             } catch (IOException e) {
                 throw new AxisFault("Error writing text message to stream", e);
-            } catch (XMLStreamException e) {
-                throw new AxisFault("Error extracting the text payload from the message", e);
             }
         }
     }
diff --git a/modules/transport/base/src/main/java/org/apache/axis2/format/TextFromElementDataSource.java b/modules/transport/base/src/main/java/org/apache/axis2/format/TextFromElementDataSource.java
index 357bad2..96b5e85 100644
--- a/modules/transport/base/src/main/java/org/apache/axis2/format/TextFromElementDataSource.java
+++ b/modules/transport/base/src/main/java/org/apache/axis2/format/TextFromElementDataSource.java
@@ -25,7 +25,6 @@
 import javax.activation.DataSource;
 
 import org.apache.axiom.om.OMElement;
-import org.apache.axiom.om.util.ElementHelper;
 import org.apache.commons.io.input.ReaderInputStream;
 
 /**
@@ -57,7 +56,7 @@
     }
 
     public InputStream getInputStream() throws IOException {
-        return new ReaderInputStream(ElementHelper.getTextAsStream(element, true), charset);
+        return new ReaderInputStream(element.getTextAsStream(true), charset);
     }
 
     public OutputStream getOutputStream() throws IOException {
diff --git a/modules/transport/base/src/main/java/org/apache/axis2/transport/base/BaseUtils.java b/modules/transport/base/src/main/java/org/apache/axis2/transport/base/BaseUtils.java
index cdcaab0..b272aa2 100644
--- a/modules/transport/base/src/main/java/org/apache/axis2/transport/base/BaseUtils.java
+++ b/modules/transport/base/src/main/java/org/apache/axis2/transport/base/BaseUtils.java
@@ -21,10 +21,6 @@
 
 import org.apache.axiom.om.OMElement;
 import org.apache.axiom.om.OMOutputFormat;
-import org.apache.axiom.om.impl.builder.StAXBuilder;
-import org.apache.axiom.om.util.StAXUtils;
-import org.apache.axiom.soap.SOAPEnvelope;
-import org.apache.axiom.soap.impl.builder.StAXSOAPModelBuilder;
 import org.apache.axis2.AxisFault;
 import org.apache.axis2.Constants;
 import org.apache.axis2.context.MessageContext;
@@ -39,8 +35,6 @@
 import org.apache.commons.logging.LogFactory;
 
 import javax.xml.namespace.QName;
-import javax.xml.stream.XMLStreamException;
-import javax.xml.stream.XMLStreamReader;
 import java.io.File;
 import java.io.IOException;
 import java.io.InputStream;
@@ -96,24 +90,6 @@
     }
 
     /**
-     * Create a SOAP envelope using SOAP 1.1 or 1.2 depending on the namespace
-     * @param in InputStream for the payload
-     * @param namespace the SOAP namespace
-     * @return the SOAP envelope for the correct version
-     * @throws javax.xml.stream.XMLStreamException on error
-     */
-    public static SOAPEnvelope getEnvelope(InputStream in, String namespace) throws XMLStreamException {
-
-        try {
-            in.reset();
-        } catch (IOException ignore) {}
-        XMLStreamReader xmlreader =
-            StAXUtils.createXMLStreamReader(in, MessageContext.DEFAULT_CHAR_SET_ENCODING);
-        StAXBuilder builder = new StAXSOAPModelBuilder(xmlreader, namespace);
-        return (SOAPEnvelope) builder.getDocumentElement();
-    }
-
-    /**
      * Get the OMOutput format for the given message
      * @param msgContext the axis message context
      * @return the OMOutput format to be used
@@ -271,6 +247,12 @@
                 String msg = "Error loading properties from a file at :" + filePath;
                 log.error(msg, e);
                 throw new BaseTransportException(msg, e);
+            } finally {
+                try {
+                    in.close();
+                } catch (IOException ex) {
+                    // Ignore
+                }
             }
         }
         return properties;
diff --git a/modules/transport/base/src/main/java/org/apache/axis2/transport/base/endpoint/config/URLEndpointFactory.java b/modules/transport/base/src/main/java/org/apache/axis2/transport/base/endpoint/config/URLEndpointFactory.java
index 116cca5..befecd1 100644
--- a/modules/transport/base/src/main/java/org/apache/axis2/transport/base/endpoint/config/URLEndpointFactory.java
+++ b/modules/transport/base/src/main/java/org/apache/axis2/transport/base/endpoint/config/URLEndpointFactory.java
@@ -60,10 +60,10 @@
                 }
             }
 
-            Iterator it = messageBuilders.getChildrenWithName(
+            Iterator<OMElement> it = messageBuilders.getChildrenWithName(
                     new QName(URLEndpointsConfiguration.MESSAGE_BUILDER));
             while(it.hasNext()) {
-                OMElement builderElement = (OMElement) it.next();
+                OMElement builderElement = it.next();
 
                 OMAttribute contentTypeAttr = builderElement.getAttribute(
                         new QName(URLEndpointsConfiguration.CONTENT_TYPE));
@@ -90,10 +90,10 @@
             }
         }
 
-        Iterator paramItr = xml.getChildrenWithName(
+        Iterator<OMElement> paramItr = xml.getChildrenWithName(
                 new QName(URLEndpointsConfiguration.PARAMETER));
         while (paramItr.hasNext()) {
-            OMElement p = (OMElement) paramItr.next();
+            OMElement p = paramItr.next();
             OMAttribute paramNameAttr = p.getAttribute(new QName(URLEndpointsConfiguration.NAME));
             if (paramNameAttr == null) {
                 handleException("Parameter " + URLEndpointsConfiguration.NAME + " cannot be null");
diff --git a/modules/transport/base/src/main/java/org/apache/axis2/transport/base/endpoint/config/URLEndpointsConfigurationFactory.java b/modules/transport/base/src/main/java/org/apache/axis2/transport/base/endpoint/config/URLEndpointsConfigurationFactory.java
index 8537451..bf7cd96 100644
--- a/modules/transport/base/src/main/java/org/apache/axis2/transport/base/endpoint/config/URLEndpointsConfigurationFactory.java
+++ b/modules/transport/base/src/main/java/org/apache/axis2/transport/base/endpoint/config/URLEndpointsConfigurationFactory.java
@@ -37,11 +37,11 @@
     private static final Log log = LogFactory.getLog(URLEndpointsConfigurationFactory.class);
 
     public URLEndpointsConfiguration create(OMElement element) throws AxisFault {
-        Iterator iterator = element.getChildrenWithName(new QName(URLEndpointsConfiguration.ENDPOINT));
+        Iterator<OMElement> iterator = element.getChildrenWithName(new QName(URLEndpointsConfiguration.ENDPOINT));
         URLEndpointsConfiguration configuration = new URLEndpointsConfiguration();
         URLEndpointFactory fac = new URLEndpointFactory();
         while (iterator.hasNext()) {
-            OMElement endpoint = (OMElement) iterator.next();
+            OMElement endpoint = iterator.next();
 
             URLEndpoint epr = fac.create(endpoint);
             configuration.addEndpoint(epr);
@@ -63,11 +63,11 @@
         OMElement element = OMXMLBuilderFactory.createOMBuilder(is).getDocumentElement();
         element.build();
 
-        Iterator iterator = element.getChildrenWithName(new QName(URLEndpointsConfiguration.ENDPOINT));
+        Iterator<OMElement> iterator = element.getChildrenWithName(new QName(URLEndpointsConfiguration.ENDPOINT));
         URLEndpointsConfiguration configuration = new URLEndpointsConfiguration();
         URLEndpointFactory fac = new URLEndpointFactory();
         while (iterator.hasNext()) {
-            OMElement endpoint = (OMElement) iterator.next();
+            OMElement endpoint = iterator.next();
 
             URLEndpoint epr = fac.create(endpoint);
             configuration.addEndpoint(epr);
diff --git a/modules/transport/http-hc3/pom.xml b/modules/transport/http-hc3/pom.xml
new file mode 100644
index 0000000..8833464
--- /dev/null
+++ b/modules/transport/http-hc3/pom.xml
@@ -0,0 +1,91 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  ~ Licensed to the Apache Software Foundation (ASF) under one
+  ~ or more contributor license agreements. See the NOTICE file
+  ~ distributed with this work for additional information
+  ~ regarding copyright ownership. The ASF licenses this file
+  ~ to you under the Apache License, Version 2.0 (the
+  ~ "License"); you may not use this file except in compliance
+  ~ with the License. You may obtain a copy of the License at
+  ~
+  ~ http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing,
+  ~ software distributed under the License is distributed on an
+  ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  ~ KIND, either express or implied. See the License for the
+  ~ specific language governing permissions and limitations
+  ~ under the License.
+  -->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+
+    <parent>
+        <groupId>org.apache.axis2</groupId>
+        <artifactId>axis2</artifactId>
+        <version>1.8.0-SNAPSHOT</version>
+        <relativePath>../../../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>axis2-transport-http-hc3</artifactId>
+    <packaging>jar</packaging>
+
+    <name>Apache Axis2 - Transport - HTTP - Commons HttpClient 3.x</name>
+    <description>The legacy, Apache Commons HttpClient 3.x based HTTP transport sender</description>
+    <url>http://axis.apache.org/axis2/java/core/</url>
+
+    <scm>
+        <connection>scm:svn:http://svn.apache.org/repos/asf/axis/axis2/java/core/trunk/modules/transport/http-hc3</connection>
+        <developerConnection>scm:svn:https://svn.apache.org/repos/asf/axis/axis2/java/core/trunk/modules/transport/http-hc3</developerConnection>
+        <url>http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/transport/http-hc3</url>
+    </scm>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.axis2</groupId>
+            <artifactId>axis2-transport-http</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>commons-httpclient</groupId>
+            <artifactId>commons-httpclient</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.axis2</groupId>
+            <artifactId>axis2-transport-http</artifactId>
+            <version>${project.version}</version>
+            <classifier>tests</classifier>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.ws.commons.axiom</groupId>
+            <artifactId>axiom-truth</artifactId>
+            <scope>test</scope>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <artifactId>maven-remote-resources-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>process</goal>
+                        </goals>
+                        <configuration>
+                            <resourceBundles>
+                                <resourceBundle>org.apache.axis2:axis2-resource-bundle:${project.version}</resourceBundle>
+                            </resourceBundles>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
+</project>
diff --git a/modules/transport/http/test/org/apache/axis2/transport/http/HTTPClient3TransportSenderTest.java b/modules/transport/http-hc3/src/main/java/org/apache/axis2/transport/http/CommonsHTTPTransportSender.java
similarity index 77%
rename from modules/transport/http/test/org/apache/axis2/transport/http/HTTPClient3TransportSenderTest.java
rename to modules/transport/http-hc3/src/main/java/org/apache/axis2/transport/http/CommonsHTTPTransportSender.java
index 058b62b..6f462b0 100644
--- a/modules/transport/http/test/org/apache/axis2/transport/http/HTTPClient3TransportSenderTest.java
+++ b/modules/transport/http-hc3/src/main/java/org/apache/axis2/transport/http/CommonsHTTPTransportSender.java
@@ -19,14 +19,10 @@
 
 package org.apache.axis2.transport.http;
 
-import org.apache.axis2.transport.TransportSender;
 import org.apache.axis2.transport.http.impl.httpclient3.HTTPClient3TransportSender;
 
-public class HTTPClient3TransportSenderTest extends CommonsHTTPTransportSenderTest {
-
-    @Override
-    protected TransportSender getTransportSender() {
-        return new HTTPClient3TransportSender();
-    }
-
+/**
+ * @deprecated This class only exists to support old Axis2 configurations.
+ */
+public class CommonsHTTPTransportSender extends HTTPClient3TransportSender {
 }
diff --git a/modules/transport/http/src/org/apache/axis2/transport/http/impl/httpclient3/AxisRequestEntityImpl.java b/modules/transport/http-hc3/src/main/java/org/apache/axis2/transport/http/impl/httpclient3/AxisRequestEntityImpl.java
similarity index 61%
rename from modules/transport/http/src/org/apache/axis2/transport/http/impl/httpclient3/AxisRequestEntityImpl.java
rename to modules/transport/http-hc3/src/main/java/org/apache/axis2/transport/http/impl/httpclient3/AxisRequestEntityImpl.java
index 33f42e9..88574c5 100644
--- a/modules/transport/http/src/org/apache/axis2/transport/http/impl/httpclient3/AxisRequestEntityImpl.java
+++ b/modules/transport/http-hc3/src/main/java/org/apache/axis2/transport/http/impl/httpclient3/AxisRequestEntityImpl.java
@@ -19,9 +19,9 @@
 
 package org.apache.axis2.transport.http.impl.httpclient3;
 
-import org.apache.axiom.om.OMOutputFormat;
-import org.apache.axis2.context.MessageContext;
-import org.apache.axis2.transport.MessageFormatter;
+import java.io.IOException;
+import java.io.OutputStream;
+
 import org.apache.axis2.transport.http.AxisRequestEntity;
 
 import org.apache.commons.httpclient.methods.RequestEntity;
@@ -30,21 +30,30 @@
  * This Request Entity is used by the HTTPCommonsTransportSender. This wraps the
  * Axis2 message formatter object.
  */
-public class AxisRequestEntityImpl extends AxisRequestEntity implements RequestEntity {
-
-    /**
-     * Method calls to this request entity are delegated to the following Axis2
-     * message formatter object.
-     * 
-     * @param messageFormatter
-     */
-    public AxisRequestEntityImpl(MessageFormatter messageFormatter, MessageContext msgContext,
-            OMOutputFormat format, String soapAction, boolean chunked, boolean isAllowedRetry) {
-        super(messageFormatter, msgContext, format, soapAction, chunked, isAllowedRetry);
+public class AxisRequestEntityImpl implements RequestEntity {
+    private final AxisRequestEntity entity;
+    
+    public AxisRequestEntityImpl(AxisRequestEntity entity) {
+        this.entity = entity;
     }
 
+    @Override
+    public boolean isRepeatable() {
+        return entity.isRepeatable();
+    }
+
+    @Override
+    public void writeRequest(OutputStream outStream) throws IOException {
+        entity.writeRequest(outStream);
+    }
+
+    @Override
+    public long getContentLength() {
+        return entity.getContentLength();
+    }
+
+    @Override
     public String getContentType() {
-        return getContentTypeAsString();
+        return entity.getContentType();
     }
-
 }
diff --git a/modules/transport/http/src/org/apache/axis2/transport/http/impl/httpclient3/HTTPClient3TransportSender.java b/modules/transport/http-hc3/src/main/java/org/apache/axis2/transport/http/impl/httpclient3/HTTPClient3TransportSender.java
similarity index 62%
rename from modules/transport/http/src/org/apache/axis2/transport/http/impl/httpclient3/HTTPClient3TransportSender.java
rename to modules/transport/http-hc3/src/main/java/org/apache/axis2/transport/http/impl/httpclient3/HTTPClient3TransportSender.java
index 7f6df72..10d0e83 100644
--- a/modules/transport/http/src/org/apache/axis2/transport/http/impl/httpclient3/HTTPClient3TransportSender.java
+++ b/modules/transport/http-hc3/src/main/java/org/apache/axis2/transport/http/impl/httpclient3/HTTPClient3TransportSender.java
@@ -22,17 +22,20 @@
 import org.apache.axis2.AxisFault;
 import org.apache.axis2.context.ConfigurationContext;
 import org.apache.axis2.context.MessageContext;
-import org.apache.axis2.transport.http.AbstractHTTPSender;
-import org.apache.axis2.transport.http.CommonsHTTPTransportSender;
+import org.apache.axis2.transport.http.AbstractHTTPTransportSender;
+import org.apache.axis2.transport.http.HTTPConstants;
+import org.apache.axis2.transport.http.HTTPSender;
 import org.apache.axis2.transport.http.HTTPTransportConstants;
-import org.apache.axis2.transport.http.HTTPTransportSender;
+import org.apache.commons.httpclient.HttpMethod;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
 
 /**
  * The Class HTTPClient4TransportSender use Commons-HTTPclient 3.1. Users are highly
  * encouraged to use HTTPClient4TransportSender instead of CommonsHTTPTransportSender.
  */
-public class HTTPClient3TransportSender extends CommonsHTTPTransportSender implements
-        HTTPTransportSender {
+public class HTTPClient3TransportSender extends AbstractHTTPTransportSender {
+    private final static Log log = LogFactory.getLog(HTTPClient3TransportSender.class);
 
     public void setHTTPClientVersion(ConfigurationContext configurationContext) {
         configurationContext.setProperty(HTTPTransportConstants.HTTP_CLIENT_VERSION,
@@ -41,11 +44,18 @@
 
     @Override
     public void cleanup(MessageContext msgContext) throws AxisFault {
-        super.cleanup(msgContext);
+        HttpMethod httpMethod = (HttpMethod) msgContext.getProperty(HTTPConstants.HTTP_METHOD);
+        if (httpMethod != null) {
+            // TODO : Don't do this if we're not on the right thread! Can we confirm?
+            log.trace("cleanup() releasing connection for " + httpMethod);
+
+            httpMethod.releaseConnection();
+            msgContext.removeProperty(HTTPConstants.HTTP_METHOD); // guard against multiple calls
+        }
     }
 
     @Override
-    protected AbstractHTTPSender createHTTPSender() {
+    protected HTTPSender createHTTPSender() {
         return new HTTPSenderImpl();
     }
 
diff --git a/modules/transport/http/src/org/apache/axis2/transport/http/impl/httpclient3/HTTPProxcyConfigurator.java b/modules/transport/http-hc3/src/main/java/org/apache/axis2/transport/http/impl/httpclient3/HTTPProxcyConfigurator.java
similarity index 100%
rename from modules/transport/http/src/org/apache/axis2/transport/http/impl/httpclient3/HTTPProxcyConfigurator.java
rename to modules/transport/http-hc3/src/main/java/org/apache/axis2/transport/http/impl/httpclient3/HTTPProxcyConfigurator.java
diff --git a/modules/transport/http/src/org/apache/axis2/transport/http/impl/httpclient3/HTTPProxyConfigurator.java b/modules/transport/http-hc3/src/main/java/org/apache/axis2/transport/http/impl/httpclient3/HTTPProxyConfigurator.java
similarity index 99%
rename from modules/transport/http/src/org/apache/axis2/transport/http/impl/httpclient3/HTTPProxyConfigurator.java
rename to modules/transport/http-hc3/src/main/java/org/apache/axis2/transport/http/impl/httpclient3/HTTPProxyConfigurator.java
index e47f4f4..a429fd4 100644
--- a/modules/transport/http/src/org/apache/axis2/transport/http/impl/httpclient3/HTTPProxyConfigurator.java
+++ b/modules/transport/http-hc3/src/main/java/org/apache/axis2/transport/http/impl/httpclient3/HTTPProxyConfigurator.java
@@ -135,7 +135,7 @@
         }
 
         String port = System.getProperty(HTTPTransportConstants.HTTP_PROXY_PORT);
-        if (port != null) {
+        if (port != null && !port.isEmpty()) {
             proxyPort = Integer.parseInt(port);
         }
 
diff --git a/modules/transport/http-hc3/src/main/java/org/apache/axis2/transport/http/impl/httpclient3/HTTPSenderImpl.java b/modules/transport/http-hc3/src/main/java/org/apache/axis2/transport/http/impl/httpclient3/HTTPSenderImpl.java
new file mode 100644
index 0000000..99bdcb3
--- /dev/null
+++ b/modules/transport/http-hc3/src/main/java/org/apache/axis2/transport/http/impl/httpclient3/HTTPSenderImpl.java
@@ -0,0 +1,106 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.axis2.transport.http.impl.httpclient3;
+
+import java.net.URL;
+
+import org.apache.axis2.AxisFault;
+import org.apache.axis2.context.ConfigurationContext;
+import org.apache.axis2.context.MessageContext;
+import org.apache.axis2.transport.http.AxisRequestEntity;
+import org.apache.axis2.transport.http.HTTPConstants;
+import org.apache.axis2.transport.http.HTTPSender;
+import org.apache.axis2.transport.http.Request;
+import org.apache.commons.httpclient.HttpClient;
+import org.apache.commons.httpclient.HttpConnectionManager;
+import org.apache.commons.httpclient.MultiThreadedHttpConnectionManager;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+public class HTTPSenderImpl extends HTTPSender {
+
+    private static final Log log = LogFactory.getLog(HTTPSenderImpl.class);
+
+    @Override
+    protected Request createRequest(MessageContext msgContext, String methodName, URL url,
+            AxisRequestEntity requestEntity) throws AxisFault {
+        return new RequestImpl(getHttpClient(msgContext), msgContext, methodName, url, requestEntity);
+    }
+
+    private HttpClient getHttpClient(MessageContext msgContext) {
+        ConfigurationContext configContext = msgContext.getConfigurationContext();
+
+        HttpClient httpClient = (HttpClient) msgContext
+                .getProperty(HTTPConstants.CACHED_HTTP_CLIENT);
+
+        if (httpClient == null) {
+            httpClient = (HttpClient) configContext.getProperty(HTTPConstants.CACHED_HTTP_CLIENT);
+        }
+
+        if (httpClient != null) {
+            return httpClient;
+        }
+
+        synchronized (this) {
+            httpClient = (HttpClient) msgContext.getProperty(HTTPConstants.CACHED_HTTP_CLIENT);
+
+            if (httpClient == null) {
+                httpClient = (HttpClient) configContext
+                        .getProperty(HTTPConstants.CACHED_HTTP_CLIENT);
+            }
+
+            if (httpClient != null) {
+                return httpClient;
+            }
+
+            HttpConnectionManager connManager = (HttpConnectionManager) msgContext
+                    .getProperty(HTTPConstants.MULTITHREAD_HTTP_CONNECTION_MANAGER);
+            if (connManager == null) {
+                connManager = (HttpConnectionManager) msgContext
+                        .getProperty(HTTPConstants.MULTITHREAD_HTTP_CONNECTION_MANAGER);
+            }
+            if (connManager == null) {
+                // reuse HttpConnectionManager
+                synchronized (configContext) {
+                    connManager = (HttpConnectionManager) configContext
+                            .getProperty(HTTPConstants.MULTITHREAD_HTTP_CONNECTION_MANAGER);
+                    if (connManager == null) {
+                        log.trace("Making new ConnectionManager");
+                        connManager = new MultiThreadedHttpConnectionManager();
+                        configContext.setProperty(
+                                HTTPConstants.MULTITHREAD_HTTP_CONNECTION_MANAGER, connManager);
+                    }
+                }
+            }
+            /*
+             * Create a new instance of HttpClient since the way it is used here
+             * it's not fully thread-safe.
+             */
+            httpClient = new HttpClient(connManager);
+
+            // Set the default timeout in case we have a connection pool
+            // starvation to 30sec
+            httpClient.getParams().setConnectionManagerTimeout(30000);
+
+            return httpClient;
+        }
+    }
+
+}
diff --git a/modules/transport/http/src/org/apache/axis2/transport/http/impl/httpclient3/HttpTransportPropertiesImpl.java b/modules/transport/http-hc3/src/main/java/org/apache/axis2/transport/http/impl/httpclient3/HttpTransportPropertiesImpl.java
similarity index 100%
rename from modules/transport/http/src/org/apache/axis2/transport/http/impl/httpclient3/HttpTransportPropertiesImpl.java
rename to modules/transport/http-hc3/src/main/java/org/apache/axis2/transport/http/impl/httpclient3/HttpTransportPropertiesImpl.java
diff --git a/modules/transport/http-hc3/src/main/java/org/apache/axis2/transport/http/impl/httpclient3/RequestImpl.java b/modules/transport/http-hc3/src/main/java/org/apache/axis2/transport/http/impl/httpclient3/RequestImpl.java
new file mode 100644
index 0000000..b6a3f5b
--- /dev/null
+++ b/modules/transport/http-hc3/src/main/java/org/apache/axis2/transport/http/impl/httpclient3/RequestImpl.java
@@ -0,0 +1,329 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.axis2.transport.http.impl.httpclient3;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.axiom.mime.Header;
+import org.apache.axis2.AxisFault;
+import org.apache.axis2.context.MessageContext;
+import org.apache.axis2.transport.http.AxisRequestEntity;
+import org.apache.axis2.transport.http.HTTPAuthenticator;
+import org.apache.axis2.transport.http.HTTPConstants;
+import org.apache.axis2.transport.http.HTTPTransportConstants;
+import org.apache.axis2.transport.http.Request;
+import org.apache.commons.httpclient.Credentials;
+import org.apache.commons.httpclient.HeaderElement;
+import org.apache.commons.httpclient.HostConfiguration;
+import org.apache.commons.httpclient.HttpClient;
+import org.apache.commons.httpclient.HttpMethodBase;
+import org.apache.commons.httpclient.HttpState;
+import org.apache.commons.httpclient.HttpVersion;
+import org.apache.commons.httpclient.NTCredentials;
+import org.apache.commons.httpclient.UsernamePasswordCredentials;
+import org.apache.commons.httpclient.auth.AuthPolicy;
+import org.apache.commons.httpclient.auth.AuthScope;
+import org.apache.commons.httpclient.methods.EntityEnclosingMethod;
+import org.apache.commons.httpclient.params.HttpMethodParams;
+import org.apache.commons.httpclient.protocol.Protocol;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+final class RequestImpl implements Request {
+    private static final String[] COOKIE_HEADER_NAMES = { HTTPConstants.HEADER_SET_COOKIE, HTTPConstants.HEADER_SET_COOKIE2 };
+
+    private static final Log log = LogFactory.getLog(RequestImpl.class);
+
+    private final HttpClient httpClient;
+    private final MessageContext msgContext;
+    private final URL url;
+    private final HttpMethodBase method;
+    private final HostConfiguration config;
+
+    RequestImpl(HttpClient httpClient, MessageContext msgContext, final String methodName, URL url,
+            AxisRequestEntity requestEntity) throws AxisFault {
+        this.httpClient = httpClient;
+        this.msgContext = msgContext;
+        this.url = url;
+        if (requestEntity == null) {
+            method = new HttpMethodBase() {
+                @Override
+                public String getName() {
+                    return methodName;
+                }
+            };
+            // This mimicks GetMethod
+            if (methodName.equals(HTTPConstants.HTTP_METHOD_GET)) {
+                method.setFollowRedirects(true);
+            }
+        } else {
+            EntityEnclosingMethod entityEnclosingMethod = new EntityEnclosingMethod() {
+                @Override
+                public String getName() {
+                    return methodName;
+                }
+            };
+            entityEnclosingMethod.setRequestEntity(new AxisRequestEntityImpl(requestEntity));
+            entityEnclosingMethod.setContentChunked(requestEntity.isChunked());
+            method = entityEnclosingMethod;
+        }
+        method.setPath(url.getPath());
+        method.setQueryString(url.getQuery());
+        // TODO: this is fishy; it means that we may end up modifying a HostConfiguration from a cached HTTP client
+        HostConfiguration config = httpClient.getHostConfiguration();
+        if (config == null) {
+            config = new HostConfiguration();
+        }
+        this.config = config;
+    }
+
+    @Override
+    public void enableHTTP10() {
+        httpClient.getParams().setVersion(HttpVersion.HTTP_1_0);
+    }
+
+    @Override
+    public void setHeader(String name, String value) {
+        method.setRequestHeader(name, value);
+    }
+
+    @Override
+    public void addHeader(String name, String value) {
+        method.addRequestHeader(name, value);
+    }
+
+    private static Header[] convertHeaders(org.apache.commons.httpclient.Header[] headers) {
+        Header[] result = new Header[headers.length];
+        for (int i=0; i<headers.length; i++) {
+            result[i] = new Header(headers[i].getName(), headers[i].getValue());
+        }
+        return result;
+    }
+
+    @Override
+    public Header[] getRequestHeaders() {
+        return convertHeaders(method.getRequestHeaders());
+    }
+
+    @Override
+    public void setConnectionTimeout(int timeout) {
+        method.getParams().setParameter("http.connection.timeout", timeout);
+    }
+
+    @Override
+    public void setSocketTimeout(int timeout) {
+        method.getParams().setSoTimeout(timeout);
+    }
+
+    @Override
+    public int getStatusCode() {
+        return method.getStatusCode();
+    }
+
+    @Override
+    public String getStatusText() {
+        return method.getStatusText();
+    }
+
+    @Override
+    public String getResponseHeader(String name) {
+        org.apache.commons.httpclient.Header header = method.getResponseHeader(name);
+        return header == null ? null : header.getValue();
+    }
+
+    @Override
+    public Header[] getResponseHeaders() {
+        return convertHeaders(method.getResponseHeaders());
+    }
+
+    @Override
+    public Map<String,String> getCookies() {
+        Map<String,String> cookies = null;
+        for (String name : COOKIE_HEADER_NAMES) {
+            for (org.apache.commons.httpclient.Header header : method.getResponseHeaders(name)) {
+                for (HeaderElement element : header.getElements()) {
+                    if (cookies == null) {
+                        cookies = new HashMap<String,String>();
+                    }
+                    cookies.put(element.getName(), element.getValue());
+                }
+            }
+        }
+        return cookies;
+    }
+
+    @Override
+    public InputStream getResponseContent() throws IOException {
+        return method.getResponseBodyAsStream();
+    }
+
+    @Override
+    public void execute() throws IOException {
+        populateHostConfiguration();
+
+        // add compression headers if needed
+        if (msgContext.isPropertyTrue(HTTPConstants.MC_ACCEPT_GZIP)) {
+            method.addRequestHeader(HTTPConstants.HEADER_ACCEPT_ENCODING,
+                    HTTPConstants.COMPRESSION_GZIP);
+        }
+
+        if (msgContext.getProperty(HTTPConstants.HTTP_METHOD_PARAMS) != null) {
+            HttpMethodParams params = (HttpMethodParams) msgContext
+                    .getProperty(HTTPConstants.HTTP_METHOD_PARAMS);
+            method.setParams(params);
+        }
+
+        String cookiePolicy = (String) msgContext.getProperty(HTTPConstants.COOKIE_POLICY);
+        if (cookiePolicy != null) {
+            method.getParams().setCookiePolicy(cookiePolicy);
+        }
+        HttpState httpState = (HttpState) msgContext.getProperty(HTTPConstants.CACHED_HTTP_STATE);
+
+        httpClient.executeMethod(config, method, httpState);
+    }
+
+    @Override
+    public void releaseConnection() {
+        method.releaseConnection();
+    }
+
+    /**
+     * getting host configuration to support standard http/s, proxy and NTLM
+     * support
+     * 
+     * @return a HostConfiguration set up with proxy information
+     * @throws AxisFault
+     *             if problems occur
+     */
+    private void populateHostConfiguration() throws AxisFault {
+
+        int port = url.getPort();
+
+        String protocol = url.getProtocol();
+        if (port == -1) {
+            if (HTTPTransportConstants.PROTOCOL_HTTP.equals(protocol)) {
+                port = 80;
+            } else if (HTTPTransportConstants.PROTOCOL_HTTPS.equals(protocol)) {
+                port = 443;
+            }
+
+        }
+
+        // one might need to set his own socket factory. Let's allow that case
+        // as well.
+        Protocol protocolHandler = (Protocol) msgContext.getOptions().getProperty(
+                HTTPConstants.CUSTOM_PROTOCOL_HANDLER);
+
+        // setting the real host configuration
+        // I assume the 90% case, or even 99% case will be no protocol handler
+        // case.
+        if (protocolHandler == null) {
+            config.setHost(url.getHost(), port, url.getProtocol());
+        } else {
+            config.setHost(url.getHost(), port, protocolHandler);
+        }
+
+        // proxy configuration
+
+        if (HTTPProxyConfigurator.isProxyEnabled(msgContext, url)) {
+            if (log.isDebugEnabled()) {
+                log.debug("Configuring HTTP proxy.");
+            }
+            HTTPProxyConfigurator.configure(msgContext, httpClient, config);
+        }
+    }
+
+    /*
+     * This will handle server Authentication, It could be either NTLM, Digest
+     * or Basic Authentication. Apart from that user can change the priory or
+     * add a custom authentication scheme.
+     */
+    @Override
+    public void enableAuthentication(HTTPAuthenticator authenticator) {
+        method.setDoAuthentication(true);
+
+        String username = authenticator.getUsername();
+        String password = authenticator.getPassword();
+        String host = authenticator.getHost();
+        String domain = authenticator.getDomain();
+
+        int port = authenticator.getPort();
+        String realm = authenticator.getRealm();
+
+        Credentials creds;
+
+        HttpState tmpHttpState = null;
+        HttpState httpState = (HttpState) msgContext
+                .getProperty(HTTPConstants.CACHED_HTTP_STATE);
+        if (httpState != null) {
+            tmpHttpState = httpState;
+        } else {
+            tmpHttpState = httpClient.getState();
+        }
+
+        httpClient.getParams().setAuthenticationPreemptive(
+                authenticator.getPreemptiveAuthentication());
+
+        if (host != null) {
+            if (domain != null) {
+                /* Credentials for NTLM Authentication */
+                creds = new NTCredentials(username, password, host, domain);
+            } else {
+                /* Credentials for Digest and Basic Authentication */
+                creds = new UsernamePasswordCredentials(username, password);
+            }
+            tmpHttpState.setCredentials(new AuthScope(host, port, realm), creds);
+        } else {
+            if (domain != null) {
+                /*
+                 * Credentials for NTLM Authentication when host is
+                 * ANY_HOST
+                 */
+                creds = new NTCredentials(username, password, AuthScope.ANY_HOST, domain);
+                tmpHttpState.setCredentials(new AuthScope(AuthScope.ANY_HOST, port, realm),
+                        creds);
+            } else {
+                /* Credentials only for Digest and Basic Authentication */
+                creds = new UsernamePasswordCredentials(username, password);
+                tmpHttpState.setCredentials(new AuthScope(AuthScope.ANY), creds);
+            }
+        }
+        /* Customizing the priority Order */
+        List schemes = authenticator.getAuthSchemes();
+        if (schemes != null && schemes.size() > 0) {
+            List authPrefs = new ArrayList(3);
+            for (int i = 0; i < schemes.size(); i++) {
+                if (schemes.get(i) instanceof AuthPolicy) {
+                    authPrefs.add(schemes.get(i));
+                    continue;
+                }
+                String scheme = (String) schemes.get(i);
+                authPrefs.add(authenticator.getAuthPolicyPref(scheme));
+
+            }
+            httpClient.getParams().setParameter(AuthPolicy.AUTH_SCHEME_PRIORITY, authPrefs);
+        }
+    }
+}
diff --git a/modules/transport/http/src/org/apache/axis2/transport/http/security/SSLProtocolSocketFactory.java b/modules/transport/http-hc3/src/main/java/org/apache/axis2/transport/http/security/SSLProtocolSocketFactory.java
similarity index 100%
rename from modules/transport/http/src/org/apache/axis2/transport/http/security/SSLProtocolSocketFactory.java
rename to modules/transport/http-hc3/src/main/java/org/apache/axis2/transport/http/security/SSLProtocolSocketFactory.java
diff --git a/modules/transport/http/src/org/apache/axis2/transport/http/util/HTTPProxyConfigurationUtil.java b/modules/transport/http-hc3/src/main/java/org/apache/axis2/transport/http/util/HTTPProxyConfigurationUtil.java
similarity index 100%
rename from modules/transport/http/src/org/apache/axis2/transport/http/util/HTTPProxyConfigurationUtil.java
rename to modules/transport/http-hc3/src/main/java/org/apache/axis2/transport/http/util/HTTPProxyConfigurationUtil.java
diff --git a/modules/transport/http/test/org/apache/axis2/transport/http/CommonsHTTPTransportSenderClientSideTest.java b/modules/transport/http-hc3/src/test/java/org/apache/axis2/transport/http/CommonsHTTPTransportSenderClientSideTest.java
similarity index 94%
rename from modules/transport/http/test/org/apache/axis2/transport/http/CommonsHTTPTransportSenderClientSideTest.java
rename to modules/transport/http-hc3/src/test/java/org/apache/axis2/transport/http/CommonsHTTPTransportSenderClientSideTest.java
index 671f49e..ff6c417 100644
--- a/modules/transport/http/test/org/apache/axis2/transport/http/CommonsHTTPTransportSenderClientSideTest.java
+++ b/modules/transport/http-hc3/src/test/java/org/apache/axis2/transport/http/CommonsHTTPTransportSenderClientSideTest.java
@@ -1,5 +1,8 @@
 package org.apache.axis2.transport.http;
 
+import static com.google.common.truth.Truth.assertAbout;
+import static org.apache.axiom.truth.xml.XMLTruth.xml;
+
 import javax.xml.namespace.QName;
 
 import org.apache.axiom.om.OMAbstractFactory;
@@ -41,8 +44,7 @@
                 getHeaders().get("Content-Type"));
         assertEquals("Not the expected Header value", "custom-value",
                 getHeaders().get("Custom-header"));
-        assertEquals("Not the expected body content", getEnvelope().toString()
-                .replace("utf", "UTF"), getStringContent());
+        assertAbout(xml()).that(getStringContent()).hasSameContentAs(getEnvelope().toString());
     }
      
     /*
diff --git a/modules/transport/http/test/org/apache/axis2/transport/http/HTTPClient3SenderTest.java b/modules/transport/http-hc3/src/test/java/org/apache/axis2/transport/http/HTTPClient3SenderTest.java
similarity index 100%
rename from modules/transport/http/test/org/apache/axis2/transport/http/HTTPClient3SenderTest.java
rename to modules/transport/http-hc3/src/test/java/org/apache/axis2/transport/http/HTTPClient3SenderTest.java
diff --git a/modules/transport/http/test/org/apache/axis2/transport/http/HTTPClient3TransportSenderTest.java b/modules/transport/http-hc3/src/test/java/org/apache/axis2/transport/http/HTTPClient3TransportSenderTest.java
similarity index 61%
copy from modules/transport/http/test/org/apache/axis2/transport/http/HTTPClient3TransportSenderTest.java
copy to modules/transport/http-hc3/src/test/java/org/apache/axis2/transport/http/HTTPClient3TransportSenderTest.java
index 058b62b..2c3fe68 100644
--- a/modules/transport/http/test/org/apache/axis2/transport/http/HTTPClient3TransportSenderTest.java
+++ b/modules/transport/http-hc3/src/test/java/org/apache/axis2/transport/http/HTTPClient3TransportSenderTest.java
@@ -19,8 +19,12 @@
 
 package org.apache.axis2.transport.http;
 
+import org.apache.axis2.AxisFault;
+import org.apache.axis2.context.MessageContext;
 import org.apache.axis2.transport.TransportSender;
 import org.apache.axis2.transport.http.impl.httpclient3.HTTPClient3TransportSender;
+import org.apache.commons.httpclient.HttpMethod;
+import org.apache.commons.httpclient.methods.GetMethod;
 
 public class HTTPClient3TransportSenderTest extends CommonsHTTPTransportSenderTest {
 
@@ -29,4 +33,15 @@
         return new HTTPClient3TransportSender();
     }
 
+    public void testCleanup() throws AxisFault {
+        TransportSender sender = getTransportSender();
+        MessageContext msgContext = new MessageContext();
+        HttpMethod httpMethod = new GetMethod();
+        msgContext.setProperty(HTTPConstants.HTTP_METHOD, httpMethod);
+        assertNotNull("HttpMethod can not be null",
+                msgContext.getProperty(HTTPConstants.HTTP_METHOD));
+        sender.cleanup(msgContext);
+        assertNull("HttpMethod should be null", msgContext.getProperty(HTTPConstants.HTTP_METHOD));
+
+    }
 }
diff --git a/modules/integration/test/org/apache/axis2/transport/http/NonProxyHostTest.java b/modules/transport/http-hc3/src/test/java/org/apache/axis2/transport/http/NonProxyHostTest.java
similarity index 100%
rename from modules/integration/test/org/apache/axis2/transport/http/NonProxyHostTest.java
rename to modules/transport/http-hc3/src/test/java/org/apache/axis2/transport/http/NonProxyHostTest.java
diff --git a/modules/transport/http/test-resources/org/apache/axis2/transport/http/axis2.xml b/modules/transport/http-hc3/src/test/resources/org/apache/axis2/transport/http/axis2.xml
similarity index 98%
rename from modules/transport/http/test-resources/org/apache/axis2/transport/http/axis2.xml
rename to modules/transport/http-hc3/src/test/resources/org/apache/axis2/transport/http/axis2.xml
index 941ddaa..fcbb803 100644
--- a/modules/transport/http/test-resources/org/apache/axis2/transport/http/axis2.xml
+++ b/modules/transport/http-hc3/src/test/resources/org/apache/axis2/transport/http/axis2.xml
@@ -50,7 +50,7 @@
                          class="org.apache.axis2.builder.XFormURLEncodedBuilder"/>
     </messageBuilders>
 
-    <transportSender name="http" class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
+    <transportSender name="http" class="org.apache.axis2.transport.http.impl.httpclient3.HTTPClient3TransportSender">
         <parameter name="PROTOCOL">HTTP/1.1</parameter>
         <parameter name="Transfer-Encoding">chunked</parameter>
     </transportSender>
@@ -153,4 +153,4 @@
         <phase name="MessageOut"/>
         <phase name="Security"/>
     </phaseOrder>
-</axisconfig>
\ No newline at end of file
+</axisconfig>
diff --git a/modules/transport/http/pom.xml b/modules/transport/http/pom.xml
index 519c1d0..830f616 100644
--- a/modules/transport/http/pom.xml
+++ b/modules/transport/http/pom.xml
@@ -23,14 +23,14 @@
     <modelVersion>4.0.0</modelVersion>
     <parent>
         <groupId>org.apache.axis2</groupId>
-        <artifactId>axis2-parent</artifactId>
-        <version>1.7.0-SNAPSHOT</version>
-        <relativePath>../../parent/pom.xml</relativePath>
+        <artifactId>axis2</artifactId>
+        <version>1.8.0-SNAPSHOT</version>
+        <relativePath>../../../pom.xml</relativePath>
     </parent>
     <artifactId>axis2-transport-http</artifactId>
     <name>Apache Axis2 - Transport - HTTP</name>
     <description>This inclues all the available transports in Axis2</description>
-    <packaging>bundle</packaging>
+    <packaging>jar</packaging>
     <url>http://axis.apache.org/axis2/java/core/</url>
     <scm>
         <connection>scm:svn:http://svn.apache.org/repos/asf/axis/axis2/java/core/trunk/modules/transport/http</connection>
@@ -62,20 +62,14 @@
                 </executions>
             </plugin>
             <plugin>
-                <groupId>org.apache.felix</groupId>
-                <artifactId>maven-bundle-plugin</artifactId>
-                <extensions>true</extensions>
-                <configuration>
-                    <instructions>
-                        <Bundle-Name>${project.artifactId}</Bundle-Name>
-                        <Bundle-Vendor>Apache Software Foundation</Bundle-Vendor>
-                        <Bundle-Description>${project.description}</Bundle-Description>
-                        <Bundle-SymbolicName>${project.artifactId}</Bundle-SymbolicName>
-                        <Export-Package>
-                            org.apache.axis2.transport.http.*;-split-package:=merge-last,
-                        </Export-Package>
-                    </instructions>
-                </configuration>
+                <artifactId>maven-jar-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>test-jar</goal>
+                        </goals>
+                    </execution>
+                </executions>
             </plugin>
         </plugins>
         <resources>
@@ -103,31 +97,28 @@
         </dependency>
         <dependency>
             <groupId>org.apache.httpcomponents</groupId>
-            <artifactId>httpcore</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.httpcomponents</groupId>
             <artifactId>httpclient</artifactId>
         </dependency>
         <dependency>
-            <groupId>commons-httpclient</groupId>
-            <artifactId>commons-httpclient</artifactId>
-        </dependency>
-        <dependency>
             <groupId>junit</groupId>
             <artifactId>junit</artifactId>
             <scope>test</scope>
         </dependency>
-	<dependency>
-	        <groupId>xmlunit</groupId>
-	        <artifactId>xmlunit</artifactId>
+        <dependency>
+            <groupId>xmlunit</groupId>
+            <artifactId>xmlunit</artifactId>
             <scope>test</scope>
-	 </dependency>
+        </dependency>
         <dependency>
             <groupId>org.apache.axis2</groupId>
             <artifactId>axis2-transport-testkit</artifactId>
             <version>${project.version}</version>
             <scope>test</scope>
         </dependency>
+        <dependency>
+            <groupId>org.apache.ws.commons.axiom</groupId>
+            <artifactId>axiom-truth</artifactId>
+            <scope>test</scope>
+        </dependency>
     </dependencies>
 </project>
diff --git a/modules/transport/http/src/org/apache/axis2/transport/http/AbstractAgent.java b/modules/transport/http/src/org/apache/axis2/transport/http/AbstractAgent.java
index 85f1d95..0e96f58 100644
--- a/modules/transport/http/src/org/apache/axis2/transport/http/AbstractAgent.java
+++ b/modules/transport/http/src/org/apache/axis2/transport/http/AbstractAgent.java
@@ -56,7 +56,8 @@
             throws IOException, ServletException {
 
 
-        String requestURI = httpServletRequest.getRequestURI();
+        // Don't use getRequestURI() here because it includes the session ID
+        String requestURI = httpServletRequest.getServletPath() + httpServletRequest.getPathInfo();
 
         String operation;
         int i = requestURI.lastIndexOf('/');
@@ -116,7 +117,7 @@
                               HttpServletResponse httpServletResponse)
             throws IOException, ServletException {
         httpServletResponse.setContentType("text/html");
-        httpServletRequest.getRequestDispatcher(Constants.AXIS_WEB_CONTENT_ROOT + jspName)
+        httpServletRequest.getRequestDispatcher("/WEB-INF/views/" + jspName)
                 .include(httpServletRequest, httpServletResponse);
     }
 
@@ -151,9 +152,8 @@
         }
     }
 
-    protected void populateSessionInformation(HttpServletRequest req) {
-        HashMap services = configContext.getAxisConfiguration().getServices();
-        req.getSession().setAttribute(Constants.SERVICE_MAP, services);
-        req.getSession().setAttribute(Constants.SERVICE_PATH, configContext.getServicePath());
+    protected void populateRequestAttributes(HttpServletRequest req) {
+        req.setAttribute("configContext", configContext);
+        req.setAttribute(Constants.SERVICE_PATH, configContext.getServicePath());
     }
 }
diff --git a/modules/transport/http/src/org/apache/axis2/transport/http/AbstractHTTPSender.java b/modules/transport/http/src/org/apache/axis2/transport/http/AbstractHTTPSender.java
deleted file mode 100644
index 5910c46..0000000
--- a/modules/transport/http/src/org/apache/axis2/transport/http/AbstractHTTPSender.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.axis2.transport.http;
-
-
-import java.io.IOException;
-import java.net.URL;
-
-import org.apache.axiom.om.OMOutputFormat;
-import org.apache.axis2.AxisFault;
-import org.apache.axis2.context.MessageContext;
-import org.apache.axis2.description.TransportOutDescription;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-
-
-public abstract class AbstractHTTPSender {
-    protected boolean chunked = false;
-    protected String httpVersion = HTTPConstants.HEADER_PROTOCOL_11;
-
-    private static final Log log = LogFactory.getLog(AbstractHTTPSender.class);   
-
-    /**
-     * proxydiscription
-     */
-    protected TransportOutDescription proxyOutSetting = null;
-    protected OMOutputFormat format = new OMOutputFormat();
-
-    /**
-     * isAllowedRetry will be using to check where the
-     * retry should be allowed or not.
-     */
-    protected boolean isAllowedRetry = false;
-
-    public void setChunked(boolean chunked) {
-        this.chunked = chunked;
-    }
-
-    public void setHttpVersion(String version) throws AxisFault {
-        if (version != null) {
-            if (HTTPConstants.HEADER_PROTOCOL_11.equals(version)) {
-                this.httpVersion = HTTPConstants.HEADER_PROTOCOL_11;
-            } else if (HTTPConstants.HEADER_PROTOCOL_10.equals(version)) {
-                this.httpVersion = HTTPConstants.HEADER_PROTOCOL_10;
-                // chunked is not possible with HTTP/1.0
-                this.chunked = false;
-            } else {
-                throw new AxisFault(
-                        "Parameter " + HTTPConstants.PROTOCOL_VERSION
-                                + " Can have values only HTTP/1.0 or HTTP/1.1");
-            }
-        }
-    }       
-
-    public abstract void send(MessageContext msgContext, URL url, String soapActionString)
-            throws IOException;   
-
-    public void setFormat(OMOutputFormat format) {
-        this.format = format;
-    }  
-    
-}
diff --git a/modules/transport/http/src/org/apache/axis2/transport/http/CommonsHTTPTransportSender.java b/modules/transport/http/src/org/apache/axis2/transport/http/AbstractHTTPTransportSender.java
similarity index 93%
rename from modules/transport/http/src/org/apache/axis2/transport/http/CommonsHTTPTransportSender.java
rename to modules/transport/http/src/org/apache/axis2/transport/http/AbstractHTTPTransportSender.java
index 8192359..f50f0ff 100644
--- a/modules/transport/http/src/org/apache/axis2/transport/http/CommonsHTTPTransportSender.java
+++ b/modules/transport/http/src/org/apache/axis2/transport/http/AbstractHTTPTransportSender.java
@@ -32,11 +32,9 @@
 import org.apache.axis2.transport.MessageFormatter;
 import org.apache.axis2.transport.OutTransportInfo;
 import org.apache.axis2.transport.TransportUtils;
-import org.apache.axis2.transport.http.impl.httpclient3.HTTPSenderImpl;
 import org.apache.axis2.transport.http.server.AxisHttpResponse;
 import org.apache.axis2.util.JavaUtils;
 import org.apache.axis2.util.MessageProcessorSelector;
-import org.apache.commons.httpclient.HttpMethod;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 
@@ -52,11 +50,9 @@
 import java.util.zip.GZIPOutputStream;
 
 /**
- * The Class CommonsHTTPTransportSender use Commons-HTTPclient 3.1. Functionality
- * of this class is identical to HTTPClient4TransportSender and users are highly
- * encouraged to use HTTPClient4TransportSender instead of this.
+ * Base class for Apache HttpClient (3.1 or 4.x) based transport senders.
  */
-public class CommonsHTTPTransportSender extends AbstractHandler implements HTTPTransportSender {
+public abstract class AbstractHTTPTransportSender extends AbstractHandler implements HTTPTransportSender {
     /**
      * The {@link TransportOutDescription} object received by the call to
      * {@link #init(ConfigurationContext, TransportOutDescription)}.
@@ -64,7 +60,7 @@
     private TransportOutDescription transportOut;
 
     private static final Log log = LogFactory
-            .getLog(CommonsHTTPTransportSender.class);
+            .getLog(AbstractHTTPTransportSender.class);
 
     /**
      * Default HTTP version as configured in <tt>axis2.xml</tt>. This may be overridden on a per
@@ -83,23 +79,6 @@
 
     private int connectionTimeout = HTTPConstants.DEFAULT_CONNECTION_TIMEOUT;
     
-    /*
-     * It's Required to keep this method to keep backward compatibility because
-     * still it's possible to register CommonsHTTPTransportSender in the
-     * axis2.xml.
-     */
-    public void cleanup(MessageContext msgContext) throws AxisFault {
-        
-            HttpMethod httpMethod = (HttpMethod) msgContext.getProperty(HTTPConstants.HTTP_METHOD);
-            if (httpMethod != null) {
-                // TODO : Don't do this if we're not on the right thread! Can we confirm?
-                log.trace("cleanup() releasing connection for " + httpMethod);
-
-                httpMethod.releaseConnection();
-                msgContext.removeProperty(HTTPConstants.HTTP_METHOD); // guard against multiple calls
-            }        
-    }
-
     public void init(ConfigurationContext confContext,
                      TransportOutDescription transportOut) throws AxisFault {
         this.transportOut = transportOut;
@@ -377,15 +356,7 @@
             URL url = new URL(toEPR.getAddress());
 
             // select the Message Sender depending on the REST status
-            AbstractHTTPSender sender = createHTTPSender();
-
-            boolean chunked;
-            if (messageContext.getProperty(HTTPConstants.CHUNKED) != null) {
-                chunked = JavaUtils.isTrueExplicitly(messageContext
-                        .getProperty(HTTPConstants.CHUNKED));
-            } else {
-                chunked = defaultChunked;
-            }
+            HTTPSender sender = createHTTPSender();
 
             String httpVersion;
             if (messageContext.getProperty(HTTPConstants.HTTP_PROTOCOL_VERSION) != null) {
@@ -394,6 +365,17 @@
             } else {
                 httpVersion = defaultHttpVersion;
             }
+            
+            boolean chunked;
+            if (httpVersion.equals(HTTPConstants.HEADER_PROTOCOL_10)) {
+                chunked = false;
+            } else if (messageContext.getProperty(HTTPConstants.CHUNKED) != null) {
+                chunked = JavaUtils.isTrueExplicitly(messageContext
+                        .getProperty(HTTPConstants.CHUNKED));
+            } else {
+                chunked = defaultChunked;
+            }
+
             // Following order needed to be preserved because,
             // HTTP/1.0 does not support chunk encoding
             sender.setChunked(chunked);
@@ -410,9 +392,7 @@
         }
     }
 
-    protected AbstractHTTPSender createHTTPSender() {
-        return new HTTPSenderImpl();
-    }
+    protected abstract HTTPSender createHTTPSender();
 
     /**
      * @param actionString
diff --git a/modules/transport/http/src/org/apache/axis2/transport/http/AxisRequestEntity.java b/modules/transport/http/src/org/apache/axis2/transport/http/AxisRequestEntity.java
index 2fe3e2e..3c12f71 100644
--- a/modules/transport/http/src/org/apache/axis2/transport/http/AxisRequestEntity.java
+++ b/modules/transport/http/src/org/apache/axis2/transport/http/AxisRequestEntity.java
@@ -19,16 +19,14 @@
 
 package org.apache.axis2.transport.http;
 
+import org.apache.axiom.blob.Blobs;
+import org.apache.axiom.blob.MemoryBlob;
 import org.apache.axiom.om.OMOutputFormat;
 import org.apache.axis2.AxisFault;
 import org.apache.axis2.context.MessageContext;
 import org.apache.axis2.transport.MessageFormatter;
-import org.apache.axis2.util.JavaUtils;
 
-import javax.xml.stream.FactoryConfigurationError;
-import java.io.ByteArrayInputStream;
 import java.io.IOException;
-import java.io.InputStream;
 import java.io.OutputStream;
 import java.util.zip.GZIPOutputStream;
 
@@ -36,65 +34,80 @@
  * This Request Entity is used by the HTTPCommonsTransportSender. This wraps the
  * Axis2 message formatter object.
  */
-public abstract class AxisRequestEntity  {
+public final class AxisRequestEntity  {
 
     private MessageFormatter messageFormatter;
 
-    private boolean chunked = false;
+    private final boolean chunked;
+    
+    private final boolean gzip;
 
     private MessageContext messageContext;
 
-    private byte[] bytes;
+    private final MemoryBlob content;
 
-    private boolean isAllowedRetry;
+    private final boolean preserve;
 
     private OMOutputFormat format;
 
-    private String soapAction;
+    private final String contentType;
 
     /**
      * Method calls to this request entity are delegated to the following Axis2
      * message formatter object.
      *
      * @param messageFormatter
+     * @throws AxisFault 
      */
-    public AxisRequestEntity(MessageFormatter messageFormatter,
-                             MessageContext msgContext, OMOutputFormat format, String soapAction,
-                             boolean chunked, boolean isAllowedRetry) {
+    AxisRequestEntity(MessageFormatter messageFormatter,
+                      MessageContext msgContext, OMOutputFormat format, String contentType,
+                      boolean chunked, boolean gzip, boolean preserve) throws AxisFault {
         this.messageFormatter = messageFormatter;
         this.messageContext = msgContext;
         this.chunked = chunked;
-        this.isAllowedRetry = isAllowedRetry;
+        this.gzip = gzip;
+        this.preserve = preserve;
         this.format = format;
-        this.soapAction = soapAction;
+        this.contentType = contentType;
+        if (chunked) {
+            content = null;
+        } else {
+            content = Blobs.createMemoryBlob();
+            OutputStream out = content.getOutputStream();
+            try {
+                internalWriteRequest(out);
+                out.close();
+            } catch (IOException ex) {
+                throw AxisFault.makeFault(ex);
+            }
+        }
     }
 
     public boolean isRepeatable() {
-        // All Axis2 request entity implementations were returning this true
-        // So we return true as defualt
-        return true;
+        // If chunking is disabled, we don't preserve the original SOAPEnvelope, but we store the
+        // serialized SOAPEnvelope in a byte array, which means that the entity can be written
+        // repeatedly.
+        return preserve || !chunked;
     }
 
     public void writeRequest(OutputStream outStream) throws IOException {
-        Object gzip = messageContext.getOptions().getProperty(HTTPConstants.MC_GZIP_REQUEST);
-        if (gzip != null && JavaUtils.isTrueExplicitly(gzip) && chunked) {
+        if (chunked) {
+            internalWriteRequest(outStream);
+        } else {
+            content.writeTo(outStream);
+        }
+    }
+    
+    private void internalWriteRequest(OutputStream outStream) throws IOException {
+        if (gzip) {
             outStream = new GZIPOutputStream(outStream);
         }
         try {
-            if (chunked) {
-                messageFormatter.writeTo(messageContext, format, outStream, isAllowedRetry);
-            } else {
-                if (bytes == null) {
-                    bytes = messageFormatter.getBytes(messageContext, format);
-                }
-                outStream.write(bytes);
-            }
-            if (outStream instanceof GZIPOutputStream) {
+            messageFormatter.writeTo(messageContext, format, outStream, preserve);
+            if (gzip) {
                 ((GZIPOutputStream) outStream).finish();
             }
             outStream.flush();
-        } catch (FactoryConfigurationError e) {
-            throw AxisFault.makeFault(e);
         } catch (IOException e) {
             throw AxisFault.makeFault(e);
         }
@@ -104,32 +117,16 @@
     public long getContentLength() {
         if (chunked) {
             return -1;
+        } else {
+            return content.getSize();
         }
-        if (bytes == null) {
-            try {
-                bytes = messageFormatter.getBytes(messageContext, format);
-            } catch (AxisFault e) {
-                return -1;
-            }
-        }
-        return bytes.length;
     }
 
-    public String getContentTypeAsString() {
-        return messageFormatter.getContentType(messageContext, format, soapAction);
+    public String getContentType() {
+        return contentType;
     }
 
     public boolean isChunked() {
         return chunked;
     }
-
-    public void setChunked(boolean chunked) {
-        this.chunked = chunked;
-    }
-
-    public InputStream getRequestEntityContent() throws IOException {
-        return new ByteArrayInputStream(messageFormatter.getBytes(messageContext, format));
-    }
-    
-    
 }
diff --git a/modules/transport/http/src/org/apache/axis2/transport/http/AxisServlet.java b/modules/transport/http/src/org/apache/axis2/transport/http/AxisServlet.java
index f78af68..1d8eed9 100644
--- a/modules/transport/http/src/org/apache/axis2/transport/http/AxisServlet.java
+++ b/modules/transport/http/src/org/apache/axis2/transport/http/AxisServlet.java
@@ -21,7 +21,7 @@
 package org.apache.axis2.transport.http;
 
 import org.apache.axiom.om.OMElement;
-import org.apache.axiom.om.impl.builder.StAXBuilder;
+import org.apache.axiom.om.OMXMLParserWrapper;
 import org.apache.axiom.soap.SOAP12Constants;
 import org.apache.axiom.soap.SOAPEnvelope;
 import org.apache.axiom.soap.SOAPFaultCode;
@@ -52,7 +52,6 @@
 import org.apache.axis2.util.JavaUtils;
 import org.apache.axis2.util.MessageContextBuilder;
 import org.apache.axis2.util.OnDemandLogger;
-import org.apache.commons.httpclient.MultiThreadedHttpConnectionManager;
 
 import javax.servlet.ServletConfig;
 import javax.servlet.ServletContext;
@@ -87,11 +86,11 @@
  */
 public class AxisServlet extends HttpServlet {
     private static final long serialVersionUID = 3105135058353738906L;
-    
+
     static final OnDemandLogger log = new OnDemandLogger(AxisServlet.class);
     public static final String CONFIGURATION_CONTEXT = "CONFIGURATION_CONTEXT";
     public static final String SESSION_ID = "SessionId";
-    
+
     private static final Set<String> metadataQueryParamNames;
 
     protected transient ConfigurationContext configContext;
@@ -108,9 +107,9 @@
     private boolean closeReader = true;
 
     private static final int BUFFER_SIZE = 1024 * 8;
-    
+
     private boolean initCalled = false;
-    
+
     private transient AxisServletListener httpListener;
     private transient AxisServletListener httpsListener;
 
@@ -145,7 +144,7 @@
         //set the initial buffer for a larger value
         response.setBufferSize(BUFFER_SIZE);
 
-        
+
         preprocessRequest(request);
 
         MessageContext msgContext;
@@ -157,9 +156,9 @@
             try {
                 // adding ServletContext into msgContext;
                 String url = request.getRequestURL().toString();
-                
+
                 OutputStream bufferedOut = new BufferedOutputStream(out);
-                
+
                 InvocationResponse pi = HTTPTransportUtils.
                         processHTTPPostRequest(msgContext,
                                 new BufferedInputStream(request.getInputStream()),
@@ -179,8 +178,8 @@
                 }
 
                 // if data has not been sent back and this is not a signal response
-                if (!TransportUtils.isResponseWritten(msgContext)  
-                		&& (((RequestResponseTransport) 
+                if (!TransportUtils.isResponseWritten(msgContext)
+                		&& (((RequestResponseTransport)
                 				msgContext.getProperty(
                 						RequestResponseTransport.TRANSPORT_CONTROL)).
                 						getStatus() != RequestResponseTransport.
@@ -193,7 +192,7 @@
                             + msgContext
                             .getProperty(Constants.Configuration.CHARACTER_SET_ENCODING));
                 }
-                
+
                 // Make sure that no data remains in the BufferedOutputStream even if the message
                 // formatter doesn't call flush
                 bufferedOut.flush();
@@ -363,7 +362,7 @@
             try {
                 SOAPEnvelope envelope = messageContext.getEnvelope();
                 if(envelope != null) {
-                    StAXBuilder builder = (StAXBuilder) envelope.getBuilder();
+                    OMXMLParserWrapper builder = envelope.getBuilder();
                     if (builder != null) {
                         builder.close();
                     }
@@ -458,7 +457,7 @@
      */
     @Override
     public void init(ServletConfig config) throws ServletException {
-        
+
         // prevent this method from being called more than once per instance
         initCalled = true;
         super.init(config);
@@ -516,9 +515,12 @@
                      "unreliable.");
         }
 
-        ListenerManager listenerManager = new ListenerManager();
-        listenerManager.init(configContext);
-        listenerManager.start();
+        // AXIS2-5673: Create a new ListenerManager only if configContext does not have one already.
+        if (configContext.getListenerManager() == null) {
+            ListenerManager listenerManager = new ListenerManager();
+            listenerManager.init(configContext);
+            listenerManager.start();
+        }
     }
 
     private AxisServletListener getAxisServletListener(String name) {
@@ -561,9 +563,13 @@
                 && HTTPTransportConstants.HTTP_CLIENT_4_X_VERSION.equals(clientVersion)) {
             // TODO - Handle for HTTPClient 4
         } else {
-            MultiThreadedHttpConnectionManager.shutdownAll();
+            try {
+                Class.forName("org.apache.commons.httpclient.MultiThreadedHttpConnectionManager").getMethod("shutdownAll").invoke(null);
+            } catch (Exception ex) {
+                log.warn("Failed to shut down MultiThreadedHttpConnectionManager", ex);
+            }
         }
-        
+
     }
 
     private String getHTTPClientVersion() {
@@ -643,7 +649,7 @@
 
         configContext.setContextRoot(contextRoot);
     }
-    
+
     /**
      * Preprocess the request. This will:
      * <ul>
@@ -653,7 +659,7 @@
      * <li>Reject the request if no {@link AxisServletListener} has been registered for the
      * protocol.
      * </ul>
-     * 
+     *
      * @param req the request to preprocess
      */
     // This method should not be part of the public API. In particular we must not allow subclasses
@@ -677,7 +683,7 @@
                 }
             }
         }
-        
+
     }
 
     /**
@@ -744,13 +750,9 @@
         msgContext.setProperty(MessageContext.TRANSPORT_HEADERS, getTransportHeaders(request));
         msgContext.setProperty(HTTPConstants.MC_HTTP_SERVLETREQUEST, request);
         msgContext.setProperty(HTTPConstants.MC_HTTP_SERVLETRESPONSE, response);
-        try {
-            ServletContext context = getServletContext();
-            if(context != null) {
-                msgContext.setProperty(HTTPConstants.MC_HTTP_SERVLETCONTEXT, context);
-            }
-        } catch (Exception e){
-            log.debug(e.getMessage(), e);
+        ServletContext context = getServletContext();
+        if(context != null) {
+            msgContext.setProperty(HTTPConstants.MC_HTTP_SERVLETCONTEXT, context);
         }
 
         //setting the RequestResponseTransport object
@@ -812,15 +814,15 @@
             faultToBeThrownOut = fault;
             signalResponseReady();
         }
-        
+
         public boolean isResponseWritten() {
         	return responseWritten;
         }
-        
+
         public void setResponseWritten(boolean responseWritten) {
         	this.responseWritten = responseWritten;
         }
-        
+
     }
 
     void setResponseState(MessageContext messageContext, HttpServletResponse response) {
diff --git a/modules/transport/http/src/org/apache/axis2/transport/http/CommonsTransportHeaders.java b/modules/transport/http/src/org/apache/axis2/transport/http/CommonsTransportHeaders.java
index 828d226..0d05ffe 100644
--- a/modules/transport/http/src/org/apache/axis2/transport/http/CommonsTransportHeaders.java
+++ b/modules/transport/http/src/org/apache/axis2/transport/http/CommonsTransportHeaders.java
@@ -25,11 +25,22 @@
 import java.util.Map;
 import java.util.Set;
 
-public abstract class CommonsTransportHeaders implements Map {  
+import org.apache.axiom.mime.Header;
 
-    HashMap headerMap = null;
-   
-    protected abstract void init();
+public final class CommonsTransportHeaders implements Map<String,String> {  
+    private final Header[] headers;
+    private Map<String,String> headerMap;
+    
+    public CommonsTransportHeaders(Header[] headers) {
+        this.headers = headers;
+    }
+
+    private void init() {
+        headerMap = new HashMap<String,String>();
+        for (int i = 0; i < headers.length; i++) {
+            headerMap.put(headers[i].getName(), headers[i].getValue());
+        }
+    }
     
     public int size() {
         if (headerMap == null) {
@@ -65,62 +76,52 @@
         return headerMap.containsValue(value);
     }
 
-    public Collection values() {
+    public Collection<String> values() {
         if (headerMap == null) {
             init();
         }
         return headerMap.values();
     }
 
-    public void putAll(Map t) {
+    public void putAll(Map<? extends String,? extends String> t) {
         if (headerMap == null) {
             init();
         }
         headerMap.putAll(t);
     }
 
-    public Set entrySet() {
+    public Set<Map.Entry<String,String>> entrySet() {
         if (headerMap == null) {
             init();
         }
         return headerMap.entrySet();
     }
 
-    public Set keySet() {
+    public Set<String> keySet() {
         if (headerMap == null) {
             init();
         }
         return headerMap.keySet();
     }
 
-    public Object get(Object key) {
+    public String get(Object key) {
         if (headerMap == null) {
             init();
         }
         return headerMap.get(key);
     }
 
-    public Object remove(Object key) {
+    public String remove(Object key) {
         if (headerMap == null) {
             init();
         }
         return headerMap.remove(key);
     }
 
-    public Object put(Object key, Object value) {
+    public String put(String key, String value) {
         if (headerMap == null) {
             init();
         }
         return headerMap.put(key, value);
     }
-
-    public HashMap getHeaderMap() {
-        return headerMap;
-    }
-
-    public void setHeaderMap(HashMap headerMap) {
-        this.headerMap = headerMap;
-    }
-    
-    
 }
diff --git a/modules/transport/http/src/org/apache/axis2/transport/http/ForbidSessionCreationWrapper.java b/modules/transport/http/src/org/apache/axis2/transport/http/ForbidSessionCreationWrapper.java
new file mode 100644
index 0000000..8f7c943
--- /dev/null
+++ b/modules/transport/http/src/org/apache/axis2/transport/http/ForbidSessionCreationWrapper.java
@@ -0,0 +1,44 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.axis2.transport.http;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletRequestWrapper;
+import javax.servlet.http.HttpSession;
+
+public class ForbidSessionCreationWrapper extends HttpServletRequestWrapper {
+    public ForbidSessionCreationWrapper(HttpServletRequest request) {
+        super(request);
+    }
+
+    @Override
+    public HttpSession getSession() {
+        return getSession(true);
+    }
+
+    @Override
+    public HttpSession getSession(boolean create) {
+        HttpSession session = super.getSession(false);
+        if (create && session == null) {
+            throw new IllegalStateException("Session creation forbidden");
+        } else {
+            return session;
+        }
+    }
+}
diff --git a/modules/transport/http/src/org/apache/axis2/transport/http/HTTPSender.java b/modules/transport/http/src/org/apache/axis2/transport/http/HTTPSender.java
index 3fef2fc..0465705 100644
--- a/modules/transport/http/src/org/apache/axis2/transport/http/HTTPSender.java
+++ b/modules/transport/http/src/org/apache/axis2/transport/http/HTTPSender.java
@@ -20,78 +20,92 @@
 package org.apache.axis2.transport.http;
 
 
+import org.apache.axiom.mime.ContentType;
+import org.apache.axiom.mime.Header;
+import org.apache.axiom.om.OMAttribute;
+import org.apache.axiom.om.OMElement;
+import org.apache.axiom.om.OMOutputFormat;
 import org.apache.axis2.AxisFault;
 import org.apache.axis2.Constants;
 import org.apache.axis2.context.MessageContext;
+import org.apache.axis2.context.NamedValue;
+import org.apache.axis2.context.OperationContext;
+import org.apache.axis2.description.TransportOutDescription;
+import org.apache.axis2.i18n.Messages;
+import org.apache.axis2.transport.MessageFormatter;
+import org.apache.axis2.util.MessageProcessorSelector;
+import org.apache.axis2.util.Utils;
+import org.apache.axis2.wsdl.WSDLConstants;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
+import org.apache.http.HttpStatus;
+import org.apache.http.protocol.HTTP;
 
 import java.io.IOException;
+import java.io.InputStream;
 import java.net.URL;
+import java.text.ParseException;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.zip.GZIPInputStream;
+
+import javax.xml.namespace.QName;
 
 //TODO - It better if we can define these method in a interface move these into AbstractHTTPSender and get rid of this class.
-public abstract class HTTPSender extends AbstractHTTPSender {
+public abstract class HTTPSender {
 
     private static final Log log = LogFactory.getLog(HTTPSender.class);
-    /**
-     * Used to send a request via HTTP Get method
-     *
-     * @param msgContext        - The MessageContext of the message
-     * @param url               - The target URL
-     * @param soapActiionString - The soapAction string of the request
-     * @throws AxisFault - Thrown in case an exception occurs
-     */
-    protected abstract void sendViaGet(MessageContext msgContext, URL url, String soapActiionString)
-            throws AxisFault;
     
-    /**
-     * Used to send a request via HTTP Delete Method
-     *
-     * @param msgContext        - The MessageContext of the message
-     * @param url               - The target URL
-     * @param soapActiionString - The soapAction string of the request
-     * @throws AxisFault - Thrown in case an exception occurs
-     */
-    protected abstract void sendViaDelete(MessageContext msgContext, URL url, String soapActiionString)
-            throws AxisFault; 
-    /**
-     * Used to send a request via HTTP Post Method
-     *
-     * @param msgContext       - The MessageContext of the message
-     * @param url              - The target URL
-     * @param soapActionString - The soapAction string of the request
-     * @throws AxisFault - Thrown in case an exception occurs
-     */
-    protected abstract void sendViaPost(MessageContext msgContext, URL url,
-                             String soapActionString) throws AxisFault;
+    private boolean chunked = false;
+    private String httpVersion = HTTPConstants.HEADER_PROTOCOL_11;
+    protected TransportOutDescription proxyOutSetting = null;
+    protected OMOutputFormat format = new OMOutputFormat();
+    
+    public void setChunked(boolean chunked) {
+        this.chunked = chunked;
+    }
 
+    public void setHttpVersion(String version) throws AxisFault {
+        if (version != null) {
+            if (HTTPConstants.HEADER_PROTOCOL_11.equals(version)) {
+                this.httpVersion = HTTPConstants.HEADER_PROTOCOL_11;
+            } else if (HTTPConstants.HEADER_PROTOCOL_10.equals(version)) {
+                this.httpVersion = HTTPConstants.HEADER_PROTOCOL_10;
+                // chunked is not possible with HTTP/1.0
+                this.chunked = false;
+            } else {
+                throw new AxisFault(
+                        "Parameter " + HTTPConstants.PROTOCOL_VERSION
+                                + " Can have values only HTTP/1.0 or HTTP/1.1");
+            }
+        }
+    }       
+
+    public void setFormat(OMOutputFormat format) {
+        this.format = format;
+    }
 
     /**
-     * Used to send a request via HTTP Put Method
+     * Start a new HTTP request.
      *
-     * @param msgContext       - The MessageContext of the message
-     * @param url              - The target URL
-     * @param soapActionString - The soapAction string of the request
-     * @throws AxisFault - Thrown in case an exception occurs
+     * @param msgContext
+     *            The MessageContext of the request message
+     * @param methodName
+     *            The HTTP method name
+     * @param url
+     *            The target URL
+     * @param requestEntity
+     *            The content of the request or {@code null} if the HTTP request shouldn't have any
+     *            content (e.g. for {@code GET} requests)
+     * @throws AxisFault
+     *            Thrown in case an exception occurs
      */
-    protected abstract void sendViaPut(MessageContext msgContext, URL url,
-                            String soapActionString) throws AxisFault;
-
-     
-    /**
-     * Used to handle the HTTP Response
-     *
-     * @param msgContext - The MessageContext of the message
-     * @param method     - The HTTP method used
-     * @throws IOException - Thrown in case an exception occurs
-     */
-    protected abstract void handleResponse(MessageContext msgContext,
-                                Object httpMethodBase) throws IOException;
+    protected abstract Request createRequest(MessageContext msgContext, String methodName, URL url,
+            AxisRequestEntity requestEntity) throws AxisFault;
     
-    protected abstract void cleanup(MessageContext msgContext, Object httpMethod);
-    
-    
-
     public void send(MessageContext msgContext, URL url, String soapActionString)
             throws IOException {
 
@@ -100,55 +114,373 @@
 
         String httpMethod =
                 (String) msgContext.getProperty(Constants.Configuration.HTTP_METHOD);
+        if (httpMethod == null) {
+            httpMethod = Constants.Configuration.HTTP_METHOD_POST;
+        }
 
-        if ((httpMethod != null)) {
+        MessageFormatter messageFormatter = MessageProcessorSelector
+                .getMessageFormatter(msgContext);
+        url = messageFormatter.getTargetAddress(msgContext, format, url);
+        String contentType = messageFormatter.getContentType(msgContext, format, soapActionString);
 
-            if (Constants.Configuration.HTTP_METHOD_GET.equalsIgnoreCase(httpMethod)) {
-                this.sendViaGet(msgContext, url, soapActionString);
-
-                return;
-            } else if (Constants.Configuration.HTTP_METHOD_DELETE.equalsIgnoreCase(httpMethod)) {
-                this.sendViaDelete(msgContext, url, soapActionString);
-
-                return;
-            } else if (Constants.Configuration.HTTP_METHOD_PUT.equalsIgnoreCase(httpMethod)) {
-                this.sendViaPut(msgContext, url, soapActionString);
-
-                return;
+        HTTPAuthenticator authenticator;
+        Object obj = msgContext.getProperty(HTTPConstants.AUTHENTICATE);
+        if (obj == null) {
+            authenticator = null;
+        } else {
+            if (obj instanceof HTTPAuthenticator) {
+                authenticator = (HTTPAuthenticator) obj;
+            } else {
+                throw new AxisFault("HttpTransportProperties.Authenticator class cast exception");
             }
         }
 
-        this.sendViaPost(msgContext, url, soapActionString);
+        AxisRequestEntity requestEntity;
+        boolean gzip;
+        if (Constants.Configuration.HTTP_METHOD_GET.equalsIgnoreCase(httpMethod)
+                || Constants.Configuration.HTTP_METHOD_DELETE.equalsIgnoreCase(httpMethod)) {
+            requestEntity = null;
+            gzip = false;
+        } else if (Constants.Configuration.HTTP_METHOD_POST.equalsIgnoreCase(httpMethod)
+                || Constants.Configuration.HTTP_METHOD_PUT.equalsIgnoreCase(httpMethod)) {
+            gzip = msgContext.isPropertyTrue(HTTPConstants.MC_GZIP_REQUEST);
+            requestEntity = new AxisRequestEntity(messageFormatter, msgContext, format,
+                    contentType, chunked, gzip, authenticator != null && authenticator.isAllowedRetry());
+        } else {
+            throw new AxisFault("Unsupported HTTP method " + httpMethod);
+        }
+
+        Request request = createRequest(msgContext, httpMethod, url, requestEntity);
+
+        if (msgContext.getOptions() != null && msgContext.getOptions().isManageSession()) {
+            // setting the cookie in the out path
+            Object cookieString = msgContext.getProperty(HTTPConstants.COOKIE_STRING);
+
+            if (cookieString != null) {
+                StringBuffer buffer = new StringBuffer();
+                buffer.append(cookieString);
+                request.setHeader(HTTPConstants.HEADER_COOKIE, buffer.toString());
+            }
+        }
+
+        if (httpVersion.equals(HTTPConstants.HEADER_PROTOCOL_10)) {
+            request.enableHTTP10();
+        }
+        
+        request.setHeader(HTTPConstants.HEADER_CONTENT_TYPE, contentType);
+
+        String soapAction = messageFormatter.formatSOAPAction(msgContext, format, soapActionString);
+
+        if (soapAction != null && !msgContext.isDoingREST()) {
+            request.setHeader(HTTPConstants.HEADER_SOAP_ACTION, soapAction);
+        }
+
+        if (gzip) {
+            request.setHeader(HTTPConstants.HEADER_CONTENT_ENCODING,
+                    HTTPConstants.COMPRESSION_GZIP);
+        }
+        
+        // set the custom headers, if available
+        addCustomHeaders(msgContext, request);
+        
+        if (authenticator != null) {
+            request.enableAuthentication(authenticator);
+        }
+
+        setTimeouts(msgContext, request);
+
+        try {
+            request.execute();
+            boolean cleanup = true;
+            try {
+                int statusCode = request.getStatusCode();
+                log.trace("Handling response - " + statusCode);
+                boolean processResponse;
+                boolean fault;
+                if (statusCode == HttpStatus.SC_ACCEPTED) {
+                    processResponse = false;
+                    fault = false;
+                } else if (statusCode >= 200 && statusCode < 300) {
+                    processResponse = true;
+                    fault = false;
+                } else if (statusCode == HttpStatus.SC_INTERNAL_SERVER_ERROR
+                           || statusCode == HttpStatus.SC_BAD_REQUEST) {
+                    processResponse = true;
+                    fault = true;
+                } else {
+                    throw new AxisFault(Messages.getMessage("transportError", String.valueOf(statusCode),
+                                                            request.getStatusText()));
+                }
+                obtainHTTPHeaderInformation(request, msgContext);
+                if (processResponse) {
+                    OperationContext opContext = msgContext.getOperationContext();
+                    MessageContext inMessageContext = opContext == null ? null
+                            : opContext.getMessageContext(WSDLConstants.MESSAGE_LABEL_IN_VALUE);
+                    if (opContext != null) {
+                        InputStream in = request.getResponseContent();
+                        if (in != null) {
+                            String contentEncoding = request.getResponseHeader(HTTPConstants.HEADER_CONTENT_ENCODING);
+                            if (contentEncoding != null) {
+                                if (contentEncoding.equalsIgnoreCase(HTTPConstants.COMPRESSION_GZIP)) {
+                                    in = new GZIPInputStream(in);
+                                    // If the content-encoding is identity we can basically ignore
+                                    // it.
+                                } else if (!"identity".equalsIgnoreCase(contentEncoding)) {
+                                    throw new AxisFault("HTTP :" + "unsupported content-encoding of '"
+                                                        + contentEncoding + "' found");
+                                }
+                            }
+                            opContext.setProperty(MessageContext.TRANSPORT_IN, in);
+                            // This implements the behavior of the HTTPClient 3.x based transport in
+                            // Axis2 1.7: if AUTO_RELEASE_CONNECTION is enabled, we set the input stream
+                            // in the message context, but we nevertheless release the connection.
+                            // It is unclear in which situation this would actually be the right thing
+                            // to do.
+                            if (msgContext.isPropertyTrue(HTTPConstants.AUTO_RELEASE_CONNECTION)) {
+                                log.debug("AUTO_RELEASE_CONNECTION enabled; are you sure that you really want that?");
+                            } else {
+                                cleanup = false;
+                            }
+                        }
+                    }
+                    if (fault) {
+                        if (inMessageContext != null) {
+                            inMessageContext.setProcessingFault(true);
+                        }
+                        if (Utils.isClientThreadNonBlockingPropertySet(msgContext)) {
+                            throw new AxisFault(Messages.
+                                    getMessage("transportError",
+                                               String.valueOf(statusCode),
+                                               request.getStatusText()));
+                        }
+                    }
+                }
+            } finally {
+                if (cleanup) {
+                    request.releaseConnection();
+                }
+            }
+        } catch (IOException e) {
+            log.info("Unable to send to url[" + url + "]", e);
+            throw AxisFault.makeFault(e);
+        }
     }   
 
-    /**
-     * Used to determine the family of HTTP status codes to which the given code
-     * belongs.
-     * 
-     * @param statusCode
-     *            - The HTTP status code
-     */
-    protected HTTPStatusCodeFamily getHTTPStatusCodeFamily(int statusCode) {
-        switch (statusCode / 100) {
-        case 1:
-            return HTTPStatusCodeFamily.INFORMATIONAL;
-        case 2:
-            return HTTPStatusCodeFamily.SUCCESSFUL;
-        case 3:
-            return HTTPStatusCodeFamily.REDIRECTION;
-        case 4:
-            return HTTPStatusCodeFamily.CLIENT_ERROR;
-        case 5:
-            return HTTPStatusCodeFamily.SERVER_ERROR;
-        default:
-            return HTTPStatusCodeFamily.OTHER;
+    private void addCustomHeaders(MessageContext msgContext, Request request) {
+    
+        boolean isCustomUserAgentSet = false;
+        // set the custom headers, if available
+        Object httpHeadersObj = msgContext.getProperty(HTTPConstants.HTTP_HEADERS);
+        if (httpHeadersObj != null) {
+            if (httpHeadersObj instanceof List) {
+                List httpHeaders = (List) httpHeadersObj;
+                for (int i = 0; i < httpHeaders.size(); i++) {
+                    NamedValue nv = (NamedValue) httpHeaders.get(i);
+                    if (nv != null) {
+                        if (HTTPConstants.HEADER_USER_AGENT.equals(nv.getName())) {
+                            isCustomUserAgentSet = true;
+                        }
+                        request.addHeader(nv.getName(), nv.getValue());
+                    }
+                }
+    
+            }
+            if (httpHeadersObj instanceof Map) {
+                Map httpHeaders = (Map) httpHeadersObj;
+                for (Iterator iterator = httpHeaders.entrySet().iterator(); iterator.hasNext();) {
+                    Map.Entry entry = (Map.Entry) iterator.next();
+                    String key = (String) entry.getKey();
+                    String value = (String) entry.getValue();
+                    if (HTTPConstants.HEADER_USER_AGENT.equals(key)) {
+                        isCustomUserAgentSet = true;
+                    }
+                    request.addHeader(key, value);
+                }
+            }
         }
-    }
-    /**
-     * The set of HTTP status code families.
-     */
-    protected enum HTTPStatusCodeFamily {
-        INFORMATIONAL, SUCCESSFUL, REDIRECTION, CLIENT_ERROR, SERVER_ERROR, OTHER
+    
+        // we have to consider the TRANSPORT_HEADERS map as well
+        Map transportHeaders = (Map) msgContext.getProperty(MessageContext.TRANSPORT_HEADERS);
+        if (transportHeaders != null) {
+            removeUnwantedHeaders(msgContext);
+    
+            Set headerEntries = transportHeaders.entrySet();
+    
+            for (Object headerEntry : headerEntries) {
+                if (headerEntry instanceof Map.Entry) {
+                    Header[] headers = request.getRequestHeaders();
+    
+                    boolean headerAdded = false;
+                    for (Header header : headers) {
+                        if (header.getName() != null
+                                && header.getName().equals(((Map.Entry) headerEntry).getKey())) {
+                            headerAdded = true;
+                            break;
+                        }
+                    }
+    
+                    if (!headerAdded) {
+                        request.addHeader(((Map.Entry) headerEntry).getKey().toString(),
+                                ((Map.Entry) headerEntry).getValue().toString());
+                    }
+                }
+            }
+        }
+    
+        if (!isCustomUserAgentSet) {
+            String userAgentString = getUserAgent(msgContext);
+            request.setHeader(HTTPConstants.HEADER_USER_AGENT, userAgentString);
+        }
+    
     }
 
+    /**
+     * Remove unwanted headers from the transport headers map of outgoing
+     * request. These are headers which should be dictated by the transport and
+     * not the user. We remove these as these may get copied from the request
+     * messages
+     * 
+     * @param msgContext
+     *            the Axis2 Message context from which these headers should be
+     *            removed
+     */
+    private void removeUnwantedHeaders(MessageContext msgContext) {
+        Map headers = (Map) msgContext.getProperty(MessageContext.TRANSPORT_HEADERS);
+    
+        if (headers == null || headers.isEmpty()) {
+            return;
+        }
+    
+        Iterator iter = headers.keySet().iterator();
+        while (iter.hasNext()) {
+            String headerName = (String) iter.next();
+            if (HTTP.CONN_DIRECTIVE.equalsIgnoreCase(headerName)
+                    || HTTP.TRANSFER_ENCODING.equalsIgnoreCase(headerName)
+                    || HTTP.DATE_HEADER.equalsIgnoreCase(headerName)
+                    || HTTP.CONTENT_TYPE.equalsIgnoreCase(headerName)
+                    || HTTP.CONTENT_LEN.equalsIgnoreCase(headerName)) {
+                iter.remove();
+            }
+        }
+    }
+
+    private String getUserAgent(MessageContext messageContext) {
+        String userAgentString = "Axis2";
+        boolean locked = false;
+        if (messageContext.getParameter(HTTPConstants.USER_AGENT) != null) {
+            OMElement userAgentElement = messageContext.getParameter(HTTPConstants.USER_AGENT)
+                    .getParameterElement();
+            userAgentString = userAgentElement.getText().trim();
+            OMAttribute lockedAttribute = userAgentElement.getAttribute(new QName("locked"));
+            if (lockedAttribute != null) {
+                if (lockedAttribute.getAttributeValue().equalsIgnoreCase("true")) {
+                    locked = true;
+                }
+            }
+        }
+        // Runtime overing part
+        if (!locked) {
+            if (messageContext.getProperty(HTTPConstants.USER_AGENT) != null) {
+                userAgentString = (String) messageContext.getProperty(HTTPConstants.USER_AGENT);
+            }
+        }
+    
+        return userAgentString;
+    }
+
+    /**
+     * This is used to get the dynamically set time out values from the message
+     * context. If the values are not available or invalid then the default
+     * values or the values set by the configuration will be used
+     * 
+     * @param msgContext
+     *            the active MessageContext
+     * @param request
+     *            request
+     */
+    private void setTimeouts(MessageContext msgContext, Request request) {
+        // If the SO_TIMEOUT of CONNECTION_TIMEOUT is set by dynamically the
+        // override the static config
+        Integer tempSoTimeoutProperty = (Integer) msgContext.getProperty(HTTPConstants.SO_TIMEOUT);
+        Integer tempConnTimeoutProperty = (Integer) msgContext
+                .getProperty(HTTPConstants.CONNECTION_TIMEOUT);
+        long timeout = msgContext.getOptions().getTimeOutInMilliSeconds();
+
+        if (tempConnTimeoutProperty != null) {
+            // timeout for initial connection
+            request.setConnectionTimeout(tempConnTimeoutProperty);
+        }
+
+        if (tempSoTimeoutProperty != null) {
+            // SO_TIMEOUT -- timeout for blocking reads
+            request.setSocketTimeout(tempSoTimeoutProperty);
+        } else {
+            // set timeout in client
+            if (timeout > 0) {
+                request.setSocketTimeout((int) timeout);
+            }
+        }
+    }
+
+    private void obtainHTTPHeaderInformation(Request request, MessageContext msgContext) throws AxisFault {
+        // Set RESPONSE properties onto the REQUEST message context. They will
+        // need to be copied off the request context onto
+        // the response context elsewhere, for example in the
+        // OutInOperationClient.
+        msgContext.setProperty(
+                MessageContext.TRANSPORT_HEADERS,
+                new CommonsTransportHeaders(request.getResponseHeaders()));
+        msgContext.setProperty(
+                HTTPConstants.MC_HTTP_STATUS_CODE,
+                new Integer(request.getStatusCode()));
+        
+        String contentTypeString = request.getResponseHeader(HTTPConstants.HEADER_CONTENT_TYPE);
+        if (contentTypeString != null) {
+            ContentType contentType;
+            try {
+                contentType = new ContentType(contentTypeString);
+            } catch (ParseException ex) {
+                throw AxisFault.makeFault(ex);
+            }
+            String charSetEnc = contentType.getParameter(HTTPConstants.CHAR_SET_ENCODING);
+            MessageContext inMessageContext = msgContext.getOperationContext().getMessageContext(
+                    WSDLConstants.MESSAGE_LABEL_IN_VALUE);
+            if (inMessageContext != null) {
+                inMessageContext.setProperty(Constants.Configuration.CONTENT_TYPE, contentTypeString);
+                inMessageContext.setProperty(Constants.Configuration.CHARACTER_SET_ENCODING, charSetEnc);
+            } else {
+                // Transport details will be stored in a HashMap so that anybody
+                // interested can
+                // retrieve them
+                Map<String,String> transportInfoMap = new HashMap<String,String>();
+                transportInfoMap.put(Constants.Configuration.CONTENT_TYPE, contentTypeString);
+                transportInfoMap.put(Constants.Configuration.CHARACTER_SET_ENCODING, charSetEnc);
+                // the HashMap is stored in the outgoing message.
+                msgContext.setProperty(Constants.Configuration.TRANSPORT_INFO_MAP, transportInfoMap);
+            }
+        }
+
+        Map<String,String> cookies = request.getCookies();
+        if (cookies != null) {
+            String customCookieId = (String) msgContext.getProperty(Constants.CUSTOM_COOKIE_ID);
+            String cookieString = null;
+            if (customCookieId != null) {
+                cookieString = buildCookieString(cookies, customCookieId);
+            }
+            if (cookieString == null) {
+                cookieString = buildCookieString(cookies, Constants.SESSION_COOKIE);
+            }
+            if (cookieString == null) {
+                cookieString = buildCookieString(cookies, Constants.SESSION_COOKIE_JSESSIONID);
+            }
+            if (cookieString != null) {
+                msgContext.getServiceContext().setProperty(HTTPConstants.COOKIE_STRING, cookieString);
+            }
+        }
+    }
+
+    private String buildCookieString(Map<String,String> cookies, String name) {
+        String value = cookies.get(name);
+        return value == null ? null : name + "=" + value;
+    }
 }
diff --git a/modules/transport/http/src/org/apache/axis2/transport/http/HTTPTransportUtils.java b/modules/transport/http/src/org/apache/axis2/transport/http/HTTPTransportUtils.java
index a8f968b..27a6a6e 100644
--- a/modules/transport/http/src/org/apache/axis2/transport/http/HTTPTransportUtils.java
+++ b/modules/transport/http/src/org/apache/axis2/transport/http/HTTPTransportUtils.java
@@ -54,6 +54,8 @@
 import java.io.InputStream;
 import java.io.OutputStream;
 import java.net.SocketException;
+import java.net.URL;
+import java.net.URLClassLoader;
 import java.util.Iterator;
 import java.util.Map;
 import java.util.zip.GZIPInputStream;
@@ -382,4 +384,20 @@
         epr.append('/');
         return new EndpointReference[]{new EndpointReference(epr.toString())};
     }
+
+    static InputStream getMetaInfResourceAsStream(AxisService service, String name) {
+        ClassLoader classLoader = service.getClassLoader();
+        if (classLoader instanceof URLClassLoader) {
+            // Only search the service class loader and skip searching the ancestors to
+            // avoid local file inclusion vulnerabilities such as AXIS2-5846.
+            URL url = ((URLClassLoader)classLoader).findResource("META-INF/" + name);
+            try {
+                return url == null ? null : url.openStream();
+            } catch (IOException ex) {
+                return null;
+            }
+        } else {
+            return null;
+        }
+    }
 }
diff --git a/modules/transport/http/src/org/apache/axis2/transport/http/HTTPWorker.java b/modules/transport/http/src/org/apache/axis2/transport/http/HTTPWorker.java
index 51f34bb..399650e 100644
--- a/modules/transport/http/src/org/apache/axis2/transport/http/HTTPWorker.java
+++ b/modules/transport/http/src/org/apache/axis2/transport/http/HTTPWorker.java
@@ -22,7 +22,6 @@
 import org.apache.axis2.Constants;
 import org.apache.axis2.context.ConfigurationContext;
 import org.apache.axis2.context.MessageContext;
-import org.apache.axis2.deployment.DeploymentConstants;
 import org.apache.axis2.description.AxisService;
 import org.apache.axis2.description.Parameter;
 import org.apache.axis2.engine.Handler.InvocationResponse;
@@ -100,8 +99,7 @@
                             Iterator i = services.values().iterator();
                             while (i.hasNext()) {
                                 AxisService service = (AxisService) i.next();
-                                InputStream stream = service.getClassLoader().
-                                getResourceAsStream("META-INF/" + file);
+                                InputStream stream = HTTPTransportUtils.getMetaInfResourceAsStream(service, file);
                                 if (stream != null) {
                                     OutputStream out = response.getOutputStream();
                                     response.setContentType("text/xml");
@@ -205,8 +203,7 @@
                         schema.write(response.getOutputStream());
                         return;
                     } else {
-                        InputStream instream = service.getClassLoader()
-                            .getResourceAsStream(DeploymentConstants.META_INF + "/" + schemaName);
+                        InputStream instream = HTTPTransportUtils.getMetaInfResourceAsStream(service, schemaName);
                         
                         if (instream != null) {
                             response.setStatus(HttpStatus.SC_OK);
diff --git a/modules/transport/http/src/org/apache/axis2/transport/http/ListingAgent.java b/modules/transport/http/src/org/apache/axis2/transport/http/ListingAgent.java
index 9a147e8..e9af789 100644
--- a/modules/transport/http/src/org/apache/axis2/transport/http/ListingAgent.java
+++ b/modules/transport/http/src/org/apache/axis2/transport/http/ListingAgent.java
@@ -58,8 +58,6 @@
 
     private static final String LIST_MULTIPLE_SERVICE_JSP_NAME =
             "listServices.jsp";
-    private static final String LIST_SINGLE_SERVICE_JSP_NAME =
-            "listSingleService.jsp";
     private static final String LIST_FAULTY_SERVICES_JSP_NAME = "listFaultyService.jsp";
 
     public ListingAgent(ConfigurationContext aConfigContext) {
@@ -69,7 +67,7 @@
     public void handle(HttpServletRequest httpServletRequest,
                        HttpServletResponse httpServletResponse)
             throws IOException, ServletException {
-
+        httpServletRequest = new ForbidSessionCreationWrapper(httpServletRequest);
         String query = httpServletRequest.getQueryString();
         if (query != null) {
             if (HttpUtils.indexOfIngnoreCase(query , "wsdl2") > 0 || HttpUtils.indexOfIngnoreCase(query, "wsdl") > 0 ||
@@ -88,7 +86,7 @@
         String serviceName = req.getParameter("serviceName");
         if (serviceName != null) {
             AxisService service = configContext.getAxisConfiguration().getService(serviceName);
-            req.getSession().setAttribute(Constants.SINGLE_SERVICE, service);
+            req.setAttribute(Constants.SINGLE_SERVICE, service);
         }
         renderView(LIST_FAULTY_SERVICES_JSP_NAME, req, res);
     }
@@ -127,7 +125,7 @@
             Iterator<AxisService> i = services.values().iterator();
             while (i.hasNext()) {
                 AxisService service = (AxisService) i.next();
-                InputStream stream = service.getClassLoader().getResourceAsStream("META-INF/" + schema);
+                InputStream stream = HTTPTransportUtils.getMetaInfResourceAsStream(service, schema);
                 if (stream != null) {
                     OutputStream out = res.getOutputStream();
                     res.setContentType("text/xml");
@@ -192,16 +190,10 @@
                 } else if (policy >= 0) {
                     handlePolicyRequest(req, res, serviceName, axisService);
                     return;
-                } else {
-                    req.getSession().setAttribute(Constants.SINGLE_SERVICE, axisService);
                 }
-            } else {
-                req.getSession().setAttribute(Constants.SINGLE_SERVICE, null);
-                res.sendError(HttpServletResponse.SC_NOT_FOUND, url);
             }
         }
-
-        renderView(LIST_SINGLE_SERVICE_JSP_NAME, req, res);
+        res.sendError(HttpServletResponse.SC_NOT_FOUND, url);
     }
 
     private void handlePolicyRequest(HttpServletRequest req,
@@ -248,12 +240,7 @@
                 }
 
             } else {
-
-                OutputStream out = res.getOutputStream();
-                res.setContentType("text/html");
-                String outStr = "<b>No policy found for id="
-                                + idParam + "</b>";
-                out.write(outStr.getBytes());
+                res.sendError(HttpServletResponse.SC_NOT_FOUND);
             }
 
         } else {
@@ -284,12 +271,7 @@
                             e);
                 }
             } else {
-
-                OutputStream out = res.getOutputStream();
-                res.setContentType("text/html");
-                String outStr = "<b>No effective policy for "
-                                + serviceName + " service</b>";
-                out.write(outStr.getBytes());
+                res.sendError(HttpServletResponse.SC_NOT_FOUND);
             }
         }
     }
@@ -387,9 +369,9 @@
         if(listServiceDisabled()){
            return;
         }
-        populateSessionInformation(req);
-        req.getSession().setAttribute(Constants.ERROR_SERVICE_MAP,
-                                      configContext.getAxisConfiguration().getFaultyServices());
+        populateRequestAttributes(req);
+        req.setAttribute(Constants.ERROR_SERVICE_MAP,
+                configContext.getAxisConfiguration().getFaultyServices());
         renderView(LIST_MULTIPLE_SERVICE_JSP_NAME, req, res);
     }
 
diff --git a/modules/transport/http/src/org/apache/axis2/transport/http/RESTRequestEntity.java b/modules/transport/http/src/org/apache/axis2/transport/http/RESTRequestEntity.java
deleted file mode 100644
index 6410584..0000000
--- a/modules/transport/http/src/org/apache/axis2/transport/http/RESTRequestEntity.java
+++ /dev/null
@@ -1,192 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.axis2.transport.http;
-
-import org.apache.axiom.om.OMElement;
-import org.apache.axiom.om.OMOutputFormat;
-import org.apache.axis2.AxisFault;
-import org.apache.axis2.context.MessageContext;
-
-import javax.xml.stream.FactoryConfigurationError;
-import javax.xml.stream.XMLStreamException;
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.OutputStream;
-
-public abstract class RESTRequestEntity {
-    private byte[] bytes;
-    private String charSetEnc;
-    private boolean chunked;
-    private OMElement element;
-    private MessageContext msgCtxt;
-    private String soapActionString;
-    private OMOutputFormat format;
-
-    public RESTRequestEntity(OMElement element, boolean chunked,
-                             MessageContext msgCtxt,
-                             String charSetEncoding,
-                             String soapActionString,
-                             OMOutputFormat format) {
-        this.element = element;
-        this.chunked = chunked;
-        this.msgCtxt = msgCtxt;
-        this.charSetEnc = charSetEncoding;
-        this.soapActionString = soapActionString;
-        this.format = format;
-    }
-
-    private void handleOMOutput(OutputStream out, boolean doingMTOM)
-            throws XMLStreamException {
-        format.setDoOptimize(doingMTOM);
-        element.serializeAndConsume(out, format);
-    }
-
-    public byte[] writeBytes() throws AxisFault {
-        try {
-            ByteArrayOutputStream bytesOut = new ByteArrayOutputStream();
-            if (!format.isOptimized()) {
-                OMOutputFormat format2 = new OMOutputFormat();
-                format2.setCharSetEncoding(charSetEnc);
-                element.serializeAndConsume(bytesOut, format2);
-                return bytesOut.toByteArray();
-            } else {
-                format.setCharSetEncoding(charSetEnc);
-                format.setDoOptimize(true);
-                element.serializeAndConsume(bytesOut, format);
-                return bytesOut.toByteArray();
-            }
-        } catch (XMLStreamException e) {
-            throw AxisFault.makeFault(e);
-        } catch (FactoryConfigurationError e) {
-            throw AxisFault.makeFault(e);
-        }
-    }
-
-    public void writeRequest(OutputStream out) throws IOException {
-        try {
-            if (chunked) {
-                this.handleOMOutput(out, format.isDoingSWA());
-            } else {
-                if (bytes == null) {
-                    bytes = writeBytes();
-                }
-                out.write(bytes);
-            }
-            out.flush();
-        } catch (XMLStreamException e) {
-            throw AxisFault.makeFault(e);
-        } catch (FactoryConfigurationError e) {
-            throw AxisFault.makeFault(e);
-        } catch (IOException e) {
-            throw AxisFault.makeFault(e);
-        }
-    }
-
-    public long getContentLength() {
-        try {
-            if (chunked) {
-                return -1;
-            } else {
-                if (bytes == null) {
-                    bytes = writeBytes();
-                }
-                return bytes.length;
-            }
-        } catch (AxisFault e) {
-            return -1;
-        }
-    }
-
-    public String getContentTypeAsString() {
-        String encoding = format.getCharSetEncoding();
-        String contentType = format.getContentType();
-        if (encoding != null) {
-            contentType += "; charset=" + encoding;
-        }
-
-        // action header is not mandated in SOAP 1.2. So putting it, if available
-        if (!msgCtxt.isSOAP11() && (soapActionString != null)
-                && !"".equals(soapActionString.trim()) && !"\"\"".equals(soapActionString.trim())) {
-            contentType = contentType + ";action=\"" + soapActionString + "\";";
-        }
-        return contentType;
-    }
-
-    public boolean isRepeatable() {
-        return true;
-    }
-
-    public byte[] getBytes() {
-        return bytes;
-    }
-
-    public void setBytes(byte[] bytes) {
-        this.bytes = bytes;
-    }
-
-    public String getCharSetEnc() {
-        return charSetEnc;
-    }
-
-    public void setCharSetEnc(String charSetEnc) {
-        this.charSetEnc = charSetEnc;
-    }
-
-    public boolean isChunked() {
-        return chunked;
-    }
-
-    public void setChunked(boolean chunked) {
-        this.chunked = chunked;
-    }
-
-    public OMElement getElement() {
-        return element;
-    }
-
-    public void setElement(OMElement element) {
-        this.element = element;
-    }
-
-    public MessageContext getMsgCtxt() {
-        return msgCtxt;
-    }
-
-    public void setMsgCtxt(MessageContext msgCtxt) {
-        this.msgCtxt = msgCtxt;
-    }
-
-    public String getSoapActionString() {
-        return soapActionString;
-    }
-
-    public void setSoapActionString(String soapActionString) {
-        this.soapActionString = soapActionString;
-    }
-
-    public OMOutputFormat getFormat() {
-        return format;
-    }
-
-    public void setFormat(OMOutputFormat format) {
-        this.format = format;
-    }    
-    
-}
diff --git a/modules/transport/http/src/org/apache/axis2/transport/http/RESTRequestEntity2.java b/modules/transport/http/src/org/apache/axis2/transport/http/RESTRequestEntity2.java
deleted file mode 100644
index 1dfa528..0000000
--- a/modules/transport/http/src/org/apache/axis2/transport/http/RESTRequestEntity2.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.axis2.transport.http;
-
-import java.io.ByteArrayInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-
-public abstract class RESTRequestEntity2 {
-    private String contentType;
-    private String postRequestBody;
-
-    public RESTRequestEntity2(String postRequestBody, String contentType) {
-        this.postRequestBody = postRequestBody;
-        this.contentType = contentType;
-    }
-
-    public void writeRequest(OutputStream output) throws IOException {
-        output.write(postRequestBody.getBytes());
-    }
-
-    public long getContentLength() {
-        return this.postRequestBody.getBytes().length;
-    }
-
-    public String getContentTypeAsString() {
-        return this.contentType;
-    }
-
-    public boolean isRepeatable() {
-        return true;
-    }
-   
-
-    public void setContentType(String contentType) {
-        this.contentType = contentType;
-    }
-
-    public String getPostRequestBody() {
-        return postRequestBody;
-    }
-
-    public void setPostRequestBody(String postRequestBody) {
-        this.postRequestBody = postRequestBody;
-    }
-
-    public InputStream getRequestEntityContent() {
-        return new ByteArrayInputStream(this.postRequestBody.getBytes());
-    }
-
-}
diff --git a/modules/transport/http/src/org/apache/axis2/transport/http/Request.java b/modules/transport/http/src/org/apache/axis2/transport/http/Request.java
new file mode 100644
index 0000000..004faf9
--- /dev/null
+++ b/modules/transport/http/src/org/apache/axis2/transport/http/Request.java
@@ -0,0 +1,46 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.axis2.transport.http;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.Map;
+
+import org.apache.axiom.mime.Header;
+
+/**
+ * Interface to prepare and execute an HTTP request.
+ */
+public interface Request {
+    void enableHTTP10();
+    void setHeader(String name, String value);
+    void addHeader(String name, String value);
+    Header[] getRequestHeaders();
+    void enableAuthentication(HTTPAuthenticator authenticator);
+    void setConnectionTimeout(int timeout);
+    void setSocketTimeout(int timeout);
+    void execute() throws IOException;
+    int getStatusCode();
+    String getStatusText();
+    String getResponseHeader(String name);
+    Header[] getResponseHeaders();
+    Map<String,String> getCookies();
+    InputStream getResponseContent() throws IOException;
+    void releaseConnection();
+}
diff --git a/modules/transport/http/src/org/apache/axis2/transport/http/impl/httpclient3/HTTPSenderImpl.java b/modules/transport/http/src/org/apache/axis2/transport/http/impl/httpclient3/HTTPSenderImpl.java
deleted file mode 100644
index c07f0d1..0000000
--- a/modules/transport/http/src/org/apache/axis2/transport/http/impl/httpclient3/HTTPSenderImpl.java
+++ /dev/null
@@ -1,1026 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.axis2.transport.http.impl.httpclient3;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.zip.GZIPInputStream;
-
-import javax.xml.namespace.QName;
-
-import org.apache.axiom.om.OMAttribute;
-import org.apache.axiom.om.OMElement;
-import org.apache.axis2.AxisFault;
-import org.apache.axis2.Constants;
-import org.apache.axis2.context.ConfigurationContext;
-import org.apache.axis2.context.MessageContext;
-import org.apache.axis2.context.NamedValue;
-import org.apache.axis2.context.OperationContext;
-import org.apache.axis2.i18n.Messages;
-import org.apache.axis2.transport.MessageFormatter;
-import org.apache.axis2.transport.http.HTTPAuthenticator;
-import org.apache.axis2.transport.http.HTTPConstants;
-import org.apache.axis2.transport.http.HTTPSender;
-import org.apache.axis2.transport.http.HTTPTransportConstants;
-import org.apache.axis2.util.MessageProcessorSelector;
-import org.apache.axis2.wsdl.WSDLConstants;
-import org.apache.commons.httpclient.Header;
-import org.apache.commons.httpclient.HttpClient;
-import org.apache.commons.httpclient.HttpMethod;
-import org.apache.commons.httpclient.HttpMethodBase;
-import org.apache.commons.httpclient.HttpStatus;
-import org.apache.commons.httpclient.methods.DeleteMethod;
-import org.apache.commons.httpclient.methods.GetMethod;
-import org.apache.commons.httpclient.methods.PostMethod;
-import org.apache.commons.httpclient.methods.PutMethod;
-
-import org.apache.commons.httpclient.Credentials;
-import org.apache.commons.httpclient.HeaderElement;
-import org.apache.commons.httpclient.HostConfiguration;
-import org.apache.commons.httpclient.HttpConnectionManager;
-import org.apache.commons.httpclient.HttpState;
-import org.apache.commons.httpclient.HttpVersion;
-import org.apache.commons.httpclient.MultiThreadedHttpConnectionManager;
-import org.apache.commons.httpclient.NTCredentials;
-import org.apache.commons.httpclient.NameValuePair;
-import org.apache.commons.httpclient.UsernamePasswordCredentials;
-import org.apache.commons.httpclient.auth.AuthPolicy;
-import org.apache.commons.httpclient.auth.AuthScope;
-import org.apache.commons.httpclient.params.HttpMethodParams;
-import org.apache.commons.httpclient.protocol.Protocol;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.apache.http.protocol.HTTP;
-
-public class HTTPSenderImpl extends HTTPSender {
-
-    private static final Log log = LogFactory.getLog(HTTPSenderImpl.class);
-
-    /**
-     * Used to send a request via HTTP Get method
-     * 
-     * @param msgContext
-     *            - The MessageContext of the message
-     * @param url
-     *            - The target URL
-     * @param soapActiionString
-     *            - The soapAction string of the request
-     * @throws AxisFault
-     *             - Thrown in case an exception occurs
-     */
-    protected void sendViaGet(MessageContext msgContext, URL url, String soapActiionString)
-            throws AxisFault {
-
-        GetMethod getMethod = new GetMethod();
-        HttpClient httpClient = getHttpClient(msgContext);
-        MessageFormatter messageFormatter = populateCommonProperties(msgContext, url, getMethod,
-                httpClient, soapActiionString);
-
-        // Need to have this here because we can have soap action when using the
-        // soap response MEP
-        String soapAction = messageFormatter
-                .formatSOAPAction(msgContext, format, soapActiionString);
-
-        if (soapAction != null && !msgContext.isDoingREST()) {
-            getMethod.setRequestHeader(HTTPConstants.HEADER_SOAP_ACTION, soapAction);
-        }
-        try {
-            executeMethod(httpClient, msgContext, url, getMethod);
-            handleResponse(msgContext, getMethod);
-        } catch (IOException e) {
-            log.info("Unable to sendViaGet to url[" + url + "]", e);
-            throw AxisFault.makeFault(e);
-        } finally {
-            cleanup(msgContext, getMethod);
-        }
-    }
-
-    protected void cleanup(MessageContext msgContext, Object httpMmethod) {
-        if (httpMmethod instanceof HttpMethod) {
-            if (msgContext.isPropertyTrue(HTTPConstants.AUTO_RELEASE_CONNECTION)) {
-                log.trace("AutoReleasing " + httpMmethod);
-                ((HttpMethod) httpMmethod).releaseConnection();
-            }
-        }
-    }
-
-    /**
-     * Used to send a request via HTTP Delete Method
-     * 
-     * @param msgContext
-     *            - The MessageContext of the message
-     * @param url
-     *            - The target URL
-     * @param soapActiionString
-     *            - The soapAction string of the request
-     * @throws AxisFault
-     *             - Thrown in case an exception occurs
-     */
-    protected void sendViaDelete(MessageContext msgContext, URL url, String soapActiionString)
-            throws AxisFault {
-
-        DeleteMethod deleteMethod = new DeleteMethod();
-        HttpClient httpClient = getHttpClient(msgContext);
-        populateCommonProperties(msgContext, url, deleteMethod, httpClient, soapActiionString);
-
-        try {
-            executeMethod(httpClient, msgContext, url, deleteMethod);
-            handleResponse(msgContext, deleteMethod);
-        } catch (IOException e) {
-            log.info("Unable to sendViaDelete to url[" + url + "]", e);
-            throw AxisFault.makeFault(e);
-        } finally {
-            cleanup(msgContext, deleteMethod);
-        }
-    }
-
-    /**
-     * Used to send a request via HTTP Post Method
-     * 
-     * @param msgContext
-     *            - The MessageContext of the message
-     * @param url
-     *            - The target URL
-     * @param soapActionString
-     *            - The soapAction string of the request
-     * @throws AxisFault
-     *             - Thrown in case an exception occurs
-     */
-    protected void sendViaPost(MessageContext msgContext, URL url, String soapActionString)
-            throws AxisFault {
-
-        HttpClient httpClient = getHttpClient(msgContext);
-
-        /*
-         * What's up with this, it never gets used anywhere?? --Glen String
-         * charEncoding = (String)
-         * msgContext.getProperty(Constants.Configuration
-         * .CHARACTER_SET_ENCODING);
-         * 
-         * if (charEncoding == null) { charEncoding =
-         * MessageContext.DEFAULT_CHAR_SET_ENCODING; }
-         */
-
-        PostMethod postMethod = new PostMethod();
-        if (log.isTraceEnabled()) {
-            log.trace(Thread.currentThread() + " PostMethod " + postMethod + " / " + httpClient);
-        }
-        MessageFormatter messageFormatter = populateCommonProperties(msgContext, url, postMethod,
-                httpClient, soapActionString);
-
-        postMethod.setRequestEntity(new AxisRequestEntityImpl(messageFormatter, msgContext, format,
-                soapActionString, chunked, isAllowedRetry));
-
-        if (!httpVersion.equals(HTTPConstants.HEADER_PROTOCOL_10) && chunked) {
-            postMethod.setContentChunked(true);
-        }
-
-        String soapAction = messageFormatter.formatSOAPAction(msgContext, format, soapActionString);
-
-        if (soapAction != null && !msgContext.isDoingREST()) {
-            postMethod.setRequestHeader(HTTPConstants.HEADER_SOAP_ACTION, soapAction);
-        }
-
-        /*
-         * main excecution takes place..
-         */
-        try {
-            executeMethod(httpClient, msgContext, url, postMethod);
-            handleResponse(msgContext, postMethod);
-        } catch (IOException e) {
-            log.info("Unable to sendViaPost to url[" + url + "]", e);
-            throw AxisFault.makeFault(e);
-        } finally {
-            cleanup(msgContext, postMethod);
-        }
-    }
-
-    /**
-     * Used to send a request via HTTP Put Method
-     * 
-     * @param msgContext
-     *            - The MessageContext of the message
-     * @param url
-     *            - The target URL
-     * @param soapActionString
-     *            - The soapAction string of the request
-     * @throws AxisFault
-     *             - Thrown in case an exception occurs
-     */
-    protected void sendViaPut(MessageContext msgContext, URL url, String soapActionString)
-            throws AxisFault {
-
-        HttpClient httpClient = getHttpClient(msgContext);
-
-        /*
-         * Same deal - this value never gets used, why is it here? --Glen String
-         * charEncoding = (String)
-         * msgContext.getProperty(Constants.Configuration
-         * .CHARACTER_SET_ENCODING);
-         * 
-         * if (charEncoding == null) { charEncoding =
-         * MessageContext.DEFAULT_CHAR_SET_ENCODING; }
-         */
-
-        PutMethod putMethod = new PutMethod();
-        MessageFormatter messageFormatter = populateCommonProperties(msgContext, url, putMethod,
-                httpClient, soapActionString);
-
-        putMethod.setRequestEntity(new AxisRequestEntityImpl(messageFormatter, msgContext, format,
-                soapActionString, chunked, isAllowedRetry));
-
-        if (!httpVersion.equals(HTTPConstants.HEADER_PROTOCOL_10) && chunked) {
-            putMethod.setContentChunked(true);
-        }
-
-        String soapAction = messageFormatter.formatSOAPAction(msgContext, format, soapActionString);
-        if (soapAction != null && !msgContext.isDoingREST()) {
-            putMethod.setRequestHeader(HTTPConstants.HEADER_SOAP_ACTION, soapAction);
-        }
-
-        /*
-         * main excecution takes place..
-         */
-        try {
-            executeMethod(httpClient, msgContext, url, putMethod);
-            handleResponse(msgContext, putMethod);
-        } catch (IOException e) {
-            log.info("Unable to sendViaPut to url[" + url + "]", e);
-            throw AxisFault.makeFault(e);
-        } finally {
-            cleanup(msgContext, putMethod);
-        }
-    }
-
-    /**
-     * Used to handle the HTTP Response
-     * 
-     * @param msgContext
-     *            - The MessageContext of the message
-     * @param method
-     *            - The HTTP method used
-     * @throws IOException
-     *             - Thrown in case an exception occurs
-     */
-    protected void handleResponse(MessageContext msgContext, Object httpMethodBase)
-            throws IOException {
-        HttpMethodBase method;
-        if (httpMethodBase instanceof HttpMethodBase) {
-            method = (HttpMethodBase) httpMethodBase;
-        } else {
-            log.trace("HttpMethodBase expected, but found - " + httpMethodBase);
-            return;
-        }
-        int statusCode = method.getStatusCode();
-        HTTPStatusCodeFamily family = getHTTPStatusCodeFamily(statusCode);
-        log.trace("Handling response - " + statusCode);
-        if (statusCode == HttpStatus.SC_ACCEPTED) {
-            /* When an HTTP 202 Accepted code has been received, this will be the case of an execution 
-             * of an in-only operation. In such a scenario, the HTTP response headers should be returned,
-             * i.e. session cookies. */
-            obtainHTTPHeaderInformation(method, msgContext);
-            // Since we don't expect any content with a 202 response, we must release the connection
-            method.releaseConnection();            
-        } else if (HTTPStatusCodeFamily.SUCCESSFUL.equals(family)) {
-            // Save the HttpMethod so that we can release the connection when cleaning up
-            msgContext.setProperty(HTTPConstants.HTTP_METHOD, method);
-            processResponse(method, msgContext);            
-        } else if (statusCode == HttpStatus.SC_INTERNAL_SERVER_ERROR
-                || statusCode == HttpStatus.SC_BAD_REQUEST) {
-            // Save the HttpMethod so that we can release the connection when
-            // cleaning up
-            msgContext.setProperty(HTTPConstants.HTTP_METHOD, method);
-            Header contenttypeHeader = method.getResponseHeader(HTTPConstants.HEADER_CONTENT_TYPE);
-            String value = null;
-            if (contenttypeHeader != null) {
-                value = contenttypeHeader.getValue();
-            }
-            OperationContext opContext = msgContext.getOperationContext();
-            if (opContext != null) {
-                MessageContext inMessageContext = opContext
-                        .getMessageContext(WSDLConstants.MESSAGE_LABEL_IN_VALUE);
-                if (inMessageContext != null) {
-                    inMessageContext.setProcessingFault(true);
-                }
-            }
-            if (value != null) {
-
-                processResponse(method, msgContext);
-            }
-
-            if (org.apache.axis2.util.Utils.isClientThreadNonBlockingPropertySet(msgContext)) {
-                throw new AxisFault(Messages.getMessage("transportError",
-                        String.valueOf(statusCode), method.getStatusText()));
-            }
-        } else {
-            // Since we don't process the response, we must release the
-            // connection immediately
-            method.releaseConnection();
-            throw new AxisFault(Messages.getMessage("transportError", String.valueOf(statusCode),
-                    method.getStatusText()));
-        }
-    }
-
-    /**
-     * Collect the HTTP header information and set them in the message context
-     * 
-     * @param method
-     *            HttpMethodBase from which to get information
-     * @param msgContext
-     *            the MessageContext in which to place the information... OR
-     *            NOT!
-     * @throws AxisFault
-     *             if problems occur
-     */
-    protected void obtainHTTPHeaderInformation(Object httpMethodBase, MessageContext msgContext)
-            throws AxisFault {
-        HttpMethod method;
-        if (httpMethodBase instanceof HttpMethodBase) {
-            method = (HttpMethod) httpMethodBase;
-        } else {
-            return;
-        }
-        // Set RESPONSE properties onto the REQUEST message context. They will
-        // need to be copied off the request context onto
-        // the response context elsewhere, for example in the
-        // OutInOperationClient.
-        Map transportHeaders = new HTTPTransportHeaders(method.getResponseHeaders());
-        msgContext.setProperty(MessageContext.TRANSPORT_HEADERS, transportHeaders);
-        msgContext.setProperty(HTTPConstants.MC_HTTP_STATUS_CODE,
-                new Integer(method.getStatusCode()));
-        Header header = method.getResponseHeader(HTTPConstants.HEADER_CONTENT_TYPE);
-
-        if (header != null) {
-            HeaderElement[] headers = header.getElements();
-            MessageContext inMessageContext = msgContext.getOperationContext().getMessageContext(
-                    WSDLConstants.MESSAGE_LABEL_IN_VALUE);
-
-            Object contentType = header.getValue();
-            Object charSetEnc = null;
-
-            for (int i = 0; i < headers.length; i++) {
-                NameValuePair charsetEnc = headers[i]
-                        .getParameterByName(HTTPConstants.CHAR_SET_ENCODING);
-                if (charsetEnc != null) {
-                    charSetEnc = charsetEnc.getValue();
-                }
-            }
-
-            if (inMessageContext != null) {
-                inMessageContext.setProperty(Constants.Configuration.CONTENT_TYPE, contentType);
-                inMessageContext.setProperty(Constants.Configuration.CHARACTER_SET_ENCODING,
-                        charSetEnc);
-            } else {
-
-                // Transport details will be stored in a HashMap so that anybody
-                // interested can
-                // retrieve them
-                HashMap transportInfoMap = new HashMap();
-                transportInfoMap.put(Constants.Configuration.CONTENT_TYPE, contentType);
-                transportInfoMap.put(Constants.Configuration.CHARACTER_SET_ENCODING, charSetEnc);
-
-                // the HashMap is stored in the outgoing message.
-                msgContext
-                        .setProperty(Constants.Configuration.TRANSPORT_INFO_MAP, transportInfoMap);
-            }
-        }
-
-        String sessionCookie = null;
-        // Process old style headers first
-        Header[] cookieHeaders = method.getResponseHeaders(HTTPConstants.HEADER_SET_COOKIE);
-        String customCoookiId = (String) msgContext.getProperty(Constants.CUSTOM_COOKIE_ID);
-
-        // The following only check for JSESSIONID / axis_session / custom-cookie-id from the Set-Cookie header.
-        // But it will ignore if there are other Set-Cookie values, which may cause issues at client level,
-        // when invoking via a load-balancer, which expect some specific Cookie value.
-        // So the correct fix is to add whatever the value(s) in the Set-Cookie header as session cookie.
-
-//        for (int i = 0; i < cookieHeaders.length; i++) {
-//            HeaderElement[] elements = cookieHeaders[i].getElements();
-//            for (int e = 0; e < elements.length; e++) {
-//                HeaderElement element = elements[e];
-//                if (Constants.SESSION_COOKIE.equalsIgnoreCase(element.getName())
-//                        || Constants.SESSION_COOKIE_JSESSIONID.equalsIgnoreCase(element.getName())) {
-//                    sessionCookie = processCookieHeader(element);
-//                }
-//                if (customCoookiId != null && customCoookiId.equalsIgnoreCase(element.getName())) {
-//                    sessionCookie = processCookieHeader(element);
-//                }
-//            }
-//        }
-
-        sessionCookie = processSetCookieHeaders(cookieHeaders);
-
-        // Overwrite old style cookies with new style ones if present
-        cookieHeaders = method.getResponseHeaders(HTTPConstants.HEADER_SET_COOKIE2);
-        for (int i = 0; i < cookieHeaders.length; i++) {
-            HeaderElement[] elements = cookieHeaders[i].getElements();
-            for (int e = 0; e < elements.length; e++) {
-                HeaderElement element = elements[e];
-                if (Constants.SESSION_COOKIE.equalsIgnoreCase(element.getName())
-                        || Constants.SESSION_COOKIE_JSESSIONID.equalsIgnoreCase(element.getName())) {
-                    sessionCookie = processCookieHeader(element);
-                }
-                if (customCoookiId != null && customCoookiId.equalsIgnoreCase(element.getName())) {
-                    sessionCookie = processCookieHeader(element);
-                }
-            }
-        }
-
-        if (sessionCookie != null && !sessionCookie.equals("")) {
-            msgContext.getServiceContext().setProperty(HTTPConstants.COOKIE_STRING, sessionCookie);
-        }
-    }
-
-    private String processCookieHeader(HeaderElement element) {
-        String cookie = element.getName() + "=" + element.getValue();
-        NameValuePair[] parameters = element.getParameters();
-        for (int j = 0; parameters != null && j < parameters.length; j++) {
-            NameValuePair parameter = parameters[j];
-            cookie = cookie + "; " + parameter.getName() + "=" + parameter.getValue();
-        }
-        return cookie;
-    }
-
-
-    private String processSetCookieHeaders(Header[] headers) {
-        String cookie = "";
-        for (Header header : headers) {
-            if (!cookie.equals("")) {
-                cookie = cookie + ";";
-            }
-            HeaderElement[] elements = header.getElements();
-            for (HeaderElement element : elements) {
-                cookie = cookie + element.getName() + "=" + element.getValue();
-                NameValuePair[] parameters = element.getParameters();
-                for (NameValuePair parameter : parameters) {
-                    cookie = cookie + "; " + parameter.getName() + "=" + parameter.getValue();
-                }
-            }
-        }
-        return cookie;
-    }
-
-    protected void processResponse(HttpMethodBase httpMethod, MessageContext msgContext)
-            throws IOException {
-        obtainHTTPHeaderInformation(httpMethod, msgContext);
-
-        InputStream in = httpMethod.getResponseBodyAsStream();
-        if (in == null) {
-            throw new AxisFault(Messages.getMessage("canNotBeNull", "InputStream"));
-        }
-        Header contentEncoding = httpMethod
-                .getResponseHeader(HTTPConstants.HEADER_CONTENT_ENCODING);
-        if (contentEncoding != null) {
-            if (contentEncoding.getValue().equalsIgnoreCase(HTTPConstants.COMPRESSION_GZIP)) {
-                in = new GZIPInputStream(in);
-                // If the content-encoding is identity we can basically ignore
-                // it.
-            } else if (!"identity".equalsIgnoreCase(contentEncoding.getValue())) {
-                throw new AxisFault("HTTP :" + "unsupported content-encoding of '"
-                        + contentEncoding.getValue() + "' found");
-            }
-        }
-
-        OperationContext opContext = msgContext.getOperationContext();
-        if (opContext != null) {
-            opContext.setProperty(MessageContext.TRANSPORT_IN, in);
-        }
-    }
-
-    /**
-     * getting host configuration to support standard http/s, proxy and NTLM
-     * support
-     * 
-     * @param client
-     *            active HttpClient
-     * @param msgCtx
-     *            active MessageContext
-     * @param targetURL
-     *            the target URL
-     * @return a HostConfiguration set up with proxy information
-     * @throws AxisFault
-     *             if problems occur
-     */
-    protected HostConfiguration getHostConfiguration(HttpClient client, MessageContext msgCtx,
-            URL targetURL) throws AxisFault {
-
-        boolean isAuthenticationEnabled = isAuthenticationEnabled(msgCtx);
-        int port = targetURL.getPort();
-
-        String protocol = targetURL.getProtocol();
-        if (port == -1) {
-            if (HTTPTransportConstants.PROTOCOL_HTTP.equals(protocol)) {
-                port = 80;
-            } else if (HTTPTransportConstants.PROTOCOL_HTTPS.equals(protocol)) {
-                port = 443;
-            }
-
-        }
-
-        // to see the host is a proxy and in the proxy list - available in
-        // axis2.xml
-        HostConfiguration config = client.getHostConfiguration();
-        if (config == null) {
-            config = new HostConfiguration();
-        }
-
-        // one might need to set his own socket factory. Let's allow that case
-        // as well.
-        Protocol protocolHandler = (Protocol) msgCtx.getOptions().getProperty(
-                HTTPConstants.CUSTOM_PROTOCOL_HANDLER);
-
-        // setting the real host configuration
-        // I assume the 90% case, or even 99% case will be no protocol handler
-        // case.
-        if (protocolHandler == null) {
-            config.setHost(targetURL.getHost(), port, targetURL.getProtocol());
-        } else {
-            config.setHost(targetURL.getHost(), port, protocolHandler);
-        }
-
-        if (isAuthenticationEnabled) {
-            // Basic, Digest, NTLM and custom authentications.
-            this.setAuthenticationInfo(client, msgCtx, config);
-        }
-        // proxy configuration
-
-        if (HTTPProxyConfigurator.isProxyEnabled(msgCtx, targetURL)) {
-            if (log.isDebugEnabled()) {
-                log.debug("Configuring HTTP proxy.");
-            }
-            HTTPProxyConfigurator.configure(msgCtx, client, config);
-        }
-
-        return config;
-    }
-
-    protected boolean isAuthenticationEnabled(MessageContext msgCtx) {
-        return (msgCtx.getProperty(HTTPConstants.AUTHENTICATE) != null);
-    }
-
-    /*
-     * This will handle server Authentication, It could be either NTLM, Digest
-     * or Basic Authentication. Apart from that user can change the priory or
-     * add a custom authentication scheme.
-     */
-    protected void setAuthenticationInfo(HttpClient agent, MessageContext msgCtx,
-            HostConfiguration config) throws AxisFault {
-        HTTPAuthenticator authenticator;
-        Object obj = msgCtx.getProperty(HTTPConstants.AUTHENTICATE);
-        if (obj != null) {
-            if (obj instanceof HTTPAuthenticator) {
-                authenticator = (HTTPAuthenticator) obj;
-
-                String username = authenticator.getUsername();
-                String password = authenticator.getPassword();
-                String host = authenticator.getHost();
-                String domain = authenticator.getDomain();
-
-                int port = authenticator.getPort();
-                String realm = authenticator.getRealm();
-
-                /* If retrying is available set it first */
-                isAllowedRetry = authenticator.isAllowedRetry();
-
-                Credentials creds;
-
-                HttpState tmpHttpState = null;
-                HttpState httpState = (HttpState) msgCtx
-                        .getProperty(HTTPConstants.CACHED_HTTP_STATE);
-                if (httpState != null) {
-                    tmpHttpState = httpState;
-                } else {
-                    tmpHttpState = agent.getState();
-                }
-
-                agent.getParams().setAuthenticationPreemptive(
-                        authenticator.getPreemptiveAuthentication());
-
-                if (host != null) {
-                    if (domain != null) {
-                        /* Credentials for NTLM Authentication */
-                        creds = new NTCredentials(username, password, host, domain);
-                    } else {
-                        /* Credentials for Digest and Basic Authentication */
-                        creds = new UsernamePasswordCredentials(username, password);
-                    }
-                    tmpHttpState.setCredentials(new AuthScope(host, port, realm), creds);
-                } else {
-                    if (domain != null) {
-                        /*
-                         * Credentials for NTLM Authentication when host is
-                         * ANY_HOST
-                         */
-                        creds = new NTCredentials(username, password, AuthScope.ANY_HOST, domain);
-                        tmpHttpState.setCredentials(new AuthScope(AuthScope.ANY_HOST, port, realm),
-                                creds);
-                    } else {
-                        /* Credentials only for Digest and Basic Authentication */
-                        creds = new UsernamePasswordCredentials(username, password);
-                        tmpHttpState.setCredentials(new AuthScope(AuthScope.ANY), creds);
-                    }
-                }
-                /* Customizing the priority Order */
-                List schemes = authenticator.getAuthSchemes();
-                if (schemes != null && schemes.size() > 0) {
-                    List authPrefs = new ArrayList(3);
-                    for (int i = 0; i < schemes.size(); i++) {
-                        if (schemes.get(i) instanceof AuthPolicy) {
-                            authPrefs.add(schemes.get(i));
-                            continue;
-                        }
-                        String scheme = (String) schemes.get(i);
-                        authPrefs.add(authenticator.getAuthPolicyPref(scheme));
-
-                    }
-                    agent.getParams().setParameter(AuthPolicy.AUTH_SCHEME_PRIORITY, authPrefs);
-                }
-
-            } else {
-                throw new AxisFault("HttpTransportProperties.Authenticator class cast exception");
-            }
-        }
-
-    }
-
-    /**
-     * Method used to copy all the common properties
-     * 
-     * @param msgContext
-     *            - The messageContext of the request message
-     * @param url
-     *            - The target URL
-     * @param httpMethod
-     *            - The http method used to send the request
-     * @param httpClient
-     *            - The httpclient used to send the request
-     * @param soapActionString
-     *            - The soap action atring of the request message
-     * @return MessageFormatter - The messageFormatter for the relavent request
-     *         message
-     * @throws AxisFault
-     *             - Thrown in case an exception occurs
-     */
-    protected MessageFormatter populateCommonProperties(MessageContext msgContext, URL url,
-            HttpMethodBase httpMethod, HttpClient httpClient, String soapActionString)
-            throws AxisFault {
-
-        if (isAuthenticationEnabled(msgContext)) {
-            httpMethod.setDoAuthentication(true);
-        }
-
-        MessageFormatter messageFormatter = MessageProcessorSelector
-                .getMessageFormatter(msgContext);
-
-        url = messageFormatter.getTargetAddress(msgContext, format, url);
-
-        httpMethod.setPath(url.getPath());
-
-        httpMethod.setQueryString(url.getQuery());
-
-        httpMethod.setRequestHeader(HTTPConstants.HEADER_CONTENT_TYPE,
-                messageFormatter.getContentType(msgContext, format, soapActionString));
-
-        httpMethod.setRequestHeader(HTTPConstants.HEADER_HOST, url.getHost());
-
-        if (msgContext.getOptions() != null && msgContext.getOptions().isManageSession()) {
-            // setting the cookie in the out path
-            Object cookieString = msgContext.getProperty(HTTPConstants.COOKIE_STRING);
-
-            if (cookieString != null) {
-                StringBuffer buffer = new StringBuffer();
-                buffer.append(cookieString);
-                httpMethod.setRequestHeader(HTTPConstants.HEADER_COOKIE, buffer.toString());
-            }
-        }
-
-        if (httpVersion.equals(HTTPConstants.HEADER_PROTOCOL_10)) {
-            httpClient.getParams().setVersion(HttpVersion.HTTP_1_0);
-        }
-        return messageFormatter;
-    }
-
-    /**
-     * This is used to get the dynamically set time out values from the message
-     * context. If the values are not available or invalid then the default
-     * values or the values set by the configuration will be used
-     * 
-     * @param msgContext
-     *            the active MessageContext
-     * @param httpClient
-     */
-    protected void initializeTimeouts(MessageContext msgContext, HttpClient httpClient) {
-        // If the SO_TIMEOUT of CONNECTION_TIMEOUT is set by dynamically the
-        // override the static config
-        Integer tempSoTimeoutProperty = (Integer) msgContext.getProperty(HTTPConstants.SO_TIMEOUT);
-        Integer tempConnTimeoutProperty = (Integer) msgContext
-                .getProperty(HTTPConstants.CONNECTION_TIMEOUT);
-        long timeout = msgContext.getOptions().getTimeOutInMilliSeconds();
-
-        if (tempConnTimeoutProperty != null) {
-            int connectionTimeout = tempConnTimeoutProperty.intValue();
-            // timeout for initial connection
-            httpClient.getHttpConnectionManager().getParams()
-                    .setConnectionTimeout(connectionTimeout);
-        } else {
-            // set timeout in client
-            if (timeout > 0) {
-                httpClient.getHttpConnectionManager().getParams()
-                        .setConnectionTimeout((int) timeout);
-            }
-        }
-
-        if (tempSoTimeoutProperty != null) {
-            int soTimeout = tempSoTimeoutProperty.intValue();
-            // SO_TIMEOUT -- timeout for blocking reads
-            httpClient.getHttpConnectionManager().getParams().setSoTimeout(soTimeout);
-            httpClient.getParams().setSoTimeout(soTimeout);
-        } else {
-            // set timeout in client
-            if (timeout > 0) {
-                httpClient.getHttpConnectionManager().getParams().setSoTimeout((int) timeout);
-                httpClient.getParams().setSoTimeout((int) timeout);
-            }
-        }
-    }
-
-    /**
-     * This is used to get the dynamically set time out values from the message
-     * context. If the values are not available or invalid then the default
-     * values or the values set by the configuration will be used
-     * 
-     * @param msgContext
-     *            the active MessageContext
-     * @param httpMethod
-     *            method
-     */
-    protected void setTimeouts(MessageContext msgContext, HttpMethod httpMethod) {
-        // If the SO_TIMEOUT of CONNECTION_TIMEOUT is set by dynamically the
-        // override the static config
-        Integer tempSoTimeoutProperty = (Integer) msgContext.getProperty(HTTPConstants.SO_TIMEOUT);
-        Integer tempConnTimeoutProperty = (Integer) msgContext
-                .getProperty(HTTPConstants.CONNECTION_TIMEOUT);
-        long timeout = msgContext.getOptions().getTimeOutInMilliSeconds();
-
-        if (tempConnTimeoutProperty != null) {
-            // timeout for initial connection
-            httpMethod.getParams().setParameter("http.connection.timeout", tempConnTimeoutProperty);
-        }
-
-        if (tempSoTimeoutProperty != null) {
-            // SO_TIMEOUT -- timeout for blocking reads
-            httpMethod.getParams().setSoTimeout(tempSoTimeoutProperty);
-        } else {
-            // set timeout in client
-            if (timeout > 0) {
-                httpMethod.getParams().setSoTimeout((int) timeout);
-            }
-        }
-    }
-
-    protected HttpClient getHttpClient(MessageContext msgContext) {
-        ConfigurationContext configContext = msgContext.getConfigurationContext();
-
-        HttpClient httpClient = (HttpClient) msgContext
-                .getProperty(HTTPConstants.CACHED_HTTP_CLIENT);
-
-        if (httpClient == null) {
-            httpClient = (HttpClient) configContext.getProperty(HTTPConstants.CACHED_HTTP_CLIENT);
-        }
-
-        if (httpClient != null) {
-            return httpClient;
-        }
-
-        synchronized (this) {
-            httpClient = (HttpClient) msgContext.getProperty(HTTPConstants.CACHED_HTTP_CLIENT);
-
-            if (httpClient == null) {
-                httpClient = (HttpClient) configContext
-                        .getProperty(HTTPConstants.CACHED_HTTP_CLIENT);
-            }
-
-            if (httpClient != null) {
-                return httpClient;
-            }
-
-            HttpConnectionManager connManager = (HttpConnectionManager) msgContext
-                    .getProperty(HTTPConstants.MULTITHREAD_HTTP_CONNECTION_MANAGER);
-            if (connManager == null) {
-                connManager = (HttpConnectionManager) msgContext
-                        .getProperty(HTTPConstants.MULTITHREAD_HTTP_CONNECTION_MANAGER);
-            }
-            if (connManager == null) {
-                // reuse HttpConnectionManager
-                synchronized (configContext) {
-                    connManager = (HttpConnectionManager) configContext
-                            .getProperty(HTTPConstants.MULTITHREAD_HTTP_CONNECTION_MANAGER);
-                    if (connManager == null) {
-                        log.trace("Making new ConnectionManager");
-                        connManager = new MultiThreadedHttpConnectionManager();
-                        configContext.setProperty(
-                                HTTPConstants.MULTITHREAD_HTTP_CONNECTION_MANAGER, connManager);
-                    }
-                }
-            }
-            /*
-             * Create a new instance of HttpClient since the way it is used here
-             * it's not fully thread-safe.
-             */
-            httpClient = new HttpClient(connManager);
-
-            // Set the default timeout in case we have a connection pool
-            // starvation to 30sec
-            httpClient.getParams().setConnectionManagerTimeout(30000);
-
-            // Get the timeout values set in the runtime
-            initializeTimeouts(msgContext, httpClient);
-
-            return httpClient;
-        }
-    }
-
-    protected void executeMethod(HttpClient httpClient, MessageContext msgContext, URL url,
-            HttpMethod method) throws IOException {
-        HostConfiguration config = this.getHostConfiguration(httpClient, msgContext, url);
-
-        // set the custom headers, if available
-        addCustomHeaders(method, msgContext);
-
-        // add compression headers if needed
-        if (msgContext.isPropertyTrue(HTTPConstants.MC_ACCEPT_GZIP)) {
-            method.addRequestHeader(HTTPConstants.HEADER_ACCEPT_ENCODING,
-                    HTTPConstants.COMPRESSION_GZIP);
-        }
-
-        if (msgContext.isPropertyTrue(HTTPConstants.MC_GZIP_REQUEST)) {
-            method.addRequestHeader(HTTPConstants.HEADER_CONTENT_ENCODING,
-                    HTTPConstants.COMPRESSION_GZIP);
-        }
-
-        if (msgContext.getProperty(HTTPConstants.HTTP_METHOD_PARAMS) != null) {
-            HttpMethodParams params = (HttpMethodParams) msgContext
-                    .getProperty(HTTPConstants.HTTP_METHOD_PARAMS);
-            method.setParams(params);
-        }
-
-        String cookiePolicy = (String) msgContext.getProperty(HTTPConstants.COOKIE_POLICY);
-        if (cookiePolicy != null) {
-            method.getParams().setCookiePolicy(cookiePolicy);
-        }
-        HttpState httpState = (HttpState) msgContext.getProperty(HTTPConstants.CACHED_HTTP_STATE);
-
-        setTimeouts(msgContext, method);
-
-        httpClient.executeMethod(config, method, httpState);
-    }
-
-    public void addCustomHeaders(HttpMethod method, MessageContext msgContext) {
-
-        boolean isCustomUserAgentSet = false;
-        // set the custom headers, if available
-        Object httpHeadersObj = msgContext.getProperty(HTTPConstants.HTTP_HEADERS);
-        if (httpHeadersObj != null) {
-            if (httpHeadersObj instanceof List) {
-                List httpHeaders = (List) httpHeadersObj;
-                for (int i = 0; i < httpHeaders.size(); i++) {
-                    NamedValue nv = (NamedValue) httpHeaders.get(i);
-                    if (nv != null) {
-                        Header header = new Header(nv.getName(), nv.getValue());
-                        if (HTTPConstants.HEADER_USER_AGENT.equals(header.getName())) {
-                            isCustomUserAgentSet = true;
-                        }
-                        method.addRequestHeader(header);
-                    }
-                }
-
-            }
-            if (httpHeadersObj instanceof Map) {
-                Map httpHeaders = (Map) httpHeadersObj;
-                for (Iterator iterator = httpHeaders.entrySet().iterator(); iterator.hasNext();) {
-                    Map.Entry entry = (Map.Entry) iterator.next();
-                    String key = (String) entry.getKey();
-                    String value = (String) entry.getValue();
-                    if (HTTPConstants.HEADER_USER_AGENT.equals(key)) {
-                        isCustomUserAgentSet = true;
-                    }
-                    method.addRequestHeader(key, value);
-                }
-            }
-        }
-
-        // we have to consider the TRANSPORT_HEADERS map as well
-        Map transportHeaders = (Map) msgContext.getProperty(MessageContext.TRANSPORT_HEADERS);
-        if (transportHeaders != null) {
-            removeUnwantedHeaders(msgContext);
-
-            Set headerEntries = transportHeaders.entrySet();
-
-            for (Object headerEntry : headerEntries) {
-                if (headerEntry instanceof Map.Entry) {
-                    Header[] headers = method.getRequestHeaders();
-
-                    boolean headerAdded = false;
-                    for (Header header : headers) {
-                        if (header.getName() != null
-                                && header.getName().equals(((Map.Entry) headerEntry).getKey())) {
-                            headerAdded = true;
-                            break;
-                        }
-                    }
-
-                    if (!headerAdded) {
-                        method.addRequestHeader(((Map.Entry) headerEntry).getKey().toString(),
-                                ((Map.Entry) headerEntry).getValue().toString());
-                    }
-                }
-            }
-        }
-
-        if (!isCustomUserAgentSet) {
-            String userAgentString = getUserAgent(msgContext);
-            method.setRequestHeader(HTTPConstants.HEADER_USER_AGENT, userAgentString);
-        }
-
-    }
-
-    /**
-     * Remove unwanted headers from the transport headers map of outgoing
-     * request. These are headers which should be dictated by the transport and
-     * not the user. We remove these as these may get copied from the request
-     * messages
-     * 
-     * @param msgContext
-     *            the Axis2 Message context from which these headers should be
-     *            removed
-     */
-    private void removeUnwantedHeaders(MessageContext msgContext) {
-        Map headers = (Map) msgContext.getProperty(MessageContext.TRANSPORT_HEADERS);
-
-        if (headers == null || headers.isEmpty()) {
-            return;
-        }
-
-        Iterator iter = headers.keySet().iterator();
-        while (iter.hasNext()) {
-            String headerName = (String) iter.next();
-            if (HTTP.CONN_DIRECTIVE.equalsIgnoreCase(headerName)
-                    || HTTP.TRANSFER_ENCODING.equalsIgnoreCase(headerName)
-                    || HTTP.DATE_HEADER.equalsIgnoreCase(headerName)
-                    || HTTP.CONTENT_TYPE.equalsIgnoreCase(headerName)
-                    || HTTP.CONTENT_LEN.equalsIgnoreCase(headerName)) {
-                iter.remove();
-            }
-        }
-    }
-
-    private String getUserAgent(MessageContext messageContext) {
-        String userAgentString = "Axis2";
-        boolean locked = false;
-        if (messageContext.getParameter(HTTPConstants.USER_AGENT) != null) {
-            OMElement userAgentElement = messageContext.getParameter(HTTPConstants.USER_AGENT)
-                    .getParameterElement();
-            userAgentString = userAgentElement.getText().trim();
-            OMAttribute lockedAttribute = userAgentElement.getAttribute(new QName("locked"));
-            if (lockedAttribute != null) {
-                if (lockedAttribute.getAttributeValue().equalsIgnoreCase("true")) {
-                    locked = true;
-                }
-            }
-        }
-        // Runtime overing part
-        if (!locked) {
-            if (messageContext.getProperty(HTTPConstants.USER_AGENT) != null) {
-                userAgentString = (String) messageContext.getProperty(HTTPConstants.USER_AGENT);
-            }
-        }
-
-        return userAgentString;
-    }
-
-}
diff --git a/modules/transport/http/src/org/apache/axis2/transport/http/impl/httpclient3/HTTPTransportHeaders.java b/modules/transport/http/src/org/apache/axis2/transport/http/impl/httpclient3/HTTPTransportHeaders.java
deleted file mode 100644
index 6f6deac..0000000
--- a/modules/transport/http/src/org/apache/axis2/transport/http/impl/httpclient3/HTTPTransportHeaders.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.axis2.transport.http.impl.httpclient3;
-
-import java.util.HashMap;
-
-import org.apache.axis2.transport.http.CommonsTransportHeaders;
-import org.apache.commons.httpclient.Header;
-
-public class HTTPTransportHeaders extends CommonsTransportHeaders {
-
-    private Header[] headers;
-
-    public HTTPTransportHeaders(Header[] headers) {
-        this.headers = headers;
-
-    }
-
-    protected void init() {
-        setHeaderMap(new HashMap());
-        for (int i = 0; i < headers.length; i++) {
-            getHeaderMap().put(headers[i].getName(), headers[i].getValue());
-        }
-    }
-
-}
diff --git a/modules/transport/http/src/org/apache/axis2/transport/http/impl/httpclient3/RESTRequestEntityImpl.java b/modules/transport/http/src/org/apache/axis2/transport/http/impl/httpclient3/RESTRequestEntityImpl.java
deleted file mode 100644
index 387729a..0000000
--- a/modules/transport/http/src/org/apache/axis2/transport/http/impl/httpclient3/RESTRequestEntityImpl.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.axis2.transport.http.impl.httpclient3;
-
-import org.apache.axiom.om.OMElement;
-import org.apache.axiom.om.OMOutputFormat;
-import org.apache.axis2.context.MessageContext;
-import org.apache.axis2.transport.http.RESTRequestEntity;
-import org.apache.commons.httpclient.methods.RequestEntity;
-
-public class RESTRequestEntityImpl extends RESTRequestEntity implements RequestEntity {
-
-    public RESTRequestEntityImpl(OMElement element, boolean chunked, MessageContext msgCtxt,
-            String charSetEncoding, String soapActionString, OMOutputFormat format) {
-        super(element, chunked, msgCtxt, charSetEncoding, soapActionString, format);
-    }
-
-    public String getContentType() {
-        return getContentTypeAsString();
-    }
-
-}
diff --git a/modules/transport/http/src/org/apache/axis2/transport/http/impl/httpclient4/AxisRequestEntityImpl.java b/modules/transport/http/src/org/apache/axis2/transport/http/impl/httpclient4/AxisRequestEntityImpl.java
index 5be5a33..664c326 100644
--- a/modules/transport/http/src/org/apache/axis2/transport/http/impl/httpclient4/AxisRequestEntityImpl.java
+++ b/modules/transport/http/src/org/apache/axis2/transport/http/impl/httpclient4/AxisRequestEntityImpl.java
@@ -19,9 +19,6 @@
 
 package org.apache.axis2.transport.http.impl.httpclient4;
 
-import org.apache.axiom.om.OMOutputFormat;
-import org.apache.axis2.context.MessageContext;
-import org.apache.axis2.transport.MessageFormatter;
 import org.apache.axis2.transport.http.AxisRequestEntity;
 import org.apache.axis2.transport.http.HTTPConstants;
 import org.apache.http.Header;
@@ -36,46 +33,57 @@
  * This Request Entity is used by the HttpComponentsTransportSender. This wraps the
  * Axis2 message formatter object.
  */
-public class AxisRequestEntityImpl extends AxisRequestEntity implements HttpEntity {
+public class AxisRequestEntityImpl implements HttpEntity {
+    private final AxisRequestEntity entity;
 
-    /**
-     * Method calls to this request entity are delegated to the following Axis2
-     * message formatter object.
-     *
-     * @param messageFormatter
-     * @param msgContext
-     * @param format
-     * @param soapAction
-     * @param chunked
-     * @param isAllowedRetry
-     */
-    public AxisRequestEntityImpl(MessageFormatter messageFormatter, MessageContext msgContext,
-            OMOutputFormat format, String soapAction, boolean chunked, boolean isAllowedRetry) {
-        super(messageFormatter, msgContext, format, soapAction, chunked, isAllowedRetry);
+    public AxisRequestEntityImpl(AxisRequestEntity entity) {
+        this.entity = entity;
     }
 
+    @Override
     public Header getContentType() {
-        return new BasicHeader(HTTPConstants.HEADER_CONTENT_TYPE, getContentTypeAsString());
+        return new BasicHeader(HTTPConstants.HEADER_CONTENT_TYPE, entity.getContentType());
     }
 
+    @Override
     public Header getContentEncoding() {
         return null;
     }
 
+    @Override
     public InputStream getContent() throws IOException {
-        return getRequestEntityContent();
+        // Implementations are allowed to throw UnsupportedOperationException and this method is
+        // never called for outgoing requests anyway.
+        throw new UnsupportedOperationException();
     }
 
+    @Override
     public void writeTo(OutputStream outputStream) throws IOException {
-        writeRequest(outputStream);
+        entity.writeRequest(outputStream);
     }
 
+    @Override
     public boolean isStreaming() {
         return false;
     }
 
+    @Override
     public void consumeContent() {
-        // TODO: Handle this correctly
+        // We don't need to do anything here.
     }
 
+    @Override
+    public long getContentLength() {
+        return entity.getContentLength();
+    }
+
+    @Override
+    public boolean isChunked() {
+        return entity.isChunked();
+    }
+
+    @Override
+    public boolean isRepeatable() {
+        return entity.isRepeatable();
+    }
 }
diff --git a/modules/transport/http/src/org/apache/axis2/transport/http/impl/httpclient4/HTTPClient4TransportSender.java b/modules/transport/http/src/org/apache/axis2/transport/http/impl/httpclient4/HTTPClient4TransportSender.java
index 4cb89d1..2a49934 100644
--- a/modules/transport/http/src/org/apache/axis2/transport/http/impl/httpclient4/HTTPClient4TransportSender.java
+++ b/modules/transport/http/src/org/apache/axis2/transport/http/impl/httpclient4/HTTPClient4TransportSender.java
@@ -19,31 +19,43 @@
 
 package org.apache.axis2.transport.http.impl.httpclient4;
 
+import java.io.IOException;
+import java.io.InputStream;
+
 import org.apache.axis2.AxisFault;
 import org.apache.axis2.context.ConfigurationContext;
 import org.apache.axis2.context.MessageContext;
-import org.apache.axis2.transport.http.AbstractHTTPSender;
-import org.apache.axis2.transport.http.CommonsHTTPTransportSender;
+import org.apache.axis2.context.OperationContext;
+import org.apache.axis2.transport.http.AbstractHTTPTransportSender;
 import org.apache.axis2.transport.http.HTTPConstants;
+import org.apache.axis2.transport.http.HTTPSender;
 import org.apache.axis2.transport.http.HTTPTransportConstants;
-import org.apache.axis2.transport.http.HTTPTransportSender;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 
 /**
  * The Class HTTPClient4TransportSender use HC HTTPClient 4.X. 
  */
-public class HTTPClient4TransportSender extends CommonsHTTPTransportSender implements
-                                                                           HTTPTransportSender {
+public class HTTPClient4TransportSender extends AbstractHTTPTransportSender {
 
     private static final Log log = LogFactory.getLog(HTTPClient4TransportSender.class);
 
     @Override
     public void cleanup(MessageContext msgContext) throws AxisFault {
-        // We don't need to call cleanup here because httpclient4 releases
-        // the connection and cleanup automatically
-        // TODO : Don't do this if we're not on the right thread! Can we confirm?
         log.trace("cleanup() releasing connection");
+        
+        OperationContext opContext = msgContext.getOperationContext();
+        if (opContext != null) {
+            InputStream in = (InputStream)opContext.getProperty(MessageContext.TRANSPORT_IN);
+            if (in != null) {
+                try {
+                    in.close();
+                } catch (IOException ex) {
+                    // Ignore
+                }
+            }
+        }
+        
         // guard against multiple calls
         msgContext.removeProperty(HTTPConstants.HTTP_METHOD);
 
@@ -56,7 +68,7 @@
 
 
     @Override
-    protected AbstractHTTPSender createHTTPSender() {
+    protected HTTPSender createHTTPSender() {
         return new HTTPSenderImpl();
     }
 
diff --git a/modules/transport/http/src/org/apache/axis2/transport/http/impl/httpclient4/HTTPProxyConfigurator.java b/modules/transport/http/src/org/apache/axis2/transport/http/impl/httpclient4/HTTPProxyConfigurator.java
index df7587e..c90c494 100644
--- a/modules/transport/http/src/org/apache/axis2/transport/http/impl/httpclient4/HTTPProxyConfigurator.java
+++ b/modules/transport/http/src/org/apache/axis2/transport/http/impl/httpclient4/HTTPProxyConfigurator.java
@@ -33,9 +33,12 @@
 import org.apache.http.auth.Credentials;
 import org.apache.http.auth.NTCredentials;
 import org.apache.http.auth.UsernamePasswordCredentials;
-import org.apache.http.client.params.ClientPNames;
-import org.apache.http.conn.params.ConnRoutePNames;
+import org.apache.http.client.CredentialsProvider;
+import org.apache.http.client.config.RequestConfig;
+import org.apache.http.client.protocol.HttpClientContext;
 import org.apache.http.impl.client.AbstractHttpClient;
+import org.apache.http.impl.client.BasicCredentialsProvider;
+import org.apache.http.impl.client.CloseableHttpClient;
 
 import javax.xml.namespace.QName;
 import java.net.URL;
@@ -58,12 +61,14 @@
      *
      * @param messageContext
      *            in message context for
-     * @param httpClient
-     *            instance
+     * @param requestConfig
+     *            the request configuration to fill in
+     * @param clientContext
+     *            the HTTP client context
      * @throws org.apache.axis2.AxisFault
      *             if Proxy settings are invalid
      */
-    public static void configure(MessageContext messageContext, AbstractHttpClient httpClient)
+    public static void configure(MessageContext messageContext, RequestConfig.Builder requestConfig, HttpClientContext clientContext)
             throws AxisFault {
 
         Credentials proxyCredentials = null;
@@ -136,17 +141,21 @@
         }
 
         String port = System.getProperty(HTTPTransportConstants.HTTP_PROXY_PORT);
-        if (port != null) {
+        if (port != null && !port.isEmpty()) {
             proxyPort = Integer.parseInt(port);
         }
 
         if (proxyCredentials != null) {
             // TODO : Set preemptive authentication, but its not recommended in HC 4
-            httpClient.getParams().setParameter(ClientPNames.HANDLE_AUTHENTICATION, true);
-
-            httpClient.getCredentialsProvider().setCredentials(AuthScope.ANY, proxyCredentials);
+            requestConfig.setAuthenticationEnabled(true);
+            CredentialsProvider credsProvider = clientContext.getCredentialsProvider();
+            if (credsProvider == null) {
+                credsProvider = new BasicCredentialsProvider();
+                clientContext.setCredentialsProvider(credsProvider);
+            }
+            credsProvider.setCredentials(AuthScope.ANY, proxyCredentials);
             HttpHost proxy = new HttpHost(proxyHost, proxyPort);
-            httpClient.getParams().setParameter(ConnRoutePNames.DEFAULT_PROXY, proxy);
+            requestConfig.setProxy(proxy);
 
         }
     }
diff --git a/modules/transport/http/src/org/apache/axis2/transport/http/impl/httpclient4/HTTPSenderImpl.java b/modules/transport/http/src/org/apache/axis2/transport/http/impl/httpclient4/HTTPSenderImpl.java
index 6341566..63c46db 100644
--- a/modules/transport/http/src/org/apache/axis2/transport/http/impl/httpclient4/HTTPSenderImpl.java
+++ b/modules/transport/http/src/org/apache/axis2/transport/http/impl/httpclient4/HTTPSenderImpl.java
@@ -19,786 +19,48 @@
 
 package org.apache.axis2.transport.http.impl.httpclient4;
 
-
-import org.apache.axiom.om.OMAttribute;
-import org.apache.axiom.om.OMElement;
 import org.apache.axis2.AxisFault;
-import org.apache.axis2.Constants;
 import org.apache.axis2.context.ConfigurationContext;
 import org.apache.axis2.context.MessageContext;
-import org.apache.axis2.context.NamedValue;
-import org.apache.axis2.context.OperationContext;
-import org.apache.axis2.i18n.Messages;
-import org.apache.axis2.transport.MessageFormatter;
-import org.apache.axis2.transport.http.HTTPAuthenticator;
+import org.apache.axis2.transport.http.AxisRequestEntity;
 import org.apache.axis2.transport.http.HTTPConstants;
 import org.apache.axis2.transport.http.HTTPSender;
-import org.apache.axis2.transport.http.HTTPTransportConstants;
-import org.apache.axis2.util.MessageProcessorSelector;
-import org.apache.axis2.wsdl.WSDLConstants;
+import org.apache.axis2.transport.http.Request;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.apache.http.Header;
-import org.apache.http.HeaderElement;
-import org.apache.http.HttpEntity;
-import org.apache.http.HttpHost;
-import org.apache.http.HttpResponse;
-import org.apache.http.HttpStatus;
-import org.apache.http.HttpVersion;
-import org.apache.http.NameValuePair;
-import org.apache.http.auth.AuthScope;
-import org.apache.http.auth.Credentials;
-import org.apache.http.auth.NTCredentials;
-import org.apache.http.auth.UsernamePasswordCredentials;
-import org.apache.http.auth.params.AuthPNames;
-import org.apache.http.client.methods.HttpDelete;
-import org.apache.http.client.methods.HttpGet;
-import org.apache.http.client.methods.HttpPost;
-import org.apache.http.client.methods.HttpPut;
-import org.apache.http.client.methods.HttpRequestBase;
-import org.apache.http.client.params.AuthPolicy;
-import org.apache.http.client.params.ClientPNames;
-import org.apache.http.conn.ClientConnectionManager;
-import org.apache.http.conn.scheme.PlainSocketFactory;
-import org.apache.http.conn.scheme.Scheme;
-import org.apache.http.conn.scheme.SchemeRegistry;
-import org.apache.http.conn.ssl.SSLSocketFactory;
-import org.apache.http.impl.auth.NTLMSchemeFactory;
-import org.apache.http.impl.client.AbstractHttpClient;
-import org.apache.http.impl.client.DefaultHttpClient;
-import org.apache.http.impl.conn.PoolingClientConnectionManager;
-import org.apache.http.message.BasicHeader;
-import org.apache.http.params.BasicHttpParams;
-import org.apache.http.params.CoreConnectionPNames;
-import org.apache.http.params.CoreProtocolPNames;
-import org.apache.http.params.HttpParams;
-import org.apache.http.protocol.BasicHttpContext;
-import org.apache.http.protocol.HTTP;
-import org.apache.http.protocol.HttpContext;
-import org.apache.http.util.EntityUtils;
+import org.apache.http.client.HttpClient;
+import org.apache.http.config.Registry;
+import org.apache.http.config.RegistryBuilder;
+import org.apache.http.conn.HttpClientConnectionManager;
+import org.apache.http.conn.socket.ConnectionSocketFactory;
+import org.apache.http.conn.socket.PlainConnectionSocketFactory;
+import org.apache.http.conn.ssl.SSLConnectionSocketFactory;
+import org.apache.http.impl.client.HttpClientBuilder;
+import org.apache.http.impl.conn.PoolingHttpClientConnectionManager;
+import org.apache.http.ssl.SSLContexts;
 
-import javax.xml.namespace.QName;
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.URISyntaxException;
 import java.net.URL;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.zip.GZIPInputStream;
 
+import javax.net.ssl.SSLContext;
 
 public class HTTPSenderImpl extends HTTPSender {
 
     private static final Log log = LogFactory.getLog(HTTPSenderImpl.class);
 
-    /**
-     * Used to send a request via HTTP Get method
-     *
-     * @param msgContext        - The MessageContext of the message
-     * @param url               - The target URL
-     * @param soapActionString - The soapAction string of the request
-     * @throws org.apache.axis2.AxisFault - Thrown in case an exception occurs
-     */
-    protected void sendViaGet(MessageContext msgContext, URL url, String soapActionString)
-            throws AxisFault {
-        HttpGet httpGet = new HttpGet();
-        AbstractHttpClient httpClient = getHttpClient(msgContext);
-        MessageFormatter messageFormatter = populateCommonProperties(msgContext, url, httpGet,
-                                                                     httpClient, soapActionString);
-
-        // Need to have this here because we can have soap action when using the
-        // soap response MEP
-        String soapAction = messageFormatter
-                .formatSOAPAction(msgContext, format, soapActionString);
-
-        if (soapAction != null && !msgContext.isDoingREST()) {
-            httpGet.setHeader(HTTPConstants.HEADER_SOAP_ACTION, soapAction);
-        }
-
-        /*
-         * main execution takes place..
-         */
-        HttpResponse response = null;
-        try {
-            response = executeMethod(httpClient, msgContext, url, httpGet);
-            handleResponse(msgContext, response);
-        } catch (IOException e) {
-            log.info("Unable to sendViaGet to url[" + url + "]", e);
-            throw AxisFault.makeFault(e);
-        } finally {
-            cleanup(msgContext, response);
-        }
-    }
-
     @Override
-    protected void cleanup(MessageContext msgContext, Object httpResponse) {
-        HttpResponse response;
-        if (httpResponse instanceof HttpResponse) {
-            response = (HttpResponse) httpResponse;
-        } else {
-            log.trace("HttpResponse expected, but found - " + httpResponse);
-            return;
-        }
-        if (msgContext.isPropertyTrue(HTTPConstants.CLEANUP_RESPONSE)) {
-            log.trace("Cleaning response : " + response);
-            HttpEntity entity = response.getEntity();
-            if (entity != null) {
-                try {
-                    EntityUtils.consume(entity);
-                } catch (IOException e) {
-                    log.error("Error while cleaning response : " + response, e);
-                }
-            }
-        }
+    protected Request createRequest(MessageContext msgContext, String methodName, URL url,
+            AxisRequestEntity requestEntity) throws AxisFault {
+        return new RequestImpl(getHttpClient(msgContext), msgContext, methodName, url, requestEntity);
     }
 
-    /**
-     * Used to send a request via HTTP Delete Method
-     *
-     * @param msgContext        - The MessageContext of the message
-     * @param url               - The target URL
-     * @param soapActionString - The soapAction string of the request
-     * @throws org.apache.axis2.AxisFault - Thrown in case an exception occurs
-     */
-    protected void sendViaDelete(MessageContext msgContext, URL url, String soapActionString)
-            throws AxisFault {
-
-        HttpDelete deleteMethod = new HttpDelete();
-        AbstractHttpClient httpClient = getHttpClient(msgContext);
-        populateCommonProperties(msgContext, url, deleteMethod, httpClient, soapActionString);
-
-        /*
-         * main execution takes place..
-         */
-        HttpResponse response = null;
-        try {
-            response = executeMethod(httpClient, msgContext, url, deleteMethod);
-            handleResponse(msgContext, response);
-        } catch (IOException e) {
-            log.info("Unable to sendViaDelete to url[" + url + "]", e);
-            throw AxisFault.makeFault(e);
-        } finally {
-            cleanup(msgContext, response);
-        }
-    }
-
-    /**
-     * Used to send a request via HTTP Post Method
-     *
-     * @param msgContext       - The MessageContext of the message
-     * @param url              - The target URL
-     * @param soapActionString - The soapAction string of the request
-     * @throws org.apache.axis2.AxisFault - Thrown in case an exception occurs
-     */
-    protected void sendViaPost(MessageContext msgContext, URL url, String soapActionString)
-            throws AxisFault {
-
-        AbstractHttpClient httpClient = getHttpClient(msgContext);
-
-        /*
-         * What's up with this, it never gets used anywhere?? --Glen String
-         * charEncoding = (String)
-         * msgContext.getProperty(Constants.Configuration
-         * .CHARACTER_SET_ENCODING);
-         *
-         * if (charEncoding == null) { charEncoding =
-         * MessageContext.DEFAULT_CHAR_SET_ENCODING; }
-         */
-
-        HttpPost postMethod = new HttpPost();
-        if (log.isTraceEnabled()) {
-            log.trace(Thread.currentThread() + " PostMethod " + postMethod + " / " + httpClient);
-        }
-        MessageFormatter messageFormatter = populateCommonProperties(msgContext, url, postMethod,
-                                                                     httpClient, soapActionString);
-        AxisRequestEntityImpl requestEntity =
-                new AxisRequestEntityImpl(messageFormatter, msgContext, format,
-                                          soapActionString, chunked, isAllowedRetry);
-        postMethod.setEntity(requestEntity);
-
-        if (!httpVersion.equals(HTTPConstants.HEADER_PROTOCOL_10) && chunked) {
-            requestEntity.setChunked(chunked);
-        }
-
-        String soapAction = messageFormatter.formatSOAPAction(msgContext, format, soapActionString);
-
-        if (soapAction != null && !msgContext.isDoingREST()) {
-            postMethod.setHeader(HTTPConstants.HEADER_SOAP_ACTION, soapAction);
-        }
-
-        /*
-         * main execution takes place..
-         */
-        HttpResponse response = null;
-        try {
-            response = executeMethod(httpClient, msgContext, url, postMethod);
-            handleResponse(msgContext, response);
-        } catch (IOException e) {
-            log.info("Unable to sendViaPost to url[" + url + "]", e);
-            throw AxisFault.makeFault(e);
-        } finally {
-            cleanup(msgContext, response);
-        }
-    }
-
-    /**
-     * Used to send a request via HTTP Put Method
-     *
-     * @param msgContext       - The MessageContext of the message
-     * @param url              - The target URL
-     * @param soapActionString - The soapAction string of the request
-     * @throws org.apache.axis2.AxisFault - Thrown in case an exception occurs
-     */
-    protected void sendViaPut(MessageContext msgContext, URL url, String soapActionString)
-            throws AxisFault {
-
-        AbstractHttpClient httpClient = getHttpClient(msgContext);
-
-        /*
-         * Same deal - this value never gets used, why is it here? --Glen String
-         * charEncoding = (String)
-         * msgContext.getProperty(Constants.Configuration
-         * .CHARACTER_SET_ENCODING);
-         *
-         * if (charEncoding == null) { charEncoding =
-         * MessageContext.DEFAULT_CHAR_SET_ENCODING; }
-         */
-
-        HttpPut putMethod = new HttpPut();
-        MessageFormatter messageFormatter = populateCommonProperties(msgContext, url, putMethod,
-                                                                     httpClient, soapActionString);
-        AxisRequestEntityImpl requestEntity =
-                new AxisRequestEntityImpl(messageFormatter, msgContext, format,
-                                          soapActionString, chunked, isAllowedRetry);
-        putMethod.setEntity(requestEntity);
-
-        if (!httpVersion.equals(HTTPConstants.HEADER_PROTOCOL_10) && chunked) {
-            requestEntity.setChunked(chunked);
-        }
-
-        String soapAction = messageFormatter.formatSOAPAction(msgContext, format, soapActionString);
-        if (soapAction != null && !msgContext.isDoingREST()) {
-            putMethod.setHeader(HTTPConstants.HEADER_SOAP_ACTION, soapAction);
-        }
-
-        /*
-         * main execution takes place..
-         */
-        HttpResponse response = null;
-        try {
-            response = executeMethod(httpClient, msgContext, url, putMethod);
-            handleResponse(msgContext, response);
-        } catch (IOException e) {
-            log.info("Unable to sendViaPut to url[" + url + "]", e);
-            throw AxisFault.makeFault(e);
-        } finally {
-            cleanup(msgContext, response);
-        }
-    }
-
-    /**
-     * Used to handle the HTTP Response
-     *
-     * @param msgContext - The MessageContext of the message
-     * @param -          The HTTP method used
-     * @throws java.io.IOException - Thrown in case an exception occurs
-     */
-    protected void handleResponse(MessageContext msgContext, Object httpResponse)
-            throws IOException {
-        HttpResponse response;
-        if (httpResponse instanceof HttpResponse) {
-            response = (HttpResponse) httpResponse;
-        } else {
-            log.trace("HttpResponse expected, but found - " + httpResponse);
-            return;
-        }
-        int statusCode = response.getStatusLine().getStatusCode();
-        HTTPStatusCodeFamily family = getHTTPStatusCodeFamily(statusCode);
-        log.trace("Handling response - " + statusCode);
-        if (statusCode == HttpStatus.SC_ACCEPTED) {
-            msgContext.setProperty(HTTPConstants.CLEANUP_RESPONSE, Boolean.TRUE);
-            /*
-            * When an HTTP 202 Accepted code has been received, this will be
-            * the case of an execution of an in-only operation. In such a
-            * scenario, the HTTP response headers should be returned, i.e.
-            * session cookies.
-            */
-            obtainHTTPHeaderInformation(response, msgContext);
-
-        } else if (HTTPStatusCodeFamily.SUCCESSFUL.equals(family)) {
-            // We don't clean the response here because the response will be used afterwards
-            msgContext.setProperty(HTTPConstants.CLEANUP_RESPONSE, Boolean.FALSE);
-            processResponse(response, msgContext);
-
-        } else if (statusCode == HttpStatus.SC_INTERNAL_SERVER_ERROR
-                   || statusCode == HttpStatus.SC_BAD_REQUEST) {
-            msgContext.setProperty(HTTPConstants.CLEANUP_RESPONSE, Boolean.TRUE);
-            Header contentTypeHeader = response.getFirstHeader(HTTPConstants.HEADER_CONTENT_TYPE);
-            String value = null;
-            if (contentTypeHeader != null) {
-                value = contentTypeHeader.getValue();
-            }
-            OperationContext opContext = msgContext.getOperationContext();
-            if (opContext != null) {
-                MessageContext inMessageContext = opContext
-                        .getMessageContext(WSDLConstants.MESSAGE_LABEL_IN_VALUE);
-                if (inMessageContext != null) {
-                    inMessageContext.setProcessingFault(true);
-                }
-            }
-            if (value != null) {
-                msgContext.setProperty(HTTPConstants.CLEANUP_RESPONSE, Boolean.FALSE);
-                processResponse(response, msgContext);
-            }
-
-            if (org.apache.axis2.util.Utils.isClientThreadNonBlockingPropertySet(msgContext)) {
-                throw new AxisFault(Messages.
-                        getMessage("transportError",
-                                   String.valueOf(statusCode),
-                                   response.getStatusLine().toString()));
-            }
-        } else {
-            msgContext.setProperty(HTTPConstants.CLEANUP_RESPONSE, Boolean.TRUE);
-            throw new AxisFault(Messages.getMessage("transportError", String.valueOf(statusCode),
-                                                    response.getStatusLine().toString()));
-        }
-    }
-
-    /**
-     * Collect the HTTP header information and set them in the message context
-     *
-     * @param httpResponse which holds the header information
-     * @param msgContext the MessageContext in which to place the information... OR
-     *                   NOT!
-     * @throws AxisFault if problems occur
-     */
-    protected void obtainHTTPHeaderInformation(Object httpResponse, MessageContext msgContext)
-            throws AxisFault {
-        HttpResponse response;
-        if (httpResponse instanceof HttpResponse) {
-            response = (HttpResponse) httpResponse;
-        } else {
-            return;
-        }
-        // Set RESPONSE properties onto the REQUEST message context. They will
-        // need to be copied off the request context onto
-        // the response context elsewhere, for example in the
-        // OutInOperationClient.
-        Map transportHeaders = new HTTPTransportHeaders(response.getAllHeaders());
-        msgContext.setProperty(MessageContext.TRANSPORT_HEADERS, transportHeaders);
-        msgContext.setProperty(HTTPConstants.MC_HTTP_STATUS_CODE,
-                               new Integer(response.getStatusLine().getStatusCode()));
-        Header header = response.getFirstHeader(HTTPConstants.HEADER_CONTENT_TYPE);
-
-        if (header != null) {
-            HeaderElement[] headers = header.getElements();
-            MessageContext inMessageContext = msgContext.getOperationContext().getMessageContext(
-                    WSDLConstants.MESSAGE_LABEL_IN_VALUE);
-
-            Object contentType = header.getValue();
-            Object charSetEnc = null;
-
-            for (int i = 0; i < headers.length; i++) {
-                NameValuePair charsetEnc = headers[i]
-                        .getParameterByName(HTTPConstants.CHAR_SET_ENCODING);
-                if (charsetEnc != null) {
-                    charSetEnc = charsetEnc.getValue();
-                }
-            }
-
-            if (inMessageContext != null) {
-                inMessageContext.setProperty(Constants.Configuration.CONTENT_TYPE, contentType);
-                inMessageContext.setProperty(Constants.Configuration.CHARACTER_SET_ENCODING,
-                                             charSetEnc);
-            } else {
-
-                // Transport details will be stored in a HashMap so that anybody
-                // interested can
-                // retrieve them
-                HashMap transportInfoMap = new HashMap();
-                transportInfoMap.put(Constants.Configuration.CONTENT_TYPE, contentType);
-                transportInfoMap.put(Constants.Configuration.CHARACTER_SET_ENCODING, charSetEnc);
-
-                // the HashMap is stored in the outgoing message.
-                msgContext
-                        .setProperty(Constants.Configuration.TRANSPORT_INFO_MAP, transportInfoMap);
-            }
-        }
-
-        String sessionCookie = null;
-        // Process old style headers first
-        Header[] cookieHeaders = response.getHeaders(HTTPConstants.HEADER_SET_COOKIE);
-        String customCoookiId = (String) msgContext.getProperty(Constants.CUSTOM_COOKIE_ID);
-
-        // The following only check for JSESSIONID / axis_session / custom-cookie-id from the Set-Cookie header.
-        // But it will ignore if there are other Set-Cookie values, which may cause issues at client level,
-        // when invoking via a load-balancer, which expect some specific Cookie value.
-        // So the correct fix is to add whatever the value(s) in the Set-Cookie header as session cookie.
-
-//        for (int i = 0; i < cookieHeaders.length; i++) {
-//            HeaderElement[] elements = cookieHeaders[i].getElements();
-//            for (int e = 0; e < elements.length; e++) {
-//                HeaderElement element = elements[e];
-//                if (Constants.SESSION_COOKIE.equalsIgnoreCase(element.getName())
-//                    || Constants.SESSION_COOKIE_JSESSIONID.equalsIgnoreCase(element.getName())) {
-//                    sessionCookie = processCookieHeader(element);
-//                }
-//                if (customCoookiId != null && customCoookiId.equalsIgnoreCase(element.getName())) {
-//                    sessionCookie = processCookieHeader(element);
-//                }
-//            }
-//        }
-
-        sessionCookie = processSetCookieHeaders(cookieHeaders);
-
-        // Overwrite old style cookies with new style ones if present
-        cookieHeaders = response.getHeaders(HTTPConstants.HEADER_SET_COOKIE2);
-        for (int i = 0; i < cookieHeaders.length; i++) {
-            HeaderElement[] elements = cookieHeaders[i].getElements();
-            for (int e = 0; e < elements.length; e++) {
-                HeaderElement element = elements[e];
-                if (Constants.SESSION_COOKIE.equalsIgnoreCase(element.getName())
-                    || Constants.SESSION_COOKIE_JSESSIONID.equalsIgnoreCase(element.getName())) {
-                    sessionCookie = processCookieHeader(element);
-                }
-                if (customCoookiId != null && customCoookiId.equalsIgnoreCase(element.getName())) {
-                    sessionCookie = processCookieHeader(element);
-                }
-            }
-        }
-
-        if (sessionCookie != null  && !sessionCookie.equals("")) {
-            msgContext.getServiceContext().setProperty(HTTPConstants.COOKIE_STRING, sessionCookie);
-        }
-    }
-
-    private String processCookieHeader(HeaderElement element) {
-        String cookie = element.getName() + "=" + element.getValue();
-        NameValuePair[] parameters = element.getParameters();
-        for (int j = 0; parameters != null && j < parameters.length; j++) {
-            NameValuePair parameter = parameters[j];
-            cookie = cookie + "; " + parameter.getName() + "=" + parameter.getValue();
-        }
-        return cookie;
-    }
-
-    private String processSetCookieHeaders(Header[] headers) {
-        String cookie = "";
-        for (Header header : headers) {
-            if (!cookie.equals("")) {
-                cookie = cookie + ";";
-            }
-            HeaderElement[] elements = header.getElements();
-            for (HeaderElement element : elements) {
-                cookie = cookie + element.getName() + "=" + element.getValue();
-                NameValuePair[] parameters = element.getParameters();
-                for (NameValuePair parameter : parameters) {
-                    cookie = cookie + "; " + parameter.getName() + "=" + parameter.getValue();
-                }
-            }
-        }
-        return cookie;
-    }
-
-    protected void processResponse(HttpResponse response, MessageContext msgContext)
-            throws IOException {
-        obtainHTTPHeaderInformation(response, msgContext);
-
-        HttpEntity httpEntity = response.getEntity();
-        InputStream in = httpEntity.getContent();
-        if (in == null) {
-            throw new AxisFault(Messages.getMessage("canNotBeNull", "InputStream"));
-        }
-        Header contentEncoding = httpEntity.getContentEncoding();
-        if (contentEncoding != null) {
-            if (contentEncoding.getValue().equalsIgnoreCase(HTTPConstants.COMPRESSION_GZIP)) {
-                in = new GZIPInputStream(in);
-                // If the content-encoding is identity we can basically ignore
-                // it.
-            } else if (!"identity".equalsIgnoreCase(contentEncoding.getValue())) {
-                throw new AxisFault("HTTP :" + "unsupported content-encoding of '"
-                                    + contentEncoding.getValue() + "' found");
-            }
-        }
-
-        OperationContext opContext = msgContext.getOperationContext();
-        if (opContext != null) {
-            opContext.setProperty(MessageContext.TRANSPORT_IN, in);
-        }
-    }
-
-    /**
-     * getting host configuration to support standard http/s, proxy and NTLM
-     * support
-     *
-     * @param client    active HttpClient
-     * @param msgCtx    active MessageContext
-     * @param targetURL the target URL
-     * @return a HostConfiguration set up with proxy information
-     * @throws org.apache.axis2.AxisFault if problems occur
-     */
-    protected HttpHost getHostConfiguration(AbstractHttpClient client, MessageContext msgCtx,
-                                            URL targetURL) throws AxisFault {
-
-        boolean isAuthenticationEnabled = isAuthenticationEnabled(msgCtx);
-        int port = targetURL.getPort();
-
-        String protocol = targetURL.getProtocol();
-        if (port == -1) {
-            if (HTTPTransportConstants.PROTOCOL_HTTP.equals(protocol)) {
-                port = 80;
-            } else if (HTTPTransportConstants.PROTOCOL_HTTPS.equals(protocol)) {
-                port = 443;
-            }
-        }
-        // to see the host is a proxy and in the proxy list - available in
-        // axis2.xml
-        HttpHost hostConfig = new HttpHost(targetURL.getHost(), port, targetURL.getProtocol());
-
-        // TODO : one might need to set his own socket factory. We have to allow that case as well.
-
-        if (isAuthenticationEnabled) {
-            // Basic, Digest, NTLM and custom authentications.
-            this.setAuthenticationInfo(client, msgCtx);
-        }
-        // proxy configuration
-
-        if (HTTPProxyConfigurator.isProxyEnabled(msgCtx, targetURL)) {
-            if (log.isDebugEnabled()) {
-                log.debug("Configuring HTTP proxy.");
-            }
-            HTTPProxyConfigurator.configure(msgCtx, client);
-        }
-
-        return hostConfig;
-    }
-
-    protected boolean isAuthenticationEnabled(MessageContext msgCtx) {
-        return (msgCtx.getProperty(HTTPConstants.AUTHENTICATE) != null);
-    }
-
-    /*
-     * This will handle server Authentication, It could be either NTLM, Digest
-     * or Basic Authentication. Apart from that user can change the priory or
-     * add a custom authentication scheme.
-     */
-    protected void setAuthenticationInfo(AbstractHttpClient agent, MessageContext msgCtx)
-            throws AxisFault {
-        HTTPAuthenticator authenticator;
-        Object obj = msgCtx.getProperty(HTTPConstants.AUTHENTICATE);
-        if (obj != null) {
-            if (obj instanceof HTTPAuthenticator) {
-                authenticator = (HTTPAuthenticator) obj;
-
-                String username = authenticator.getUsername();
-                String password = authenticator.getPassword();
-                String host = authenticator.getHost();
-                String domain = authenticator.getDomain();
-
-                int port = authenticator.getPort();
-                String realm = authenticator.getRealm();
-
-                /* If retrying is available set it first */
-                isAllowedRetry = authenticator.isAllowedRetry();
-
-                Credentials creds;
-
-                // TODO : Set preemptive authentication, but its not recommended in HC 4
-
-                if (host != null) {
-                    if (domain != null) {
-                        /* Credentials for NTLM Authentication */
-                        agent.getAuthSchemes().register("ntlm",new NTLMSchemeFactory());
-                        creds = new NTCredentials(username, password, host, domain);
-                    } else {
-                        /* Credentials for Digest and Basic Authentication */
-                        creds = new UsernamePasswordCredentials(username, password);
-                    }
-                    agent.getCredentialsProvider().
-                            setCredentials(new AuthScope(host, port, realm), creds);
-                } else {
-                    if (domain != null) {
-                        /*
-                         * Credentials for NTLM Authentication when host is
-                         * ANY_HOST
-                         */
-                        agent.getAuthSchemes().register("ntlm",new NTLMSchemeFactory());
-                        creds = new NTCredentials(username, password, AuthScope.ANY_HOST, domain);
-                        agent.getCredentialsProvider().
-                                setCredentials(new AuthScope(AuthScope.ANY_HOST, port, realm),
-                                               creds);
-                    } else {
-                        /* Credentials only for Digest and Basic Authentication */
-                        creds = new UsernamePasswordCredentials(username, password);
-                        agent.getCredentialsProvider().
-                                setCredentials(new AuthScope(AuthScope.ANY), creds);
-                    }
-                }
-                /* Customizing the priority Order */
-                List schemes = authenticator.getAuthSchemes();
-                if (schemes != null && schemes.size() > 0) {
-                    List authPrefs = new ArrayList(3);
-                    for (int i = 0; i < schemes.size(); i++) {
-                        if (schemes.get(i) instanceof AuthPolicy) {
-                            authPrefs.add(schemes.get(i));
-                            continue;
-                        }
-                        String scheme = (String) schemes.get(i);
-                        authPrefs.add(authenticator.getAuthPolicyPref(scheme));
-
-                    }
-                    agent.getParams().setParameter(AuthPNames.TARGET_AUTH_PREF, authPrefs);
-                }
-
-            } else {
-                throw new AxisFault("HttpTransportProperties.Authenticator class cast exception");
-            }
-        }
-
-    }
-
-    /**
-     * Method used to copy all the common properties
-     *
-     * @param msgContext       - The messageContext of the request message
-     * @param url              - The target URL
-     * @param httpMethod       - The http method used to send the request
-     * @param httpClient       - The httpclient used to send the request
-     * @param soapActionString - The soap action atring of the request message
-     * @return MessageFormatter - The messageFormatter for the relavent request
-     *         message
-     * @throws org.apache.axis2.AxisFault - Thrown in case an exception occurs
-     */
-    protected MessageFormatter populateCommonProperties(MessageContext msgContext, URL url,
-                                                        HttpRequestBase httpMethod,
-                                                        AbstractHttpClient httpClient,
-                                                        String soapActionString)
-            throws AxisFault {
-
-        if (isAuthenticationEnabled(msgContext)) {
-            httpMethod.getParams().setBooleanParameter(ClientPNames.HANDLE_AUTHENTICATION, true);
-        }
-
-        MessageFormatter messageFormatter = MessageProcessorSelector.getMessageFormatter(msgContext);
-
-        url = messageFormatter.getTargetAddress(msgContext, format, url);
-
-        try {
-            httpMethod.setURI(url.toURI());
-        } catch (URISyntaxException e) {
-            log.error("Error in URI : " + url, e);
-        }
-
-        httpMethod.setHeader(HTTPConstants.HEADER_CONTENT_TYPE,
-                             messageFormatter.getContentType(msgContext, format, soapActionString));
-
-        httpMethod.setHeader(HTTPConstants.HEADER_HOST, url.getHost());
-
-        if (msgContext.getOptions() != null && msgContext.getOptions().isManageSession()) {
-            // setting the cookie in the out path
-            Object cookieString = msgContext.getProperty(HTTPConstants.COOKIE_STRING);
-
-            if (cookieString != null) {
-                StringBuffer buffer = new StringBuffer();
-                buffer.append(cookieString);
-                httpMethod.setHeader(HTTPConstants.HEADER_COOKIE, buffer.toString());
-            }
-        }
-
-        if (httpVersion.equals(HTTPConstants.HEADER_PROTOCOL_10)) {
-            httpClient.getParams().setParameter(CoreProtocolPNames.PROTOCOL_VERSION,
-                                                HttpVersion.HTTP_1_0);
-        }
-        return messageFormatter;
-    }
-
-    /**
-     * This is used to get the dynamically set time out values from the message
-     * context. If the values are not available or invalid then the default
-     * values or the values set by the configuration will be used
-     *
-     * @param msgContext the active MessageContext
-     * @param httpClient
-     */
-    protected void initializeTimeouts(MessageContext msgContext, AbstractHttpClient httpClient) {
-        // If the SO_TIMEOUT of CONNECTION_TIMEOUT is set by dynamically the
-        // override the static config
-        Integer tempSoTimeoutProperty = (Integer) msgContext.getProperty(HTTPConstants.SO_TIMEOUT);
-        Integer tempConnTimeoutProperty = (Integer) msgContext
-                .getProperty(HTTPConstants.CONNECTION_TIMEOUT);
-        long timeout = msgContext.getOptions().getTimeOutInMilliSeconds();
-
-        if (tempConnTimeoutProperty != null) {
-            int connectionTimeout = tempConnTimeoutProperty.intValue();
-            // timeout for initial connection
-            httpClient.getParams().setParameter(CoreConnectionPNames.CONNECTION_TIMEOUT,
-                                                connectionTimeout);
-        } else {
-            // set timeout in client
-            if (timeout > 0) {
-                httpClient.getParams().setParameter(CoreConnectionPNames.CONNECTION_TIMEOUT,
-                                                    (int) timeout);
-            }
-        }
-
-        if (tempSoTimeoutProperty != null) {
-            int soTimeout = tempSoTimeoutProperty.intValue();
-            // SO_TIMEOUT -- timeout for blocking reads
-            httpClient.getParams().setParameter(CoreConnectionPNames.SO_TIMEOUT, soTimeout);
-        } else {
-            // set timeout in client
-            if (timeout > 0) {
-                httpClient.getParams().setParameter(CoreConnectionPNames.SO_TIMEOUT, (int) timeout);
-            }
-        }
-    }
-
-    /**
-     * This is used to get the dynamically set time out values from the message
-     * context. If the values are not available or invalid then the default
-     * values or the values set by the configuration will be used
-     *
-     * @param msgContext the active MessageContext
-     * @param httpMethod method
-     */
-    protected void setTimeouts(MessageContext msgContext, HttpRequestBase httpMethod) {
-        // If the SO_TIMEOUT of CONNECTION_TIMEOUT is set by dynamically the
-        // override the static config
-        Integer tempSoTimeoutProperty = (Integer) msgContext.getProperty(HTTPConstants.SO_TIMEOUT);
-        Integer tempConnTimeoutProperty = (Integer) msgContext
-                .getProperty(HTTPConstants.CONNECTION_TIMEOUT);
-        long timeout = msgContext.getOptions().getTimeOutInMilliSeconds();
-
-        if (tempConnTimeoutProperty != null) {
-            // timeout for initial connection
-            httpMethod.getParams().setParameter(CoreConnectionPNames.CONNECTION_TIMEOUT,
-                                                tempConnTimeoutProperty);
-        }
-
-        if (tempSoTimeoutProperty != null) {
-            // SO_TIMEOUT -- timeout for blocking reads
-            httpMethod.getParams().setParameter(CoreConnectionPNames.SO_TIMEOUT,
-                                                tempSoTimeoutProperty);
-        } else {
-            // set timeout in client
-            if (timeout > 0) {
-                httpMethod.getParams().setParameter(CoreConnectionPNames.SO_TIMEOUT, (int) timeout);
-            }
-        }
-    }
-
-    protected AbstractHttpClient getHttpClient(MessageContext msgContext) {
+    private HttpClient getHttpClient(MessageContext msgContext) {
         ConfigurationContext configContext = msgContext.getConfigurationContext();
 
-        AbstractHttpClient httpClient = (AbstractHttpClient) msgContext
+        HttpClient httpClient = (HttpClient) msgContext
                 .getProperty(HTTPConstants.CACHED_HTTP_CLIENT);
 
         if (httpClient == null) {
-            httpClient = (AbstractHttpClient) configContext.
+            httpClient = (HttpClient) configContext.
                     getProperty(HTTPConstants.CACHED_HTTP_CLIENT);
         }
 
@@ -807,11 +69,11 @@
         }
 
         synchronized (this) {
-            httpClient = (AbstractHttpClient) msgContext.
+            httpClient = (HttpClient) msgContext.
                     getProperty(HTTPConstants.CACHED_HTTP_CLIENT);
 
             if (httpClient == null) {
-                httpClient = (AbstractHttpClient) configContext
+                httpClient = (HttpClient) configContext
                         .getProperty(HTTPConstants.CACHED_HTTP_CLIENT);
             }
 
@@ -819,28 +81,31 @@
                 return httpClient;
             }
 
-            ClientConnectionManager connManager = (ClientConnectionManager) msgContext
+            HttpClientConnectionManager connManager = (HttpClientConnectionManager) msgContext
                     .getProperty(HTTPConstants.MULTITHREAD_HTTP_CONNECTION_MANAGER);
             if (connManager == null) {
-                connManager = (ClientConnectionManager) msgContext
+                connManager = (HttpClientConnectionManager) msgContext
                         .getProperty(HTTPConstants.MULTITHREAD_HTTP_CONNECTION_MANAGER);
             }
             if (connManager == null) {
                 // reuse HttpConnectionManager
                 synchronized (configContext) {
-                    connManager = (ClientConnectionManager) configContext
+                    connManager = (HttpClientConnectionManager) configContext
                             .getProperty(HTTPConstants.MULTITHREAD_HTTP_CONNECTION_MANAGER);
                     if (connManager == null) {
                         log.trace("Making new ConnectionManager");
-                        SchemeRegistry schemeRegistry = new SchemeRegistry();
-                        schemeRegistry.register(
-                                new Scheme("http", 80, PlainSocketFactory.getSocketFactory()));
-                        schemeRegistry.register(
-                                new Scheme("https", 443, SSLSocketFactory.getSocketFactory()));
+                        SSLContext sslContext = (SSLContext)configContext.getProperty(SSLContext.class.getName());
+                        if (sslContext == null) {
+                            sslContext = SSLContexts.createDefault();
+                        }
+                        Registry<ConnectionSocketFactory> socketFactoryRegistry = RegistryBuilder.<ConnectionSocketFactory>create()
+                                .register("http", PlainConnectionSocketFactory.getSocketFactory())
+                                .register("https", new SSLConnectionSocketFactory(sslContext))
+                                .build();
 
-                        connManager = new PoolingClientConnectionManager(schemeRegistry);
-                        ((PoolingClientConnectionManager)connManager).setMaxTotal(200);
-                        ((PoolingClientConnectionManager)connManager).setDefaultMaxPerRoute(200);
+                        connManager = new PoolingHttpClientConnectionManager(socketFactoryRegistry);
+                        ((PoolingHttpClientConnectionManager)connManager).setMaxTotal(200);
+                        ((PoolingHttpClientConnectionManager)connManager).setDefaultMaxPerRoute(200);
                         configContext.setProperty(
                                 HTTPConstants.MULTITHREAD_HTTP_CONNECTION_MANAGER, connManager);
                     }
@@ -850,176 +115,11 @@
              * Create a new instance of HttpClient since the way it is used here
              * it's not fully thread-safe.
              */
-            HttpParams clientParams = new BasicHttpParams();
-            clientParams.setParameter(CoreProtocolPNames.HTTP_ELEMENT_CHARSET, "UTF-8");
-            httpClient = new DefaultHttpClient(connManager, clientParams);
-
-            //We don't need to set timeout for connection manager, since we are doing it below
-            // and its enough
-
-            // Get the timeout values set in the runtime
-            initializeTimeouts(msgContext, httpClient);
-
-            return httpClient;
+            return HttpClientBuilder.create()
+                    .setConnectionManager(connManager)
+                    .setConnectionManagerShared(true)
+                    .build();
         }
     }
 
-    protected HttpResponse executeMethod(AbstractHttpClient httpClient, MessageContext msgContext,
-                                         URL url,
-                                         HttpRequestBase method) throws IOException {
-        HttpHost httpHost = this.getHostConfiguration(httpClient, msgContext, url);
-
-        // set the custom headers, if available
-        addCustomHeaders(method, msgContext);
-
-        // add compression headers if needed
-        if (msgContext.isPropertyTrue(HTTPConstants.MC_ACCEPT_GZIP)) {
-            method.addHeader(HTTPConstants.HEADER_ACCEPT_ENCODING,
-                             HTTPConstants.COMPRESSION_GZIP);
-        }
-
-        if (msgContext.isPropertyTrue(HTTPConstants.MC_GZIP_REQUEST)) {
-            method.addHeader(HTTPConstants.HEADER_CONTENT_ENCODING,
-                             HTTPConstants.COMPRESSION_GZIP);
-        }
-
-        if (msgContext.getProperty(HTTPConstants.HTTP_METHOD_PARAMS) != null) {
-            HttpParams params = (HttpParams) msgContext
-                    .getProperty(HTTPConstants.HTTP_METHOD_PARAMS);
-            method.setParams(params);
-        }
-
-        String cookiePolicy = (String) msgContext.getProperty(HTTPConstants.COOKIE_POLICY);
-        if (cookiePolicy != null) {
-            method.getParams().setParameter(ClientPNames.COOKIE_POLICY, cookiePolicy);
-        }
-
-        setTimeouts(msgContext, method);
-        HttpContext localContext = new BasicHttpContext();
-        // Why do we have add context here
-        return httpClient.execute(httpHost, method, localContext);
-    }
-
-    public void addCustomHeaders(HttpRequestBase method, MessageContext msgContext) {
-
-        boolean isCustomUserAgentSet = false;
-        // set the custom headers, if available
-        Object httpHeadersObj = msgContext.getProperty(HTTPConstants.HTTP_HEADERS);
-        if (httpHeadersObj != null) {
-            if (httpHeadersObj instanceof List) {
-                List httpHeaders = (List) httpHeadersObj;
-                for (int i = 0; i < httpHeaders.size(); i++) {
-                    NamedValue nv = (NamedValue) httpHeaders.get(i);
-                    if (nv != null) {
-                        Header header = new BasicHeader(nv.getName(), nv.getValue());
-                        if (HTTPConstants.HEADER_USER_AGENT.equals(header.getName())) {
-                            isCustomUserAgentSet = true;
-                        }
-                        method.addHeader(header);
-                    }
-                }
-
-            }
-            if (httpHeadersObj instanceof Map) {
-                Map httpHeaders = (Map) httpHeadersObj;
-                for (Iterator iterator = httpHeaders.entrySet().iterator(); iterator.hasNext(); ) {
-                    Map.Entry entry = (Map.Entry) iterator.next();
-                    String key = (String) entry.getKey();
-                    String value = (String) entry.getValue();
-                    if (HTTPConstants.HEADER_USER_AGENT.equals(key)) {
-                        isCustomUserAgentSet = true;
-                    }
-                    method.addHeader(key, value);
-                }
-            }
-        }
-
-        // we have to consider the TRANSPORT_HEADERS map as well
-        Map transportHeaders = (Map) msgContext.getProperty(MessageContext.TRANSPORT_HEADERS);
-        if (transportHeaders != null) {
-            removeUnwantedHeaders(msgContext);
-
-            Set headerEntries = transportHeaders.entrySet();
-
-            for (Object headerEntry : headerEntries) {
-                if (headerEntry instanceof Map.Entry) {
-                    Header[] headers = method.getAllHeaders();
-
-                    boolean headerAdded = false;
-                    for (Header header : headers) {
-                        if (header.getName() != null
-                            && header.getName().equals(((Map.Entry) headerEntry).getKey())) {
-                            headerAdded = true;
-                            break;
-                        }
-                    }
-
-                    if (!headerAdded) {
-                        method.addHeader(((Map.Entry) headerEntry).getKey().toString(),
-                                         ((Map.Entry) headerEntry).getValue().toString());
-                    }
-                }
-            }
-        }
-
-        if (!isCustomUserAgentSet) {
-            String userAgentString = getUserAgent(msgContext);
-            method.setHeader(HTTPConstants.HEADER_USER_AGENT, userAgentString);
-        }
-
-    }
-
-    /**
-     * Remove unwanted headers from the transport headers map of outgoing
-     * request. These are headers which should be dictated by the transport and
-     * not the user. We remove these as these may get copied from the request
-     * messages
-     *
-     * @param msgContext the Axis2 Message context from which these headers should be
-     *                   removed
-     */
-    private void removeUnwantedHeaders(MessageContext msgContext) {
-        Map headers = (Map) msgContext.getProperty(MessageContext.TRANSPORT_HEADERS);
-
-        if (headers == null || headers.isEmpty()) {
-            return;
-        }
-
-        Iterator iter = headers.keySet().iterator();
-        while (iter.hasNext()) {
-            String headerName = (String) iter.next();
-            if (HTTP.CONN_DIRECTIVE.equalsIgnoreCase(headerName)
-                || HTTP.TRANSFER_ENCODING.equalsIgnoreCase(headerName)
-                || HTTP.DATE_HEADER.equalsIgnoreCase(headerName)
-                || HTTP.CONTENT_TYPE.equalsIgnoreCase(headerName)
-                || HTTP.CONTENT_LEN.equalsIgnoreCase(headerName)) {
-                iter.remove();
-            }
-        }
-    }
-
-    private String getUserAgent(MessageContext messageContext) {
-        String userAgentString = "Axis2";
-        boolean locked = false;
-        if (messageContext.getParameter(HTTPConstants.USER_AGENT) != null) {
-            OMElement userAgentElement = messageContext.getParameter(HTTPConstants.USER_AGENT)
-                    .getParameterElement();
-            userAgentString = userAgentElement.getText().trim();
-            OMAttribute lockedAttribute = userAgentElement.getAttribute(new QName("locked"));
-            if (lockedAttribute != null) {
-                if (lockedAttribute.getAttributeValue().equalsIgnoreCase("true")) {
-                    locked = true;
-                }
-            }
-        }
-        // Runtime overing part
-        if (!locked) {
-            if (messageContext.getProperty(HTTPConstants.USER_AGENT) != null) {
-                userAgentString = (String) messageContext.getProperty(HTTPConstants.USER_AGENT);
-            }
-        }
-
-        return userAgentString;
-    }
-
 }
diff --git a/modules/transport/http/src/org/apache/axis2/transport/http/impl/httpclient4/HTTPTransportHeaders.java b/modules/transport/http/src/org/apache/axis2/transport/http/impl/httpclient4/HTTPTransportHeaders.java
deleted file mode 100644
index ed6d058..0000000
--- a/modules/transport/http/src/org/apache/axis2/transport/http/impl/httpclient4/HTTPTransportHeaders.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.axis2.transport.http.impl.httpclient4;
-
-import org.apache.axis2.transport.http.CommonsTransportHeaders;
-import org.apache.http.Header;
-
-import java.util.HashMap;
-
-
-public class HTTPTransportHeaders extends CommonsTransportHeaders {
-
-    private Header[] headers;
-
-    public HTTPTransportHeaders(Header[] headers) {
-        this.headers = headers;
-
-    }
-
-    protected void init() {
-        setHeaderMap(new HashMap());
-        for (int i = 0; i < headers.length; i++) {
-            getHeaderMap().put(headers[i].getName(), headers[i].getValue());
-        }
-    }
-
-}
diff --git a/modules/transport/http/src/org/apache/axis2/transport/http/impl/httpclient4/RESTRequestEntity2Impl.java b/modules/transport/http/src/org/apache/axis2/transport/http/impl/httpclient4/RESTRequestEntity2Impl.java
deleted file mode 100644
index 634fa8a..0000000
--- a/modules/transport/http/src/org/apache/axis2/transport/http/impl/httpclient4/RESTRequestEntity2Impl.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.axis2.transport.http.impl.httpclient4;
-
-import org.apache.axis2.transport.http.HTTPConstants;
-import org.apache.axis2.transport.http.RESTRequestEntity2;
-import org.apache.http.Header;
-import org.apache.http.HttpEntity;
-import org.apache.http.message.BasicHeader;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-
-public class RESTRequestEntity2Impl extends RESTRequestEntity2 implements HttpEntity{
-
-    public RESTRequestEntity2Impl(String postRequestBody, String contentType) {
-        super(postRequestBody, contentType);
-    }
-
-    public boolean isChunked() {
-        return false;
-    }
-
-    public Header getContentType() {
-        return new BasicHeader(HTTPConstants.HEADER_CONTENT_TYPE, getContentTypeAsString());
-    }
-
-    public Header getContentEncoding() {
-        return null;
-    }
-
-    public InputStream getContent() throws IOException{
-        return getRequestEntityContent();
-    }
-
-    public void writeTo(OutputStream outputStream) throws IOException {
-        writeRequest(outputStream);
-    }
-
-    public boolean isStreaming() {
-        return false;
-    }
-
-    public void consumeContent() {
-        //TODO : Handle this correctly
-    }
-}
diff --git a/modules/transport/http/src/org/apache/axis2/transport/http/impl/httpclient4/RESTRequestEntityImpl.java b/modules/transport/http/src/org/apache/axis2/transport/http/impl/httpclient4/RESTRequestEntityImpl.java
deleted file mode 100644
index 1107ad8..0000000
--- a/modules/transport/http/src/org/apache/axis2/transport/http/impl/httpclient4/RESTRequestEntityImpl.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.axis2.transport.http.impl.httpclient4;
-
-import org.apache.axiom.om.OMElement;
-import org.apache.axiom.om.OMOutputFormat;
-import org.apache.axis2.AxisFault;
-import org.apache.axis2.context.MessageContext;
-import org.apache.axis2.transport.http.HTTPConstants;
-import org.apache.axis2.transport.http.RESTRequestEntity;
-import org.apache.http.Header;
-import org.apache.http.HttpEntity;
-import org.apache.http.message.BasicHeader;
-
-import java.io.ByteArrayInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-
-public class RESTRequestEntityImpl extends RESTRequestEntity implements HttpEntity {
-
-    public RESTRequestEntityImpl(OMElement element, boolean chunked, MessageContext msgCtxt,
-            String charSetEncoding, String soapActionString, OMOutputFormat format) {
-        super(element, chunked, msgCtxt, charSetEncoding, soapActionString, format);
-    }
-
-    public Header getContentType() {
-        return new BasicHeader(HTTPConstants.HEADER_CONTENT_TYPE, getContentTypeAsString());
-    }
-
-    public Header getContentEncoding() {
-        return null;
-    }
-
-    public InputStream getContent() throws AxisFault {
-        return new ByteArrayInputStream(writeBytes());
-    }
-
-    public void writeTo(OutputStream outputStream) throws IOException {
-        writeRequest(outputStream);
-    }
-
-    public boolean isStreaming() {
-        return false;
-    }
-
-    public void consumeContent() {
-        //TODO : Handle this correctly
-    }
-
-}
diff --git a/modules/transport/http/src/org/apache/axis2/transport/http/impl/httpclient4/RequestImpl.java b/modules/transport/http/src/org/apache/axis2/transport/http/impl/httpclient4/RequestImpl.java
new file mode 100644
index 0000000..28758cc
--- /dev/null
+++ b/modules/transport/http/src/org/apache/axis2/transport/http/impl/httpclient4/RequestImpl.java
@@ -0,0 +1,310 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.axis2.transport.http.impl.httpclient4;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.URISyntaxException;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.axiom.mime.Header;
+import org.apache.axis2.AxisFault;
+import org.apache.axis2.context.MessageContext;
+import org.apache.axis2.transport.http.AxisRequestEntity;
+import org.apache.axis2.transport.http.HTTPAuthenticator;
+import org.apache.axis2.transport.http.HTTPConstants;
+import org.apache.axis2.transport.http.HTTPTransportConstants;
+import org.apache.axis2.transport.http.Request;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.http.HeaderElement;
+import org.apache.http.HttpEntity;
+import org.apache.http.HttpHost;
+import org.apache.http.HttpResponse;
+import org.apache.http.HttpVersion;
+import org.apache.http.auth.AuthScope;
+import org.apache.http.auth.Credentials;
+import org.apache.http.auth.NTCredentials;
+import org.apache.http.auth.UsernamePasswordCredentials;
+import org.apache.http.client.CredentialsProvider;
+import org.apache.http.client.HttpClient;
+import org.apache.http.client.config.RequestConfig;
+import org.apache.http.client.methods.HttpEntityEnclosingRequestBase;
+import org.apache.http.client.methods.HttpRequestBase;
+import org.apache.http.client.params.AuthPolicy;
+import org.apache.http.client.protocol.HttpClientContext;
+import org.apache.http.impl.client.BasicCredentialsProvider;
+import org.apache.http.util.EntityUtils;
+
+final class RequestImpl implements Request {
+    private static final String[] COOKIE_HEADER_NAMES = { HTTPConstants.HEADER_SET_COOKIE, HTTPConstants.HEADER_SET_COOKIE2 };
+    
+    private static final Log log = LogFactory.getLog(RequestImpl.class);
+    
+    private final HttpClient httpClient;
+    private final MessageContext msgContext;
+    private final URL url;
+    private final HttpRequestBase method;
+    private final HttpHost httpHost;
+    private final RequestConfig.Builder requestConfig = RequestConfig.custom();
+    private final HttpClientContext clientContext = HttpClientContext.create();
+    private HttpResponse response;
+
+    RequestImpl(HttpClient httpClient, MessageContext msgContext, final String methodName, URL url,
+            AxisRequestEntity requestEntity) throws AxisFault {
+        this.httpClient = httpClient;
+        this.msgContext = msgContext;
+        this.url = url;
+        if (requestEntity == null) {
+            method = new HttpRequestBase() {
+                @Override
+                public String getMethod() {
+                    return methodName;
+                }
+            };
+        } else {
+            HttpEntityEnclosingRequestBase entityEnclosingRequest = new HttpEntityEnclosingRequestBase() {
+                @Override
+                public String getMethod() {
+                    return methodName;
+                }
+            };
+            entityEnclosingRequest.setEntity(new AxisRequestEntityImpl(requestEntity));
+            method = entityEnclosingRequest;
+        }
+        try {
+            method.setURI(url.toURI());
+        } catch (URISyntaxException ex) {
+            throw AxisFault.makeFault(ex);
+        }
+        int port = url.getPort();
+        String protocol = url.getProtocol();
+        if (port == -1) {
+            if (HTTPTransportConstants.PROTOCOL_HTTP.equals(protocol)) {
+                port = 80;
+            } else if (HTTPTransportConstants.PROTOCOL_HTTPS.equals(protocol)) {
+                port = 443;
+            }
+        }
+        httpHost = new HttpHost(url.getHost(), port, url.getProtocol());
+    }
+
+    @Override
+    public void enableHTTP10() {
+        method.setProtocolVersion(HttpVersion.HTTP_1_0);
+    }
+
+    @Override
+    public void setHeader(String name, String value) {
+        method.setHeader(name, value);
+    }
+
+    @Override
+    public void addHeader(String name, String value) {
+        method.addHeader(name, value);
+    }
+
+    private static Header[] convertHeaders(org.apache.http.Header[] headers) {
+        Header[] result = new Header[headers.length];
+        for (int i=0; i<headers.length; i++) {
+            result[i] = new Header(headers[i].getName(), headers[i].getValue());
+        }
+        return result;
+    }
+
+    @Override
+    public Header[] getRequestHeaders() {
+        return convertHeaders(method.getAllHeaders());
+    }
+
+    @Override
+    public void setConnectionTimeout(int timeout) {
+        requestConfig.setConnectTimeout(timeout);
+    }
+
+    @Override
+    public void setSocketTimeout(int timeout) {
+        requestConfig.setSocketTimeout(timeout);
+    }
+
+    @Override
+    public int getStatusCode() {
+        return response.getStatusLine().getStatusCode();
+    }
+
+    @Override
+    public String getStatusText() {
+        return response.getStatusLine().getReasonPhrase();
+    }
+
+    @Override
+    public String getResponseHeader(String name) {
+        org.apache.http.Header header = response.getFirstHeader(name);
+        return header == null ? null : header.getValue();
+    }
+
+    @Override
+    public Header[] getResponseHeaders() {
+        return convertHeaders(response.getAllHeaders());
+    }
+
+    @Override
+    public Map<String,String> getCookies() {
+        Map<String,String> cookies = null;
+        for (String name : COOKIE_HEADER_NAMES) {
+            for (org.apache.http.Header header : response.getHeaders(name)) {
+                for (HeaderElement element : header.getElements()) {
+                    if (cookies == null) {
+                        cookies = new HashMap<String,String>();
+                    }
+                    cookies.put(element.getName(), element.getValue());
+                }
+            }
+        }
+        return cookies;
+    }
+
+    @Override
+    public InputStream getResponseContent() throws IOException {
+        HttpEntity entity = response.getEntity();
+        return entity == null ? null : entity.getContent();
+    }
+
+    @Override
+    public void execute() throws IOException {
+        populateHostConfiguration();
+
+        // add compression headers if needed
+        if (msgContext.isPropertyTrue(HTTPConstants.MC_ACCEPT_GZIP)) {
+            method.addHeader(HTTPConstants.HEADER_ACCEPT_ENCODING,
+                             HTTPConstants.COMPRESSION_GZIP);
+        }
+
+        String cookiePolicy = (String) msgContext.getProperty(HTTPConstants.COOKIE_POLICY);
+        if (cookiePolicy != null) {
+            requestConfig.setCookieSpec(cookiePolicy);
+        }
+
+        method.setConfig(requestConfig.build());
+
+        response = httpClient.execute(httpHost, method, clientContext);
+    }
+
+    @Override
+    public void releaseConnection() {
+        log.trace("Cleaning response : " + response);
+        HttpEntity entity = response.getEntity();
+        if (entity != null) {
+            try {
+                EntityUtils.consume(entity);
+            } catch (IOException e) {
+                log.error("Error while cleaning response : " + response, e);
+            }
+        }
+    }
+
+    /**
+     * getting host configuration to support standard http/s, proxy and NTLM
+     * support
+     *
+     * @return a HostConfiguration set up with proxy information
+     * @throws org.apache.axis2.AxisFault if problems occur
+     */
+    private void populateHostConfiguration() throws AxisFault {
+        // proxy configuration
+
+        if (HTTPProxyConfigurator.isProxyEnabled(msgContext, url)) {
+            if (log.isDebugEnabled()) {
+                log.debug("Configuring HTTP proxy.");
+            }
+            HTTPProxyConfigurator.configure(msgContext, requestConfig, clientContext);
+        }
+    }
+
+    /*
+     * This will handle server Authentication, It could be either NTLM, Digest
+     * or Basic Authentication. Apart from that user can change the priory or
+     * add a custom authentication scheme.
+     */
+    @Override
+    public void enableAuthentication(HTTPAuthenticator authenticator) {
+        requestConfig.setAuthenticationEnabled(true);
+
+        String username = authenticator.getUsername();
+        String password = authenticator.getPassword();
+        String host = authenticator.getHost();
+        String domain = authenticator.getDomain();
+
+        int port = authenticator.getPort();
+        String realm = authenticator.getRealm();
+
+        Credentials creds;
+
+        // TODO : Set preemptive authentication, but its not recommended in HC 4
+
+        CredentialsProvider credsProvider = clientContext.getCredentialsProvider();
+        if (credsProvider == null) {
+            credsProvider = new BasicCredentialsProvider();
+            clientContext.setCredentialsProvider(credsProvider);
+        }
+        if (host != null) {
+            if (domain != null) {
+                /* Credentials for NTLM Authentication */
+                creds = new NTCredentials(username, password, host, domain);
+            } else {
+                /* Credentials for Digest and Basic Authentication */
+                creds = new UsernamePasswordCredentials(username, password);
+            }
+            credsProvider.setCredentials(new AuthScope(host, port, realm), creds);
+        } else {
+            if (domain != null) {
+                /*
+                 * Credentials for NTLM Authentication when host is
+                 * ANY_HOST
+                 */
+                creds = new NTCredentials(username, password, AuthScope.ANY_HOST, domain);
+                credsProvider.setCredentials(new AuthScope(AuthScope.ANY_HOST, port, realm), creds);
+            } else {
+                /* Credentials only for Digest and Basic Authentication */
+                creds = new UsernamePasswordCredentials(username, password);
+                credsProvider.setCredentials(new AuthScope(AuthScope.ANY), creds);
+            }
+        }
+        
+        /* Customizing the priority Order */
+        List schemes = authenticator.getAuthSchemes();
+        if (schemes != null && schemes.size() > 0) {
+            List authPrefs = new ArrayList(3);
+            for (int i = 0; i < schemes.size(); i++) {
+                if (schemes.get(i) instanceof AuthPolicy) {
+                    authPrefs.add(schemes.get(i));
+                    continue;
+                }
+                String scheme = (String) schemes.get(i);
+                authPrefs.add(authenticator.getAuthPolicyPref(scheme));
+
+            }
+            requestConfig.setTargetPreferredAuthSchemes(authPrefs);
+        }
+    }
+}
diff --git a/modules/transport/http/src/org/apache/axis2/transport/http/server/SimpleHttpServer.java b/modules/transport/http/src/org/apache/axis2/transport/http/server/SimpleHttpServer.java
index 0ad04c3..003c4c0 100644
--- a/modules/transport/http/src/org/apache/axis2/transport/http/server/SimpleHttpServer.java
+++ b/modules/transport/http/src/org/apache/axis2/transport/http/server/SimpleHttpServer.java
@@ -84,7 +84,9 @@
         // Attempt to terminate the active processors nicely
         LOG.info("Shut down HTTP processors");
         this.requestExecutor.shutdownNow();
-        this.requestExecutor.awaitTermination(SHUTDOWN_GRACE_PERIOD, TimeUnit.MILLISECONDS);
+        if (!Boolean.parseBoolean(System.getProperty("org.apache.axis2.transport.http.server.fastShutdown", "false"))) {
+            this.requestExecutor.awaitTermination(SHUTDOWN_GRACE_PERIOD, TimeUnit.MILLISECONDS);
+        }
         if (!this.requestExecutor.isTerminated()) {
             // Terminate the active processors forcibly
             LOG.info("Force shut down HTTP processors");
diff --git a/modules/transport/http/test/org/apache/axis2/transport/http/CommonsHTTPTransportSenderTest.java b/modules/transport/http/test/org/apache/axis2/transport/http/CommonsHTTPTransportSenderTest.java
index e3820bd..e60c6af 100644
--- a/modules/transport/http/test/org/apache/axis2/transport/http/CommonsHTTPTransportSenderTest.java
+++ b/modules/transport/http/test/org/apache/axis2/transport/http/CommonsHTTPTransportSenderTest.java
@@ -18,11 +18,13 @@
  */
 package org.apache.axis2.transport.http;
 
+import static com.google.common.truth.Truth.assertAbout;
+import static org.apache.axiom.truth.xml.XMLTruth.xml;
+
 import java.io.IOException;
 import java.util.ArrayList;
 import java.util.List;
 
-import javax.mail.MessagingException;
 import javax.servlet.http.HttpServletResponse;
 import javax.xml.namespace.QName;
 
@@ -48,8 +50,6 @@
 import org.apache.axis2.transport.http.mock.MockAxisHttpResponse;
 import org.apache.axis2.transport.http.mock.MockHttpServletResponse;
 import org.apache.axis2.transport.http.mock.MockHTTPResponse;
-import org.apache.commons.httpclient.HttpMethod;
-import org.apache.commons.httpclient.methods.GetMethod;
 import org.apache.http.ProtocolVersion;
 import org.apache.http.RequestLine;
 import org.apache.http.message.BasicRequestLine;
@@ -69,8 +69,9 @@
                 .get("Content-Type"));
         assertEquals("Not the expected Header value", "custom-value", httpResponse.getHeaders()
                 .get("Custom-header"));
-        assertEquals("Not the expected body content", envelope.toString().replace("utf", "UTF"),
-                new String(httpResponse.getByteArrayOutputStream().toByteArray()));
+        assertAbout(xml())
+                .that(new String(httpResponse.getByteArrayOutputStream().toByteArray()))
+                .hasSameContentAs(envelope.toString());
     }
     
     public void testInvokeWithAxisHttpResponseImpl() throws Exception {
@@ -84,22 +85,11 @@
                 .get("Content-Type"));
         assertEquals("Not the expected Header value", "custom-value", httpResponse.getHeaders()
                 .get("Custom-header"));
-        assertEquals("Not the expected body content", envelope.toString().replace("utf", "UTF"),
-                new String(httpResponse.getByteArrayOutputStream().toByteArray()));
+        assertAbout(xml())
+                .that(new String(httpResponse.getByteArrayOutputStream().toByteArray()))
+                .hasSameContentAs(envelope.toString());
     }
 
-    public void testCleanup() throws AxisFault {
-        TransportSender sender = getTransportSender();
-        MessageContext msgContext = new MessageContext();
-        HttpMethod httpMethod = new GetMethod();
-        msgContext.setProperty(HTTPConstants.HTTP_METHOD, httpMethod);
-        assertNotNull("HttpMethod can not be null",
-                msgContext.getProperty(HTTPConstants.HTTP_METHOD));
-        sender.cleanup(msgContext);
-        assertNull("HttpMethod should be null", msgContext.getProperty(HTTPConstants.HTTP_METHOD));
-
-    }
-    
     public void testInit() throws AxisFault {
         ConfigurationContext confContext = ConfigurationContextFactory
                 .createEmptyConfigurationContext();
@@ -144,7 +134,7 @@
 
     }
     
-    static SOAPEnvelope getEnvelope() throws IOException, MessagingException {
+    static SOAPEnvelope getEnvelope() throws IOException {
         SOAPFactory soapFac = OMAbstractFactory.getSOAP11Factory();
         OMFactory omFac = OMAbstractFactory.getOMFactory();
         SOAPEnvelope enp = soapFac.createSOAPEnvelope();
diff --git a/modules/transport/http/test/org/apache/axis2/transport/http/HTTPClient4SenderTest.java b/modules/transport/http/test/org/apache/axis2/transport/http/HTTPClient4SenderTest.java
index 8d78f14..9f13f24 100644
--- a/modules/transport/http/test/org/apache/axis2/transport/http/HTTPClient4SenderTest.java
+++ b/modules/transport/http/test/org/apache/axis2/transport/http/HTTPClient4SenderTest.java
@@ -19,156 +19,12 @@
 
 package org.apache.axis2.transport.http;
 
-import org.apache.axis2.Constants;
 import org.apache.axis2.transport.http.impl.httpclient4.HTTPSenderImpl;
 
-import javax.ws.rs.core.HttpHeaders;
-
 public class HTTPClient4SenderTest extends HTTPSenderTest {
 
     @Override
     protected HTTPSender getHTTPSender() {
         return new HTTPSenderImpl();
     }
-
-    @Override
-    public void testSendViaGet() throws Exception {
-        int port = getBasicHttpServer().getPort();
-        sendViaHTTP(Constants.Configuration.HTTP_METHOD_GET, "urn:getService", "http://localhost:"
-                                                                               + port + "/getService", true);
-        assertEquals("Not the expected HTTP Method", Constants.Configuration.HTTP_METHOD_GET,
-                     getHTTPMethod());
-        assertEquals("Not the expected content", "/getService?part=sample%20data",
-                     getStringContent());
-        assertNull("Not the expected HTTP Header value", getHeaders().get("SOAPAction"));
-        assertEquals("Not the expected HTTP Header value",
-                     "application/x-www-form-urlencoded;action=\"urn:getService\";",
-                     getHeaders().get(HttpHeaders.CONTENT_TYPE));
-        assertEquals("Not the expected HTTP Header value", "localhost",
-                     getHeaders().get(HttpHeaders.HOST));
-        assertEquals("Not the expected HTTP Header value", "Axis2",
-                     getHeaders().get(HttpHeaders.USER_AGENT));
-    }
-
-    @Override
-    public void testSendViaPost() throws Exception {
-        // test with REST payload
-        int port = getBasicHttpServer().getPort();
-        sendViaHTTP(Constants.Configuration.HTTP_METHOD_POST, "urn:postService",
-                    "http://localhost:" + port + "/postService", true);
-        assertEquals("Not the expected HTTP Method", Constants.Configuration.HTTP_METHOD_POST,
-                     getHTTPMethod());
-        assertEquals("Not the expected content", getEnvelope().getFirstElement().getFirstElement()
-                .toString(), getStringContent());
-        assertNull("Not the expected HTTP Header value", getHeaders().get("SOAPAction"));
-        assertEquals("Not the expected HTTP Header value", "application/xml",
-                     getHeaders().get(HttpHeaders.CONTENT_TYPE));
-        assertEquals("Not the expected HTTP Header value", "localhost",
-                     getHeaders().get(HttpHeaders.HOST));
-        assertEquals("Not the expected HTTP Header value", "Axis2",
-                     getHeaders().get(HttpHeaders.USER_AGENT));
-
-        // test with SOAP payload.
-        sendViaHTTP(Constants.Configuration.HTTP_METHOD_POST, "urn:postService",
-                    "http://localhost:" + port + "/postService", false);
-        assertEquals("Not the expected HTTP Method", Constants.Configuration.HTTP_METHOD_POST,
-                     getHTTPMethod());
-        assertEquals("Not the expected content", getEnvelope().toString(), getStringContent());
-        assertEquals("Not the expected HTTP Header value", "urn:postService",
-                     getHeaders().get("SOAPAction").replace("\"", ""));
-        assertEquals("Not the expected HTTP Header value", "text/xml",
-                     getHeaders().get(HttpHeaders.CONTENT_TYPE));
-        assertEquals("Not the expected HTTP Header value", "localhost",
-                     getHeaders().get(HttpHeaders.HOST));
-        assertEquals("Not the expected HTTP Header value", "Axis2",
-                     getHeaders().get(HttpHeaders.USER_AGENT));
-    }
-
-    @Override
-    public void testSendViaPut() throws Exception {
-        // test with REST payload
-        int port = getBasicHttpServer().getPort();
-        sendViaHTTP(Constants.Configuration.HTTP_METHOD_PUT, "urn:putService", "http://localhost:"
-                                                                               + port + "/putService", true);
-        assertEquals("Not the expected HTTP Method", Constants.Configuration.HTTP_METHOD_PUT,
-                     getHTTPMethod());
-        assertEquals("Not the expected content", getEnvelope().getFirstElement().getFirstElement()
-                .toString(), getStringContent());
-        assertNull("Not the expected HTTP Header value", getHeaders().get("SOAPAction"));
-        assertEquals("Not the expected HTTP Header value", "application/xml",
-                     getHeaders().get(HttpHeaders.CONTENT_TYPE));
-        assertEquals("Not the expected HTTP Header value", "localhost",
-                     getHeaders().get(HttpHeaders.HOST));
-        assertEquals("Not the expected HTTP Header value", "Axis2",
-                     getHeaders().get(HttpHeaders.USER_AGENT));
-
-        // test with SOAP payload.
-        sendViaHTTP(Constants.Configuration.HTTP_METHOD_PUT, "urn:putService", "http://localhost:"
-                                                                               + port + "/putService", false);
-        assertEquals("Not the expected HTTP Method", Constants.Configuration.HTTP_METHOD_PUT,
-                     getHTTPMethod());
-        assertEquals("Not the expected content", getEnvelope().toString(), getStringContent());
-        assertEquals("Not the expected HTTP Header value", "urn:putService",
-                     getHeaders().get("SOAPAction").replace("\"", ""));
-        assertEquals("Not the expected HTTP Header value", "text/xml",
-                     getHeaders().get(HttpHeaders.CONTENT_TYPE));
-        assertEquals("Not the expected HTTP Header value", "localhost",
-                     getHeaders().get(HttpHeaders.HOST));
-        assertEquals("Not the expected HTTP Header value", "Axis2",
-                     getHeaders().get(HttpHeaders.USER_AGENT));
-    }
-
-    @Override
-    public void testSendViaDelete() throws Exception {
-        // test with REST payload
-        int port = getBasicHttpServer().getPort();
-        sendViaHTTP(Constants.Configuration.HTTP_METHOD_DELETE, "urn:deleteService",
-                    "http://localhost:" + port + "/deleteService", true);
-        assertEquals("Not the expected HTTP Method", Constants.Configuration.HTTP_METHOD_DELETE,
-                     getHTTPMethod());
-        assertEquals("Not the expected content", "/deleteService?part=sample%20data",
-                     getStringContent());
-        assertEquals("Not the expected HTTP Header value",
-                     "application/x-www-form-urlencoded;action=\"urn:deleteService\";", getHeaders()
-                .get(HttpHeaders.CONTENT_TYPE));
-        assertEquals("Not the expected HTTP Header value", "localhost",
-                     getHeaders().get(HttpHeaders.HOST));
-        assertEquals("Not the expected HTTP Header value", "Axis2",
-                     getHeaders().get(HttpHeaders.USER_AGENT));
-    }
-
-    @Override
-    public void testSendViaHead() throws Exception {
-        int port = getBasicHttpServer().getPort();
-        sendViaHTTP(Constants.Configuration.HTTP_METHOD_HEAD, "urn:deleteService",
-                    "http://localhost:" + port + "/deleteService", true);
-        assertEquals("Not the expected HTTP Method", Constants.Configuration.HTTP_METHOD_POST,
-                     getHTTPMethod());
-        assertEquals("Not the expected content", getEnvelope().getFirstElement().getFirstElement()
-                .toString(), getStringContent());
-        assertEquals("Not the expected HTTP Header value", "application/xml",
-                     getHeaders().get(HttpHeaders.CONTENT_TYPE));
-        assertEquals("Not the expected HTTP Header value", "localhost",
-                     getHeaders().get(HttpHeaders.HOST));
-        assertEquals("Not the expected HTTP Header value", "Axis2",
-                     getHeaders().get(HttpHeaders.USER_AGENT));
-
-    }
-
-    @Override
-    public void testSendNOHTTPMethod() throws Exception {
-        int port = getBasicHttpServer().getPort();
-        sendViaHTTP(null, "urn:noService", "http://localhost:" + port + "/noService", true);
-        assertEquals("Not the expected HTTP Method", Constants.Configuration.HTTP_METHOD_POST,
-                     getHTTPMethod());
-        assertEquals("Not the expected content", getEnvelope().getFirstElement().getFirstElement()
-                .toString(), getStringContent());
-        assertNull("Not the expected HTTP Header value", getHeaders().get("SOAPAction"));
-        assertEquals("Not the expected HTTP Header value", "application/xml",
-                     getHeaders().get(HttpHeaders.CONTENT_TYPE));
-        assertEquals("Not the expected HTTP Header value", "localhost",
-                     getHeaders().get(HttpHeaders.HOST));
-        assertEquals("Not the expected HTTP Header value", "Axis2",
-                     getHeaders().get(HttpHeaders.USER_AGENT));
-    }
 }
diff --git a/modules/transport/http/test/org/apache/axis2/transport/http/HTTPClient4TransportSenderTest.java b/modules/transport/http/test/org/apache/axis2/transport/http/HTTPClient4TransportSenderTest.java
index d3170e6..c4a6017 100644
--- a/modules/transport/http/test/org/apache/axis2/transport/http/HTTPClient4TransportSenderTest.java
+++ b/modules/transport/http/test/org/apache/axis2/transport/http/HTTPClient4TransportSenderTest.java
@@ -33,7 +33,6 @@
         return new HTTPClient4TransportSender();
     }
 
-    @Override
     public void testCleanup() throws AxisFault {
         TransportSender sender = getTransportSender();
         MessageContext msgContext = new MessageContext();
diff --git a/modules/transport/http/test/org/apache/axis2/transport/http/HTTPSenderTest.java b/modules/transport/http/test/org/apache/axis2/transport/http/HTTPSenderTest.java
index 053e80c..07b3329 100644
--- a/modules/transport/http/test/org/apache/axis2/transport/http/HTTPSenderTest.java
+++ b/modules/transport/http/test/org/apache/axis2/transport/http/HTTPSenderTest.java
@@ -27,8 +27,11 @@
 import org.apache.axis2.transport.http.mock.server.AbstractHTTPServerTest;
 import org.apache.axis2.transport.http.mock.server.BasicHttpServer;
 
-import javax.mail.MessagingException;
 import javax.ws.rs.core.HttpHeaders;
+
+import static com.google.common.truth.Truth.assertAbout;
+import static org.apache.axiom.truth.xml.XMLTruth.xml;
+
 import java.io.IOException;
 import java.net.URL;
 
@@ -54,11 +57,9 @@
      *            the rest
      * @throws IOException
      *             Signals that an I/O exception has occurred.
-     * @throws MessagingException
-     *             the messaging exception
      */
     protected void sendViaHTTP(String httpMethod, String soapAction, String address, boolean rest)
-            throws IOException, MessagingException {
+            throws IOException {
         httpSender = getHTTPSender();
         MessageContext msgContext = new MessageContext();
         ConfigurationContext configContext = ConfigurationContextFactory
@@ -127,7 +128,7 @@
                 "http://localhost:" + port + "/postService", false);
         assertEquals("Not the expected HTTP Method", Constants.Configuration.HTTP_METHOD_POST,
                 getHTTPMethod());
-        assertEquals("Not the expected content", getEnvelope().toString(), getStringContent());
+        assertAbout(xml()).that(getStringContent()).hasSameContentAs(getEnvelope().toString());
         assertEquals("Not the expected HTTP Header value", "urn:postService",
                 getHeaders().get("SOAPAction").replace("\"", ""));
         assertEquals("Not the expected HTTP Header value", "text/xml",
@@ -169,7 +170,7 @@
                 + port + "/putService", false);
         assertEquals("Not the expected HTTP Method", Constants.Configuration.HTTP_METHOD_PUT,
                 getHTTPMethod());
-        assertEquals("Not the expected content", getEnvelope().toString(), getStringContent());
+        assertAbout(xml()).that(getStringContent()).hasSameContentAs(getEnvelope().toString());
         assertEquals("Not the expected HTTP Header value", "urn:putService",
                 getHeaders().get("SOAPAction").replace("\"", ""));
         assertEquals("Not the expected HTTP Header value", "text/xml",
@@ -211,7 +212,8 @@
      * @throws Exception
      *             the exception
      */
-    public void testSendViaHead() throws Exception {
+    // This is test is bullshit; if we send a HEAD request, we shouldn't expect the method to be POST
+    public void _testSendViaHead() throws Exception {
 
         int port = getBasicHttpServer().getPort();
         sendViaHTTP(Constants.Configuration.HTTP_METHOD_HEAD, "urn:deleteService",
@@ -252,7 +254,7 @@
                 getHeaders().get(HttpHeaders.USER_AGENT));
 
         sendViaHTTP(null, "urn:noService", "http://localhost:" + port + "/noService", false);
-        assertEquals("Not the expected content", getEnvelope().toString(), getStringContent());
+        assertAbout(xml()).that(getStringContent()).hasSameContentAs(getEnvelope().toString());
         assertEquals("Not the expected HTTP Header value", "urn:noService",
                 getHeaders().get("SOAPAction").replace("\"", ""));
         assertEquals("Not the expected HTTP Header value", "text/xml",
diff --git a/modules/transport/http/test/org/apache/axis2/transport/http/HttpTransportDescriptionFactory.java b/modules/transport/http/test/org/apache/axis2/transport/http/HttpTransportDescriptionFactory.java
index d25f564..f972693 100644
--- a/modules/transport/http/test/org/apache/axis2/transport/http/HttpTransportDescriptionFactory.java
+++ b/modules/transport/http/test/org/apache/axis2/transport/http/HttpTransportDescriptionFactory.java
@@ -22,6 +22,7 @@
 import org.apache.axis2.description.Parameter;
 import org.apache.axis2.description.TransportInDescription;
 import org.apache.axis2.description.TransportOutDescription;
+import org.apache.axis2.transport.http.impl.httpclient4.HTTPClient4TransportSender;
 import org.apache.axis2.transport.testkit.axis2.TransportDescriptionFactory;
 import org.apache.axis2.transport.testkit.http.HttpTestEnvironment;
 import org.apache.axis2.transport.testkit.tests.Setup;
@@ -44,7 +45,7 @@
 
     public TransportOutDescription createTransportOutDescription() throws Exception {
         TransportOutDescription desc = new TransportOutDescription("http");
-        desc.setSender(new CommonsHTTPTransportSender());
+        desc.setSender(new HTTPClient4TransportSender());
         return desc;
     }
 }
diff --git a/modules/transport/http/test/org/apache/axis2/transport/http/mock/server/AbstractHTTPServerTest.java b/modules/transport/http/test/org/apache/axis2/transport/http/mock/server/AbstractHTTPServerTest.java
index ab654cf..b7706b3 100644
--- a/modules/transport/http/test/org/apache/axis2/transport/http/mock/server/AbstractHTTPServerTest.java
+++ b/modules/transport/http/test/org/apache/axis2/transport/http/mock/server/AbstractHTTPServerTest.java
@@ -22,7 +22,6 @@
 import java.io.IOException;
 import java.util.Map;
 
-import javax.mail.MessagingException;
 import javax.xml.namespace.QName;
 
 import org.apache.axiom.om.OMAbstractFactory;
@@ -144,10 +143,8 @@
      * @return the envelope
      * @throws IOException
      *             Signals that an I/O exception has occurred.
-     * @throws MessagingException
-     *             the messaging exception
      */
-    public static SOAPEnvelope getEnvelope() throws IOException, MessagingException {
+    public static SOAPEnvelope getEnvelope() throws IOException {
         SOAPFactory soapFac = OMAbstractFactory.getSOAP11Factory();
         OMFactory omFac = OMAbstractFactory.getOMFactory();
         SOAPEnvelope enp = soapFac.createSOAPEnvelope();
diff --git a/modules/transport/jms/pom.xml b/modules/transport/jms/pom.xml
index 02a45eb..72df4f4 100644
--- a/modules/transport/jms/pom.xml
+++ b/modules/transport/jms/pom.xml
@@ -22,9 +22,9 @@
     <modelVersion>4.0.0</modelVersion>
     <parent>
         <groupId>org.apache.axis2</groupId>
-        <artifactId>axis2-parent</artifactId>
-        <version>1.7.0-SNAPSHOT</version>
-        <relativePath>../../parent/pom.xml</relativePath>
+        <artifactId>axis2</artifactId>
+        <version>1.8.0-SNAPSHOT</version>
+        <relativePath>../../../pom.xml</relativePath>
     </parent>
 
     <groupId>org.apache.axis2</groupId>
@@ -82,7 +82,6 @@
             <plugin>
                 <groupId>org.apache.felix</groupId>
                 <artifactId>maven-bundle-plugin</artifactId>
-                <version>1.4.0</version>
                 <extensions>true</extensions>
                 <configuration>
                     <instructions>
@@ -167,6 +166,16 @@
             <artifactId>junit</artifactId>
             <scope>test</scope>
         </dependency>
+        <dependency>
+            <groupId>org.mockito</groupId>
+            <artifactId>mockito-core</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>com.google.truth</groupId>
+            <artifactId>truth</artifactId>
+            <scope>test</scope>
+        </dependency>
     </dependencies>
     
     <properties>
diff --git a/modules/transport/jms/src/main/java/org/apache/axis2/transport/jms/JMSUtils.java b/modules/transport/jms/src/main/java/org/apache/axis2/transport/jms/JMSUtils.java
index 6fe224e..31a715d 100644
--- a/modules/transport/jms/src/main/java/org/apache/axis2/transport/jms/JMSUtils.java
+++ b/modules/transport/jms/src/main/java/org/apache/axis2/transport/jms/JMSUtils.java
@@ -20,7 +20,6 @@
 import org.apache.axis2.AxisFault;
 import org.apache.axis2.Constants;
 import org.apache.axis2.builder.Builder;
-import org.apache.axis2.builder.BuilderUtil;
 import org.apache.axis2.builder.SOAPBuilder;
 import org.apache.axis2.context.MessageContext;
 import org.apache.axis2.util.MessageProcessorSelector;
@@ -431,9 +430,17 @@
         throws JMSException {
 
         if (dest instanceof Queue) {
-            return ((QueueSession) session).createReceiver((Queue) dest, messageSelector);
+            if (session instanceof QueueSession) {
+                return ((QueueSession) session).createReceiver((Queue) dest, messageSelector);
+            } else {
+                return session.createConsumer(dest, messageSelector);
+            }
         } else {
-            return ((TopicSession) session).createSubscriber((Topic) dest, messageSelector, false);
+            if (session instanceof TopicSession) {
+                return ((TopicSession) session).createSubscriber((Topic) dest, messageSelector, false);
+            } else {
+                return session.createConsumer(dest, messageSelector);
+            }
         }
     }
 
@@ -714,7 +721,10 @@
                         "dynamicTopics/" : "dynamicQueues/") + destinationName);
             } catch (NamingException x) {
                 log.warn("Cannot locate destination : " + destinationName);
-                throw x;
+                // Rethrow the original exception. If we get here this most likely means that
+                // the JMS provider doesn't support dynamic(Queues|Topics) and we should simply
+                // report the original lookup failure.
+                throw e;
             }
         } catch (NamingException e) {
             log.warn("Cannot locate destination : " + destinationName, e);
diff --git a/modules/transport/jms/src/main/java/org/apache/axis2/transport/jms/package.html b/modules/transport/jms/src/main/java/org/apache/axis2/transport/jms/package.html
index b95b49e..794c903 100644
--- a/modules/transport/jms/src/main/java/org/apache/axis2/transport/jms/package.html
+++ b/modules/transport/jms/src/main/java/org/apache/axis2/transport/jms/package.html
@@ -2,6 +2,8 @@
 <title>JMS Transport Configuration</title>
 <body>
 
+Transport implementation for JMS.
+
 <h2>JMS Listener Configuration (axis2.xml)</h2>
 
 e.g:
diff --git a/modules/transport/jms/src/test/java/org/apache/axis2/transport/jms/JMSAsyncClient.java b/modules/transport/jms/src/test/java/org/apache/axis2/transport/jms/JMSAsyncClient.java
index 6423a06..3bba563 100644
--- a/modules/transport/jms/src/test/java/org/apache/axis2/transport/jms/JMSAsyncClient.java
+++ b/modules/transport/jms/src/test/java/org/apache/axis2/transport/jms/JMSAsyncClient.java
@@ -19,8 +19,7 @@
 
 package org.apache.axis2.transport.jms;
 
-import javax.mail.internet.ContentType;
-
+import org.apache.axiom.mime.ContentType;
 import org.apache.axis2.transport.testkit.client.AsyncTestClient;
 import org.apache.axis2.transport.testkit.client.ClientOptions;
 
diff --git a/modules/transport/jms/src/test/java/org/apache/axis2/transport/jms/JMSClient.java b/modules/transport/jms/src/test/java/org/apache/axis2/transport/jms/JMSClient.java
index a4479ce..fbccdbf 100644
--- a/modules/transport/jms/src/test/java/org/apache/axis2/transport/jms/JMSClient.java
+++ b/modules/transport/jms/src/test/java/org/apache/axis2/transport/jms/JMSClient.java
@@ -25,8 +25,8 @@
 import javax.jms.Message;
 import javax.jms.MessageProducer;
 import javax.jms.Session;
-import javax.mail.internet.ContentType;
 
+import org.apache.axiom.mime.ContentType;
 import org.apache.axis2.transport.base.BaseConstants;
 import org.apache.axis2.transport.testkit.client.ClientOptions;
 import org.apache.axis2.transport.testkit.client.TestClient;
diff --git a/modules/transport/jms/src/test/java/org/apache/axis2/transport/jms/JMSRequestResponseClient.java b/modules/transport/jms/src/test/java/org/apache/axis2/transport/jms/JMSRequestResponseClient.java
index e3f6a81..4c63386 100644
--- a/modules/transport/jms/src/test/java/org/apache/axis2/transport/jms/JMSRequestResponseClient.java
+++ b/modules/transport/jms/src/test/java/org/apache/axis2/transport/jms/JMSRequestResponseClient.java
@@ -25,8 +25,8 @@
 import javax.jms.Message;
 import javax.jms.MessageConsumer;
 import javax.jms.Session;
-import javax.mail.internet.ContentType;
 
+import org.apache.axiom.mime.ContentType;
 import org.apache.axis2.transport.testkit.client.ClientOptions;
 import org.apache.axis2.transport.testkit.client.RequestResponseTestClient;
 import org.apache.axis2.transport.testkit.message.IncomingMessage;
diff --git a/modules/transport/jms/src/test/java/org/apache/axis2/transport/jms/JMSUtilsTest.java b/modules/transport/jms/src/test/java/org/apache/axis2/transport/jms/JMSUtilsTest.java
new file mode 100644
index 0000000..431c5bd
--- /dev/null
+++ b/modules/transport/jms/src/test/java/org/apache/axis2/transport/jms/JMSUtilsTest.java
@@ -0,0 +1,40 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.axis2.transport.jms;
+
+import static com.google.common.truth.Truth.assertThat;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
+import javax.jms.MessageConsumer;
+import javax.jms.Queue;
+import javax.jms.Session;
+
+import org.junit.Test;
+
+public class JMSUtilsTest {
+    @Test
+    public void testAxis2_5825() throws Exception {
+        Queue queue = mock(Queue.class);
+        Session session = mock(Session.class);
+        MessageConsumer consumer = mock(MessageConsumer.class);
+        when(session.createConsumer(queue, null)).thenReturn(consumer);
+        assertThat(JMSUtils.createConsumer(session, queue, null)).isSameAs(consumer);
+    }
+}
diff --git a/modules/transport/jms/src/test/java/org/apache/axis2/transport/jms/ctype/ContentTypeRuleTest.java b/modules/transport/jms/src/test/java/org/apache/axis2/transport/jms/ctype/ContentTypeRuleTest.java
index 144010f..365aa05 100644
--- a/modules/transport/jms/src/test/java/org/apache/axis2/transport/jms/ctype/ContentTypeRuleTest.java
+++ b/modules/transport/jms/src/test/java/org/apache/axis2/transport/jms/ctype/ContentTypeRuleTest.java
@@ -22,7 +22,7 @@
 import junit.framework.TestCase;
 
 import org.apache.axiom.om.OMElement;
-import org.apache.axiom.om.impl.builder.StAXOMBuilder;
+import org.apache.axiom.om.OMXMLBuilderFactory;
 import org.apache.axis2.context.ConfigurationContext;
 import org.apache.axis2.deployment.ServiceBuilder;
 import org.apache.axis2.description.AxisService;
@@ -42,7 +42,7 @@
         
         InputStream in = ContentTypeRuleTest.class.getResourceAsStream(getName() + ".xml");
         try {
-            OMElement element = new StAXOMBuilder(in).getDocumentElement();
+            OMElement element = OMXMLBuilderFactory.createOMBuilder(in).getDocumentElement();
             new ServiceBuilder(cfgCtx, service).populateService(element);
         } finally {
             in.close();
diff --git a/modules/transport/local/pom.xml b/modules/transport/local/pom.xml
index 8a52f9d..2058c87 100644
--- a/modules/transport/local/pom.xml
+++ b/modules/transport/local/pom.xml
@@ -23,9 +23,9 @@
     <modelVersion>4.0.0</modelVersion>
     <parent>
         <groupId>org.apache.axis2</groupId>
-        <artifactId>axis2-parent</artifactId>
-        <version>1.7.0-SNAPSHOT</version>
-        <relativePath>../../parent/pom.xml</relativePath>
+        <artifactId>axis2</artifactId>
+        <version>1.8.0-SNAPSHOT</version>
+        <relativePath>../../../pom.xml</relativePath>
     </parent>
     <artifactId>axis2-transport-local</artifactId>
     <name>Apache Axis2 - Transport - Local</name>
diff --git a/modules/transport/local/src/org/apache/axis2/transport/local/LocalResponder.java b/modules/transport/local/src/org/apache/axis2/transport/local/LocalResponder.java
index c1aa63b..d9ec4ee 100644
--- a/modules/transport/local/src/org/apache/axis2/transport/local/LocalResponder.java
+++ b/modules/transport/local/src/org/apache/axis2/transport/local/LocalResponder.java
@@ -20,40 +20,32 @@
 
 package org.apache.axis2.transport.local;
 
-import org.apache.axiom.om.OMXMLParserWrapper;
-import org.apache.axiom.soap.SOAPEnvelope;
 import org.apache.axis2.AxisFault;
-import org.apache.axis2.Constants;
 import org.apache.axis2.addressing.EndpointReference;
-import org.apache.axis2.addressing.RelatesTo;
-import org.apache.axis2.builder.BuilderUtil;
 import org.apache.axis2.context.ConfigurationContext;
 import org.apache.axis2.context.MessageContext;
 import org.apache.axis2.description.TransportOutDescription;
-import org.apache.axis2.description.WSDL2Constants;
-import org.apache.axis2.engine.AxisEngine;
 import org.apache.axis2.handlers.AbstractHandler;
 import org.apache.axis2.transport.TransportSender;
 import org.apache.axis2.transport.TransportUtils;
-import org.apache.axis2.wsdl.WSDLConstants;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 
-import javax.xml.stream.XMLStreamException;
-import java.io.*;
-import java.util.Map;
+import java.io.ByteArrayOutputStream;
+import java.io.OutputStream;
 
 /**
  * LocalResponder
  */
 public class LocalResponder extends AbstractHandler implements TransportSender {
     protected static final Log log = LogFactory.getLog(LocalResponder.class);
-
+    
+    
     //  fixed for Executing LocalTransport in MulthThread. 
     private OutputStream out;
 
     public LocalResponder(OutputStream response) {
-        this.out = response;
+        this.out = response;        
     }
 
     public void init(ConfigurationContext confContext, TransportOutDescription transportOut)
@@ -95,38 +87,13 @@
                     TransportUtils.writeMessage(msgContext, out);
                 }
             } else {
-                if (/*(msgContext != null) &&*/ (msgContext.getOperationContext() != null) &&
-                        (msgContext.getOperationContext().getMessageContexts() != null)) {
-                    MessageContext proxyInMessageContext = msgContext.
-                            getOperationContext().getMessageContext(WSDL2Constants.MESSAGE_LABEL_IN);
+                out = (OutputStream) msgContext.getProperty(MessageContext.TRANSPORT_OUT);
 
-                    if (proxyInMessageContext != null) {
-                        MessageContext initialMessageContext = (MessageContext) proxyInMessageContext.
-                                getProperty(LocalTransportReceiver.IN_MESSAGE_CONTEXT);
-
-                        if (initialMessageContext != null) {
-                            handleResponse(msgContext, initialMessageContext);
-                        } else {
-                            out = (OutputStream) msgContext.getProperty(MessageContext.TRANSPORT_OUT);
-
-                            if (out != null) {
-                                TransportUtils.writeMessage(msgContext, out);
-                            } else {
-                                throw new AxisFault(
-                                        "Both the TO and Property MessageContext.TRANSPORT_OUT is Null, No where to send");
-                            }
-
-                        }
-                    }
+                if (out != null) {
+                    TransportUtils.writeMessage(msgContext, out);
                 } else {
-                    out = (OutputStream) msgContext.getProperty(MessageContext.TRANSPORT_OUT);
-
-                    if (out != null) {
-                        TransportUtils.writeMessage(msgContext, out);
-                    } else {
-                        throw new AxisFault(
-                                "Both the TO and Property MessageContext.TRANSPORT_OUT is Null, No where to send");
-                    }
+                    throw new AxisFault(
+                            "Both the TO and Property MessageContext.TRANSPORT_OUT is Null, No where to send");
                 }
             }
         } catch (AxisFault axisFault) {
@@ -136,95 +103,7 @@
         }
 
         TransportUtils.setResponseWritten(msgContext, true);
-
+        
         return InvocationResponse.CONTINUE;
     }
-
-    /**
-     * Retrieves the properties from the proxyOutMessageContext and sets the values to the
-     * inMessageContext.
-     *
-     * @param proxyOutMessageContext the active message context
-     * @param initialMessageContext  the initial message context, which was stored as a property
-     *                               in the proxyOutMessageContext
-     * @throws AxisFault AxisFault
-     */
-    private void handleResponse(MessageContext proxyOutMessageContext, MessageContext initialMessageContext) throws AxisFault {
-        MessageContext inMessageContext = initialMessageContext.getOperationContext().
-                getMessageContext(WSDL2Constants.MESSAGE_LABEL_IN);
-
-        // setting the properties
-        Map<String, Object> initialPropertyMap = initialMessageContext.getProperties();
-        initialMessageContext.setProperties(initialPropertyMap);
-
-        inMessageContext.setEnvelope(getEnvelope(proxyOutMessageContext));
-        inMessageContext.setAxisServiceGroup(initialMessageContext.getAxisServiceGroup());
-        inMessageContext.setAxisService(initialMessageContext.getAxisService());
-        inMessageContext.setAxisOperation(initialMessageContext.getAxisOperation());
-        inMessageContext.setAxisMessage(initialMessageContext.getAxisOperation().getMessage(
-                WSDLConstants.MESSAGE_LABEL_OUT_VALUE));
-        inMessageContext.setIncomingTransportName(Constants.TRANSPORT_LOCAL);
-        inMessageContext.setServiceContext(initialMessageContext.getServiceContext());
-
-        // set properties on response
-        inMessageContext.setServerSide(true);
-        inMessageContext.setProperty(MessageContext.TRANSPORT_OUT,
-                initialMessageContext.getProperty(MessageContext.TRANSPORT_OUT));
-        inMessageContext.setProperty(Constants.OUT_TRANSPORT_INFO,
-                initialMessageContext.getProperty(Constants.OUT_TRANSPORT_INFO));
-        inMessageContext.setTransportIn(initialMessageContext.getTransportIn());
-        inMessageContext.setTransportOut(initialMessageContext.getTransportOut());
-
-        if (log.isDebugEnabled()) {
-            log.debug("Setting AxisServiceGroup - " + initialMessageContext.getAxisServiceGroup());
-            log.debug("Setting AxisService - " + initialMessageContext.getAxisService());
-            log.debug("Setting AxisOperation - " + initialMessageContext.getAxisOperation());
-            log.debug("Setting AxisMessage - " + initialMessageContext.getAxisOperation().
-                    getMessage(WSDLConstants.MESSAGE_LABEL_OUT_VALUE));
-            log.debug("Setting Incoming Transport name - " + Constants.TRANSPORT_LOCAL);
-            log.debug("Setting Service Context " + initialMessageContext.getServiceGroupContext().toString());
-
-            log.debug("Setting ServerSide to true");
-            log.debug("Setting " + MessageContext.TRANSPORT_OUT + " property to " +
-                    initialMessageContext.getProperty(MessageContext.TRANSPORT_OUT));
-            log.debug("Setting " + Constants.OUT_TRANSPORT_INFO + " property to " +
-                    initialMessageContext.getProperty(Constants.OUT_TRANSPORT_INFO));
-            log.debug("Setting TransportIn - " + initialMessageContext.getTransportIn());
-            log.debug("Setting TransportOut - " + initialMessageContext.getTransportOut());
-
-            log.debug("Setting ReplyTo - " + initialMessageContext.getReplyTo());
-            log.debug("Setting FaultTo - " + initialMessageContext.getFaultTo());
-        }
-
-        // copy the message type property that is used by the out message to the response message
-        inMessageContext.setProperty(Constants.Configuration.MESSAGE_TYPE,
-                initialMessageContext.getProperty(Constants.Configuration.MESSAGE_TYPE));
-
-        if (initialMessageContext.getMessageID() != null) {
-            inMessageContext.setRelationships(
-                    new RelatesTo[]{new RelatesTo(initialMessageContext.getMessageID())});
-        }
-
-        inMessageContext.setReplyTo(initialMessageContext.getReplyTo());
-        inMessageContext.setFaultTo(initialMessageContext.getFaultTo());
-
-        AxisEngine.receive(inMessageContext);
-    }
-
-    private SOAPEnvelope getEnvelope(MessageContext messageContext) throws AxisFault {
-        ByteArrayOutputStream out = new ByteArrayOutputStream();
-        TransportUtils.writeMessage(messageContext, out);
-
-        ByteArrayInputStream bs = new ByteArrayInputStream(out.toByteArray());
-        InputStreamReader streamReader = new InputStreamReader(bs);
-        OMXMLParserWrapper builder;
-
-        try {
-            builder = BuilderUtil.getBuilder(streamReader);
-        } catch (XMLStreamException e) {
-            throw AxisFault.makeFault(e);
-        }
-
-        return (SOAPEnvelope) builder.getDocumentElement();
-    }
 }
diff --git a/modules/transport/local/src/org/apache/axis2/transport/local/LocalTransportReceiver.java b/modules/transport/local/src/org/apache/axis2/transport/local/LocalTransportReceiver.java
index 555f009..3c73c15 100644
--- a/modules/transport/local/src/org/apache/axis2/transport/local/LocalTransportReceiver.java
+++ b/modules/transport/local/src/org/apache/axis2/transport/local/LocalTransportReceiver.java
@@ -20,39 +20,27 @@
 
 package org.apache.axis2.transport.local;
 
-import org.apache.axiom.om.OMXMLParserWrapper;
+import org.apache.axiom.om.OMXMLBuilderFactory;
 import org.apache.axiom.soap.SOAPEnvelope;
 import org.apache.axis2.AxisFault;
 import org.apache.axis2.Constants;
 import org.apache.axis2.addressing.EndpointReference;
-import org.apache.axis2.builder.BuilderUtil;
 import org.apache.axis2.context.ConfigurationContext;
 import org.apache.axis2.context.MessageContext;
-import org.apache.axis2.context.SessionContext;
 import org.apache.axis2.description.TransportInDescription;
 import org.apache.axis2.description.TransportOutDescription;
 import org.apache.axis2.engine.AxisEngine;
-import org.apache.axis2.transport.TransportListener;
 import org.apache.axis2.transport.http.HTTPConstants;
 import org.apache.axis2.util.MessageContextBuilder;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
 
-import javax.xml.stream.XMLStreamException;
 import java.io.InputStream;
 import java.io.InputStreamReader;
 import java.io.OutputStream;
 
-public class LocalTransportReceiver implements TransportListener {
-    protected static final Log log = LogFactory.getLog(LocalTransportReceiver.class);
-
+public class LocalTransportReceiver {
     public static ConfigurationContext CONFIG_CONTEXT;
     private ConfigurationContext confContext;
     private MessageContext inMessageContext;
-    /** Whether the call is blocking or non-blocking */
-    private boolean nonBlocking = false;
-    /** If the call is non-blocking the in message context will be stored in this property */
-    public static final String IN_MESSAGE_CONTEXT = "IN_MESSAGE_CONTEXT";
 
     public LocalTransportReceiver(ConfigurationContext configContext) {
         confContext = configContext;
@@ -62,11 +50,6 @@
         this(CONFIG_CONTEXT);
     }
 
-    public LocalTransportReceiver(LocalTransportSender sender, boolean nonBlocking) {
-        this(CONFIG_CONTEXT);
-        this.nonBlocking = nonBlocking;
-    }
-
     public void processMessage(MessageContext inMessageContext,
                                InputStream in,
                                OutputStream response) throws AxisFault {
@@ -94,27 +77,12 @@
                                OutputStream response)
             throws AxisFault {
         MessageContext msgCtx = confContext.createMessageContext();
-
-        if (this.nonBlocking) {
-            if (log.isDebugEnabled()) {
-                log.debug("Setting the in-message context as a property(" + IN_MESSAGE_CONTEXT +
-                        ") to the current message context");
-            }
-            // Set the in-message context as a property to the  current message context.
-            msgCtx.setProperty(IN_MESSAGE_CONTEXT, inMessageContext);
-        }
-
         if (inMessageContext != null) {
-            if (log.isDebugEnabled()) {
-                log.debug("Setting the property " + HTTPConstants.MC_HTTP_SERVLETREQUEST + " to " +
-                        inMessageContext.getProperty(HTTPConstants.MC_HTTP_SERVLETREQUEST));
-                log.debug("Setting the property " + MessageContext.REMOTE_ADDR + " to " +
-                        inMessageContext.getProperty(MessageContext.REMOTE_ADDR));
-            }
             msgCtx.setProperty(HTTPConstants.MC_HTTP_SERVLETREQUEST,
                                inMessageContext.getProperty(HTTPConstants.MC_HTTP_SERVLETREQUEST));
             msgCtx.setProperty(MessageContext.REMOTE_ADDR,
                                inMessageContext.getProperty(MessageContext.REMOTE_ADDR));
+
         }
 
         TransportInDescription tIn = confContext.getAxisConfiguration().getTransportIn(
@@ -144,25 +112,10 @@
             msgCtx.setServerSide(true);
 
             InputStreamReader streamReader = new InputStreamReader(in);
-            OMXMLParserWrapper builder;
-            try {
-                builder = BuilderUtil.getBuilder(streamReader);
-            } catch (XMLStreamException e) {
-                throw AxisFault.makeFault(e);
-            }
-            SOAPEnvelope envelope = (SOAPEnvelope) builder.getDocumentElement();
+            SOAPEnvelope envelope = OMXMLBuilderFactory.createSOAPModelBuilder(streamReader).getSOAPEnvelope();
 
             msgCtx.setEnvelope(envelope);
 
-             if (log.isDebugEnabled()) {
-                log.debug("Setting incoming Transport name - " + Constants.TRANSPORT_LOCAL);
-                log.debug("Setting TransportIn - " + tIn);
-                log.debug("Setting TransportOut - " + localTransportResOut);
-                log.debug("Setting To address - " + to);
-                log.debug("Setting WSAction - " + action);
-                log.debug("Setting Envelope - " + envelope.toString());
-            }
-
             AxisEngine.receive(msgCtx);
         } catch (AxisFault e) {
             // write the fault back.
@@ -172,10 +125,6 @@
                 faultContext.setTransportOut(localTransportResOut);
                 faultContext.setProperty(MessageContext.TRANSPORT_OUT, response);
 
-                if(log.isDebugEnabled()) {
-                    log.debug("Setting FaultContext's TransportOut - " + localTransportResOut);
-                }
-
                 AxisEngine.sendFault(faultContext);
             } catch (AxisFault axisFault) {
                 // can't handle this, so just throw it
@@ -183,28 +132,4 @@
             }
         }
     }
-
-    public void init(ConfigurationContext axisConf, TransportInDescription transprtIn) throws AxisFault {
-    }
-
-    public void start() throws AxisFault {
-    }
-
-    public void stop() throws AxisFault {
-    }
-
-    public EndpointReference getEPRForService(String serviceName, String ip) throws AxisFault {
-        return null;
-    }
-
-    public EndpointReference[] getEPRsForService(String serviceName, String ip) throws AxisFault {
-        return new EndpointReference[0];
-    }
-
-    public SessionContext getSessionContext(MessageContext messageContext) {
-        return null;
-    }
-
-    public void destroy() {
-    }
 }
diff --git a/modules/transport/local/src/org/apache/axis2/transport/local/LocalTransportSender.java b/modules/transport/local/src/org/apache/axis2/transport/local/LocalTransportSender.java
index 562ed99..03413e2 100644
--- a/modules/transport/local/src/org/apache/axis2/transport/local/LocalTransportSender.java
+++ b/modules/transport/local/src/org/apache/axis2/transport/local/LocalTransportSender.java
@@ -98,7 +98,7 @@
             InputStream in = new ByteArrayInputStream(out.toByteArray());
             ByteArrayOutputStream response = new ByteArrayOutputStream();
 
-            LocalTransportReceiver localTransportReceiver = new LocalTransportReceiver(this, isNonBlocking());
+            LocalTransportReceiver localTransportReceiver = new LocalTransportReceiver(this);
             localTransportReceiver.processMessage(msgContext, in, response);
 
             in.close();
@@ -111,11 +111,4 @@
             throw AxisFault.makeFault(e);
         }
     }
-
-    protected boolean isNonBlocking() {
-        if (log.isDebugEnabled()) {
-            log.debug("Local Transport Sender Selected");
-        }
-        return false;
-    }
 }
diff --git a/modules/transport/mail/pom.xml b/modules/transport/mail/pom.xml
index 8124e4a..57d727a 100644
--- a/modules/transport/mail/pom.xml
+++ b/modules/transport/mail/pom.xml
@@ -22,9 +22,9 @@
   <modelVersion>4.0.0</modelVersion>
   <parent>
     <groupId>org.apache.axis2</groupId>
-    <artifactId>axis2-parent</artifactId>
-    <version>1.7.0-SNAPSHOT</version>
-    <relativePath>../../parent/pom.xml</relativePath>
+    <artifactId>axis2</artifactId>
+    <version>1.8.0-SNAPSHOT</version>
+    <relativePath>../../../pom.xml</relativePath>
   </parent>
 
   <groupId>org.apache.axis2</groupId>
@@ -45,7 +45,6 @@
       <plugin>
         <groupId>org.apache.felix</groupId>
         <artifactId>maven-bundle-plugin</artifactId>
-        <version>1.4.0</version>
         <extensions>true</extensions>
         <configuration>
           <instructions>
@@ -110,49 +109,26 @@
 
   <dependencies>
     <dependency>
-      <groupId>javax.mail</groupId>
-      <artifactId>mail</artifactId>
-      <version>1.4.1</version>
+      <groupId>com.sun.mail</groupId>
+      <artifactId>javax.mail</artifactId>
     </dependency>
 
     <dependency>
       <groupId>org.apache.axis2</groupId>
       <artifactId>axis2-transport-base</artifactId>
       <version>${project.version}</version>
-      <exclusions>
-        <!-- We want to choose the JavaMail implementation ourselves -->
-        <exclusion>
-          <groupId>org.apache.geronimo.specs</groupId>
-          <artifactId>geronimo-javamail_1.4_spec</artifactId>
-        </exclusion>
-      </exclusions>
-
     </dependency>
     <dependency>
       <groupId>org.apache.axis2</groupId>
       <artifactId>axis2-transport-testkit</artifactId>
       <version>${project.version}</version>
       <scope>test</scope>
-      <exclusions>
-        <!-- We want to choose the JavaMail implementation ourselves -->
-        <exclusion>
-          <groupId>javax.mail</groupId>
-          <artifactId>mail</artifactId>
-        </exclusion>
-      </exclusions>
     </dependency>
     <dependency>
       <groupId>com.icegreen</groupId>
       <artifactId>greenmail</artifactId>
       <version>1.3</version>
       <scope>test</scope>
-      <exclusions>
-        <!-- We want to choose the JavaMail implementation ourselves -->
-        <exclusion>
-          <groupId>javax.mail</groupId>
-          <artifactId>mail</artifactId>
-        </exclusion>
-      </exclusions>
     </dependency>
   </dependencies>
 </project>
diff --git a/modules/transport/mail/src/test/java/org/apache/axis2/transport/mail/MailAsyncClient.java b/modules/transport/mail/src/test/java/org/apache/axis2/transport/mail/MailAsyncClient.java
index 371163f..89fdec4 100644
--- a/modules/transport/mail/src/test/java/org/apache/axis2/transport/mail/MailAsyncClient.java
+++ b/modules/transport/mail/src/test/java/org/apache/axis2/transport/mail/MailAsyncClient.java
@@ -19,8 +19,7 @@
 
 package org.apache.axis2.transport.mail;
 
-import javax.mail.internet.ContentType;
-
+import org.apache.axiom.mime.ContentType;
 import org.apache.axis2.transport.testkit.client.AsyncTestClient;
 import org.apache.axis2.transport.testkit.client.ClientOptions;
 
diff --git a/modules/transport/mail/src/test/java/org/apache/axis2/transport/mail/MailClient.java b/modules/transport/mail/src/test/java/org/apache/axis2/transport/mail/MailClient.java
index 7936c42..aa6c5ff 100644
--- a/modules/transport/mail/src/test/java/org/apache/axis2/transport/mail/MailClient.java
+++ b/modules/transport/mail/src/test/java/org/apache/axis2/transport/mail/MailClient.java
@@ -26,11 +26,11 @@
 import javax.mail.Message;
 import javax.mail.Session;
 import javax.mail.Transport;
-import javax.mail.internet.ContentType;
 import javax.mail.internet.InternetAddress;
 import javax.mail.internet.MimeMessage;
 import javax.mail.util.ByteArrayDataSource;
 
+import org.apache.axiom.mime.ContentType;
 import org.apache.axiom.util.UIDGenerator;
 import org.apache.axis2.transport.testkit.client.ClientOptions;
 import org.apache.axis2.transport.testkit.client.TestClient;
diff --git a/modules/transport/mail/src/test/java/org/apache/axis2/transport/mail/MailRequestResponseClient.java b/modules/transport/mail/src/test/java/org/apache/axis2/transport/mail/MailRequestResponseClient.java
index d97ea05..1cb3550 100644
--- a/modules/transport/mail/src/test/java/org/apache/axis2/transport/mail/MailRequestResponseClient.java
+++ b/modules/transport/mail/src/test/java/org/apache/axis2/transport/mail/MailRequestResponseClient.java
@@ -28,12 +28,12 @@
 import javax.mail.MessagingException;
 import javax.mail.Session;
 import javax.mail.Store;
-import javax.mail.internet.ContentType;
 import javax.mail.internet.InternetAddress;
 import javax.mail.internet.MimeMessage;
 
 import junit.framework.Assert;
 
+import org.apache.axiom.mime.ContentType;
 import org.apache.axis2.transport.testkit.client.ClientOptions;
 import org.apache.axis2.transport.testkit.client.RequestResponseTestClient;
 import org.apache.axis2.transport.testkit.message.IncomingMessage;
diff --git a/modules/transport/tcp/pom.xml b/modules/transport/tcp/pom.xml
index 530df79..c96894f 100644
--- a/modules/transport/tcp/pom.xml
+++ b/modules/transport/tcp/pom.xml
@@ -23,9 +23,9 @@
     <modelVersion>4.0.0</modelVersion>
     <parent>
         <groupId>org.apache.axis2</groupId>
-        <artifactId>axis2-parent</artifactId>
-        <version>1.7.0-SNAPSHOT</version>
-        <relativePath>../../parent/pom.xml</relativePath>
+        <artifactId>axis2</artifactId>
+        <version>1.8.0-SNAPSHOT</version>
+        <relativePath>../../../pom.xml</relativePath>
     </parent>
     <artifactId>axis2-transport-tcp</artifactId>
     <name>Apache Axis2 - Transport - TCP</name>
@@ -83,7 +83,6 @@
             <plugin>
                 <groupId>org.apache.felix</groupId>
                 <artifactId>maven-bundle-plugin</artifactId>
-                <version>1.4.0</version>
                 <extensions>true</extensions>
                 <configuration>
                     <instructions>
diff --git a/modules/transport/tcp/test/org/apache/axis2/transport/tcp/TCPEchoRawXMLTest.java b/modules/transport/tcp/test/org/apache/axis2/transport/tcp/TCPEchoRawXMLTest.java
index ede2239..53be133 100644
--- a/modules/transport/tcp/test/org/apache/axis2/transport/tcp/TCPEchoRawXMLTest.java
+++ b/modules/transport/tcp/test/org/apache/axis2/transport/tcp/TCPEchoRawXMLTest.java
@@ -25,7 +25,6 @@
 import org.apache.axiom.om.OMElement;
 import org.apache.axiom.om.OMFactory;
 import org.apache.axiom.om.OMNamespace;
-import org.apache.axiom.om.util.StAXUtils;
 import org.apache.axiom.soap.SOAPEnvelope;
 import org.apache.axiom.soap.SOAPFactory;
 import org.apache.axis2.AxisFault;
@@ -115,8 +114,7 @@
         AxisCallback callback = new AxisCallback() {
             public void onComplete(MessageContext msgCtx) {
                 try {
-                    msgCtx.getEnvelope().serialize(StAXUtils
-                            .createXMLStreamWriter(System.out));
+                    msgCtx.getEnvelope().serialize(System.out);
                 } catch (XMLStreamException e) {
                     onError(e);
                 } finally {
@@ -171,8 +169,7 @@
         sender.setOptions(options);
         OMElement result = sender.sendReceive(operationName, payload);
 
-        result.serialize(StAXUtils.createXMLStreamWriter(
-                System.out));
+        result.serialize(System.out);
         sender.cleanup();
     }
 
@@ -195,8 +192,7 @@
         sender.setOptions(options);
         OMElement result = sender.sendReceive(operationName, payloadElement);
 
-        result.serialize(StAXUtils.createXMLStreamWriter(
-                System.out));
+        result.serialize(System.out);
         sender.cleanup();
 
     }
@@ -235,8 +231,7 @@
         MessageContext response = opClient.getMessageContext(WSDLConstants.MESSAGE_LABEL_IN_VALUE);
         SOAPEnvelope env = response.getEnvelope();
         assertNotNull(env);
-        env.getBody().serialize(StAXUtils.createXMLStreamWriter(
-                System.out));
+        env.getBody().serialize(System.out);
         sender.cleanup();
     }
 
diff --git a/modules/transport/tcp/test/org/apache/axis2/transport/tcp/TCPTwoChannelEchoRawXMLTest.java b/modules/transport/tcp/test/org/apache/axis2/transport/tcp/TCPTwoChannelEchoRawXMLTest.java
index ecd7b70..21caed0 100644
--- a/modules/transport/tcp/test/org/apache/axis2/transport/tcp/TCPTwoChannelEchoRawXMLTest.java
+++ b/modules/transport/tcp/test/org/apache/axis2/transport/tcp/TCPTwoChannelEchoRawXMLTest.java
@@ -25,7 +25,6 @@
 import org.apache.axiom.om.OMElement;
 import org.apache.axiom.om.OMFactory;
 import org.apache.axiom.om.OMNamespace;
-import org.apache.axiom.om.util.StAXUtils;
 import org.apache.axis2.AxisFault;
 import org.apache.axis2.Constants;
 import org.apache.axis2.addressing.EndpointReference;
@@ -102,8 +101,7 @@
             AxisCallback callback = new AxisCallback() {
                 public void onComplete(MessageContext msgCtx) {
                     try {
-                        msgCtx.getEnvelope().serializeAndConsume(StAXUtils
-                                .createXMLStreamWriter(System.out));
+                        msgCtx.getEnvelope().serializeAndConsume(System.out);
                     } catch (XMLStreamException e) {
                         onError(e);
                     } finally {
diff --git a/modules/transport/testkit/pom.xml b/modules/transport/testkit/pom.xml
index f1b3993..92abc60 100644
--- a/modules/transport/testkit/pom.xml
+++ b/modules/transport/testkit/pom.xml
@@ -23,9 +23,9 @@
     <modelVersion>4.0.0</modelVersion>
     <parent>
         <groupId>org.apache.axis2</groupId>
-        <artifactId>axis2-parent</artifactId>
-        <version>1.7.0-SNAPSHOT</version>
-        <relativePath>../../parent/pom.xml</relativePath>
+        <artifactId>axis2</artifactId>
+        <version>1.8.0-SNAPSHOT</version>
+        <relativePath>../../../pom.xml</relativePath>
     </parent>
     <artifactId>axis2-transport-testkit</artifactId>
     <name>Apache Axis2 - Transport - testkit</name>
@@ -83,10 +83,6 @@
             <artifactId>jetty</artifactId>
             <version>5.1.10</version>
         </dependency>
-        <dependency>
-            <groupId>org.apache.geronimo.specs</groupId>
-            <artifactId>geronimo-javamail_1.4_spec</artifactId>
-        </dependency>
     </dependencies>
 
     <profiles>
@@ -126,6 +122,24 @@
                 </dependency>
             </dependencies>
         </profile>
+        <profile>
+            <id>default-tools.jar-3</id>
+            <activation>
+                <property>
+                    <name>java.vendor</name>
+                    <value>Oracle Corporation</value>
+                </property>
+            </activation>
+            <dependencies>
+                <dependency>
+                    <groupId>com.sun</groupId>
+                    <artifactId>tools</artifactId>
+                    <version>1.5.0</version>
+                    <scope>system</scope>
+                    <systemPath>${java.home}/../lib/tools.jar</systemPath>
+                </dependency>
+            </dependencies>
+        </profile>
     </profiles>
 
     <build>
@@ -139,81 +153,39 @@
         </resources>
         <plugins>
             <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-dependency-plugin</artifactId>
-                <version>2.0</version>
+                <groupId>org.apache.axis2</groupId>
+                <artifactId>axis2-repo-maven-plugin</artifactId>
                 <executions>
                     <execution>
-                        <id>copy</id>
                         <phase>generate-resources</phase>
                         <goals>
-                            <goal>copy</goal>
+                            <goal>create-repository</goal>
                         </goals>
                         <configuration>
-                            <stripVersion>true</stripVersion>
-                            <artifactItems>
-                                <artifactItem>
-                                    <groupId>org.apache.axis2</groupId>
-                                    <artifactId>addressing</artifactId>
-                                    <version>${axis2.version}</version>
-                                    <type>mar</type>
-                                    <outputDirectory>
-                                        target/generated-resources/org/apache/axis2/transport/repo/modules
-                                    </outputDirectory>
-                                </artifactItem>
-                            </artifactItems>
-                        </configuration>
-                    </execution>
-                </executions>
-            </plugin>
-            <plugin>
-                <artifactId>maven-javadoc-plugin</artifactId>
-                <executions>
-                    <execution>
-                        <id>extract-resource-info</id>
-                        <phase>pre-site</phase>
-                        <goals>
-                            <goal>javadoc</goal>
-                        </goals>
-                        <configuration>
-                            <docletArtifacts>
-                                <docletArtifact>
-                                    <groupId>${project.groupId}</groupId>
-                                    <artifactId>${project.artifactId}</artifactId>
-                                    <version>${project.version}</version>
-                                </docletArtifact>
-                            </docletArtifacts>
-                            <doclet>org.apache.axis2.transport.testkit.doclet.ResourceInfoDoclet</doclet>
-                            <useStandardDocletOptions>false</useStandardDocletOptions>
-                            <show>private</show>
-                            <additionalparam>-out ${project.build.directory}/resource-info.dat</additionalparam>
-                        </configuration>
-                    </execution>
-                    <execution>
-                        <id>generate-javadoc</id>
-                        <phase>site</phase>
-                        <goals>
-                            <goal>javadoc</goal>
-                        </goals>
-                        <configuration>
-                            <docletArtifacts>
-                                <docletArtifact>
-                                    <groupId>${project.groupId}</groupId>
-                                    <artifactId>${project.artifactId}</artifactId>
-                                    <version>${project.version}</version>
-                                </docletArtifact>
-                            </docletArtifacts>
-                            <doclet>org.apache.axis2.transport.testkit.doclet.TestkitJavadocDoclet</doclet>
-                            <useStandardDocletOptions>true</useStandardDocletOptions>
-                            <additionalparam>
-                                -resource-info ${project.build.directory}/resource-info.dat
-                                -link http://java.sun.com/j2se/1.5.0/docs/api/
-                                -link http://java.sun.com/j2ee/1.4/docs/api/
-                                -link http://ws.apache.org/axis2/1_4_1/api/
-                                -link http://ws.apache.org/commons/axiom/apidocs/
-                                -link http://junit.org/junit/javadoc/3.8.1/
-                                -link http://www.eclipse.org/aspectj/doc/released/runtime-api/
-                            </additionalparam>
+                            <outputDirectory>${project.build.directory}/generated-resources/org/apache/axis2/transport/repo</outputDirectory>
+                            <generateFileLists>true</generateFileLists>
+                            <generatedAxis2xml>
+                                <messageFormatters>
+                                    <messageFormatter>
+                                        <contentType>text/plain</contentType>
+                                        <className>org.apache.axis2.format.PlainTextFormatter</className>
+                                    </messageFormatter>
+                                    <messageFormatter>
+                                        <contentType>application/octet-stream</contentType>
+                                        <className>org.apache.axis2.format.BinaryFormatter</className>
+                                    </messageFormatter>
+                                </messageFormatters>
+                                <messageBuilders>
+                                    <messageBuilder>
+                                        <contentType>text/plain</contentType>
+                                        <className>org.apache.axis2.format.PlainTextBuilder</className>
+                                    </messageBuilder>
+                                    <messageBuilder>
+                                        <contentType>application/octet-stream</contentType>
+                                        <className>org.apache.axis2.format.BinaryBuilder</className>
+                                    </messageBuilder>
+                                </messageBuilders>
+                            </generatedAxis2xml>
                         </configuration>
                     </execution>
                 </executions>
diff --git a/modules/transport/testkit/src/main/java/org/apache/axis2/transport/AbstractTransportTest.java b/modules/transport/testkit/src/main/java/org/apache/axis2/transport/AbstractTransportTest.java
index c885024..aa9a47a 100644
--- a/modules/transport/testkit/src/main/java/org/apache/axis2/transport/AbstractTransportTest.java
+++ b/modules/transport/testkit/src/main/java/org/apache/axis2/transport/AbstractTransportTest.java
@@ -27,8 +27,8 @@
 import org.apache.axiom.om.OMElement;
 import org.apache.axiom.om.OMFactory;
 import org.apache.axiom.om.OMNamespace;
+import org.apache.axiom.om.OMXMLBuilderFactory;
 import org.apache.axiom.soap.SOAPEnvelope;
-import org.apache.axiom.soap.impl.builder.StAXSOAPModelBuilder;
 import org.apache.axis2.context.ConfigurationContext;
 import org.apache.axis2.engine.AxisConfiguration;
 import org.apache.axis2.transport.UtilsTransportServer;
@@ -89,7 +89,7 @@
     }
     
     protected void assertSOAPEchoResponse(String textValue, XMLStreamReader reader) {
-        SOAPEnvelope env = new StAXSOAPModelBuilder(reader).getSOAPEnvelope();
+        SOAPEnvelope env = OMXMLBuilderFactory.createStAXSOAPModelBuilder(reader).getSOAPEnvelope();
         assertEchoResponse(textValue, env.getBody().getFirstElement());
     }
     
diff --git a/modules/transport/testkit/src/main/java/org/apache/axis2/transport/CustomAxisConfigurator.java b/modules/transport/testkit/src/main/java/org/apache/axis2/transport/CustomAxisConfigurator.java
index 51cace3..ce1b04c 100644
--- a/modules/transport/testkit/src/main/java/org/apache/axis2/transport/CustomAxisConfigurator.java
+++ b/modules/transport/testkit/src/main/java/org/apache/axis2/transport/CustomAxisConfigurator.java
@@ -21,7 +21,6 @@
 
 import java.io.IOException;
 import java.io.InputStream;
-import java.net.MalformedURLException;
 import java.net.URL;
 
 import org.apache.axis2.AxisFault;
@@ -32,19 +31,16 @@
 
 public class CustomAxisConfigurator extends DeploymentEngine implements AxisConfigurator {
     public AxisConfiguration getAxisConfiguration() throws AxisFault {
-        InputStream configStream = Loader.getResourceAsStream("org/apache/axis2/transport/axis2.xml");
+        URL axis2Url = Loader.getResource("org/apache/axis2/transport/repo/axis2.xml");
         try {
-            axisConfig = populateAxisConfiguration(configStream);
-        } finally {
+            InputStream configStream = axis2Url.openStream();
             try {
+                axisConfig = populateAxisConfiguration(configStream);
+            } finally {
                 configStream.close();
-            } catch (IOException ex) {
-                throw AxisFault.makeFault(ex);
             }
-        }
-        try {
-            loadRepositoryFromURL(new URL(Loader.getResource("org/apache/axis2/transport/repo/__root__"), "."));
-        } catch (MalformedURLException ex) {
+            loadRepositoryFromURL(new URL(axis2Url, "."));
+        } catch (IOException ex) {
             throw AxisFault.makeFault(ex);
         }
         axisConfig.setConfigurator(this);
diff --git a/modules/transport/testkit/src/main/java/org/apache/axis2/transport/testkit/axis2/LogAspect.java b/modules/transport/testkit/src/main/java/org/apache/axis2/transport/testkit/axis2/LogAspect.java
index f62cccb..06864b1 100644
--- a/modules/transport/testkit/src/main/java/org/apache/axis2/transport/testkit/axis2/LogAspect.java
+++ b/modules/transport/testkit/src/main/java/org/apache/axis2/transport/testkit/axis2/LogAspect.java
@@ -48,12 +48,16 @@
     public void aroundWriteTo(ProceedingJoinPoint proceedingJoinPoint,
             MessageContext msgContext, OMOutputFormat format, OutputStream out, boolean preserve)
             throws Throwable {
-        OutputStream log = LogManager.INSTANCE.createLog("formatter");
-        try {
-            OutputStream tee = new TeeOutputStream(out, log);
-            proceedingJoinPoint.proceed(new Object[] { msgContext, format, tee, preserve });
-        } finally {
-            log.close();
+        if (LogManager.INSTANCE.isLoggingEnabled()) {
+            OutputStream log = LogManager.INSTANCE.createLog("formatter");
+            try {
+                OutputStream tee = new TeeOutputStream(out, log);
+                proceedingJoinPoint.proceed(new Object[] { msgContext, format, tee, preserve });
+            } finally {
+                log.close();
+            }
+        } else {
+            proceedingJoinPoint.proceed();
         }
     }
     
@@ -61,20 +65,22 @@
         pointcut="call(javax.activation.DataSource org.apache.axis2.format.MessageFormatterEx.getDataSource(..))",
         returning="dataSource")
     public void afterGetDataSource(DataSource dataSource) {
-        try {
-            OutputStream out = LogManager.INSTANCE.createLog("formatter");
+        if (LogManager.INSTANCE.isLoggingEnabled()) {
             try {
-                InputStream in = dataSource.getInputStream();
+                OutputStream out = LogManager.INSTANCE.createLog("formatter");
                 try {
-                    IOUtils.copy(in, out);
+                    InputStream in = dataSource.getInputStream();
+                    try {
+                        IOUtils.copy(in, out);
+                    } finally {
+                        in.close();
+                    }
                 } finally {
-                    in.close();
+                    out.close();
                 }
-            } finally {
-                out.close();
+            } catch (Throwable ex) {
+                log.error("Unable to dump message", ex);
             }
-        } catch (Throwable ex) {
-            log.error("Unable to dump message", ex);
         }
     }
     
@@ -83,16 +89,20 @@
             " && args(in, contentType, msgContext)")
     public Object aroundProcessDocument(ProceedingJoinPoint proceedingJoinPoint,
             InputStream in, String contentType, MessageContext msgContext) throws Throwable {
-        InputStream tee;
-        if (in == null) {
-            tee = null;
+        if (LogManager.INSTANCE.isLoggingEnabled()) {
+            InputStream tee;
+            if (in == null) {
+                tee = null;
+            } else {
+                OutputStream log = LogManager.INSTANCE.createLog("builder");
+                // Note: We can't close the log right after the method execution because the
+                //       message builder may use streaming. LogManager will take care of closing the
+                //       log for us if anything goes wrong.
+                tee = new TeeInputStream(in, log, true);
+            }
+            return proceedingJoinPoint.proceed(new Object[] { tee, contentType, msgContext });
         } else {
-            OutputStream log = LogManager.INSTANCE.createLog("builder");
-            // Note: We can't close the log right after the method execution because the
-            //       message builder may use streaming. LogManager will take care of closing the
-            //       log for us if anything goes wrong.
-            tee = new TeeInputStream(in, log, true);
+            return proceedingJoinPoint.proceed();
         }
-        return proceedingJoinPoint.proceed(new Object[] { tee, contentType, msgContext });
     }
 }
diff --git a/modules/transport/testkit/src/main/java/org/apache/axis2/transport/testkit/axis2/client/AxisAsyncTestClient.java b/modules/transport/testkit/src/main/java/org/apache/axis2/transport/testkit/axis2/client/AxisAsyncTestClient.java
index c1a9423..3ca0ecd 100644
--- a/modules/transport/testkit/src/main/java/org/apache/axis2/transport/testkit/axis2/client/AxisAsyncTestClient.java
+++ b/modules/transport/testkit/src/main/java/org/apache/axis2/transport/testkit/axis2/client/AxisAsyncTestClient.java
@@ -19,8 +19,7 @@
 
 package org.apache.axis2.transport.testkit.axis2.client;
 
-import javax.mail.internet.ContentType;
-
+import org.apache.axiom.mime.ContentType;
 import org.apache.axis2.client.ServiceClient;
 import org.apache.axis2.transport.testkit.client.AsyncTestClient;
 import org.apache.axis2.transport.testkit.client.ClientOptions;
diff --git a/modules/transport/testkit/src/main/java/org/apache/axis2/transport/testkit/axis2/client/AxisRequestResponseTestClient.java b/modules/transport/testkit/src/main/java/org/apache/axis2/transport/testkit/axis2/client/AxisRequestResponseTestClient.java
index c0dc1fb..2e98df8 100644
--- a/modules/transport/testkit/src/main/java/org/apache/axis2/transport/testkit/axis2/client/AxisRequestResponseTestClient.java
+++ b/modules/transport/testkit/src/main/java/org/apache/axis2/transport/testkit/axis2/client/AxisRequestResponseTestClient.java
@@ -19,10 +19,9 @@
 
 package org.apache.axis2.transport.testkit.axis2.client;
 
-import javax.mail.internet.ContentType;
-
 import junit.framework.Assert;
 
+import org.apache.axiom.mime.ContentType;
 import org.apache.axis2.client.ServiceClient;
 import org.apache.axis2.context.MessageContext;
 import org.apache.axis2.transport.testkit.axis2.MessageContextValidator;
diff --git a/modules/transport/testkit/src/main/java/org/apache/axis2/transport/testkit/axis2/client/AxisTestClient.java b/modules/transport/testkit/src/main/java/org/apache/axis2/transport/testkit/axis2/client/AxisTestClient.java
index bd6ace1..e5991c8 100644
--- a/modules/transport/testkit/src/main/java/org/apache/axis2/transport/testkit/axis2/client/AxisTestClient.java
+++ b/modules/transport/testkit/src/main/java/org/apache/axis2/transport/testkit/axis2/client/AxisTestClient.java
@@ -19,13 +19,13 @@
 
 package org.apache.axis2.transport.testkit.axis2.client;
 
-import javax.mail.internet.ContentType;
 import javax.xml.namespace.QName;
 
 import junit.framework.Assert;
 import junit.framework.AssertionFailedError;
 
 import org.apache.axiom.attachments.Attachments;
+import org.apache.axiom.mime.ContentType;
 import org.apache.axis2.Constants;
 import org.apache.axis2.client.OperationClient;
 import org.apache.axis2.client.Options;
@@ -44,7 +44,6 @@
 import org.apache.axis2.transport.testkit.tests.Setup;
 import org.apache.axis2.transport.testkit.tests.TearDown;
 import org.apache.axis2.transport.testkit.tests.Transient;
-import org.apache.axis2.transport.testkit.util.ContentTypeUtil;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 
@@ -77,12 +76,12 @@
 
     public ContentType getContentType(ClientOptions options, ContentType contentType) {
         // TODO: this may be incorrect in some cases
+        ContentType.Builder builder = contentType.toBuilder();
         String charset = options.getCharset();
         if (charset == null) {
-            return contentType;
-        } else {
-            return ContentTypeUtil.addCharset(contentType, options.getCharset());
+            builder.setParameter("charset", charset);
         }
+        return builder.build();
     }
 
     public void beforeSend() throws Exception {
diff --git a/modules/transport/testkit/src/main/java/org/apache/axis2/transport/testkit/axis2/client/AxisTestClientContext.java b/modules/transport/testkit/src/main/java/org/apache/axis2/transport/testkit/axis2/client/AxisTestClientContext.java
index a3dad7b..8501a0d 100644
--- a/modules/transport/testkit/src/main/java/org/apache/axis2/transport/testkit/axis2/client/AxisTestClientContext.java
+++ b/modules/transport/testkit/src/main/java/org/apache/axis2/transport/testkit/axis2/client/AxisTestClientContext.java
@@ -35,15 +35,6 @@
 /**
  * Resource maintaining the {@link ConfigurationContext} for {@link AxisTestClient}
  * instances.
- * <p>
- * Dependencies:
- * <dl>
- *   <dt>{@link TransportDescriptionFactory} (1)</dt>
- *   <dd>Used to create transport descriptions.</dd>
- *   <dt>{@link AxisTestClientContextConfigurator} (0..*)</dt>
- *   <dd>Used to determine whether a transport listener is required and to
- *       configure the transport.</dd>
- * </dl>
  */
 public class AxisTestClientContext {
     public static final AxisTestClientContext INSTANCE = new AxisTestClientContext();
diff --git a/modules/transport/testkit/src/main/java/org/apache/axis2/transport/testkit/axis2/client/AxisTestClientContextConfigurator.java b/modules/transport/testkit/src/main/java/org/apache/axis2/transport/testkit/axis2/client/AxisTestClientContextConfigurator.java
index 96598d0..68e896a 100644
--- a/modules/transport/testkit/src/main/java/org/apache/axis2/transport/testkit/axis2/client/AxisTestClientContextConfigurator.java
+++ b/modules/transport/testkit/src/main/java/org/apache/axis2/transport/testkit/axis2/client/AxisTestClientContextConfigurator.java
@@ -22,6 +22,10 @@
 import org.apache.axis2.description.TransportInDescription;
 import org.apache.axis2.description.TransportOutDescription;
 
+/**
+ * Resource used to determine whether a transport listener is required and to configure the
+ * transport.
+ */
 public interface AxisTestClientContextConfigurator {
     /**
      * Determine whether a transport listener is required on client side.
diff --git a/modules/transport/testkit/src/main/java/org/apache/axis2/transport/testkit/axis2/endpoint/ContentTypeServiceConfigurator.java b/modules/transport/testkit/src/main/java/org/apache/axis2/transport/testkit/axis2/endpoint/ContentTypeServiceConfigurator.java
index c48fa63..3d762a4 100644
--- a/modules/transport/testkit/src/main/java/org/apache/axis2/transport/testkit/axis2/endpoint/ContentTypeServiceConfigurator.java
+++ b/modules/transport/testkit/src/main/java/org/apache/axis2/transport/testkit/axis2/endpoint/ContentTypeServiceConfigurator.java
@@ -19,8 +19,7 @@
 
 package org.apache.axis2.transport.testkit.axis2.endpoint;
 
-import javax.mail.internet.ContentType;
-
+import org.apache.axiom.mime.ContentType;
 import org.apache.axis2.description.AxisService;
 import org.apache.axis2.transport.testkit.axis2.AxisServiceConfigurator;
 import org.apache.axis2.transport.testkit.client.ClientOptions;
diff --git a/modules/transport/testkit/src/main/java/org/apache/axis2/transport/testkit/client/AsyncTestClient.java b/modules/transport/testkit/src/main/java/org/apache/axis2/transport/testkit/client/AsyncTestClient.java
index 23c5b91..601ec79 100644
--- a/modules/transport/testkit/src/main/java/org/apache/axis2/transport/testkit/client/AsyncTestClient.java
+++ b/modules/transport/testkit/src/main/java/org/apache/axis2/transport/testkit/client/AsyncTestClient.java
@@ -19,7 +19,7 @@
 
 package org.apache.axis2.transport.testkit.client;
 
-import javax.mail.internet.ContentType;
+import org.apache.axiom.mime.ContentType;
 
 public interface AsyncTestClient<M> extends TestClient {
     void sendMessage(ClientOptions options, ContentType contentType, M message) throws Exception;
diff --git a/modules/transport/testkit/src/main/java/org/apache/axis2/transport/testkit/client/AsyncTestClientAdapter.java b/modules/transport/testkit/src/main/java/org/apache/axis2/transport/testkit/client/AsyncTestClientAdapter.java
index 4ab8dce..22b60f1 100644
--- a/modules/transport/testkit/src/main/java/org/apache/axis2/transport/testkit/client/AsyncTestClientAdapter.java
+++ b/modules/transport/testkit/src/main/java/org/apache/axis2/transport/testkit/client/AsyncTestClientAdapter.java
@@ -19,8 +19,7 @@
 
 package org.apache.axis2.transport.testkit.client;
 
-import javax.mail.internet.ContentType;
-
+import org.apache.axiom.mime.ContentType;
 import org.apache.axis2.transport.testkit.Adapter;
 import org.apache.axis2.transport.testkit.message.MessageEncoder;
 
diff --git a/modules/transport/testkit/src/main/java/org/apache/axis2/transport/testkit/client/ClientOptions.java b/modules/transport/testkit/src/main/java/org/apache/axis2/transport/testkit/client/ClientOptions.java
index 5253cdb..e52c943 100644
--- a/modules/transport/testkit/src/main/java/org/apache/axis2/transport/testkit/client/ClientOptions.java
+++ b/modules/transport/testkit/src/main/java/org/apache/axis2/transport/testkit/client/ClientOptions.java
@@ -19,8 +19,7 @@
 
 package org.apache.axis2.transport.testkit.client;
 
-import javax.mail.internet.ContentType;
-
+import org.apache.axiom.mime.ContentType;
 import org.apache.axiom.util.UIDGenerator;
 
 public class ClientOptions {
diff --git a/modules/transport/testkit/src/main/java/org/apache/axis2/transport/testkit/client/RequestResponseTestClient.java b/modules/transport/testkit/src/main/java/org/apache/axis2/transport/testkit/client/RequestResponseTestClient.java
index 21c22d1..ac52130 100644
--- a/modules/transport/testkit/src/main/java/org/apache/axis2/transport/testkit/client/RequestResponseTestClient.java
+++ b/modules/transport/testkit/src/main/java/org/apache/axis2/transport/testkit/client/RequestResponseTestClient.java
@@ -19,8 +19,7 @@
 
 package org.apache.axis2.transport.testkit.client;
 
-import javax.mail.internet.ContentType;
-
+import org.apache.axiom.mime.ContentType;
 import org.apache.axis2.transport.testkit.message.IncomingMessage;
 
 public interface RequestResponseTestClient<M,N> extends TestClient {
diff --git a/modules/transport/testkit/src/main/java/org/apache/axis2/transport/testkit/client/RequestResponseTestClientAdapter.java b/modules/transport/testkit/src/main/java/org/apache/axis2/transport/testkit/client/RequestResponseTestClientAdapter.java
index 936ae31..1fb0a38 100644
--- a/modules/transport/testkit/src/main/java/org/apache/axis2/transport/testkit/client/RequestResponseTestClientAdapter.java
+++ b/modules/transport/testkit/src/main/java/org/apache/axis2/transport/testkit/client/RequestResponseTestClientAdapter.java
@@ -19,8 +19,7 @@
 
 package org.apache.axis2.transport.testkit.client;
 
-import javax.mail.internet.ContentType;
-
+import org.apache.axiom.mime.ContentType;
 import org.apache.axis2.transport.testkit.Adapter;
 import org.apache.axis2.transport.testkit.message.IncomingMessage;
 import org.apache.axis2.transport.testkit.message.MessageDecoder;
diff --git a/modules/transport/testkit/src/main/java/org/apache/axis2/transport/testkit/client/TestClient.java b/modules/transport/testkit/src/main/java/org/apache/axis2/transport/testkit/client/TestClient.java
index 9a0d195..bef9449 100644
--- a/modules/transport/testkit/src/main/java/org/apache/axis2/transport/testkit/client/TestClient.java
+++ b/modules/transport/testkit/src/main/java/org/apache/axis2/transport/testkit/client/TestClient.java
@@ -19,8 +19,7 @@
 
 package org.apache.axis2.transport.testkit.client;
 
-import javax.mail.internet.ContentType;
-
+import org.apache.axiom.mime.ContentType;
 import org.apache.axis2.transport.testkit.name.Key;
 
 @Key("client")
diff --git a/modules/transport/testkit/src/main/java/org/apache/axis2/transport/testkit/doclet/TestkitJavadocDoclet.java b/modules/transport/testkit/src/main/java/org/apache/axis2/transport/testkit/doclet/TestkitJavadocDoclet.java
index 994df56..036f6d0 100644
--- a/modules/transport/testkit/src/main/java/org/apache/axis2/transport/testkit/doclet/TestkitJavadocDoclet.java
+++ b/modules/transport/testkit/src/main/java/org/apache/axis2/transport/testkit/doclet/TestkitJavadocDoclet.java
@@ -60,7 +60,9 @@
             Resource resource = resourceInfo.getResource(qualifiedName);
             List<Dependency> dependencies = resource == null ? null : resource.getDependencies();
             if (dependencies != null || usedBy != null) {
-                StringBuilder buffer = new StringBuilder(clazz.getRawCommentText());
+                String rawCommentText = clazz.getRawCommentText();
+                StringBuilder buffer = new StringBuilder(
+                        rawCommentText.trim().isEmpty() ? "No documentation available." : rawCommentText);
                 buffer.append("<h2>Resource information</h2>");
                 if (usedBy != null) {
                     buffer.append("This resource is used by: ");
diff --git a/modules/transport/testkit/src/main/java/org/apache/axis2/transport/testkit/endpoint/AsyncEndpointAdapter.java b/modules/transport/testkit/src/main/java/org/apache/axis2/transport/testkit/endpoint/AsyncEndpointAdapter.java
index 23c0fe1..db379c9 100644
--- a/modules/transport/testkit/src/main/java/org/apache/axis2/transport/testkit/endpoint/AsyncEndpointAdapter.java
+++ b/modules/transport/testkit/src/main/java/org/apache/axis2/transport/testkit/endpoint/AsyncEndpointAdapter.java
@@ -19,8 +19,7 @@
 
 package org.apache.axis2.transport.testkit.endpoint;
 
-import javax.mail.internet.ContentType;
-
+import org.apache.axiom.mime.ContentType;
 import org.apache.axis2.transport.testkit.Adapter;
 import org.apache.axis2.transport.testkit.message.IncomingMessage;
 import org.apache.axis2.transport.testkit.message.MessageDecoder;
diff --git a/modules/transport/testkit/src/main/java/org/apache/axis2/transport/testkit/endpoint/InOnlyEndpointSupport.java b/modules/transport/testkit/src/main/java/org/apache/axis2/transport/testkit/endpoint/InOnlyEndpointSupport.java
index 8c0a046..15bc747 100644
--- a/modules/transport/testkit/src/main/java/org/apache/axis2/transport/testkit/endpoint/InOnlyEndpointSupport.java
+++ b/modules/transport/testkit/src/main/java/org/apache/axis2/transport/testkit/endpoint/InOnlyEndpointSupport.java
@@ -23,8 +23,7 @@
 import java.util.concurrent.LinkedBlockingQueue;
 import java.util.concurrent.TimeUnit;
 
-import javax.mail.internet.ContentType;
-
+import org.apache.axiom.mime.ContentType;
 import org.apache.axis2.transport.testkit.message.IncomingMessage;
 
 public class InOnlyEndpointSupport<M> {
diff --git a/modules/transport/testkit/src/main/java/org/apache/axis2/transport/testkit/http/JavaNetClient.java b/modules/transport/testkit/src/main/java/org/apache/axis2/transport/testkit/http/JavaNetClient.java
index fcafc12..1768e93 100644
--- a/modules/transport/testkit/src/main/java/org/apache/axis2/transport/testkit/http/JavaNetClient.java
+++ b/modules/transport/testkit/src/main/java/org/apache/axis2/transport/testkit/http/JavaNetClient.java
@@ -26,8 +26,8 @@
 import java.net.URL;
 import java.net.URLConnection;
 
-import javax.mail.internet.ContentType;
-
+import org.apache.axiom.mime.ContentType;
+import org.apache.axiom.mime.MediaType;
 import org.apache.axis2.transport.testkit.client.AsyncTestClient;
 import org.apache.axis2.transport.testkit.client.ClientOptions;
 import org.apache.axis2.transport.testkit.name.Name;
@@ -60,7 +60,7 @@
             connection.setDoOutput(true);
             connection.setDoInput(true);
             connection.setRequestProperty("Content-Type", contentType.toString());
-            if(contentType.getBaseType().equals("text/xml")){
+            if(contentType.getMediaType().equals(MediaType.TEXT_XML)){
                 connection.setRequestProperty("SOAPAction", "");
             }
             OutputStream out = connection.getOutputStream();
diff --git a/modules/transport/testkit/src/main/java/org/apache/axis2/transport/testkit/http/JavaNetRESTClient.java b/modules/transport/testkit/src/main/java/org/apache/axis2/transport/testkit/http/JavaNetRESTClient.java
index 9fbc995..d042aee 100644
--- a/modules/transport/testkit/src/main/java/org/apache/axis2/transport/testkit/http/JavaNetRESTClient.java
+++ b/modules/transport/testkit/src/main/java/org/apache/axis2/transport/testkit/http/JavaNetRESTClient.java
@@ -23,8 +23,7 @@
 import java.net.URL;
 import java.net.URLConnection;
 
-import javax.mail.internet.ContentType;
-
+import org.apache.axiom.mime.ContentType;
 import org.apache.axis2.transport.testkit.client.AsyncTestClient;
 import org.apache.axis2.transport.testkit.client.ClientOptions;
 import org.apache.axis2.transport.testkit.message.RESTMessage;
diff --git a/modules/transport/testkit/src/main/java/org/apache/axis2/transport/testkit/http/JettyByteArrayAsyncEndpoint.java b/modules/transport/testkit/src/main/java/org/apache/axis2/transport/testkit/http/JettyByteArrayAsyncEndpoint.java
index b6f0409..92ead40 100644
--- a/modules/transport/testkit/src/main/java/org/apache/axis2/transport/testkit/http/JettyByteArrayAsyncEndpoint.java
+++ b/modules/transport/testkit/src/main/java/org/apache/axis2/transport/testkit/http/JettyByteArrayAsyncEndpoint.java
@@ -23,11 +23,10 @@
 import java.io.OutputStream;
 import java.io.OutputStreamWriter;
 import java.io.PrintWriter;
+import java.text.ParseException;
 import java.util.Enumeration;
 
-import javax.mail.internet.ContentType;
-import javax.mail.internet.ParseException;
-
+import org.apache.axiom.mime.ContentType;
 import org.apache.axis2.transport.testkit.message.IncomingMessage;
 import org.apache.axis2.transport.testkit.tests.Setup;
 import org.apache.axis2.transport.testkit.tests.Transient;
diff --git a/modules/transport/testkit/src/main/java/org/apache/axis2/transport/testkit/message/IncomingMessage.java b/modules/transport/testkit/src/main/java/org/apache/axis2/transport/testkit/message/IncomingMessage.java
index 26e1ee8..ae8b946 100644
--- a/modules/transport/testkit/src/main/java/org/apache/axis2/transport/testkit/message/IncomingMessage.java
+++ b/modules/transport/testkit/src/main/java/org/apache/axis2/transport/testkit/message/IncomingMessage.java
@@ -19,7 +19,7 @@
 
 package org.apache.axis2.transport.testkit.message;
 
-import javax.mail.internet.ContentType;
+import org.apache.axiom.mime.ContentType;
 
 public class IncomingMessage<M> {
     private final ContentType contentType;
diff --git a/modules/transport/testkit/src/main/java/org/apache/axis2/transport/testkit/message/MessageDecoder.java b/modules/transport/testkit/src/main/java/org/apache/axis2/transport/testkit/message/MessageDecoder.java
index de6e702..167e78a 100644
--- a/modules/transport/testkit/src/main/java/org/apache/axis2/transport/testkit/message/MessageDecoder.java
+++ b/modules/transport/testkit/src/main/java/org/apache/axis2/transport/testkit/message/MessageDecoder.java
@@ -27,11 +27,11 @@
 import java.util.List;
 
 import javax.activation.DataHandler;
-import javax.mail.internet.ContentType;
 
 import junit.framework.Assert;
 
 import org.apache.axiom.attachments.Attachments;
+import org.apache.axiom.mime.ContentType;
 import org.apache.axiom.om.OMElement;
 import org.apache.axiom.om.OMNode;
 import org.apache.axiom.om.OMText;
diff --git a/modules/transport/testkit/src/main/java/org/apache/axis2/transport/testkit/message/MessageEncoder.java b/modules/transport/testkit/src/main/java/org/apache/axis2/transport/testkit/message/MessageEncoder.java
index eede937..ea103ff 100644
--- a/modules/transport/testkit/src/main/java/org/apache/axis2/transport/testkit/message/MessageEncoder.java
+++ b/modules/transport/testkit/src/main/java/org/apache/axis2/transport/testkit/message/MessageEncoder.java
@@ -24,10 +24,10 @@
 import java.io.StringWriter;
 
 import javax.activation.DataHandler;
-import javax.mail.internet.ContentType;
 
 import org.apache.axiom.attachments.Attachments;
 import org.apache.axiom.attachments.ByteArrayDataSource;
+import org.apache.axiom.mime.ContentType;
 import org.apache.axiom.om.OMAbstractFactory;
 import org.apache.axiom.om.OMElement;
 import org.apache.axiom.om.OMOutputFormat;
@@ -37,7 +37,6 @@
 import org.apache.axiom.soap.SOAPFactory;
 import org.apache.axis2.transport.base.BaseConstants;
 import org.apache.axis2.transport.testkit.client.ClientOptions;
-import org.apache.axis2.transport.testkit.util.ContentTypeUtil;
 
 public interface MessageEncoder<T,U> {
     MessageEncoder<XMLMessage,AxisMessage> XML_TO_AXIS =
@@ -71,13 +70,13 @@
         new MessageEncoder<XMLMessage,byte[]>() {
 
         public ContentType getContentType(ClientOptions options, ContentType contentType) throws Exception {
-            if (contentType.getBaseType().equals(XMLMessage.Type.SWA.getContentType().getBaseType())) {
+            if (contentType.getMediaType().equals(XMLMessage.Type.SWA.getContentType())) {
                 OMOutputFormat outputFormat = new OMOutputFormat();
                 outputFormat.setMimeBoundary(options.getMimeBoundary());
                 outputFormat.setRootContentId(options.getRootContentId());
                 return new ContentType(outputFormat.getContentTypeForSwA(SOAP12Constants.SOAP_12_CONTENT_TYPE));
             } else {
-                return ContentTypeUtil.addCharset(contentType, options.getCharset());
+                return contentType.toBuilder().setParameter("charset", options.getCharset()).build();
             }
         }
 
@@ -169,7 +168,7 @@
         new MessageEncoder<String,byte[]>() {
 
         public ContentType getContentType(ClientOptions options, ContentType contentType) {
-            return ContentTypeUtil.addCharset(contentType, options.getCharset());
+            return contentType.toBuilder().setParameter("charset", options.getCharset()).build();
         }
 
         public byte[] encode(ClientOptions options, String message) throws Exception {
diff --git a/modules/transport/testkit/src/main/java/org/apache/axis2/transport/testkit/message/XMLMessage.java b/modules/transport/testkit/src/main/java/org/apache/axis2/transport/testkit/message/XMLMessage.java
index a7503ed..fd3ef98 100644
--- a/modules/transport/testkit/src/main/java/org/apache/axis2/transport/testkit/message/XMLMessage.java
+++ b/modules/transport/testkit/src/main/java/org/apache/axis2/transport/testkit/message/XMLMessage.java
@@ -19,37 +19,29 @@
 
 package org.apache.axis2.transport.testkit.message;
 
-import javax.mail.internet.ContentType;
-import javax.mail.internet.ParseException;
-
 import org.apache.axiom.attachments.Attachments;
+import org.apache.axiom.mime.ContentType;
+import org.apache.axiom.mime.MediaType;
 import org.apache.axiom.om.OMAbstractFactory;
 import org.apache.axiom.om.OMElement;
-import org.apache.axiom.soap.SOAP11Constants;
-import org.apache.axiom.soap.SOAP12Constants;
 import org.apache.axiom.soap.SOAPEnvelope;
 import org.apache.axiom.soap.SOAPFactory;
-import org.apache.axis2.transport.http.HTTPConstants;
 
 public class XMLMessage {
     public enum Type {
-        SOAP11(SOAP11Constants.SOAP_11_CONTENT_TYPE),
-        SOAP12(SOAP12Constants.SOAP_12_CONTENT_TYPE),
-        POX("application/xml"),
-        SWA(HTTPConstants.MEDIA_TYPE_MULTIPART_RELATED);
+        SOAP11(MediaType.TEXT_XML),
+        SOAP12(MediaType.APPLICATION_SOAP_XML),
+        POX(MediaType.APPLICATION_XML),
+        SWA(MediaType.MULTIPART_RELATED);
         
-        private final String contentType;
+        private final MediaType contentType;
         
-        private Type(String contentType) {
+        private Type(MediaType contentType) {
             this.contentType = contentType;
         }
         
-        public ContentType getContentType() {
-            try {
-                return new ContentType(contentType);
-            } catch (ParseException ex) {
-                throw new Error(ex);
-            }
+        public MediaType getContentType() {
+            return contentType;
         }
     }
     
@@ -96,10 +88,10 @@
     }
     
     public static Type getTypeFromContentType(ContentType contentType) {
-        String baseType = contentType.getBaseType();
+        MediaType baseType = contentType.getMediaType();
         Type type = null;
         for (Type candidate : Type.values()) {
-            if (candidate.getContentType().getBaseType().equalsIgnoreCase(baseType)) {
+            if (candidate.getContentType().equals(baseType)) {
                 type = candidate;
                 break;
             }
diff --git a/modules/transport/testkit/src/main/java/org/apache/axis2/transport/testkit/tests/MessageTestCase.java b/modules/transport/testkit/src/main/java/org/apache/axis2/transport/testkit/tests/MessageTestCase.java
index d0deb9d..0771b80 100644
--- a/modules/transport/testkit/src/main/java/org/apache/axis2/transport/testkit/tests/MessageTestCase.java
+++ b/modules/transport/testkit/src/main/java/org/apache/axis2/transport/testkit/tests/MessageTestCase.java
@@ -19,8 +19,7 @@
 
 package org.apache.axis2.transport.testkit.tests;
 
-import javax.mail.internet.ContentType;
-
+import org.apache.axiom.mime.ContentType;
 import org.apache.axis2.transport.testkit.Adapter;
 import org.apache.axis2.transport.testkit.MessageExchangeValidator;
 import org.apache.axis2.transport.testkit.client.ClientOptions;
diff --git a/modules/transport/testkit/src/main/java/org/apache/axis2/transport/testkit/tests/async/AsyncMessageTestCase.java b/modules/transport/testkit/src/main/java/org/apache/axis2/transport/testkit/tests/async/AsyncMessageTestCase.java
index 8e11d84..cc3928d 100644
--- a/modules/transport/testkit/src/main/java/org/apache/axis2/transport/testkit/tests/async/AsyncMessageTestCase.java
+++ b/modules/transport/testkit/src/main/java/org/apache/axis2/transport/testkit/tests/async/AsyncMessageTestCase.java
@@ -19,8 +19,7 @@
 
 package org.apache.axis2.transport.testkit.tests.async;
 
-import javax.mail.internet.ContentType;
-
+import org.apache.axiom.mime.ContentType;
 import org.apache.axis2.transport.testkit.channel.AsyncChannel;
 import org.apache.axis2.transport.testkit.client.AsyncTestClient;
 import org.apache.axis2.transport.testkit.endpoint.AsyncEndpoint;
diff --git a/modules/transport/testkit/src/main/java/org/apache/axis2/transport/testkit/tests/async/BinaryTestCase.java b/modules/transport/testkit/src/main/java/org/apache/axis2/transport/testkit/tests/async/BinaryTestCase.java
index d58a724..b53e54d 100644
--- a/modules/transport/testkit/src/main/java/org/apache/axis2/transport/testkit/tests/async/BinaryTestCase.java
+++ b/modules/transport/testkit/src/main/java/org/apache/axis2/transport/testkit/tests/async/BinaryTestCase.java
@@ -22,8 +22,8 @@
 import java.util.Arrays;
 import java.util.Random;
 
-import javax.mail.internet.ContentType;
-
+import org.apache.axiom.mime.ContentType;
+import org.apache.axiom.mime.MediaType;
 import org.apache.axis2.transport.testkit.channel.AsyncChannel;
 import org.apache.axis2.transport.testkit.client.AsyncTestClient;
 import org.apache.axis2.transport.testkit.endpoint.AsyncEndpoint;
@@ -34,7 +34,7 @@
     private static final Random random = new Random();
     
     public BinaryTestCase(AsyncChannel channel, AsyncTestClient<byte[]> client, AsyncEndpoint<byte[]> endpoint, Object... resources) {
-        super(channel, client, endpoint, new ContentType("application", "octet-stream", null), null, resources);
+        super(channel, client, endpoint, new ContentType(MediaType.APPLICATION_OCTET_STREAM), null, resources);
     }
     
     @Override
diff --git a/modules/transport/testkit/src/main/java/org/apache/axis2/transport/testkit/tests/async/LargeSOAPAsyncMessageTestCase.java b/modules/transport/testkit/src/main/java/org/apache/axis2/transport/testkit/tests/async/LargeSOAPAsyncMessageTestCase.java
index 0c3a9c9..da2e6ac 100644
--- a/modules/transport/testkit/src/main/java/org/apache/axis2/transport/testkit/tests/async/LargeSOAPAsyncMessageTestCase.java
+++ b/modules/transport/testkit/src/main/java/org/apache/axis2/transport/testkit/tests/async/LargeSOAPAsyncMessageTestCase.java
@@ -23,6 +23,7 @@
 
 import javax.xml.namespace.QName;
 
+import org.apache.axiom.mime.ContentType;
 import org.apache.axiom.om.OMAbstractFactory;
 import org.apache.axiom.om.OMElement;
 import org.apache.axiom.om.OMFactory;
@@ -36,7 +37,7 @@
 // TODO: maybe we should use XMLUnit to construct these kind of tests
 public class LargeSOAPAsyncMessageTestCase extends AsyncMessageTestCase<XMLMessage> {
     public LargeSOAPAsyncMessageTestCase(AsyncChannel channel, AsyncTestClient<XMLMessage> client, AsyncEndpoint<XMLMessage> endpoint, Object... resources) {
-        super(channel, client, endpoint, XMLMessage.Type.SOAP11.getContentType(), "UTF-8", resources);
+        super(channel, client, endpoint, new ContentType(XMLMessage.Type.SOAP11.getContentType()), "UTF-8", resources);
     }
     
     @Override
diff --git a/modules/transport/testkit/src/main/java/org/apache/axis2/transport/testkit/tests/async/SwATestCase.java b/modules/transport/testkit/src/main/java/org/apache/axis2/transport/testkit/tests/async/SwATestCase.java
index 932e392..39f5d11 100644
--- a/modules/transport/testkit/src/main/java/org/apache/axis2/transport/testkit/tests/async/SwATestCase.java
+++ b/modules/transport/testkit/src/main/java/org/apache/axis2/transport/testkit/tests/async/SwATestCase.java
@@ -28,6 +28,7 @@
 
 import org.apache.axiom.attachments.Attachments;
 import org.apache.axiom.attachments.ByteArrayDataSource;
+import org.apache.axiom.mime.ContentType;
 import org.apache.axiom.om.OMAbstractFactory;
 import org.apache.axiom.om.OMElement;
 import org.apache.axiom.om.OMFactory;
@@ -46,7 +47,7 @@
     private String contentID;
     
     public SwATestCase(AsyncChannel channel, AsyncTestClient<XMLMessage> client, AsyncEndpoint<XMLMessage> endpoint, Object... resources) {
-        super(channel, client, endpoint, XMLMessage.Type.SWA.getContentType(), "UTF-8", resources);
+        super(channel, client, endpoint, new ContentType(XMLMessage.Type.SWA.getContentType()), "UTF-8", resources);
     }
     
     @Override
diff --git a/modules/transport/testkit/src/main/java/org/apache/axis2/transport/testkit/tests/async/TextPlainTestCase.java b/modules/transport/testkit/src/main/java/org/apache/axis2/transport/testkit/tests/async/TextPlainTestCase.java
index 357ab6c..760f2b3 100644
--- a/modules/transport/testkit/src/main/java/org/apache/axis2/transport/testkit/tests/async/TextPlainTestCase.java
+++ b/modules/transport/testkit/src/main/java/org/apache/axis2/transport/testkit/tests/async/TextPlainTestCase.java
@@ -19,8 +19,8 @@
 
 package org.apache.axis2.transport.testkit.tests.async;
 
-import javax.mail.internet.ContentType;
-
+import org.apache.axiom.mime.ContentType;
+import org.apache.axiom.mime.MediaType;
 import org.apache.axis2.transport.testkit.MessageTestData;
 import org.apache.axis2.transport.testkit.channel.AsyncChannel;
 import org.apache.axis2.transport.testkit.client.AsyncTestClient;
@@ -33,7 +33,7 @@
     private final MessageTestData data;
     
     public TextPlainTestCase(AsyncChannel channel, AsyncTestClient<String> client, AsyncEndpoint<String> endpoint, MessageTestData data, Object... resources) {
-        super(channel, client, endpoint, new ContentType("text", "plain", null), data.getCharset(), resources);
+        super(channel, client, endpoint, new ContentType(MediaType.TEXT_PLAIN), data.getCharset(), resources);
         this.data = data;
     }
     
diff --git a/modules/transport/testkit/src/main/java/org/apache/axis2/transport/testkit/tests/async/XMLAsyncMessageTestCase.java b/modules/transport/testkit/src/main/java/org/apache/axis2/transport/testkit/tests/async/XMLAsyncMessageTestCase.java
index 441fa81..00543d9 100644
--- a/modules/transport/testkit/src/main/java/org/apache/axis2/transport/testkit/tests/async/XMLAsyncMessageTestCase.java
+++ b/modules/transport/testkit/src/main/java/org/apache/axis2/transport/testkit/tests/async/XMLAsyncMessageTestCase.java
@@ -21,6 +21,7 @@
 
 import javax.xml.namespace.QName;
 
+import org.apache.axiom.mime.ContentType;
 import org.apache.axiom.om.OMAbstractFactory;
 import org.apache.axiom.om.OMElement;
 import org.apache.axiom.om.OMFactory;
@@ -39,7 +40,7 @@
     private final MessageTestData data;
     
     public XMLAsyncMessageTestCase(AsyncChannel channel, AsyncTestClient<XMLMessage> client, AsyncEndpoint<XMLMessage> endpoint, XMLMessage.Type xmlMessageType, MessageTestData data, Object... resources) {
-        super(channel, client, endpoint, xmlMessageType.getContentType(), data.getCharset(), resources);
+        super(channel, client, endpoint, new ContentType(xmlMessageType.getContentType()), data.getCharset(), resources);
         this.xmlMessageType = xmlMessageType;
         this.data = data;
     }
diff --git a/modules/transport/testkit/src/main/java/org/apache/axis2/transport/testkit/tests/echo/RequestResponseMessageTestCase.java b/modules/transport/testkit/src/main/java/org/apache/axis2/transport/testkit/tests/echo/RequestResponseMessageTestCase.java
index e16875c..d148a0f 100644
--- a/modules/transport/testkit/src/main/java/org/apache/axis2/transport/testkit/tests/echo/RequestResponseMessageTestCase.java
+++ b/modules/transport/testkit/src/main/java/org/apache/axis2/transport/testkit/tests/echo/RequestResponseMessageTestCase.java
@@ -19,8 +19,7 @@
 
 package org.apache.axis2.transport.testkit.tests.echo;
 
-import javax.mail.internet.ContentType;
-
+import org.apache.axiom.mime.ContentType;
 import org.apache.axis2.transport.testkit.channel.RequestResponseChannel;
 import org.apache.axis2.transport.testkit.client.RequestResponseTestClient;
 import org.apache.axis2.transport.testkit.endpoint.InOutEndpoint;
diff --git a/modules/transport/testkit/src/main/java/org/apache/axis2/transport/testkit/tests/echo/XMLRequestResponseMessageTestCase.java b/modules/transport/testkit/src/main/java/org/apache/axis2/transport/testkit/tests/echo/XMLRequestResponseMessageTestCase.java
index d2fe751..c44ef24 100644
--- a/modules/transport/testkit/src/main/java/org/apache/axis2/transport/testkit/tests/echo/XMLRequestResponseMessageTestCase.java
+++ b/modules/transport/testkit/src/main/java/org/apache/axis2/transport/testkit/tests/echo/XMLRequestResponseMessageTestCase.java
@@ -21,6 +21,7 @@
 
 import javax.xml.namespace.QName;
 
+import org.apache.axiom.mime.ContentType;
 import org.apache.axiom.om.OMAbstractFactory;
 import org.apache.axiom.om.OMElement;
 import org.apache.axiom.om.OMFactory;
@@ -39,7 +40,7 @@
     private final MessageTestData data;
     
     public XMLRequestResponseMessageTestCase(RequestResponseChannel channel, RequestResponseTestClient<XMLMessage,XMLMessage> client, InOutEndpoint endpoint, XMLMessage.Type xmlMessageType, MessageTestData data, Object... resources) {
-        super(channel, client, endpoint, xmlMessageType.getContentType(), data.getCharset(), resources);
+        super(channel, client, endpoint, new ContentType(xmlMessageType.getContentType()), data.getCharset(), resources);
         this.xmlMessageType = xmlMessageType;
         this.data = data;
     }
diff --git a/modules/transport/testkit/src/main/java/org/apache/axis2/transport/testkit/tests/misc/MinConcurrencyTest.java b/modules/transport/testkit/src/main/java/org/apache/axis2/transport/testkit/tests/misc/MinConcurrencyTest.java
index a061e13..157057a 100644
--- a/modules/transport/testkit/src/main/java/org/apache/axis2/transport/testkit/tests/misc/MinConcurrencyTest.java
+++ b/modules/transport/testkit/src/main/java/org/apache/axis2/transport/testkit/tests/misc/MinConcurrencyTest.java
@@ -22,9 +22,9 @@
 import java.util.concurrent.CountDownLatch;
 import java.util.concurrent.TimeUnit;
 
-import javax.mail.internet.ContentType;
 import javax.xml.namespace.QName;
 
+import org.apache.axiom.mime.ContentType;
 import org.apache.axiom.om.OMAbstractFactory;
 import org.apache.axiom.soap.SOAP11Constants;
 import org.apache.axiom.soap.SOAPEnvelope;
diff --git a/modules/transport/testkit/src/main/java/org/apache/axis2/transport/testkit/util/ContentTypeUtil.java b/modules/transport/testkit/src/main/java/org/apache/axis2/transport/testkit/util/ContentTypeUtil.java
deleted file mode 100644
index abab74b..0000000
--- a/modules/transport/testkit/src/main/java/org/apache/axis2/transport/testkit/util/ContentTypeUtil.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- *  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing,
- *  software distributed under the License is distributed on an
- *   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *  KIND, either express or implied.  See the License for the
- *  specific language governing permissions and limitations
- *  under the License.
- */
-
-package org.apache.axis2.transport.testkit.util;
-
-import java.util.Enumeration;
-
-import javax.mail.internet.ContentType;
-import javax.mail.internet.ParameterList;
-
-public class ContentTypeUtil {
-    private ContentTypeUtil() {}
-    
-    public static ContentType addCharset(ContentType contentType, String charset) {
-        ParameterList orgParamList = contentType.getParameterList();
-        ParameterList paramList = new ParameterList();
-        if (orgParamList != null) {
-            for (Enumeration<?> e = orgParamList.getNames(); e.hasMoreElements(); ) {
-                String name = (String)e.nextElement();
-                paramList.set(name, orgParamList.get(name));
-            }
-        }
-        paramList.set("charset", charset);
-        return new ContentType(contentType.getPrimaryType(), contentType.getSubType(), paramList);
-    }
-    
-    public static ContentType removeCharset(ContentType contentType) {
-        ParameterList orgParamList = contentType.getParameterList();
-        ParameterList paramList = new ParameterList();
-        for (Enumeration<?> e = orgParamList.getNames(); e.hasMoreElements(); ) {
-            String name = (String)e.nextElement();
-            if (!name.equalsIgnoreCase("charset")) {
-                paramList.set(name, orgParamList.get(name));
-            }
-        }
-        return new ContentType(contentType.getPrimaryType(), contentType.getSubType(), paramList);
-    }
-}
diff --git a/modules/transport/testkit/src/main/java/org/apache/axis2/transport/testkit/util/LogManager.java b/modules/transport/testkit/src/main/java/org/apache/axis2/transport/testkit/util/LogManager.java
index 1fd68ff..1017e95 100644
--- a/modules/transport/testkit/src/main/java/org/apache/axis2/transport/testkit/util/LogManager.java
+++ b/modules/transport/testkit/src/main/java/org/apache/axis2/transport/testkit/util/LogManager.java
@@ -70,6 +70,10 @@
         }
     }
     
+    public synchronized boolean isLoggingEnabled() {
+        return testCaseDir != null;
+    }
+    
     public synchronized OutputStream createLog(String name) throws IOException {
         testCaseDir.mkdirs();
         OutputStream log = new FileOutputStream(new File(testCaseDir, StringUtils.leftPad(String.valueOf(sequence++), 2, '0') + "-" + name + ".log"));
diff --git a/modules/transport/testkit/src/main/resources/org/apache/axis2/transport/repo/__root__ b/modules/transport/testkit/src/main/resources/org/apache/axis2/transport/repo/__root__
deleted file mode 100644
index e69de29..0000000
--- a/modules/transport/testkit/src/main/resources/org/apache/axis2/transport/repo/__root__
+++ /dev/null
diff --git a/modules/transport/testkit/src/main/resources/org/apache/axis2/transport/repo/modules/modules.list b/modules/transport/testkit/src/main/resources/org/apache/axis2/transport/repo/modules/modules.list
deleted file mode 100644
index 242a880..0000000
--- a/modules/transport/testkit/src/main/resources/org/apache/axis2/transport/repo/modules/modules.list
+++ /dev/null
@@ -1 +0,0 @@
-addressing.mar
diff --git a/modules/transport/udp/pom.xml b/modules/transport/udp/pom.xml
index eb2a867..ae9c7ac 100644
--- a/modules/transport/udp/pom.xml
+++ b/modules/transport/udp/pom.xml
@@ -23,9 +23,9 @@
     <modelVersion>4.0.0</modelVersion>
     <parent>
         <groupId>org.apache.axis2</groupId>
-        <artifactId>axis2-parent</artifactId>
-        <version>1.7.0-SNAPSHOT</version>
-        <relativePath>../../parent/pom.xml</relativePath>
+        <artifactId>axis2</artifactId>
+        <version>1.8.0-SNAPSHOT</version>
+        <relativePath>../../../pom.xml</relativePath>
     </parent>
     <artifactId>axis2-transport-udp</artifactId>
     <name>Apache Axis2 - Transport - UDP</name>
@@ -44,7 +44,6 @@
             <plugin>
                 <groupId>org.apache.felix</groupId>
                 <artifactId>maven-bundle-plugin</artifactId>
-                <version>1.4.0</version>
                 <extensions>true</extensions>
                 <configuration>
                     <instructions>
diff --git a/modules/transport/xmpp/pom.xml b/modules/transport/xmpp/pom.xml
index 720709e..4645fbf 100644
--- a/modules/transport/xmpp/pom.xml
+++ b/modules/transport/xmpp/pom.xml
@@ -23,9 +23,9 @@
     <modelVersion>4.0.0</modelVersion>
     <parent>
         <groupId>org.apache.axis2</groupId>
-        <artifactId>axis2-parent</artifactId>
-        <version>1.7.0-SNAPSHOT</version>
-        <relativePath>../../parent/pom.xml</relativePath>
+        <artifactId>axis2</artifactId>
+        <version>1.8.0-SNAPSHOT</version>
+        <relativePath>../../../pom.xml</relativePath>
     </parent>
     <artifactId>axis2-transport-xmpp</artifactId>
     <name>Apache Axis2 - Transport - XMPP</name>
@@ -46,7 +46,6 @@
             <plugin>
                 <groupId>org.apache.felix</groupId>
                 <artifactId>maven-bundle-plugin</artifactId>
-                <version>1.4.0</version>
                 <extensions>true</extensions>
                 <configuration>
                     <instructions>
diff --git a/modules/transport/xmpp/src/org/apache/axis2/transport/xmpp/XMPPListener.java b/modules/transport/xmpp/src/org/apache/axis2/transport/xmpp/XMPPListener.java
index ed81fb9..bf84152 100644
--- a/modules/transport/xmpp/src/org/apache/axis2/transport/xmpp/XMPPListener.java
+++ b/modules/transport/xmpp/src/org/apache/axis2/transport/xmpp/XMPPListener.java
@@ -163,7 +163,7 @@
      * @param ip
      */    
     public EndpointReference[] getEPRsForService(String serviceName, String ip) throws AxisFault {
-    	String domainName = serverCredentials.getDomainName() == null? serverCredentials.getDomainName()
+    	String domainName = serverCredentials.getDomainName() != null? serverCredentials.getDomainName()
     			: serverCredentials.getServerUrl();
         return new EndpointReference[]{new EndpointReference(XMPPConstants.XMPP_PREFIX +
         		serverCredentials.getAccountName() +"@"+ domainName +"/services/" + serviceName)};
@@ -203,4 +203,4 @@
             connectionFactory.listen(xmppPacketListener);
         }	
 	}
-}
\ No newline at end of file
+}
diff --git a/modules/transport/xmpp/src/org/apache/axis2/transport/xmpp/XMPPSender.java b/modules/transport/xmpp/src/org/apache/axis2/transport/xmpp/XMPPSender.java
index 65d648c..55e612c 100644
--- a/modules/transport/xmpp/src/org/apache/axis2/transport/xmpp/XMPPSender.java
+++ b/modules/transport/xmpp/src/org/apache/axis2/transport/xmpp/XMPPSender.java
@@ -47,13 +47,7 @@
 import org.apache.axis2.wsdl.WSDLConstants;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.apache.ws.commons.schema.XmlSchemaAll;
-import org.apache.ws.commons.schema.XmlSchemaComplexType;
-import org.apache.ws.commons.schema.XmlSchemaElement;
-import org.apache.ws.commons.schema.XmlSchemaParticle;
-import org.apache.ws.commons.schema.XmlSchemaSequence;
-import org.apache.ws.commons.schema.XmlSchemaSequenceMember;
-import org.apache.ws.commons.schema.XmlSchemaType;
+import org.apache.ws.commons.schema.*;
 import org.jivesoftware.smack.Chat;
 import org.jivesoftware.smack.ChatManager;
 import org.jivesoftware.smack.XMPPConnection;
@@ -351,8 +345,6 @@
                                     .equals(org.apache.ws.commons.schema.constants.Constants.XSD_ANYTYPE)) {
                                 break;
                             }
-                            long minOccurs = innerElement.getMinOccurs();
-                            boolean nillable = innerElement.isNillable();
                             String name =
                                     qName != null ? qName.getLocalPart() : innerElement.getName();
                             String type = innerElement.getSchemaTypeName().toString();
@@ -360,14 +352,13 @@
                         }
                     }  else {
                         XmlSchemaAll xmlSchemaAll = (XmlSchemaAll) particle;
-                        for (XmlSchemaElement innerElement : xmlSchemaAll.getItems()) {
+                        for (XmlSchemaAllMember member : xmlSchemaAll.getItems()) {
+							XmlSchemaElement innerElement = (XmlSchemaElement) member;
                             QName qName = innerElement.getQName();
                             if (qName == null && innerElement.getSchemaTypeName()
                                     .equals(org.apache.ws.commons.schema.constants.Constants.XSD_ANYTYPE)) {
                                 break;
                             }
-                            long minOccurs = innerElement.getMinOccurs();
-                            boolean nillable = innerElement.isNillable();
                             String name =
                                     qName != null ? qName.getLocalPart() : innerElement.getName();
                             String type = innerElement.getSchemaTypeName().toString();
diff --git a/modules/webapp/conf/axis2.xml b/modules/webapp/conf/axis2.xml
index 5170e6f..9d873d9 100644
--- a/modules/webapp/conf/axis2.xml
+++ b/modules/webapp/conf/axis2.xml
@@ -226,7 +226,7 @@
     <transportSender name="local"
                      class="org.apache.axis2.transport.local.LocalTransportSender"/>
     <transportSender name="http"
-                     class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
+                     class="org.apache.axis2.transport.http.impl.httpclient4.HTTPClient4TransportSender">
         <parameter name="PROTOCOL">HTTP/1.1</parameter>
         <parameter name="Transfer-Encoding">chunked</parameter>
 
@@ -235,7 +235,7 @@
     </transportSender>
 
     <transportSender name="https"
-                     class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
+                     class="org.apache.axis2.transport.http.impl.httpclient4.HTTPClient4TransportSender">
         <parameter name="PROTOCOL">HTTP/1.1</parameter>
         <parameter name="Transfer-Encoding">chunked</parameter>
     </transportSender>
diff --git a/modules/tool/axis2-aar-maven-plugin/src/test/resources/services.xml b/modules/webapp/conf/jetty.xml
similarity index 61%
copy from modules/tool/axis2-aar-maven-plugin/src/test/resources/services.xml
copy to modules/webapp/conf/jetty.xml
index 4b6163a..8d78e0d 100644
--- a/modules/tool/axis2-aar-maven-plugin/src/test/resources/services.xml
+++ b/modules/webapp/conf/jetty.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8"?>
+<?xml version="1.0" encoding="ISO-8859-1"?>
 <!--
   ~ Licensed to the Apache Software Foundation (ASF) under one
   ~ or more contributor license agreements. See the NOTICE file
@@ -17,11 +17,13 @@
   ~ specific language governing permissions and limitations
   ~ under the License.
   -->
-<serviceGroup>
-	<service name="SimpleService">
-		<parameter name="ServiceClass">sample.SimpleService</parameter>
-		<operation name="helloService">
-			<messageReceiver class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" />
-		</operation>
-	</service>
-</serviceGroup>
+<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure.dtd">
+<Configure class="org.eclipse.jetty.webapp.WebAppContext">
+    <Get name="sessionHandler">
+        <Get name="sessionManager">
+            <!-- Disable session cookies so that we can test that the admin console
+                 implements URL rewriting correctly. -->
+            <Set name="usingCookies" type="boolean">false</Set>
+        </Get>
+    </Get>
+</Configure>
diff --git a/modules/webapp/conf/web.xml b/modules/webapp/conf/web.xml
index 1a6af67..32907d3 100644
--- a/modules/webapp/conf/web.xml
+++ b/modules/webapp/conf/web.xml
@@ -19,13 +19,15 @@
   ~ under the License.
   -->
 
-<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
-
-<web-app>
+<web-app xmlns="http://java.sun.com/xml/ns/javaee"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
+                             http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
+         version="2.5">
     <display-name>Apache-Axis2</display-name>
     <servlet>
-        <servlet-name>AxisServlet</servlet-name>
         <display-name>Apache-Axis Servlet</display-name>
+        <servlet-name>AxisServlet</servlet-name>
         <servlet-class>org.apache.axis2.transport.http.AxisServlet</servlet-class>
         <!--<init-param>-->
         <!--<param-name>axis2.xml.path</param-name>-->
@@ -40,15 +42,14 @@
         <load-on-startup>1</load-on-startup>
     </servlet>
     <servlet>
-        <servlet-name>AxisAdminServlet</servlet-name>
         <display-name>Apache-Axis AxisAdmin Servlet (Web Admin)</display-name>
-        <servlet-class>
-            org.apache.axis2.webapp.AxisAdminServlet</servlet-class>
+        <servlet-name>AxisAdminServlet</servlet-name>
+        <servlet-class>org.apache.axis2.webapp.AxisAdminServlet</servlet-class>
     </servlet>
     
     <!-- servlet>
-        <servlet-name>SOAPMonitorService</servlet-name>
         <display-name>SOAPMonitorService</display-name>
+        <servlet-name>SOAPMonitorService</servlet-name>
         <servlet-class>org.apache.axis2.soapmonitor.servlet.SOAPMonitorService</servlet-class>
         <init-param>
             <param-name>SOAPMonitorPort</param-name>
diff --git a/modules/webapp/pom.xml b/modules/webapp/pom.xml
index 2d7408b..ba3eb3b 100644
--- a/modules/webapp/pom.xml
+++ b/modules/webapp/pom.xml
@@ -21,9 +21,9 @@
     <modelVersion>4.0.0</modelVersion>
     <parent>
         <groupId>org.apache.axis2</groupId>
-        <artifactId>axis2-parent</artifactId>
-        <version>1.7.0-SNAPSHOT</version>
-        <relativePath>../parent/pom.xml</relativePath>
+        <artifactId>axis2</artifactId>
+        <version>1.8.0-SNAPSHOT</version>
+        <relativePath>../../pom.xml</relativePath>
     </parent>
     <artifactId>axis2-webapp</artifactId>
     <packaging>war</packaging>
@@ -41,11 +41,6 @@
             <version>${project.version}</version>
         </dependency>
         <dependency>
-            <groupId>org.apache.axis2</groupId>
-            <artifactId>axis2-java2wsdl</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
             <groupId>log4j</groupId>
             <artifactId>log4j</artifactId>
         </dependency>
@@ -127,6 +122,14 @@
             <scope>provided</scope>
         </dependency>
         <dependency>
+            <!-- Not required for the Maven build, but necessary to avoid errors when
+                 importing the project into an IDE. -->
+            <groupId>javax.servlet.jsp</groupId>
+            <artifactId>jsp-api</artifactId>
+            <version>2.0</version>
+            <scope>provided</scope>
+        </dependency>
+        <dependency>
             <groupId>org.apache.axis2</groupId>
             <artifactId>axis2-mtompolicy</artifactId>
             <version>${project.version}</version>
@@ -143,6 +146,55 @@
             <version>${project.version}</version>
         </dependency>
         <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>axis2-transport-jms</artifactId>
+            <version>${project.version}</version>
+            <exclusions>
+                <exclusion>
+                    <groupId>org.apache.geronimo.specs</groupId>
+                    <artifactId>geronimo-jms_1.1_spec</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>org.apache.geronimo.specs</groupId>
+                    <artifactId>geronimo-jta_1.0.1B_spec</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>axis2-transport-mail</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>axis2-transport-tcp</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>axis2-transport-udp</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>axis2-transport-xmpp</artifactId>
+            <version>${project.version}</version>
+            <exclusions>
+                <exclusion>
+                    <groupId>jivesoftware</groupId>
+                    <artifactId>smack</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>jivesoftware</groupId>
+                    <artifactId>smackx</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>commons-lang</groupId>
+                    <artifactId>commons-lang</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
             <groupId>org.apache.axis2</groupId>
             <artifactId>mex</artifactId>
             <version>${project.version}</version>
@@ -154,21 +206,22 @@
             <version>${project.version}</version>
             <type>mar</type>
         </dependency>
-        
-        <!-- Axis2 has always been shipped with Sun's implementations of
-             JavaMail and JAF, although Axiom depends on (and has been tested
-             with) Geronimo's implementations. This should probably reevaluated. -->
         <dependency>
-            <groupId>javax.mail</groupId>
-            <artifactId>mail</artifactId>
-            <version>${javax.mail.version}</version>
+            <groupId>org.apache.taglibs</groupId>
+            <artifactId>taglibs-standard-spec</artifactId>
+            <version>1.2.5</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.taglibs</groupId>
+            <artifactId>taglibs-standard-impl</artifactId>
+            <version>1.2.5</version>
         </dependency>
     </dependencies>
     <build>
         <finalName>axis2-${project.version}</finalName>
         <resources>
             <resource>
-                <directory>../kernel/conf</directory>
+                <directory>${project.build.directory}/kernel/conf</directory>
                 <includes>
                     <include>*.properties</include>
                 </includes>
@@ -209,48 +262,20 @@
             </plugin>
             <plugin>
                 <!-- Compile the JSPs so that syntax errors are detected during the build. -->
-                <groupId>org.codehaus.mojo.jspc</groupId>
-                <artifactId>jspc-maven-plugin</artifactId>
-                <version>2.0-alpha-3</version>
+	        <groupId>org.mortbay.jetty</groupId>
+	        <artifactId>jetty-jspc-maven-plugin</artifactId>
+	        <version>8.1.16.v20140903</version>
                 <executions>
                     <execution>
                         <goals>
-                             <goal>compile</goal>
+                             <goal>jspc</goal>
                         </goals>
                     </execution>
                 </executions>
                 <configuration>
-                    <includeInProject>false</includeInProject>
+                    <!-- We don't want to keep the generated classes; we just want to validate the JSPs -->
+                    <generatedClasses>${project.build.directory}/jspc</generatedClasses>
                 </configuration>
-                <dependencies>
-                    <dependency>
-                        <groupId>org.codehaus.mojo.jspc</groupId>
-                        <artifactId>jspc-compiler-tomcat6</artifactId>
-                        <version>2.0-alpha-3</version>
-                    </dependency>
-                </dependencies>
-            </plugin>
-            <plugin>
-                <artifactId>maven-antrun-plugin</artifactId>
-                <executions>
-                    <execution>
-                        <!-- We only want to validate the JSPs, but not to include the compiled
-                             versions in the project. However, the includeInProject parameter of
-                             the jspc-maven-plugin seems to be broken (the classes are always
-                             compiled to the target/classes folder) and maven-war-plugin doesn't
-                             have an option to exclude specific classes or packages. Therefore
-                             the only way to achieve this is to delete the files after compilation. -->
-                        <phase>process-classes</phase>
-                        <goals>
-                            <goal>run</goal>
-                        </goals>
-                        <configuration>
-                            <tasks>
-                                <delete dir="${project.build.outputDirectory}/jsp" />
-                            </tasks>
-                        </configuration>
-                    </execution>
-                </executions>
             </plugin>
             <plugin>
                 <artifactId>maven-resources-plugin</artifactId>
@@ -276,6 +301,24 @@
                             </resources>              
                         </configuration>            
                     </execution>
+                    <execution>
+                        <id>copy-kernel-conf-properties</id>
+                        <phase>generate-resources</phase>
+                        <goals>
+                            <goal>copy-resources</goal>
+                        </goals>
+                        <configuration>
+                            <outputDirectory>${project.build.directory}/kernel/conf</outputDirectory>
+                            <resources>
+                                <resource>
+                                    <directory>../kernel/conf</directory>
+                                    <includes>
+                                        <include>*.properties</include>
+                                    </includes>
+                                </resource>
+                            </resources>
+                        </configuration>
+                    </execution>
                 </executions>
             </plugin>
             <plugin>
@@ -304,14 +347,10 @@
                     <webXml>conf/web.xml</webXml>
                     <!-- This is basically the same list as in modules/distribution/src/main/assembly/bin-assembly.xml -->
                     <packagingExcludes>
-                        WEB-INF/lib/geronimo-activation_1.1_spec-*.jar,
-                        WEB-INF/lib/geronimo-javamail_1.4_spec-*.jar,
                         WEB-INF/lib/spring-beans-*.jar,
                         WEB-INF/lib/spring-context-*.jar,
                         WEB-INF/lib/spring-core-*.jar,
                         WEB-INF/lib/spring-web-*.jar,
-                        WEB-INF/lib/ant-*.jar,
-                        WEB-INF/lib/ant-launcher-*.jar,
                         WEB-INF/lib/aopalliance-*.jar,
                         WEB-INF/lib/bsf-*.jar,
                         WEB-INF/lib/FastInfoset-*.jar,
@@ -335,15 +374,36 @@
                 </configuration>
             </plugin>
             <plugin>
-                <groupId>org.mortbay.jetty</groupId>
-                <artifactId>maven-jetty-plugin</artifactId>
-                <version>6.1.22</version>
+                <artifactId>maven-jar-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <!-- Attach a JAR with the Webapp classes for use as a dependency in user projects. -->
+                        <goals>
+                            <goal>jar</goal>
+                        </goals>
+                        <configuration>
+                            <classifier>classes</classifier>
+                            <excludes>
+                                <!-- Properties must be copied to target/classes so that they are loaded
+                                     by the Jetty plugin, but we don't want to include them in the JAR.
+                                     Our only option is therefore to exclude them here (which means that we
+                                     can't use the attachClasses property on the maven-war-plugin). -->
+                                <exclude>*.properties</exclude>
+                            </excludes>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+            <plugin>
+                <groupId>org.eclipse.jetty</groupId>
+                <artifactId>jetty-maven-plugin</artifactId>
                 <configuration>
                     <webXml>conf/web.xml</webXml>
+                    <contextXml>conf/jetty.xml</contextXml>
                     <webAppConfig>
                         <contextPath>/axis2</contextPath>
-                        <baseResource implementation="org.mortbay.resource.ResourceCollection">
-                            <resourcesAsCSV>src/main/webapp,${project.build.directory}/webResources</resourcesAsCSV>
+                        <baseResource implementation="org.eclipse.jetty.util.resource.ResourceCollection">
+                            <resourcesAsCSV>${project.build.directory}/webResources,src/main/webapp</resourcesAsCSV>
                         </baseResource>
                     </webAppConfig>
                 </configuration>
diff --git a/modules/webapp/scripts/build.xml b/modules/webapp/scripts/build.xml
index 8ba8ded..c76460e 100644
--- a/modules/webapp/scripts/build.xml
+++ b/modules/webapp/scripts/build.xml
@@ -72,15 +72,21 @@
 		<war destfile="dist/axis2.war" webxml="webapp/WEB-INF/web.xml">
 			<lib dir="lib">
 				<include name="**" />
+				<exclude name="endorsed/**" />
 				<exclude name="**servlet**" />
-				<exclude name="ant*.jar" />
-				<exclude name="axis2-adb-codegen*.jar"/>
+				<exclude name="axis2-ant-plugin-*.jar" />
+				<exclude name="axis2-*-codegen-*.jar"/>
+				<exclude name="axis2-java2wsdl-*.jar"/>
 				<!-- codegen is required for Rampart because of AXIS2-4265 -->
 				<!-- exclude name="axis2-codegen*.jar"/ -->
-				<exclude name="jibx-bind*.jar"/>
+				<exclude name="commons-cli-*.jar" />
+				<exclude name="jibx-bind-*.jar" />
+				<exclude name="bcel-*.jar" />
+				<exclude name="qdox-*.jar" />
 			</lib>
 			<webinf dir="${temp}/WEB-INF" />
 			<fileset dir="${temp}">
+				<include name="org/apache/axis2/soapmonitor/applet/**/*" />
 				<include name="**/axis2-web/**" />
 			</fileset>
 		</war>
diff --git a/modules/kernel/src/org/apache/axis2/classloader/JarStreamHandlerFactory.java b/modules/webapp/src/main/java/org/apache/axis2/webapp/Action.java
similarity index 64%
copy from modules/kernel/src/org/apache/axis2/classloader/JarStreamHandlerFactory.java
copy to modules/webapp/src/main/java/org/apache/axis2/webapp/Action.java
index e32813e..21287c8 100644
--- a/modules/kernel/src/org/apache/axis2/classloader/JarStreamHandlerFactory.java
+++ b/modules/webapp/src/main/java/org/apache/axis2/webapp/Action.java
@@ -16,17 +16,18 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+package org.apache.axis2.webapp;
 
-package org.apache.axis2.classloader;
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
 
-import java.net.URLStreamHandler;
-import java.net.URLStreamHandlerFactory;
-
-public class JarStreamHandlerFactory implements URLStreamHandlerFactory {
-    public URLStreamHandler createURLStreamHandler(String protocol) {
-        if("jar".equalsIgnoreCase(protocol)){
-            return new JarFileUrlStreamHandler();
-        }
-        return null;
-    }
+@Target(ElementType.METHOD)
+@Retention(RetentionPolicy.RUNTIME)
+@interface Action {
+    String name();
+    boolean authorizationRequired() default true;
+    boolean post() default false;
+    boolean sessionCreationAllowed() default false;
 }
diff --git a/modules/webapp/src/main/java/org/apache/axis2/webapp/ActionHandler.java b/modules/webapp/src/main/java/org/apache/axis2/webapp/ActionHandler.java
new file mode 100644
index 0000000..ec63e3a
--- /dev/null
+++ b/modules/webapp/src/main/java/org/apache/axis2/webapp/ActionHandler.java
@@ -0,0 +1,82 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.axis2.webapp;
+
+import java.io.IOException;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpSession;
+
+import org.apache.axis2.Constants;
+
+final class ActionHandler {
+    private final Object target;
+    private final Method method;
+    private final boolean authorizationRequired;
+    private final boolean post;
+    private final boolean sessionCreationAllowed;
+
+    ActionHandler(Object target, Method method, boolean authorizationRequired, boolean post,
+            boolean sessionCreationAllowed) {
+        this.target = target;
+        this.method = method;
+        this.authorizationRequired = authorizationRequired;
+        this.post = post;
+        this.sessionCreationAllowed = sessionCreationAllowed;
+    }
+
+    boolean isMethodAllowed(String method) {
+        return post ? method.equals("POST") : method.equals("GET");
+    }
+
+    boolean isCSRFTokenRequired() {
+        return post && authorizationRequired;
+    }
+
+    boolean isSessionCreationAllowed() {
+        return sessionCreationAllowed;
+    }
+
+    ActionResult handle(HttpServletRequest request, boolean securityEnabled) throws IOException, ServletException {
+        HttpSession session = request.getSession(false);
+        if (securityEnabled && authorizationRequired && (session == null || session.getAttribute(Constants.LOGGED) == null)) {
+            return new Redirect("welcome");
+        } else {
+            try {
+                return (ActionResult)method.invoke(target, request);
+            } catch (IllegalAccessException ex) {
+                throw new ServletException(ex);
+            } catch (IllegalArgumentException ex) {
+                throw new ServletException(ex);
+            } catch (InvocationTargetException ex) {
+                Throwable cause = ex.getCause();
+                if (cause instanceof IOException) {
+                    throw (IOException)cause;
+                } else if (cause instanceof ServletException) {
+                    throw (ServletException)cause;
+                } else {
+                    throw new ServletException(cause);
+                }
+            }
+        }
+    }
+}
diff --git a/modules/transport/local/src/org/apache/axis2/transport/local/NonBlockingLocalTransportSender.java b/modules/webapp/src/main/java/org/apache/axis2/webapp/ActionResult.java
similarity index 68%
copy from modules/transport/local/src/org/apache/axis2/transport/local/NonBlockingLocalTransportSender.java
copy to modules/webapp/src/main/java/org/apache/axis2/webapp/ActionResult.java
index 1576c00..44a2131 100644
--- a/modules/transport/local/src/org/apache/axis2/transport/local/NonBlockingLocalTransportSender.java
+++ b/modules/webapp/src/main/java/org/apache/axis2/webapp/ActionResult.java
@@ -16,13 +16,15 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+package org.apache.axis2.webapp;
 
-package org.apache.axis2.transport.local;
+import java.io.IOException;
 
-public class NonBlockingLocalTransportSender extends LocalTransportSender {
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
 
-    protected boolean isNonBlocking() {
-        return true;
-    }
-
+abstract class ActionResult {
+    abstract void process(HttpServletRequest request, HttpServletResponse response)
+            throws IOException, ServletException;
 }
diff --git a/modules/webapp/src/main/java/org/apache/axis2/webapp/AdminActions.java b/modules/webapp/src/main/java/org/apache/axis2/webapp/AdminActions.java
new file mode 100644
index 0000000..a672178
--- /dev/null
+++ b/modules/webapp/src/main/java/org/apache/axis2/webapp/AdminActions.java
@@ -0,0 +1,630 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.axis2.webapp;
+
+import org.apache.axis2.AxisFault;
+import org.apache.axis2.Constants;
+import org.apache.axis2.context.ConfigurationContext;
+import org.apache.axis2.context.ServiceContext;
+import org.apache.axis2.context.ServiceGroupContext;
+import org.apache.axis2.deployment.util.PhasesInfo;
+import org.apache.axis2.description.AxisDescription;
+import org.apache.axis2.description.AxisModule;
+import org.apache.axis2.description.AxisOperation;
+import org.apache.axis2.description.AxisService;
+import org.apache.axis2.description.AxisServiceGroup;
+import org.apache.axis2.description.Parameter;
+import org.apache.axis2.engine.AxisConfiguration;
+import org.apache.axis2.transport.http.AbstractAgent;
+import org.apache.commons.fileupload.FileItem;
+import org.apache.commons.fileupload.FileItemFactory;
+import org.apache.commons.fileupload.RequestContext;
+import org.apache.commons.fileupload.disk.DiskFileItemFactory;
+import org.apache.commons.fileupload.servlet.ServletFileUpload;
+import org.apache.commons.fileupload.servlet.ServletRequestContext;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServletRequest;
+import javax.xml.namespace.QName;
+import java.io.File;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.TreeMap;
+
+/**
+ * Provides methods to process axis2 admin requests.
+ */
+final class AdminActions {
+    private static final Log log = LogFactory.getLog(AbstractAgent.class);
+    
+    private static final String WELCOME = "welcome";
+    private static final String LOGOUT = "logout";
+    private static final String INDEX = "index";
+    private static final String UPLOAD = "upload";
+    private static final String LIST_SERVICES = "listServices";
+    private static final String ENGAGE_GLOBALLY = "engageGlobally";
+    private static final String ENGAGE_TO_SERVICE_GROUP = "engageToServiceGroup";
+    private static final String ENGAGE_TO_SERVICE = "engageToService";
+    private static final String ENGAGE_TO_OPERATION = "engageToOperation";
+    private static final String DEACTIVATE_SERVICE = "deactivateService";
+    private static final String ACTIVATE_SERVICE = "activateService";
+    private static final String EDIT_SERVICE_PARAMETERS = "editServiceParameters";
+    private static final String VIEW_OPERATION_SPECIFIC_CHAINS = "viewOperationSpecificChains";
+
+    /**
+     * Field LIST_MULTIPLE_SERVICE_JSP_NAME
+     */
+    private static final String SELECT_SERVICE_JSP_NAME = "SelectService.jsp";
+
+    /**
+     * Field LIST_SINGLE_SERVICE_JSP_NAME
+     */
+    private static final String LOGIN_JSP_NAME = "Login.jsp";
+
+    private final ConfigurationContext configContext;
+    private File serviceDir;
+
+    public AdminActions(ConfigurationContext configContext) {
+        this.configContext = configContext;
+        try {
+            if (configContext.getAxisConfiguration().getRepository() != null) {
+                File repoDir =
+                        new File(configContext.getAxisConfiguration().getRepository().toURI());
+                serviceDir = new File(repoDir, "services");
+                if (!serviceDir.exists()) {
+                    serviceDir.mkdirs();
+                }
+            }
+        } catch (Exception e) {
+            log.info(e.getMessage(), e);
+        } catch (Throwable e) {
+            log.error(e.getMessage(), e);
+        }
+    }
+
+    protected void populateRequestAttributes(HttpServletRequest req) {
+        req.setAttribute("configContext", configContext);
+    }
+
+    @Action(name=INDEX)
+    public View index(HttpServletRequest req) {
+        return new View("admin.jsp");
+    }
+
+    // supported web operations
+
+    @Action(name=WELCOME, authorizationRequired=false)
+    public ActionResult welcome(HttpServletRequest req) {
+        // Session fixation prevention: if there is an existing session, first invalidate it.
+        if (req.getSession(false) != null) {
+            return new Redirect(LOGOUT);
+        } else {
+            if ("true".equals(req.getParameter("failed"))) {
+                req.setAttribute("errorMessage", "Invalid auth credentials!");
+            }
+            return new View(LOGIN_JSP_NAME);
+        }
+    }
+
+    @Action(name=UPLOAD)
+    public View upload(HttpServletRequest req) {
+        String hasHotDeployment =
+                (String) configContext.getAxisConfiguration().getParameterValue("hotdeployment");
+        String hasHotUpdate =
+                (String) configContext.getAxisConfiguration().getParameterValue("hotupdate");
+        req.setAttribute("hotDeployment", (hasHotDeployment.equals("true")) ? "enabled"
+                : "disabled");
+        req.setAttribute("hotUpdate", (hasHotUpdate.equals("true")) ? "enabled" : "disabled");
+        return new View("upload.jsp");
+    }
+
+    @Action(name="doUpload", post=true)
+    public Redirect doUpload(HttpServletRequest req) throws ServletException {
+        RequestContext reqContext = new ServletRequestContext(req);
+
+        boolean isMultipart = ServletFileUpload.isMultipartContent(reqContext);
+        if (isMultipart) {
+            try {
+                //Create a factory for disk-based file items
+                FileItemFactory factory = new DiskFileItemFactory();
+                //Create a new file upload handler
+                ServletFileUpload upload = new ServletFileUpload(factory);
+                List<?> items = upload.parseRequest(req);
+                // Process the uploaded items
+                Iterator<?> iter = items.iterator();
+                while (iter.hasNext()) {
+                    FileItem item = (FileItem) iter.next();
+                    if (!item.isFormField()) {
+
+                        String fileName = item.getName();
+                        String fileExtesion = fileName;
+                        fileExtesion = fileExtesion.toLowerCase();
+                        if (!(fileExtesion.endsWith(".jar") || fileExtesion.endsWith(".aar"))) {
+                            return new Redirect(UPLOAD).withStatus(false, "Unsupported file type " + fileExtesion);
+                        } else {
+
+                            String fileNameOnly;
+                            if (fileName.indexOf("\\") < 0) {
+                                fileNameOnly =
+                                        fileName.substring(fileName.lastIndexOf("/") + 1, fileName
+                                                .length());
+                            } else {
+                                fileNameOnly =
+                                        fileName.substring(fileName.lastIndexOf("\\") + 1, fileName
+                                                .length());
+                            }
+
+                            File uploadedFile = new File(serviceDir, fileNameOnly);
+                            item.write(uploadedFile);
+                            return new Redirect(UPLOAD).withStatus(true, "File " + fileNameOnly + " successfully uploaded");
+                        }
+                    }
+                }
+            } catch (Exception e) {
+                return new Redirect(UPLOAD).withStatus(false, "The following error occurred: " + e.getMessage());
+            }
+        }
+        throw new ServletException("Invalid request");
+    }
+
+    @Action(name="login", authorizationRequired=false, post=true, sessionCreationAllowed=true)
+    public Redirect login(HttpServletRequest req) {
+        // Session fixation prevention: don't allow to login in an existing session.
+        // Note that simply invalidating the session and creating a new one is not sufficient
+        // because on some servlet containers, the new session will keep the existing session ID.
+        if (req.getSession(false) != null) {
+            return new Redirect(WELCOME);
+        }
+
+        String username = req.getParameter("userName");
+        String password = req.getParameter("password");
+
+        if ((username == null) || (password == null) || username.trim().length() == 0
+                || password.trim().length() == 0) {
+            return new Redirect(WELCOME).withParameter("failed", "true");
+        }
+
+        String adminUserName = (String) configContext.getAxisConfiguration().getParameter(
+                Constants.USER_NAME).getValue();
+        String adminPassword = (String) configContext.getAxisConfiguration().getParameter(
+                Constants.PASSWORD).getValue();
+
+        if (username.equals(adminUserName) && password.equals(adminPassword)) {
+            req.getSession().setAttribute(Constants.LOGGED, "Yes");
+            return new Redirect(INDEX);
+        } else {
+            return new Redirect(WELCOME).withParameter("failed", "true");
+        }
+    }
+
+    @Action(name=EDIT_SERVICE_PARAMETERS)
+    public View editServiceParameters(HttpServletRequest req) throws AxisFault {
+        String serviceName = req.getParameter("axisService");
+        AxisService service =
+                configContext.getAxisConfiguration().getServiceForActivation(serviceName);
+        if (service.isActive()) {
+
+            if (serviceName != null) {
+                req.getSession().setAttribute(Constants.SERVICE,
+                                              configContext.getAxisConfiguration().getService(
+                                                      serviceName));
+            }
+            req.setAttribute("serviceName", serviceName);
+            req.setAttribute("parameters", getParameters(service));
+            Map<String,Map<String,String>> operations = new TreeMap<String,Map<String,String>>();
+            for (Iterator<AxisOperation> it = service.getOperations(); it.hasNext(); ) {
+                AxisOperation operation = it.next();
+                operations.put(operation.getName().getLocalPart(), getParameters(operation));
+            }
+            req.setAttribute("operations", operations);
+        } else {
+            req.setAttribute("status", "Service " + serviceName + " is not an active service" +
+                    ". \n Only parameters of active services can be edited.");
+        }
+        return new View("editServiceParameters.jsp");
+    }
+
+    private static Map<String,String> getParameters(AxisDescription description) {
+        Map<String,String> parameters = new TreeMap<String,String>();
+        for (Parameter parameter : description.getParameters()) {
+            if (parameter.getParameterType() != Parameter.OM_PARAMETER) {
+                Object value = parameter.getValue();
+                if (value instanceof String) {
+                    parameters.put(parameter.getName(), (String)value);
+                }
+            }
+        }
+        return parameters;
+    }
+
+    @Action(name="updateServiceParameters", post=true)
+    public Redirect updateServiceParameters(HttpServletRequest request) throws AxisFault {
+        String serviceName = request.getParameter("axisService");
+        AxisService service = configContext.getAxisConfiguration().getService(serviceName);
+        if (service != null) {
+            for (Parameter parameter : service.getParameters()) {
+                String para = request.getParameter(serviceName + "_" + parameter.getName());
+                service.addParameter(new Parameter(parameter.getName(), para));
+            }
+
+            for (Iterator<AxisOperation> iterator = service.getOperations(); iterator.hasNext();) {
+                AxisOperation axisOperation = iterator.next();
+                String op_name = axisOperation.getName().getLocalPart();
+
+                for (Parameter parameter : axisOperation.getParameters()) {
+                    String para = request.getParameter(op_name + "_" + parameter.getName());
+
+                    axisOperation.addParameter(new Parameter(parameter.getName(), para));
+                }
+            }
+        }
+        return new Redirect(EDIT_SERVICE_PARAMETERS)
+                .withStatus(true, "Parameters Changed Successfully.")
+                .withParameter("axisService", serviceName);
+    }
+
+    @Action(name=ENGAGE_GLOBALLY)
+    public View engageGlobally(HttpServletRequest req) {
+        Map<String,AxisModule> modules = configContext.getAxisConfiguration().getModules();
+
+        req.getSession().setAttribute(Constants.MODULE_MAP, modules);
+
+        req.getSession().setAttribute("modules", null);
+        return new View("engageGlobally.jsp");
+    }
+
+    @Action(name="doEngageGlobally", post=true)
+    public Redirect doEngageGlobally(HttpServletRequest request) {
+        String moduleName = request.getParameter("module");
+        try {
+            configContext.getAxisConfiguration().engageModule(moduleName);
+            return new Redirect(ENGAGE_GLOBALLY).withStatus(true,
+                    moduleName + " module engaged globally successfully");
+        } catch (AxisFault axisFault) {
+            return new Redirect(ENGAGE_GLOBALLY).withStatus(false, axisFault.getMessage());
+        }
+    }
+
+    @Action(name=ENGAGE_TO_OPERATION)
+    public View engageToOperation(HttpServletRequest req) throws AxisFault {
+        Map<String,AxisModule> modules = configContext.getAxisConfiguration().getModules();
+
+        req.getSession().setAttribute(Constants.MODULE_MAP, modules);
+
+        req.getSession().setAttribute(Constants.ENGAGE_STATUS, null);
+        req.getSession().setAttribute("modules", null);
+
+        String serviceName = req.getParameter("axisService");
+
+        if (serviceName != null) {
+            req.setAttribute("service", serviceName);
+        }
+
+        req.getSession().setAttribute(
+                Constants.OPERATION_MAP,
+                configContext.getAxisConfiguration().getService(serviceName).getOperations());
+
+        req.getSession().setAttribute("operation", null);
+        return new View("engageToOperation.jsp");
+    }
+
+    @Action(name="doEngageToOperation", post=true)
+    public Redirect doEngageToOperation(HttpServletRequest request) {
+        String moduleName = request.getParameter("module");
+        String serviceName = request.getParameter("service");
+        String operationName = request.getParameter("axisOperation");
+        Redirect redirect = new Redirect(ENGAGE_TO_OPERATION).withParameter("axisService", serviceName);
+        try {
+            AxisOperation od = configContext.getAxisConfiguration().getService(
+                    serviceName).getOperation(new QName(operationName));
+            od.engageModule(configContext.getAxisConfiguration().getModule(moduleName));
+            redirect.withStatus(true, moduleName + " module engaged to the operation successfully");
+        } catch (AxisFault axisFault) {
+            redirect.withStatus(false, axisFault.getMessage());
+        }
+        return redirect;
+    }
+
+    @Action(name=ENGAGE_TO_SERVICE)
+    public View engageToService(HttpServletRequest req) {
+        Map<String,AxisModule> modules = configContext.getAxisConfiguration().getModules();
+
+        req.getSession().setAttribute(Constants.MODULE_MAP, modules);
+        populateRequestAttributes(req);
+
+
+        req.getSession().setAttribute(Constants.ENGAGE_STATUS, null);
+        req.getSession().setAttribute("modules", null);
+
+        req.getSession().setAttribute(Constants.ENGAGE_STATUS, null);
+
+        req.getSession().setAttribute("axisService", null);
+        return new View("engageToService.jsp");
+    }
+
+    @Action(name="doEngageToService", post=true)
+    public Redirect doEngageToService(HttpServletRequest request) {
+        String moduleName = request.getParameter("module");
+        String serviceName = request.getParameter("axisService");
+        try {
+            configContext.getAxisConfiguration().getService(serviceName).engageModule(
+                    configContext.getAxisConfiguration().getModule(moduleName));
+            return new Redirect(ENGAGE_TO_SERVICE).withStatus(true,
+                    moduleName + " module engaged to the service successfully");
+        } catch (AxisFault axisFault) {
+            return new Redirect(ENGAGE_TO_SERVICE).withStatus(false, axisFault.getMessage());
+        }
+    }
+
+    @Action(name=ENGAGE_TO_SERVICE_GROUP)
+    public View engageToServiceGroup(HttpServletRequest req) {
+        Map<String,AxisModule> modules = configContext.getAxisConfiguration().getModules();
+
+        req.getSession().setAttribute(Constants.MODULE_MAP, modules);
+
+        Iterator<AxisServiceGroup> services = configContext.getAxisConfiguration().getServiceGroups();
+
+        req.getSession().setAttribute(Constants.SERVICE_GROUP_MAP, services);
+
+        req.getSession().setAttribute(Constants.ENGAGE_STATUS, null);
+        req.getSession().setAttribute("modules", null);
+
+        req.getSession().setAttribute(Constants.ENGAGE_STATUS, null);
+
+        req.getSession().setAttribute("axisService", null);
+        return new View("engageToServiceGroup.jsp");
+    }
+
+    @Action(name="doEngageToServiceGroup", post=true)
+    public Redirect doEngageToServiceGroup(HttpServletRequest request) throws AxisFault {
+        String moduleName = request.getParameter("module");
+        String serviceName = request.getParameter("axisService");
+        configContext.getAxisConfiguration().getServiceGroup(serviceName).engageModule(
+                configContext.getAxisConfiguration().getModule(moduleName));
+        return new Redirect(ENGAGE_TO_SERVICE_GROUP).withStatus(true,
+                moduleName + " module engaged to the service group successfully");
+    }
+
+    @Action(name=LOGOUT)
+    public Redirect logout(HttpServletRequest req) {
+        req.getSession().invalidate();
+        return new Redirect(WELCOME);
+    }
+
+    @Action(name="viewServiceGroupContext")
+    public View viewServiceGroupContext(HttpServletRequest req) {
+        String type = req.getParameter("TYPE");
+        String sgID = req.getParameter("ID");
+        ServiceGroupContext sgContext = configContext.getServiceGroupContext(sgID);
+        req.getSession().setAttribute("ServiceGroupContext",sgContext);
+        req.getSession().setAttribute("TYPE",type);
+        req.getSession().setAttribute("ConfigurationContext",configContext);
+        return new View("viewServiceGroupContext.jsp");
+    }
+
+    @Action(name="viewServiceContext")
+    public View viewServiceContext(HttpServletRequest req) throws AxisFault {
+        String type = req.getParameter("TYPE");
+        String sgID = req.getParameter("PID");
+        String ID = req.getParameter("ID");
+        ServiceGroupContext sgContext = configContext.getServiceGroupContext(sgID);
+        if (sgContext != null) {
+            AxisService service = sgContext.getDescription().getService(ID);
+            ServiceContext serviceContext = sgContext.getServiceContext(service);
+            req.setAttribute("ServiceContext",serviceContext);
+            req.setAttribute("TYPE",type);
+        } else {
+            req.setAttribute("ServiceContext",null);
+            req.setAttribute("TYPE",type);
+        }
+        return new View("viewServiceContext.jsp");
+    }
+
+    @Action(name="selectServiceParaEdit")
+    public View selectServiceParaEdit(HttpServletRequest req) {
+        populateRequestAttributes(req);
+        req.getSession().setAttribute(Constants.SELECT_SERVICE_TYPE, "SERVICE_PARAMETER");
+        req.setAttribute("action", EDIT_SERVICE_PARAMETERS);
+        return new View(SELECT_SERVICE_JSP_NAME);
+    }
+
+    @Action(name="listOperation")
+    public View listOperation(HttpServletRequest req) {
+        populateRequestAttributes(req);
+        req.getSession().setAttribute(Constants.SELECT_SERVICE_TYPE, "MODULE");
+        req.setAttribute("action", ENGAGE_TO_OPERATION);
+        return new View(SELECT_SERVICE_JSP_NAME);
+    }
+
+    @Action(name=ACTIVATE_SERVICE)
+    public View activateService(HttpServletRequest req) {
+        populateRequestAttributes(req);
+        return new View("activateService.jsp");
+    }
+
+    @Action(name="doActivateService", post=true)
+    public Redirect doActivateService(HttpServletRequest request) throws AxisFault {
+        String serviceName = request.getParameter("axisService");
+        String turnon = request.getParameter("turnon");
+        if (serviceName != null) {
+            if (turnon != null) {
+                configContext.getAxisConfiguration().startService(serviceName);
+            }
+        }
+        return new Redirect(ACTIVATE_SERVICE);
+    }
+
+    @Action(name=DEACTIVATE_SERVICE)
+    public View deactivateService(HttpServletRequest req) {
+        populateRequestAttributes(req);
+        return new View("deactivateService.jsp");
+    }
+
+    @Action(name="doDeactivateService", post=true)
+    public Redirect doDeactivateService(HttpServletRequest request) throws AxisFault {
+        String serviceName = request.getParameter("axisService");
+        String turnoff = request.getParameter("turnoff");
+        if (serviceName != null) {
+            if (turnoff != null) {
+                configContext.getAxisConfiguration().stopService(serviceName);
+            }
+        }
+        return new Redirect(DEACTIVATE_SERVICE);
+    }
+
+    @Action(name="viewGlobalChains")
+    public View viewGlobalChains(HttpServletRequest req) {
+        req.getSession().setAttribute(Constants.GLOBAL_HANDLERS,
+                                      configContext.getAxisConfiguration());
+
+        return new View("viewGlobalChains.jsp");
+    }
+
+    @Action(name=VIEW_OPERATION_SPECIFIC_CHAINS)
+    public View viewOperationSpecificChains(HttpServletRequest req) throws AxisFault {
+        String service = req.getParameter("axisService");
+
+        if (service != null) {
+            req.getSession().setAttribute(Constants.SERVICE_HANDLERS,
+                                          configContext.getAxisConfiguration().getService(service));
+        }
+
+        return new View("viewOperationSpecificChains.jsp");
+    }
+
+    @Action(name="listPhases")
+    public View listPhases(HttpServletRequest req) {
+        PhasesInfo info = configContext.getAxisConfiguration().getPhasesInfo();
+        req.getSession().setAttribute(Constants.PHASE_LIST, info);
+        return new View("viewphases.jsp");
+    }
+
+    @Action(name="listServiceGroups")
+    public View listServiceGroups(HttpServletRequest req) {
+        Iterator<AxisServiceGroup> serviceGroups = configContext.getAxisConfiguration().getServiceGroups();
+        populateRequestAttributes(req);
+        req.getSession().setAttribute(Constants.SERVICE_GROUP_MAP, serviceGroups);
+
+        return new View("listServiceGroups.jsp");
+    }
+
+    @Action(name=LIST_SERVICES)
+    public View listServices(HttpServletRequest req) {
+        populateRequestAttributes(req);
+        req.getSession().setAttribute(Constants.ERROR_SERVICE_MAP,
+                                      configContext.getAxisConfiguration().getFaultyServices());
+
+        return new View("listServices.jsp");
+    }
+
+    @Action(name="listSingleService")
+    public View listSingleService(HttpServletRequest req) throws AxisFault {
+        req.getSession().setAttribute(Constants.IS_FAULTY, ""); //Clearing out any old values.
+        String serviceName = req.getParameter("serviceName");
+        if (serviceName != null) {
+            AxisService service = configContext.getAxisConfiguration().getService(serviceName);
+            req.getSession().setAttribute(Constants.SINGLE_SERVICE, service);
+        }
+        return new View("listSingleService.jsp");
+    }
+
+    @Action(name="viewContexts")
+    public View viewContexts(HttpServletRequest req) {
+        req.getSession().setAttribute(Constants.CONFIG_CONTEXT, configContext);
+        return new View("viewContexts.jsp");
+    }
+
+    @Action(name="globalModules")
+    public View globalModules(HttpServletRequest req) {
+        Collection<AxisModule> modules = configContext.getAxisConfiguration().getEngagedModules();
+
+        req.getSession().setAttribute(Constants.MODULE_MAP, modules);
+
+        return new View("globalModules.jsp");
+    }
+
+    @Action(name="listModules")
+    public View listModules(HttpServletRequest req) {
+        Map<String,AxisModule> modules = configContext.getAxisConfiguration().getModules();
+
+        req.getSession().setAttribute(Constants.MODULE_MAP, modules);
+        req.getSession().setAttribute(Constants.ERROR_MODULE_MAP,
+                                      configContext.getAxisConfiguration().getFaultyModules());
+
+        return new View("listModules.jsp");
+    }
+
+    @Action(name="disengageModule", post=true)
+    public Redirect processdisengageModule(HttpServletRequest req) throws AxisFault {
+        String type = req.getParameter("type");
+        String serviceName = req.getParameter("serviceName");
+        String moduleName = req.getParameter("module");
+        AxisConfiguration axisConfiguration = configContext.getAxisConfiguration();
+        AxisService service = axisConfiguration.getService(serviceName);
+        AxisModule module = axisConfiguration.getModule(moduleName);
+        if (type.equals("operation")) {
+            if (service.isEngaged(module.getName()) ||
+                    axisConfiguration.isEngaged(module.getName())) {
+                return new Redirect(LIST_SERVICES).withStatus(false, "Can not disengage module "
+                        + moduleName + ". This module is engaged at a higher level.");
+            } else {
+                String opName = req.getParameter("operation");
+                AxisOperation op = service.getOperation(new QName(opName));
+                op.disengageModule(module);
+                return new Redirect(LIST_SERVICES).withStatus(true,
+                        "Module " + moduleName + " was disengaged from " + "operation " + opName
+                                + " in service " + serviceName + ".");
+            }
+        } else {
+            if (axisConfiguration.isEngaged(module.getName())) {
+                return new Redirect(LIST_SERVICES).withStatus(false, "Can not disengage module "
+                        + moduleName + ". " + "This module is engaged at a higher level.");
+            } else {
+                service.disengageModule(axisConfiguration.getModule(moduleName));
+                return new Redirect(LIST_SERVICES).withStatus(true, "Module " + moduleName
+                        + " was disengaged from" + " service " + serviceName + ".");
+            }
+        }
+    }
+
+    @Action(name="deleteService", post=true)
+    public Redirect deleteService(HttpServletRequest req) throws AxisFault {
+        String serviceName = req.getParameter("serviceName");
+        AxisConfiguration axisConfiguration = configContext.getAxisConfiguration();
+        if (axisConfiguration.getService(serviceName) != null) {
+            axisConfiguration.removeService(serviceName);
+            return new Redirect(LIST_SERVICES).withStatus(true, "Service '" + serviceName + "' has been successfully removed.");
+        } else {
+            return new Redirect(LIST_SERVICES).withStatus(false, "Failed to delete service '" + serviceName + "'. Service doesn't exist.");
+        }
+    }
+
+    @Action(name="selectService")
+    public View selectService(HttpServletRequest req) {
+        populateRequestAttributes(req);
+        req.getSession().setAttribute(Constants.SELECT_SERVICE_TYPE, "VIEW");
+        req.setAttribute("action", VIEW_OPERATION_SPECIFIC_CHAINS);
+        return new View(SELECT_SERVICE_JSP_NAME);
+    }
+}
diff --git a/modules/webapp/src/main/java/org/apache/axis2/webapp/AdminAgent.java b/modules/webapp/src/main/java/org/apache/axis2/webapp/AdminAgent.java
deleted file mode 100644
index ac4289a..0000000
--- a/modules/webapp/src/main/java/org/apache/axis2/webapp/AdminAgent.java
+++ /dev/null
@@ -1,639 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.axis2.webapp;
-
-import org.apache.axis2.AxisFault;
-import org.apache.axis2.Constants;
-import org.apache.axis2.context.ConfigurationContext;
-import org.apache.axis2.context.ServiceContext;
-import org.apache.axis2.context.ServiceGroupContext;
-import org.apache.axis2.deployment.util.PhasesInfo;
-import org.apache.axis2.description.AxisModule;
-import org.apache.axis2.description.AxisOperation;
-import org.apache.axis2.description.AxisService;
-import org.apache.axis2.description.AxisServiceGroup;
-import org.apache.axis2.description.Parameter;
-import org.apache.axis2.engine.AxisConfiguration;
-import org.apache.axis2.transport.http.AbstractAgent;
-import org.apache.commons.fileupload.FileItem;
-import org.apache.commons.fileupload.FileItemFactory;
-import org.apache.commons.fileupload.RequestContext;
-import org.apache.commons.fileupload.disk.DiskFileItemFactory;
-import org.apache.commons.fileupload.servlet.ServletFileUpload;
-import org.apache.commons.fileupload.servlet.ServletRequestContext;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import javax.xml.namespace.QName;
-import java.io.File;
-import java.io.IOException;
-import java.util.Collection;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
-/**
- * Provides methods to process axis2 admin requests.
- */
-public class AdminAgent extends AbstractAgent {
-    private static final Log log = LogFactory.getLog(AbstractAgent.class);
-    /**
-     * Field LIST_MULTIPLE_SERVICE_JSP_NAME
-     */
-    private static final String LIST_SERVICE_GROUP_JSP = "ListServiceGroup.jsp";
-    private static final String LIST_SERVICES_JSP_NAME = "listService.jsp";
-    private static final String LIST_SINGLE_SERVICES_JSP_NAME = "listSingleService.jsp";
-    private static final String SELECT_SERVICE_JSP_NAME = "SelectService.jsp";
-    private static final String IN_ACTIVATE_SERVICE_JSP_NAME = "InActivateService.jsp";
-    private static final String ACTIVATE_SERVICE_JSP_NAME = "ActivateService.jsp";
-
-    /**
-     * Field LIST_SINGLE_SERVICE_JSP_NAME
-     */
-    private static final String LIST_PHASES_JSP_NAME = "viewphases.jsp";
-    private static final String LIST_GLOABLLY_ENGAGED_MODULES_JSP_NAME = "globalModules.jsp";
-    private static final String LIST_AVAILABLE_MODULES_JSP_NAME = "listModules.jsp";
-    private static final String ENGAGING_MODULE_TO_SERVICE_JSP_NAME = "engagingtoaservice.jsp";
-    private static final String ENGAGING_MODULE_TO_SERVICE_GROUP_JSP_NAME =
-            "EngageToServiceGroup.jsp";
-    private static final String ENGAGING_MODULE_GLOBALLY_JSP_NAME = "engagingglobally.jsp";
-    public static final String ADMIN_JSP_NAME = "admin.jsp";
-    private static final String VIEW_GLOBAL_HANDLERS_JSP_NAME = "ViewGlobalHandlers.jsp";
-    private static final String VIEW_SERVICE_HANDLERS_JSP_NAME = "ViewServiceHandlers.jsp";
-    private static final String SERVICE_PARA_EDIT_JSP_NAME = "ServiceParaEdit.jsp";
-    private static final String ENGAGE_TO_OPERATION_JSP_NAME = "engagingtoanoperation.jsp";
-    private static final String LOGIN_JSP_NAME = "Login.jsp";
-
-    private File serviceDir;
-
-    public AdminAgent(ConfigurationContext aConfigContext) {
-        super(aConfigContext);
-        try {
-            if (configContext.getAxisConfiguration().getRepository() != null) {
-                File repoDir =
-                        new File(configContext.getAxisConfiguration().getRepository().getFile());
-                serviceDir = new File(repoDir, "services");
-                if (!serviceDir.exists()) {
-                    serviceDir.mkdirs();
-                }
-            }
-        } catch (Exception e) {
-            log.info(e.getMessage(), e);
-        } catch (Throwable e) {
-            log.error(e.getMessage(), e);
-        }
-    }
-
-    @Override
-    public void handle(HttpServletRequest httpServletRequest,
-                       HttpServletResponse httpServletResponse)
-            throws IOException, ServletException {
-
-        // We forward to login page if axis2 security is enabled
-        // and the user is not authorized
-        // TODO Fix workaround for login test
-        if (axisSecurityEnabled() && authorizationRequired(httpServletRequest)) {
-            renderView(LOGIN_JSP_NAME, httpServletRequest, httpServletResponse);
-        } else {
-            super.handle(httpServletRequest, httpServletResponse);
-        }
-    }
-
-    @Override
-    public void processIndex(HttpServletRequest req, HttpServletResponse res)
-            throws IOException, ServletException {
-        renderView(ADMIN_JSP_NAME, req, res);
-    }
-
-    // supported web operations
-
-    public void processUpload(HttpServletRequest req, HttpServletResponse res)
-            throws IOException, ServletException {
-        String hasHotDeployment =
-                (String) configContext.getAxisConfiguration().getParameterValue("hotdeployment");
-        String hasHotUpdate =
-                (String) configContext.getAxisConfiguration().getParameterValue("hotupdate");
-        req.setAttribute("hotDeployment", (hasHotDeployment.equals("true")) ? "enabled"
-                : "disabled");
-        req.setAttribute("hotUpdate", (hasHotUpdate.equals("true")) ? "enabled" : "disabled");
-        RequestContext reqContext = new ServletRequestContext(req);
-
-        boolean isMultipart = ServletFileUpload.isMultipartContent(reqContext);
-        if (isMultipart) {
-
-            try {
-                //Create a factory for disk-based file items
-                FileItemFactory factory = new DiskFileItemFactory();
-                //Create a new file upload handler
-                ServletFileUpload upload = new ServletFileUpload(factory);
-                List<?> items = upload.parseRequest(req);
-                // Process the uploaded items
-                Iterator<?> iter = items.iterator();
-                while (iter.hasNext()) {
-                    FileItem item = (FileItem) iter.next();
-                    if (!item.isFormField()) {
-
-                        String fileName = item.getName();
-                        String fileExtesion = fileName;
-                        fileExtesion = fileExtesion.toLowerCase();
-                        if (!(fileExtesion.endsWith(".jar") || fileExtesion.endsWith(".aar"))) {
-                            req.setAttribute("status", "failure");
-                            req.setAttribute("cause", "Unsupported file type " + fileExtesion);
-                        } else {
-
-                            String fileNameOnly;
-                            if (fileName.indexOf("\\") < 0) {
-                                fileNameOnly =
-                                        fileName.substring(fileName.lastIndexOf("/") + 1, fileName
-                                                .length());
-                            } else {
-                                fileNameOnly =
-                                        fileName.substring(fileName.lastIndexOf("\\") + 1, fileName
-                                                .length());
-                            }
-
-                            File uploadedFile = new File(serviceDir, fileNameOnly);
-                            item.write(uploadedFile);
-                            req.setAttribute("status", "success");
-                            req.setAttribute("filename", fileNameOnly);
-                        }
-                    }
-                }
-            } catch (Exception e) {
-                req.setAttribute("status", "failure");
-                req.setAttribute("cause", e.getMessage());
-
-            }
-        }
-        renderView("upload.jsp", req, res);
-    }
-
-
-    public void processLogin(HttpServletRequest req, HttpServletResponse res)
-            throws IOException, ServletException {
-        String username = req.getParameter("userName");
-        String password = req.getParameter("password");
-
-        if ((username == null) || (password == null) || username.trim().length() == 0
-                || password.trim().length() == 0) {
-            req.setAttribute("errorMessage", "Invalid auth credentials!");
-            renderView(LOGIN_JSP_NAME, req, res);
-            return;
-        }
-
-        String adminUserName = (String) configContext.getAxisConfiguration().getParameter(
-                Constants.USER_NAME).getValue();
-        String adminPassword = (String) configContext.getAxisConfiguration().getParameter(
-                Constants.PASSWORD).getValue();
-
-        if (username.equals(adminUserName) && password.equals(adminPassword)) {
-            req.getSession().setAttribute(Constants.LOGGED, "Yes");
-            renderView(ADMIN_JSP_NAME, req, res);
-        } else {
-            req.setAttribute("errorMessage", "Invalid auth credentials!");
-            renderView(LOGIN_JSP_NAME, req, res);
-        }
-    }
-
-    public void processEditServicePara(HttpServletRequest req, HttpServletResponse res)
-            throws IOException, ServletException {
-        String serviceName = req.getParameter("axisService");
-        if (req.getParameter("changePara") != null) {
-            AxisService service = configContext.getAxisConfiguration().getService(serviceName);
-            if (service != null) {
-                for (Parameter parameter : service.getParameters()) {
-                    String para = req.getParameter(serviceName + "_" + parameter.getName());
-                    service.addParameter(new Parameter(parameter.getName(), para));
-                }
-
-                for (Iterator<AxisOperation> iterator = service.getOperations(); iterator.hasNext();) {
-                    AxisOperation axisOperation = iterator.next();
-                    String op_name = axisOperation.getName().getLocalPart();
-
-                    for (Parameter parameter : axisOperation.getParameters()) {
-                        String para = req.getParameter(op_name + "_" + parameter.getName());
-
-                        axisOperation.addParameter(new Parameter(parameter.getName(), para));
-                    }
-                }
-            }
-            res.setContentType("text/html");
-            req.setAttribute("status", "Parameters Changed Successfully.");
-            req.getSession().removeAttribute(Constants.SERVICE);
-        } else {
-            AxisService serviceTemp =
-                    configContext.getAxisConfiguration().getServiceForActivation(serviceName);
-            if (serviceTemp.isActive()) {
-
-                if (serviceName != null) {
-                    req.getSession().setAttribute(Constants.SERVICE,
-                                                  configContext.getAxisConfiguration().getService(
-                                                          serviceName));
-                }
-            } else {
-                req.setAttribute("status", "Service " + serviceName + " is not an active service" +
-                        ". \n Only parameters of active services can be edited.");
-            }
-        }
-        renderView(SERVICE_PARA_EDIT_JSP_NAME, req, res);
-    }
-
-    public void processEngagingGlobally(HttpServletRequest req, HttpServletResponse res)
-            throws IOException, ServletException {
-        Map<String,AxisModule> modules = configContext.getAxisConfiguration().getModules();
-
-        req.getSession().setAttribute(Constants.MODULE_MAP, modules);
-
-        String moduleName = req.getParameter("modules");
-
-        req.getSession().setAttribute(Constants.ENGAGE_STATUS, null);
-
-        if (moduleName != null) {
-            try {
-                configContext.getAxisConfiguration().engageModule(moduleName);
-                req.getSession().setAttribute(Constants.ENGAGE_STATUS,
-                                              moduleName + " module engaged globally successfully");
-            } catch (AxisFault axisFault) {
-                req.getSession().setAttribute(Constants.ENGAGE_STATUS, axisFault.getMessage());
-            }
-        }
-
-        req.getSession().setAttribute("modules", null);
-        renderView(ENGAGING_MODULE_GLOBALLY_JSP_NAME, req, res);
-
-    }
-
-    public void processListOperations(HttpServletRequest req, HttpServletResponse res)
-            throws IOException, ServletException {
-        Map<String,AxisModule> modules = configContext.getAxisConfiguration().getModules();
-
-        req.getSession().setAttribute(Constants.MODULE_MAP, modules);
-
-        String moduleName = req.getParameter("modules");
-
-        req.getSession().setAttribute(Constants.ENGAGE_STATUS, null);
-        req.getSession().setAttribute("modules", null);
-
-        String serviceName = req.getParameter("axisService");
-
-        if (serviceName != null) {
-            req.getSession().setAttribute("service", serviceName);
-        } else {
-            serviceName = (String) req.getSession().getAttribute("service");
-        }
-
-        req.getSession().setAttribute(
-                Constants.OPERATION_MAP,
-                configContext.getAxisConfiguration().getService(serviceName).getOperations());
-        req.getSession().setAttribute(Constants.ENGAGE_STATUS, null);
-
-        String operationName = req.getParameter("axisOperation");
-
-        if ((serviceName != null) && (moduleName != null) && (operationName != null)) {
-            try {
-                AxisOperation od = configContext.getAxisConfiguration().getService(
-                        serviceName).getOperation(new QName(operationName));
-
-                od.engageModule(
-                        configContext.getAxisConfiguration().getModule(moduleName));
-                req.getSession().setAttribute(Constants.ENGAGE_STATUS,
-                                              moduleName
-                                                      +
-                                                      " module engaged to the operation successfully");
-            } catch (AxisFault axisFault) {
-                req.getSession().setAttribute(Constants.ENGAGE_STATUS, axisFault.getMessage());
-            }
-        }
-
-        req.getSession().setAttribute("operation", null);
-        renderView(ENGAGE_TO_OPERATION_JSP_NAME, req, res);
-    }
-
-    public void processEngageToService(HttpServletRequest req, HttpServletResponse res)
-            throws IOException, ServletException {
-        Map<String,AxisModule> modules = configContext.getAxisConfiguration().getModules();
-
-        req.getSession().setAttribute(Constants.MODULE_MAP, modules);
-        populateSessionInformation(req);
-
-        String moduleName = req.getParameter("modules");
-
-        req.getSession().setAttribute(Constants.ENGAGE_STATUS, null);
-        req.getSession().setAttribute("modules", null);
-
-        String serviceName = req.getParameter("axisService");
-
-        req.getSession().setAttribute(Constants.ENGAGE_STATUS, null);
-
-        if ((serviceName != null) && (moduleName != null)) {
-            try {
-                configContext.getAxisConfiguration().getService(serviceName).engageModule(
-                        configContext.getAxisConfiguration().getModule(moduleName));
-                req.getSession().setAttribute(Constants.ENGAGE_STATUS,
-                                              moduleName
-                                                      +
-                                                      " module engaged to the service successfully");
-            } catch (AxisFault axisFault) {
-                req.getSession().setAttribute(Constants.ENGAGE_STATUS, axisFault.getMessage());
-            }
-        }
-
-        req.getSession().setAttribute("axisService", null);
-        renderView(ENGAGING_MODULE_TO_SERVICE_JSP_NAME, req, res);
-    }
-
-    public void processEngageToServiceGroup(HttpServletRequest req, HttpServletResponse res)
-            throws IOException, ServletException {
-        Map<String,AxisModule> modules = configContext.getAxisConfiguration().getModules();
-
-        req.getSession().setAttribute(Constants.MODULE_MAP, modules);
-
-        Iterator<AxisServiceGroup> services = configContext.getAxisConfiguration().getServiceGroups();
-
-        req.getSession().setAttribute(Constants.SERVICE_GROUP_MAP, services);
-
-        String moduleName = req.getParameter("modules");
-
-        req.getSession().setAttribute(Constants.ENGAGE_STATUS, null);
-        req.getSession().setAttribute("modules", null);
-
-        String serviceName = req.getParameter("axisService");
-
-        req.getSession().setAttribute(Constants.ENGAGE_STATUS, null);
-
-        if ((serviceName != null) && (moduleName != null)) {
-            configContext.getAxisConfiguration().getServiceGroup(serviceName).engageModule(
-                    configContext.getAxisConfiguration().getModule(moduleName));
-            req.getSession().setAttribute(Constants.ENGAGE_STATUS,
-                                          moduleName
-                                                  +
-                                                  " module engaged to the service group successfully");
-        }
-
-        req.getSession().setAttribute("axisService", null);
-        renderView(ENGAGING_MODULE_TO_SERVICE_GROUP_JSP_NAME, req, res);
-    }
-
-
-    public void processLogout(HttpServletRequest req, HttpServletResponse res)
-            throws IOException, ServletException {
-        req.getSession().invalidate();
-        renderView("index.jsp", req, res);
-    }
-
-    public void processviewServiceGroupConetxt(HttpServletRequest req, HttpServletResponse res)
-            throws IOException, ServletException {
-        String type = req.getParameter("TYPE");
-        String sgID = req.getParameter("ID");
-        ServiceGroupContext sgContext = configContext.getServiceGroupContext(sgID);
-        req.getSession().setAttribute("ServiceGroupContext",sgContext);
-        req.getSession().setAttribute("TYPE",type);
-        req.getSession().setAttribute("ConfigurationContext",configContext);
-        renderView("viewServiceGroupContext.jsp", req, res);
-    }
-
-    public void processviewServiceContext(HttpServletRequest req, HttpServletResponse res)
-            throws IOException, ServletException {
-        String type = req.getParameter("TYPE");
-        String sgID = req.getParameter("PID");
-        String ID = req.getParameter("ID");
-        ServiceGroupContext sgContext = configContext.getServiceGroupContext(sgID);
-        if (sgContext != null) {
-            AxisService service = sgContext.getDescription().getService(ID);
-            ServiceContext serviceContext = sgContext.getServiceContext(service);
-            req.setAttribute("ServiceContext",serviceContext);
-            req.setAttribute("TYPE",type);
-        } else {
-            req.setAttribute("ServiceContext",null);
-            req.setAttribute("TYPE",type);
-        }
-        renderView("viewServiceContext.jsp", req, res);
-    }
-
-    public void processSelectServiceParaEdit(HttpServletRequest req, HttpServletResponse res)
-            throws IOException, ServletException {
-        populateSessionInformation(req);
-        req.getSession().setAttribute(Constants.SELECT_SERVICE_TYPE, "SERVICE_PARAMETER");
-        renderView(SELECT_SERVICE_JSP_NAME, req, res);
-    }
-
-    public void processListOperation(HttpServletRequest req, HttpServletResponse res)
-            throws IOException, ServletException {
-        populateSessionInformation(req);
-        req.getSession().setAttribute(Constants.SELECT_SERVICE_TYPE, "MODULE");
-
-        renderView(SELECT_SERVICE_JSP_NAME, req, res);
-    }
-
-    public void processActivateService(HttpServletRequest req, HttpServletResponse res)
-            throws IOException, ServletException {
-        if (req.getParameter("submit") != null) {
-            String serviceName = req.getParameter("axisService");
-            String turnon = req.getParameter("turnon");
-            if (serviceName != null) {
-                if (turnon != null) {
-                    configContext.getAxisConfiguration().startService(serviceName);
-                }
-            }
-        }
-        populateSessionInformation(req);
-        renderView(ACTIVATE_SERVICE_JSP_NAME, req, res);
-    }
-
-    public void processDeactivateService(HttpServletRequest req, HttpServletResponse res)
-            throws IOException, ServletException {
-        if (req.getParameter("submit") != null) {
-            String serviceName = req.getParameter("axisService");
-            String turnoff = req.getParameter("turnoff");
-            if (serviceName != null) {
-                if (turnoff != null) {
-                    configContext.getAxisConfiguration().stopService(serviceName);
-                }
-                populateSessionInformation(req);
-            }
-        } else {
-            populateSessionInformation(req);
-        }
-
-        renderView(IN_ACTIVATE_SERVICE_JSP_NAME, req, res);
-    }
-
-
-    public void processViewGlobalHandlers(HttpServletRequest req, HttpServletResponse res)
-            throws IOException, ServletException {
-        req.getSession().setAttribute(Constants.GLOBAL_HANDLERS,
-                                      configContext.getAxisConfiguration());
-
-        renderView(VIEW_GLOBAL_HANDLERS_JSP_NAME, req, res);
-    }
-
-    public void processViewServiceHandlers(HttpServletRequest req, HttpServletResponse res)
-            throws IOException, ServletException {
-        String service = req.getParameter("axisService");
-
-        if (service != null) {
-            req.getSession().setAttribute(Constants.SERVICE_HANDLERS,
-                                          configContext.getAxisConfiguration().getService(service));
-        }
-
-        renderView(VIEW_SERVICE_HANDLERS_JSP_NAME, req, res);
-    }
-
-
-    public void processListPhases(HttpServletRequest req, HttpServletResponse res)
-            throws IOException, ServletException {
-        PhasesInfo info = configContext.getAxisConfiguration().getPhasesInfo();
-        req.getSession().setAttribute(Constants.PHASE_LIST, info);
-        renderView(LIST_PHASES_JSP_NAME, req, res);
-    }
-
-    public void processListServiceGroups(HttpServletRequest req, HttpServletResponse res)
-            throws IOException, ServletException {
-        Iterator<AxisServiceGroup> serviceGroups = configContext.getAxisConfiguration().getServiceGroups();
-        populateSessionInformation(req);
-        req.getSession().setAttribute(Constants.SERVICE_GROUP_MAP, serviceGroups);
-
-        renderView(LIST_SERVICE_GROUP_JSP, req, res);
-    }
-
-    public void processListService(HttpServletRequest req, HttpServletResponse res)
-            throws IOException, ServletException {
-        populateSessionInformation(req);
-        req.getSession().setAttribute(Constants.ERROR_SERVICE_MAP,
-                                      configContext.getAxisConfiguration().getFaultyServices());
-
-        renderView(LIST_SERVICES_JSP_NAME, req, res);
-    }
-
-    public void processListSingleService(HttpServletRequest req, HttpServletResponse res)
-            throws IOException, ServletException {
-        req.getSession().setAttribute(Constants.IS_FAULTY, ""); //Clearing out any old values.
-        String serviceName = req.getParameter("serviceName");
-        if (serviceName != null) {
-            AxisService service = configContext.getAxisConfiguration().getService(serviceName);
-            req.getSession().setAttribute(Constants.SINGLE_SERVICE, service);
-        }
-        renderView(LIST_SINGLE_SERVICES_JSP_NAME, req, res);
-    }
-
-
-    public void processListContexts(HttpServletRequest req, HttpServletResponse res)
-            throws IOException, ServletException {
-        req.getSession().setAttribute(Constants.CONFIG_CONTEXT, configContext);
-        renderView("ViewContexts.jsp", req, res);
-    }
-
-    public void processglobalModules(HttpServletRequest req, HttpServletResponse res)
-            throws IOException, ServletException {
-        Collection<AxisModule> modules = configContext.getAxisConfiguration().getEngagedModules();
-
-        req.getSession().setAttribute(Constants.MODULE_MAP, modules);
-
-        renderView(LIST_GLOABLLY_ENGAGED_MODULES_JSP_NAME, req, res);
-    }
-
-    public void processListModules(HttpServletRequest req, HttpServletResponse res)
-            throws IOException, ServletException {
-        Map<String,AxisModule> modules = configContext.getAxisConfiguration().getModules();
-
-        req.getSession().setAttribute(Constants.MODULE_MAP, modules);
-        req.getSession().setAttribute(Constants.ERROR_MODULE_MAP,
-                                      configContext.getAxisConfiguration().getFaultyModules());
-
-        renderView(LIST_AVAILABLE_MODULES_JSP_NAME, req, res);
-    }
-
-    public void processdisengageModule(HttpServletRequest req, HttpServletResponse res)
-            throws IOException, ServletException {
-        String type = req.getParameter("type");
-        String serviceName = req.getParameter("serviceName");
-        String moduleName = req.getParameter("module");
-        AxisConfiguration axisConfiguration = configContext.getAxisConfiguration();
-        AxisService service = axisConfiguration.getService(serviceName);
-        AxisModule module = axisConfiguration.getModule(moduleName);
-        if (type.equals("operation")) {
-            if (service.isEngaged(module.getName()) ||
-                    axisConfiguration.isEngaged(module.getName())) {
-                req.getSession().setAttribute("status", "Can not disengage module " + moduleName +
-                        ". This module is engaged at a higher level.");
-            } else {
-                String opName = req.getParameter("operation");
-                AxisOperation op = service.getOperation(new QName(opName));
-                op.disengageModule(module);
-                req.getSession()
-                        .setAttribute("status", "Module " + moduleName + " was disengaged from " +
-                                "operation " + opName + " in service " + serviceName + ".");
-            }
-        } else {
-            if (axisConfiguration.isEngaged(module.getName())) {
-                req.getSession()
-                        .setAttribute("status", "Can not disengage module " + moduleName + ". " +
-                                "This module is engaged at a higher level.");
-            } else {
-                service.disengageModule(axisConfiguration.getModule(moduleName));
-                req.getSession()
-                        .setAttribute("status", "Module " + moduleName + " was disengaged from" +
-                                " service " + serviceName + ".");
-            }
-        }
-        renderView("disengage.jsp", req, res);
-    }
-
-    public void processdeleteService(HttpServletRequest req, HttpServletResponse res)
-            throws IOException, ServletException {
-        String serviceName = req.getParameter("serviceName");
-        AxisConfiguration axisConfiguration = configContext.getAxisConfiguration();
-        if (axisConfiguration.getService(serviceName) != null) {
-            axisConfiguration.removeService(serviceName);
-            req.getSession().setAttribute("status", "Service '" + serviceName + "' has been successfully removed.");
-        } else {
-            req.getSession().setAttribute("status", "Failed to delete service '" + serviceName + "'. Service doesn't exist.");
-        }
-
-        renderView("deleteService.jsp", req, res);
-    }
-
-    public void processSelectService(HttpServletRequest req, HttpServletResponse res)
-            throws IOException, ServletException {
-        populateSessionInformation(req);
-        req.getSession().setAttribute(Constants.SELECT_SERVICE_TYPE, "VIEW");
-
-        renderView(SELECT_SERVICE_JSP_NAME, req, res);
-    }
-
-
-    private boolean authorizationRequired
-            (HttpServletRequest
-                    httpServletRequest) {
-        return httpServletRequest.getSession().getAttribute(Constants.LOGGED) == null &&
-                !httpServletRequest.getRequestURI().endsWith("login");
-    }
-
-    private boolean axisSecurityEnabled
-            () {
-        Parameter parameter = configContext.getAxisConfiguration()
-                .getParameter(Constants.ADMIN_SECURITY_DISABLED);
-        return parameter == null || !"true".equals(parameter.getValue());
-    }
-
-}
diff --git a/modules/webapp/src/main/java/org/apache/axis2/webapp/AxisAdminServlet.java b/modules/webapp/src/main/java/org/apache/axis2/webapp/AxisAdminServlet.java
index 3b521be..b65c7f9 100644
--- a/modules/webapp/src/main/java/org/apache/axis2/webapp/AxisAdminServlet.java
+++ b/modules/webapp/src/main/java/org/apache/axis2/webapp/AxisAdminServlet.java
@@ -21,14 +21,23 @@
 
 import org.apache.axis2.Constants;
 import org.apache.axis2.context.ConfigurationContext;
+import org.apache.axis2.description.Parameter;
 import org.apache.axis2.transport.http.AxisServlet;
+import org.apache.axis2.transport.http.ForbidSessionCreationWrapper;
 
 import javax.servlet.ServletConfig;
 import javax.servlet.ServletContext;
 import javax.servlet.ServletException;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
+import javax.servlet.http.HttpSession;
+
 import java.io.IOException;
+import java.lang.reflect.Method;
+import java.security.SecureRandom;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Random;
 
 /**
  *
@@ -36,22 +45,73 @@
 public class AxisAdminServlet extends AxisServlet {
     private static final long serialVersionUID = -6740625806509755370L;
     
-    protected transient AdminAgent agent;
+    private final Random random = new SecureRandom();
+    private final Map<String,ActionHandler> actionHandlers = new HashMap<String,ActionHandler>();
 
-    @Override
-    protected void doPost(HttpServletRequest req, HttpServletResponse res)
-            throws ServletException, IOException {
-        doGet(req, res);
+    private boolean axisSecurityEnabled() {
+        Parameter parameter = configContext.getAxisConfiguration()
+                .getParameter(Constants.ADMIN_SECURITY_DISABLED);
+        return parameter == null || !"true".equals(parameter.getValue());
     }
 
     @Override
-    protected void doGet(HttpServletRequest req,
-                         HttpServletResponse resp) throws ServletException, IOException {
-        try {
-            req.getSession().setAttribute(Constants.SERVICE_PATH, configContext.getServicePath());
-            agent.handle(req, resp);
-        } catch (Exception e) {
-            throw new ServletException(e);
+    protected void service(HttpServletRequest request, HttpServletResponse response)
+            throws ServletException, IOException {
+        String action;
+        String pathInfo = request.getPathInfo();
+        if (pathInfo == null || pathInfo.isEmpty() || pathInfo.equals("/")) {
+            action = "index";
+        } else if (pathInfo.charAt(0) == '/') {
+            action = pathInfo.substring(1);
+        } else {
+            response.sendError(HttpServletResponse.SC_NOT_FOUND);
+            return;
+        }
+        ActionHandler actionHandler = actionHandlers.get(action);
+        if (actionHandler != null) {
+            if (actionHandler.isMethodAllowed(request.getMethod())) {
+                if (!actionHandler.isSessionCreationAllowed()) {
+                    request = new ForbidSessionCreationWrapper(request);
+                }
+                HttpSession session = request.getSession(false);
+                if (actionHandler.isCSRFTokenRequired()) {
+                    boolean tokenValid;
+                    if (session == null) {
+                        tokenValid = false;
+                    } else {
+                        CSRFTokenCache tokenCache = (CSRFTokenCache)session.getAttribute(CSRFTokenCache.class.getName());
+                        if (tokenCache == null) {
+                            tokenValid = false;
+                        } else {
+                            String token = request.getParameter("token");
+                            tokenValid = token != null && tokenCache.isValid(token);
+                        }
+                    }
+                    if (!tokenValid) {
+                        response.sendError(HttpServletResponse.SC_FORBIDDEN, "No valid CSRF token found in request");
+                        return;
+                    }
+                }
+                request.setAttribute(Constants.SERVICE_PATH, configContext.getServicePath());
+                if (session != null) {
+                    String statusKey = request.getParameter("status");
+                    if (statusKey != null) {
+                        StatusCache statusCache = (StatusCache)session.getAttribute(StatusCache.class.getName());
+                        if (statusCache != null) {
+                            Status status = statusCache.get(statusKey);
+                            if (status != null) {
+                                request.setAttribute("status", status);
+                            }
+                        }
+                    }
+                }
+                ActionResult result = actionHandler.handle(request, axisSecurityEnabled());
+                result.process(request, new CSRFPreventionResponseWrapper(request, response, actionHandlers, random));
+            } else {
+                response.sendError(HttpServletResponse.SC_METHOD_NOT_ALLOWED);
+            }
+        } else {
+            response.sendError(HttpServletResponse.SC_NOT_FOUND);
         }
     }
 
@@ -62,7 +122,22 @@
         this.configContext =
                 (ConfigurationContext) servletContext.getAttribute(CONFIGURATION_CONTEXT);
         servletContext.setAttribute(this.getClass().getName(), this);
-        agent = new AdminAgent(configContext);
+        AdminActions actions = new AdminActions(configContext);
+        for (Method method : actions.getClass().getMethods()) {
+            Action actionAnnotation = method.getAnnotation(Action.class);
+            if (actionAnnotation != null) {
+                Class<?>[] parameterTypes = method.getParameterTypes();
+                if (parameterTypes.length != 1
+                        || parameterTypes[0] != HttpServletRequest.class
+                        || !ActionResult.class.isAssignableFrom(method.getReturnType())) {
+                    throw new ServletException("Invalid method signature");
+                }
+                actionHandlers.put(
+                        actionAnnotation.name(),
+                        new ActionHandler(actions, method, actionAnnotation.authorizationRequired(),
+                                actionAnnotation.post(), actionAnnotation.sessionCreationAllowed()));
+            }
+        }
         this.servletConfig = config;
     }
 
diff --git a/modules/webapp/src/main/java/org/apache/axis2/webapp/CSRFPreventionResponseWrapper.java b/modules/webapp/src/main/java/org/apache/axis2/webapp/CSRFPreventionResponseWrapper.java
new file mode 100644
index 0000000..8e5ff69
--- /dev/null
+++ b/modules/webapp/src/main/java/org/apache/axis2/webapp/CSRFPreventionResponseWrapper.java
@@ -0,0 +1,102 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.axis2.webapp;
+
+import java.util.Map;
+import java.util.Random;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import javax.servlet.http.HttpServletResponseWrapper;
+import javax.servlet.http.HttpSession;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+final class CSRFPreventionResponseWrapper extends HttpServletResponseWrapper {
+    private static final Log log = LogFactory.getLog(CSRFPreventionResponseWrapper.class);
+
+    private final HttpServletRequest request;
+    private final Map<String,ActionHandler> actionHandlers;
+    private final Random random;
+    private String token;
+
+    CSRFPreventionResponseWrapper(HttpServletRequest request, HttpServletResponse response, Map<String,ActionHandler> actionHandlers, Random random) {
+        super(response);
+        this.request = request;
+        this.actionHandlers = actionHandlers;
+        this.random = random;
+    }
+
+    protected String getToken() {
+        if (token == null) {
+            HttpSession session = request.getSession(false);
+            if (session == null) {
+                throw new IllegalStateException();
+            }
+            CSRFTokenCache tokenCache;
+            synchronized (session) {
+                tokenCache = (CSRFTokenCache)session.getAttribute(CSRFTokenCache.class.getName());
+                if (tokenCache == null) {
+                    tokenCache = new CSRFTokenCache();
+                    session.setAttribute(CSRFTokenCache.class.getName(), tokenCache);
+                }
+            }
+            byte[] bytes = new byte[16];
+            StringBuilder buffer = new StringBuilder();
+            random.nextBytes(bytes);
+            for (int j = 0; j < bytes.length; j++) {
+                byte b1 = (byte)((bytes[j] & 0xf0) >> 4);
+                byte b2 = (byte)(bytes[j] & 0x0f);
+                if (b1 < 10) {
+                    buffer.append((char)('0' + b1));
+                } else {
+                    buffer.append((char)('A' + (b1 - 10)));
+                }
+                if (b2 < 10) {
+                    buffer.append((char)('0' + b2));
+                } else {
+                    buffer.append((char)('A' + (b2 - 10)));
+                }
+            }
+            token = buffer.toString();
+            tokenCache.add(token);
+        }
+        return token;
+    }
+
+    @Override
+    public String encodeUrl(String url) {
+        return encodeURL(url);
+    }
+
+    @Override
+    public String encodeURL(String url) {
+        int idx = url.indexOf('?');
+        String path = idx == -1 ? url : url.substring(0, idx);
+        String action = path.substring(path.lastIndexOf('/')+1);
+        ActionHandler actionHandler = actionHandlers.get(action);
+        if (actionHandler == null) {
+            log.warn("Unknown action: " + action);
+        } else if (actionHandler.isCSRFTokenRequired()) {
+            url = url + (idx == -1 ? '?' : '&') + "token=" + getToken();
+        }
+        return super.encodeURL(url);
+    }
+}
diff --git a/modules/webapp/src/main/java/org/apache/axis2/webapp/CSRFTokenCache.java b/modules/webapp/src/main/java/org/apache/axis2/webapp/CSRFTokenCache.java
new file mode 100644
index 0000000..30e9801
--- /dev/null
+++ b/modules/webapp/src/main/java/org/apache/axis2/webapp/CSRFTokenCache.java
@@ -0,0 +1,43 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.axis2.webapp;
+
+import java.io.Serializable;
+import java.util.Iterator;
+import java.util.LinkedHashSet;
+import java.util.Set;
+
+final class CSRFTokenCache implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    private final Set<String> tokens = new LinkedHashSet<String>();
+
+    synchronized void add(String token) {
+        tokens.add(token);
+        if (tokens.size() > 10) {
+            Iterator<String> it = tokens.iterator();
+            it.next();
+            it.remove();
+        }
+    }
+
+    synchronized boolean isValid(String token) {
+        return tokens.contains(token);
+    }
+}
diff --git a/modules/webapp/src/main/java/org/apache/axis2/webapp/Redirect.java b/modules/webapp/src/main/java/org/apache/axis2/webapp/Redirect.java
new file mode 100644
index 0000000..81ceee7
--- /dev/null
+++ b/modules/webapp/src/main/java/org/apache/axis2/webapp/Redirect.java
@@ -0,0 +1,77 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.axis2.webapp;
+
+import java.io.IOException;
+import java.net.URLEncoder;
+import java.util.LinkedHashMap;
+import java.util.Map;
+
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import javax.servlet.http.HttpSession;
+
+final class Redirect extends ActionResult {
+    private final String action;
+    private final Map<String,String> parameters = new LinkedHashMap<String,String>();
+    private Status status;
+
+    Redirect(String action) {
+        this.action = action;
+    }
+
+    Redirect withParameter(String name, String value) {
+        parameters.put(name, value);
+        return this;
+    }
+
+    Redirect withStatus(boolean success, String message) {
+        this.status = new Status(success, message);
+        return this;
+    }
+
+    @Override
+    void process(HttpServletRequest request, HttpServletResponse response)
+            throws IOException, ServletException {
+        StringBuilder url = new StringBuilder(response.encodeRedirectURL(action));
+        if (status != null) {
+            HttpSession session = request.getSession();
+            StatusCache statusCache = (StatusCache)session.getAttribute(StatusCache.class.getName());
+            if (statusCache == null) {
+                statusCache = new StatusCache();
+            }
+            parameters.put("status", statusCache.add(status));
+            session.setAttribute(StatusCache.class.getName(), statusCache);
+        }
+        boolean first = true;
+        for (Map.Entry<String,String> parameter : parameters.entrySet()) {
+            if (first) {
+                url.append('?');
+                first = false;
+            } else {
+                url.append('&');
+            }
+            url.append(parameter.getKey());
+            url.append('=');
+            url.append(URLEncoder.encode(parameter.getValue(), "UTF-8"));
+        }
+        response.sendRedirect(url.toString());
+    }
+}
diff --git a/modules/transport/http/src/org/apache/axis2/transport/http/impl/httpclient3/RESTRequestEntity2Impl.java b/modules/webapp/src/main/java/org/apache/axis2/webapp/Status.java
similarity index 62%
copy from modules/transport/http/src/org/apache/axis2/transport/http/impl/httpclient3/RESTRequestEntity2Impl.java
copy to modules/webapp/src/main/java/org/apache/axis2/webapp/Status.java
index 2ccf3c8..5aadc02 100644
--- a/modules/transport/http/src/org/apache/axis2/transport/http/impl/httpclient3/RESTRequestEntity2Impl.java
+++ b/modules/webapp/src/main/java/org/apache/axis2/webapp/Status.java
@@ -16,20 +16,26 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+package org.apache.axis2.webapp;
 
-package org.apache.axis2.transport.http.impl.httpclient3;
+import java.io.Serializable;
 
-import org.apache.axis2.transport.http.RESTRequestEntity2;
-import org.apache.commons.httpclient.methods.RequestEntity;
+public final class Status implements Serializable {
+    private static final long serialVersionUID = 1L;
 
-public class RESTRequestEntity2Impl extends RESTRequestEntity2 implements RequestEntity {
+    private final boolean success;
+    private final String message;
 
-    public RESTRequestEntity2Impl(String postRequestBody, String contentType) {
-        super(postRequestBody, contentType);
+    public Status(boolean success, String message) {
+        this.success = success;
+        this.message = message;
     }
 
-    public String getContentType() {
-        return getContentTypeAsString();
+    public boolean isSuccess() {
+        return success;
     }
 
+    public String getMessage() {
+        return message;
+    }
 }
diff --git a/modules/webapp/src/main/java/org/apache/axis2/webapp/StatusCache.java b/modules/webapp/src/main/java/org/apache/axis2/webapp/StatusCache.java
new file mode 100644
index 0000000..0dd9a0d
--- /dev/null
+++ b/modules/webapp/src/main/java/org/apache/axis2/webapp/StatusCache.java
@@ -0,0 +1,48 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.axis2.webapp;
+
+import java.io.Serializable;
+import java.util.LinkedHashMap;
+import java.util.Map;
+import java.util.Map.Entry;
+import java.util.UUID;
+
+final class StatusCache implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    private final Map<String,Status> entries = new LinkedHashMap<String,Status>() {
+        private static final long serialVersionUID = 1L;
+
+        @Override
+        protected boolean removeEldestEntry(Entry<String,Status> eldest) {
+            return size() > 10;
+        }
+    };
+
+    synchronized String add(Status status) {
+        String key = UUID.randomUUID().toString();
+        entries.put(key, status);
+        return key;
+    }
+
+    synchronized Status get(String key) {
+        return entries.get(key);
+    }
+}
diff --git a/modules/webapp/src/main/java/org/apache/axis2/webapp/View.java b/modules/webapp/src/main/java/org/apache/axis2/webapp/View.java
new file mode 100644
index 0000000..0b0c0e3
--- /dev/null
+++ b/modules/webapp/src/main/java/org/apache/axis2/webapp/View.java
@@ -0,0 +1,40 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.axis2.webapp;
+
+import java.io.IOException;
+
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+final class View extends ActionResult {
+    private final String jspName;
+    
+    View(String jspName) {
+        this.jspName = jspName;
+    }
+
+    @Override
+    void process(HttpServletRequest request, HttpServletResponse response)
+            throws IOException, ServletException {
+        response.setContentType("text/html");
+        request.getRequestDispatcher("/WEB-INF/views/admin/" + jspName).include(request, response);
+    }
+}
diff --git a/modules/webapp/src/main/webapp/axis2-web/LeftFrame.jsp b/modules/webapp/src/main/webapp/WEB-INF/include/LeftFrame.jsp
similarity index 74%
rename from modules/webapp/src/main/webapp/axis2-web/LeftFrame.jsp
rename to modules/webapp/src/main/webapp/WEB-INF/include/LeftFrame.jsp
index 9db9b58..35b1b74 100644
--- a/modules/webapp/src/main/webapp/axis2-web/LeftFrame.jsp
+++ b/modules/webapp/src/main/webapp/WEB-INF/include/LeftFrame.jsp
@@ -17,6 +17,7 @@
   ~ under the License.

   --%>

 

+<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

 <%@ page import="org.apache.axis2.Constants" %>

 <%@ page import="org.apache.axis2.context.ConfigurationContext" %>

 <%@ page import="org.apache.axis2.context.ServiceContext" %>

@@ -49,7 +50,7 @@
        &nbsp;&nbsp;&nbsp;&nbsp;

        </td>

        <td>

-         <a href="axis2-admin/upload">Upload Service</a>

+         <a href="<c:url value="axis2-admin/upload"/>">Upload Service</a>

        </td>

     </tr>

 <tr>

@@ -62,7 +63,7 @@
        &nbsp;&nbsp;&nbsp;&nbsp;

     </td>

     <td >

-      <a href="axis2-admin/listService">Available Services</a>

+      <a href="<c:url value="axis2-admin/listServices"/>">Available Services</a>

     </td>

  </tr>

  <tr>

@@ -70,7 +71,7 @@
        &nbsp;&nbsp;&nbsp;&nbsp;

     </td>

     <td >

-      <a href="axis2-admin/listServiceGroups">Available Service Groups</a>

+      <a href="<c:url value="axis2-admin/listServiceGroups"/>">Available Service Groups</a>

     </td>

  </tr>

  <tr>

@@ -78,7 +79,7 @@
        &nbsp;&nbsp;&nbsp;&nbsp;

     </td>

     <td >

-      <a href="axis2-admin/listModules">Available Modules</a>

+      <a href="<c:url value="axis2-admin/listModules"/>">Available Modules</a>

     </td>

  </tr>

  <tr>

@@ -86,7 +87,7 @@
        &nbsp;&nbsp;&nbsp;&nbsp;

     </td>

     <td>

-      <a href="axis2-admin/globalModules">Globally Engaged Modules</a>

+      <a href="<c:url value="axis2-admin/globalModules"/>">Globally Engaged Modules</a>

     </td>

  </tr>

  <tr>

@@ -94,7 +95,7 @@
        &nbsp;&nbsp;&nbsp;&nbsp;

     </td>

     <td >

-      <a href="axis2-admin/listPhases">Available Phases</a>

+      <a href="<c:url value="axis2-admin/listPhases"/>">Available Phases</a>

     </td>

  </tr>

   <tr>

@@ -107,7 +108,7 @@
        &nbsp;&nbsp;&nbsp;&nbsp;

        </td>

        <td>

-         <a href="axis2-admin/viewGlobalHandlers">Global Chains</a>

+         <a href="<c:url value="axis2-admin/viewGlobalChains"/>">Global Chains</a>

        </td>

     </tr>

     <tr>

@@ -115,7 +116,7 @@
        &nbsp;&nbsp;&nbsp;&nbsp;

        </td>

        <td>

-         <a href="axis2-admin/selectService">Operation Specific Chains</a>

+         <a href="<c:url value="axis2-admin/selectService"/>">Operation Specific Chains</a>

        </td>

     </tr>

     <tr>

@@ -128,7 +129,7 @@
         &nbsp;&nbsp;&nbsp;&nbsp;

        </td>

        <td>

-         <a href="axis2-admin/engagingglobally">For all Services</a>

+         <a href="<c:url value="axis2-admin/engageGlobally"/>">For all Services</a>

        </td>

     </tr>

      <tr>

@@ -136,7 +137,7 @@
          &nbsp;&nbsp;&nbsp;&nbsp;

         </td>

         <td>

-          <a href="axis2-admin/engageToServiceGroup">For a Service Group</a>

+          <a href="<c:url value="axis2-admin/engageToServiceGroup"/>">For a Service Group</a>

         </td>

      </tr>

 

@@ -146,7 +147,7 @@
        &nbsp;&nbsp;&nbsp;&nbsp;

        </td>

        <td>

-         <a href="axis2-admin/engageToService">For a Service</a>

+         <a href="<c:url value="axis2-admin/engageToService"/>">For a Service</a>

        </td>

     </tr>

 

@@ -155,7 +156,7 @@
        &nbsp;&nbsp;&nbsp;&nbsp;

        </td>

        <td>

-         <a href="axis2-admin/listOperation">For an Operation</a>

+         <a href="<c:url value="axis2-admin/listOperation"/>">For an Operation</a>

        </td>

     </tr>

 

@@ -169,7 +170,7 @@
        &nbsp;&nbsp;&nbsp;&nbsp;

        </td>

        <td>

-         <a href="axis2-admin/deactivateService">Deactivate Service</a>

+         <a href="<c:url value="axis2-admin/deactivateService"/>">Deactivate Service</a>

        </td>

     </tr>

     <tr>

@@ -177,7 +178,7 @@
        &nbsp;&nbsp;&nbsp;&nbsp;

        </td>

        <td>

-         <a href="axis2-admin/activateService">Activate Service</a>

+         <a href="<c:url value="axis2-admin/activateService"/>">Activate Service</a>

        </td>

     </tr>

     <tr>

@@ -185,7 +186,7 @@
        &nbsp;&nbsp;&nbsp;&nbsp;

        </td>

        <td>

-         <a href="axis2-admin/selectServiceParaEdit">Edit Parameters</a>

+         <a href="<c:url value="axis2-admin/selectServiceParaEdit"/>">Edit Parameters</a>

        </td>

     </tr>

     <tr>

@@ -198,7 +199,7 @@
        &nbsp;&nbsp;&nbsp;&nbsp;

        </td>

        <td>

-         <a href="axis2-admin/listContexts">View Hierarchy</a>

+         <a href="<c:url value="axis2-admin/viewContexts"/>">View Hierarchy</a>

        </td>

     </tr>

 </table>

diff --git a/modules/webapp/src/main/webapp/axis2-web/include/adminfooter.inc b/modules/webapp/src/main/webapp/WEB-INF/include/adminfooter.inc
similarity index 100%
rename from modules/webapp/src/main/webapp/axis2-web/include/adminfooter.inc
rename to modules/webapp/src/main/webapp/WEB-INF/include/adminfooter.inc
diff --git a/modules/webapp/src/main/webapp/axis2-web/include/adminfooter.jsp b/modules/webapp/src/main/webapp/WEB-INF/include/adminfooter.jsp
similarity index 100%
rename from modules/webapp/src/main/webapp/axis2-web/include/adminfooter.jsp
rename to modules/webapp/src/main/webapp/WEB-INF/include/adminfooter.jsp
diff --git a/modules/webapp/src/main/webapp/axis2-web/include/adminheader.jsp b/modules/webapp/src/main/webapp/WEB-INF/include/adminheader.jsp
similarity index 94%
rename from modules/webapp/src/main/webapp/axis2-web/include/adminheader.jsp
rename to modules/webapp/src/main/webapp/WEB-INF/include/adminheader.jsp
index 80bf818..c6c4373 100644
--- a/modules/webapp/src/main/webapp/axis2-web/include/adminheader.jsp
+++ b/modules/webapp/src/main/webapp/WEB-INF/include/adminheader.jsp
@@ -17,6 +17,7 @@
   ~ under the License.

   --%>

 

+<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

 <%@ page import="org.apache.axis2.Constants" %>

 <%@ page import="org.apache.axis2.context.ConfigurationContext" %>

 <%@ page import="org.apache.axis2.context.ServiceContext" %>

@@ -70,12 +71,12 @@
     <table summary="left frame table" class="FULL_BLANK">

       <tr>

         <td valign="top" style="width:20%">

-          <jsp:include page="../LeftFrame.jsp"/>

+          <jsp:include page="LeftFrame.jsp"/>

         </td>

         <td valign="top" align="left" style="width:80%">

         <table summary="logout table" width="100%">

           <tr>

             <td align="right" colspan="2"><a href="#" onclick="javascript:history.back();">Back</a>&nbsp;&nbsp;|&nbsp;&nbsp;<a

-              href="axis2-admin/logout">Log out</a></td>

+              href="<c:url value="axis2-admin/logout"/>">Log out</a></td>

           </tr>

         </table>

diff --git a/modules/webapp/src/main/webapp/axis2-web/include/footer.inc b/modules/webapp/src/main/webapp/WEB-INF/include/footer.inc
similarity index 100%
rename from modules/webapp/src/main/webapp/axis2-web/include/footer.inc
rename to modules/webapp/src/main/webapp/WEB-INF/include/footer.inc
diff --git a/modules/webapp/src/main/webapp/axis2-web/include/header.inc b/modules/webapp/src/main/webapp/WEB-INF/include/header.inc
similarity index 100%
rename from modules/webapp/src/main/webapp/axis2-web/include/header.inc
rename to modules/webapp/src/main/webapp/WEB-INF/include/header.inc
diff --git a/modules/webapp/src/main/webapp/axis2-web/include/httpbase.jsp b/modules/webapp/src/main/webapp/WEB-INF/include/httpbase.jsp
similarity index 98%
rename from modules/webapp/src/main/webapp/axis2-web/include/httpbase.jsp
rename to modules/webapp/src/main/webapp/WEB-INF/include/httpbase.jsp
index e503bf8..0aac806 100644
--- a/modules/webapp/src/main/webapp/axis2-web/include/httpbase.jsp
+++ b/modules/webapp/src/main/webapp/WEB-INF/include/httpbase.jsp
@@ -17,6 +17,7 @@
   ~ under the License.
   --%>
 
+<%@ page session="false" %>
 <%@ page import="org.apache.axis2.Constants" %>
 <%@ page import="org.apache.axis2.context.ConfigurationContext" %>
 <%@ page import="org.apache.axis2.description.Parameter" %>
diff --git a/modules/webapp/src/main/webapp/axis2-web/include/link-footer.inc b/modules/webapp/src/main/webapp/WEB-INF/include/link-footer.inc
similarity index 100%
rename from modules/webapp/src/main/webapp/axis2-web/include/link-footer.inc
rename to modules/webapp/src/main/webapp/WEB-INF/include/link-footer.inc
diff --git a/modules/webapp/src/main/webapp/axis2-web/include/link-footer.jsp b/modules/webapp/src/main/webapp/WEB-INF/include/link-footer.jsp
similarity index 98%
rename from modules/webapp/src/main/webapp/axis2-web/include/link-footer.jsp
rename to modules/webapp/src/main/webapp/WEB-INF/include/link-footer.jsp
index 28d8900..c1b94fb 100644
--- a/modules/webapp/src/main/webapp/axis2-web/include/link-footer.jsp
+++ b/modules/webapp/src/main/webapp/WEB-INF/include/link-footer.jsp
@@ -57,6 +57,7 @@
 ~ specific language governing permissions and limitations

 ~ under the License.

 --%>

+<%@ page session="false" %>

 <table summary="back home table"width="100%">

 	<tr><td>

 		<table summary="embedded back home table">

diff --git a/modules/webapp/src/main/webapp/WEB-INF/tags/status.tag b/modules/webapp/src/main/webapp/WEB-INF/tags/status.tag
new file mode 100644
index 0000000..d761a60
--- /dev/null
+++ b/modules/webapp/src/main/webapp/WEB-INF/tags/status.tag
@@ -0,0 +1,7 @@
+<%@ tag body-content="empty" %>
+<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
+<c:if test="${not empty requestScope.status}">
+<p style="color: <c:out value="${requestScope.status.success ? 'green' : 'red'}"/>">
+<c:out value="${requestScope.status.message}"/>
+</p>
+</c:if>
diff --git a/modules/webapp/src/main/webapp/axis2-web/Login.jsp b/modules/webapp/src/main/webapp/WEB-INF/views/admin/Login.jsp
similarity index 91%
rename from modules/webapp/src/main/webapp/axis2-web/Login.jsp
rename to modules/webapp/src/main/webapp/WEB-INF/views/admin/Login.jsp
index 8ec09b0..11372d0 100644
--- a/modules/webapp/src/main/webapp/axis2-web/Login.jsp
+++ b/modules/webapp/src/main/webapp/WEB-INF/views/admin/Login.jsp
@@ -17,18 +17,18 @@
   ~ under the License.
   --%>
 
-<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<%@ page contentType="text/html;charset=UTF-8" language="java" session="false" %>
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
 <html>
   <head>
-    <jsp:include page="include/httpbase.jsp"/>
+    <jsp:include page="/WEB-INF/include/httpbase.jsp"/>
     <title>Login to Axis2 :: Administration page</title>
     <link href="axis2-web/css/axis-style.css" rel="stylesheet" type="text/css">
   </head>
 
   <body onload="javascript:document.LoginForm.userName.focus();">
-    <jsp:include page="include/header.inc"/>
-    <jsp:include page="include/link-footer.jsp"/>
+    <jsp:include page="/WEB-INF/include/header.inc"/>
+    <jsp:include page="/WEB-INF/include/link-footer.jsp"/>
     <table summary="main content table" class="FULL_BLANK">
       <tr>
         <td valign="top">
@@ -83,7 +83,7 @@
         </td>
       </tr>
     </table>   
-    <jsp:include page="include/footer.inc"/>
+    <jsp:include page="/WEB-INF/include/footer.inc"/>
   </body>
 </html>
 
diff --git a/modules/webapp/src/main/webapp/axis2-web/SelectService.jsp b/modules/webapp/src/main/webapp/WEB-INF/views/admin/SelectService.jsp
similarity index 74%
rename from modules/webapp/src/main/webapp/axis2-web/SelectService.jsp
rename to modules/webapp/src/main/webapp/WEB-INF/views/admin/SelectService.jsp
index 9bf8521..16c1f6a 100644
--- a/modules/webapp/src/main/webapp/axis2-web/SelectService.jsp
+++ b/modules/webapp/src/main/webapp/WEB-INF/views/admin/SelectService.jsp
@@ -17,55 +17,44 @@
   ~ under the License.

   --%>

 

+<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

 <%@ page import="org.apache.axis2.Constants,

                  org.apache.axis2.description.AxisService,

                  java.util.Collection,

                  java.util.HashMap,

                  java.util.Iterator"%>

 <%@ page contentType="text/html;charset=UTF-8" language="java" %>

-<jsp:include page="include/adminheader.jsp"/>

+<jsp:include page="/WEB-INF/include/adminheader.jsp"/>

 

   <%

-      String action ="";

       String buttonName="" ;

       String status = (String)request.getSession().getAttribute(Constants.SELECT_SERVICE_TYPE);

       String heading = "";

       String disc = "";

       if(status != null && status.equals("MODULE")) {

-          action = "listOperations";

           buttonName = " View Operations";

           heading = "Select a service to view operation specific chains";

           disc = "Select an Axis service from the combo and click on the 'View Operations' button to view operation specific Chains.";

       } else if(status != null && status.equals("VIEW")){

           buttonName = " View ";

-          action = "viewServiceHandlers";

           heading = "Select a service to view service handlers";

           disc = "Select an Axis service from the combo and click on the 'View' button to view service handlers.";

       } else if (status != null && status.equals("SERVICE_PARAMETER")){

           buttonName = " Edit Parameters ";

-          action = "editServicePara"; // Constants.EDIR_SERVICE_PARA;

           heading = "Select a Service to Edit Parameters";

           disc = "Select an Axis service from the combo and click on the 'Edit Parameters' button to edit parameters.";

       }

   %>

 <h1><%=heading%></h1>

 <p><%=disc%></p>

-<form method="get" name="selectServiceForm" action="axis2-admin/<%=action%>">

+<form method="get" name="selectServiceForm" action="<c:url value="axis2-admin/${requestScope.action}"/>">

 <table summary="main content table" border="0" style="width: 50%" cellspacing="1" cellpadding="1">

          <tr>

         <td style="width: 35%">Select a Service :</td><td style="width:65%">

             <select name="axisService">

-            <%

-                HashMap services = (HashMap)request.getSession().getAttribute(Constants.SERVICE_MAP);

-                Collection serviceCol =  services.values();

-                for (Iterator iterator = serviceCol.iterator(); iterator.hasNext();) {

-                    AxisService axisService = (AxisService)iterator.next();

-                    String serviceName = axisService.getName();

-            %> <option value="<%=serviceName%>"><%=serviceName%></option>

-             <%

-                }

-                request.getSession().setAttribute(Constants.SERVICE_MAP,null);

-             %>

+                <c:forEach var="service" items="${requestScope.configContext.axisConfiguration.services.values()}">

+                    <option value="${service.name}"><c:out value="${service.name}"/></option>

+                </c:forEach>

              </select>

            </td>

         </tr>

@@ -77,4 +66,4 @@
          </tr>

       </table>

    </form>

-<jsp:include page="include/adminfooter.jsp"/>

+<jsp:include page="/WEB-INF/include/adminfooter.jsp"/>

diff --git a/modules/webapp/src/main/webapp/axis2-web/ActivateService.jsp b/modules/webapp/src/main/webapp/WEB-INF/views/admin/activateService.jsp
similarity index 81%
rename from modules/webapp/src/main/webapp/axis2-web/ActivateService.jsp
rename to modules/webapp/src/main/webapp/WEB-INF/views/admin/activateService.jsp
index ca3ef1b..41ecd18 100644
--- a/modules/webapp/src/main/webapp/axis2-web/ActivateService.jsp
+++ b/modules/webapp/src/main/webapp/WEB-INF/views/admin/activateService.jsp
@@ -17,15 +17,16 @@
   ~ under the License.

   --%>

 

+<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

 <%@ page import="org.apache.axis2.Constants,

                  org.apache.axis2.description.AxisService,

                  java.util.Collection,

                  java.util.HashMap,

                  java.util.Iterator"%>

 <%@ page contentType="text/html;charset=UTF-8" language="java" %>

-<jsp:include page="include/adminheader.jsp"/>

+<jsp:include page="/WEB-INF/include/adminheader.jsp"/>

 <h1>Turn On Service</h1>

-<form method="get" name="serviceActivate" action="axis2-admin/activateService">

+<form method="post" name="serviceActivate" action="<c:url value="axis2-admin/doActivateService"/>">

   <table summary="main content table" width="100%"  border="0">

 <tr>

   <td colspan="2" >

@@ -34,20 +35,20 @@
   </tr>

   <tr>

   <%

-HashMap services = (HashMap)request.getSession().getAttribute(Constants.SERVICE_MAP);

-Collection col = services.values();

 String html = "";

 int count = 0;

-

-for (Iterator iterator = col.iterator(); iterator.hasNext();) {

-	AxisService axisServices = (AxisService) iterator.next();

+%>

+<c:forEach var="service" items="${requestScope.configContext.axisConfiguration.services.values()}">

+<%

+	AxisService axisServices = (AxisService) pageContext.getAttribute("service");

 	if(!axisServices.isActive()){

 		count++;

 		html += "<option value='" + axisServices.getName() + "'>";

 		html += axisServices.getName() + "</option>";

 	}

-}

-request.getSession().setAttribute(Constants.SERVICE_MAP,null);

+%>

+</c:forEach>

+<%

 if (count > 0) {

 %>

   

@@ -79,4 +80,4 @@
 

 </table>

 </form>

-<jsp:include page="include/adminfooter.jsp"/>

+<jsp:include page="/WEB-INF/include/adminfooter.jsp"/>

diff --git a/modules/webapp/src/main/webapp/axis2-web/admin.jsp b/modules/webapp/src/main/webapp/WEB-INF/views/admin/admin.jsp
similarity index 91%
rename from modules/webapp/src/main/webapp/axis2-web/admin.jsp
rename to modules/webapp/src/main/webapp/WEB-INF/views/admin/admin.jsp
index 08fd3f5..95837be 100644
--- a/modules/webapp/src/main/webapp/axis2-web/admin.jsp
+++ b/modules/webapp/src/main/webapp/WEB-INF/views/admin/admin.jsp
@@ -18,7 +18,7 @@
   --%>

 

 <%@ page contentType="text/html;charset=UTF-8" language="java" %>

-<jsp:include page="include/adminheader.jsp"/>

+<jsp:include page="/WEB-INF/include/adminheader.jsp"/>

 <h1>Welcome to Axis2 Web Admin Module !!</h1>

 <p>You are now logged into the Axis2 administration console from inside

 the console you will be able to</p>

@@ -28,4 +28,4 @@
         <li>to upload new services into Axis2 [Service hot-deployment].</li>

     </ul>

 

-<jsp:include page="include/adminfooter.jsp"/>

+<jsp:include page="/WEB-INF/include/adminfooter.jsp"/>

diff --git a/modules/webapp/src/main/webapp/axis2-web/InActivateService.jsp b/modules/webapp/src/main/webapp/WEB-INF/views/admin/deactivateService.jsp
similarity index 81%
rename from modules/webapp/src/main/webapp/axis2-web/InActivateService.jsp
rename to modules/webapp/src/main/webapp/WEB-INF/views/admin/deactivateService.jsp
index b70ca1e..31272e0 100644
--- a/modules/webapp/src/main/webapp/axis2-web/InActivateService.jsp
+++ b/modules/webapp/src/main/webapp/WEB-INF/views/admin/deactivateService.jsp
@@ -17,15 +17,16 @@
   ~ under the License.

   --%>

 

+<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

 <%@ page import="org.apache.axis2.Constants,

                  org.apache.axis2.description.AxisService,

                  java.util.Collection,

                  java.util.HashMap,

                  java.util.Iterator"%>

 <%@ page contentType="text/html;charset=UTF-8" language="java" %>

-<jsp:include page="include/adminheader.jsp"/>

+<jsp:include page="/WEB-INF/include/adminheader.jsp"/>

 <h1>Deactivate Service</h1>

-<form method="get" name="serviceInActivate" action="axis2-admin/deactivateService">

+<form method="post" name="serviceInActivate" action="<c:url value="axis2-admin/doDeactivateService"/>">

   <table summary="main content table" style="width: 100%"  border="0">

 <tr>

   <td colspan="2" >

@@ -34,20 +35,20 @@
   </tr>

   <tr>

 <%

-HashMap services = (HashMap)request.getSession().getAttribute(Constants.SERVICE_MAP);

-Collection col = services.values();

 String html = "";

 int count = 0;

-

-for (Iterator iterator = col.iterator(); iterator.hasNext();) {

-	AxisService axisServices = (AxisService) iterator.next();

+%>

+<c:forEach var="service" items="${requestScope.configContext.axisConfiguration.services.values()}">

+<%

+	AxisService axisServices = (AxisService) pageContext.getAttribute("service");

 	if(axisServices.isActive()){

 		count++;

 		html += "<option value='" + axisServices.getName() + "'>";

 		html += axisServices.getName() + "</option>";

 	}

-}

-request.getSession().setAttribute(Constants.SERVICE_MAP,null);

+%>

+</c:forEach>

+<%

 if (count > 0) {

 %>

 

@@ -80,4 +81,4 @@
 

 </table>

 </form>

-<jsp:include page="include/adminfooter.jsp"/>

+<jsp:include page="/WEB-INF/include/adminfooter.jsp"/>

diff --git a/modules/webapp/src/main/webapp/WEB-INF/views/admin/editServiceParameters.jsp b/modules/webapp/src/main/webapp/WEB-INF/views/admin/editServiceParameters.jsp
new file mode 100644
index 0000000..479982a
--- /dev/null
+++ b/modules/webapp/src/main/webapp/WEB-INF/views/admin/editServiceParameters.jsp
@@ -0,0 +1,68 @@
+<%--
+  ~ Licensed to the Apache Software Foundation (ASF) under one
+  ~ or more contributor license agreements. See the NOTICE file
+  ~ distributed with this work for additional information
+  ~ regarding copyright ownership. The ASF licenses this file
+  ~ to you under the Apache License, Version 2.0 (the
+  ~ "License"); you may not use this file except in compliance
+  ~ with the License. You may obtain a copy of the License at
+  ~
+  ~ http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing,
+  ~ software distributed under the License is distributed on an
+  ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  ~ KIND, either express or implied. See the License for the
+  ~ specific language governing permissions and limitations
+  ~ under the License.
+  --%>
+
+<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
+<%@ taglib prefix="t" tagdir="/WEB-INF/tags" %>
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<jsp:include page="/WEB-INF/include/adminheader.jsp"/>
+<h1>Edit Service Parameters</h1>
+<t:status/>
+<c:if test="${not empty requestScope.serviceName}">
+    <form method="post" action="<c:url value="axis2-admin/updateServiceParameters"/>">
+        <input type="hidden" name="axisService" value="<c:out value="${requestScope.serviceName}"/>">
+        <table summary="main content table" width="100%">
+            <tr>
+                <td colspan="2" ><b>Service Parameters :: <c:out value="${requestScope.serviceName}"/></b></td>
+            </tr>
+            <c:forEach items="${requestScope.parameters}" var="parameter">
+                <tr>
+                    <td><c:out value="${parameter.key}"/></td>
+                    <td><input type="text" name="<c:out value="${requestScope.serviceName}_${parameter.key}"/>" value="<c:out value="${parameter.value}"/>" size="50"></td>
+                </tr>
+            </c:forEach>
+            <c:if test="${not empty requestScope.operations}">
+                <tr>
+                    <td colspan="2">&nbsp</td>
+                </tr>
+                <tr>
+                   <td colspan="2"><b>Operation Parameters ::</b></td>
+                </tr>
+                <c:forEach items="${requestScope.operations}" var="operation">
+                    <tr>
+                        <td colspan="2">&nbsp</td>
+                    </tr>
+                    <tr>
+                        <td colspan="2"><b>Operation : <c:out value="${operation.key}"/></b></td>
+                    </tr>
+                    <c:forEach items="${operation.value}" var="parameter">
+                        <tr>
+                            <td><c:out value="${parameter.key}"/></td>
+                            <td><input type="text" name="<c:out value="${operation.key}_${parameter.key}"/>" value="<c:out value="${parameter.value}"/>" size="50"></td>
+                        </tr>
+                    </c:forEach>
+                </c:forEach>
+            </c:if>
+            <tr>
+                <td>&nbsp;</td>
+                <td><input name="changePara" type="submit" value=" Change " ></td>
+            </tr>
+        </table>
+   </form>
+</c:if>
+<jsp:include page="/WEB-INF/include/adminfooter.jsp"/>
diff --git a/modules/webapp/src/main/webapp/axis2-web/engagingglobally.jsp b/modules/webapp/src/main/webapp/WEB-INF/views/admin/engageGlobally.jsp
similarity index 85%
rename from modules/webapp/src/main/webapp/axis2-web/engagingglobally.jsp
rename to modules/webapp/src/main/webapp/WEB-INF/views/admin/engageGlobally.jsp
index 95f6ccd..47421cc 100644
--- a/modules/webapp/src/main/webapp/axis2-web/engagingglobally.jsp
+++ b/modules/webapp/src/main/webapp/WEB-INF/views/admin/engageGlobally.jsp
@@ -17,28 +17,27 @@
   ~ under the License.

   --%>

 

+<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

+<%@ taglib prefix="t" tagdir="/WEB-INF/tags" %>

 <%@ page import="org.apache.axis2.Constants,

                  org.apache.axis2.description.AxisModule,

                  java.util.Collection,

                  java.util.HashMap,

                  java.util.Iterator" %>

 <%@ page import="org.apache.axis2.util.Utils" %>

-<jsp:include page="include/adminheader.jsp"/>

-<%

-    String status = (String) request.getSession().getAttribute(Constants.ENGAGE_STATUS);

-%>

+<jsp:include page="/WEB-INF/include/adminheader.jsp"/>

 <h1>Engage Module Globally</h1>

 

 <p>To engage a module on all services across the system, select a module from the combo box below

     and click on the "Engage" button. Any module that needs to place handlers into the pre-dispatch

     phase needs to be engaged globally.</p>

 

-<form method="get" name="selectModuleForm" action="axis2-admin/engagingglobally">

+<form method="post" name="selectModuleForm" action="<c:url value="axis2-admin/doEngageGlobally"/>">

     <table summary="main content table" border="0" style="width:100%" cellspacing="1" cellpadding="1">

         <tr>

             <td style="width: 15%">Select a Module :</td>

             <td style="width: 75%" align="left">

-                <select name="modules">

+                <select name="module">

                     <%

                         HashMap modules = (HashMap) request.getSession().getAttribute(Constants.MODULE_MAP);

                         request.getSession().setAttribute(Constants.MODULE_MAP,null);

@@ -62,10 +61,5 @@
         </tr>

     </table>

 </form>

-<%

-    if (status != null) {

-%>

-<p style="color:blue"><%=Utils.sanitizeWebOutput(status)%></p>

-<%

-    } %>

-<jsp:include page="include/adminfooter.jsp"/>

+<t:status/>

+<jsp:include page="/WEB-INF/include/adminfooter.jsp"/>

diff --git a/modules/webapp/src/main/webapp/axis2-web/engagingtoanoperation.jsp b/modules/webapp/src/main/webapp/WEB-INF/views/admin/engageToOperation.jsp
similarity index 86%
rename from modules/webapp/src/main/webapp/axis2-web/engagingtoanoperation.jsp
rename to modules/webapp/src/main/webapp/WEB-INF/views/admin/engageToOperation.jsp
index 03c97c0..bb45a64 100644
--- a/modules/webapp/src/main/webapp/axis2-web/engagingtoanoperation.jsp
+++ b/modules/webapp/src/main/webapp/WEB-INF/views/admin/engageToOperation.jsp
@@ -17,6 +17,8 @@
   ~ under the License.

   --%>

 

+<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

+<%@ taglib prefix="t" tagdir="/WEB-INF/tags" %>

 <%@ page contentType="text/html; charset=iso-8859-1" language="java" import="org.apache.axis2.Constants,

                                                                              org.apache.axis2.description.AxisModule,

                                                                              org.apache.axis2.description.AxisOperation,

@@ -24,10 +26,7 @@
                                                                              java.util.Collection,

                                                                              java.util.HashMap,

                                                                              java.util.Iterator"%>

-<jsp:include page="include/adminheader.jsp"/>

-<%

-    String status = (String)request.getSession().getAttribute(Constants.ENGAGE_STATUS);

-%>

+<jsp:include page="/WEB-INF/include/adminheader.jsp"/>

 <h1>Engage Module for an Operation</h1>

 <p>To engage a module for an  axis operation,</p>

     <ol>

@@ -36,7 +35,8 @@
             <li>click "Engage".</li>

         </ol>

 

-<form method="get" name="selectModuleForm" action="axis2-admin/listOperations">

+<form method="post" name="selectModuleForm" action="<c:url value="axis2-admin/doEngageToOperation"/>">

+<input type="hidden" name="service" value="<c:out value="${requestScope.service}"/>">

 <table summary="main content table" border="0" width="100%" cellspacing="1" cellpadding="1">

     <tr>

         <td>

@@ -49,7 +49,7 @@
     </tr>

     <tr>

         <td>

-            <select name="modules">

+            <select name="module">

             <%

                 HashMap moduels = (HashMap)request.getSession().getAttribute(Constants.MODULE_MAP);

                 request.getSession().setAttribute(Constants.MODULE_MAP,null);

@@ -114,15 +114,9 @@
          </tr>

          <tr>

              <td>

-                <textarea cols="50"  <%

-                        if(status == null){

-                           %>

-                            style="display:none"

-                            <%

-                        } %>

-                    ><%=Utils.sanitizeWebOutput(status)%></textarea>

+                <t:status/>

               </td>

            </tr>

       </table>

    </form>

-<jsp:include page="include/adminfooter.jsp"/>

+<jsp:include page="/WEB-INF/include/adminfooter.jsp"/>

diff --git a/modules/webapp/src/main/webapp/axis2-web/engagingtoaservice.jsp b/modules/webapp/src/main/webapp/WEB-INF/views/admin/engageToService.jsp
similarity index 70%
rename from modules/webapp/src/main/webapp/axis2-web/engagingtoaservice.jsp
rename to modules/webapp/src/main/webapp/WEB-INF/views/admin/engageToService.jsp
index 23dc12e..921be87 100644
--- a/modules/webapp/src/main/webapp/axis2-web/engagingtoaservice.jsp
+++ b/modules/webapp/src/main/webapp/WEB-INF/views/admin/engageToService.jsp
@@ -17,6 +17,8 @@
   ~ under the License.

   --%>

 

+<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

+<%@ taglib prefix="t" tagdir="/WEB-INF/tags" %>

 <%@ page contentType="text/html; charset=iso-8859-1" language="java" import="org.apache.axis2.Constants,

                                                                              org.apache.axis2.description.AxisModule,

                                                                              org.apache.axis2.description.AxisService,

@@ -25,10 +27,7 @@
                                                                              java.util.Iterator"

          %>

 <%@ page import="org.apache.axis2.util.Utils" %>

-<jsp:include page="include/adminheader.jsp"/>

-<%

-    String status = (String) request.getSession().getAttribute(Constants.ENGAGE_STATUS);

-%>

+<jsp:include page="/WEB-INF/include/adminheader.jsp"/>

 <h1>Engage Module for a Service</h1>

 

 <p>To engage a module for a axis service,</p>

@@ -39,7 +38,7 @@
         <li>click "Engage".</li>

     </ol>

 

-<form method="get" name="selectModuleForm" action="axis2-admin/engageToService">

+<form method="post" name="selectModuleForm" action="<c:url value="axis2-admin/doEngageToService"/>">

     <table summary="main content table" border="0" width="100%" cellspacing="1" cellpadding="1">

         <tr>

             <td>

@@ -52,7 +51,7 @@
         </tr>

         <tr>

             <td>

-                <select name="modules">

+                <select name="module">

                     <%

 

                         HashMap moduels = (HashMap)request.getSession().getAttribute(Constants.MODULE_MAP);

@@ -85,23 +84,9 @@
         <tr>

             <td>

                 <select name="axisService">

-                    <%

-

-                        HashMap services = (HashMap)request.getSession().getAttribute(Constants.SERVICE_MAP);

-                        Collection serviceCol =  services.values();

-                        for (Iterator iterator = serviceCol.iterator(); iterator.hasNext();) {

-                            AxisService axisService = (AxisService)iterator.next();

-                            String serviceName = axisService.getName();

-

-                    %>

-                    <option value="<%=serviceName%>"><%=serviceName%>

-                    </option>

-                    <%

-

-                       }

-                       request.getSession().setAttribute(Constants.SERVICE_MAP,null);

-

-                    %>

+                    <c:forEach var="service" items="${requestScope.configContext.axisConfiguration.services.values()}">

+                        <option value="${service.name}"><c:out value="${service.name}"/></option>

+                    </c:forEach>

                  </select>

             </td>

         </tr>

@@ -130,21 +115,9 @@
         </tr>

         <tr>

             <td>

-                <textarea cols="50" rows="5" <%

-                    //if (status == null) {

-                %>

-                          style="display:none"

-                        <%

-                            //} %>

-                        >

-                       

-                <%--

-                Following call causes exception so I commented out.

-                	<%=Utils.sanitizeWebOutput(status)%>

-                --%>

-                </textarea>

+                <t:status/>

             </td>

         </tr>

     </table>

 </form>

-<jsp:include page="include/adminfooter.jsp"/>

+<jsp:include page="/WEB-INF/include/adminfooter.jsp"/>

diff --git a/modules/webapp/src/main/webapp/axis2-web/EngageToServiceGroup.jsp b/modules/webapp/src/main/webapp/WEB-INF/views/admin/engageToServiceGroup.jsp
similarity index 87%
rename from modules/webapp/src/main/webapp/axis2-web/EngageToServiceGroup.jsp
rename to modules/webapp/src/main/webapp/WEB-INF/views/admin/engageToServiceGroup.jsp
index 3605593..660a1ee 100644
--- a/modules/webapp/src/main/webapp/axis2-web/EngageToServiceGroup.jsp
+++ b/modules/webapp/src/main/webapp/WEB-INF/views/admin/engageToServiceGroup.jsp
@@ -17,6 +17,8 @@
   ~ under the License.
   --%>
 
+<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
+<%@ taglib prefix="t" tagdir="/WEB-INF/tags" %>
 <%@ page contentType="text/html; charset=iso-8859-1" language="java" import="org.apache.axis2.Constants,
                                                                              org.apache.axis2.description.AxisModule,
                                                                              org.apache.axis2.description.AxisServiceGroup,
@@ -24,9 +26,8 @@
 <%@ page import="java.util.HashMap"%>
 <%@ page import="java.util.Iterator"%>
 <%@ page import="org.apache.axis2.util.Utils" %>
-<jsp:include page="include/adminheader.jsp"/>
+<jsp:include page="/WEB-INF/include/adminheader.jsp"/>
 <%
-    String status = (String)request.getSession().getAttribute(Constants.ENGAGE_STATUS);
     HashMap moduels = (HashMap)request.getSession().getAttribute(Constants.MODULE_MAP);
     request.getSession().setAttribute(Constants.MODULE_MAP,null);
     Collection moduleCol =  moduels.values();
@@ -51,14 +52,14 @@
 		<p>No Axis service groups are present to be engaged.</p>
 		<%} else {
 %>
-<form method="get" name="selectModuleForm" action="axis2-admin/engageToServiceGroup">
+<form method="post" name="selectModuleForm" action="<c:url value="axis2-admin/doEngageToServiceGroup"/>">
     <table summary="main content table" border="0" width="100%" cellspacing="1" cellpadding="1">
         <tr>
             <td>Select a Module :</td>
         </tr>
         <tr>
             <td>
-                <select name="modules">
+                <select name="module">
                     <%
                 for (Iterator iterator = moduleCol.iterator(); iterator.hasNext();) {
                     AxisModule axisOperation = (AxisModule) iterator.next();
@@ -120,13 +121,7 @@
         </tr>
         <tr>
             <td>
-                <textarea cols="50"  <%
-                    if(status == null){
-                %>
-                          style="display:none"
-                        <%
-                            } %>
-                        ><%=Utils.sanitizeWebOutput(status)%></textarea>
+                <t:status/>
             </td>
         </tr>
     </table>
@@ -135,4 +130,4 @@
 		}
 	}
 %>
-<jsp:include page="include/adminfooter.jsp"/>
+<jsp:include page="/WEB-INF/include/adminfooter.jsp"/>
diff --git a/modules/webapp/src/main/webapp/axis2-web/errorModule.jsp b/modules/webapp/src/main/webapp/WEB-INF/views/admin/errorModule.jsp
similarity index 91%
rename from modules/webapp/src/main/webapp/axis2-web/errorModule.jsp
rename to modules/webapp/src/main/webapp/WEB-INF/views/admin/errorModule.jsp
index bf2cbe0..4ac139f 100644
--- a/modules/webapp/src/main/webapp/axis2-web/errorModule.jsp
+++ b/modules/webapp/src/main/webapp/WEB-INF/views/admin/errorModule.jsp
@@ -20,7 +20,7 @@
 <%@ page import="org.apache.axis2.Constants,
                  java.util.Hashtable"%>
 <%@ page contentType="text/html;charset=UTF-8" language="java" %>
-<jsp:include page="include/adminheader.jsp"/>
+<jsp:include page="/WEB-INF/include/adminheader.jsp"/>
   <%
       Hashtable errornessModules =(Hashtable)request.getSession().getAttribute(Constants.ERROR_MODULE_MAP);
       String moduleName = request.getParameter("moduleName");
@@ -28,4 +28,4 @@
   %><span style="color:red"><%=(String)errornessModules.get(moduleName) %></span><%
   
   %>
-<jsp:include page="include/adminfooter.jsp"/>
\ No newline at end of file
+<jsp:include page="/WEB-INF/include/adminfooter.jsp"/>
diff --git a/modules/webapp/src/main/webapp/axis2-web/globalModules.jsp b/modules/webapp/src/main/webapp/WEB-INF/views/admin/globalModules.jsp
similarity index 94%
rename from modules/webapp/src/main/webapp/axis2-web/globalModules.jsp
rename to modules/webapp/src/main/webapp/WEB-INF/views/admin/globalModules.jsp
index d335de2..3f2bb60 100644
--- a/modules/webapp/src/main/webapp/axis2-web/globalModules.jsp
+++ b/modules/webapp/src/main/webapp/WEB-INF/views/admin/globalModules.jsp
@@ -20,7 +20,7 @@
                  java.util.Collection,

                  java.util.Iterator"%>

  <%@ page contentType="text/html;charset=UTF-8" language="java" %>

-<jsp:include page="include/adminheader.jsp"/>

+<jsp:include page="/WEB-INF/include/adminheader.jsp"/>

 <h1>Globally Engaged Modules</h1>

      <%

          boolean foundModules = false;

@@ -52,4 +52,4 @@
                  <%

          }

                  %>

-<jsp:include page="include/adminfooter.jsp"/>

+<jsp:include page="/WEB-INF/include/adminfooter.jsp"/>

diff --git a/modules/webapp/src/main/webapp/axis2-web/listModules.jsp b/modules/webapp/src/main/webapp/WEB-INF/views/admin/listModules.jsp
similarity index 96%
rename from modules/webapp/src/main/webapp/axis2-web/listModules.jsp
rename to modules/webapp/src/main/webapp/WEB-INF/views/admin/listModules.jsp
index c23b965..0cabfb5 100644
--- a/modules/webapp/src/main/webapp/axis2-web/listModules.jsp
+++ b/modules/webapp/src/main/webapp/WEB-INF/views/admin/listModules.jsp
@@ -23,7 +23,7 @@
  <%@ page import="java.util.Hashtable"%>

  <%@ page import="java.util.Iterator"%>

  <%@ page contentType="text/html;charset=UTF-8" language="java" %>

-<jsp:include page="include/adminheader.jsp"/>

+<jsp:include page="/WEB-INF/include/adminheader.jsp"/>

   <h1>Available Modules</h1>

      <%

          boolean foundModules = false;

@@ -78,4 +78,4 @@
                  <%

              }

      %>

-<jsp:include page="include/adminfooter.jsp"/>
\ No newline at end of file
+<jsp:include page="/WEB-INF/include/adminfooter.jsp"/>
diff --git a/modules/webapp/src/main/webapp/axis2-web/ListServiceGroup.jsp b/modules/webapp/src/main/webapp/WEB-INF/views/admin/listServiceGroups.jsp
similarity index 87%
rename from modules/webapp/src/main/webapp/axis2-web/ListServiceGroup.jsp
rename to modules/webapp/src/main/webapp/WEB-INF/views/admin/listServiceGroups.jsp
index 3eacf9d..db38eec 100644
--- a/modules/webapp/src/main/webapp/axis2-web/ListServiceGroup.jsp
+++ b/modules/webapp/src/main/webapp/WEB-INF/views/admin/listServiceGroups.jsp
@@ -17,6 +17,7 @@
   ~ under the License.
   --%>
 
+<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
 <%@ page import="org.apache.axis2.Constants" %>
 <%@ page import="org.apache.axis2.description.AxisModule" %>
 <%@ page import="org.apache.axis2.description.AxisService" %>
@@ -24,7 +25,7 @@
 <%@ page import="java.util.Collection" %>
 <%@ page import="java.util.Iterator" %>
 <%@ page contentType="text/html;charset=UTF-8" language="java" %>
-<jsp:include page="include/adminheader.jsp"/>
+<jsp:include page="/WEB-INF/include/adminheader.jsp"/>
 <h1>Available Service Groups</h1>
 <%
     Iterator axisServiceGroupIter = (Iterator) request.getSession().getAttribute(
@@ -43,7 +44,7 @@
             AxisService axisService = (AxisService) axisServiceIter.next();
             String serviceName = axisService.getName();
     %>
-    <li><a style="color:blue" href="axis2-admin/ListSingleService?serviceName=<%=serviceName%>">
+    <li><a style="color:blue" href="<c:url value="axis2-admin/listSingleService"><c:param name="serviceName" value="<%=serviceName%>"/></c:url>">
         <%=serviceName%></a></li>
     <%
         }
@@ -65,4 +66,4 @@
         }
     }
 %>
-<jsp:include page="include/adminfooter.jsp"/>
+<jsp:include page="/WEB-INF/include/adminfooter.jsp"/>
diff --git a/modules/webapp/src/main/webapp/axis2-web/listService.jsp b/modules/webapp/src/main/webapp/WEB-INF/views/admin/listServices.jsp
similarity index 69%
rename from modules/webapp/src/main/webapp/axis2-web/listService.jsp
rename to modules/webapp/src/main/webapp/WEB-INF/views/admin/listServices.jsp
index 873344b..3f3d3db 100644
--- a/modules/webapp/src/main/webapp/axis2-web/listService.jsp
+++ b/modules/webapp/src/main/webapp/WEB-INF/views/admin/listServices.jsp
@@ -17,59 +17,35 @@
   ~ under the License.

   --%>

 

+<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

+<%@ taglib prefix="t" tagdir="/WEB-INF/tags" %>

 <%@ page import="org.apache.axis2.Constants,

                  org.apache.axis2.description.AxisModule" %>

 <%@ page import="org.apache.axis2.description.AxisOperation" %>

 <%@ page import="org.apache.axis2.description.AxisService" %>

-<%@ page import="org.apache.axis2.description.Parameter" %>

-<%@ page import="org.apache.axis2.engine.AxisConfiguration" %>

-<%@ page import="org.apache.axis2.util.JavaUtils" %>

 <%@ page import="java.util.Collection" %>

 <%@ page import="java.util.Enumeration" %>

 <%@ page import="java.util.HashMap" %>

 <%@ page import="java.util.Hashtable" %>

 <%@ page import="java.util.Iterator" %>

 <%@ page contentType="text/html;charset=UTF-8" language="java" %>

-<jsp:include page="include/adminheader.jsp"/>

+<jsp:include page="/WEB-INF/include/adminheader.jsp"/>

 

 <h1>Available Services</h1>

-<% String prefix = request.getAttribute("frontendHostUrl") + (String)request.getSession().getAttribute(Constants.SERVICE_PATH) + "/";

+<t:status/>

+<% String prefix = request.getAttribute("frontendHostUrl") + (String)request.getAttribute(Constants.SERVICE_PATH) + "/";

 %>

 <%

-    HashMap serviceMap = (HashMap) request.getSession().getAttribute(Constants.SERVICE_MAP);

-    request.getSession().setAttribute(Constants.SERVICE_MAP, null);

     Hashtable errornessservice = (Hashtable) request.getSession().getAttribute(Constants.ERROR_SERVICE_MAP);

     boolean status = false;

-    if (serviceMap != null && !serviceMap.isEmpty()) {

-        Iterator operations;

-        String serviceName;

-        Collection servicecol = serviceMap.values();

-        for (Iterator iterator = servicecol.iterator(); iterator.hasNext();) {

-            AxisService axisService = (AxisService) iterator.next();

-            operations = axisService.getOperations();

-            serviceName = axisService.getName();

+%>

+<c:forEach var="service" items="${requestScope.configContext.axisConfiguration.services.values()}">

+<%

+            AxisService axisService = (AxisService) pageContext.getAttribute("service");

+            Iterator operations = axisService.getOperations();

+            String serviceName = axisService.getName();

 %><h2><a style="color:blue" href="<%=prefix + axisService.getName()%>?wsdl"><%=serviceName%></a></h2>

 <%

-    // do we need to enable REST in the main servlet so that it handles both REST and SOAP messages

-    boolean disableREST = false;

-    AxisConfiguration axisConfiguration = axisService.getAxisConfiguration();

-

-    Parameter parameter ;

-

-    // do we need to completely disable REST support

-    parameter = axisConfiguration.getParameter(Constants.Configuration.DISABLE_REST);

-    if (parameter != null) {

-        disableREST = !JavaUtils.isFalseExplicitly(parameter.getValue());

-    }

-    if (!disableREST) {

-%>

-

-<%

-%>

-<%

-    }

-

-

     String serviceDescription = axisService.getDocumentation();

     if (serviceDescription == null || "".equals(serviceDescription)) {

         serviceDescription = "No description available for this service";

@@ -77,8 +53,8 @@
 %>

 <p>Service Description : <%=serviceDescription%><br>

 Service EPR : <%=prefix + axisService.getName()%><br>

-Service Status : <%=axisService.isActive() ? "Active" : "InActive"%><br>

-Actions : <a href="axis2-admin/deleteService?serviceName=<%=serviceName%>">Remove Service</a></p><br>

+Service Status : <%=axisService.isActive() ? "Active" : "InActive"%>

+<form name="<%=serviceName%>" method="post" action="<c:url value="axis2-admin/deleteService"/>"><input type="hidden" name="serviceName" value="<%=serviceName%>"><input type="submit" value="Remove Service"></form></p>

 <%

     Collection engagedModules = axisService.getEngagedModules();

     String moduleName;

@@ -95,7 +71,7 @@
 %>

 <ul>

     <% }

-    %><li><%=moduleName%> :: <a href="axis2-admin/disengageModule?type=service&amp;serviceName=<%=serviceName%>&amp;module=<%=moduleName%>">Disengage</a></li>

+    %><li><form method="post" action="<c:url value="axis2-admin/disengageModule"/>"><%=moduleName%> :: <input type="hidden" name="type" value="service"><input type="hidden" name="serviceName" value="<%=serviceName%>"><input type="hidden" name="module" value="<%=moduleName%>"><input type="submit" value="Disengage"></form></li>

 

     <%

         }

@@ -134,7 +110,7 @@
             moduleName = moduleDecription.getName();

     %>

     <li>

-    <%=moduleName%> :: <a href="axis2-admin/disengageModule?type=operation&amp;serviceName=<%=serviceName%>&amp;operation=<%=axisOperation.getName().getLocalPart()%>&amp;module=<%=moduleName%>">Disengage</a>

+    <form method="post" action="<c:url value="axis2-admin/disengageModule"/>"><%=moduleName%> :: <input type="hidden" name="type" value="operation"><input type="hidden" name="serviceName" value="<%=serviceName%>"><input type="hidden" name="operation" value="<%=axisOperation.getName().getLocalPart()%>"><input type="hidden" name="module" value="<%=moduleName%>"><input type="submit" value="Disengage"></form>

     </li>

     <%

     }

@@ -147,8 +123,9 @@
 </ul>

 <%

             status = true;

-        }

-    }

+%>

+</c:forEach>

+<%

     if (errornessservice != null) {

         if (errornessservice.size() > 0) {

             request.getSession().setAttribute(Constants.IS_FAULTY, Constants.IS_FAULTY);

@@ -169,4 +146,4 @@
 %> No services listed! Try hitting refresh. <%

     }

 %>

-<jsp:include page="include/adminfooter.jsp"/>

+<jsp:include page="/WEB-INF/include/adminfooter.jsp"/>

diff --git a/modules/webapp/src/main/webapp/axis2-web/listSingleService.jsp b/modules/webapp/src/main/webapp/WEB-INF/views/admin/listSingleService.jsp
similarity index 80%
rename from modules/webapp/src/main/webapp/axis2-web/listSingleService.jsp
rename to modules/webapp/src/main/webapp/WEB-INF/views/admin/listSingleService.jsp
index 83f0e82..d3b7351 100644
--- a/modules/webapp/src/main/webapp/axis2-web/listSingleService.jsp
+++ b/modules/webapp/src/main/webapp/WEB-INF/views/admin/listSingleService.jsp
@@ -20,16 +20,13 @@
 <%@ page import="org.apache.axis2.Constants,

                  org.apache.axis2.description.AxisOperation" %>

 <%@ page import="org.apache.axis2.description.AxisService" %>

-<%@ page import="org.apache.axis2.description.Parameter" %>

-<%@ page import="org.apache.axis2.engine.AxisConfiguration" %>

-<%@ page import="org.apache.axis2.util.JavaUtils" %>

 <%@ page import="java.util.Hashtable" %>

 <%@ page import="java.util.Iterator" %>

 <%@ page contentType="text/html;charset=UTF-8" language="java" %>

-<jsp:include page="include/adminheader.jsp"/>

+<jsp:include page="/WEB-INF/include/adminheader.jsp"/>

 <h1>List Single Service</h1>

 <%

-    String prefix = request.getAttribute("frontendHostUrl") + (String)request.getSession().getAttribute(Constants.SERVICE_PATH) + "/";

+    String prefix = request.getAttribute("frontendHostUrl") + (String)request.getAttribute(Constants.SERVICE_PATH) + "/";

 %>

 <%

     String isFault = (String) request.getSession().getAttribute(Constants.IS_FAULTY);

@@ -56,22 +53,6 @@
 <span style="color:black"><%=prefix + axisService.getName()%></span>

 </p>

 <%

-    boolean disableREST = false;

-    AxisConfiguration axisConfiguration = axisService.getAxisConfiguration();

-

-    Parameter parameter;

-

-    // do we need to completely disable REST support

-    parameter = axisConfiguration.getParameter(Constants.Configuration.DISABLE_REST);

-    if (parameter != null) {

-        disableREST = !JavaUtils.isFalseExplicitly(parameter.getValue());

-    }

-    if (!disableREST ) {

-%>

-<%

-    }

-

-

     String serviceDescription = axisService.getDocumentation();

     if (serviceDescription == null || "".equals(serviceDescription)) {

         serviceDescription = "No description available for this service";

@@ -105,4 +86,4 @@
 

     }

 %>

-<jsp:include page="include/adminfooter.jsp"/>

+<jsp:include page="/WEB-INF/include/adminfooter.jsp"/>

diff --git a/modules/webapp/src/main/webapp/axis2-web/upload.jsp b/modules/webapp/src/main/webapp/WEB-INF/views/admin/upload.jsp
similarity index 81%
rename from modules/webapp/src/main/webapp/axis2-web/upload.jsp
rename to modules/webapp/src/main/webapp/WEB-INF/views/admin/upload.jsp
index 11617f6..69d4054 100644
--- a/modules/webapp/src/main/webapp/axis2-web/upload.jsp
+++ b/modules/webapp/src/main/webapp/WEB-INF/views/admin/upload.jsp
@@ -17,8 +17,10 @@
   ~ under the License.

   --%>

 

+<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

+<%@ taglib prefix="t" tagdir="/WEB-INF/tags" %>

 <%@ page contentType="text/html;charset=UTF-8" language="java" %>

-<jsp:include page="include/adminheader.jsp"/>

+<jsp:include page="/WEB-INF/include/adminheader.jsp"/>

 <script type="text/javascript">

 <!--

 	function checkFileUpload(){

@@ -40,22 +42,9 @@
 </ul>

 <p>Simple as that!</p>

 

-<% if ("success".equals(request.getAttribute("status"))) { %>

-<p style="color:green">

-File <%= request.getAttribute("filename") %> successfully uploaded 

-</p>

-<%

-} else if ("failure".equals(request.getAttribute("status"))) {

-%>

-<p style="color:red">

-The following error occurred

-</p>

-<p style="color:red">

-<%= request.getAttribute("cause") %>

-</p>

-<% } %>

+<t:status/>

 

-<form method="post" name="Axis2upload" id="Axis2upload" action="axis2-admin/upload"

+<form method="post" name="Axis2upload" id="Axis2upload" action="<c:url value="axis2-admin/doUpload"/>"

       enctype="multipart/form-data">

   <table summary="main content table">

     <tr>

@@ -72,4 +61,4 @@
 <p>Hot deployment of new service archives is <%=request.getAttribute("hotDeployment") %></p>

 <p>Hot update of existing service archives is <%=request.getAttribute("hotUpdate") %></p>

 </blockquote>

-<jsp:include page="include/adminfooter.jsp"/>

+<jsp:include page="/WEB-INF/include/adminfooter.jsp"/>

diff --git a/modules/webapp/src/main/webapp/axis2-web/ViewContexts.jsp b/modules/webapp/src/main/webapp/WEB-INF/views/admin/viewContexts.jsp
similarity index 73%
rename from modules/webapp/src/main/webapp/axis2-web/ViewContexts.jsp
rename to modules/webapp/src/main/webapp/WEB-INF/views/admin/viewContexts.jsp
index eb666e8..2d12be0 100644
--- a/modules/webapp/src/main/webapp/axis2-web/ViewContexts.jsp
+++ b/modules/webapp/src/main/webapp/WEB-INF/views/admin/viewContexts.jsp
@@ -17,13 +17,14 @@
   ~ under the License.

   --%>

 

+<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

 <%@ page import="org.apache.axis2.Constants"%>

 <%@ page import="org.apache.axis2.context.ConfigurationContext"%>

 <%@ page import="org.apache.axis2.context.ServiceContext"%>

 <%@ page import="org.apache.axis2.context.ServiceGroupContext"%>

 <%@ page import="java.util.Iterator"%>

 <%@ page contentType="text/html;charset=UTF-8" language="java" %>

-<jsp:include page="include/adminheader.jsp"/>

+<jsp:include page="/WEB-INF/include/adminheader.jsp"/>

 <h1>Running Context Hierarchy</h1>

 <%

     ConfigurationContext configContext = (ConfigurationContext) request.getSession().getAttribute(

@@ -39,8 +40,8 @@
         String groupContextID = serviceGroupIds[i];

         ServiceGroupContext groupContext = configContext.getServiceGroupContext(groupContextID);

         %>

-           <li><%=groupContextID%><a style="color:blue" href="axis2-admin/viewServiceGroupConetxt?TYPE=VIEW&ID=<%=groupContextID%>">

-                    View</a>  <a style="color:red" href="axis2-admin/viewServiceGroupConetxt?TYPE=DELETE&ID=<%=groupContextID%>">

+           <li><%=groupContextID%><a style="color:blue" href="<c:url value="axis2-admin/viewServiceGroupContext"><c:param name="TYPE" value="VIEW"/><c:param name="ID" value="<%=groupContextID%>"/></c:url>">

+                    View</a>  <a style="color:red" href="<c:url value="axis2-admin/viewServiceGroupContext"><c:param name="TYPE" value="DELETE"/><c:param name="ID" value="<%=groupContextID%>"/></c:url>">

                     Remove</a> </li>

                     

                     <li>

@@ -51,7 +52,7 @@
             ServiceContext serviceContext = (ServiceContext)serviceContextItr.next();

              String serviceConID = serviceContext.getAxisService().getName();

         %>

-            <li><%=serviceConID%><a style="color:blue" href="axis2-admin/viewServiceContext?TYPE=VIEW&ID=<%=serviceConID%>&PID=<%=groupContextID%>">

+            <li><%=serviceConID%><a style="color:blue" href="<c:url value="axis2-admin/viewServiceContext"><c:param name="TYPE" value="VIEW"/><c:param name="ID" value="<%=serviceConID%>"/><c:param name="PID" value="<%=groupContextID%>"/></c:url>">

                     View</a></li>

         <%

         }

@@ -64,4 +65,4 @@
 	<p>No running contexts were found on the system.</p>

             <%}

 %>

-<jsp:include page="include/adminfooter.jsp"/>

+<jsp:include page="/WEB-INF/include/adminfooter.jsp"/>

diff --git a/modules/webapp/src/main/webapp/axis2-web/ViewGlobalHandlers.jsp b/modules/webapp/src/main/webapp/WEB-INF/views/admin/viewGlobalChains.jsp
similarity index 97%
rename from modules/webapp/src/main/webapp/axis2-web/ViewGlobalHandlers.jsp
rename to modules/webapp/src/main/webapp/WEB-INF/views/admin/viewGlobalChains.jsp
index 3aa041b..97766f0 100644
--- a/modules/webapp/src/main/webapp/axis2-web/ViewGlobalHandlers.jsp
+++ b/modules/webapp/src/main/webapp/WEB-INF/views/admin/viewGlobalChains.jsp
@@ -23,7 +23,7 @@
                  org.apache.axis2.engine.Phase,

                  java.util.List"%>

 <%@ page contentType="text/html;charset=UTF-8" language="java" %>

-<jsp:include page="include/adminheader.jsp"/>

+<jsp:include page="/WEB-INF/include/adminheader.jsp"/>

 <h1>View Global Execution Chains</h1>

    <%

             AxisConfiguration axisConfig = (AxisConfiguration)request.getSession().

@@ -134,4 +134,4 @@
 

              }

               %>

-<jsp:include page="include/adminfooter.jsp"/>

+<jsp:include page="/WEB-INF/include/adminfooter.jsp"/>

diff --git a/modules/webapp/src/main/webapp/axis2-web/ViewServiceHandlers.jsp b/modules/webapp/src/main/webapp/WEB-INF/views/admin/viewOperationSpecificChains.jsp
similarity index 97%
rename from modules/webapp/src/main/webapp/axis2-web/ViewServiceHandlers.jsp
rename to modules/webapp/src/main/webapp/WEB-INF/views/admin/viewOperationSpecificChains.jsp
index 240cf07..37dde6d 100644
--- a/modules/webapp/src/main/webapp/axis2-web/ViewServiceHandlers.jsp
+++ b/modules/webapp/src/main/webapp/WEB-INF/views/admin/viewOperationSpecificChains.jsp
@@ -27,7 +27,7 @@
                  java.util.Iterator"%>

 <%@ page contentType="text/html;charset=UTF-8" language="java" %>

 <html>

-<jsp:include page="include/adminheader.jsp"/>

+<jsp:include page="/WEB-INF/include/adminheader.jsp"/>

 <h1>View Operation Specific Chains</h1>

    <%

             AxisService axisService = (AxisService)request.getSession().

@@ -144,4 +144,4 @@
                  }

 

               %>

-<jsp:include page="include/adminfooter.jsp"/>
\ No newline at end of file
+<jsp:include page="/WEB-INF/include/adminfooter.jsp"/>
diff --git a/modules/webapp/src/main/webapp/axis2-web/viewServiceContext.jsp b/modules/webapp/src/main/webapp/WEB-INF/views/admin/viewServiceContext.jsp
similarity index 93%
rename from modules/webapp/src/main/webapp/axis2-web/viewServiceContext.jsp
rename to modules/webapp/src/main/webapp/WEB-INF/views/admin/viewServiceContext.jsp
index 3471613..b0d183c 100644
--- a/modules/webapp/src/main/webapp/axis2-web/viewServiceContext.jsp
+++ b/modules/webapp/src/main/webapp/WEB-INF/views/admin/viewServiceContext.jsp
@@ -20,7 +20,7 @@
 <%@ page import="org.apache.axis2.context.ServiceContext" %>
 <%@ page import="java.util.Iterator" %>
 <%@ page contentType="text/html;charset=UTF-8" language="java" %>
-<jsp:include page="include/adminheader.jsp"/>
+<jsp:include page="/WEB-INF/include/adminheader.jsp"/>
 <h1>Running Context Hierarchy</h1>
 <%
     ServiceContext serviceContext = (ServiceContext) request.getSession().getAttribute("ServiceContext");
@@ -47,4 +47,4 @@
         }
     }
 %>
-<jsp:include page="include/adminfooter.jsp"/>
\ No newline at end of file
+<jsp:include page="/WEB-INF/include/adminfooter.jsp"/>
diff --git a/modules/webapp/src/main/webapp/axis2-web/viewServiceGroupContext.jsp b/modules/webapp/src/main/webapp/WEB-INF/views/admin/viewServiceGroupContext.jsp
similarity index 94%
rename from modules/webapp/src/main/webapp/axis2-web/viewServiceGroupContext.jsp
rename to modules/webapp/src/main/webapp/WEB-INF/views/admin/viewServiceGroupContext.jsp
index c6f80d9..b068088 100644
--- a/modules/webapp/src/main/webapp/axis2-web/viewServiceGroupContext.jsp
+++ b/modules/webapp/src/main/webapp/WEB-INF/views/admin/viewServiceGroupContext.jsp
@@ -21,7 +21,7 @@
 <%@ page import="org.apache.axis2.context.ServiceGroupContext"%>
 <%@ page import="java.util.Iterator"%>
 <%@ page contentType="text/html;charset=UTF-8" language="java" %>
-<jsp:include page="include/adminheader.jsp"/>
+<jsp:include page="/WEB-INF/include/adminheader.jsp"/>
 <h1>Running Context hierarchy</h1>
 <%
     String type = (String) request.getSession().getAttribute("TYPE");
@@ -52,4 +52,4 @@
 %> <h4>No service group context found</h4><%
     }
 %>
-<jsp:include page="include/adminfooter.jsp"/>
\ No newline at end of file
+<jsp:include page="/WEB-INF/include/adminfooter.jsp"/>
diff --git a/modules/webapp/src/main/webapp/axis2-web/viewphases.jsp b/modules/webapp/src/main/webapp/WEB-INF/views/admin/viewphases.jsp
similarity index 97%
rename from modules/webapp/src/main/webapp/axis2-web/viewphases.jsp
rename to modules/webapp/src/main/webapp/WEB-INF/views/admin/viewphases.jsp
index 5817ef3..1f54e60 100644
--- a/modules/webapp/src/main/webapp/axis2-web/viewphases.jsp
+++ b/modules/webapp/src/main/webapp/WEB-INF/views/admin/viewphases.jsp
@@ -20,7 +20,7 @@
                  org.apache.axis2.engine.Phase"%>

  <%@ page import="java.util.List"%>

 <%@ page contentType="text/html;charset=UTF-8" language="java" %>

-<jsp:include page="include/adminheader.jsp"/>

+<jsp:include page="/WEB-INF/include/adminheader.jsp"/>

 <h1>Available Phases</h1>

      <%

          PhasesInfo phases = (PhasesInfo)request.getSession().getAttribute(Constants.PHASE_LIST);

@@ -108,4 +108,4 @@
              }

          %>

          </blockquote>

-<jsp:include page="include/adminfooter.jsp"/>

+<jsp:include page="/WEB-INF/include/adminfooter.jsp"/>

diff --git a/modules/webapp/src/main/webapp/axis2-web/listFaultyService.jsp b/modules/webapp/src/main/webapp/WEB-INF/views/listFaultyService.jsp
similarity index 86%
rename from modules/webapp/src/main/webapp/axis2-web/listFaultyService.jsp
rename to modules/webapp/src/main/webapp/WEB-INF/views/listFaultyService.jsp
index cc338f9..686f6f7 100644
--- a/modules/webapp/src/main/webapp/axis2-web/listFaultyService.jsp
+++ b/modules/webapp/src/main/webapp/WEB-INF/views/listFaultyService.jsp
@@ -17,6 +17,7 @@
   ~ under the License.
   --%>
 
+<%@ page session="false" %>
 <%@ page import="org.apache.axis2.Constants,
                  org.apache.axis2.description.AxisOperation"%>
 <%@ page import="org.apache.axis2.description.AxisService"%>
@@ -25,21 +26,21 @@
 <%@ page contentType="text/html;charset=UTF-8" language="java" %>
 <html>
   <head>
-    <jsp:include page="include/httpbase.jsp"/>
+    <jsp:include page="/WEB-INF/include/httpbase.jsp"/>
     <title>List Single service</title>
     <link href="axis2-web/css/axis-style.css" rel="stylesheet" type="text/css">
   </head>
   <body>
-  <jsp:include page="include/header.inc"/>
-    <jsp:include page="include/link-footer.jsp"/>
+  <jsp:include page="/WEB-INF/include/header.inc"/>
+    <jsp:include page="/WEB-INF/include/link-footer.jsp"/>
   <%
-        String prifix = request.getAttribute("frontendHostUrl") + (String)request.getSession().getAttribute(Constants.SERVICE_PATH) +"services/";
+        String prifix = request.getAttribute("frontendHostUrl") + (String)request.getAttribute(Constants.SERVICE_PATH) +"services/";
     %>
         <%
-            String isFault = (String)request.getSession().getAttribute(Constants.IS_FAULTY);
+            String isFault = (String)request.getAttribute(Constants.IS_FAULTY);
             String servicName = request.getParameter("serviceName");
             if(Constants.IS_FAULTY.equals(isFault)){
-                Hashtable errornessservices =(Hashtable)request.getSession().getAttribute(Constants.ERROR_SERVICE_MAP);
+                Hashtable errornessservices =(Hashtable)request.getAttribute(Constants.ERROR_SERVICE_MAP);
                 %>
                     <h3>This Web axisService has deployment faults</h3><%
                      %><p style="color:red"><%=(String)errornessservices.get(servicName) %></p>
@@ -48,7 +49,7 @@
                     }else {
 
                     AxisService axisService =
-                            (AxisService) request.getSession().getAttribute(Constants.SINGLE_SERVICE);
+                            (AxisService) request.getAttribute(Constants.SINGLE_SERVICE);
                     if(axisService!=null){
            Iterator opItr = axisService.getOperations();
             //operationsList = operations.values();
@@ -86,6 +87,6 @@
 
             }
         %>
-<jsp:include page="include/footer.inc"/>
+<jsp:include page="/WEB-INF/include/footer.inc"/>
         </body>
 </html>
diff --git a/modules/webapp/src/main/webapp/axis2-web/listServices.jsp b/modules/webapp/src/main/webapp/WEB-INF/views/listServices.jsp
similarity index 66%
rename from modules/webapp/src/main/webapp/axis2-web/listServices.jsp
rename to modules/webapp/src/main/webapp/WEB-INF/views/listServices.jsp
index 2371f34..fb8664a 100644
--- a/modules/webapp/src/main/webapp/axis2-web/listServices.jsp
+++ b/modules/webapp/src/main/webapp/WEB-INF/views/listServices.jsp
@@ -17,13 +17,12 @@
   ~ under the License.

   --%>

 

+<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

+<%@ page session="false" %>

 <%@ page import="org.apache.axis2.Constants,

                  org.apache.axis2.description.AxisOperation" %>

 <%@ page import="org.apache.axis2.description.AxisService" %>

-<%@ page import="org.apache.axis2.description.Parameter" %>

-<%@ page import="org.apache.axis2.engine.AxisConfiguration" %>

 <%@ page import="org.apache.axis2.util.Utils" %>

-<%@ page import="org.apache.axis2.util.JavaUtils" %>

 <%@ page import="java.util.Collection" %>

 <%@ page import="java.util.Enumeration" %>

 <%@ page import="java.util.HashMap" %>

@@ -33,54 +32,29 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

 <html>

 <head>

-<jsp:include page="include/httpbase.jsp"/>

+<jsp:include page="/WEB-INF/include/httpbase.jsp"/>

 <title>List Services</title>

     <link href="axis2-web/css/axis-style.css" rel="stylesheet" type="text/css">

 </head>

 

 <body>

-<jsp:include page="include/header.inc"/>

-<jsp:include page="include/link-footer.jsp"/>

+<jsp:include page="/WEB-INF/include/header.inc"/>

+<jsp:include page="/WEB-INF/include/link-footer.jsp"/>

 <h1>Available services</h1>

-<% String prefix = request.getAttribute("frontendHostUrl") + (String)request.getSession().getAttribute(Constants.SERVICE_PATH) + "/";

+<% String prefix = request.getAttribute("frontendHostUrl") + (String)request.getAttribute(Constants.SERVICE_PATH) + "/";

 %>

 <%

-    HashMap serviceMap = (HashMap) request.getSession().getAttribute(Constants.SERVICE_MAP);

-    request.getSession().setAttribute(Constants.SERVICE_MAP, null);

-    Hashtable errornessservice = (Hashtable) request.getSession().getAttribute(Constants.ERROR_SERVICE_MAP);

+    Hashtable errornessservice = (Hashtable) request.getAttribute(Constants.ERROR_SERVICE_MAP);

     boolean status = false;

-    if (serviceMap != null && !serviceMap.isEmpty()) {

-        Iterator opItr;

-        //HashMap operations;

-        String serviceName;

-        Collection servicecol = serviceMap.values();

-        // Collection operationsList;

-        for (Iterator iterator = servicecol.iterator(); iterator.hasNext();) {

-            AxisService axisService = (AxisService) iterator.next();

+%>

+<c:forEach var="service" items="${requestScope.configContext.axisConfiguration.services.values()}">

+<%

+            AxisService axisService = (AxisService) pageContext.getAttribute("service");

             if (!Utils.isHiddenService(axisService)) {

-            opItr = axisService.getOperations();

-            //operationsList = operations.values();

-            serviceName = axisService.getName();

+            Iterator opItr = axisService.getOperations();

+            String serviceName = axisService.getName();

 %><h2><a style="color:blue" href="<%=prefix + axisService.getName()%>?wsdl"><%=serviceName%></a></h2>

 <%

-    boolean disableREST = false;

-    AxisConfiguration axisConfiguration = axisService.getAxisConfiguration();

-

-    Parameter parameter ;

-

-    // do we need to completely disable REST support

-    parameter = axisConfiguration.getParameter(Constants.Configuration.DISABLE_REST);

-    if (parameter != null) {

-        disableREST = !JavaUtils.isFalseExplicitly(parameter.getValue());

-    }

-

-    if (!disableREST ) {

-

-%>

-<%

-    }

-

-

     String serviceDescription = axisService.getDocumentation();

     if (serviceDescription == null || "".equals(serviceDescription)) {

         serviceDescription = "No description available for this service";

@@ -107,11 +81,12 @@
 <%

             status = true;

             }

-        }

-    }

+%>

+</c:forEach>

+<%

     if (errornessservice != null) {

         if (errornessservice.size() > 0) {

-            request.getSession().setAttribute(Constants.IS_FAULTY, Constants.IS_FAULTY);

+            request.setAttribute(Constants.IS_FAULTY, Constants.IS_FAULTY);

 %>

 <hr>

 

@@ -132,6 +107,6 @@
 %> No services listed! Try hitting refresh. <%

     }

 %>

-<jsp:include page="include/footer.inc"/>

+<jsp:include page="/WEB-INF/include/footer.inc"/>

 </body>

 </html>

diff --git a/modules/webapp/src/main/webapp/axis2-web/Error/error404.jsp b/modules/webapp/src/main/webapp/axis2-web/Error/error404.jsp
index 2bc827f..b57fc76 100644
--- a/modules/webapp/src/main/webapp/axis2-web/Error/error404.jsp
+++ b/modules/webapp/src/main/webapp/axis2-web/Error/error404.jsp
@@ -21,7 +21,7 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
 <html>
   <head>
-    <jsp:include page="../include/httpbase.jsp"/>
+    <jsp:include page="/WEB-INF/include/httpbase.jsp"/>
     <title>Axis2 :: Resource not found!</title>
     <link href="axis2-web/css/axis-style.css" rel="stylesheet" type="text/css">
     <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
@@ -60,4 +60,4 @@
       </tr>
     </table>
   </body>
-</html>
\ No newline at end of file
+</html>
diff --git a/modules/webapp/src/main/webapp/axis2-web/Error/error500.jsp b/modules/webapp/src/main/webapp/axis2-web/Error/error500.jsp
index 105d065..696c95f 100644
--- a/modules/webapp/src/main/webapp/axis2-web/Error/error500.jsp
+++ b/modules/webapp/src/main/webapp/axis2-web/Error/error500.jsp
@@ -21,7 +21,7 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
 <html>
   <head>
-    <jsp:include page="../include/httpbase.jsp"/>
+    <jsp:include page="/WEB-INF/include/httpbase.jsp"/>
     <title>Axis2 :: Internal server error</title>
     <link href="axis2-web/css/axis-style.css" rel="stylesheet" type="text/css">
     <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
@@ -61,4 +61,4 @@
       </tr>
     </table>
   </body>
-</html>
\ No newline at end of file
+</html>
diff --git a/modules/webapp/src/main/webapp/axis2-web/HappyAxis.jsp b/modules/webapp/src/main/webapp/axis2-web/HappyAxis.jsp
index c8c4966..6bc592a 100644
--- a/modules/webapp/src/main/webapp/axis2-web/HappyAxis.jsp
+++ b/modules/webapp/src/main/webapp/axis2-web/HappyAxis.jsp
@@ -38,14 +38,14 @@
                  javax.xml.stream.XMLStreamException"
          session="false" %>
 <head>
-    <jsp:include page="include/httpbase.jsp"/>
+    <jsp:include page="/WEB-INF/include/httpbase.jsp"/>
     <title>Axis2 Happiness Page</title>
     <link href="axis2-web/css/axis-style.css" rel="stylesheet" type="text/css">
 </head>
 
 <body>
-<jsp:include page="include/header.inc"/>
-<jsp:include page="include/link-footer.jsp"/>
+<jsp:include page="/WEB-INF/include/header.inc"/>
+<jsp:include page="/WEB-INF/include/link-footer.jsp"/>
 <%IP = request.getRequestURL().toString();%>
 <%!
     /*
@@ -502,7 +502,7 @@
     }
 %>
 
-<jsp:include page="include/footer.inc"/>
+<jsp:include page="/WEB-INF/include/footer.inc"/>
 </body>
 </html>
 
diff --git a/modules/webapp/src/main/webapp/axis2-web/ServiceParaEdit.jsp b/modules/webapp/src/main/webapp/axis2-web/ServiceParaEdit.jsp
deleted file mode 100644
index 71d378e..0000000
--- a/modules/webapp/src/main/webapp/axis2-web/ServiceParaEdit.jsp
+++ /dev/null
@@ -1,122 +0,0 @@
-<%--
-  ~ Licensed to the Apache Software Foundation (ASF) under one
-  ~ or more contributor license agreements. See the NOTICE file
-  ~ distributed with this work for additional information
-  ~ regarding copyright ownership. The ASF licenses this file
-  ~ to you under the Apache License, Version 2.0 (the
-  ~ "License"); you may not use this file except in compliance
-  ~ with the License. You may obtain a copy of the License at
-  ~
-  ~ http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing,
-  ~ software distributed under the License is distributed on an
-  ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  ~ KIND, either express or implied. See the License for the
-  ~ specific language governing permissions and limitations
-  ~ under the License.
-  --%>
-
-<%@ page import="org.apache.axis2.Constants,
-                 org.apache.axis2.description.AxisOperation,
-                 org.apache.axis2.description.AxisService,
-                 org.apache.axis2.description.Parameter,
-                 java.util.ArrayList,
-                 java.util.Iterator"%>
-<%@ page contentType="text/html;charset=UTF-8" language="java" %>
-<jsp:include page="include/adminheader.jsp"/>
-<h1>Edit Service Parameters</h1>
-  <form method="get" name="editServicepara" action="axis2-admin/editServicepara">
-   <%
-            AxisService axisService = (AxisService)request.getSession().
-                    getAttribute(Constants.SERVICE);
-             if(axisService != null ){
-   %>     <table summary="main content table" width="100%">
-
-            <tr>
-                 <td colspan="2" ><b>
-           <%
-                 String servicName =  axisService.getName();
-                 %>Service Parameters :: <%=servicName%>
-                 </b></td>
-             </tr>
-             <tr>
-             <td colspan="2" ><input style="display:none"  name="axisService" value="<%=servicName%>"></td>
-            </tr>
-             <%
-                 ArrayList service_para = axisService.getParameters();
-                 for (int i = 0; i < service_para.size(); i++) {
-                     Parameter parameter = (Parameter) service_para.get(i);
-                     if (parameter.getParameterType()==Parameter.OM_PARAMETER) {
-                         continue;
-                     }
-                     %>
-                     <tr>
-                     <td><%=parameter.getName()%></td>
-                     <td><input type="text" value="<%=parameter.getValue()%>"
-                           name="<%=(servicName + "_" + parameter.getName())%>" size="50">
-                           </td>
-                     </tr>
-                     <%
-                 }
-                Iterator operations =  axisService.getOperations();
-                if(operations.hasNext()){
-                    %>
-                    <tr>
-                      <td>&nbsp;&nbsp;&nbsp;&nbsp;</td>
-                      <td>&nbsp;&nbsp;&nbsp;&nbsp;</td>
-                    </tr>
-                    <tr>
-                       <td colspan="2" > <b>Operation Paramaters :: </b>
-                       </td>
-                    </tr>
-                    <%
-                }
-
-                 ArrayList op_paras ;
-                        operations = axisService.getOperations();
-                 while (operations.hasNext()) {
-                     AxisOperation axisOperation = (AxisOperation) operations.next();
-                     String operationName = axisOperation.getName().getLocalPart();
-                     %>
-                     <tr>
-                       <td colspan="2" > &nbsp;&nbsp;&nbsp;&nbsp;</td>
-                     </tr>
-                     <tr>
-                       <td colspan="2" ><b>Operation : <%=operationName%></b></td>
-                     </tr>
-                    <%
-                     op_paras = axisOperation.getParameters();
-                     for (int i = 0; i < op_paras.size(); i++) {
-                         Parameter parameter = (Parameter) op_paras.get(i);
-                         if (parameter.getParameterType()==Parameter.OM_PARAMETER) {
-                             continue;
-                         }
-                     %>
-                     <tr>
-                     <td><%=parameter.getName()%></td>
-                     <td><input type="text" value="<%=parameter.getValue()%>"
-                           name="<%=(operationName + "_" + parameter.getName())%>" size="50">
-                           </td>
-                     </tr>
-                     <%
-                  }
-                 }
-                 %>
-                 <tr>
-                    <td>&nbsp;</td>
-                <td>
-                     <input name="changePara" type="submit" value=" Change " >
-               </td>
-               </tr>
-                 </table>
-                 <%
-             } else {
-            	%>
-            	<p><%=request.getAttribute("status")%></p>
-            	<%
-             }
-
-       %>
-       </form>
-<jsp:include page="include/adminfooter.jsp"/>
diff --git a/modules/webapp/src/main/webapp/axis2-web/TopFrame.jsp b/modules/webapp/src/main/webapp/axis2-web/TopFrame.jsp
deleted file mode 100644
index 881bf82..0000000
--- a/modules/webapp/src/main/webapp/axis2-web/TopFrame.jsp
+++ /dev/null
@@ -1,30 +0,0 @@
-<%--

-  ~ Licensed to the Apache Software Foundation (ASF) under one

-  ~ or more contributor license agreements. See the NOTICE file

-  ~ distributed with this work for additional information

-  ~ regarding copyright ownership. The ASF licenses this file

-  ~ to you under the Apache License, Version 2.0 (the

-  ~ "License"); you may not use this file except in compliance

-  ~ with the License. You may obtain a copy of the License at

-  ~

-  ~ http://www.apache.org/licenses/LICENSE-2.0

-  ~

-  ~ Unless required by applicable law or agreed to in writing,

-  ~ software distributed under the License is distributed on an

-  ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

-  ~ KIND, either express or implied. See the License for the

-  ~ specific language governing permissions and limitations

-  ~ under the License.

-  --%>

-

-<html>

-  <head>

-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

-    <title>Untitled Document</title>

-    <style type="text/css">

-    </style></head>

-

-  <body>

-    <jsp:include page="include/adminheader.inc"/>

-  </body>

-</html>

diff --git a/modules/webapp/src/main/webapp/axis2-web/deleteService.jsp b/modules/webapp/src/main/webapp/axis2-web/deleteService.jsp
deleted file mode 100644
index 12a8b16..0000000
--- a/modules/webapp/src/main/webapp/axis2-web/deleteService.jsp
+++ /dev/null
@@ -1,23 +0,0 @@
-<%--
-  ~ Licensed to the Apache Software Foundation (ASF) under one
-  ~ or more contributor license agreements. See the NOTICE file
-  ~ distributed with this work for additional information
-  ~ regarding copyright ownership. The ASF licenses this file
-  ~ to you under the Apache License, Version 2.0 (the
-  ~ "License"); you may not use this file except in compliance
-  ~ with the License. You may obtain a copy of the License at
-  ~
-  ~ http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing,
-  ~ software distributed under the License is distributed on an
-  ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  ~ KIND, either express or implied. See the License for the
-  ~ specific language governing permissions and limitations
-  ~ under the License.
-  --%>
-<%@ page contentType="text/html;charset=UTF-8" language="java" %>
-<jsp:include page="include/adminheader.jsp"/>
-<p><%=request.getSession().getAttribute("status")%></p>
-<p>Click <a href="services/listServices">here</a> to go to the service list page</p>
-<jsp:include page="include/adminfooter.jsp"/>
\ No newline at end of file
diff --git a/modules/webapp/src/main/webapp/axis2-web/error.jsp b/modules/webapp/src/main/webapp/axis2-web/error.jsp
index 629a1c4..374a6d5 100644
--- a/modules/webapp/src/main/webapp/axis2-web/error.jsp
+++ b/modules/webapp/src/main/webapp/axis2-web/error.jsp
@@ -19,7 +19,7 @@
 

 <%@ page contentType="text/html;charset=UTF-8" language="java" %>

 <%@page isErrorPage="true" %>

-<jsp:include page="include/adminheader.jsp"/>

+<jsp:include page="/WEB-INF/include/adminheader.jsp"/>

   <table summary="main content table">

   <tr>

   <td align="center">An error has occured!. Please check the details below</td>

@@ -28,4 +28,4 @@
   <td align="center"><%=exception.getMessage()%></td>

   </tr>

   </table>

-<jsp:include page="include/adminfooter.jsp"/>
\ No newline at end of file
+<jsp:include page="/WEB-INF/include/adminfooter.jsp"/>
diff --git a/modules/webapp/src/main/webapp/axis2-web/include/adminheader.inc b/modules/webapp/src/main/webapp/axis2-web/include/adminheader.inc
deleted file mode 100644
index d5a114c..0000000
--- a/modules/webapp/src/main/webapp/axis2-web/include/adminheader.inc
+++ /dev/null
@@ -1,28 +0,0 @@
-<!--
-  ~ Licensed to the Apache Software Foundation (ASF) under one
-  ~ or more contributor license agreements. See the NOTICE file
-  ~ distributed with this work for additional information
-  ~ regarding copyright ownership. The ASF licenses this file
-  ~ to you under the Apache License, Version 2.0 (the
-  ~ "License"); you may not use this file except in compliance
-  ~ with the License. You may obtain a copy of the License at
-  ~
-  ~ http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing,
-  ~ software distributed under the License is distributed on an
-  ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  ~ KIND, either express or implied. See the License for the
-  ~ specific language governing permissions and limitations
-  ~ under the License.
-  -->
-<table summary="header table"width="100%">
-  <tr>
-    <td align="left"><img src="axis2-web/images/asf-logo.gif" alt="Apache Software Foundation Logo"><h1>Axis 2</h1></td>
-    <td align="right"><img src="axis2-web/images/axis.jpg" alt="AXIS Logo"></td>
-  </tr>
-  <tr>
-    <td>.</td>
-    <td align="right"><a href="logout" target="_parent" >Log out</a></td>
-  </tr>
-</table>
diff --git a/modules/webapp/src/main/webapp/axis2-web/index.jsp b/modules/webapp/src/main/webapp/axis2-web/index.jsp
index 7c11413..c6d138d 100644
--- a/modules/webapp/src/main/webapp/axis2-web/index.jsp
+++ b/modules/webapp/src/main/webapp/axis2-web/index.jsp
@@ -17,17 +17,17 @@
   ~ under the License.

   --%>

 

-<%@ page contentType="text/html;charset=UTF-8" language="java" %>

+<%@ page contentType="text/html;charset=UTF-8" language="java" session="false" %>

 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

 <html>

   <head>

-    <jsp:include page="include/httpbase.jsp"/>

+    <jsp:include page="/WEB-INF/include/httpbase.jsp"/>

     <title>Axis 2 - Home</title>

     <link href="axis2-web/css/axis-style.css" rel="stylesheet" type="text/css">

   </head>

 

   <body>

-    <jsp:include page="include/header.inc"/>

+    <jsp:include page="/WEB-INF/include/header.inc"/>

     <br>

 

     <h1>Welcome!</h1>

@@ -54,6 +54,6 @@
         Console for administering this Axis2 installation.

       </li>

     </ul>

-    <jsp:include page="include/footer.inc"/>

+    <jsp:include page="/WEB-INF/include/footer.inc"/>

   </body>

 </html>

diff --git a/modules/webapp/src/main/webapp/axis2-web/listGroupService.jsp b/modules/webapp/src/main/webapp/axis2-web/listGroupService.jsp
deleted file mode 100644
index 8a4563e..0000000
--- a/modules/webapp/src/main/webapp/axis2-web/listGroupService.jsp
+++ /dev/null
@@ -1,129 +0,0 @@
-<%--

-  ~ Licensed to the Apache Software Foundation (ASF) under one

-  ~ or more contributor license agreements. See the NOTICE file

-  ~ distributed with this work for additional information

-  ~ regarding copyright ownership. The ASF licenses this file

-  ~ to you under the Apache License, Version 2.0 (the

-  ~ "License"); you may not use this file except in compliance

-  ~ with the License. You may obtain a copy of the License at

-  ~

-  ~ http://www.apache.org/licenses/LICENSE-2.0

-  ~

-  ~ Unless required by applicable law or agreed to in writing,

-  ~ software distributed under the License is distributed on an

-  ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

-  ~ KIND, either express or implied. See the License for the

-  ~ specific language governing permissions and limitations

-  ~ under the License.

-  --%>

-

-<%@ page import="org.apache.axis2.Constants" %>

-<%@ page import="org.apache.axis2.description.AxisModule" %>

-<%@ page import="org.apache.axis2.description.AxisOperation" %>

-<%@ page import="org.apache.axis2.description.AxisService" %>

-<%@ page import="java.util.Collection" %>

-<%@ page import="java.util.HashMap" %>

-<%@ page import="java.util.Iterator" %>

-<%@ page contentType="text/html;charset=UTF-8" language="java" %>

-<html>

-<head>

-  <jsp:include page="include/httpbase.jsp"/>

-  <title>List Services</title>

-  <link href="axis2-web/css/axis-style.css" rel="stylesheet" type="text/css">

-</head>

-

-<body>

-<jsp:include page="include/adminheader.jsp"/>

-<h1>Available services</h1>

-<%

-  String prefix = request.getAttribute("frontendHostUrl") + (String)request.getSession().getAttribute(Constants.SERVICE_PATH) +"/";

-%>

-<%

-    HashMap serviceMap = (HashMap) request.getSession().getAttribute(Constants.SERVICE_MAP);

-    request.getSession().setAttribute(Constants.SERVICE_MAP,null);

-    AxisService axisService = (AxisService) serviceMap.get(request.getParameter("serviceName"));

-    if (axisService != null) {

-        Iterator operations;

-        String serviceName;

-        operations = axisService.getOperations();

-        serviceName = axisService.getName();

-%><hr>

-

-<h2><a style="color:blue" href="<%=prefix + axisService.getName()%>?wsdl"><%=serviceName%></a></h2>

-<p>

-<span style="color:blue">Service EPR :</span>

-<span style="color:black"><%=prefix + axisService.getName()%></span>

-</p>

-

-<h4>Service Description : <span style="color:black"><%=axisService.getDocumentation()%></span></h4>

-

-<p style="color:blue; font-style:italic">

-Service Status : <%=axisService.isActive() ? "Active" : "InActive"%>

-</p>

-

-<%

-  Collection engagedModules = axisService.getEngagedModules();

-  String moduleName;

-  if (engagedModules.size() > 0) {

-%>

-<p style="font-style:italic">

-Engaged Modules for the Axis Service

-</p>

-

-<ul>

-  <%

-    for (Iterator iteratorm = engagedModules.iterator(); iteratorm.hasNext();) {

-      AxisModule axisOperation = (AxisModule) iteratorm.next();

-      moduleName = axisOperation.getName();

-  %><li><%=moduleName%></li>

-  <%

-    }%>

-</ul>

-<%

-  }

-  if (operations.hasNext()) {

-%>

-

-<p style="font-style:italic">

-Available operations

-</p>

-<%

-} else {

-%>

-<p style="font-style:italic">

-There are no operations specified

-</p>

-<%

-  }

-%><ul><%

-  operations = axisService.getOperations();

-  while (operations.hasNext()) {

-    AxisOperation axisOperation = (AxisOperation) operations.next();

-%><li><%=axisOperation.getName().getLocalPart()%></li>

-  <%

-    engagedModules = axisOperation.getEngagedModules();

-    if (engagedModules.size() > 0) {

-  %>

-  

-<p style="font-style:italic">

-Engaged Modules for the Operation

-</p>

-<ul>

-  <%

-    for (Iterator iterator2 = engagedModules.iterator(); iterator2.hasNext();) {

-      AxisModule moduleDecription = (AxisModule) iterator2.next();

-      moduleName = moduleDecription.getName();

-  %><li><%=moduleName%></li>

-  <%

-  }

-%></ul><%

-    }

-

-  }

-%></ul>

-<%

-  }

-%>

-<jsp:include page="include/adminfooter.inc"/>

-</body>

-</html>

diff --git a/modules/xmlbeans/pom.xml b/modules/xmlbeans/pom.xml
index cdf34b7..e88426e 100644
--- a/modules/xmlbeans/pom.xml
+++ b/modules/xmlbeans/pom.xml
@@ -23,9 +23,9 @@
     <modelVersion>4.0.0</modelVersion>
     <parent>
         <groupId>org.apache.axis2</groupId>
-        <artifactId>axis2-parent</artifactId>
-        <version>1.7.0-SNAPSHOT</version>
-        <relativePath>../parent/pom.xml</relativePath>
+        <artifactId>axis2</artifactId>
+        <version>1.8.0-SNAPSHOT</version>
+        <relativePath>../../pom.xml</relativePath>
     </parent>
     <artifactId>axis2-xmlbeans</artifactId>
     <name>Apache Axis2 - XMLBeans Data Binding</name>
@@ -43,10 +43,12 @@
         <dependency>
             <groupId>org.apache.ant</groupId>
             <artifactId>ant</artifactId>
+            <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>org.apache.ant</groupId>
             <artifactId>ant-launcher</artifactId>
+            <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>junit</groupId>
diff --git a/modules/xmlbeans/src/org/apache/axis2/xmlbeans/template/XmlbeansDatabindingTemplate.xsl b/modules/xmlbeans/src/org/apache/axis2/xmlbeans/template/XmlbeansDatabindingTemplate.xsl
index d6b183d..fab975f 100644
--- a/modules/xmlbeans/src/org/apache/axis2/xmlbeans/template/XmlbeansDatabindingTemplate.xsl
+++ b/modules/xmlbeans/src/org/apache/axis2/xmlbeans/template/XmlbeansDatabindingTemplate.xsl
@@ -65,7 +65,7 @@
             <xsl:choose>

                 <xsl:when test="$base64">

                      if (optimizeContent) {

-                        org.apache.axiom.om.impl.builder.StAXOMBuilder builder = new org.apache.axiom.om.impl.builder.StAXOMBuilder

+                        org.apache.axiom.om.OMXMLParserWrapper builder = org.apache.axiom.om.OMXMLBuilderFactory.createStAXOMBuilder

                         (org.apache.axiom.om.OMAbstractFactory.getOMFactory(),new org.apache.axis2.util.StreamWrapper(param.newXMLStreamReader())) ;

                         org.apache.axiom.om.OMElement documentElement = builder.getDocumentElement(true);

                         optimizeContent(documentElement,qNameArray);

diff --git a/modules/xmlbeans/test/org/apache/axis2/xmlbeans/WSDL2JavaSuccessTestBase.java b/modules/xmlbeans/test/org/apache/axis2/xmlbeans/WSDL2JavaSuccessTestBase.java
index 2bfe35c..a9a30cd 100644
--- a/modules/xmlbeans/test/org/apache/axis2/xmlbeans/WSDL2JavaSuccessTestBase.java
+++ b/modules/xmlbeans/test/org/apache/axis2/xmlbeans/WSDL2JavaSuccessTestBase.java
@@ -23,8 +23,10 @@
 import org.apache.axis2.util.CommandLineOption;
 import org.apache.axis2.util.CommandLineOptionConstants;
 import org.apache.axis2.util.CommandLineOptionParser;
+import org.apache.axis2.wsdl.codegen.CodeGenConfiguration;
 import org.apache.axis2.wsdl.codegen.CodeGenerationEngine;
 import org.apache.axis2.wsdl.codegen.CodeGenerationException;
+import org.apache.axis2.wsdl.codegen.CodegenConfigLoader;
 import org.apache.tools.ant.Project;
 import org.apache.tools.ant.Target;
 import org.apache.tools.ant.taskdefs.Javac;
@@ -169,7 +171,9 @@
         Map optionMap = fillOptionMap(wsdlFile, outputLocation);
         CommandLineOptionParser parser =
                 new CommandLineOptionParser(optionMap);
-        new CodeGenerationEngine(parser).generate();
+        CodeGenConfiguration config = new CodeGenConfiguration();
+        CodegenConfigLoader.loadConfig(config, parser.getAllOptions());
+        new CodeGenerationEngine(config).generate();
     }
 
     /** @param outputLocation  */
diff --git a/pom.xml b/pom.xml
index 39b7a84..cf20b5a 100644
--- a/pom.xml
+++ b/pom.xml
@@ -23,12 +23,12 @@
     <parent>
         <groupId>org.apache</groupId>
         <artifactId>apache</artifactId>
-        <version>8</version>
+        <version>18</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
     <groupId>org.apache.axis2</groupId>
     <artifactId>axis2</artifactId>
-    <version>1.7.0-SNAPSHOT</version>
+    <version>1.8.0-SNAPSHOT</version>
     <packaging>pom</packaging>
     <name>Apache Axis2 - Root</name>
     <inceptionYear>2004</inceptionYear>
@@ -39,26 +39,29 @@
     </issueManagement>
     <modules>
         <module>modules/resource-bundle</module> <!-- Must be first in the list! -->
+        <module>apidocs</module>
         <module>modules/adb</module>
         <module>modules/adb-codegen</module>
+        <module>modules/adb-tests</module>
         <module>modules/addressing</module>
         <module>modules/codegen</module>
         <module>modules/fastinfoset</module>
         <module>modules/integration</module>
         <module>modules/java2wsdl</module>
         <module>modules/jibx</module>
+        <module>modules/jibx-codegen</module>
         <module>modules/json</module>
         <module>modules/kernel</module>
         <module>modules/mex</module>
         <module>modules/mtompolicy</module>
         <module>modules/mtompolicy-mar</module>
-        <module>modules/parent</module>
         <module>modules/ping</module>
         <module>modules/samples/version</module>
         <module>modules/soapmonitor/servlet</module>
         <module>modules/soapmonitor/module</module>
         <module>modules/spring</module>
         <module>modules/testutils</module>
+        <module>modules/tool/maven-shared</module>
         <module>modules/tool/axis2-aar-maven-plugin</module>
         <module>modules/tool/axis2-ant-plugin</module>
         <module>modules/tool/axis2-eclipse-codegen-plugin</module>
@@ -68,6 +71,7 @@
         <module>modules/tool/axis2-mar-maven-plugin</module>
         <module>modules/tool/axis2-repo-maven-plugin</module>
         <module>modules/tool/axis2-wsdl2code-maven-plugin</module>
+        <module>modules/tool/axis2-xsd2java-maven-plugin</module>
         <module>modules/tool/simple-server-maven-plugin</module>
         <module>modules/tool/archetype/quickstart</module>
         <module>modules/tool/archetype/quickstart-webapp</module>
@@ -83,8 +87,10 @@
         <module>modules/clustering</module>
         <module>modules/corba</module>
         <module>modules/osgi</module>
+        <module>modules/osgi-tests</module>
         <module>modules/transport/local</module>
         <module>modules/transport/http</module>
+        <module>modules/transport/http-hc3</module>
         <module>modules/transport/base</module>
         <module>modules/transport/jms</module>
         <module>modules/transport/mail</module>
@@ -92,96 +98,25 @@
         <module>modules/transport/testkit</module>
         <module>modules/transport/udp</module>
         <module>modules/transport/xmpp</module>
+        <module>modules/distribution</module>
+        <module>modules/samples</module>
+        <module>databinding-tests</module>
+        <module>systests</module>
     </modules>
     <profiles>
         <profile>
-            <!-- This profile needs to be activated when doing the release:prepare
-                 (by adding -Peverything) to make sure that the release plugin updates
-                 the version numbers of all relevant submodules. It must contain
-                 all modules not built by default, i.e. the set of modules used
-                 by this profile must be the union of the module sets of all
-                 other profiles. -->
-            <id>everything</id>
-            <modules>
-                <module>modules/distribution</module>
-                <module>modules/samples/java_first_jaxws</module>
-                <module>modules/samples/jaxws-addressbook</module>
-                <module>modules/samples/jaxws-calculator</module>
-                <module>modules/samples/jaxws-interop</module>
-                <module>modules/samples/jaxws-samples</module>
-                <module>modules/samples/jaxws-version</module>
-            </modules>
-        </profile>
-        <profile>
             <id>apache-release</id>
-            <modules>
-                <module>modules/distribution</module>
-            </modules>
             <build>
                 <plugins>
                     <plugin>
-                        <artifactId>maven-enforcer-plugin</artifactId>
-                        <version>1.0-beta-1</version>
+                        <artifactId>maven-source-plugin</artifactId>
                         <executions>
                             <execution>
+                                <!-- Skip the execution configured in org.apache:apache. We use our own configuration. -->
+                                <id>attach-sources</id>
+                                <phase>none</phase>
                                 <goals>
-                                    <goal>enforce</goal>
-                                </goals>
-                                <configuration>
-                                    <rules>
-                                        <!-- We need Maven 2.1 because the prepare-package phase
-                                             doesn't exist in Maven 2.0 -->
-                                        <requireMavenVersion>
-                                            <version>2.1.0</version>
-                                        </requireMavenVersion>
-                                    </rules>
-                                </configuration>
-                            </execution>
-                        </executions>
-                    </plugin>
-                    <plugin>
-                        <groupId>org.codehaus.gmaven</groupId>
-                        <artifactId>gmaven-plugin</artifactId>
-                        <version>1.2</version>
-                        <executions>
-                            <execution>
-                                <id>generate-timestamp</id>
-                                <phase>prepare-package</phase>
-                                <goals>
-                                    <goal>execute</goal>
-                                </goals>
-                                <configuration>
-                                    <source>
-                                        import java.util.Date 
-                                        import java.text.MessageFormat 
-                                        project.properties['buildTimestamp'] = MessageFormat.format("{0,date,dd-MM-yyyy}", new Date())
-                                    </source>
-                                </configuration>
-                            </execution>
-                        </executions>
-                    </plugin>
-                    <plugin>
-                        <artifactId>maven-javadoc-plugin</artifactId>
-                        <!-- Configure an additional execution. The configuration
-                             is the same as the one specified together with the execution
-                             in the pre-site phase.  -->
-                        <executions>
-                            <execution>
-                                <id>distribution-javadoc</id>
-                                <phase>prepare-package</phase>
-                                <goals>
-                                    <goal>aggregate</goal>
-                                </goals>
-                            </execution>
-                        </executions>
-                    </plugin>
-                    <plugin>
-                        <artifactId>maven-site-plugin</artifactId>
-                        <executions>
-                            <execution>
-                                <phase>prepare-package</phase>
-                                <goals>
-                                    <goal>site</goal>
+                                    <goal>jar</goal>
                                 </goals>
                             </execution>
                         </executions>
@@ -194,53 +129,37 @@
                                      so that the source-release assembly is not built.
                                      We define our own source distribution in modules/distribution. -->
                                 <id>source-release-assembly</id>
-                                <configuration>
-                                    <phase>package</phase>
-                                    <goals>
-                                        <goal>single</goal>
-                                    </goals>
-                                    <skipAssembly>true</skipAssembly>
-                                </configuration>
-                            </execution>
-                            <execution>
-                                <id>package-other-distributions</id>
                                 <phase>package</phase>
                                 <goals>
                                     <goal>single</goal>
                                 </goals>
                                 <configuration>
-                                    <descriptors>
-                                        <descriptor>src/main/assembly/doc.xml</descriptor>
-                                    </descriptors>
-                                </configuration>
-                            </execution>
-                            <execution>
-                                <id>prepare-dists</id>
-                                <!-- Must be done in the install phase after the checksum and signature for
-                                     the docs distribution has been generated. -->
-                                <phase>install</phase>
-                                <goals>
-                                    <goal>single</goal>
-                                </goals>
-                                <configuration>
-                                    <descriptors>
-                                        <descriptor>src/main/assembly/dists.xml</descriptor>
-                                    </descriptors>
-                                    <!-- We can only prepare the distributions if they have been signed -->
-                                    <skipAssembly>${gpg.skip}</skipAssembly>
+                                    <skipAssembly>true</skipAssembly>
                                 </configuration>
                             </execution>
                         </executions>
                     </plugin>
-                    <plugin>
-                        <artifactId>maven-install-plugin</artifactId>
-                        <configuration>
-                            <createChecksum>true</createChecksum>
-                        </configuration>
-                    </plugin>
                 </plugins>
             </build>
         </profile>
+        <profile>
+            <id>doclint-java7</id>
+            <activation>
+                <jdk>(,1.8)</jdk>
+            </activation>
+            <properties>
+                <javadoc.nolint.param />
+            </properties>
+        </profile>
+        <profile>
+            <id>doclint-java8</id>
+            <activation>
+                <jdk>[1.8,)</jdk>
+            </activation>
+            <properties>
+                <javadoc.nolint.param>-Xdoclint:none</javadoc.nolint.param>
+            </properties>
+        </profile>
     </profiles>
     <mailingLists>
         <mailingList>
@@ -517,6 +436,19 @@
             <url>http://lk.linkedin.com/pub/shameera-rathnayaka/1a/661/561</url>
             <organization>WSO2</organization>
         </developer>
+        <developer>
+            <name>Isuru Suriarachchi</name>
+            <id>isurues</id>
+            <email>isurues AT apache.org</email>
+            <url>https://www.linkedin.com/pub/isuru-suriarachchi/a/58b/b69</url>
+            <organization>Indiana University</organization>
+        </developer>
+        <developer>
+            <name>Hiranya Jayathilaka</name>
+            <id>hiranya</id>
+            <email>hiranya AT apache.org</email>
+            <organization>UC Santa Barbara</organization>
+        </developer>
     </developers>
     <contributors>
         <contributor>
@@ -568,40 +500,639 @@
         <developerConnection>scm:svn:https://svn.apache.org/repos/asf/axis/axis2/java/core/trunk</developerConnection>
         <url>http://svn.apache.org/viewvc/axis/axis2/java/core/trunk</url>
     </scm>
+    <distributionManagement>
+        <site>
+            <id>site</id>
+            <url>scm:svn:https://svn.apache.org/repos/asf/axis/site/axis2/java/core-staging</url>
+        </site>
+    </distributionManagement>
     <properties>
+        <neethi.version>3.0.4-SNAPSHOT</neethi.version>
+        <woden.version>1.0M11-SNAPSHOT</woden.version>
+        <axiom.version>1.3.0-SNAPSHOT</axiom.version>
+        <xmlschema.version>2.2.3-SNAPSHOT</xmlschema.version>
+        <ant.version>1.7.0</ant.version>
+        <antlr.version>2.7.7</antlr.version>
+        <bsf.version>2.4.0</bsf.version>
+        <commons.fileupload.version>1.3.3</commons.fileupload.version>
+        <commons.httpclient.version>3.1</commons.httpclient.version>
+        <commons.io.version>2.1</commons.io.version>
+        <commons.logging.version>1.1.1</commons.logging.version>
+        <fi.version>1.2.7</fi.version>
+        <geronimo.spec.annotation.version>1.1</geronimo.spec.annotation.version>
+        <geronimo.spec.metadata.version>1.1.2</geronimo.spec.metadata.version>
+        <geronimo.spec.jaxws.version>1.0</geronimo.spec.jaxws.version>
+        <google.gson.version>2.1</google.gson.version>
+        <httpcore.version>4.4.6</httpcore.version>
+        <httpclient.version>4.5.3</httpclient.version>
+        <intellij.version>5.0</intellij.version>
+        <jaxb.api.version>2.2.6</jaxb.api.version>
+        <jaxbri.version>2.2.6</jaxbri.version>
+        <jettison.version>1.3.8</jettison.version>
+        <jibx.version>1.3.1</jibx.version>
+        <log4j.version>1.2.15</log4j.version>
+        <maven.archiver.version>3.0.2</maven.archiver.version>
+        <maven.version>3.3.9</maven.version>
+        <maven.plugin.descriptor.version>2.0.7</maven.plugin.descriptor.version>
+        <maven.archetype.plugin.version>2.2</maven.archetype.plugin.version>
+        <plexus.classworlds.version>2.4</plexus.classworlds.version>
+        <plexus.utils.version>1.4.9</plexus.utils.version>
+        <rhino.version>1.6R7</rhino.version>
+        <servlet.api.version>2.3</servlet.api.version>
+        <slf4j.version>1.7.22</slf4j.version>
+        <spring.version>2.5.1</spring.version>
+        <tomcat.version>6.0.16</tomcat.version>
+        <wsdl4j.version>1.6.2</wsdl4j.version>
+        <xalan.version>2.7.0</xalan.version>
+        <xmlbeans.version>2.5.0</xmlbeans.version>
+        <xml_resolver.version>1.2</xml_resolver.version>
+        <xmlunit.version>1.3</xmlunit.version>
+        <commons.lang.version>2.3</commons.lang.version>
+        <commons.cli.version>1.2</commons.cli.version>
+        <!-- The build failing if tests are skipped is very annoying -->
+        <failIfNoTests>false</failIfNoTests>
+        <m2Repository>'${settings.localRepository}'</m2Repository>
+        <geronimo-spec.jta.version>1.1</geronimo-spec.jta.version>
+        <jaxws.tools.version>2.2.6</jaxws.tools.version>
+        <jaxws.rt.version>2.2.6</jaxws.rt.version>
+        <jsr311.api.version>1.1.1</jsr311.api.version>
+
         <!-- This variable is used in some Xdocs and is substituted using Velocity. Note that
              we can't use the project.version variable directly because of the dot. See
              http://maven.apache.org/plugins/maven-site-plugin/examples/creating-content.html -->
         <axis2_version>${project.version}</axis2_version>
     </properties>
+    <pluginRepositories>
+        <pluginRepository>
+            <id>apache.snapshots</id>
+            <name>Apache Snapshot Repository</name>
+            <url>http://repository.apache.org/snapshots</url>
+            <snapshots>
+                <enabled>true</enabled>
+                <updatePolicy>daily</updatePolicy>
+            </snapshots>
+            <releases>
+                <enabled>false</enabled>
+            </releases>
+        </pluginRepository>
+    </pluginRepositories>
+    <dependencyManagement>
+        <dependencies>
+            <dependency>
+                <groupId>com.sun.xml.fastinfoset</groupId>
+                <artifactId>FastInfoset</artifactId>
+                <version>${fi.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.tomcat</groupId>
+                <artifactId>tribes</artifactId>
+                <version>${tomcat.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.tomcat</groupId>
+                <artifactId>juli</artifactId>
+                <version>${tomcat.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>xml-resolver</groupId>
+                <artifactId>xml-resolver</artifactId>
+                <version>${xml_resolver.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>xalan</groupId>
+                <artifactId>xalan</artifactId>
+                <version>${xalan.version}</version>
+                <exclusions>
+                    <exclusion>
+                        <groupId>xml-apis</groupId>
+                        <artifactId>xml-apis</artifactId>
+                    </exclusion>
+                </exclusions>
+            </dependency>
+            <dependency>
+                <groupId>com.sun.xml.bind</groupId>
+                <artifactId>jaxb-impl</artifactId>
+                <version>${jaxbri.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>com.sun.xml.bind</groupId>
+                <artifactId>jaxb-xjc</artifactId>
+                <version>${jaxbri.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>javax.xml.bind</groupId>
+                <artifactId>jaxb-api</artifactId>
+                <version>${jaxb.api.version}</version>
+                <exclusions>
+                    <exclusion>
+                        <groupId>javax.xml.stream</groupId>
+                        <artifactId>stax-api</artifactId>
+                    </exclusion>
+                    <exclusion>
+                        <groupId>javax.activation</groupId>
+                        <artifactId>activation</artifactId>
+                    </exclusion>
+                </exclusions>
+            </dependency>
+            <dependency>
+                <groupId>com.sun.xml.ws</groupId>
+                <artifactId>jaxws-tools</artifactId>
+                <version>${jaxws.tools.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>com.sun.xml.ws</groupId>
+                <artifactId>jaxws-rt</artifactId>
+                <version>${jaxws.rt.version}</version>
+                <exclusions>
+                    <exclusion>
+                        <groupId>javax.xml.stream</groupId>
+                        <artifactId>stax-api</artifactId>
+                    </exclusion>
+                    <exclusion>
+                        <groupId>javax.activation</groupId>
+                        <artifactId>activation</artifactId>
+                    </exclusion>
+                    <exclusion>
+                        <groupId>javax.xml.soap</groupId>
+                        <artifactId>saaj-api</artifactId>
+                    </exclusion>
+                    <exclusion>
+                        <groupId>com.sun.xml.messaging.saaj</groupId>
+                        <artifactId>saaj-impl</artifactId>
+                    </exclusion>
+                </exclusions>
+            </dependency>
+            <dependency>
+                <groupId>org.springframework</groupId>
+                <artifactId>spring-core</artifactId>
+                <version>${spring.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.springframework</groupId>
+                <artifactId>spring-beans</artifactId>
+                <version>${spring.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.springframework</groupId>
+                <artifactId>spring-context</artifactId>
+                <version>${spring.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.springframework</groupId>
+                <artifactId>spring-web</artifactId>
+                <version>${spring.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>javax.servlet</groupId>
+                <artifactId>servlet-api</artifactId>
+                <version>${servlet.api.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.codehaus.jettison</groupId>
+                <artifactId>jettison</artifactId>
+                <version>${jettison.version}</version>
+                <exclusions>
+                    <exclusion>
+                        <groupId>stax</groupId>
+                        <artifactId>stax-api</artifactId>
+                    </exclusion>
+                </exclusions>
+            </dependency>
+            <dependency>
+                <groupId>com.google.code.gson</groupId>
+                <artifactId>gson</artifactId>
+                <version>${google.gson.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.jibx</groupId>
+                <artifactId>jibx-bind</artifactId>
+                <version>${jibx.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.jibx</groupId>
+                <artifactId>jibx-run</artifactId>
+                <version>${jibx.version}</version>
+                <exclusions>
+                    <exclusion>
+                        <groupId>org.codehaus.woodstox</groupId>
+                        <artifactId>wstx-asl</artifactId>
+                    </exclusion>
+                </exclusions>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.ant</groupId>
+                <artifactId>ant-launcher</artifactId>
+                <version>${ant.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.ws.commons.axiom</groupId>
+                <artifactId>axiom-api</artifactId>
+                <version>${axiom.version}</version>
+                <exclusions>
+                    <exclusion>
+                        <groupId>xml-apis</groupId>
+                        <artifactId>xml-apis</artifactId>
+                    </exclusion>
+                    <exclusion>
+                        <groupId>xerces</groupId>
+                        <artifactId>xercesImpl</artifactId>
+                    </exclusion>
+                </exclusions>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.ws.commons.axiom</groupId>
+                <artifactId>axiom-impl</artifactId>
+                <version>${axiom.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.ws.commons.axiom</groupId>
+                <artifactId>axiom-dom</artifactId>
+                <version>${axiom.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.ws.commons.axiom</groupId>
+                <artifactId>testutils</artifactId>
+                <version>${axiom.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>com.google.truth</groupId>
+                <artifactId>truth</artifactId>
+                <version>0.28</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.ws.commons.axiom</groupId>
+                <artifactId>xml-truth</artifactId>
+                <version>${axiom.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.ws.commons.axiom</groupId>
+                <artifactId>axiom-truth</artifactId>
+                <version>${axiom.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.mockito</groupId>
+                <artifactId>mockito-core</artifactId>
+                <version>1.10.19</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.ws.xmlschema</groupId>
+                <artifactId>xmlschema-core</artifactId>
+                <version>${xmlschema.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.neethi</groupId>
+                <artifactId>neethi</artifactId>
+                <version>${neethi.version}</version>
+                <exclusions>
+                    <exclusion>
+                        <groupId>org.codehaus.woodstox</groupId>
+                        <artifactId>woodstox-core-asl</artifactId>
+                    </exclusion>
+                </exclusions>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.ant</groupId>
+                <artifactId>ant</artifactId>
+                <version>${ant.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>commons-logging</groupId>
+                <artifactId>commons-logging</artifactId>
+                <version>${commons.logging.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.slf4j</groupId>
+                <artifactId>jcl-over-slf4j</artifactId>
+                <version>${slf4j.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.slf4j</groupId>
+                <artifactId>log4j-over-slf4j</artifactId>
+                <version>${slf4j.version}</version>
+            </dependency>
+
+            <dependency>
+                <groupId>com.sun.mail</groupId>
+                <artifactId>javax.mail</artifactId>
+                <version>1.5.6</version>
+                <exclusions>
+                    <exclusion>
+                        <groupId>javax.activation</groupId>
+                        <artifactId>activation</artifactId>
+                    </exclusion>
+                </exclusions>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.geronimo.specs</groupId>
+                <artifactId>geronimo-annotation_1.0_spec</artifactId>
+                <version>${geronimo.spec.annotation.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.geronimo.specs</groupId>
+                <artifactId>geronimo-ws-metadata_2.0_spec</artifactId>
+                <version>${geronimo.spec.metadata.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.geronimo.specs</groupId>
+                <artifactId>geronimo-jaxws_2.2_spec</artifactId>
+                <version>${geronimo.spec.jaxws.version}</version>
+            </dependency>
+
+            <dependency>
+                <groupId>commons-httpclient</groupId>
+                <artifactId>commons-httpclient</artifactId>
+                <version>${commons.httpclient.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>commons-io</groupId>
+                <artifactId>commons-io</artifactId>
+                <version>${commons.io.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.httpcomponents</groupId>
+                <artifactId>httpcore</artifactId>
+                <version>${httpcore.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.httpcomponents</groupId>
+                <artifactId>httpcore-osgi</artifactId>
+                <version>${httpcore.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.httpcomponents</groupId>
+                <artifactId>httpclient</artifactId>
+                <version>${httpclient.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.httpcomponents</groupId>
+                <artifactId>httpclient-osgi</artifactId>
+                <version>${httpclient.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>commons-fileupload</groupId>
+                <artifactId>commons-fileupload</artifactId>
+                <version>${commons.fileupload.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>wsdl4j</groupId>
+                <artifactId>wsdl4j</artifactId>
+                <version>${wsdl4j.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.woden</groupId>
+                <artifactId>woden-core</artifactId>
+                <version>${woden.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>javax.ws.rs</groupId>
+                <artifactId>jsr311-api</artifactId>
+                <version>${jsr311.api.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>xmlunit</groupId>
+                <artifactId>xmlunit</artifactId>
+                <version>${xmlunit.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>junit</groupId>
+                <artifactId>junit</artifactId>
+                <version>4.12</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.xmlbeans</groupId>
+                <artifactId>xmlbeans</artifactId>
+                <version>${xmlbeans.version}</version>
+                <exclusions>
+                    <exclusion>
+                        <groupId>stax</groupId>
+                        <artifactId>stax-api</artifactId>
+                    </exclusion>
+                </exclusions>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.maven</groupId>
+                <artifactId>maven-plugin-api</artifactId>
+                <version>${maven.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.maven</groupId>
+                <artifactId>maven-core</artifactId>
+                <version>${maven.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.maven</groupId>
+                <artifactId>maven-artifact</artifactId>
+                <version>${maven.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.maven</groupId>
+                <artifactId>maven-compat</artifactId>
+                <version>${maven.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.maven</groupId>
+                <artifactId>maven-archiver</artifactId>
+                <version>${maven.archiver.version}</version>
+            </dependency>
+            <dependency>
+                <!-- Some plexus-archiver versions seem to trigger OOM errors; see MSOURCES-98. -->
+                <groupId>org.codehaus.plexus</groupId>
+                <artifactId>plexus-archiver</artifactId>
+                <version>3.4</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.maven</groupId>
+                <artifactId>maven-plugin-descriptor</artifactId>
+                <version>${maven.plugin.descriptor.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-archetype-plugin</artifactId>
+                <version>${maven.archetype.plugin.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.codehaus.plexus</groupId>
+                <artifactId>plexus-utils</artifactId>
+                <version>${plexus.utils.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.codehaus.plexus</groupId>
+                <artifactId>plexus-classworlds</artifactId>
+                <version>${plexus.classworlds.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>log4j</groupId>
+                <artifactId>log4j</artifactId>
+                <version>${log4j.version}</version>
+                <exclusions>
+                    <exclusion>
+                        <groupId>javax.mail</groupId>
+                        <artifactId>mail</artifactId>
+                    </exclusion>
+                    <exclusion>
+                        <groupId>javax.jms</groupId>
+                        <artifactId>jms</artifactId>
+                    </exclusion>
+                    <exclusion>
+                        <groupId>com.sun.jdmk</groupId>
+                        <artifactId>jmxtools</artifactId>
+                    </exclusion>
+                    <exclusion>
+                        <groupId>com.sun.jmx</groupId>
+                        <artifactId>jmxri</artifactId>
+                    </exclusion>
+                    <exclusion>
+                        <groupId>oro</groupId>
+                        <artifactId>oro</artifactId>
+                    </exclusion>
+                    <exclusion>
+                        <groupId>junit</groupId>
+                        <artifactId>junit</artifactId>
+                    </exclusion>
+                </exclusions>
+            </dependency>
+            <dependency>
+                <groupId>org.eclipse.core</groupId>
+                <artifactId>jobs</artifactId>
+                <version>3.2.0-v20060603</version>
+            </dependency>
+            <dependency>
+                <groupId>org.eclipse.core</groupId>
+                <artifactId>resources</artifactId>
+                <version>3.2.1-R32x_v20060914</version>
+            </dependency>
+            <dependency>
+                <groupId>org.eclipse.core</groupId>
+                <artifactId>runtime</artifactId>
+                <version>3.2.0-v20060603</version>
+            </dependency>
+            <dependency>
+                <groupId>org.eclipse.equinox</groupId>
+                <artifactId>common</artifactId>
+                <version>3.2.0-v20060603</version>
+            </dependency>
+            <dependency>
+                <groupId>org.eclipse</groupId>
+                <artifactId>jface</artifactId>
+                <version>3.2.1-M20060908-1000</version>
+            </dependency>
+            <dependency>
+                <groupId>org.eclipse</groupId>
+                <artifactId>osgi</artifactId>
+                <version>3.2.1-R32x_v20060919</version>
+            </dependency>
+            <dependency>
+                <groupId>org.eclipse</groupId>
+                <artifactId>swt</artifactId>
+                <version>3.2.1-v3235e</version>
+            </dependency>
+            <dependency>
+                <groupId>org.eclipse.swt.win32.win32</groupId>
+                <artifactId>x86</artifactId>
+                <version>3.2.1-v3235</version>
+            </dependency>
+            <dependency>
+                <groupId>org.eclipse.ui</groupId>
+                <artifactId>ide</artifactId>
+                <version>3.2.1-M20060915-1030</version>
+            </dependency>
+            <dependency>
+                <groupId>org.eclipse.core</groupId>
+                <artifactId>expressions</artifactId>
+                <version>3.2.1-r321_v20060721</version>
+            </dependency>
+            <dependency>
+                <groupId>org.eclipse</groupId>
+                <artifactId>ui</artifactId>
+                <version>3.2.1-M20060913-0800</version>
+            </dependency>
+            <dependency>
+                <groupId>org.eclipse.ui</groupId>
+                <artifactId>workbench</artifactId>
+                <version>3.2.1-M20060906-0800</version>
+            </dependency>
+            <dependency>
+                <groupId>org.eclipse.update</groupId>
+                <artifactId>core</artifactId>
+                <version>3.2.1-v20092006</version>
+            </dependency>
+            <dependency>
+                <groupId>com.intellij</groupId>
+                <artifactId>openapi</artifactId>
+                <version>${intellij.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>com.intellij</groupId>
+                <artifactId>extensions</artifactId>
+                <version>${intellij.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>rhino</groupId>
+                <artifactId>js</artifactId>
+                <version>${rhino.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>bsf</groupId>
+                <artifactId>bsf</artifactId>
+                <version>${bsf.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>commons-lang</groupId>
+                <artifactId>commons-lang</artifactId>
+                <version>${commons.lang.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.geronimo.specs</groupId>
+                <artifactId>geronimo-jta_1.1_spec</artifactId>
+                <version>${geronimo-spec.jta.version}</version>
+            </dependency>
+            <dependency>
+                <!-- Both google-java-format and Maven depend on Guava. We need to select
+                     a version that works for both. -->
+                <groupId>com.google.guava</groupId>
+                <artifactId>guava</artifactId>
+                <version>19.0</version>
+            </dependency>
+
+            <dependency>
+                <groupId>commons-cli</groupId>
+                <artifactId>commons-cli</artifactId>
+                <version>${commons.cli.version}</version>
+            </dependency>
+            
+            <!-- Jetty is used by some of the unit tests -->
+            <dependency>
+                <groupId>jetty</groupId>
+                <artifactId>jetty</artifactId>
+                <version>5.1.10</version>
+            </dependency>
+
+            <!-- AspectJ is used in the unit tests of several transports -->            
+            <dependency>
+                <groupId>org.aspectj</groupId>
+                <artifactId>aspectjrt</artifactId>
+                <version>1.8.2</version>
+            </dependency>
+            <dependency>
+                <groupId>org.aspectj</groupId>
+                <artifactId>aspectjweaver</artifactId>
+                <version>1.8.2</version>
+            </dependency>
+        </dependencies>
+    </dependencyManagement>
     <build>
-        <!-- Note: the pluginManagement in axis2-parent doesn't apply here; we
-             need to define our own! -->
         <pluginManagement>
             <plugins>
                 <plugin>
                     <artifactId>maven-javadoc-plugin</artifactId>
-                    <version>2.7</version>
+                    <version>2.10.3</version>
                     <configuration>
-                        <reportOutputDirectory>${project.reporting.outputDirectory}</reportOutputDirectory>
-                        <destDir>api</destDir>
-                        <additionalJOption>-J-Xmx256m</additionalJOption>
-                        <links>
-                            <link>http://download.oracle.com/javase/1.5.0/docs/api/</link>
-                            <link>http://java.sun.com/javaee/5/docs/api/</link>
-                            <link>http://jaxen.codehaus.org/apidocs/</link>
-                        </links>
+                        <detectOfflineLinks>false</detectOfflineLinks>
+                        <additionalparam>${javadoc.nolint.param}</additionalparam>
                     </configuration>
                 </plugin>
                 <plugin>
-                    <artifactId>maven-assembly-plugin</artifactId>
-                    <version>2.2</version>
-                </plugin>
-                <plugin>
-                    <groupId>org.apache.maven.plugins</groupId>
                     <artifactId>maven-release-plugin</artifactId>
-                    <!-- Note: 2.0 seems to have issues with the calculation of the tag path -->
-                    <version>2.0-beta-9</version>
                     <configuration>
                         <autoVersionSubmodules>true</autoVersionSubmodules>
                         <!-- "clean verify" fails because for OSGi bundles, there
@@ -610,73 +1141,398 @@
                              the dependency from the local repository instead of the
                              reactor. -->
                         <preparationGoals>clean install</preparationGoals>
+                        <tagNameFormat>v@{project.version}</tagNameFormat>
                     </configuration>
                 </plugin>
                 <plugin>
                     <artifactId>maven-site-plugin</artifactId>
-                    <version>3.1</version>
+                    <version>3.6</version>
+                </plugin>
+                <plugin>
+                    <groupId>org.codehaus.gmavenplus</groupId>
+                    <artifactId>gmavenplus-plugin</artifactId>
+                    <version>1.5</version>
+                    <dependencies>
+                        <dependency>
+                            <groupId>org.codehaus.groovy</groupId>
+                            <artifactId>groovy-all</artifactId>
+                            <version>2.4.4</version>
+                        </dependency>
+                    </dependencies>
+                </plugin>
+                <plugin>
+                    <artifactId>maven-antrun-plugin</artifactId>
+                    <version>1.8</version>
+                </plugin>
+                <plugin>
+                    <artifactId>maven-assembly-plugin</artifactId>
+                    <version>2.6</version>
+                </plugin>
+                <plugin>
+                    <artifactId>maven-clean-plugin</artifactId>
+                    <version>3.0.0</version>
+                </plugin>
+                <plugin>
+                    <artifactId>maven-compiler-plugin</artifactId>
+                    <version>3.5.1</version>
+                </plugin>
+                <plugin>
+                    <artifactId>maven-dependency-plugin</artifactId>
+                    <version>2.0</version>
+                </plugin>
+                <plugin>
+                    <artifactId>maven-ear-plugin</artifactId>
+                    <version>2.3.1</version>
+                </plugin>
+                <plugin>
+                    <artifactId>maven-ejb-plugin</artifactId>
+                    <version>2.1</version>
+                </plugin>
+                <plugin>
+                    <artifactId>maven-install-plugin</artifactId>
+                    <version>2.2</version>
+                </plugin>
+                <plugin>
+                    <artifactId>maven-jar-plugin</artifactId>
+                    <version>2.2</version>
+                </plugin>
+                <plugin>
+                    <artifactId>maven-plugin-plugin</artifactId>
+                    <version>2.6</version>
+                </plugin>
+                <plugin>
+                    <artifactId>maven-rar-plugin</artifactId>
+                    <version>2.2</version>
+                </plugin>
+                <plugin>
+                    <artifactId>maven-resources-plugin</artifactId>
+                    <version>2.4.2</version>
+                </plugin>
+                <plugin>
+                    <artifactId>maven-source-plugin</artifactId>
+                    <version>2.4</version>
+                </plugin>
+                <plugin>
+                    <artifactId>maven-surefire-plugin</artifactId>
+                    <version>2.20</version>
+                </plugin>
+                <plugin>
+                    <artifactId>maven-failsafe-plugin</artifactId>
+                    <version>2.20</version>
+                </plugin>
+                <plugin>
+                    <artifactId>maven-war-plugin</artifactId>
+                    <version>2.6</version>
+                </plugin>
+                <plugin>
+                    <groupId>org.codehaus.mojo</groupId>
+                    <artifactId>build-helper-maven-plugin</artifactId>
+                    <version>1.7</version>
+                </plugin>
+                <plugin>
+                    <groupId>org.apache.felix</groupId>
+                    <artifactId>maven-bundle-plugin</artifactId>
+                    <version>3.3.0</version>
+                </plugin>
+                <plugin>
+                    <groupId>net.nicoulaj.maven.plugins</groupId>
+                    <artifactId>checksum-maven-plugin</artifactId>
+                    <version>1.5</version>
+                    <configuration>
+                        <algorithms>
+                            <algorithm>MD5</algorithm>
+                            <algorithm>SHA-1</algorithm>
+                            <algorithm>SHA-512</algorithm>
+                        </algorithms>
+                    </configuration>
+                </plugin>
+                <plugin>
+                    <artifactId>maven-project-info-reports-plugin</artifactId>
+                    <version>2.8.1</version>
+                </plugin>
+                <plugin>
+                    <groupId>com.github.veithen.alta</groupId>
+                    <artifactId>alta-maven-plugin</artifactId>
+                    <version>0.6.1</version>
+                </plugin>
+                <plugin>
+                    <groupId>org.codehaus.mojo</groupId>
+                    <artifactId>jaxb2-maven-plugin</artifactId>
+                    <version>2.3.1</version>
+                </plugin>
+                <plugin>
+                    <groupId>org.codehaus.mojo</groupId>
+                    <artifactId>jaxws-maven-plugin</artifactId>
+                    <version>2.5</version>
+                    <configuration>
+                        <vmArgs>
+                            <vmArg>-Djavax.xml.accessExternalSchema=all</vmArg>
+                        </vmArgs>
+                    </configuration>
+                </plugin>
+                <plugin>
+                    <groupId>org.eclipse.jetty</groupId>
+                    <artifactId>jetty-maven-plugin</artifactId>
+                    <version>9.3.10.v20160621</version>
+                </plugin>
+                <plugin>
+                    <artifactId>maven-invoker-plugin</artifactId>
+                    <version>2.0.0</version>
+                    <configuration>
+                        <javaHome>${java.home}</javaHome>
+                    </configuration>
+                </plugin>
+                
+                <!-- Use released versions of the aar and mar plugins in order to avoid
+                     the chicken and egg problem. -->
+                <plugin>
+                    <groupId>org.apache.axis2</groupId>
+                    <artifactId>axis2-aar-maven-plugin</artifactId>
+                    <version>1.7.6</version>
+                </plugin>
+                <plugin>
+                    <groupId>org.apache.axis2</groupId>
+                    <artifactId>axis2-mar-maven-plugin</artifactId>
+                    <version>1.7.6</version>
+                </plugin>
+                
+                <!-- No chicken and egg problem here because the plugin doesn't expose
+                     any extension. We can always use the version from the current build. -->
+                <plugin>
+                    <groupId>org.apache.axis2</groupId>
+                    <artifactId>axis2-repo-maven-plugin</artifactId>
+                    <version>${project.version}</version>
                 </plugin>
             </plugins>
         </pluginManagement>
         <plugins>
             <plugin>
-                <artifactId>maven-clean-plugin</artifactId>
+                <artifactId>maven-enforcer-plugin</artifactId>
+                <version>1.1</version>
+                <executions>
+                    <execution>
+                        <phase>validate</phase>
+                        <goals>
+                            <goal>enforce</goal>
+                        </goals>
+                        <configuration>
+                            <rules>
+                                <requireMavenVersion>
+                                    <version>3.0.0</version>
+                                </requireMavenVersion>
+                                <requireJavaVersion>
+                                    <!-- We require a recent Java version for the build, but we enforce compatibility with older versions using Animal Sniffer -->
+                                    <version>1.8.0</version>
+                                </requireJavaVersion>
+                                <requireNoRepositories>
+                                    <message>The POM must not include repository definitions since non Apache repositories threaten the build stability.</message>
+                                    <banRepositories>true</banRepositories>
+                                    <banPluginRepositories>true</banPluginRepositories>
+                                    <!-- We still need to allow the Apache snapshot repository -->
+                                    <allowSnapshotRepositories>true</allowSnapshotRepositories>
+                                    <allowSnapshotPluginRepositories>true</allowSnapshotPluginRepositories>
+                                </requireNoRepositories>
+                            </rules>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+            <plugin>
+                <artifactId>maven-compiler-plugin</artifactId>
+                <inherited>true</inherited>
                 <configuration>
-                    <failOnError>false</failOnError>
+                    <source>1.7</source>
+                    <target>1.7</target>
                 </configuration>
             </plugin>
             <plugin>
-                <artifactId>maven-remote-resources-plugin</artifactId>
+                <groupId>org.codehaus.mojo</groupId>
+                <artifactId>animal-sniffer-maven-plugin</artifactId>
+                <version>1.14</version>
                 <executions>
                     <execution>
+                        <id>check</id>
+                        <phase>verify</phase>
                         <goals>
-                            <goal>process</goal>
+                            <goal>check</goal>
+                        </goals>
+                    </execution>
+                </executions>
+                <configuration>
+                    <signature>
+                        <groupId>org.codehaus.mojo.signature</groupId>
+                        <artifactId>java17</artifactId>
+                        <version>1.0</version>
+                    </signature>
+                </configuration>
+            </plugin>
+            <plugin>
+                <artifactId>maven-clean-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <!-- Work around AXIS2-5890. The jaxb2-maven-plugin doesn't have an option
+                             to force regenerating the source, so just clean the stale flag file. -->
+                        <id>clean-testXjcStaleFlag</id>
+                        <phase>generate-test-sources</phase>
+                        <goals>
+                            <goal>clean</goal>
                         </goals>
                         <configuration>
-                            <resourceBundles>
-                                <resourceBundle>org.apache.axis2:axis2-resource-bundle:${project.version}</resourceBundle>
-                            </resourceBundles>
+                            <excludeDefaultDirectories>true</excludeDefaultDirectories>
+                            <filesets>
+                                <fileset>
+                                    <directory>${project.build.directory}/jaxb2</directory>
+                                    <includes>
+                                        <include>*-testXjcStaleFlag</include>
+                                    </includes>
+                                </fileset>
+                            </filesets>
                         </configuration>
                     </execution>
                 </executions>
             </plugin>
             <plugin>
-                <artifactId>maven-assembly-plugin</artifactId>
-                <executions>
-                    <execution>
-                        <id>package-jar</id>
-                        <phase>package</phase>
-                        <goals>
-                            <goal>single</goal>
-                        </goals>
-                        <configuration>
-                            <descriptors>
-                                <descriptor>src/main/assembly/jar.xml</descriptor>
-                            </descriptors>
-                            <appendAssemblyId>false</appendAssemblyId>
-                        </configuration>
-                    </execution>
-                </executions>
+                <artifactId>maven-surefire-plugin</artifactId>
+                <configuration>
+                    <redirectTestOutputToFile>true</redirectTestOutputToFile>
+                    <systemProperties>
+                        <property>
+                            <name>java.io.tmpdir</name>
+                            <value>${project.build.directory}/tmp</value>
+                        </property>
+                    </systemProperties>
+                </configuration>
             </plugin>
             <plugin>
-                <artifactId>maven-javadoc-plugin</artifactId>
+                <artifactId>maven-failsafe-plugin</artifactId>
+                <configuration>
+                    <redirectTestOutputToFile>true</redirectTestOutputToFile>
+                    <systemProperties>
+                        <property>
+                            <name>java.io.tmpdir</name>
+                            <value>${project.build.directory}/tmp</value>
+                        </property>
+                    </systemProperties>
+                </configuration>
+            </plugin>
+            <plugin>
+                <!-- Always build source JARs -->
+                <artifactId>maven-source-plugin</artifactId>
                 <executions>
                     <execution>
-                        <id>site-javadoc</id>
+                        <id>source-jars</id>
+                        <goals>
+                            <goal>jar-no-fork</goal>
+                        </goals>
+                    </execution>
+                </executions>
+                <configuration>
+                    <attach>true</attach>
+                </configuration>
+            </plugin>
+            <plugin>
+                <groupId>org.codehaus.gmavenplus</groupId>
+                <artifactId>gmavenplus-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <id>create-tmp-directory</id>
+                        <phase>initialize</phase>
+                        <goals>
+                            <goal>execute</goal>
+                        </goals>
+                        <configuration>
+                            <scripts>
+                                <script><![CDATA[
+                                    import java.io.File
+                                    
+                                    // Create the temporary directory specified in the surefire configuration
+                                    new File(project.build.directory, 'tmp').mkdirs()
+                                ]]></script>
+                            </scripts>
+                        </configuration>
+                    </execution>
+                    <execution>
+                        <id>prepare-site</id>
                         <phase>pre-site</phase>
                         <goals>
-                            <goal>aggregate</goal>
+                            <goal>execute</goal>
                         </goals>
+                        <configuration>
+                            <scripts>
+                                <script>
+                                    import java.util.Date
+                                    import java.text.MessageFormat
+                                    project.properties['release_date'] = MessageFormat.format("{0,date,MMMMM dd, yyyy}", new Date())
+                                    project.properties['release_version'] = project.version.replaceAll("-SNAPSHOT", "")
+                                    project.properties['skipSiteSite'] = String.valueOf(!new File(project.basedir, 'src/site/site.xml').exists())
+                                </script>
+                            </scripts>
+                        </configuration>
+                    </execution>
+                    <execution>
+                        <id>check-site</id>
+                        <phase>post-site</phase>
+                        <goals>
+                            <goal>execute</goal>
+                        </goals>
+                        <configuration>
+                            <scripts>
+                                <script>
+                                    project.properties['skipSiteStage'] = String.valueOf(!new File(project.reporting.outputDirectory).exists())
+                                </script>
+                            </scripts>
+                        </configuration>
                     </execution>
                 </executions>
             </plugin>
+            <plugin>
+                <artifactId>maven-deploy-plugin</artifactId>
+                <configuration>
+                    <!-- Work around flakiness in the ASF infrastructure -->
+                    <retryFailedDeploymentCount>3</retryFailedDeploymentCount>
+                </configuration>
+            </plugin>
+            <plugin>
+                <artifactId>maven-site-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <id>default-site</id>
+                        <phase>site</phase>
+                        <goals>
+                            <goal>site</goal>
+                        </goals>
+                        <configuration>
+                            <skip>${skipSiteSite}</skip>
+                        </configuration>
+                    </execution>
+                    <execution>
+                        <id>site-stage</id>
+                        <phase>site-deploy</phase>
+                        <goals>
+                            <goal>stage</goal>
+                        </goals>
+                        <configuration>
+                            <skip>${skipSiteStage}</skip>
+                        </configuration>
+                    </execution>
+                </executions>
+                <configuration>
+                    <!-- Don't deploy; we use maven-scm-publish-plugin -->
+                    <skipDeploy>true</skipDeploy>
+                </configuration>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-scm-publish-plugin</artifactId>
+                <version>1.1</version>
+            </plugin>
         </plugins>
     </build>
     <reporting>
         <plugins>
             <plugin>
                 <artifactId>maven-project-info-reports-plugin</artifactId>
-                <version>2.1.1</version>
+                <inherited>false</inherited>
                 <reportSets>
                     <reportSet>
                         <reports>
diff --git a/release-notes.html b/release-notes.html
deleted file mode 100644
index da0d35e..0000000
--- a/release-notes.html
+++ /dev/null
@@ -1,593 +0,0 @@
-<!--
-  ~ Licensed to the Apache Software Foundation (ASF) under one
-  ~ or more contributor license agreements. See the NOTICE file
-  ~ distributed with this work for additional information
-  ~ regarding copyright ownership. The ASF licenses this file
-  ~ to you under the Apache License, Version 2.0 (the
-  ~ "License"); you may not use this file except in compliance
-  ~ with the License. You may obtain a copy of the License at
-  ~
-  ~ http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing,
-  ~ software distributed under the License is distributed on an
-  ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  ~ KIND, either express or implied. See the License for the
-  ~ specific language governing permissions and limitations
-  ~ under the License.
-  -->
-
-<html>
-<head>
-  <meta http-equiv="content-type" content="">
-  <title>Welcome to Apache Axis2 version @axisVersion@</title>
-</head>
-
-<body lang="en">
-<h1>Welcome to Apache Axis2 version @axisVersion@</h1>
-
-<h3>@TODAY@</h3>
-
-<pre>Just over 8 months since the 1.3 release, we are very proud to
-announce the release of Apache Axis2 version @axisVersion@.
-
-Downloads are available at:
-    http://ws.apache.org/axis2/download.cgi
-
-Apache Axis2 is a complete re-design and re-write of the widely used
-Apache Axis engine and is a more efficient, more scalable, more modular
-and more XML-oriented Web services framework. It is carefully designed to
-support the easy addition of plug-in "modules" that extend its
-functionality for features such as security and reliability.
-
-Modules supporting WS-Security/Secure-Conversation (Apache Rampart),
-WS-Trust (Apache Rahas), WS-Reliable Messaging (Apache Sandesha) and
-WS-Eventing (Apache Savan) will be available soon after the Apache Axis2
-@axisVersion@ release. Please see these projects' own sites for further information.
-
-Major Changes Since 1.3:
-- Support for JAXWS and JSR 181 Annotations
-- Experimental Corba Support
-- Fixed tons of small and not-so-small bugs (See list below)
-
-Known Issues and Limitations in @axisVersion@ Release:
-- Please see JIRA
-
-We are striving for a simple and happy first time user experience as well as a
-satisfying experienced user experience with this release. We welcome any
-and all feedback at:
-    axis-user@ws.apache.org (please include "[axis2]" in the subject)
-    axis-dev@ws.apache.org (please include "[axis2]" in the subject)
-    http://issues.apache.org/jira/browse/AXIS2
-
-Thank you for your interest in Apache Axis2!
-
-The Axis2 Development Team
-http://ws.apache.org/axis2/
-
-------------------------------------------------------------------------------------
-
-Features of Apache Axis2:
-
-Programming Model
-   - Simple XML-centric client API with full WSDL and policy support
-   - Support for POJO and Spring services and clients
-   - Support for any message exchange pattern (MEP)
-   - Synchronous and asynchronous programming model
-   - Archived service deployment model supporting full service
-     encapsulation with versioning support
-   - Archived module deployment model supporting controlled
-     extensibility with versioning support
-   - Hot deployment
-   - WS-Policy driven code generation extensions
-   - Flexible service life cycle model
-   - Automatic support for POX (REST) style invocation of services
-   - Support for querying service's WSDL (with ?wsdl), schema (with
-     ?xsd) and policies (with ?policy)
-
-Supported Specifications
-   - SOAP 1.1 and 1.2
-   - Message Transmission Optimization Mechanism (MTOM)
-   - XML Optimized Packaging (XOP)
-   - SOAP with Attachments
-   - WSDL 1.1, including both SOAP and HTTP bindings
-   - WS-Addressing submission and 1.0
-   - WS-Policy
-   - SAAJ 1.1
-
-Transports
-   - HTTP
-   - SMTP
-   - JMS
-   - TCP
-
-Supported Data Bindings
-   - Axis Data Binding (ADB)
-   - XMLBeans
-   - JibX
-   - JaxBRI (Experimental)
-
-Tools
-   - WSDL2Java: Generate Java stubs and skeletons from a WSDL document.
-   - Java2WSDL: Generate a WSDL document from a Java class.
-   - Eclipse Plugins
-   - IntelliJ Idea Plugins
-   - Maven2 Plugins
-   - Web application for administering Apache Axis2
-   
-Bugs marked as Resolved/Fixed after 1.3 Release:
-AXIS2-3757	Miss behaviour in adding handlers to the phase when the handler has after attribute
-AXIS2-3758	REST GET invocations fail with httpLocations of the form foo/{name} when more than one parameter is present
-AXIS2-3759	JAXWS: Out Of Memory Issues With JAXBContext
-AXIS2-3760	legal/backport-util-concurrent-LICENSE.txt is out of date
-AXIS2-3761	Generated ?wsdl2 docs are invalid when a service has more than 1 transport enabled
-AXIS2-3762	Generated ?wsdl2 docs do not contain httpLocation for HttpBinding hence codegen for httpBinding will not work
-AXIS2-3763	Invalid soap fault
-AXIS2-3764	Attribute containing all upper case characters not included in response
-AXIS2-3765	[REST support] when using POST with x-www-form-urlencoded data aren't decode from url encoded
-AXIS2-3766	File setLastModified() in deployment code causes problems
-AXIS2-3767	Store UnmarshalInfo instances on AxisOperation instead of AxisService
-AXIS2-3768	org.apache.axis2.AxisFault: Connection reset - connections are not closing for long time
-AXIS2-3769	Use actaul message to determine the outbound wsa action
-AXIS2-3770	Wrong JAX-WS handler-chain execution
-AXIS2-3771	Rampart has dependancies to classes which was in mex-impl
-AXIS2-3772	JAXWS: CID for SWA Attachments does not comply with the WS-I Specification Syntax
-AXIS2-3773	Support for @MTOM Threshold.
-AXIS2-3774	?wsdl2 does not show engaged security policies
-AXIS2-3775	?wsdl2 shows endpoints for transports that are dissabled
-AXIS2-3776	Context class loader not restored correctly
-AXIS2-3777	Handling of exceptions raised by handlers in one-way invocations
-AXIS2-3778	Problems loading RequestWrapper/ResponseWrapper etc when JAXWS Service is deployed as a jar under servicejars
-AXIS2-3779	JAX-WS: JAXBUtils should not load classes from nested packages
-AXIS2-3780	Array of strings (or other simple types) are serialized as xsd:list
-AXIS2-3781	Shell scripts do not tolerate AXIS2_HOME and JAVA_HOME with spaces in paths
-AXIS2-3782	All outbound handlers are invoked when an inbound handler throws exception or returns false
-AXIS2-3783	CLONE -Classpath/Classloader issue with packaging
-AXIS2-3784	Log.debug statement causes NullPointerException
-AXIS2-3785	Can't use SSL with scope="transportsession"
-AXIS2-3786	Invalid SOAPMessage caching in SoapMessageContext
-AXIS2-3787	MessageContext.REFERENCE_PARAMETERS property not visible in handlers
-AXIS2-3788	WSDL2Java fails for WSDL that work for Axis2 1.3
-AXIS2-3789	Adding codegen jar to axis2.war and adding mtompolicy jar to distribution
-AXIS2-3790	WSDL2Java throws a StackOverflowError
-AXIS2-3791	If available prefer sending [Subsubcode] as the fault code instead of [Subcode] for SOAP 1.1 faults
-AXIS2-3792	axis2-mtompolicy-1.4.jar is missing in the bin dist
-AXIS2-3793	Input/output wsa actions are not always set
-AXIS2-3794	fixes for backward compatibility
-AXIS2-3795	Improve handler-chains.xml parsing
-AXIS2-3796	SOAP Action is not set by service Client when its invoked via a WSDL
-AXIS2-3797	JAXWS: Support Binding Property to Access SOAPHeaders
-AXIS2-3798	httpcore-niossl-LICENSE.txt is no longer needed - should be deleted
-AXIS2-3799	Methods with multiple faults and wsa actions are not handled correctly
-AXIS2-3800	Backward compatibility, Minor fixes for 1.4 release
-AXIS2-3801	Add option to enable a wsa:MessageId in repsonse message
-AXIS2-3802	WSDL2Java tool fails with NullPointerException
-AXIS2-3803	Thread safety in XMLFaultCode
-AXIS2-3804	JAXWS: Need to preserve "custom fault codes" for SOAP 1.1
-AXIS2-3805	WSDL2java does not work correctly if no network or behind Firewall
-AXIS2-3806	The AddressingInHandler needs to take account of the WS_ADDRESSING_VERSION parameter
-AXIS2-3807	JAXWS: @MTOM annotation not respected in some circumstances
-AXIS2-3808	Should preclude new dispatch instances where type is SOAP and mode is payload
-AXIS2-3809	Support for @XmlSeeAlso
-AXIS2-3810	Update signature of WsdlGenerator method
-AXIS2-3811	AddressingOutHandler uses OMElement instead of SOAPHeaderBlock when processing reference parameters
-AXIS2-3812	Wsdl2 code generation falis
-AXIS2-3813	Attachments larger than Integer.MAX_VALUE (appr 2.1GB) fails
-AXIS2-3814	org.apache.axis2.transport.jms.JMSListener.stop() doesn't shutdown the thread pool created in start() for JMSMessageReceiver
-AXIS2-3815	Unable to switch addressing mar on in jaxws-integration tests
-AXIS2-3816	AddressingOutHandler may omit wsa:To on 2004/08 despite it being mandatory
-AXIS2-3817	NPE in MessageContextBuilder.createFaultEnvelope and SOAP12Constants.SOAP_FAULT_NODE_LOCAL_NAME property set in message context
-AXIS2-3818	Need to ensure we are generating wsdl only for SOAP 11 based bindings
-AXIS2-3819	Support WS-A action generation from pure annotations
-AXIS2-3820	Enable AxisFault to display correct 'caused by' exception
-AXIS2-3821	InvocationResponse.equals throws NPE
-AXIS2-3822	Implicit SEIs cause too many methods to be published
-AXIS2-3823	Suggested fixes for 1.4 RC3
-AXIS2-3824	AxisBindings are created for each and every transport on services deployed
-AXIS2-3825	MTOM does not work if the file length is zero
-AXIS2-3826	ADB code generation fails when <element> is a reference to included schema
-AXIS2-3827	xmlSchema optional attributes are not handled properly
-AXIS2-3828	Included schema filenames impact wsdl2java with xmlbeans binding
-AXIS2-3829	Validation failure on using sun JDK in ParallelAsyncTests
-AXIS2-3830	java_first_jaxws sample does not run per README instructions
-AXIS2-3831	JAXWS Sample - Asynchronous Echo with Async Communication doesn't work
-AXIS2-3832	@WebMethod(exclude=true) is not being honored
-AXIS2-3833	New service deployment change has broken ?wsdl2
-AXIS2-3834	JAXWS: NLS Correction for 1.4 RC3
-AXIS2-3835	jaxws-calculator sample does not run per the README.txt
-AXIS2-3836	JAXWS Addressing Calculator does not work.
-AXIS2-3837	Running JAXWS proxy tests with WSDL fails
-AXIS2-3838	Problem building documentaiton Module v1.3 rc2
-AXIS2-3839	The generated WSDL2 (?wsdl2) does not have soap11, http bindings if the wsdl is included in service archive
-AXIS2-3840	multipart/form-data problem at the RESTFul Service
-AXIS2-3841	Encoded ampersands in REST URLs terminate parameters
-AXIS2-3842	JAXWS: Not correctly detecting version mismatch
-AXIS2-3843	maven java2wsdl and wsdl2code plugins do not work
-AXIS2-3844	JAXWS: The scenario where a single SWA attachment is sent and returned (no body elements) is not working
-AXIS2-3845	@WebService.name attribute parameter not being properly set
-AXIS2-3846	GenericProviderDispatcher in default war's axis2.xml
-AXIS2-3847	Unable to find handlerChain's configuration file from the classpath
-AXIS2-3848	Support for JAX-WS 2.1
-AXIS2-3849	Need a scrub for J2S doPriv
-AXIS2-3850	Axis2-1.4-RC1: Advanced-rmi sample client fails
-AXIS2-3851	JAX-WS 2.1: Support @RespectBinding and RespectBindingFeature
-AXIS2-3852	Worng Content-Type HTTP header when sending MTOM (incompatible with JBossWS)
-AXIS2-3853	.NET C# using WSE 3.0 does not interop with Axis2.0 Version 1.3
-AXIS2-3854	MTOM not enabled for dynamic ports
-AXIS2-3855	Support role/actor based mustUnderstand header processing
-AXIS2-3856	MTOM has problems when I create an attachtment from a byte array of zero elements
-AXIS2-3857	Attachment delete to use LifecycleManager functionality.
-AXIS2-3858	WSDLDefinitionWrapper is not being constructed with the proper Configuration information
-AXIS2-3859	NullPointerException during codegen when using JaxB RI databinding
-AXIS2-3860	memory leaks related to unmarshaller pooling
-AXIS2-3861	JAXBCustomBuilder should avoid encrypted data
-AXIS2-3862	Wrong SOAP MustUnderstand Handling when using JAX-WS Handler
-AXIS2-3863	RequestBlockingHandler.invoke uses equals to compare a String and a QName
-AXIS2-3864	ObjectInputStreamWithCL.resolver should not be static because it's updated by instance methods
-AXIS2-3865	Improvements in SafeObjectOutputStream
-AXIS2-3866	SessionContext does not initializes the transent maps into readExternal
-AXIS2-3867	[Break] MtomSampleTests - The org.apache.axis2.jaxws.sample.MtomSampleTests suite is failing
-AXIS2-3868	NPE in HttpCoreNIOSender
-AXIS2-3869	The MessageId generator creates duplicates
-AXIS2-3870	java.io.FileNotFoundException related to persising sessions in tomcat
-AXIS2-3871	Axis2 on Jetty & Tomcat bug: work dir is deleted on jetty shut down
-AXIS2-3872	NPE throws when invoking jax-ws calculator sample service
-AXIS2-3873	[Break] ParallelAsyncTests
-AXIS2-3874	When WSDL exists, set wsdl properties for provider
-AXIS2-3875	[Break] NonWrapTests break - dispatchable OperationDescription list is incorrect
-AXIS2-3876	Addressing setup in JAXWSDeployer fails
-AXIS2-3877	Example maven2 configuration is broken.
-AXIS2-3878	axis2.bat, axis2server.bat and wsdl2java.bat scripts do not work if axis2 directory path is too long
-AXIS2-3879	java.lang.NoClassDefFoundError while running java2wsdl or wsdl2java
-AXIS2-3880	ParameterIncludeImpl needs AccessControl check
-AXIS2-3881	java.lang.IllegalStateException on org.apache.axis2.transport.TransportUtils.deleteAttachments.
-AXIS2-3882	Upgrade simple http and nhttp transports to HttpComponents Core 4.0-beta1
-AXIS2-3883	[Break] SimpleTypeDateTimePopulateTest break - on JDK 1.4
-AXIS2-3884	Add support for @Action and @FaultAction
-AXIS2-3885	JAX-WS 2.1: Add support for AddressingFeature and SubmissionAddressingFeature
-AXIS2-3886	Enhance the JAXWSDeployer to configure the JAX-WS runtime to be able to create endpoint references.
-AXIS2-3887	problem in axis2 version service + internal server error prevents access to services/admin pages
-AXIS2-3888	Adding equals and hashCode to ServiceClient
-AXIS2-3889	SwaTest.wsdl not found when building binary from source distribution
-AXIS2-3890	Remove one of MEX maven module
-AXIS2-3891	New MustUnderstand code results in JAXWS Integration test failure
-AXIS2-3892	Error extracting fault from SOAP envelope when body is encrypted
-AXIS2-3893	Undeploy fails to persist sessions on Tomcat 5.5 and 6
-AXIS2-3894	Fix for the inner classes issue (attached)
-AXIS2-3895	StringListTests doesn't work
-AXIS2-3896	sources unavailable in the maven repository.
-AXIS2-3897	Axis2 online documentation references invalid services.xsd
-AXIS2-3898	MEX module does not contain implementation class files after build
-AXIS2-3899	Change scope of Maven dependencies in axis-spring to 'provided'
-AXIS2-3900	Axis doesn't use params from axis2.xml
-AXIS2-3901	Unable to engage addressing at client side, want to know the specific location of addressing.mar in the project
-AXIS2-3902	Endpoint Extension handling bug in WSDL20ToAxisServiceBuilder
-AXIS2-3903	Loader.java in util package of kernel can not find the class in extremely environment
-AXIS2-3904	Axis error when using the endpoint address with japanese characters
-AXIS2-3905	Can't avoid timeout
-AXIS2-3906	org.apache.axis2.description.AxisService#setLastupdate() is a typo.
-AXIS2-3907	Axis2 incomplete cached files should be deleted BUT they aren't; how can I delete them
-AXIS2-3908	NPE in LocalTransportReceiver.processMessage()
-AXIS2-3909	wsdl2java for JAXB binding generates uncompilable code
-AXIS2-3910	NullPointerException in org.apache.axiom.om.impl.util.OMSerializerUtil
-AXIS2-3911	support logging full stack traces in log
-AXIS2-3912	Deploy goal for Axis2 Web Admin Console for axis2-aar-maven-plugin
-AXIS2-3913	org.apache.axis2.client.Stub addHeader ignores custom header attributes
-AXIS2-3914	LocalTransportSender can be used on multithread.
-AXIS2-3915	Axis2 SAAJ implementation included in Geronimo 2.0.1 - class cast bug when unmarshalling
-AXIS2-3916	MTOM doesnt work over JMS
-AXIS2-3917	Axis2's build.xml file for Axis2.war excludes the axis2-codegen-1.3.jar file needed by Rampart 1.3
-AXIS2-3918	WebServiceContextAnnot should be deleted
-AXIS2-3919	AbstractMessageReceiver defines custom class loader without using doPrivileged
-AXIS2-3920	MailAddress defines equals() but not hashCode()
-AXIS2-3921	Bug 3230 Reopen. Axis2 deployment fails when deploying spring proxy-d classes as services
-AXIS2-3922	Handler is not being invoked
-AXIS2-3923	'org.apache.maven.plugins:maven-antrun-plugin' does not exist or no valid version could be found
-AXIS2-3924	JAX-WS dependence on ADB
-AXIS2-3925	Move JaxMe databinding code into separate module
-AXIS2-3926	Unnecessary warning when deploying a service with a custom message receiver
-AXIS2-3927	[7/12/07 9:09:32:923 CEST] 82d122f SRTServletRes W WARNING: Cannot set header. Response already committed. is logged when ever a Axis2 based webservice is called
-AXIS2-3928	WebService deployment failed due to config.getServletContext().getRealPath("") returns null in NES6.2
-AXIS2-3929	ServiceDescriptionImpl always creates URL for WSDL
-AXIS2-3930	NullPointerException in RPCMessageReceiver.invokeBusinessLogic(RPCMessageReceiver.java:158)
-AXIS2-3931	SecurityException thrown in util.LoggingControl, when run from an applet
-AXIS2-3932	Validate fails if nonProxyHosts contains wildcard
-AXIS2-3933	AxisClient creates large number of temporary files that never gets deleted in an appserver environment as long as the server is running
-AXIS2-3934	Axis client fails if http.nonProxyHosts contains * as wildcard
-AXIS2-3935	mvn package failes due to missing dependencies (fix included)
-AXIS2-3936	Non Blocking Dual Channel fails if MsgContext already had an replyTo Epr set to anonymous
-AXIS2-3937	Axis2 server responds with Http 200 instead of 202 for the request of a dual channel invocation
-AXIS2-3938	axis2-java2wsdl-maven-plugin axis2-java2wsdl-maven-plugin
-AXIS2-3939	Java2WSDL creates WSDLs that fail Eclipse validation
-AXIS2-3940	getSchematargetNamespace and setSchematargetNamespacePrefix are typos
-AXIS2-3941	Axis2Server.bat fails to start
-AXIS2-3942	There is no reason for HTTPSListener to be inner class
-AXIS2-3943	NullpointerException in AbstractHTTPHeader
-AXIS2-3944	Fix commented out tests
-AXIS2-3945	Codegeneration creates faulty Stub with JAXBRI when a SOAP Header is defined in the WSDL
-AXIS2-3946	Axis2 fails to parse "Multipart/Related"-Messages from SAAJ-Webservice
-AXIS2-3947	Fix JAXWS MTOMSample Test
-AXIS2-3948	WSDL2CODE maven plugin not generating ports
-AXIS2-3949	JAXWS classloading issues with annotated class with aar based deployment
-AXIS2-3950	version service not started and exception at console
-AXIS2-3951	incorrect definition of property maven.repo.local in modules/integration/pom.xml
-AXIS2-3952	java2wsdl maven 2 plugin user guide incorrect
-AXIS2-3953	Axis2 maven plugin does not allow to generate sources for remote WSDL file
-AXIS2-3954	Proper usage of binding hierarchy
-AXIS2-3955	getter for configuration on CodeGenerationEngine to access generated info
-AXIS2-3956	NullpointerException in org.apache.axis2.deployment.util.Utils.loadHandler method
-AXIS2-3957	Incorrect reference to start.bat in java2wsdl and wsdl2java scripts (bat/sh)
-AXIS2-3958	surefire is still run even if maven.test.skip is true
-AXIS2-3959	java.util.regex.PatternSyntaxException in org.apache.axis2.transport.http.ProxyConfiguration
-AXIS2-3960	Allow pluggable Exception handling in JAX-WS server flow
-AXIS2-3961	SOAPMonitorApplet/SOAPMonitorService broken
-AXIS2-3962	XMLDispatch.createMessageFromValue fails to copy mime headers
-AXIS2-3963	Intermittent failure in testEcho(org.apache.axis2.jaxws.sample.DocLitBareMinTests)
-AXIS2-3964	SoapMessageProviderTests.testProviderSourceXMLOnly broken
-AXIS2-3965	TransportUtils NullPointerException When Logger Category is DEBUG
-AXIS2-3966	Provide enabling support in JAXWS for SOAP/JMS
-AXIS2-3967	Provide visibility of dynamic ports only to client that created them
-AXIS2-3968	Need a JAXWS specific Deployer
-AXIS2-3969	Improve structure of JAXWS end-to-end tetss
-AXIS2-3970	Plug JAX-WS / MDQ deployment into Axis2 deployment model
-AXIS2-3971	Refactor the ThreadContextMigratorUtil class to use parameters instead of properties.
-AXIS2-3972	javax.xml.ws.handler.MessageContext.WSDL_DESCRIPTION not populated correctly
-AXIS2-3973	Ability to plugin a new Axiom LifecycleManager via axis2.xml
-AXIS2-3974	LogicalMessageContextTests.testGetPayloadAsJAXB fails
-AXIS2-3975	JAXB CustomBuilder support in JAXWS layer.
-AXIS2-3976	JAXWS Endpoint API does not work in 1.3 RC2
-AXIS2-3977	JAX-WS 2.1: Support @MTOM and MTOMFeature
-AXIS2-3978	A patch for the CORBA module to support types declared insides interfaces.
-AXIS2-3979	Common invocation using Axis2 client framework
-AXIS2-3980	Maven build fails due to woden dependency problem
-AXIS2-3981	InputStreamConfigurator
-AXIS2-3982	WSDL2Java tool does not handle 'key' and 'keyref' constraints(in included/imported schemas) properly
-AXIS2-3983	Please please please write javadoc!
-AXIS2-3984	We need an api way to set the axis2.repository.path and the axis2.xml.path
-AXIS2-3985	DispatchPhase does not consider MEPs defined in WSDL2Constants
-AXIS2-3986	Error in Validation page when HTTPS is enabled
-AXIS2-3987	WarBasedAxisConfigurator incorrect config file loading routine (patch included)
-AXIS2-3988	messageContext.setDoingMTOM doesn't work
-AXIS2-3989	FAQ descripton of 'frequently used maven commands' is out of date.
-AXIS2-3990	Codegen and runtime changes for supporting "full" WSDL 2.0 HTTP binding
-AXIS2-3991	MTOM should support xmlbeans
-AXIS2-3992	Dependency resolution mess with axis2-wsdl2code-maven-plugin
-AXIS2-3993	ServiceContext.activate() never executes a path because of null value
-AXIS2-3994	Redundant checks into WarBasedAxisConfigurator
-AXIS2-3995	Redundant check in XMPPSender
-AXIS2-3996	Potential NPE in XMPPPacketListener
-AXIS2-3997	Possible NPE in XMLUtils
-AXIS2-3998	ServiceContext.activate never executes the else block
-AXIS2-3999	Various bugs in deployment.Utils
-AXIS2-4000	EchoBlockingClient on axis 1.x to 2.x migration page is missing line to set options into client
-AXIS2-4001	Log errors returned to client as Error, not Debug messages
-AXIS2-4002	Misspelling of HTTP constant definition?
-AXIS2-4003	Exception message in ListenerManager.start() is empty
-AXIS2-4004	Typo in the default axis2.xml for commented out parameter "requestMaxThreadPoolSize"
-AXIS2-4005	misspelling of "javascript" in line 39 in adminheader.jsp
-AXIS2-4006	[JDK16] 2 tests fail in integration module
-AXIS2-4007	SAAJ build fails under JDK1.6
-AXIS2-4008	When deploying using JAXWSMessageReceiver, the dynamic wsdl (?wsdl) should reflect the annotations
-AXIS2-4009	Interop issue: Utf16 Mtom failure with MS WCF
-AXIS2-4010	NPE bug in ServerWorker.handlerException
-AXIS2-4011	ConcurrentModificationException when concurrent threads try to engage the Addressing module
-AXIS2-4012	org.apache.axis2.saaj.SOAPConnectionImpl(line # 181) Null checking is required
-AXIS2-4013	javax.xml.stream.XMLStreamException: problem accessing the parser. Parser already accessed! - Authenticated WS Client
-AXIS2-4014	Introduce support in JAX-WS for OASIS XML Catalogs.
-AXIS2-4015	NPE in AxisConfiguration
-AXIS2-4016	Unable to send a result message to a host different from the caller (it was possible)
-AXIS2-4017	custom handler is not executed
-AXIS2-4018	Expose isMakeConnectionAnonymous on EPR
-AXIS2-4019	Make the definition of custom "anonymous" URIs configurable
-AXIS2-4020	wsdl2java exception with xmlbeans bindings - Imported schema has a target namespace that does not match the specified
-AXIS2-4021	JAX-WS: @WebService name parameter should default to the name of the class
-AXIS2-4022	JAX-WS: Performance Improvement to JAXB Unmarshalling
-AXIS2-4023	pojo not working
-AXIS2-4024	Error in generated WSDL - Import missing
-AXIS2-4025	Premature Optimization of ReplyTo = Anon
-AXIS2-4026	Out-Of-Memory error on server side - Use of wsdl4j WSDLDefinition
-AXIS2-4027	axis2 deployment failure for web services proxied by Spring
-AXIS2-4028	AxisService name not unique enough
-AXIS2-4029	change JMS tests to not use port 61616 which is the default for Geronimo and ActiveMQ
-AXIS2-4030	Problem with ConverterUtil date conversion
-AXIS2-4031	specified MessageReceiver from services.xml is ignored
-AXIS2-4032	Nullpointer exception when BuilderUtils can not resolve a Builder
-AXIS2-4033	UnsupportedOperationException due to usage of Arrays.asList
-AXIS2-4034	CORBA module for Axis2
-AXIS2-4035	Improve Performance of RuntimeServiceDescription code
-AXIS2-4036	Codegen with unwrapping argument fails
-AXIS2-4037	December 20 nightly build -- jsp exception
-AXIS2-4038	Writing JAXWS Clients - How to specify the axis2.xml and repository
-AXIS2-4039	Provide new plugpoint in JAX-WS server-side code
-AXIS2-4040	Axis2 generates incorrect schema imports in WSDL returned via ?wsdl
-AXIS2-4041	Plugin in JAXWS RI's wsgen to generate the dynamic wsdl/xsd's
-AXIS2-4042	Performance: Swap lookup order in AxisService.getOperationsBySOAPAction
-AXIS2-4043	The ConfigurationContext in Axis2-Kernal causes ConcurrentModificationException in Session-Scope and thus is not multithreading-able
-AXIS2-4044	Clean build of java/Axis2 from head failed in SOAP Monitor step
-AXIS2-4045	Tolerate Java 6 JRE for JAX-WS applications
-AXIS2-4046	Make it easy to set HTTP proxy
-AXIS2-4047	Document JSR181 support
-AXIS2-4048	WSDL2C:
-AXIS2-4049	Incorrect Exception in WSDL11ToAxisServiceBuilder
-AXIS2-4050	java.lang.RuntimeException: Unexpected subelement value
-AXIS2-4051	Merge inbound WS-Addressing handlers into a single handler
-AXIS2-4052	No logging in POJODeployer at all
-AXIS2-4053	Response invalidly delivered even ReplyTo is absent in Header
-AXIS2-4054	Error in generated WSDL file - wsaw namespace
-AXIS2-4055	No access to the operationContextMap in the ConfigurationContext class
-AXIS2-4056	AbstractContext should lazily create the PropertyDifferences map
-AXIS2-4057	Support JAX-WS and Metadata client-side sparse composite to override certain annotation members
-AXIS2-4058	TransportUtils aggressively changing content type from text/xml to application/xml
-AXIS2-4059	JAXB Unmarshaller cannot find the MTOM DataHandler
-AXIS2-4060	NullPointerException in MetaData code
-AXIS2-4061	NullPointerException in the Namespace->Package code used by JAXWS
-AXIS2-4062	WS-Addressing EndpointReference elements not getting added in the outgoing soap message
-AXIS2-4063	setting handler resolver on dispatch client does not call expected handlers
-AXIS2-4064	Eliminate redundant lookup in MessageContext.getProperty(String)
-AXIS2-4065	Modify BlockImpl to avoid double unmarshalling
-AXIS2-4066	Incorrect check in org.apache.axis2.saaj.SOAPHeaderImpl#addHeaderElement
-AXIS2-4067	Nested swaRef attachments not sent in message
-AXIS2-4068	JAX-WS BasicAuth client config should allow no password
-AXIS2-4069	Performance: Improve the FactoryRegistry code
-AXIS2-4070	The modules/parent/pom.xml has an invalid dependency on org.apache.woden:woden-1.0.0M6.jar
-AXIS2-4071	'-or (overwrite) option of WSDL2Code doesn't work for services.xml
-AXIS2-4072	wrong codegen for anytype
-AXIS2-4073	OMException with the message "localname can not be null or empty"
-AXIS2-4074	Codegen bug with different namespaces (including proposed fix)
-AXIS2-4075	Cannot generate code giving a remote HTTP URI, when the client is behind an HTTP proxy server
-AXIS2-4076	choice of sequence of union causes infinite loop in generated ADB binding
-AXIS2-4077	Axis2-aar-Maven2 plugin SNAPSHOT does not work, while a locally build one works
-AXIS2-4078	Prefix error serializing ADB bean
-AXIS2-4079	minimize response from RPCMessageReceiver
-AXIS2-4080	Use wrapper types when elements are optional (i.e.: nillable="true" or minOccurs="0"/maxOccurs="1")
-AXIS2-4081	Code generation fails if a wsdl has schema imports and that wsdl is included in a service archive with useOriginalWsdl = true
-AXIS2-4082	XML dateTime strings are not converted correctly
-AXIS2-4083	Using minOccurs="0" on element within sequence does not accept if element is empty...
-AXIS2-4084	hot update - class not reloaded
-AXIS2-4085	JAX-WS: JAXB Processing Improvement
-AXIS2-4086	Invalid xs:date serialization (WSDL2Java generated code)
-AXIS2-4087	Hotupdate seems to be broken in the latest snapshots
-AXIS2-4088	XmlStreamParser in RMI module can encounter problems with nesting
-AXIS2-4089	Test case errors in integration module can cause failures when not using Sun JVM.
-AXIS2-4090	No readme for jaxws-calculator sample
-AXIS2-4091	WSDL2C 30-November Snapshot - non-blocking prototypes in headers do not match function implementations with adb option
-AXIS2-4092	When exception arises from createMessageFromValue, create Protocol specific exception instead of the generic WebserviceException
-AXIS2-4093	Axis2 webapp throws exception with missing class at startup
-AXIS2-4094	Make JAXWS POJODeployer behave the same as AAR files with respect to hot deploy and redeploy
-AXIS2-4095	JAX-WS: wsdl11 generation fails if @WebMethod annotation is specified with member values
-AXIS2-4096	When setting the operationName using JSR181 the service fails to show WSDL correctly
-AXIS2-4097	Generation of Client Stubs with WSDL having WSSecurity (Username token) created with Weblogic9.2
-AXIS2-4098	Deployment of embedded service causes IllegalArgumentException: Filename must not be null
-AXIS2-4099	Scrub jaxws module for NLS
-AXIS2-4100	Performance: JAX-WS MessageContext getProperty/setProperty improvement
-AXIS2-4101	Genarate RPC signature in WSDL2 when valid
-AXIS2-4102	Ability to have XML as documentation in the wsdl
-AXIS2-4103	NullPointerException in WSDL20ToAxisServiceBuilder
-AXIS2-4104	java.lang.StackOverflowError when trying to generate code for an Amazon service.
-AXIS2-4105	The generated services.xml file is not validate
-AXIS2-4106	WSDL2Java fails with "Can not find an attribute group for group reference" (Malformed UTF-8 Character Exception in WSDL2Java only in nightly build, not in 1.0 stable)
-AXIS2-4107	Code generated by wsdl2java doesnot compile
-AXIS2-4108	Problems with ADB Client and XMLBeans Service
-AXIS2-4109	Enhance adb binding union to default to type xs:any
-AXIS2-4110	Unresolved symbol when using attribute
-AXIS2-4111	Cannot throw same fault from multiple methods
-AXIS2-4112	Switch to XmlBeans 2.3.0. Adapt to xmlbeans dependency renaming.
-AXIS2-4113	Incorrect wsdl2java behaviour: target dir + reformatting
-AXIS2-4114	JAXWS: Add support for SOAPMessageContext.getHeaders(QName qname, JAXBContext jaxbcontext, boolean allRoles)
-AXIS2-4115	JAX-WS Dispatch(Source) returns a StAXSource if JDK 6.0. StAXSource is not acceptable in many scenarios.
-AXIS2-4116	Performance: Synchronization of AbstractContext.addPropertyDifference degrades performance
-AXIS2-4117	optional attributes are generated as required
-AXIS2-4118	Wrong code generation (syntax error: staticabstract)
-AXIS2-4119	ADB Boolean type mapping incorrect for '1' and '0'
-AXIS2-4120	SOAP header block attributes
-AXIS2-4121	Client sender connections not cleaned up when AxisFault received.
-AXIS2-4122	Incorrect configuration in maven-wsdl2code-plugin.html doc
-AXIS2-4123	fix documentation on the axis2 website
-AXIS2-4124	Maven2 WSDL2Code Plug-in Guide has incorrect and missing descriptions.
-AXIS2-4125	NullPointerException when web service request is missing Content-Type
-AXIS2-4126	Axis2.1.2 listService is not working
-AXIS2-4127	[PATCH] Upgrades 'Simple' HTTP and NIO HTTP transports to HttpCore 4.0-alpha6
-AXIS2-4128	Proposing "AXIS2 Powered" Logo
-AXIS2-4129	Throws NullPointerException in RPCMessageReceiver when handling Exception in catch block; real stack trace is lost
-AXIS2-4130	When I use SMTP as for the communication in the server side it never send the fault
-AXIS2-4131	Axis2 client stub fails randomly under load with a Parser error
-AXIS2-4132	Detail in Error message thrown from databinding types is not explanatory
-AXIS2-4133	java.lang.NoClassDefFoundError: javax/wsdl/WSDLException on axis2-wsdl2code-maven-plugin
-AXIS2-4134	When you add a namespaceUri packageName in axis2-wsdlcode-maven-plugin, it will complain that you don't have one.
-AXIS2-4135	Compile error in generated JUnit
-AXIS2-4136	Axis2 Client generation with wsdl2 java with -g option does not generate skema
-AXIS2-4137	Java2Security of getAnnotation calls
-AXIS2-4138	Scrub metadata module for NLS
-AXIS2-4139	Wrong java code generation with adb for data type boolean
-AXIS2-4140	Provide getter/setters on DescriptionBuilderComposite for InputStream to handler chain config file
-AXIS2-4141	Client stub generation fails for WSDL's with wsdl:import
-AXIS2-4142	An xsd-file specifies both elements and attributes as parts of a SOAP block header. WSDL2Java generates all neccessary code for both elements and attributes but only the elements are included in the actual SOAP request when it arrives to the server
-AXIS2-4143	maven2 wsdl2code plugin does not work
-AXIS2-4144	Invalid content-type on http header. missed "<" and ">"
-AXIS2-4145	NPE when demarshalling a fault response
-AXIS2-4146	JAXWS: Performance: Remove Synchronization in JAXBUtils
-AXIS2-4147	jaxen-LICENCE.txt should have jaxen licence text rather than Apache v2.0
-AXIS2-4148	Corrections to the JAX-WS Async Endpoint thread switching code.
-AXIS2-4149	Date gets changed for xs:date types
-AXIS2-4150	ADB still not clever enough wrt Elements and ComplexTypes with the same name.
-AXIS2-4151	wsdl2java modifies foreign java sources that it did not create on its own before.
-AXIS2-4152	ConverterUtil.convertToArray fails for boolean.class
-AXIS2-4153	The WSDL2Java ADB binding doesn't take namespace into account
-AXIS2-4154	Getting error while deploying web service made using Axis2.1.3
-AXIS2-4155	IntelliJ Service Archiver class file browser not working
-AXIS2-4156	add an option not to generate xmlbeans classes and instead get them from classpath
-AXIS2-4157	Using attributeFormDefault="qualified" in a schema causes null attribute values in Java objects
-AXIS2-4158	There is a bug in generated stub, it can not get AxisFault detail or reason when server side respond with an envelope that has fault string and fault detail
-AXIS2-4159	change in WSDLWriter11 forbids wsdl:import of xsd files
-AXIS2-4160	Multiple XSD's in codegen
-AXIS2-4161	WSDL2Java.sh never end and consume all the CPU
-AXIS2-4162	Local types in schemes not supported
-AXIS2-4163	Creation of web service client from wsdl fails with xmlbeans binding where scomp suceeds for the same wsdl
-AXIS2-4164	wsdl2java ADB client creates 'staticabstract' instead of 'static abstract'
-AXIS2-4165	Generating adb client or service binding has a problem with patterns
-AXIS2-4166	ADB Binding doesn't generate default value for the element
-AXIS2-4167	Make SOAP 1.2 bindings optional, as they break older Axis 1 clients
-AXIS2-4168	Support custom annotations in the MDQ layer
-AXIS2-4169	Provide ServiceInstanceFactory mechanism in JAX-WS layer
-AXIS2-4170	Allow for custom classloader use in JAXBUtils
-AXIS2-4171	Allow file based override for MetadataFactoryRegistry
-AXIS2-4172	JavaProvider is not reestablishing its EndpointDesc object
-AXIS2-4173	Add fully qualified field class name as property on FieldDescriptionComposite in the metadata module.
-AXIS2-4174	Add log statements to jaxws msg util classes
-AXIS2-4175	Extend Spring support to accept proxies
-AXIS2-4176	Add Spring Support
-AXIS2-4177	Disabling REST should should make the http binding generation in WSDL stop too..
-AXIS2-4178	Stubs generated for all the ports in wsdl2 code generation
-AXIS2-4179	POJO service with NULL array causes NPE
-AXIS2-4180	AxisConfiguration.isEngaged(QName) needs to remain as deprecated for legacy apps
-AXIS2-4181	There are numerous public methods on ConfigurationContext which do not have comments.
-AXIS2-4182	AnnotationServiceImplDescriptionTests broken
-AXIS2-4183	Java 2 Security
-AXIS2-4184	Asynchronous web service invocation does not return XML response on a SOAP fault
-AXIS2-4185	Internal server error when modifying axis2.xml in axis2 1.3 war distribution
-AXIS2-4186	JiBX databinding doesn't work with eclipse code generator plugin
-AXIS2-4187	Generating Java 1.5 Code when using XMLBeans
-AXIS2-4188	JAX-WS: Performance Changes related to property migration code
-AXIS2-4189	ServiceDescription caching leads to memory leak
-AXIS2-4190	Add validation checks for SOAPBinding annotations
-AXIS2-4191	MessageContext Persistence Performance Improvement
-AXIS2-4192	Connections are not properly released causing them to stick in the "CLOSE_WAIT" state and cause "Too many files open"
-AXIS2-4193	wsdl2java creates invalid proxy
-AXIS2-4194	Accessing to unexistant get() method from MessageReceiver when using xmlbeans databinding
-AXIS2-4195	Axis 1.3 exception class doesn't inherit from java.lang.exception ( broken)
-AXIS2-4196	Incorrectly generated stub functions
-AXIS2-4197	Getting errors when sending attachement using MTOM.
-AXIS2-4198	Axis2 installationguide doc AXIS2_HOME error
-AXIS2-4199	Server sends close connection causes client to halt
-AXIS2-4200	AxisServlet closes OutputStream too early in some instances
-AXIS2-4201	Change RequestResponseTransport to support acknowledgements
-AXIS2-4202	Support for multiple Services specified in WSDL
-AXIS2-4203	Generated ADBBean: Issue with getPullParser() method for optional attributes
-AXIS2-4204	Externalization: Activation problem with OperationContext leads to out of memory condition
-AXIS2-4205	Wrong prefix used (resulting in a duplicate but conflicting declaration) when sending fault message.
-AXIS2-4206	NPE when JAX-WS service receives empty soap body
-AXIS2-4207	JAXWS: Concurrent Modification in Property Migrator
-AXIS2-4208	Ensure content-type does not have a trailing ':'
-AXIS2-4209	JAX-WS: Fix to AsyncResponse to ensure that the returned object is unmarshalled before reporting it as available
-AXIS2-4210	JAX-WS: A small performance improvement and some cleanup
-AXIS2-4211	javax.xml.stream.XMLStreamException: problem accessing the parser when using NTLM and stubs generated by xmlbeans
-AXIS2-4212	attribute not supported by Axis2.0 in the .xsd file
-AXIS2-4213	IllegalArgumentException: Null InputStream is not a valid argument when loading axis client from URLClassLoader
-AXIS2-4214	ProviderDispatcher in JAX-WS does not allow for non-parameterized interfaces on provider implementation
-AXIS2-4215	During InvocationResponse.ABORT processing, remove the incoming MessageContext
-AXIS2-4216	XMLUtils can cause an unclosed XMLStreamReader
-AXIS2-4217	Wrapper style mapping of Java method parameter - Jaxws 2.0 support for WSDL2Java
-AXIS2-4218	Policies that are attached using services.xml should appear in description hierarchy instead of binding hierarcy
-AXIS2-4219	Additional JAXWS Annotation Checking
-AXIS2-4220	MessageContext Persistance is causing inlined attachments + Performance concerns
-AXIS2-4221	Null pointer exception in Axis2
-AXIS2-4222	NPE when parsing Async resonse in jaxws client side
-AXIS2-4223	duplicate xmlns="" attribute in client response
-AXIS2-4224	JAXWS JAXB Marshalling code is missing a doPriv
-AXIS2-4225	JAXBAttachmentUnmarshaller Attachment Content ID Resolution Improvement
-AXIS2-4226	JAX-WS 2.0 support for Apache Axis2 WSDL2Java Code Generator
-AXIS2-4227	Some improvements to JAX-WS 2.0 support for WSDL2Java
-
-    </pre>
-</body>
-</html>
diff --git a/src/main/assembly/dists.xml b/src/main/assembly/dists.xml
deleted file mode 100644
index 6769395..0000000
--- a/src/main/assembly/dists.xml
+++ /dev/null
@@ -1,113 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  ~ Licensed to the Apache Software Foundation (ASF) under one
-  ~ or more contributor license agreements. See the NOTICE file
-  ~ distributed with this work for additional information
-  ~ regarding copyright ownership. The ASF licenses this file
-  ~ to you under the Apache License, Version 2.0 (the
-  ~ "License"); you may not use this file except in compliance
-  ~ with the License. You may obtain a copy of the License at
-  ~
-  ~ http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing,
-  ~ software distributed under the License is distributed on an
-  ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  ~ KIND, either express or implied. See the License for the
-  ~ specific language governing permissions and limitations
-  ~ under the License.
-  -->
-<assembly>
-    <id>dists</id>
-    <formats>
-        <format>dir</format>
-    </formats>
-    <baseDirectory>${project.version}</baseDirectory>
-    <files>
-        <!-- Standard binary distribution -->
-        <file>
-            <source>${settings.localRepository}/org/apache/axis2/distribution/${project.version}/distribution-${project.version}-bin.zip</source>
-            <destName>axis2-${project.version}-bin.zip</destName>
-        </file>
-        <file>
-            <source>${settings.localRepository}/org/apache/axis2/distribution/${project.version}/distribution-${project.version}-bin.zip.md5</source>
-            <destName>axis2-${project.version}-bin.zip.md5</destName>
-        </file>
-        <file>
-            <source>${settings.localRepository}/org/apache/axis2/distribution/${project.version}/distribution-${project.version}-bin.zip.asc</source>
-            <destName>axis2-${project.version}-bin.zip.asc</destName>
-        </file>
-        <!-- Source distribution -->
-        <file>
-            <source>${settings.localRepository}/org/apache/axis2/distribution/${project.version}/distribution-${project.version}-src.zip</source>
-            <destName>axis2-${project.version}-src.zip</destName>
-        </file>
-        <file>
-            <source>${settings.localRepository}/org/apache/axis2/distribution/${project.version}/distribution-${project.version}-src.zip.md5</source>
-            <destName>axis2-${project.version}-src.zip.md5</destName>
-        </file>
-        <file>
-            <source>${settings.localRepository}/org/apache/axis2/distribution/${project.version}/distribution-${project.version}-src.zip.asc</source>
-            <destName>axis2-${project.version}-src.zip.asc</destName>
-        </file>
-        <!-- WAR distribution -->
-        <file>
-            <source>${settings.localRepository}/org/apache/axis2/distribution/${project.version}/distribution-${project.version}-war.zip</source>
-            <destName>axis2-${project.version}-war.zip</destName>
-        </file>
-        <file>
-            <source>${settings.localRepository}/org/apache/axis2/distribution/${project.version}/distribution-${project.version}-war.zip.md5</source>
-            <destName>axis2-${project.version}-war.zip.md5</destName>
-        </file>
-        <file>
-            <source>${settings.localRepository}/org/apache/axis2/distribution/${project.version}/distribution-${project.version}-war.zip.asc</source>
-            <destName>axis2-${project.version}-war.zip.asc</destName>
-        </file>
-        <!-- Documents distribution -->
-        <file>
-            <source>${settings.localRepository}/org/apache/axis2/axis2/${project.version}/axis2-${project.version}-docs.zip</source>
-        </file>
-        <file>
-            <source>${settings.localRepository}/org/apache/axis2/axis2/${project.version}/axis2-${project.version}-docs.zip.md5</source>
-        </file>
-        <file>
-            <source>${settings.localRepository}/org/apache/axis2/axis2/${project.version}/axis2-${project.version}-docs.zip.asc</source>
-        </file>
-        <!-- Eclipse codegen plugin -->
-        <file>
-            <source>${settings.localRepository}/org/apache/axis2/axis2.eclipse.codegen.plugin/${project.version}/axis2.eclipse.codegen.plugin-${project.version}-dist.zip</source>
-            <destName>axis2-eclipse-codegen-plugin-${project.version}.zip</destName>
-        </file>
-        <file>
-            <source>${settings.localRepository}/org/apache/axis2/axis2.eclipse.codegen.plugin/${project.version}/axis2.eclipse.codegen.plugin-${project.version}-dist.zip.md5</source>
-            <destName>axis2-eclipse-codegen-plugin-${project.version}.zip.md5</destName>
-        </file>
-        <file>
-            <source>${settings.localRepository}/org/apache/axis2/axis2.eclipse.codegen.plugin/${project.version}/axis2.eclipse.codegen.plugin-${project.version}-dist.zip.asc</source>
-            <destName>axis2-eclipse-codegen-plugin-${project.version}.zip.asc</destName>
-        </file>
-        <!-- Eclipse service archiver plugin -->
-        <file>
-            <source>${settings.localRepository}/org/apache/axis2/axis2.eclipse.service.plugin/${project.version}/axis2.eclipse.service.plugin-${project.version}-dist.zip</source>
-            <destName>axis2-eclipse-service-plugin-${project.version}.zip</destName>
-        </file>
-        <file>
-            <source>${settings.localRepository}/org/apache/axis2/axis2.eclipse.service.plugin/${project.version}/axis2.eclipse.service.plugin-${project.version}-dist.zip.md5</source>
-            <destName>axis2-eclipse-service-plugin-${project.version}.zip.md5</destName>
-        </file>
-        <file>
-            <source>${settings.localRepository}/org/apache/axis2/axis2.eclipse.service.plugin/${project.version}/axis2.eclipse.service.plugin-${project.version}-dist.zip.asc</source>
-            <destName>axis2-eclipse-service-plugin-${project.version}.zip.asc</destName>
-        </file>
-        <!-- IDEA plugin -->
-        <file>
-            <source>${settings.localRepository}/org/apache/axis2/axis2-idea-plugin/${project.version}/axis2-idea-plugin-${project.version}.zip</source>
-        </file>
-        <file>
-            <source>${settings.localRepository}/org/apache/axis2/axis2-idea-plugin/${project.version}/axis2-idea-plugin-${project.version}.zip.md5</source>
-        </file>
-        <file>
-            <source>${settings.localRepository}/org/apache/axis2/axis2-idea-plugin/${project.version}/axis2-idea-plugin-${project.version}.zip.asc</source>
-        </file>
-    </files>
-</assembly>
\ No newline at end of file
diff --git a/src/main/assembly/doc.xml b/src/main/assembly/doc.xml
deleted file mode 100644
index 33451e4..0000000
--- a/src/main/assembly/doc.xml
+++ /dev/null
@@ -1,53 +0,0 @@
-<!--
-  ~ Licensed to the Apache Software Foundation (ASF) under one
-  ~ or more contributor license agreements. See the NOTICE file
-  ~ distributed with this work for additional information
-  ~ regarding copyright ownership. The ASF licenses this file
-  ~ to you under the Apache License, Version 2.0 (the
-  ~ "License"); you may not use this file except in compliance
-  ~ with the License. You may obtain a copy of the License at
-  ~
-  ~ http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing,
-  ~ software distributed under the License is distributed on an
-  ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  ~ KIND, either express or implied. See the License for the
-  ~ specific language governing permissions and limitations
-  ~ under the License.
-  -->
-
-<assembly>
-    <id>docs</id>
-    <includeBaseDirectory>true</includeBaseDirectory> 
-    <baseDirectory>axis2-${version}</baseDirectory>
-    <formats>
-        <!--<format>tar.gz</format>  //uncomment,if tar.gz archive needed-->
-        <format>zip</format>
-    </formats>
-
-    <fileSets>
-        <fileSet>
-            <directory>${project.reporting.outputDirectory}</directory>
-            <outputDirectory>site</outputDirectory>
-        </fileSet>
-        <fileSet>
-            <directory>.</directory>
-            <outputDirectory>/</outputDirectory>
-            <includes>
-                <include>LICENSE.txt</include>
-                <include>README.txt</include>
-                <include>release-notes.html</include>
-            </includes>
-            <filtered>true</filtered>
-        </fileSet>
-        <fileSet>
-            <directory>release-docs/readme-files</directory>
-            <outputDirectory></outputDirectory>
-            <includes>
-               <include>README-docs.txt</include>
-            </includes>
-            <filtered>true</filtered>
-        </fileSet>
-    </fileSets>
-</assembly>
diff --git a/src/main/assembly/jar.xml b/src/main/assembly/jar.xml
deleted file mode 100644
index c806d0a..0000000
--- a/src/main/assembly/jar.xml
+++ /dev/null
@@ -1,76 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  ~ Licensed to the Apache Software Foundation (ASF) under one
-  ~ or more contributor license agreements. See the NOTICE file
-  ~ distributed with this work for additional information
-  ~ regarding copyright ownership. The ASF licenses this file
-  ~ to you under the Apache License, Version 2.0 (the
-  ~ "License"); you may not use this file except in compliance
-  ~ with the License. You may obtain a copy of the License at
-  ~
-  ~ http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing,
-  ~ software distributed under the License is distributed on an
-  ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  ~ KIND, either express or implied. See the License for the
-  ~ specific language governing permissions and limitations
-  ~ under the License.
-  -->
-<assembly>
-    <id>jar</id>
-    <includeBaseDirectory>false</includeBaseDirectory>
-    <formats>
-        <format>jar</format>
-    </formats>
-    <fileSets>
-        <fileSet>
-            <directory>${project.build.directory}/maven-shared-archive-resources</directory>
-            <outputDirectory>/</outputDirectory>
-        </fileSet>
-    </fileSets>
-    <moduleSets>
-        <moduleSet>
-            <includes>
-                <include>org.apache.axis2:axis2-java2wsdl</include>
-                <include>org.apache.axis2:axis2-kernel</include>
-                <include>org.apache.axis2:axis2-codegen</include>
-                <include>org.apache.axis2:axis2-adb</include>
-                <include>org.apache.axis2:axis2-adb-codegen</include>
-                <include>org.apache.axis2:axis2-xmlbeans</include>
-                <include>org.apache.axis2:axis2-clustering</include>
-            </includes>
-            <binaries>
-                <includeDependencies>false</includeDependencies>
-                <unpack>true</unpack>
-                <unpackOptions>
-                    <excludes>
-                        <exclude>OSGI-INF/**</exclude>
-                        <exclude>META-INF/**</exclude>
-                    </excludes>
-                </unpackOptions>
-            </binaries>
-        </moduleSet>
-        <moduleSet>
-            <includes>
-                <!-- Note that we can at most include a single module here (because
-                     of the module.xml file)! -->
-                <include>org.apache.axis2:addressing</include>
-            </includes>
-            <binaries>
-                <includeDependencies>false</includeDependencies>
-                <attachmentClassifier>classpath-module</attachmentClassifier>
-                <unpack>true</unpack>
-                <unpackOptions>
-                    <excludes>
-                        <!-- We must pay attention not to exclude module.xml here! -->
-                        <exclude>META-INF/MANIFEST.MF</exclude>
-                        <exclude>META-INF/LICENSE</exclude>
-                        <exclude>META-INF/NOTICE</exclude>
-                        <exclude>META-INF/maven/**</exclude>
-                    </excludes>
-                </unpackOptions>
-            </binaries>
-        </moduleSet>
-    </moduleSets>    
-</assembly>
\ No newline at end of file
diff --git a/src/site/markdown/docs/reference.md b/src/site/markdown/docs/reference.md
new file mode 100644
index 0000000..7fbe7f3
--- /dev/null
+++ b/src/site/markdown/docs/reference.md
@@ -0,0 +1,129 @@
+<!--
+  ~ Licensed to the Apache Software Foundation (ASF) under one
+  ~ or more contributor license agreements. See the NOTICE file
+  ~ distributed with this work for additional information
+  ~ regarding copyright ownership. The ASF licenses this file
+  ~ to you under the Apache License, Version 2.0 (the
+  ~ "License"); you may not use this file except in compliance
+  ~ with the License. You may obtain a copy of the License at
+  ~
+  ~ http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing,
+  ~ software distributed under the License is distributed on an
+  ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  ~ KIND, either express or implied. See the License for the
+  ~ specific language governing permissions and limitations
+  ~ under the License.
+  -->
+
+Axis2 Reference Guide
+=====================
+
+WSDL2Java Reference
+-------------------
+
+    NAME
+           wsdl2java.sh or wsdl2java.bat - Generates java code according to a given WSDL file to handle Web service invocation.
+           These scripts can be found under the bin directory of the Axis2 distribution.
+    
+    SYNOPSIS
+           wsdl2java.sh [OPTION]... -uri <Location of WSDL>
+    
+    DESCRIPTION
+           Given a WSDL file, this generates java code to handle Web service invocations.
+    
+          -o <path>                Specify a directory path for the generated code.
+          -a                       Generate async style code only (Default: off).
+          -s                       Generate sync style code only (Default: off). Takes precedence over -a.
+          -p <pkg1>                Specify a custom package name for the generated code.
+          -l <language>            Valid languages are java and c (Default: java).
+          -t                       Generate a test case for the generated code.
+          -ss                      Generate server side code (i.e. skeletons) (Default: off).
+          -sd                      Generate service descriptor (i.e. services.xml). (Default: off). Valid with -ss.
+          -d <databinding>         Valid databinding(s) are adb, xmlbeans, jibx and jaxbri (Default: adb).
+          -g                       Generates all the classes. Valid only with -ss.
+          -pn <port_name>          Choose a specific port when there are multiple ports in the wsdl.
+          -sn <service_name>       Choose a specific service when there are multiple services in the wsdl.
+          -u                       Unpacks the databinding classes
+          -r <path>                Specify a repository against which code is generated.
+          -ns2p ns1=pkg1,ns2=pkg2  Specify a custom package name for each namespace specified in the wsdls schema.
+          -ssi                     Generate an interface for the service implementation (Default: off).
+          -wv <version>            WSDL Version. Valid Options : 2, 2.0, 1.1
+          -S                       Specify a directory path for generated source
+          -R                       Specify a directory path for generated resources
+          -em                      Specify an external mapping file
+          -f                       Flattens the generated files
+          -uw                      Switch on un-wrapping.
+          -xsdconfig <file path>   Use XMLBeans .xsdconfig file. Valid only with -d xmlbeans.
+          -ap                      Generate code for all ports
+          -or                      Overwrite the existing classes
+          -b                       Generate Axis 1.x backword compatible code.
+          -sp                      Suppress namespace prefixes (Optimzation that reduces size of soap request/response)
+          -E<key> <value>          Extra configuration options specific to certain databindings. Examples:
+                                   -Ebindingfile <path>                   (for jibx) - specify the file path for the binding file
+                                   -Etypesystemname <my_type_system_name> (for xmlbeans) - override the randomly generated type system name
+                                   -Ejavaversion 1.5                      (for xmlbeans) - generates Java 1.5 code (typed lists instead of arrays)
+                                   -Emp <package name> (for ADB) - extension mapper package name
+                                   -Eosv (for ADB) - turn off strict validation.
+                                   -Eiu (for ADB) - Ignore Unexpected elements instead of throwing ADBException
+                                   -Ewdc (for xmlbeans) - Generate code with a dummy schema. if someone use this option
+                                      they have to generate the xmlbeans code seperately with the scomp command comes with the
+                                      xmlbeans distribution and replace the Axis2 generated classes with correct classes
+          --noBuildXML             Dont generate the build.xml in the output directory
+          --noWSDL                 Dont generate WSDLs in the resources directory
+          --noMessageReceiver      Dont generate a MessageReceiver in the generated sources
+          --http-proxy-host        Proxy host address if you are behind a firewall
+          --http-proxy-port        Proxy prot address if you are behind a firewall
+          -ep                      Exclude packages - these packages are deleted after codegeneration
+        
+    EXAMPLES
+           wsdl2java.sh -uri ../samples/wsdl/Axis2SampleDocLit.wsdl
+           wsdl2java.sh -uri ../samples/wsdl/Axis2SampleDocLit.wsdl -ss -sd 
+           wsdl2java.sh -uri ../samples/wsdl/Axis2SampleDocLit.wsdl -ss -sd -d xmlbeans -o ../samples -p org.apache.axis2.userguide
+
+Java2WSDL Reference
+-------------------
+
+    NAME
+           Java2WSDL.sh or Java2WSDL.bat - Generates the appropriate WSDL file for a given java class.
+           These scripts can be found under the bin directory of the Axis2 distribution.
+    
+    SYNOPSIS
+           Java2WSDL.sh [OPTION]... -cn <fully qualified class name>
+    
+    DESCRIPTION
+           Given a java class generates a WSDL file for the given java class. 
+    
+          -o <output location>                    output directory
+          -of <output file name>                  output file name for the WSDL
+          -sn <service name>                      service name
+          -l <one or more soap addresses>         location URIs, comma-delimited
+          -cp <class path uri>                    list of classpath entries - (urls)
+          -tn <target namespace>                  target namespace for service
+          -tp <target namespace prefix>           target namespace prefix for service
+          -stn <schema target namespace>          target namespace for schema
+          -stp <schema target namespace prefix>   target namespace prefix for schema
+          -st <binding style>                     style for the WSDL
+          -u <binding use>                        use for the WSDL
+          -nsg <class name>                       fully qualified name of a class that implements NamespaceGenerator
+          -sg <class name>                        fully qualified name of a class that implements SchemaGenerator
+          -p2n [<java package>,<namespace>] [<java package>,<namespace>]
+                                                  java package to namespace mapping for argument and return types
+          -p2n [all, <namespace>]                 to assign all types to a single namespace
+          -efd <qualified/unqualified>            setting for elementFormDefault (defaults to qualified)
+          -afd <qualified/unqualified>            setting for attributeFormDefault (defaults to qualified)
+          -xc class1 -xc class2...                extra class(es) for which schematype must be generated.
+          -wv <1.1/2.0>                           wsdl version - defaults to 1.1 if not specified
+          -dlb                                    generate schemas conforming to doc/lit/bare style
+          -dne                                    disallow nillable elements in the generated schema
+          -doe                                    disallow optional elements in the generated schema
+          -disableSOAP11                          disable binding generation for SOAP 1.1
+          -disableSOAP12                          disable binding generation for SOAP 1.2
+          -disableREST                            disable binding generation for REST
+        
+    EXAMPLES
+           Java2WSDL.sh -cn ../samples/test/searchTool.Search
+           Java2WSDL.sh -cn ../samples/test/searchTool.Search -sn search
+           Java2WSDL.sh -cn ../samples/test/searchTool.Search -u -sn search
+           Java2WSDL.sh -cn ../samples/test/searchTool.Search -sn search -o ../samples/test/wsdl  
diff --git a/src/site/markdown/download.md.vm b/src/site/markdown/download.md.vm
new file mode 100644
index 0000000..2124601
--- /dev/null
+++ b/src/site/markdown/download.md.vm
@@ -0,0 +1,78 @@
+##
+## Licensed to the Apache Software Foundation (ASF) under one
+## or more contributor license agreements. See the NOTICE file
+## distributed with this work for additional information
+## regarding copyright ownership. The ASF licenses this file
+## to you under the Apache License, Version 2.0 (the
+## "License"); you may not use this file except in compliance
+## with the License. You may obtain a copy of the License at
+##
+## http://www.apache.org/licenses/LICENSE-2.0
+##
+## Unless required by applicable law or agreed to in writing,
+## software distributed under the License is distributed on an
+## "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+## KIND, either express or implied. See the License for the
+## specific language governing permissions and limitations
+## under the License.
+##
+
+Releases
+--------
+
+The current release is ${release_version} and was published on ${release_date}. The release note for this
+release can be found [here](release-notes/${release_version}.html).
+
+The following distributions are available for download:
+
+&nbsp;                             | Link                                                      | Checksums and signatures
+-----------------------------------|-----------------------------------------------------------|-------------------------------
+Binary distribution                | [axis2-${release_version}-bin.zip][1]                     | [MD5][2] [SHA1][3] [PGP][4]
+Source distribution                | [axis2-${release_version}-src.zip][5]                     | [MD5][6] [SHA1][7] [PGP][8]
+WAR distribution                   | [axis2-${release_version}-war.zip][9]                     | [MD5][10] [SHA1][11] [PGP][12]
+Service Archive plugin for Eclipse | [axis2-eclipse-service-plugin-${release_version}.zip][13] | [MD5][14] [SHA1][15] [PGP][16]
+Code Generator plugin for Eclipse  | [axis2-eclipse-codegen-plugin-${release_version}.zip][17] | [MD5][18] [SHA1][19] [PGP][20]
+Axis2 plugin for IntelliJ IDEA     | [axis2-idea-plugin-${release_version}.zip][21]            | [MD5][22] [SHA1][23] [PGP][24]
+
+The binary distribution contains all the Axis2 libraries and modules, except for [Apache Rampart](../rampart/)
+(WS-Security implementation) which must be downloaded separately. It also contains command line tools,
+samples and scripts to start a standalone Axis2 server.
+
+The WAR (Web Archive) distribution is designed for deployment on a servlet container.
+
+The signatures of the distributions can be [verified][25] against the public keys in the [KEYS][26] file.
+
+Maintenance releases from branches other than the main branch can be found [here][27].
+Distributions for older releases can be found in the [archive][28].
+
+All releases are also available as Maven artifacts in the [central repository][29].
+
+[1]: http://www.apache.org/dyn/closer.lua/axis/axis2/java/core/${release_version}/axis2-${release_version}-bin.zip
+[2]: https://www.apache.org/dist/axis/axis2/java/core/${release_version}/axis2-${release_version}-bin.zip.md5
+[3]: https://www.apache.org/dist/axis/axis2/java/core/${release_version}/axis2-${release_version}-bin.zip.sha1
+[4]: https://www.apache.org/dist/axis/axis2/java/core/${release_version}/axis2-${release_version}-bin.zip.asc
+[5]: http://www.apache.org/dyn/closer.lua/axis/axis2/java/core/${release_version}/axis2-${release_version}-src.zip
+[6]: https://www.apache.org/dist/axis/axis2/java/core/${release_version}/axis2-${release_version}-src.zip.md5
+[7]: https://www.apache.org/dist/axis/axis2/java/core/${release_version}/axis2-${release_version}-src.zip.sha1
+[8]: https://www.apache.org/dist/axis/axis2/java/core/${release_version}/axis2-${release_version}-src.zip.asc
+[9]: http://www.apache.org/dyn/closer.lua/axis/axis2/java/core/${release_version}/axis2-${release_version}-war.zip
+[10]: https://www.apache.org/dist/axis/axis2/java/core/${release_version}/axis2-${release_version}-war.zip.md5
+[11]: https://www.apache.org/dist/axis/axis2/java/core/${release_version}/axis2-${release_version}-war.zip.sha1
+[12]: https://www.apache.org/dist/axis/axis2/java/core/${release_version}/axis2-${release_version}-war.zip.asc
+[13]: http://www.apache.org/dyn/closer.lua/axis/axis2/java/core/${release_version}/axis2-eclipse-service-plugin-${release_version}.zip
+[14]: https://www.apache.org/dist/axis/axis2/java/core/${release_version}/axis2-eclipse-service-plugin-${release_version}.zip.md5
+[15]: https://www.apache.org/dist/axis/axis2/java/core/${release_version}/axis2-eclipse-service-plugin-${release_version}.zip.sha1
+[16]: https://www.apache.org/dist/axis/axis2/java/core/${release_version}/axis2-eclipse-service-plugin-${release_version}.zip.asc
+[17]: http://www.apache.org/dyn/closer.lua/axis/axis2/java/core/${release_version}/axis2-eclipse-codegen-plugin-${release_version}.zip
+[18]: https://www.apache.org/dist/axis/axis2/java/core/${release_version}/axis2-eclipse-codegen-plugin-${release_version}.zip.md5
+[19]: https://www.apache.org/dist/axis/axis2/java/core/${release_version}/axis2-eclipse-codegen-plugin-${release_version}.zip.sha1
+[20]: https://www.apache.org/dist/axis/axis2/java/core/${release_version}/axis2-eclipse-codegen-plugin-${release_version}.zip.asc
+[21]: http://www.apache.org/dyn/closer.lua/axis/axis2/java/core/${release_version}/axis2-idea-plugin-${release_version}.zip
+[22]: https://www.apache.org/dist/axis/axis2/java/core/${release_version}/axis2-idea-plugin-${release_version}.zip.md5
+[23]: https://www.apache.org/dist/axis/axis2/java/core/${release_version}/axis2-idea-plugin-${release_version}.zip.sha1
+[24]: https://www.apache.org/dist/axis/axis2/java/core/${release_version}/axis2-idea-plugin-${release_version}.zip.asc
+[25]: http://www.apache.org/dev/release-signing#verifying-signature
+[26]: https://www.apache.org/dist/axis/axis2/java/core/KEYS
+[27]: http://www.apache.org/dyn/closer.lua/axis/axis2/java/core/
+[28]: http://archive.apache.org/dist/axis/axis2/java/core/
+[29]: http://search.maven.org/#search%7Cga%7C1%7Cg%3A%22org.apache.axis2%22
diff --git a/src/site/markdown/maven-help.md.vm b/src/site/markdown/maven-help.md.vm
new file mode 100644
index 0000000..a1e7e56
--- /dev/null
+++ b/src/site/markdown/maven-help.md.vm
@@ -0,0 +1,47 @@
+##
+## Licensed to the Apache Software Foundation (ASF) under one
+## or more contributor license agreements. See the NOTICE file
+## distributed with this work for additional information
+## regarding copyright ownership. The ASF licenses this file
+## to you under the Apache License, Version 2.0 (the
+## "License"); you may not use this file except in compliance
+## with the License. You may obtain a copy of the License at
+##
+## http://www.apache.org/licenses/LICENSE-2.0
+##
+## Unless required by applicable law or agreed to in writing,
+## software distributed under the License is distributed on an
+## "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+## KIND, either express or implied. See the License for the
+## specific language governing permissions and limitations
+## under the License.
+##
+
+Quick Guide to Maven for Axis2
+==============================
+
+The Axis2 build uses [Maven 3](https://maven.apache.org/). To build the source code, use the
+following command:
+
+    mvn clean install
+
+The build may fail because Maven runs out of memory. To avoid this, increase the heap
+size (and PermGen size, unless you are using Java 8 or above) using the `MAVEN_OPTS`
+environment variable, as shown in the following example:
+
+    MAVEN_OPTS="-Xmx512m -XX:MaxPermSize=256m"
+
+Note that depending on your platform and Java version, you may need to adjust these
+values further.
+
+Other useful build commands:
+
+*   Skip test execution: `mvn clean install -DskipTests=true`
+
+*   Simulate a release build: `mvn clean install -Papache-release -Dgpg.skip=true`
+
+*   Build the site: `mvn site` (in the root directory of the source tree)
+
+*   Quick build of the site without Javadocs: `mvn site -N`
+
+For more information, consult the Maven documentation.
diff --git a/src/site/markdown/release-notes/1.6.1.md b/src/site/markdown/release-notes/1.6.1.md
new file mode 100644
index 0000000..435781a
--- /dev/null
+++ b/src/site/markdown/release-notes/1.6.1.md
@@ -0,0 +1,9 @@
+Apache Axis2 1.6.1 Release Note
+-------------------------------
+
+Axis2 1.6.1 is a maintenance release containing fixes for several issues
+discovered over the last months. This release upgrades Axiom to version 1.2.12,
+Neethi to version 3.0.1 and contains changes required for Geronimo 3.0. The
+complete list of fixes can be found [here][1].
+
+[1]: http://s.apache.org/axis2-1.6.1
diff --git a/src/site/markdown/release-notes/1.6.2.md b/src/site/markdown/release-notes/1.6.2.md
new file mode 100644
index 0000000..2149e58
--- /dev/null
+++ b/src/site/markdown/release-notes/1.6.2.md
@@ -0,0 +1,8 @@
+Apache Axis2 1.6.2 Release Note
+-------------------------------
+
+Apache Axis2/Java 1.6.2 is a maintenance release containing fixes for several
+issues discovered over the past six months. This version upgrade Axiom to 1.2.13
+and Neethi to version 3.0.2. The complete list of fixes can be found [here][1].
+
+[1]: http://s.apache.org/7lT
diff --git a/src/site/markdown/release-notes/1.6.3.md b/src/site/markdown/release-notes/1.6.3.md
new file mode 100644
index 0000000..d821ab6
--- /dev/null
+++ b/src/site/markdown/release-notes/1.6.3.md
@@ -0,0 +1,9 @@
+Apache Axis2 1.6.3 Release Note
+-------------------------------
+
+Apache Axis2/Java 1.6.3 is a maintenance release that fixes over [50 issues][1].
+It is also the first release to package all the transport implementations from
+the formerly separate Axis2 Transports project. This release upgrades Axiom to
+version 1.2.14.
+
+[1]: https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=10611&amp;version=12320771
diff --git a/src/site/markdown/release-notes/1.6.4.md b/src/site/markdown/release-notes/1.6.4.md
new file mode 100644
index 0000000..6cfb102
--- /dev/null
+++ b/src/site/markdown/release-notes/1.6.4.md
@@ -0,0 +1,10 @@
+Apache Axis2 1.6.4 Release Note
+-------------------------------
+
+Apache Axis2 1.6.4 is a maintenance release that fixes several [issues][1] and
+upgrades Axiom to version [1.2.15][2]. Please note that in order to simplify the
+build and release process, the document distribution and all-in-one JARs have
+been removed in this release.
+
+[1]: https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=10611&amp;version=12332971
+[2]: http://ws.apache.org/axiom/release-notes/1.2.15.html
diff --git a/src/site/markdown/release-notes/1.7.0.md b/src/site/markdown/release-notes/1.7.0.md
new file mode 100644
index 0000000..ed2d4c7
--- /dev/null
+++ b/src/site/markdown/release-notes/1.7.0.md
@@ -0,0 +1,54 @@
+Apache Axis2 1.7.0 Release Note
+-------------------------------
+
+Apache Axis2 1.7.0 is a major release that contains lots of bug fixes and
+improvements, some of which introduce backward incompatible changes with respect
+to Axis2 1.6.x (as described below). A complete list of JIRA issues fixed in
+this release can be found [here][1]. Note that some of these fixes have also
+been backported into Axis2 1.6.x maintenance releases; for more information,
+check the "Fix Version/s" field of the relevant JIRA issues.
+
+Please note that generated code such as client stubs is generally not compatible
+across different major Axis2 releases. Therefore all such code needs to be
+regenerated when upgrading to Axis2 1.7.0. This applies in particular to code
+generated using the JAXBRI databinding which has been significantly improved.
+
+[1]: https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=10611&amp;version=12316136
+
+### Changes in this release
+
+*   XmlSchema has been upgraded from 1.4.x to 2.2.x and Woden from 1.0M9 to
+    1.0M10. This is a backwards incompatible change with respect to Axis2 1.6.x;
+    application code that interacts with XmlSchema or Woden needs to be updated
+    to support the new versions.
+
+*   Axis2 1.7.0 supports Apache HttpClient 4.x in addition to the no longer
+    maintained Commons HttpClient 3.x. To enable the support for HttpClient 4.x, use
+    `org.apache.axis2.transport.http.impl.httpclient4.HTTPClient4TransportSender`
+    instead of `org.apache.axis2.transport.http.CommonsHTTPTransportSender` in
+    `axis2.xml`. Please note that the code was written for HttpClient 4.2.x and
+    should work with 4.3.x and 4.4.x, but is incompatible with 4.5.x.
+
+*   Several classes, methods and constants deprecated in Axis2 1.3 and 1.4 have
+    been removed. See [AXIS2-5315][] for more details.
+
+    As a consequence, MEP URIs in the form `http://www.w3.org/2004/08/wsdl/XXX`
+    and `http://www.w3.org/2006/01/wsdl/XXX` are no longer supported.
+    Instead use `http://www.w3.org/ns/wsdl/XXX`.
+
+[AXIS2-5315]: https://issues.apache.org/jira/browse/AXIS2-5315
+
+*   The semantics of the `getAttachmentMap()` method in `MessageContext` has
+    changed for incoming messages so that they match those for outgoing
+    messages (For more details and context, see [AXIS2-5308][]):
+
+    *   For SwA messages, the `Attachments` object on the message context no
+        longer contains the root part (as in Axis2 1.6.x), but only attachment
+        parts.
+    *   For MTOM messages, application code should no longer assume that the
+        `Attachments` object is set on the message context and contains all MIME
+        parts of the message. Note that as of Axis2 1.7.0, this assumption is
+        still true (because the JAX-WS implementation internally relies on this),
+        but this will change in a subsequent release.
+
+[AXIS2-5308]: https://issues.apache.org/jira/browse/AXIS2-5308
diff --git a/src/site/markdown/release-notes/1.8.0.md b/src/site/markdown/release-notes/1.8.0.md
new file mode 100644
index 0000000..ed83642
--- /dev/null
+++ b/src/site/markdown/release-notes/1.8.0.md
@@ -0,0 +1,11 @@
+Apache Axis2 1.8.0 Release Note
+-------------------------------
+
+*   The minimum required Java version for Axis2 has been changed to Java 7.
+
+*   The Apache Commons HttpClient 3.x based HTTP transport has been deprecated.
+    If you wish to continue using this transport, add `axis2-transport-http-hc3`
+    to your project.
+
+*   The HTTPClient 4.x based transport has been upgraded to use the APIs supported
+    by the latest HTTPClient version.
diff --git a/src/site/markdown/release-process.md b/src/site/markdown/release-process.md
new file mode 100644
index 0000000..770c716
--- /dev/null
+++ b/src/site/markdown/release-process.md
@@ -0,0 +1,244 @@
+<!--
+  ~ Licensed to the Apache Software Foundation (ASF) under one
+  ~ or more contributor license agreements. See the NOTICE file
+  ~ distributed with this work for additional information
+  ~ regarding copyright ownership. The ASF licenses this file
+  ~ to you under the Apache License, Version 2.0 (the
+  ~ "License"); you may not use this file except in compliance
+  ~ with the License. You may obtain a copy of the License at
+  ~
+  ~ http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing,
+  ~ software distributed under the License is distributed on an
+  ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  ~ KIND, either express or implied. See the License for the
+  ~ specific language governing permissions and limitations
+  ~ under the License.
+  -->
+
+Release Process
+===============
+
+Release process overview
+------------------------
+
+### Cutting a branch
+
+*   When a release is ready to go, release manager (RM) puts
+    forward a release plan as per standard Apache process, including
+    dates. This gets VOTEd on by the committers. During this period the
+    trunk is still the only relevant source base.
+
+*   As soon as a release is approved (or even before), RM should
+    add the new version into JIRA as a target.
+
+*   At the point where we would normally do the "code freeze" for a
+    release, the RM cuts a branch named for the release. This branch is
+    where the release candidates and releases will happen.
+
+*   Ideally a release branch is only around for a week or maybe two
+    before the release happens.
+
+*   The only things that should EVER get checked into the release
+    branch are - 1) bug fixes targeted at the release, 2)
+    release-specific updates (documentation, SNAPSHOT removal, etc). In
+    particular new functionality does not go here unless it is a
+    solution to a JIRA report targeted at the release.
+
+*   Normal development continues on the trunk.
+
+### Dependencies and branches
+
+*   The trunk should always be "cutting edge" and as such should
+    usually be pointing at SNAPSHOT versions of all dependencies. This
+    allows for continuous integration with our partner projects.
+
+*   Soon after a release branch is cut, the RM is responsible for
+    removing ALL dependencies on SNAPSHOT versions and replacing them
+    with officially released versions. This change happens only on the
+    release branch.
+
+### Managing change and issue resolution with a release branch
+
+*   The RM goes through JIRA issues and sets "fix for" to point to
+    both "NIGHTLY" and the new branched release number for the fixes
+    that are targeted for the release after the branch is cut.
+
+*   In general, the assignee/coder fixes JIRA issues or makes other
+    changes *on the trunk*. If the JIRA issue is targeted at the
+    release, or upon coder's discretion, they then merge the fix over
+    to the release branch.
+
+*   This way the trunk is ALWAYS up-to-date, and we don't have to
+    worry about losing fixes that have only been made on the release
+    branch.
+
+*   When the assignee resolves an issue, they confirm it's been
+    fixed in both branches, if appropriate.
+
+### Checking changes into the branch
+
+*   If bug fixes are needed later for a release which has long
+    since happened (to fix user issues, etc), those fixes generally
+    should also happen on the trunk first assuming the problem still
+    exists on the trunk.
+
+*   There are only two cases where we would ever check anything
+    into the branch without first checking it into the trunk. 1)
+    Release specific items (release number references, release notes,
+    removal of SNAPSHOTs), and 2) if the trunk has moved on in some
+    incompatible way.
+
+Performing a release
+--------------------
+
+### Preparation
+
+Verify that the code meets the basic requirements for being releasable:
+
+1.  Check that the set of legal (`legal/*.LICENSE`) files corresponds to the set of third party
+    JARs included in the binary distribution.
+
+2.  Check that the `apache-release` profile works correctly and produces the required distributions.
+    The profile can be executed as follows:
+    
+        mvn clean install -Papache-release
+
+3.  Check that the source distribution is buildable.
+
+4.  Check that the source tree is buildable with an empty local Maven repository.
+
+If any problems are detected, they should be fixed on the trunk (except for issues specific to the
+release branch) and then merged to the release branch.
+
+Next update the release note found under `src/site/markdown/release-notes`. To avoid extra work for
+the RM doing the next major release, these changes should be done on the trunk first and then merged
+to the release branch.
+
+### Pre-requisites
+
+The following things are required to perform the actual release:
+
+*   A PGP key that conforms to the [requirements for Apache release signing](http://www.apache.org/dev/release-signing.html).
+    To make the release process easier, the passphrase for the code signing key should
+    be configured in `${user.home}/.m2/settings.xml`:
+
+        <settings>
+          ...
+          <profiles>
+            <profile>
+              <id>apache-release</id>
+              <properties>
+                <gpg.passphrase><!-- key passphrase --></gpg.passphrase>
+              </properties>
+            </profile>
+          </profiles>
+          ...
+        </settings>
+
+*   The release process uses a Nexus staging repository. Every committer should have access to the corresponding
+    staging profile in Nexus. To validate this, login to [repository.apache.org](https://repository.apache.org)
+    and check that you can see the `org.apache.axis2` staging profile. The credentials used to deploy to Nexus
+    should be added to `settings.xml`:
+
+        <servers>
+          ...
+          <server>
+            <id>apache.releases.https</id>
+            <username><!-- ASF username --></username>
+            <password><!-- ASF LDAP password --></password>
+          </server>
+          ...
+        </servers>
+
+### Release
+
+In order to prepare the release artifacts for vote, execute the following steps:
+
+1.  Start the release process using the following command:
+
+        mvn release:prepare
+
+    When asked for a tag name, accept the default value (in the following format: `vX.Y.Z`).
+    The execution of the `release:prepare` goal may occasionally fail because `svn.apache.org`
+    resolves to one of the geolocated SVN mirrors and there is a propagation delay between
+    the master and these mirrors. If this happens,
+    wait for a minute (so that the mirrors can catch up with the master) and simply rerun the command.
+    It will continue where the error occurred.
+
+2.  Perform the release using the following command:
+
+        mvn release:perform
+
+3.  Login to Nexus and close the staging repository. For more details about this step, see
+    [here](https://docs.sonatype.org/display/Repository/Closing+a+Staging+Repository).
+
+4.  Execute the `target/checkout/etc/dist.py` script to upload the distributions.
+
+5.  Create a staging area for the Maven site:
+
+        svn cp https://svn.apache.org/repos/asf/axis/site/axis2/java/core \
+               https://svn.apache.org/repos/asf/axis/site/axis2/java/core-staging
+
+6.  Change to the `target/checkout` directory and prepare the site using the following commands:
+
+        mvn site-deploy
+        mvn scm-publish:publish-scm -Dscmpublish.skipCheckin=true
+
+    Now go to the `target/scmpublish-checkout` directory (relative to `target/checkout`) and check that there
+    are no unexpected changes to the site. Then commit the changes.
+    Note that this may fail because of [INFRA-11007](https://issues.apache.org/jira/browse/INFRA-11007).
+    In this case, switch to the Subversion master using the following command before trying to commit again:
+
+        svn switch --relocate https://svn.apache.org/ https://svn-master.apache.org/
+
+7.  Start the release vote by sending a mail to `java-dev@axis.apache.org`.
+    The mail should mention the following things:
+
+    *   A link to the Nexus staging repository.
+    *   A link to the directory containing the distributions
+        (<https://dist.apache.org/repos/dist/dev/axis/axis2/java/core/x.y.x/>).
+    *   A link to the preview of the Maven site (<http://axis.apache.org/axis2/java/core-staging/>).
+
+If the vote passes, execute the following steps:
+
+1.  Promote the artifacts in the staging repository. See
+    [here](https://docs.sonatype.org/display/Repository/Releasing+a+Staging+Repository)
+    for detailed instructions for this step.
+
+2.  Publish the distributions:
+
+        svn mv https://dist.apache.org/repos/dist/dev/axis/axis2/java/core/x.y.z \
+               https://dist.apache.org/repos/dist/release/axis/axis2/java/core/
+
+3.  Publish the site:
+
+        svn co --depth=immediates https://svn.apache.org/repos/asf/axis/site/axis2/java/ axis2-site
+        cd axis2-site
+        svn rm core
+        svn mv core-staging core
+        svn commit
+
+It may take several hours before everything has been synchronized. Before proceeding, check that
+
+*   the Maven artifacts for the release are available from the Maven central repository;
+*   the Maven site has been synchronized;
+*   the distributions can be downloaded from the mirror sites.
+
+Once everything is in place, send announcements to `java-user@axis.apache.org` (with copy to
+`java-dev@axis.apache.org`) and `announce@apache.org`. Since the two lists have different conventions,
+audiences and moderation policies, it is recommended to send the announcement separately to the two lists.
+Note that mail to `announce@apache.org` must be sent from an `apache.org` address and will
+always be moderated. The announcement sent to `announce@apache.org` also should include a general description
+of Axis2, because not everybody subscribed to that list knows about the project.
+
+### Post-release actions
+
+1.  Update the DOAP file (`etc/doap_Axis2.rdf`) and add a new entry for the release.
+
+2.  Update the status of the release version in JIRA.
+
+3.  Remove old (archived) releases from <https://dist.apache.org/repos/dist/release/axis/axis2/java/core/>.
+
+4.  Create an empty release note for the next release under `src/site/markdown/release-notes`.
diff --git a/src/site/markdown/tools/eclipse/plugin-installation.md b/src/site/markdown/tools/eclipse/plugin-installation.md
new file mode 100644
index 0000000..e9112aa
--- /dev/null
+++ b/src/site/markdown/tools/eclipse/plugin-installation.md
@@ -0,0 +1,81 @@
+<!--
+  ~ Licensed to the Apache Software Foundation (ASF) under one
+  ~ or more contributor license agreements. See the NOTICE file
+  ~ distributed with this work for additional information
+  ~ regarding copyright ownership. The ASF licenses this file
+  ~ to you under the Apache License, Version 2.0 (the
+  ~ "License"); you may not use this file except in compliance
+  ~ with the License. You may obtain a copy of the License at
+  ~
+  ~ http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing,
+  ~ software distributed under the License is distributed on an
+  ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  ~ KIND, either express or implied. See the License for the
+  ~ specific language governing permissions and limitations
+  ~ under the License.
+  -->
+
+Eclipse plugin installation
+===========================
+
+Introduction
+------------
+
+This document provides instructions for installating of the two Eclipse plugins provided by Axis2
+([Service Archive Generator](servicearchiver-plugin.html) and [Code Generator Wizard](wsdl2java-plugin.html)).
+The two plugins should work on Eclipse version 3.1 and upwards, and require at least Java 1.5.
+The plugins have dependencies on bundles that are installed by default in the Eclipse IDE for Java EE Developers
+edition, but not in the Eclipse IDE for Java Developers edition. It is therefore recommended
+to use the EE edition.
+The installation procedure is the same for both plugins, but depends on the Eclipse
+version being used. To determine which procedure to use, check if there is a
+`dropins` folder in the Eclipse installation directory. This folder is used
+by the p2 provisioning system introduced in recent Eclipse version. It should be
+present starting with Eclipse version 3.4.
+
+Installation using the dropins directory
+----------------------------------------
+
+If your Eclipse version uses p2, use the following procedure to install the
+Axis2 plugins:
+
+1.  [Download](../../download.html) the ZIP file for the plugin you want to install.
+
+2.  Extract the content of the `plugins` folder in the ZIP archive into the
+    `dropins` folder (i.e. do **not** create a `plugins` folder under `dropins`).
+
+As explained [here](http://wiki.eclipse.org/Equinox_p2_Getting_Started#Dropins),
+it is possible to use other directory layouts in the `dropins` folder.
+
+Installation on older Eclipse versions
+--------------------------------------
+
+If you have an older Eclipse version that doesn't support p2 yet, use the following
+procedure to install the Axis2 plugins:
+
+1.  [Download](../../download.html) the ZIP file for the plugin you want to install.
+
+2.  Extract the content of the ZIP archive into the Eclipse installation directory.
+    This should add one or more JAR files and/or directories to the existing `plugins`
+    folder.
+
+Debugging
+---------
+
+If a plugin doesn't show up in the Eclipse UI, use the following debugging procedure:
+
+1.  Start Eclipse with the `-console` option.
+
+2.  In the console, use `ss axis2` to check if the plugin has been installed and to
+    identify its bundle ID.
+
+3.  If the plugin has not been installed, use the `install` command (with a `file:` URL
+    pointing to the plugin) to force its installation.
+
+4.  Use the `start` command (with the bundle ID as argument) to attempt to start the
+    bundle. If the plugin doesn't show up in the UI, then this command will typically
+    fail with an error message explaining the reason.
+
+Please use this procedure before opening a bug report.
diff --git a/src/site/resources/css/site.css b/src/site/resources/css/site.css
deleted file mode 100644
index 81f1f52..0000000
--- a/src/site/resources/css/site.css
+++ /dev/null
@@ -1,288 +0,0 @@
-/*

- * Licensed to the Apache Software Foundation (ASF) under one

- * or more contributor license agreements. See the NOTICE file

- * distributed with this work for additional information

- * regarding copyright ownership. The ASF licenses this file

- * to you under the Apache License, Version 2.0 (the

- * "License"); you may not use this file except in compliance

- * with the License. You may obtain a copy of the License at

- *

- * http://www.apache.org/licenses/LICENSE-2.0

- *

- * Unless required by applicable law or agreed to in writing,

- * software distributed under the License is distributed on an

- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

- * KIND, either express or implied. See the License for the

- * specific language governing permissions and limitations

- * under the License.

- */

-.img-title {

-    text-align: center

-}

-

-.img {

-    text-align: center

-}

-

-.special-td {

-    font-family: Arial;

-    font-size: 10pt;

-    font-weight: bold

-}

-

-.special {

-    font-family: Arial;

-    font-weight: bold;

-    border-style: solid;

-    border-width: 1;

-    padding-left: 4;

-    padding-right: 4;

-    padding-top: 1;

-    padding-bottom: 1;

-    background-color: #C0C0C0;

-    font-size: 10pt

-}

-

-.xml {

-    font-family: Arial;

-    font-size: 10pt;

-    color: #0000FF;

-    font-style: italic

-}

-

-/*

-.code {

-    font-family: Courier New;

-    font-size: 10pt;

-    color: #800000

-}

-*/

-

-/*

------------------------------------------------------------------------

-Generic element styles

------------------------------------------------------------------------ */

-body {

-    color: #111;

-    font-family: "Trebuchet MS", Verdana, sans-serif;

-    font-size: 1em;

-    padding: 5;

-    border-width: 0;

-    outline-width: 0;

-    list-style-position: outside;

-    display: block;

-

-    margin: 0 auto; /* center, not in IE5 */

-    height: auto !important; /* real browsers */

-    height: 100%; /* IE6: treaded as min-height*/

-

-    min-height: 100%; /* real browsers */

-    width: 980px;

-    background-image: url(../images/home-top.gif);

-    background-position: left top;

-    background-repeat: repeat-x;

-}

-

-#breadcrumbs {

-    background-image: url(../images/menu-back.gif);

-    background-position: left top;

-    background-repeat: repeat-x;

-    border-bottom: solid 1px #d4d4d4;

-    font-size: 0.8em;

-    background-color: transparent;

-    border: 1px solid #6895c2;

-}

-

-#banner{

-    margin-top:10px;

-}

-

-#bannerLeft img {

-    margin-top: 10px;

-}

-

-.xleft {

-    text-shadow: none;

-    margin: 0.4em;

-}

-

-.xright {

-    text-shadow: none;

-    margin: 0.4em;

-}

-

-#leftColumn {

-    border: none;

-    background-color: transparent;

-    margin: 1em 0 0 0;

-}

-

-#navcolumn {

-    padding: 0;

-}

-

-#navcolumn h5 {

-    background-color: #e8f4ff;

-    border-left: solid 1px #ff2700;

-    border-bottom: none;

-    font-size: 0.9em;

-    padding: 5px;

-    color: #333333;

-    font-weight: normal;

-}

-

-#navcolumn li {

-    font-size: 0.9em;

-    margin-top: 0.5em;

-    margin-bottom: 0.5em;

-}

-

-#bodyColumn {

-    margin-left: 190px;

-    margin-right: 0;

-}

-

-#contentBox {

-    color: #333333;

-}

-

-#contentBox p, #contentBox td, #contentBox li {

-    font-family: "Trebuchet MS", Verdana, sans-serif;

-	line-height: 1.5em;

-    font-size: 0.94em;

-}

-

-#contentBox p, #contentBox li {

-    text-align: justify;

-}

-

-a:link {

-    color: #039;

-}

-

-a:hover {

-    color: #03c;

-    text-decoration: none;

-}

-

-a.externalLink, a.externalLink:link, a.externalLink:visited, a.externalLink:active, a.externalLink:hover {

-    background: none;

-    padding: 0;

-}

-

-table.bodyTable th {

-    background-color: #6f8aa5;

-}

-

-table.bodyTable tr.a {

-    background-color: #d1dce7;

-}

-

-table.bodyTable tr.b {

-    background-color: #eceef1;

-}

-

-h1 {

-    color: #4f4f4f;

-    font-size: 2.5em;

-    font-weight: normal;

-}

-

-h2 {

-    color: #646b71;

-    font-size: 1.7em;

-    background-color: transparent;

-    border: none;

-    padding: 0;

-    font-weight: normal;

-}

-

-h3 {

-    color: #7d858d;

-	font-weight: bold;

-    font-size: 1.2em;

-    background-color: transparent;

-    border: none;

-    padding: 0;

-}

-

-h4 {

-    color: #333333;

-    font-size: 1em;

-    font-weight: bold;

-    background-color: transparent;

-    border: none;

-    padding: 0;

-}

-

-th {

-    background-color: #f5f5f5;

-    height: 20;

-    paddong: 0px;

-    spacing: 0px;

-}

-

-table {

-    margin: 0;

-    padding: 0;

-    border: solid 0 #dcdcdc;

-}

-

-.header {

-    height: 80px;

-    background-image: url( ../images/doc_header.jpg );

-    background-repeat: no-repeat;

-    background-attachment: scroll;

-    background-position: left top;

-}

-

-dl {

-    background-color: transparent;

-    border: none;

-    padding: 0;

-}

-

-dt {

-    color: #333333;

-    font-weight: bolder;

-    margin-top: 1.5em;

-    margin-bottom: 1em;

-}

-

-dd {

-    border-left: 1px dotted black;

-    margin-left: 1em;

-    padding-left: 1em;

-}

-

-hr {

-    border: none;

-    height: 1px;

-    background-color: black;

-}

-

-pre, div.source {

-    border: 1px dotted;

-    background-color: #e2ecf6;

-    padding: 0.8em;

-    margin: 0;

-    overflow: auto;

-    font-size: 0.9em;

-}

-

-/* Xdoc generates <div class="source"><pre>...</pre></div> for <source> elements.

-   Because we already apply styles to every <pre>, we need to suppress styles here. */

-div.source pre {

-    border: none;

-    background-color: transparent;

-    padding: none;

-}

-#footer{

-    background-color:#E9E9E9;

-    color:#828282;

-    left:0;

-    padding-top:10px;

-    text-indent:10px;

-    width:100%;

-    height:100px;

-}

diff --git a/src/site/resources/download.cgi b/src/site/resources/download.cgi
deleted file mode 100644
index ba9f8d3..0000000
--- a/src/site/resources/download.cgi
+++ /dev/null
@@ -1,24 +0,0 @@
-#!/bin/sh
-
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements. See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership. The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License. You may obtain a copy of the License at
-# 
-# http://www.apache.org/licenses/LICENSE-2.0
-# 
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied. See the License for the
-# specific language governing permissions and limitations
-# under the License.
-
-# Wrapper script around mirrors.cgi script
-# (we must change to that directory in order for python to pick up the
-#  python includes correctly)
-cd /www/www.apache.org/dyn/mirrors
-/www/www.apache.org/dyn/mirrors/mirrors.cgi $*
\ No newline at end of file
diff --git a/src/site/resources/images/breadcrumbs-bg.gif b/src/site/resources/images/breadcrumbs-bg.gif
deleted file mode 100644
index 2d10304..0000000
--- a/src/site/resources/images/breadcrumbs-bg.gif
+++ /dev/null
Binary files differ
diff --git a/src/site/resources/images/h2-bg.gif b/src/site/resources/images/h2-bg.gif
deleted file mode 100644
index 0ddb32e..0000000
--- a/src/site/resources/images/h2-bg.gif
+++ /dev/null
Binary files differ
diff --git a/src/site/resources/images/home-top.gif b/src/site/resources/images/home-top.gif
deleted file mode 100644
index 4103c66..0000000
--- a/src/site/resources/images/home-top.gif
+++ /dev/null
Binary files differ
diff --git a/src/site/resources/images/leftcolumn-bg.gif b/src/site/resources/images/leftcolumn-bg.gif
deleted file mode 100644
index a2faa21..0000000
--- a/src/site/resources/images/leftcolumn-bg.gif
+++ /dev/null
Binary files differ
diff --git a/src/site/resources/images/menu-back.gif b/src/site/resources/images/menu-back.gif
deleted file mode 100644
index 0bcccda..0000000
--- a/src/site/resources/images/menu-back.gif
+++ /dev/null
Binary files differ
diff --git a/src/site/site.xml b/src/site/site.xml
index 85e6b6d..0a78968 100644
--- a/src/site/site.xml
+++ b/src/site/site.xml
@@ -19,12 +19,10 @@
   -->
 
 <project name="Apache Axis2">
-    <!-- Explicitly set the skin to avoid the issue described in MNG-3139,
-         which may occur sporadically -->
     <skin>
         <groupId>org.apache.maven.skins</groupId>
-        <artifactId>maven-default-skin</artifactId>
-        <version>1.0</version>
+        <artifactId>maven-fluido-skin</artifactId>
+        <version>1.6</version>
     </skin>
     <bannerLeft>
         <name>Apache Axis2</name>
@@ -36,16 +34,21 @@
         <href>http://axis.apache.org/axis2/java/core/</href>
     </bannerRight>
     <body>
-        <links>
+        <breadcrumbs>
+            <item name="Apache" href="http://www.apache.org" />
             <item name="Axis2/Java" href="index.html" />
-            <item name="Apache    " href="http://www.apache.org" />
-        </links>
+        </breadcrumbs>
 
         <menu name="Axis2/Java">
             <item name="Home" href="index.html" />
-        </menu>
-        <menu name="Downloads">
-            <item name="Releases" href="download.cgi" />
+            <item name="Downloads" href="download.html" />
+            <item name="Release Notes" href="javascript:void(0)">
+                <item name="1.6.1" href="release-notes/1.6.1.html"/>
+                <item name="1.6.2" href="release-notes/1.6.2.html"/>
+                <item name="1.6.3" href="release-notes/1.6.3.html"/>
+                <item name="1.6.4" href="release-notes/1.6.4.html"/>
+                <item name="1.7.0" href="release-notes/1.7.0.html"/>
+            </item>
             <item name="Modules" href="modules/index.html" />
             <item name="Tools" href="tools/index.html" />
         </menu>
@@ -65,7 +68,7 @@
             <item name="Articles" href="articles.html" />
             <item name="Wiki" href="http://wiki.apache.org/ws/FrontPage/Axis2/" />
             <item name="Reference Library" href="refLib.html" />
-            <item name="Online Java Docs" href="api/index.html" />
+            <item name="Online Java Docs" href="apidocs/index.html" />
         </menu>
         <menu name="Get Involved">
             <item name="Overview" href="overview.html" />
@@ -81,6 +84,8 @@
             <item name="Source Code"
                   href="http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/" />
             <item name="Acknowledgements" href="thanks.html" />
+        </menu>
+        <menu name="Apache" inherit="bottom">
             <item name="License"
                   href="http://www.apache.org/licenses/LICENSE-2.0.html" />
             <item name="Sponsorship" href="http://www.apache.org/foundation/sponsorship.html"/>
diff --git a/src/site/xdoc/archived_news.xml b/src/site/xdoc/archived_news.xml
deleted file mode 100644
index 0b6da53..0000000
--- a/src/site/xdoc/archived_news.xml
+++ /dev/null
@@ -1,869 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>

-

-<!--

-  ~ Licensed to the Apache Software Foundation (ASF) under one

-  ~ or more contributor license agreements. See the NOTICE file

-  ~ distributed with this work for additional information

-  ~ regarding copyright ownership. The ASF licenses this file

-  ~ to you under the Apache License, Version 2.0 (the

-  ~ "License"); you may not use this file except in compliance

-  ~ with the License. You may obtain a copy of the License at

-  ~

-  ~ http://www.apache.org/licenses/LICENSE-2.0

-  ~

-  ~ Unless required by applicable law or agreed to in writing,

-  ~ software distributed under the License is distributed on an

-  ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

-  ~ KIND, either express or implied. See the License for the

-  ~ specific language governing permissions and limitations

-  ~ under the License.

-  -->

-

-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"

-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

-<html xmlns="http://www.w3.org/1999/xhtml">

-<head>

-<meta name="generator" content=

-"HTML Tidy for Windows (vers 14 June 2007), see www.w3.org" />

-<meta http-equiv="content-type" content=

-"text/html; charset=us-ascii" />

-<title>Apache Axis2 Archived News</title>

-<meta name="generator" content=

-"amaya 9.2.1, see http://www.w3.org/Amaya/" />

-</head>

-<body xml:lang="en" lang="en">

-<h1>Apache Axis2 Archived News</h1>

-<p>This document contains details of each Axis2 version that was

-released, up to the current version.</p>

-<h2>Content</h2>

-<h3>Apache Axis2 Releases:</h3>

-<ul>

-<li><a href="#1.3">13rd August 2007  - Version 1.3</a></li>

-<li><a href="#1.2">27th April 2007 - Version 1.2</a></li>

-<li><a href="#1_1_1">09th January 2007- Version 1.1.1</a></li>

-<li><a href="#1_1">13th November 2006- Version 1.1</a></li>

-<li><a href="#1_0">04 May 2006- Version 1.0</a></li>

-<li><a href="#0_95">23 March 2006- Version 0.95</a></li>

-<li><a href="#0_94">11 January 2006- Version 0.94</a></li>

-<li><a href="#0_93">02 December 2005 - Version 0.93</a></li>

-<li><a href="#0_92">26 September 2005 - Version 0.92</a></li>

-<li><a href="#0_91">12 August 2005 - Version 0.91</a></li>

-<li><a href="#0_90">02 July 2005 - Version 0.9</a></li>

-<li><a href="#M2">07 June 2005 - Milestone 2</a></li>

-<li><a href="#M1">24 February 2005 - Milestone 1</a></li>

-</ul>

-

-

-<a id="1.2" name="1.2"></a>

-<h2>13rd August 2007 - Apache Axis2/Java Version 1.3 Released!</h2>

-<p>[<a href="download.cgi#1_3">Download 1.3</a>]</p>

-<p>Apache Axis2 Version 1.3 comes with performance improvements and

-a number bug fixes over the 1.2 release. Check out the complete list of

-features below.</p>

-<h3>Programming Model</h3>

-<ul>

-<li>Improved, XML-centric client API including full WSDL and policy

-support</li>

-<li>Support for POJO and Spring services and clients</li>

-<li>Support for any message exchange pattern</li>

-<li>Synchronous and asynchronous calls</li>

-<li>Archived service deployment model supporting full service

-encapsulation with versioning support</li>

-<li>Archived module deployment model supporting controlled

-extensibility with versioning support</li>

-<li><a href="#Hot_Deployment">Hot deployment</a></li>

-<li>WS-Policy driven code generation extensions</li>

-<li>Flexible service life cycle model</li>

-<li>Automatic support for POX (REST) style invocation of

-services</li>

-<li>Support for querying a service's WSDL (using ?wsdl), schema

-(using ?xsd) and policies (using ?policy)</li>

-<li>WSDL 2.0</li>

-<li>POJO annotation (<a href=

-"http://jcp.org/en/jsr/detail?id=181">JSR 181</a>)</li>

-<li>JAX-WS intregration</li>

-<li>Custom Deployers</li>

-<li>Binary serialization (Fast Infoset)</li>

-<li>JSON support</li>

-<li>EJB Provider support</li>

-</ul>

-<h3>Supported Specifications</h3>

-<ul>

-<li>SOAP 1.1 and 1.2</li>

-<li>Message Transmission Optimization Mechanism (MTOM), XML

-Optimized Packaging (XOP) and SOAP with Attachments</li>

-<li>WSDL 1.1, including both SOAP and HTTP bindings</li>

-<li>WS-Addressing (submission and final)</li>

-<li>WS-Policy</li>

-<li>SAAJ 1.1</li>

-</ul>

-<h3>Transports</h3>

-<ul>

-<li>HTTP</li>

-<li>SMTP</li>

-<li>JMS</li>

-<li>TCP</li>

-</ul>

-<h3>Supported Data Bindings</h3>

-<ul>

-<li>Axis Data Binding (ADB)</li>

-<li>XMLBeans</li>

-<li>JibX</li>

-<li>JaxBRI (Experimental)</li>

-</ul>

-<h2><a name="Tools_included_in this_Release">Tools Included in This

-Release</a></h2>

-<p>[<a href="tools/index.html">Download Tool Plug-ins</a>]</p>

-<ol type="1">

-<li>Axis2 Web Application (Web App)</li>

-<li>WSDL2WS- <a href="tools/eclipse/wsdl2java-plugin.html"

->eclipse plug-in</a><a>/</a> <a href=

-"tools/CodegenToolReference.html">Command line

-version</a><a>/</a><a href=

-"tools/idea/Idea_plug-in_userguide.html#WSDL2Java_Code_Generation"

->IntelliJ IDEA plug-in</a><a>/</a><a href=

-"tools/maven-plugins/maven-wsdl2code-plugin.html"

->Maven2 WSDL2Code Plug-in</a></li>

-<li>Service Archive Wizard- <a href=

-"tools/eclipse/servicearchiver-plugin.html"

->eclipse plug-in</a>/ <a href=

-"tools/idea/Idea_plug-in_userguide.html#Create_Service_Archive"

->IntelliJ IDEA plug-in</a>/ <a href=

-"tools/maven-plugins/maven-aar-plugin.html"

->Maven2 AAR Plug-in</a></li>

-<li>Java2WSDL- <a href=

-"tools/maven-plugins/maven-java2wsdl-plugin.html"

->Maven2 Java2WSDL Plug-in</a></li>

-</ol>

-<h2>Extension Modules</h2>

-<ul>

-<li>Apache Rampart: Supporting WS-Security (and soon

-WS-Policy)</li>

-<li>Apache Sandesha2: Supporting WS-Reliable Messaging</li>

-</ul>

-(Apache Axis2 comes built in with a module that supports

-WS-Addressing.)

-<h2>Known Issues and Limitations</h2>

-

-<a id="1.2" name="1.2"></a>

-<h2>27th April 2007 - Apache Axis2/Java Version 1.2 Released!</h2>

-<p>[<a href="download.cgi#1_2">Download 1.2</a>]</p>

-<h3>Programming Model</h3>

-<ul>

-<li>Improved, XML-centric client API including full WSDL and policy

-support</li>

-<li>Support for POJO and Spring services and clients</li>

-<li>Support for any message exchange pattern</li>

-<li>Synchronous and asynchronous calls</li>

-<li>Archived service deployment model supporting full service

-encapsulation with versioning support</li>

-<li>Archived module deployment model supporting controlled

-extensibility with versioning support</li>

-<li><a href="#Hot_Deployment">Hot deployment</a></li>

-<li>WS-Policy driven code generation extensions</li>

-<li>Flexible service life cycle model</li>

-<li>Automatic support for POX (REST) style invocation of

-services</li>

-<li>Support for querying a service's WSDL (using ?wsdl), schema

-(using ?xsd) and policies (using ?policy)</li>

-<li>WSDL 2.0</li>

-<li>POJO annotation (<a href=

-"http://jcp.org/en/jsr/detail?id=181">JSR 181</a>)</li>

-<li>JAX-WS intregration</li>

-<li>Custom Deployers</li>

-<li>Binary serialization (Fast Infoset)</li>

-<li>JSON support</li>

-<li>EJB Provider support</li>

-</ul>

-<h3>Supported Specifications</h3>

-<ul>

-<li>SOAP 1.1 and 1.2</li>

-<li>Message Transmission Optimization Mechanism (MTOM), XML

-Optimized Packaging (XOP) and SOAP with Attachments</li>

-<li>WSDL 1.1, including both SOAP and HTTP bindings</li>

-<li>WS-Addressing (submission and final)</li>

-<li>WS-Policy</li>

-<li>SAAJ 1.1</li>

-</ul>

-<h3>Transports</h3>

-<ul>

-<li>HTTP</li>

-<li>SMTP</li>

-<li>JMS</li>

-<li>TCP</li>

-</ul>

-<h3>Supported Data Bindings</h3>

-<ul>

-<li>Axis Data Binding (ADB)</li>

-<li>XMLBeans</li>

-<li>JibX</li>

-<li>JaxMe (Experimental)</li>

-<li>JaxBRI (Experimental)</li>

-</ul>

-<h2>Tools Included in this Release</h2>

-<p>[<a href="tools/index.html">Download Tool Plug-ins</a>]</p>

-<ol type="1">

-<li>Axis2 Web Application (Web App)</li>

-<li>WSDL2WS- <a href=

-"tools/eclipse/wsdl2java-plugin.html">eclipse

-plug-in</a><a>/</a> <a href=

-"tools/CodegenToolReference.html">Command line

-version</a><a>/</a><a href=

-"tools/idea/Idea_plug-in_userguide.html#WSDL2Java_Code_Generation">IntelliJ

-IDEA plug-in</a><a>/</a><a href=

-"tools/maven-plugins/maven-wsdl2code-plugin.html">Maven2

-WSDL2Code Plug-in</a></li>

-<li>Service Archive Wizard- <a href=

-"tools/eclipse/servicearchiver-plugin.html">eclipse

-plug-in</a>/ <a href=

-"tools/idea/Idea_plug-in_userguide.html#Create_Service_Archive">

-IntelliJ IDEA plug-in</a>/ <a href=

-"tools/maven-plugins/maven-aar-plugin.html">Maven2 AAR

-Plug-in</a></li>

-<li>Java2WSDL- <a href=

-"tools/maven-plugins/maven-java2wsdl-plugin.html">Maven2

-Java2WSDL Plug-in</a></li>

-</ol>

-<h2>Extension Modules</h2>

-<ul>

-<li>Apache Rampart: Supporting WS-Security (and soon

-WS-Policy)</li>

-<li>Apache Sandesha2: Supporting WS-Reliable Messaging</li>

-</ul>

-(Apache Axis2 comes built-in with a module that supports

-WS-Addressing.)

-<h2>Known Issues and Limitations</h2>

-<ul>

-<li>Xml-beans databinding does not support response unwrapping</li>

-<li>ADB databinding does not support minOccurs and maxOccurs

-attributes in sequence and choice elements (i.e.,

-<code>&lt;sequence minOccurs="0"

-maxOccurs="unbounded"&gt;&lt;/sequence&gt;</code>)</li>

-<li>Unable to produce original WSDL in the case of WSDL 2.0,

-therefore the AxisService is serialized to produce ?wsdl2.</li>

-</ul>

-<a id="1_1_1" name="1_1_1"></a>

-<h2>09th January 2007- Apache Axis2/Java Version 1.1.1

-Released!</h2>

-<p>[<a href="download.cgi#1_1_1">Download 1.1.1</a>]</p>

-<p>Apache Axis2 Version 1.1.1 comes with performance improvements

-and bug fixes over the 1.1 release. Check out the complete list of

-features below.</p>

-<h3>Programming Model</h3>

-<ul>

-<li>Improved, XML-centric client API including full WSDL and policy

-support</li>

-<li>Support for any message exchange pattern</li>

-<li>Synchronous and asynchronous calls</li>

-<li>Archived service deployment model</li>

-<li>Archived module deployment model supporting controlled

-extensibility with versioning support</li>

-<li><a href="#Hot_Deployment">Hot deployment</a></li>

-<li>WS-Policy driven code generation extensions</li>

-<li>Flexible service life cycle model</li>

-<li>Support for querying a service's WSDL (using ?wsdl), schema

-(using ?xsd) and policies (using ?policy)</li>

-</ul>

-<h3>Supported Specifications</h3>

-<ul>

-<li>SOAP 1.1 and 1.2</li>

-<li>Message Transmission Optimization Mechanism (MTOM), XML

-Optimized Packaging (XOP) and SOAP with Attachments</li>

-<li>WSDL 1.1, including both SOAP and HTTP bindings</li>

-<li>WS-Addressing (submission and final)</li>

-<li>WS-Policy</li>

-<li>SAAJ 1.1</li>

-</ul>

-<h3>Transports</h3>

-<ul>

-<li>HTTP</li>

-<li>SMTP</li>

-<li>JMS</li>

-<li>TCP</li>

-</ul>

-<h3>Supported Data Bindings</h3>

-<ul>

-<li>Axis Data Binding (ADB)</li>

-<li>XMLBeans</li>

-<li>JibX</li>

-<li>JaxMe</li>

-</ul>

-<h2>Tools Included in This Release</h2>

-<p>[<a href="tools/index.html">Download Tool Plug-ins</a>]</p>

-<ol type="1">

-<li>Axis2 Web Application (Web App)</li>

-<li>WSDL2WS- <a href=

-"tools/eclipse/wsdl2java-plugin.html">eclipse

-plug-in</a><a>/</a> <a href=

-"tools/CodegenToolReference.html">Command line

-version</a><a>/</a><a href=

-"tools/idea/Idea_plug-in_userguide.html#WSDL2Java_Code_Generation">IntelliJ

-IDEA plug-in</a><a>/</a><a href=

-"tools/maven-plugins/maven-wsdl2code-plugin.html">Maven2

-WSDL2Code Plug-in</a></li>

-<li>Service Archive Wizard- <a href=

-"tools/eclipse/servicearchiver-plugin.html">eclipse

-plug-in</a>/ <a href=

-"tools/idea/Idea_plug-in_userguide.html#Create_Service_Archive">

-IntelliJ IDEA plug-in</a>/ <a href=

-"tools/maven-plugins/maven-aar-plugin.html">Maven2

-AAR Plug-in</a></li>

-<li>Java2WSDL- <a href=

-"tools/maven-plugins/maven-java2wsdl-plugin.html">

-Maven2 Java2WSDL Plug-in</a></li>

-</ol>

-<h2>Extension Modules</h2>

-<ul>

-<li>Apache Rampart: Supporting WS-Security (and soon

-WS-Policy)</li>

-<li>Apache Sandesha2: Supporting WS-Reliable Messaging</li>

-</ul>

-(Apache Axis2 comes built in with a module that supports

-WS-Addressing.)

-<h2>Known Issues and Limitations</h2>

-<ul>

-<li>ADB does not support unwrapping of response messages(coming in

-1.2)</li>

-<li>JSR 181/183 Annotation support (coming in 1.2)</li>

-<li>JaxMe and JAXBRI data binding support is experimental</li>

-<li>Simple Axis Server does not support POX/REST</li>

-<li>RPC Message Receiver does not validate a request against the

-schema (AXIS2-1943)</li>

-<li>Axis2 Idea plugin shows random behavior when XMLBeans is

-used</li>

-</ul>

-<a id="1_1" name="1_1"></a>

-<h2>13th November 2006 - Apache Axis2/Java Version 1.1

-Released!</h2>

-<p>[<a href="download.cgi#1_1">Download 1.1</a>]</p>

-<p>Apache Axis2 Version 1.1 comes with better Axis2 Databinding

-Framework (ADB) support, <a href=

-"http://www.w3.org/TR/SOAP-attachments">attachments API</a>,

-Spring, and complete support for SOAP with Attachments (SwA). Check

-out the complete list of features below.</p>

-<h3>Programming Model</h3>

-<ul>

-<li>Improved, XML-centric client API including full WSDL and policy

-support</li>

-<li>Support for any message exchange pattern</li>

-<li>Synchronous and asynchronous calls</li>

-<li>Archived service deployment model</li>

-<li>Archived module deployment model, supporting controlled

-extensibility with versioning support</li>

-<li><a href="#Hot_Deployment">Hot deployment</a></li>

-<li>WS-Policy driven code generation extensions</li>

-<li>Flexible service life cycle model</li>

-<li>Support for the querying service's WSDL (using ?wsdl), schema

-(using ?xsd), and policies (using ?policy)</li>

-</ul>

-<h3>Supported Specifications</h3>

-<ul>

-<li>SOAP 1.1 and 1.2</li>

-<li>Message Transmission Optimization Mechanism (MTOM), XML

-Optimized Packaging (XOP) and SOAP with Attachments</li>

-<li>WSDL 1.1, including both SOAP and HTTP bindings</li>

-<li>WS-Addressing (submission and final)</li>

-<li>WS-Policy</li>

-<li>SAAJ 1.1</li>

-</ul>

-<h3>Transports</h3>

-<ul>

-<li>HTTP</li>

-<li>SMTP</li>

-<li>JMS</li>

-<li>TCP</li>

-</ul>

-<h3>Supported Data Bindings</h3>

-<ul>

-<li>Axis Data Binding (ADB)</li>

-<li>XMLBeans</li>

-<li>JibX</li>

-<li>JaxMe</li>

-</ul>

-<h2>Tools Included in This Release</h2>

-<p>[<a href="tools/index.html">Download Tool Plug-ins</a>]</p>

-<ol type="1">

-<li>Axis2 Web Application (Web App)</li>

-<li>WSDL2WS- <a href=

-"tools/eclipse/wsdl2java-plugin.html">eclipse

-plug-in</a><a>/</a> <a href=

-"tools/CodegenToolReference.html">Command line

-version</a><a>/</a><a href=

-"tools/idea/Idea_plug-in_userguide.html#WSDL2Java_Code_Generation">IntelliJ

-IDEA plug-in</a><a>/</a><a href=

-"tools/maven-plugins/maven-wsdl2code-plugin.html">Maven2

-WSDL2Code Plug-in</a></li>

-<li>Service Archive Wizard- <a href=

-"tools/eclipse/servicearchiver-plugin.html">eclipse

-plug-in</a>/ <a href=

-"tools/idea/Idea_plug-in_userguide.html#Create_Service_Archive">

-IntelliJ IDEA plug-in</a>/ <a href=

-"tools/maven-plugins/maven-aar-plugin.html">Maven2 AAR

-Plug-in</a></li>

-<li>Java2WSDL- <a href=

-"tools/maven-plugins/maven-java2wsdl-plugin.html">Maven2

-Java2WSDL Plug-in</a></li>

-</ol>

-<h2>Extension Modules</h2>

-<ul>

-<li>Apache Rampart: Supporting WS-Security (and soon

-WS-Policy)</li>

-<li>Apache Sandesha2: Supporting WS-Reliable Messaging</li>

-</ul>

-(Apache Axis2 comes built in with a module that supports

-WS-Addressing.)

-<h2>Known Issues and Limitations</h2>

-<ul>

-<li>JaxMe and JAXBRI data binding support is experimental</li>

-<li>AXIS2-595: Hot re-deployment in Apache Tomcat has problems</li>

-<li>Axis Data Binding (ADB) does not support the following

-constructs:

-<ol>

-<li>AXIS2-983: Support for Simple Type Union and Simple Type

-List</li>

-<li>AXIS2-1092: Support for xs:list inside an xs:simpleType</li>

-<li>AXIS2-1093: Support for xs:union inside xs:simpleType</li>

-</ol>

-</li>

-<li>No support yet for unwrapping of doc/lit WSDL files (in stub

-generation)</li>

-<li>No support yet for rpc/encoded style WSDL documents (in stub

-generation)</li>

-<li>Idea plugin shows random behavior when XMLBeans is used</li>

-</ul>

-<a id="1_0" name="1_0"></a>

-<h2>04 May 2006 - Apache Axis2 Version 1.0 Released!</h2>

-<p>[<a href="download.cgi#1_0">Download 1.0</a>]</p>

-<p>Apache Axis2 is a complete re-design and re-write of the widely

-used Apache Axis SOAP stack, built on the lessons learnt from

-Apache Axis.</p>

-<p>Apache Axis2 not only supports SOAP 1.1 and SOAP 1.2, but it

-also has integrated support for the widely popular REST style of

-Web services. The same business logic implementation can offer both

-a WS-* style interface as well as a REST style interface

-simultaneously.</p>

-<p>Apache Axis2 is more efficient, more modular and more

-XML-oriented than the older version. It is designed to support the

-easy addition of plug-in "modules" that extend their functionality

-for features such as security and reliability. The modules

-currently available or under development include:</p>

-<ul>

-<li><a href=

-"http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=wsrm">WS-ReliableMessaging</a>

-- Supported by <a href="http://axis.apache.org/axis2/java/sandesha/">Apache Sandesha2</a></li>

-<li><a href=

-"http://www-128.ibm.com/developerworks/library/specification/ws-tx/#coor">

-WS-Coordination</a> and <a href=

-"http://www-128.ibm.com/developerworks/library/specification/ws-tx/#atom">

-WS-AtomicTransaction</a> - Supported by <a href=

-"http://axis.apache.org/axis2/java/kandula/">Apache Kandula2</a></li>

-<li><a href=

-"http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=wss">WS-Security</a>

-- Supported by <a href="http://axis.apache.org/axis2/java/rampart/">Apache Rampart</a></li>

-<li><a href=

-"http://www.w3.org/Submission/ws-addressing/">WS-Addressing</a> -

-<a href="modules/index.html">Module</a>

-included as part of Axis2 core</li>

-</ul>

-<p>Apache Axis2 is built on <a href=

-"http://ws.apache.org/axiom/">Apache Axiom</a>, a

-new high performant, pull-based XML object model that was released

-on 02 May 2006.</p>

-<h2>Features</h2>

-<h3>Programming Model</h3>

-<ul>

-<li>Improved, XML-centric client API including full WSDL and policy

-support</li>

-<li>Support for any message exchange pattern</li>

-<li>Synchronous and asynchronous calls</li>

-<li>Archived service deployment model</li>

-<li>Archived module deployment model supporting controlled

-extensibility with versioning support</li>

-<li><a href="docs/installationguide.html#hot_deployment">Hot

-deployment</a></li>

-<li>WS-Policy driven code generation extensions</li>

-<li>Flexible service lifecyle model</li>

-<li>Support for querying a service's WSDL (using ?wsdl), schema

-(using ?xsd) and policies (using ?policy)</li>

-</ul>

-<h3>Supported Specifications</h3>

-<ul>

-<li>SOAP 1.1 and 1.2</li>

-<li>Message Transmission Optimization Mechanism (MTOM), XML

-Optimized Packaging (XOP) and SOAP with Attachments</li>

-<li>WSDL 1.1, including both SOAP and HTTP bindings</li>

-<li>WS-Addressing (submission and final)</li>

-<li>WS-Policy</li>

-<li>SAAJ 1.1</li>

-</ul>

-<h3>Transports</h3>

-<ul>

-<li>HTTP</li>

-<li>SMTP</li>

-<li>JMS</li>

-<li>TCP</li>

-</ul>

-<h3>Supported Data Bindings</h3>

-<ul>

-<li>Axis Data Binding (ADB)</li>

-<li>XMLBeans</li>

-<li>JibX</li>

-<li>JaxMe</li>

-</ul>

-<h2><a>Tools Included in This Release</a></h2>

-<p><a href="tools/index.html">[Download plug-ins]</a></p>

-<ol type="1">

-<li>Axis2 Web Application (Web App)</li>

-<li>WSDL2WS- <a href=

-"tools/eclipse/wsdl2java-plugin.html">eclipse

-plug-in</a><a>/</a> <a href=

-"tools/CodegenToolReference.html">Command line

-version</a><a>/</a><a href=

-"tools/idea/Idea_plug-in_userguide.html#WSDL2Java_Code_Generation">IntelliJ

-IDEA plug-in</a></li>

-<li>Service Archive Wizard- <a href=

-"tools/eclipse/servicearchiver-plugin.html">eclipse

-plug-in</a>/ <a href=

-"tools/idea/Idea_plug-in_userguide.html#Create_Service_Archive">

-IntelliJ IDEA plug-in</a></li>

-</ol>

-<h2>Extension Modules</h2>

-<ul>

-<li>Apache Rampart: Supporting WS-Security (and soon

-WS-Policy)</li>

-<li>Apache Sandesha2: Supporting WS-Reliable Messaging</li>

-</ul>

-(Apache Axis2 comes with a built in module that supports

-WS-Addressing.)

-<h2>Known Issues and Limitations</h2>

-<ul>

-<li>Recursive schemas (A includes B which includes A) may cause

-problems</li>

-<li>JaxMe data binding support is experimental</li>

-<li>Axis2-595: Hot re-deployment in Apache Tomcat has problems</li>

-<li>Axis2-666: AddressingSubmissionInHandler does not deserialize

-EPR extensibility attributes and elements</li>

-<li>AXIS2-667: Operation dispatch based on message body has a known

-issue</li>

-<li>Axis Data Binding (ADB) does not cover all of the XML Schema;

-its an 80-20 design point. Unsupported XML Schema features include:

-<ol>

-<li>Simple content extension and restriction</li>

-<li>Complex content restriction</li>

-</ol>

-</li>

-<li>ADB does not support xsi:type based deserialization at

-runtime</li>

-<li>No support yet for unwrapping of doc/lit WSDL files (in stub

-generation)</li>

-<li>No support yet for rpc/encoded style WSDL documents (in stub

-generation)</li>

-</ul>

-<a id="0_95" name="0_95"></a>

-<h2>23 March 2006 - Apache Axis2 Version 0.95 Released!</h2>

-<p>[<a href="download.cgi#0_95">Download

-0.95</a>]</p>

-<p>This release includes the following features:</p>

-<h3 id="head-215f3945a40558f9ad055ed5b6601e8f93706558">Axis2

-Complete List of Features</h3>

-<ol type="1">

-<li>AXIOM, an XML object model working on StAX (Streaming API for

-XML) parsing optimized for SOAP 1.1/1.2 messages. This has complete

-XML infoset support.</li>

-<li>Support for One-Way Messaging (In-Only) and Request Response

-Messaging (In-Out)</li>

-<li>Module Architecture, a mechanism to extend the SOAP Processing

-Model</li>

-<li>Module version support; you can have multiple versions of the

-same module and use them depending on the requirement.</li>

-<li>Context hierarchy</li>

-<li>Archive based deployment model and Directory based deployment

-model</li>

-<li>JWS-like deployment (making a Java class into a Web

-service)</li>

-<li>WSDL Code Generation Tool for Stub and skeletons</li>

-<li>WS-Addressing, both in the submission (2004/08) and final

-(2005/08) versions</li>

-<li>WSS4J module for security</li>

-<li>Improved and user friendly Client API</li>

-<li>WSDL2Java and Java2WSDL</li>

-<li>REST (REpresentational State Transfer) Support</li>

-<li>Transports supports: HTTP, SMTP, TCP, JMS</li>

-<li>Raw XML providers</li>

-<li>Support for MTOM/ MIME/ SwA</li>

-<li>SAAJ implementation</li>

-<li>DOOM</li>

-<li>Pack/Unpack capability for the generated code</li>

-<li>Axis Data Binding - ADB (Framework and Schema Compiler)</li>

-<li>Numerous bug fixes since last release</li>

-<li>Transport framework improvements (ListenerManager)-<span style=

-"color: #FF0000">New</span></li>

-<li>AxisServlet auto start when the application server starts

-up-<span style="color: #FF0000">New</span></li>

-<li>Module disengagement support-<span style=

-"color: #FF0000">New</span></li>

-<li>Loading module (.mar) from classpath-<span style=

-"color: #FF0000">New</span></li>

-<li>Sessions scoping for Application, SOAP, Transport and Request

-levels-<span style="color: #FF0000">New</span></li>

-</ol>

-<p id="head-5bb5aa099717d1d49642f7ae2d63ce5cf94487ad">

-<strong><em>Axis2 List of Experimental Features</em></strong></p>

-<ol type="1">

-<li>Server side and client side Web Service Policy support</li>

-<li>?wsdl and ?xsd support</li>

-<li>Generate ServiceClient for a given WSDL and invoke the

-corresponding service using the generated client.</li>

-</ol>

-<h3 id="head-7dd8e783bb9e22fb00f88748855bb6e500111e12">Major

-Changes Since Last Release</h3>

-<ol type="1">

-<li>Transport framework improvements (ListenerManager)

-<pre>

-   &lt;actionMapping&gt;MyMapping&lt;/actionMapping&gt;

-   

-</pre></li>

-<li>Changed the way you add action to mapping (wsamapping) from a

-parameter to a child element. Therefore, from this version onward,

-adding mapping is as follows:</li>

-<li>Refactored the following packages in Axiom.

-<ul>

-<li>org.apache.axiom.om.impl.llom.builder to

-org.apache.axiom.om.impl.builder</li>

-<li>org.apache.axiom.om.impl.llom.mtom to

-org.apache.axiom.om.impl.mtom</li>

-<li>org.apache.axiom.om.impl.llom.serialize to

-org.apache.axiom.om.impl.serialize</li>

-<li>org.apache.axiom.om.impl.llom.traverse to

-org.apache.axiom.om.impl.traverse</li>

-</ul>

-</li>

-</ol>

-<h3 id="head-83371cc3d6961295be042f584c7b74d81cca23c4">Tools

-Included in This Release</h3>

-<ol type="1">

-<li>Axis2 Web Application (Web App)</li>

-<li>WSDL2WS- Command line version</li>

-<!--<li>Service Archive Wizard- eclipse Plugin</li>--></ol>

-<h3 id="head-599c5a50552f02ebdeb5f58ef8da289234812ca4">What Still

-Needs to be Done</h3>

-<p>The list of what we think needs to be done. Even you can

-consider helping out if you are interested.</p>

-<ol type="1">

-<li>JAX-RPC 1.1 and/or JAX-WS compliance</li>

-<li>SOAP Encoding</li>

-<li>Binary serialization and de-serialization support</li>

-<li>Management Interface for Axis2</li>

-<li>Implementation of other Transports.</li>

-<li>Resource framework implementation (WS-RF) and Enterprise web

-services such as JSR 109 support</li>

-<li>Completion of Interop tests</li>

-</ol>

-<a id="0_94" name="0_94"></a>

-<h2>11 January 2006 - Apache Axis2 Version 0.94 Released!</h2>

-<p>[<a href="download.cgi#0_94">Download 0.94</a>]</p>

-<p>This release includes the following features:</p>

-<h3 id="head-215f3945a40558f9ad055ed5b6601e8f93706558">The Complete

-List of Features</h3>

-<ol type="1">

-<li>AXIOM, an XML object model working on StAX (Streaming API for

-XML) parsing optimized for SOAP 1.1/1.2 Messages. This has complete

-XML infoset support.</li>

-<li>Support for One-Way Messaging (In-Only) and Request Response

-Messaging (In-Out)</li>

-<li>Module Architecture, mechanism to extend the SOAP Processing

-Model</li>

-<li>Module version support; you can have multiple versions of the

-same module and use them depending on the requirement.</li>

-<li>Context hierarchy</li>

-<li>Archive based deployment Model, and Directory based deployment

-model</li>

-<li>JWS-like deployment (making a Java class into a Web

-service)</li>

-<li>WSDL Code Generation Tool for Stub and skeletons</li>

-<li>WS-Addressing, both the submission (2004/08) and final

-(2005/08) versions</li>

-<li>WSS4J module for security</li>

-<li>Improved and user friendly Client API</li>

-<li>WSDL2Java</li>

-<li>REST (REpresentational State Transfer) Support</li>

-<li>Transports supports: HTTP, SMTP, TCP, JMS</li>

-<li>Raw XML providers</li>

-<li>Support for MTOM/ MIME/ SwA</li>

-<li>SAAJ implementation</li>

-<li>DOOM - <span style="color: #FF0000">New</span></li>

-<li>Pack/Unpack capability for the generated code - <span style=

-"color: #FF0000">New</span></li>

-<li>Axis Data Binding - ADB (Framework and Schema Compiler)</li>

-<li>Numerous bug fixes since last release</li>

-</ol>

-<h4 id="head-5bb5aa099717d1d49642f7ae2d63ce5cf94487ad">Axis2 List

-of Experimental Features</h4>

-<ol type="1">

-<li>Sessions scoping for Application, SOAP, Transport and Request

-levels</li>

-<li>Server side Web Service Policy support</li>

-<li>?wsdl and ?xsd support</li>

-<li>Java2WSDL</li>

-<li>Generate ServiceClient for a given WSDL and invoke the

-corresponding service using the generated client.</li>

-</ol>

-<h3 id="head-7dd8e783bb9e22fb00f88748855bb6e500111e12">Major

-Changes Since the Last Release</h3>

-<ol type="1">

-<li>Fixing of memory leaks.</li>

-<li>Client API changes. Introducing ServiceClient instead of

-MEPClient, InOnlyMEPClient, InOutMEPClient, Call. (Please note that

-the above classes will be deprecated in this release.)</li>

-<li>Module versioning support. You can have multiple versions of

-the same module and use them depending on the requirement.</li>

-<li>Code generator improved to process multi-port WSDLs</li>

-<li>Packing and unpacking options for the code generated

-classes</li>

-</ol>

-<h3 id="head-83371cc3d6961295be042f584c7b74d81cca23c4">Tools

-Included in this Release</h3>

-<ol type="1">

-<li>Axis2 Web Application (Web App)</li>

-<li>WSDL2WS- Eclipse plugin/ Command line version/ IntelliJ IDEA

-plugin</li>

-<li>Service Archive Wizard- Eclipse plugin/ IntelliJ IDEA

-plugin</li>

-</ol>

-<h3 id="head-599c5a50552f02ebdeb5f58ef8da289234812ca4">What Still

-Needs to be Done</h3>

-<ol type="1">

-<li>JAX-RPC 1.1 and/or JAX-WS compliance</li>

-<li>SOAP Encoding</li>

-<li>Binary serialization and de-serialization support</li>

-<li>Management interface for Axis2</li>

-<li>Implementation of other Transports.</li>

-<li>Resource framework implementation (WS-RF) and Enterprise web

-services such as JSR 109 support</li>

-<li>Completion of interop tests</li>

-</ol>

-<a id="0_93" name="0_93"></a>

-<h2>02 December 2005 - Apache Axis2 Version 0.93 Released!</h2>

-<p>[<a href="download.cgi#0_93">Download 0.93</a>]</p>

-<p>Axis2 is becoming more and more stable. This 0.93 release

-contains the following additional features:</p>

-<ul>

-<li>JDK 1.5 compatibility</li>

-<li>Configurable handler chains using axis2.xml</li>

-<li>Improved class loader hierarchy</li>

-<li>Improved security module with dynamic configurability</li>

-<li>ADB (Axis Data Binding) with complete simple type support and

-limited complex type support</li>

-<li>Jalopy based code formatting of generated code</li>

-<li>Proxy support and NTLM authentication</li>

-<li>Support for rpc/literal</li>

-<li>And numerous bug fixes after 0.92 release</li>

-</ul>

-<h3>List of Experimental Features</h3>

-<ol type="1">

-<li>DOOM - DOM implementation over OM</li>

-<li>Java2WSDL</li>

-<li>RPC Support</li>

-</ol>

-<h3>Major Changes Since the Last Release</h3>

-<ol>

-<li>Refactored org.apache.axis2.clientapi to

-org.apache.axis2.client</li>

-<li>Introduction of Options to configure clients</li>

-<li>Renaming of descriptors. OperationDescription -&gt;

-AxisOperation, ServiceDescription -&gt; AxisService,

-ServiceGroupDescription -&gt; AxisServiceGroup</li>

-</ol>

-We are getting closer to a 1.0 release, and the remaining tasks to

-be completed before the 1.0 release include: SOAP 1.1 and 1.2

-validation, our own data binding implementation, and WSDL

-generation. <a id="0_92" name="0_92"></a>

-<h2>26 September 2005 - Apache Axis2 Version 0.92 Released!</h2>

-<p>[<a href="download.cgi#0_92">Download 0.92</a>]</p>

-<p>This 0.92 release contains the following additional

-features:</p>

-<ul>

-<li>WS-Security support using WSS4J</li>

-<li>Support for context hierarchy serialization</li>

-<li>Service Groups</li>

-<li>Numerous bug fixes after 0.91 release</li>

-</ul>

-<h3>The Release Includes the Following Tools</h3>

-<ul>

-<li>Admin Web App</li>

-<li>WSDL2Java, eclipse Plugin/Command line version</li>

-<li>Service Archive Wizard, eclipse Plugin</li>

-<li>Module Archive Wizard, eclipse Plugin</li>

-<li>Service Archive Wizard, IntelliJ IDEA Plugin</li>

-</ul>

-<p>We are getting closer to a 1.0 release, and the remaining tasks

-to be completed before a 1.0 release include: SOAP 1.1 and 1.2

-validation, our own data binding implementation, and WSDL

-generation.</p>

-<a id="0_91" name="0_91"></a>

-<h2>12 August 2005 - Apache Axis2 Version 0.91 Released!</h2>

-<p>[<a href="download.cgi#0_91">Download 0.91</a>]</p>

-<p>This 0.91 release is a glimpse of the 1.0 that should be coming

-soon. This 0.91 release contains the following additional

-features:</p>

-<ul>

-<li>File Caching for MTOM</li>

-<li>SOAP faults based on the SOAP version and better fault

-handling</li>

-<li>Different character encoding support</li>

-<li>Improved infoset support in AXIOM</li>

-<li>Improved code generation templates</li>

-<li>Numerous bug fixes</li>

-</ul>

-<a id="0_90" name="0_90"></a>

-<h2>02 July 2005 - Apache Axis2 Version 0.9 Released!</h2>

-<p>[<a href="download.cgi#0_9">Download 0.9</a>]</p>

-<p>Axis2 is taking shape. This 0.9 release is a glimpse of the 1.0

-that should be coming soon. This 0.9 release contains the following

-additional features:</p>

-<ul>

-<li>XML Beans based data binding support</li>

-<li>Support for WS-Addressing, both the submission and final

-versions</li>

-<li>REST Web Service Support</li>

-<li>MTOM/SWA attachments support</li>

-<li>SAAJ implementation</li>

-</ul>

-<a id="M2" name="M2"></a>

-<h2>07 June 2005 - Apache Axis2 Milestone 2 (M2) Released</h2>

-<p>Apache Axis2 is starting to take shape. Features implemented in

-this second milestone release are:</p>

-<ul>

-<li>Modules - a mechanism to extend the SOAP Processing Model</li>

-<li>Support for WS-Addressing</li>

-<li>Axis2 Client API - Blocking and Non-Blocking API</li>

-<li>Support for One-Way Messaging and Request Response

-Messaging</li>

-<li>WSDL Code Generation Tool.</li>

-<li>HTTP, SMTP, and TCP transport support</li>

-</ul>

-<b>This release also includes the following tools:</b>

-<ul>

-<li>Administration web application,</li>

-<li>WSDL2WS-Eclipse plug-in</li>

-<li>Service Archive Wizard- Eclipse plug-in</li>

-<li>Module Archive Wizard-Eclipse plug-in</li>

-</ul>

-<a id="M1" name="M1"></a>

-<h2>24 February 2005 - Apache Axis2 Milestone 1 (M1) Released</h2>

-<p>This first milestone release of Axis2 includes the following

-features:</p>

-<ul>

-<li>AXIOM, a SOAP specific streaming XML infoset model for SOAP

-1.1/1.2 Messages</li>

-<li>WSDL Object Model built based on the proposed WSDL 2.0

-Component Model.</li>

-<li>Handler framework with the support to specify the location of

-the Handler in a specific Phase</li>

-<li>Support to bundle and enable the Handlers as Modules</li>

-<li>Support for the Synchronous and Asynchronous IN-OUT messaging

-over HTTP transport</li>

-<li>Hot deployment of Web Services</li>

-</ul>

-</body>

-</html>

diff --git a/src/site/xdoc/articles.xml b/src/site/xdoc/articles.xml
index 31953f9..ef83b59 100644
--- a/src/site/xdoc/articles.xml
+++ b/src/site/xdoc/articles.xml
@@ -178,12 +178,5 @@
 based Web Service in your Webapp?</a>- By Davanum Sirinivas(17 May

 2006)</li>

 </ul>

-<h2>Other</h2>

-<ul>

-<li><a href=

-"http://pzf.fremantle.org/2007/05/getting-started-with-wsrm-and-axis2.html">

-Getting started with Axis2 and Sandesha2 to do

-WS-ReliableMessaging</a></li>

-</ul>

 </body>

 </html>

diff --git a/src/site/xdoc/docs/axis2config.xml b/src/site/xdoc/docs/axis2config.xml
index 7faa4fe..3b0286f 100644
--- a/src/site/xdoc/docs/axis2config.xml
+++ b/src/site/xdoc/docs/axis2config.xml
@@ -301,7 +301,7 @@
     class="fully qualified name the service lifecycle class"   
     targetNamespace="target namespace for the service"&gt;
     
-    &lt;Description&gt; The description of the service  &lt;/Description&gt;  
+    &lt;description&gt; The description of the service  &lt;/description&gt;  
 
     &lt;transports&gt; 
         &lt;transport&gt;HTTP&lt;/transport&gt;
diff --git a/src/site/xdoc/docs/contents.xml.vm b/src/site/xdoc/docs/contents.xml.vm
index a4cc8cc..f0006ab 100644
--- a/src/site/xdoc/docs/contents.xml.vm
+++ b/src/site/xdoc/docs/contents.xml.vm
@@ -211,7 +211,7 @@
 WSDL, which describes a Web service for invoking the class

 methods</li>

 <li><a href=

-"../tools/maven-plugins/maven-wsdl2code-plugin.html">

+"../tools/maven-plugins/axis2-wsdl2code-maven-plugin/index.html">

 Maven2 WSDL2Code Plug-in Guide</a> - A guide to using this plugin

 that takes as input a WSDL and generates client and server stubs

 for calling or implementing a Web service matching the WSDL.</li>

diff --git a/src/site/xdoc/docs/reference.xml b/src/site/xdoc/docs/reference.xml
deleted file mode 100644
index 4c585c2..0000000
--- a/src/site/xdoc/docs/reference.xml
+++ /dev/null
@@ -1,140 +0,0 @@
-<!--

-  ~ Licensed to the Apache Software Foundation (ASF) under one

-  ~ or more contributor license agreements. See the NOTICE file

-  ~ distributed with this work for additional information

-  ~ regarding copyright ownership. The ASF licenses this file

-  ~ to you under the Apache License, Version 2.0 (the

-  ~ "License"); you may not use this file except in compliance

-  ~ with the License. You may obtain a copy of the License at

-  ~

-  ~ http://www.apache.org/licenses/LICENSE-2.0

-  ~

-  ~ Unless required by applicable law or agreed to in writing,

-  ~ software distributed under the License is distributed on an

-  ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

-  ~ KIND, either express or implied. See the License for the

-  ~ specific language governing permissions and limitations

-  ~ under the License.

-  -->

-

-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"

-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

-<html xmlns="http://www.w3.org/1999/xhtml">

-<head>

-<meta name="generator" content=

-"HTML Tidy for Windows (vers 14 June 2007), see www.w3.org" />

-<meta http-equiv="content-type" content="" />

-<title>Axis2 Reference Guide</title>

-</head>

-<body lang="en-US" dir="ltr" xml:lang="en-US">

-<a name="_Toc96697849" id="_Toc96697849"></a>

-<h1 align="center">Axis2 Reference Guide</h1>

-<a name="wsdl2code" id="wsdl2code"></a>

-<h2>WSDL2Java Reference</h2>

-<pre>

-NAME

-       wsdl2java.sh or wsdl2java.bat - Generates java code according to a given WSDL file to handle Web service invocation.

-       These scripts can be found under the bin directory of the Axis2 distribution.

-

-SYNOPSIS

-       wsdl2java.sh [OPTION]... -uri &lt;Location of WSDL&gt;

-

-DESCRIPTION

-       Given a WSDL file, this generates java code to handle Web service invocations.

-

-      -o &lt;path&gt;          Specify a directory path for the generated code.

-      -a                       Generate async style code only (Default: off).

-      -s                       Generate sync style code only (Default: off). Takes precedence over -a.

-      -p &lt;pkg1&gt;          Specify a custom package name for the generated code.

-      -l &lt;language&gt;      Valid languages are java and c (Default: java).

-      -t                       Generate a test case for the generated code.

-      -ss                      Generate server side code (i.e. skeletons) (Default: off).

-      -sd                      Generate service descriptor (i.e. services.xml). (Default: off). Valid with -ss.

-      -d &lt;databinding&gt;   Valid databinding(s) are adb, xmlbeans, jibx and jaxbri (Default: adb).

-      -g                       Generates all the classes. Valid only with -ss.

-      -pn &lt;port_name&gt;    Choose a specific port when there are multiple ports in the wsdl.

-      -sn &lt;service_name&gt; Choose a specific service when there are multiple services in the wsdl.

-      -u                       Unpacks the databinding classes

-      -r &lt;path&gt;          Specify a repository against which code is generated.

-      -ns2p ns1=pkg1,ns2=pkg2  Specify a custom package name for each namespace specified in the wsdls schema.

-      -ssi                     Generate an interface for the service implementation (Default: off).

-      -wv &lt;version&gt;      WSDL Version. Valid Options : 2, 2.0, 1.1

-      -S                       Specify a directory path for generated source

-      -R                       Specify a directory path for generated resources

-      -em                      Specify an external mapping file

-      -f                       Flattens the generated files

-      -uw                      Switch on un-wrapping.

-      -xsdconfig &lt;file path&gt;   Use XMLBeans .xsdconfig file. Valid only with -d xmlbeans.

-      -ap                      Generate code for all ports

-      -or                      Overwrite the existing classes

-      -b                       Generate Axis 1.x backword compatible code.

-      -sp                      Suppress namespace prefixes (Optimzation that reduces size of soap request/response)

-      -E&lt;key&gt; &lt;value&gt;          Extra configuration options specific to certain databindings. Examples:

-                               -Ebindingfile &lt;path&gt;                   (for jibx) - specify the file path for the binding file

-                               -Etypesystemname &lt;my_type_system_name&gt; (for xmlbeans) - override the randomly generated type system name

-                               -Ejavaversion 1.5                      (for xmlbeans) - generates Java 1.5 code (typed lists instead of arrays)

-                               -Emp &lt;package name&gt; (for ADB) - extension mapper package name

-                               -Eosv (for ADB) - turn off strict validation.

-                               -Ewdc (for xmlbeans) - Generate code with a dummy schema. if someone use this option

-                                  they have to generate the xmlbeans code seperately with the scomp command comes with the

-                                  xmlbeans distribution and replace the Axis2 generated classes with correct classes

-      --noBuildXML             Dont generate the build.xml in the output directory

-      --noWSDL                 Dont generate WSDLs in the resources directory

-      --noMessageReceiver      Dont generate a MessageReceiver in the generated sources

-      --http-proxy-host        Proxy host address if you are behind a firewall

-      --http-proxy-port        Proxy prot address if you are behind a firewall

-      -ep                      Exclude packages - these packages are deleted after codegeneration

-    

-EXAMPLES

-       wsdl2java.sh -uri ../samples/wsdl/Axis2SampleDocLit.wsdl

-       wsdl2java.sh -uri ../samples/wsdl/Axis2SampleDocLit.wsdl -ss -sd 

-       wsdl2java.sh -uri ../samples/wsdl/Axis2SampleDocLit.wsdl -ss -sd -d xmlbeans -o ../samples -p org.apache.axis2.userguide

-</pre>

-<a name="wsdl2java" id="wsdl2java"></a>

-<h2>Java2WSDL Reference</h2>

-<pre>

-NAME

-       Java2WSDL.sh or Java2WSDL.bat - Generates the appropriate WSDL file for a given java class.

-       These scripts can be found under the bin directory of the Axis2 distribution.

-

-SYNOPSIS

-       Java2WSDL.sh [OPTION]... -cn &lt;fully qualified class name&gt;

-

-DESCRIPTION

-       Given a java class generates a WSDL file for the given java class. 

-

-      -o &lt;output location&gt;                    output directory

-      -of &lt;output file name&gt;                  output file name for the WSDL

-      -sn &lt;service name&gt;                      service name

-      -l &lt;one or more soap addresses&gt;         location URIs, comma-delimited

-      -cp &lt;class path uri&gt;                    list of classpath entries - (urls)

-      -tn &lt;target namespace&gt;                  target namespace for service

-      -tp &lt;target namespace prefix&gt;           target namespace prefix for service

-      -stn &lt;schema target namespace&gt;          target namespace for schema

-      -stp &lt;schema target namespace prefix&gt;   target namespace prefix for schema

-      -st &lt;binding style&gt;                     style for the WSDL

-      -u &lt;binding use&gt;                        use for the WSDL

-      -nsg &lt;class name&gt;                       fully qualified name of a class that implements NamespaceGenerator

-      -sg &lt;class name&gt;                        fully qualified name of a class that implements SchemaGenerator

-      -p2n [&lt;java package&gt;,&lt;namespace] [&lt;java package&gt;,&lt;namespace]...

-                                              java package to namespace mapping for argument and return types

-      -p2n [all, &lt;namespace&gt;]                 to assign all types to a single namespace

-      -efd &lt;qualified/unqualified&gt;            setting for elementFormDefault (defaults to qualified)

-      -afd &lt;qualified/unqualified&gt;            setting for attributeFormDefault (defaults to qualified)

-      -xc class1 -xc class2...                extra class(es) for which schematype must be generated.

-      -wv &lt;1.1/2.0&gt;                           wsdl version - defaults to 1.1 if not specified

-      -dlb                                    generate schemas conforming to doc/lit/bare style

-      -dne                                    disallow nillable elements in the generated schema

-      -doe                                    disallow optional elements in the generated schema

-      -disableSOAP11                          disable binding generation for SOAP 1.1

-      -disableSOAP12                          disable binding generation for SOAP 1.2

-      -disableREST                            disable binding generation for REST

-    

-EXAMPLES

-       Java2WSDL.sh -cn ../samples/test/searchTool.Search

-       Java2WSDL.sh -cn ../samples/test/searchTool.Search -sn search

-       Java2WSDL.sh -cn ../samples/test/searchTool.Search -u -sn search

-       Java2WSDL.sh -cn ../samples/test/searchTool.Search -sn search -o ../samples/test/wsdl  

-</pre>

-</body>

-</html>

diff --git a/src/site/xdoc/docs/soapmonitor-module.xml.vm b/src/site/xdoc/docs/soapmonitor-module.xml.vm
index 1323422..f31d9c4 100644
--- a/src/site/xdoc/docs/soapmonitor-module.xml.vm
+++ b/src/site/xdoc/docs/soapmonitor-module.xml.vm
@@ -28,6 +28,11 @@
 <body>
 <h1>Using the SOAP Monitor</h1>
 
+<p><b>Warning: the SOAP Monitor uses a protocol based on Java serialization
+and is therefore vulnerable to attacks. It should be used exclusively as a
+development and debugging tool, but never be permanently enabled on production
+systems.</b></p>
+
 <p>Web service developers often want to see the SOAP messages that are being
 used to invoke the Web services, along with the results of those messages.
 The goal of the SOAP Monitor utility is to provide a way for the developers
diff --git a/src/site/xdoc/docs/toc.xml b/src/site/xdoc/docs/toc.xml
index 7b80789..73d0b80 100644
--- a/src/site/xdoc/docs/toc.xml
+++ b/src/site/xdoc/docs/toc.xml
@@ -137,7 +137,7 @@
 <li>25.4 <a href="../tools/eclipse/wsdl2java-plugin.html">Code Generator Wizard - Eclipse Plug-in</a></li>
 <li>25.5 <a href="../tools/maven-plugins/maven-aar-plugin.html">AAR Maven2 Plug-in</a></li>
 <li>25.6 <a href="../tools/maven-plugins/maven-java2wsdl-plugin.html">Java2WSDL Maven2 Plug-in</a></li>
-<li>25.7 <a href="../tools/maven-plugins/maven-wsdl2code-plugin.html">WSDL2Code Maven2 Plug-in</a></li>
+<li>25.7 <a href="../tools/maven-plugins/axis2-wsdl2code-maven-plugin/index.html">WSDL2Code Maven2 Plug-in</a></li>
 </ul>
 </li>
 <li><a href="migration.html">Migration Guide
diff --git a/src/site/xdoc/docs/userguide.xml b/src/site/xdoc/docs/userguide.xml
index c0098e2..459164d 100644
--- a/src/site/xdoc/docs/userguide.xml
+++ b/src/site/xdoc/docs/userguide.xml
@@ -127,18 +127,9 @@
 <li>Easily retrieve the WSDL for a service</li>

 <li>Send and receive SOAP messages with attachments</li>

 <li>Create or utilize a REST-based Web service</li>

-<li>Create or utilize services that take advantage of the <a href=

+<li>Create or utilize services that take advantage of <a href=

 "http://www.oasis-open.org/committees/download.php/16790/wss-v1.1-spec-os-SOAPMessageSecurity.pdf">

-WS-Security</a>, <a href=

-"http://xml.coverpages.org/ws-reliablemessaging20030313.pdf">WS-ReliableMessaging</a>,

-<a href="http://www.w3.org/2002/ws/addr/">WS-Addressing</a>,

-<a href=

-"http://docs.oasis-open.org/ws-tx/wscoor/2006/06">WS-Coordination</a>,

-and <a href=

-"http://docs.oasis-open.org/ws-tx/wsat/2006/06">

-WS-Atomic Transaction</a> recommendations</li>

-<li>Use Axis2's modular structure to easily add support for new

-recommendations as they emerge</li>

+WS-Security</a> and <a href="http://www.w3.org/2002/ws/addr/">WS-Addressing</a></li>

 </ul>

 <p>Many more features exist as well, but this user guide

 concentrates on showing you how to accomplish the first five tasks

@@ -207,8 +198,7 @@
 and handlers.</p>

 <p>Handlers come from "modules" that can be plugged into a running

 Axis2 system. These modules, such as Rampart, which provides an

-implementation of WS-Security, and Sandesha, which provides an

-implementation of WS-ReliableMessaging, are the main extensibility

+implementation of WS-Security, are the main extensibility

 mechanisms in Axis2.</p>

 <a name="distributions" id="distributions"></a>

 <h2>Axis2 Distributions</h2>

diff --git a/src/site/xdoc/download.xml b/src/site/xdoc/download.xml
deleted file mode 100644
index 90780d4..0000000
--- a/src/site/xdoc/download.xml
+++ /dev/null
@@ -1,709 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<!--

-  ~ Licensed to the Apache Software Foundation (ASF) under one

-  ~ or more contributor license agreements. See the NOTICE file

-  ~ distributed with this work for additional information

-  ~ regarding copyright ownership. The ASF licenses this file

-  ~ to you under the Apache License, Version 2.0 (the

-  ~ "License"); you may not use this file except in compliance

-  ~ with the License. You may obtain a copy of the License at

-  ~

-  ~ http://www.apache.org/licenses/LICENSE-2.0

-  ~

-  ~ Unless required by applicable law or agreed to in writing,

-  ~ software distributed under the License is distributed on an

-  ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

-  ~ KIND, either express or implied. See the License for the

-  ~ specific language governing permissions and limitations

-  ~ under the License.

-  -->

-<document xmlns="http://maven.apache.org/XDOC/2.0"

-          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

-          xsi:schemaLocation="http://maven.apache.org/XDOC/2.0 http://maven.apache.org/xsd/xdoc-2.0.xsd">

-    <properties>

-        <title>Releases</title>

-    </properties>

-    <body>

-        <section name="Apache Axis2 Releases">

-            <p>This page provides links to the release versions of Axis2 Java.

-            For more information, please see <a href=

-            "http://www.apache.org/dev/release.html">Apache Release

-            FAQ</a>.</p>

-            <p>Different types of distributions are available for each released version:</p>

-            <table>

-                <tbody>

-                    <tr>

-                        <th>Distribution Name</th>

-                        <th>Description</th>

-                    </tr>

-                    <tr>

-                        <td><a name="std-bin"/><strong>Binary Distribution</strong></td>

-                        <td>This is the complete version of Axis2 and will contain samples

-                        as well. Since WS-Addressing implementation and SOAP Monitor

-                        utility modules are engaged in to Axis2, by default, this

-                        distribution will contain addressing.mar and soapmonitor.mar. But

-                        the other modules that are being developed within Axis2 will not be

-                        included here, and need to be <a href=

-                        "modules/index.html">downloaded</a> separately.</td>

-                    </tr>

-                    <tr>

-                        <td><strong>Source Distribution</strong></td>

-                        <td>This will contain the sources of Axis2 standard distribution.

-                        One can generate a binary distribution from this by typing

-                        <span class="style1">$maven dist-bin</span> (<a href=

-                        "docs/installationguide.html#env-src">Set

-                        up Axis2 environment</a> before running this command). Useful for

-                        advanced users.</td>

-                    </tr>

-                    <tr>

-                        <td><a name="war"/><strong>WAR (Web Archive) Distribution</strong></td>

-                        <td>This will be the web application of Axis2 which can be deployed

-                        in most of the servlet containers.</td>

-                    </tr>

-                    <tr>

-                        <td><strong>Documents Distribution</strong></td>

-                        <td>This will contain all the documentation in one package.</td>

-                    </tr>

-                </tbody>

-            </table>

-            <subsection name="1.6.x releases">

-                <p>The following versions are available:</p>

-                <table>

-                    <tbody>

-                        <tr>

-                            <th>Version</th>

-                            <th>Date</th>

-                            <th>Description</th>

-                            <th>Distribution</th>

-                        </tr>

-                        <tr>

-                            <td><a name="1_6_2"/><strong>1.6.2</strong></td>

-                            <td>17 - Apr - 2012</td>

-                            <td>1.6.2 Release (Mirrored)</td>

-                            <td>

-                                Binary Distribution

-                                <a href="[preferred]/axis/axis2/java/core/1.6.2/axis2-1.6.2-bin.zip">zip</a> |

-                                <a href="http://www.apache.org/dist/axis/axis2/java/core/1.6.2/axis2-1.6.2-bin.zip.md5">MD5</a> |

-                                <a href="http://www.apache.org/dist/axis/axis2/java/core/1.6.2/axis2-1.6.2-bin.zip.asc">PGP</a>

-                                <br/>

-                                Source Distribution

-                                <a href="[preferred]/axis/axis2/java/core/1.6.2/axis2-1.6.2-src.zip">zip</a> |

-                                <a href="http://www.apache.org/dist/axis/axis2/java/core/1.6.2/axis2-1.6.2-src.zip.md5">MD5</a> |

-                                <a href="http://www.apache.org/dist/axis/axis2/java/core/1.6.2/axis2-1.6.2-src.zip.asc">PGP</a>

-                                <br/>

-                                WAR Distribution

-                                <a href="[preferred]/axis/axis2/java/core/1.6.2/axis2-1.6.2-war.zip">zip</a> |

-                                <a href="http://www.apache.org/dist/axis/axis2/java/core/1.6.2/axis2-1.6.2-war.zip.md5">MD5</a> |

-                                <a href="http://www.apache.org/dist/axis/axis2/java/core/1.6.2/axis2-1.6.2-war.zip.asc">PGP</a>

-                                <br/>

-                                Documents Distribution

-                                <a href="[preferred]/axis/axis2/java/core/1.6.2/axis2-1.6.2-docs.zip">zip</a> |

-                                <a href="http://www.apache.org/dist/axis/axis2/java/core/1.6.2/axis2-1.6.2-docs.zip.md5">MD5</a> |

-                                <a href="http://www.apache.org/dist/axis/axis2/java/core/1.6.2/axis2-1.6.2-docs.zip.asc">PGP</a>

-                            </td>

-                        </tr>

-                        <tr>

-                            <td><a name="1_6_1"/><strong>1.6.1</strong></td>

-                            <td>30 - Aug - 2011</td>

-                            <td>1.6.1 Release (Archived)</td>

-                            <td>

-                                Binary Distribution

-                                <a href="http://archive.apache.org/dist/axis/axis2/java/core/1.6.1/axis2-1.6.1-bin.zip">zip</a> |

-                                <a href="http://archive.apache.org/dist/axis/axis2/java/core/1.6.1/axis2-1.6.1-bin.zip.md5">MD5</a> |

-                                <a href="http://archive.apache.org/dist/axis/axis2/java/core/1.6.1/axis2-1.6.1-bin.zip.asc">PGP</a>

-                                <br/>

-                                Source Distribution

-                                <a href="http://archive.apache.org/dist/axis/axis2/java/core/1.6.1/axis2-1.6.1-src.zip">zip</a> |

-                                <a href="http://archive.apache.org/dist/axis/axis2/java/core/1.6.1/axis2-1.6.1-src.zip.md5">MD5</a> |

-                                <a href="http://archive.apache.org/dist/axis/axis2/java/core/1.6.1/axis2-1.6.1-src.zip.asc">PGP</a>

-                                <br/>

-                                WAR Distribution

-                                <a href="http://archive.apache.org/dist/axis/axis2/java/core/1.6.1/axis2-1.6.1-war.zip">zip</a> |

-                                <a href="http://archive.apache.org/dist/axis/axis2/java/core/1.6.1/axis2-1.6.1-war.zip.md5">MD5</a> |

-                                <a href="http://archive.apache.org/dist/axis/axis2/java/core/1.6.1/axis2-1.6.1-war.zip.asc">PGP</a>

-                                <br/>

-                                Documents Distribution

-                                <a href="http://archive.apache.org/dist/axis/axis2/java/core/1.6.1/axis2-1.6.1-docs.zip">zip</a> |

-                                <a href="http://archive.apache.org/dist/axis/axis2/java/core/1.6.1/axis2-1.6.1-docs.zip.md5">MD5</a> |

-                                <a href="http://archive.apache.org/dist/axis/axis2/java/core/1.6.1/axis2-1.6.1-docs.zip.asc">PGP</a>

-                            </td>

-                        </tr>

-                        <tr>

-                            <td><a name="1_6_0"/><strong>1.6.0</strong></td>

-                            <td>17 - May - 2011</td>

-                            <td>1.6.0 Release (Archived)</td>

-                            <td>

-                                Binary Distribution

-                                <a href="http://archive.apache.org/dist/axis/axis2/java/core/1.6.0/axis2-1.6.0-bin.zip">zip</a> |

-                                <a href="http://archive.apache.org/dist/axis/axis2/java/core/1.6.0/axis2-1.6.0-bin.zip.md5">MD5</a> |

-                                <a href="http://archive.apache.org/dist/axis/axis2/java/core/1.6.0/axis2-1.6.0-bin.zip.asc">PGP</a>

-                                <br/>

-                                Source Distribution

-                                <a href="http://archive.apache.org/dist/axis/axis2/java/core/1.6.0/axis2-1.6.0-src.zip">zip</a> |

-                                <a href="http://archive.apache.org/dist/axis/axis2/java/core/1.6.0/axis2-1.6.0-src.zip.md5">MD5</a> |

-                                <a href="http://archive.apache.org/dist/axis/axis2/java/core/1.6.0/axis2-1.6.0-src.zip.asc">PGP</a>

-                                <br/>

-                                WAR Distribution

-                                <a href="http://archive.apache.org/dist/axis/axis2/java/core/1.6.0/axis2-1.6.0-war.zip">zip</a> |

-                                <a href="http://archive.apache.org/dist/axis/axis2/java/core/1.6.0/axis2-1.6.0-war.zip.md5">MD5</a> |

-                                <a href="http://archive.apache.org/dist/axis/axis2/java/core/1.6.0/axis2-1.6.0-war.zip.asc">PGP</a>

-                                <br/>

-                                Documents Distribution

-                                <a href="http://archive.apache.org/dist/axis/axis2/java/core/1.6.0/axis2-1.6.0-docs.zip">zip</a> |

-                                <a href="http://archive.apache.org/dist/axis/axis2/java/core/1.6.0/axis2-1.6.0-docs.zip.md5">MD5</a> |

-                                <a href="http://archive.apache.org/dist/axis/axis2/java/core/1.6.0/axis2-1.6.0-docs.zip.asc">PGP</a>

-                            </td>

-                        </tr>

-                    </tbody>

-                </table>

-            </subsection>

-            <subsection name="1.5.x releases">

-                <p>The 1.5 branch is still maintained, but releases are only provided to fix critical bugs, regressions

-                and security issues. These versions should only be used by projects that cannot upgrade to 1.6.x:</p>

-                <table>

-                    <tbody>

-                        <tr>

-                            <th>Version</th>

-                            <th>Date</th>

-                            <th>Description</th>

-                            <th>Distribution</th>

-                        </tr>

-                        <tr>

-                            <td><a name="1_5_6"/><strong>1.5.6</strong></td>

-                            <td>30 - Aug - 2011</td>

-                            <td>1.5.6 Release (Mirrored)</td>

-                            <td>

-                                Binary Distribution

-                                <a href="[preferred]/axis/axis2/java/core/1.5.6/axis2-1.5.6-bin.zip">zip</a> |

-                                <a href="http://www.apache.org/dist/axis/axis2/java/core/1.5.6/axis2-1.5.6-bin.zip.md5">MD5</a> |

-                                <a href="http://www.apache.org/dist/axis/axis2/java/core/1.5.6/axis2-1.5.6-bin.zip.asc">PGP</a>

-                                <br/>

-                                Source Distribution

-                                <a href="[preferred]/axis/axis2/java/core/1.5.6/axis2-1.5.6-src.zip">zip</a> |

-                                <a href="http://www.apache.org/dist/axis/axis2/java/core/1.5.6/axis2-1.5.6-src.zip.md5">MD5</a> |

-                                <a href="http://www.apache.org/dist/axis/axis2/java/core/1.5.6/axis2-1.5.6-src.zip.asc">PGP</a>

-                                <br/>

-                                WAR Distribution

-                                <a href="[preferred]/axis/axis2/java/core/1.5.6/axis2-1.5.6-war.zip">zip</a> |

-                                <a href="http://www.apache.org/dist/axis/axis2/java/core/1.5.6/axis2-1.5.6-war.zip.md5">MD5</a> |

-                                <a href="http://www.apache.org/dist/axis/axis2/java/core/1.5.6/axis2-1.5.6-war.zip.asc">PGP</a>

-                                <br/>

-                                Documents Distribution

-                                <a href="[preferred]/axis/axis2/java/core/1.5.6/axis2-1.5.6-docs.zip">zip</a> |

-                                <a href="http://www.apache.org/dist/axis/axis2/java/core/1.5.6/axis2-1.5.6-docs.zip.md5">MD5</a> |

-                                <a href="http://www.apache.org/dist/axis/axis2/java/core/1.5.6/axis2-1.5.6-docs.zip.asc">PGP</a>

-                            </td>

-                        </tr>

-                        <tr>

-                            <td><a name="1_5_5"/><strong>1.5.5</strong></td>

-                            <td>29 - May - 2011</td>

-                            <td>1.5.5 Release (Archived)</td>

-                            <td>

-                                Binary Distribution

-                                <a href="http://archive.apache.org/dist/axis/axis2/java/core/1.5.5/axis2-1.5.5-bin.zip">zip</a> |

-                                <a href="http://archive.apache.org/dist/axis/axis2/java/core/1.5.5/axis2-1.5.5-bin.zip.md5">MD5</a> |

-                                <a href="http://archive.apache.org/dist/axis/axis2/java/core/1.5.5/axis2-1.5.5-bin.zip.asc">PGP</a>

-                                <br/>

-                                Source Distribution

-                                <a href="http://archive.apache.org/dist/axis/axis2/java/core/1.5.5/axis2-1.5.5-src.zip">zip</a> |

-                                <a href="http://archive.apache.org/dist/axis/axis2/java/core/1.5.5/axis2-1.5.5-src.zip.md5">MD5</a> |

-                                <a href="http://archive.apache.org/dist/axis/axis2/java/core/1.5.5/axis2-1.5.5-src.zip.asc">PGP</a>

-                                <br/>

-                                WAR Distribution

-                                <a href="http://archive.apache.org/dist/axis/axis2/java/core/1.5.5/axis2-1.5.5-war.zip">zip</a> |

-                                <a href="http://archive.apache.org/dist/axis/axis2/java/core/1.5.5/axis2-1.5.5-war.zip.md5">MD5</a> |

-                                <a href="http://archive.apache.org/dist/axis/axis2/java/core/1.5.5/axis2-1.5.5-war.zip.asc">PGP</a>

-                                <br/>

-                                Documents Distribution

-                                <a href="http://archive.apache.org/dist/axis/axis2/java/core/1.5.5/axis2-1.5.5-docs.zip">zip</a> |

-                                <a href="http://archive.apache.org/dist/axis/axis2/java/core/1.5.5/axis2-1.5.5-docs.zip.md5">MD5</a> |

-                                <a href="http://archive.apache.org/dist/axis/axis2/java/core/1.5.5/axis2-1.5.5-docs.zip.asc">PGP</a>

-                            </td>

-                        </tr>

-                        <tr>

-                            <td><a name="1_5_4"/><strong>1.5.4</strong></td>

-                            <td>19 - Dec - 2010</td>

-                            <td>1.5.4 Release (Archived)</td>

-                            <td>

-                                Binary Distribution

-                                <a href="http://archive.apache.org/dist/axis/axis2/java/core/1.5.4/axis2-1.5.4-bin.zip">zip</a> |

-                                <a href="http://archive.apache.org/dist/axis/axis2/java/core/1.5.4/axis2-1.5.4-bin.zip.md5">MD5</a> |

-                                <a href="http://archive.apache.org/dist/axis/axis2/java/core/1.5.4/axis2-1.5.4-bin.zip.asc">PGP</a>

-                                <br/>

-                                Source Distribution

-                                <a href="http://archive.apache.org/dist/axis/axis2/java/core/1.5.4/axis2-1.5.4-src.zip">zip</a> |

-                                <a href="http://archive.apache.org/dist/axis/axis2/java/core/1.5.4/axis2-1.5.4-src.zip.md5">MD5</a> |

-                                <a href="http://archive.apache.org/dist/axis/axis2/java/core/1.5.4/axis2-1.5.4-src.zip.asc">PGP</a>

-                                <br/>

-                                WAR Distribution

-                                <a href="http://archive.apache.org/dist/axis/axis2/java/core/1.5.4/axis2-1.5.4-war.zip">zip</a> |

-                                <a href="http://archive.apache.org/dist/axis/axis2/java/core/1.5.4/axis2-1.5.4-war.zip.md5">MD5</a> |

-                                <a href="http://archive.apache.org/dist/axis/axis2/java/core/1.5.4/axis2-1.5.4-war.zip.asc">PGP</a>

-                                <br/>

-                                Documents Distribution

-                                <a href="http://archive.apache.org/dist/axis/axis2/java/core/1.5.4/axis2-1.5.4-docs.zip">zip</a> |

-                                <a href="http://archive.apache.org/dist/axis/axis2/java/core/1.5.4/axis2-1.5.4-docs.zip.md5">MD5</a> |

-                                <a href="http://archive.apache.org/dist/axis/axis2/java/core/1.5.4/axis2-1.5.4-docs.zip.asc">PGP</a>

-                            </td>

-                        </tr>

-                        <tr>

-                            <td><a name="1_5_3"/><strong>1.5.3</strong></td>

-                            <td>12 - Nov - 2010</td>

-                            <td>1.5.3 Release (Archived)</td>

-                            <td>

-                                Binary Distribution

-                                <a href="http://archive.apache.org/dist/axis/axis2/java/core/1.5.3/axis2-1.5.3-bin.zip">zip</a> |

-                                <a href="http://archive.apache.org/dist/axis/axis2/java/core/1.5.3/axis2-1.5.3-bin.zip.md5">MD5</a> |

-                                <a href="http://archive.apache.org/dist/axis/axis2/java/core/1.5.3/axis2-1.5.3-bin.zip.asc">PGP</a>

-                                <br/>

-                                Source Distribution

-                                <a href="http://archive.apache.org/dist/axis/axis2/java/core/1.5.3/axis2-1.5.3-src.zip">zip</a> |

-                                <a href="http://archive.apache.org/dist/axis/axis2/java/core/1.5.3/axis2-1.5.3-src.zip.md5">MD5</a> |

-                                <a href="http://archive.apache.org/dist/axis/axis2/java/core/1.5.3/axis2-1.5.3-src.zip.asc">PGP</a>

-                                <br/>

-                                WAR Distribution

-                                <a href="http://archive.apache.org/dist/axis/axis2/java/core/1.5.3/axis2-1.5.3-war.zip">zip</a> |

-                                <a href="http://archive.apache.org/dist/axis/axis2/java/core/1.5.3/axis2-1.5.3-war.zip.md5">MD5</a> |

-                                <a href="http://archive.apache.org/dist/axis/axis2/java/core/1.5.3/axis2-1.5.3-war.zip.asc">PGP</a>

-                                <br/>

-                                Documents Distribution

-                                <a href="http://archive.apache.org/dist/axis/axis2/java/core/1.5.3/axis2-1.5.3-docs.zip">zip</a> |

-                                <a href="http://archive.apache.org/dist/axis/axis2/java/core/1.5.3/axis2-1.5.3-docs.zip.md5">MD5</a> |

-                                <a href="http://archive.apache.org/dist/axis/axis2/java/core/1.5.3/axis2-1.5.3-docs.zip.asc">PGP</a>

-                            </td>

-                        </tr>

-                        <tr>

-                            <td><a name="1_5_2"/><strong>1.5.2</strong></td>

-                            <td>06 - Sep - 2010</td>

-                            <td>1.5.2 Release (Archived)</td>

-                            <td>

-                                Binary Distribution

-                                <a href="http://archive.apache.org/dist/axis/axis2/java/core/1.5.2/axis2-1.5.2-bin.zip">zip</a> |

-                                <a href="http://archive.apache.org/dist/axis/axis2/java/core/1.5.2/axis2-1.5.2-bin.zip.md5">MD5</a> |

-                                <a href="http://archive.apache.org/dist/axis/axis2/java/core/1.5.2/axis2-1.5.2-bin.zip.asc">PGP</a>

-                                <br/>

-                                Source Distribution

-                                <a href="http://archive.apache.org/dist/axis/axis2/java/core/1.5.2/axis2-1.5.2-src.zip">zip</a> |

-                                <a href="http://archive.apache.org/dist/axis/axis2/java/core/1.5.2/axis2-1.5.2-src.zip.md5">MD5</a> |

-                                <a href="http://archive.apache.org/dist/axis/axis2/java/core/1.5.2/axis2-1.5.2-src.zip.asc">PGP</a>

-                                <br/>

-                                WAR Distribution

-                                <a href="http://archive.apache.org/dist/axis/axis2/java/core/1.5.2/axis2-1.5.2-war.zip">zip</a> |

-                                <a href="http://archive.apache.org/dist/axis/axis2/java/core/1.5.2/axis2-1.5.2-war.zip.md5">MD5</a> |

-                                <a href="http://archive.apache.org/dist/axis/axis2/java/core/1.5.2/axis2-1.5.2-war.zip.asc">PGP</a>

-                                <br/>

-                                (The Documents Distribution is not available for this release)

-                            </td>

-                        </tr>

-                        <tr>

-                            <td><a name="1_5_1"/><strong>1.5.1</strong></td>

-                            <td>23 - Oct - 2009</td>

-                            <td>1.5.1 Release (Archived)</td>

-                            <td>

-                                Binary Distribution

-                                <a href="http://archive.apache.org/dist/ws/axis2/1_5_1/axis2-1.5.1-bin.zip">zip</a> |

-                                <a href="http://archive.apache.org/dist/ws/axis2/1_5_1/axis2-1.5.1-bin.zip.md5">MD5</a> |

-                                <a href="http://archive.apache.org/dist/ws/axis2/1_5_1/axis2-1.5.1-bin.zip.asc">PGP</a>

-                                <br/>

-                                Source Distribution

-                                <a href="http://archive.apache.org/dist/ws/axis2/1_5_1/axis2-1.5.1-src.zip">zip</a> |

-                                <a href="http://archive.apache.org/dist/ws/axis2/1_5_1/axis2-1.5.1-src.zip.md5">MD5</a> |

-                                <a href="http://archive.apache.org/dist/ws/axis2/1_5_1/axis2-1.5.1-src.zip.asc">PGP</a>

-                                <br/>

-                                WAR Distribution

-                                <a href="http://archive.apache.org/dist/ws/axis2/1_5_1/axis2-1.5.1-war.zip">zip</a> |

-                                <a href="http://archive.apache.org/dist/ws/axis2/1_5_1/axis2-1.5.1-war.zip.md5">MD5</a> |

-                                <a href="http://archive.apache.org/dist/ws/axis2/1_5_1/axis2-1.5.1-war.zip.asc">PGP</a>

-                                <br/>

-                                Documents Distribution

-                                <a href="http://archive.apache.org/dist/ws/axis2/1_5_1/axis2-1.5.1-docs.zip">zip</a> |

-                                <a href="http://archive.apache.org/dist/ws/axis2/1_5_1/axis2-1.5.1-docs.zip.md5">MD5</a> |

-                                <a href="http://archive.apache.org/dist/ws/axis2/1_5_1/axis2-1.5.1-docs.zip.asc">PGP</a>

-                            </td>

-                        </tr>

-                        <tr>

-                            <td><a name="1_5"/><strong>1.5</strong></td>

-                            <td>09 - Jun - 2009</td>

-                            <td>1.5 Release (Archived)</td>

-                            <td>

-                                Binary Distribution

-                                <a href="http://archive.apache.org/dist/ws/axis2/1_5/axis2-1.5-bin.zip">zip</a> |

-                                <a href="http://archive.apache.org/dist/ws/axis2/1_5/axis2-1.5-bin.zip.md5">MD5</a> |

-                                <a href="http://archive.apache.org/dist/ws/axis2/1_5/axis2-1.5-bin.zip.asc">PGP</a>

-                                <br/>

-                                Source Distribution

-                                <a href="http://archive.apache.org/dist/ws/axis2/1_5/axis2-1.5-src.zip">zip</a> |

-                                <a href="http://archive.apache.org/dist/ws/axis2/1_5/axis2-1.5-src.zip.md5">MD5</a> |

-                                <a href="http://archive.apache.org/dist/ws/axis2/1_5/axis2-1.5-src.zip.asc">PGP</a>

-                                <br/>

-                                WAR Distribution

-                                <a href="http://archive.apache.org/dist/ws/axis2/1_5/axis2-1.5-war.zip">zip</a> |

-                                <a href="http://archive.apache.org/dist/ws/axis2/1_5/axis2-1.5-war.zip.md5">MD5</a> |

-                                <a href="http://archive.apache.org/dist/ws/axis2/1_5/axis2-1.5-war.zip.asc">PGP</a>

-                                <br/>

-                                Documents Distribution

-                                <a href="http://archive.apache.org/dist/ws/axis2/1_5/axis2-1.5-docs.zip">zip</a> |

-                                <a href="http://archive.apache.org/dist/ws/axis2/1_5/axis2-1.5-docs.zip.md5">MD5</a> |

-                                <a href="http://archive.apache.org/dist/ws/axis2/1_5/axis2-1.5-docs.zip.asc">PGP</a>

-                            </td>

-                        </tr>

-                    </tbody>

-                </table>

-            </subsection>

-            <subsection name="Old releases">

-                <p>The following releases are still available for download from the Apache archive site, but are no

-                longer maintained:</p>

-                <table>

-                    <tbody>

-                        <tr>

-                            <th>Version</th>

-                            <th>Date</th>

-                            <th>Description</th>

-                            <th>Distribution</th>

-                        </tr>

-                        <tr>

-                            <td><a name="1_4_1"/><strong>1.4.1</strong></td>

-                            <td>24 - Aug - 2008</td>

-                            <td>1.4.1 Release (Archived)</td>

-                            <td>

-                                Binary Distribution

-                                <a href="http://archive.apache.org/dist/ws/axis2/1_4_1/axis2-1.4.1-bin.zip">zip</a> |

-                                <a href="http://archive.apache.org/dist/ws/axis2/1_4_1/axis2-1.4.1-bin.zip.md5">MD5</a> |

-                                <a href="http://archive.apache.org/dist/ws/axis2/1_4_1/axis2-1.4.1-bin.zip.asc">PGP</a>

-                                <br/>

-                                Source Distribution

-                                <a href="http://archive.apache.org/dist/ws/axis2/1_4_1/axis2-1.4.1-src.zip">zip</a> |

-                                <a href="http://archive.apache.org/dist/ws/axis2/1_4_1/axis2-1.4.1-src.zip.md5">MD5</a> |

-                                <a href="http://archive.apache.org/dist/ws/axis2/1_4_1/axis2-1.4.1-src.zip.asc">PGP</a>

-                                <br/>

-                                WAR Distribution

-                                <a href="http://archive.apache.org/dist/ws/axis2/1_4_1/axis2-1.4.1-war.zip">zip</a> |

-                                <a href="http://archive.apache.org/dist/ws/axis2/1_4_1/axis2-1.4.1-war.zip.md5">MD5</a> |

-                                <a href="http://archive.apache.org/dist/ws/axis2/1_4_1/axis2-1.4.1-war.zip.asc">PGP</a>

-                                <br/>

-                                Documents Distribution

-                                <a href="http://archive.apache.org/dist/ws/axis2/1_4_1/axis2-1.4.1-docs.zip">zip</a> |

-                                <a href="http://archive.apache.org/dist/ws/axis2/1_4_1/axis2-1.4.1-docs.zip.md5">MD5</a> |

-                                <a href="http://archive.apache.org/dist/ws/axis2/1_4_1/axis2-1.4.1-docs.zip.asc">PGP</a>

-                            </td>

-                        </tr>

-                        <tr>

-                            <td><a name="1_4"/><strong>1.4</strong></td>

-                            <td>05 - Feb - 2008</td>

-                            <td>1.4 Release (Archived)</td>

-                            <td>

-                                Binary Distribution

-                                <a href="http://archive.apache.org/dist/ws/axis2/1_4/axis2-1.4.zip">zip</a> |

-                                <a href="http://archive.apache.org/dist/ws/axis2/1_4/axis2-1.4.zip.md5">MD5</a> |

-                                <a href="http://archive.apache.org/dist/ws/axis2/1_4/axis2-1.4.zip.asc">PGP</a>

-                                <br/>

-                                Source Distribution

-                                <a href="http://archive.apache.org/dist/ws/axis2/1_4/axis2-1.4-src.zip">zip</a> |

-                                <a href="http://archive.apache.org/dist/ws/axis2/1_4/axis2-1.4-src.zip.md5">MD5</a> |

-                                <a href="http://archive.apache.org/dist/ws/axis2/1_4/axis2-1.4-src.zip.asc">PGP</a>

-                                <br/>

-                                WAR Distribution

-                                <a href="http://archive.apache.org/dist/ws/axis2/1_4/axis2.war">zip</a> |

-                                <a href="http://archive.apache.org/dist/ws/axis2/1_4/axis2.war.md5">MD5</a> |

-                                <a href="http://archive.apache.org/dist/ws/axis2/1_4/axis2.war.asc">PGP</a>

-                                <br/>

-                                Documents Distribution

-                                <a href="http://archive.apache.org/dist/ws/axis2/1_4/axis2-1.4-docs.zip">zip</a> |

-                                <a href="http://archive.apache.org/dist/ws/axis2/1_4/axis2-1.4-docs.zip.md5">MD5</a> |

-                                <a href="http://archive.apache.org/dist/ws/axis2/1_4/axis2-1.4-docs.zip.asc">PGP</a>

-                            </td>

-                        </tr>

-                        <tr>

-                            <td><a name="1_3"/><strong>1.3</strong></td>

-                            <td>06 - Jul - 2007</td>

-                            <td>1.3 Release (Archived)</td>

-                            <td>

-                                Binary Distribution

-                                <a href="http://archive.apache.org/dist/ws/axis2/1_3/axis2-1.3.zip">zip</a> |

-                                <a href="http://archive.apache.org/dist/ws/axis2/1_3/axis2-1.3.zip.md5">MD5</a> |

-                                <a href="http://archive.apache.org/dist/ws/axis2/1_3/axis2-1.3.zip.asc">PGP</a>

-                                <br/>

-                                Source Distribution

-                                <a href="http://archive.apache.org/dist/ws/axis2/1_3/axis2-1.3-src.zip">zip</a> |

-                                <a href="http://archive.apache.org/dist/ws/axis2/1_3/axis2-1.3-src.zip.md5">MD5</a> |

-                                <a href="http://archive.apache.org/dist/ws/axis2/1_3/axis2-1.3-src.zip.asc">PGP</a>

-                                <br/>

-                                WAR Distribution

-                                <a href="http://archive.apache.org/dist/ws/axis2/1_3/axis2.war">zip</a> |

-                                <a href="http://archive.apache.org/dist/ws/axis2/1_3/axis2.war.md5">MD5</a> |

-                                <a href="http://archive.apache.org/dist/ws/axis2/1_3/axis2.war.asc">PGP</a>

-                                <br/>

-                                Documents Distribution

-                                <a href="http://archive.apache.org/dist/ws/axis2/1_3/axis2-1.3-docs.zip">zip</a> |

-                                <a href="http://archive.apache.org/dist/ws/axis2/1_3/axis2-1.3-docs.zip.md5">MD5</a> |

-                                <a href="http://archive.apache.org/dist/ws/axis2/1_3/axis2-1.3-docs.zip.asc">PGP</a>

-                            </td>

-                        </tr>

-                        <tr>

-                            <td><a name="1_2"/><strong>1.2</strong></td>

-                            <td>27 - Apr - 2007</td>

-                            <td>1.2 Release (Archived)</td>

-                            <td>

-                                Binary Distribution

-                                <a href="http://archive.apache.org/dist/ws/axis2/1_2/axis2-1.2.zip">zip</a> |

-                                <a href="http://archive.apache.org/dist/ws/axis2/1_2/axis2-1.2.zip.md5">MD5</a> |

-                                <a href="http://archive.apache.org/dist/ws/axis2/1_2/axis2-1.2.zip.asc">PGP</a>

-                                <br/>

-                                Source Distribution

-                                <a href="http://archive.apache.org/dist/ws/axis2/1_2/axis2-1.2-src.zip">zip</a> |

-                                <a href="http://archive.apache.org/dist/ws/axis2/1_2/axis2-1.2-src.zip.md5">MD5</a> |

-                                <a href="http://archive.apache.org/dist/ws/axis2/1_2/axis2-1.2-src.zip.asc">PGP</a>

-                                <br/>

-                                WAR Distribution

-                                <a href="http://archive.apache.org/dist/ws/axis2/1_2/axis2.war">zip</a> |

-                                <a href="http://archive.apache.org/dist/ws/axis2/1_2/axis2.war.md5">MD5</a> |

-                                <a href="http://archive.apache.org/dist/ws/axis2/1_2/axis2.war.asc">PGP</a>

-                                <br/>

-                                Documents Distribution

-                                <a href="http://archive.apache.org/dist/ws/axis2/1_2/axis2-1.2-docs.zip">zip</a> |

-                                <a href="http://archive.apache.org/dist/ws/axis2/1_2/axis2-1.2-docs.zip.md5">MD5</a> |

-                                <a href="http://archive.apache.org/dist/ws/axis2/1_2/axis2-1.2-docs.zip.asc">PGP</a>

-                            </td>

-                        </tr>

-                        <tr>

-                            <td><a name="1_1_1"/><strong>1.1.1</strong></td>

-                            <td>09 - Jan - 2007</td>

-                            <td>1.1.1 Release (Archived)</td>

-                            <td>

-                                Binary Distribution

-                                <a href="http://archive.apache.org/dist/ws/axis2/1_1_1/axis2-1.1.1.zip">zip</a> |

-                                <a href="http://archive.apache.org/dist/ws/axis2/1_1_1/axis2-1.1.1.zip.md5">MD5</a> |

-                                <a href="http://archive.apache.org/dist/ws/axis2/1_1_1/axis2-1.1.1.zip.asc">PGP</a>

-                                <br/>

-                                Source Distribution

-                                <a href="http://archive.apache.org/dist/ws/axis2/1_1_1/axis2-1.1.1-src.zip">zip</a> |

-                                <a href="http://archive.apache.org/dist/ws/axis2/1_1_1/axis2-1.1.1-src.zip.md5">MD5</a> |

-                                <a href="http://archive.apache.org/dist/ws/axis2/1_1_1/axis2-1.1.1-src.zip.asc">PGP</a>

-                                <br/>

-                                WAR Distribution

-                                <a href="http://archive.apache.org/dist/ws/axis2/1_1_1/axis2.war">zip</a> |

-                                <a href="http://archive.apache.org/dist/ws/axis2/1_1_1/axis2.war.md5">MD5</a> |

-                                <a href="http://archive.apache.org/dist/ws/axis2/1_1_1/axis2.war.asc">PGP</a>

-                                <br/>

-                                Documents Distribution

-                                <a href="http://archive.apache.org/dist/ws/axis2/1_1_1/axis2-1.1.1-docs.zip">zip</a> |

-                                <a href="http://archive.apache.org/dist/ws/axis2/1_1_1/axis2-1.1.1-docs.zip.md5">MD5</a> |

-                                <a href="http://archive.apache.org/dist/ws/axis2/1_1_1/axis2-1.1.1-docs.zip.asc">PGP</a>

-                            </td>

-                        </tr>

-                        <tr>

-                            <td><a name="1_1"/><strong>1.1</strong></td>

-                            <td>13 - Nov - 2006</td>

-                            <td>1.1 Release (Archived)</td>

-                            <td>

-                                Binary Distribution

-                                <a href="http://archive.apache.org/dist/ws/axis2/1_1/axis2-1.1.zip">zip</a> |

-                                <a href="http://archive.apache.org/dist/ws/axis2/1_1/axis2-1.1.zip.md5">MD5</a> |

-                                <a href="http://archive.apache.org/dist/ws/axis2/1_1/axis2-1.1.zip.asc">PGP</a>

-                                <br/>

-                                Source Distribution

-                                <a href="http://archive.apache.org/dist/ws/axis2/1_1/axis2-1.1-src.zip">zip</a> |

-                                <a href="http://archive.apache.org/dist/ws/axis2/1_1/axis2-1.1-src.zip.md5">MD5</a> |

-                                <a href="http://archive.apache.org/dist/ws/axis2/1_1/axis2-1.1-src.zip.asc">PGP</a>

-                                <br/>

-                                WAR Distribution

-                                <a href="http://archive.apache.org/dist/ws/axis2/1_1/axis2.war">zip</a> |

-                                <a href="http://archive.apache.org/dist/ws/axis2/1_1/axis2.war.md5">MD5</a> |

-                                <a href="http://archive.apache.org/dist/ws/axis2/1_1/axis2.war.asc">PGP</a>

-                                <br/>

-                                Documents Distribution

-                                <a href="http://archive.apache.org/dist/ws/axis2/1_1/axis2-1.1-docs.zip">zip</a> |

-                                <a href="http://archive.apache.org/dist/ws/axis2/1_1/axis2-1.1-docs.zip.md5">MD5</a> |

-                                <a href="http://archive.apache.org/dist/ws/axis2/1_1/axis2-1.1-docs.zip.asc">PGP</a>

-                            </td>

-                        </tr>

-                        <tr>

-                            <td><a name="1_0"/><strong>1.0</strong></td>

-                            <td>04 - May - 2006</td>

-                            <td>1.0 Release (Archived)</td>

-                            <td>

-                                Binary Distribution

-                                <a href="http://archive.apache.org/dist/ws/axis2/1_0/axis2-std-1.0-bin.zip">zip</a> |

-                                <a href="http://archive.apache.org/dist/ws/axis2/1_0/axis2-std-1.0-bin.zip.md5">MD5</a> |

-                                <a href="http://archive.apache.org/dist/ws/axis2/1_0/axis2-std-1.0-bin.zip.asc">PGP</a>

-                                <br/>

-                                Source Distribution

-                                <a href="http://archive.apache.org/dist/ws/axis2/1_0/axis2-std-1.0-src.zip">zip</a> |

-                                <a href="http://archive.apache.org/dist/ws/axis2/1_0/axis2-std-1.0-src.zip.md5">MD5</a> |

-                                <a href="http://archive.apache.org/dist/ws/axis2/1_0/axis2-std-1.0-src.zip.asc">PGP</a>

-                                <br/>

-                                WAR Distribution

-                                <a href="http://archive.apache.org/dist/ws/axis2/1_0/axis2.war">zip</a> |

-                                <a href="http://archive.apache.org/dist/ws/axis2/1_0/axis2.war.md5">MD5</a> |

-                                <a href="http://archive.apache.org/dist/ws/axis2/1_0/axis2.war.asc">PGP</a>

-                                <br/>

-                                Documents Distribution

-                                <a href="http://archive.apache.org/dist/ws/axis2/1_0/axis2-1.0-docs.zip">zip</a> |

-                                <a href="http://archive.apache.org/dist/ws/axis2/1_0/axis2-1.0-docs.zip.md5">MD5</a> |

-                                <a href="http://archive.apache.org/dist/ws/axis2/1_0/axis2-1.0-docs.zip.asc">PGP</a>

-                            </td>

-                        </tr>

-                        <tr>

-                            <td><a name="0_95"/><strong>0.95</strong></td>

-                            <td>23 - Mar - 2006</td>

-                            <td>0.95 Release (Archived)</td>

-                            <td>

-                                Binary Distribution

-                                <a href="http://archive.apache.org/dist/ws/axis2/0_95/axis2-std-0.95-bin.zip">zip</a> |

-                                <a href="http://archive.apache.org/dist/ws/axis2/0_95/axis2-std-0.95-bin.zip.md5">MD5</a> |

-                                <a href="http://archive.apache.org/dist/ws/axis2/0_95/axis2-std-0.95-bin.zip.asc">PGP</a>

-                                <br/>

-                                Source Distribution

-                                <a href="http://archive.apache.org/dist/ws/axis2/0_95/axis2-std-0.95-src.zip">zip</a> |

-                                <a href="http://archive.apache.org/dist/ws/axis2/0_95/axis2-std-0.95-src.zip.md5">MD5</a> |

-                                <a href="http://archive.apache.org/dist/ws/axis2/0_95/axis2-std-0.95-src.zip.asc">PGP</a>

-                                <br/>

-                                WAR Distribution

-                                <a href="http://archive.apache.org/dist/ws/axis2/0_95/axis2.war">zip</a> |

-                                <a href="http://archive.apache.org/dist/ws/axis2/0_95/axis2.war.md5">MD5</a> |

-                                <a href="http://archive.apache.org/dist/ws/axis2/0_95/axis2.war.asc">PGP</a>

-                                <br/>

-                                Documents Distribution

-                                <a href="http://archive.apache.org/dist/ws/axis2/0_95/axis2-0.95-docs.zip">zip</a> |

-                                <a href="http://archive.apache.org/dist/ws/axis2/0_95/axis2-0.95-docs.zip.md5">MD5</a> |

-                                <a href="http://archive.apache.org/dist/ws/axis2/0_95/axis2-0.95-docs.zip.asc">PGP</a>

-                            </td>

-                        </tr>

-                        <tr>

-                            <td><a name="0_94"/><strong>0.94</strong></td>

-                            <td>11 - Jan - 2006</td>

-                            <td>0.94 Release (Archived)</td>

-                            <td>

-                                Binary Distribution

-                                <a href="http://archive.apache.org/dist/ws/axis2/0_94/axis2-std-0.94-bin.zip">zip</a> |

-                                <a href="http://archive.apache.org/dist/ws/axis2/0_94/axis2-std-0.94-bin.zip.md5">MD5</a> |

-                                <a href="http://archive.apache.org/dist/ws/axis2/0_94/axis2-std-0.94-bin.zip.asc">PGP</a>

-                                <br/>

-                                Source Distribution

-                                <a href="http://archive.apache.org/dist/ws/axis2/0_94/axis2-std-0.94-src.zip">zip</a> |

-                                <a href="http://archive.apache.org/dist/ws/axis2/0_94/axis2-std-0.94-src.zip.md5">MD5</a> |

-                                <a href="http://archive.apache.org/dist/ws/axis2/0_94/axis2-std-0.94-src.zip.asc">PGP</a>

-                                <br/>

-                                WAR Distribution

-                                <a href="http://archive.apache.org/dist/ws/axis2/0_94/axis2.war">zip</a> |

-                                <a href="http://archive.apache.org/dist/ws/axis2/0_94/axis2.war.md5">MD5</a> |

-                                <a href="http://archive.apache.org/dist/ws/axis2/0_94/axis2.war.asc">PGP</a>

-                                <br/>

-                                Documents Distribution

-                                <a href="http://archive.apache.org/dist/ws/axis2/0_94/axis2-0.94-docs.zip">zip</a> |

-                                <a href="http://archive.apache.org/dist/ws/axis2/0_94/axis2-0.94-docs.zip.md5">MD5</a> |

-                                <a href="http://archive.apache.org/dist/ws/axis2/0_94/axis2-0.94-docs.zip.asc">PGP</a>

-                            </td>

-                        </tr>

-                        <tr>

-                            <td><a name="0_93"/><strong>0.93</strong></td>

-                            <td>12 - Feb - 2005</td>

-                            <td>0.93 Release (Archived)</td>

-                            <td>

-                                Binary Distribution

-                                <a href="http://archive.apache.org/dist/ws/axis2/0_93/axis2-0.93-bin.zip">zip</a> |

-                                <a href="http://archive.apache.org/dist/ws/axis2/0_93/axis2-0.93-bin.zip.md5">MD5</a> |

-                                <a href="http://archive.apache.org/dist/ws/axis2/0_93/axis2-0.93-bin.zip.asc">PGP</a>

-                                <br/>

-                                Source Distribution

-                                <a href="http://archive.apache.org/dist/ws/axis2/0_93/axis2-0.93-src.zip">zip</a> |

-                                <a href="http://archive.apache.org/dist/ws/axis2/0_93/axis2-0.93-src.zip.md5">MD5</a> |

-                                <a href="http://archive.apache.org/dist/ws/axis2/0_93/axis2-0.93-src.zip.asc">PGP</a>

-                                <br/>

-                                WAR Distribution

-                                <a href="http://archive.apache.org/dist/ws/axis2/0_93/axis2.war">zip</a> |

-                                <a href="http://archive.apache.org/dist/ws/axis2/0_93/axis2.war.md5">MD5</a> |

-                                <a href="http://archive.apache.org/dist/ws/axis2/0_93/axis2.war.asc">PGP</a>

-                            </td>

-                        </tr>

-                        <tr>

-                            <td><a name="0_92"/><strong>0.92</strong></td>

-                            <td>26 - Aug - 2005</td>

-                            <td>0.92 Release (Archived)</td>

-                            <td>

-                                Binary Distribution

-                                <a href="http://archive.apache.org/dist/ws/axis2/0_92/axis2-0.92-bin.zip">zip</a> |

-                                <a href="http://archive.apache.org/dist/ws/axis2/0_92/axis2-0.92-bin.zip.md5">MD5</a> |

-                                <a href="http://archive.apache.org/dist/ws/axis2/0_92/axis2-0.92-bin.zip.asc">PGP</a>

-                                <br/>

-                                Source Distribution

-                                <a href="http://archive.apache.org/dist/ws/axis2/0_92/axis2-0.92-src.zip">zip</a> |

-                                <a href="http://archive.apache.org/dist/ws/axis2/0_92/axis2-0.92-src.zip.md5">MD5</a> |

-                                <a href="http://archive.apache.org/dist/ws/axis2/0_92/axis2-0.92-src.zip.asc">PGP</a>

-                            </td>

-                        </tr>

-                        <tr>

-                            <td><a name="0_91"/><strong>0.91</strong></td>

-                            <td>16 - Aug - 2005</td>

-                            <td>0.91 Release (Archived)</td>

-                            <td>

-                                Binary Distribution

-                                <a href="http://archive.apache.org/dist/ws/axis2/0_91/axis2-0.91-bin.zip">zip</a> |

-                                <a href="http://archive.apache.org/dist/ws/axis2/0_91/axis2-0.91-bin.zip.md5">MD5</a> |

-                                <a href="http://archive.apache.org/dist/ws/axis2/0_91/axis2-0.91-bin.zip.asc">PGP</a>

-                                <br/>

-                                Source Distribution

-                                <a href="http://archive.apache.org/dist/ws/axis2/0_91/axis2-0.91-src.zip">zip</a> |

-                                <a href="http://archive.apache.org/dist/ws/axis2/0_91/axis2-0.91-src.zip.md5">MD5</a> |

-                                <a href="http://archive.apache.org/dist/ws/axis2/0_91/axis2-0.91-src.zip.asc">PGP</a>

-                            </td>

-                        </tr>

-                        <tr>

-                            <td><a name="0_9"/><strong>0.9</strong></td>

-                            <td>05 - Jul - 2005</td>

-                            <td>0.9 Release (Archived)</td>

-                            <td>

-                                Binary Distribution

-                                <a href="http://archive.apache.org/dist/ws/axis2/0_9/axis2-0.9-bin.zip">zip</a> |

-                                <a href="http://archive.apache.org/dist/ws/axis2/0_9/axis2-0.9-bin.zip.md5">MD5</a> |

-                                <a href="http://archive.apache.org/dist/ws/axis2/0_9/axis2-0.9-bin.zip.asc">PGP</a>

-                                <br/>

-                                Source Distribution

-                                <a href="http://archive.apache.org/dist/ws/axis2/0_9/axis2-0.9-src.zip">zip</a> |

-                                <a href="http://archive.apache.org/dist/ws/axis2/0_9/axis2-0.9-src.zip.md5">MD5</a> |

-                                <a href="http://archive.apache.org/dist/ws/axis2/0_9/axis2-0.9-src.zip.asc">PGP</a>

-                            </td>

-                        </tr>

-                    </tbody>

-                </table>

-            </subsection>

-            <p>Individual JAR files may also be downloaded from the central Maven repository:

-            <a href="http://repo1.maven.org/maven2/org/apache/axis2/">http://repo1.maven.org/maven2/org/apache/axis2/</a></p>

-            <p>[if-any logo] <a href="[link]"><img align="right" src="[logo]"

-            border="0" /></a>[end] The currently selected mirror is

-            <b>[preferred]</b>. If you encounter a problem with this mirror,

-            please select another mirror. If all mirrors are failing, there are

-            <i>backup</i> mirrors (at the end of the mirrors list) that should

-            be available.</p>

-            <form action="[location]" method="get" id="SelectMirror" name="SelectMirror">

-            Other mirrors: <select name="Preferred">

-            [if-any http]

-              [for http]<option value="[http]">[http]</option>[end]

-            [end]  

-            [if-any ftp]

-              [for ftp]<option value="[ftp]">[ftp]</option>[end]

-            [end]

-            [if-any backup]

-              [for backup]<option value="[backup]">[backup] (backup)</option>[end]

-            [end]

-            </select><input type="submit" value="Change"/></form>

-            <p>You may also consult the <a class="externalLink" href="http://www.apache.org/mirrors/">complete list of mirrors</a></p>

-            <p><strong>Note:</strong> when downloading from a mirror please

-            check the <a href=

-            "http://www.apache.org/dev/release-signing#md5">md5sum</a> and

-            verify the <a href=

-            "http://www.apache.org/dev/release-signing#openpgp">OpenPGP</a>

-            compatible signature from the main Apache site. These can be

-            downloaded by following the links above. This <a href=

-            "http://www.apache.org/dist/axis/axis2/java/core/KEYS">KEYS</a> file contains

-            the public keys that can be used for verifying signatures. It is

-            recommended that (when possible)a <a href=

-            "http://www.apache.org/dev/release-signing#web-of-trust">Web of

-            trust</a> is used to confirm the identity of these keys.</p>

-        </section>

-        <section name="Nightly builds">

-            <p>Nightly builds can be downloaded from the Apache snapshot repository:

-            <a href="http://repository.apache.org/snapshots/org/apache/axis2/">http://repository.apache.org/snapshots/org/apache/axis2/</a></p>

-        </section>

-    </body>

-</document>

diff --git a/src/site/xdoc/index.xml b/src/site/xdoc/index.xml
index c845b23..0eef1ba 100644
--- a/src/site/xdoc/index.xml
+++ b/src/site/xdoc/index.xml
@@ -35,81 +35,6 @@
 "http://axis.apache.org/axis2/c/"><strong>Apache Axis2/C</strong></a>
 Web site for Axis2/C implementation information.</p>
 <p>Apache Axis2, Axis2, Apache, the Apache feather logo, and the Apache Axis2 project logo are trademarks of The Apache Software Foundation.</p>
-<h3>April 17, 2012 - Apache Axis2/Java 1.6.2 released!</h3>
-<p>Apache Axis2/Java 1.6.2 is a maintenance releases containing fixes for several issues discovered over the six months.
-This version upgrade Axiom to 1.2.13 and Neethi to version 3.0.2. The complete list of fixes can be found <a href="http://s.apache.org/7lT">here</a>.</p>
-<h3>Aug 30, 2011 - Apache Axis2/Java 1.5.6 and 1.6.1 released!</h3>
-<p>1.5.6 and 1.6.1 are maintenance releases containing fixes for several issues discovered over the last months.
-Both versions upgrade Axiom to 1.2.12. Axis2 1.6.1 also upgrades Neethi to version 3.0.1 and contains changes required
-for Geronimo 3.0. The complete list of fixes can be found here:</p>
-<ul>
-<li><a href="http://s.apache.org/axis2-1.5.6">Fix list for 1.5.6</a></li>
-<li><a href="http://s.apache.org/axis2-1.6.1">Fix list for 1.6.1</a></li>
-</ul>
-<p>If possible users should upgrade to Axis2 1.6.1. The Axis2 1.5.6 maintenance release is intended for use in situations where
-upgrading to 1.6.1 is not possible immediately.</p>
-<h3>May 29, 2011 - Apache Axis2/Java Version 1.5.5 Released!</h3>
-<p>1.5.5 is a maintenance release that contains fixes for several issues in the sample projects included with the binary distribution
-as well as a couple of <a href="http://s.apache.org/Q9q">other issues</a>.</p>
-<p>If possible users should upgrade to Axis2 1.6.0 (see below). The Axis2 1.5.5 maintenance release is intended for use in situations where
-upgrading to 1.6.0 is not possible immediately.</p>
-<h3>May 17, 2011 - Apache Axis2/Java Version 1.6.0 Released!</h3>
-<p>1.6.0 is a major release of axis2 with many fixes and improvements to the core and all it's modules</p>
-<p>Refer to the following filter <a href="http://bit.ly/issues-fixed-for-1_6">Issues fixed for the 1.6.0 release</a> to find all the issues fixed for the 1.6.0 release</p>
-<h3>December 19, 2010 - Apache Axis2/Java Version 1.5.4 Released!</h3>
-<p>1.5.4 is a maintenance release that contains fixes for the following issues:</p>
-<ul>
-<li><a href="https://issues.apache.org:443/jira/browse/AXIS2-3784">AXIS2-3784</a>: WSDL port address is not correctly generated for machines having multiple network interfaces</li>
-<li><a href="https://issues.apache.org:443/jira/browse/AXIS2-3793">AXIS2-3793</a>: move image to the correct place</li>
-<li><a href="https://issues.apache.org:443/jira/browse/AXIS2-3851">AXIS2-3851</a>: adb-codegen no longer accepts schemas without targetNamespace</li>
-<li><a href="https://issues.apache.org:443/jira/browse/AXIS2-4261">AXIS2-4261</a>: Enable axis2server.sh to start SimpleAxis2Server in remote debug mode</li>
-<li><a href="https://issues.apache.org:443/jira/browse/AXIS2-4586">AXIS2-4586</a>: JiBX Client Stub not cleaning up HTTP connections after each operation</li>
-<li><a href="https://issues.apache.org:443/jira/browse/AXIS2-4642">AXIS2-4642</a>: ?wsdl query calls out.close() twice, confusing at least some Tomcat connectors</li>
-<li><a href="https://issues.apache.org:443/jira/browse/AXIS2-4674">AXIS2-4674</a>: Unable to get WSDL2 doc for services on WebSphere 7.0 and Axis2 1.5.1</li>
-<li><a href="https://issues.apache.org:443/jira/browse/AXIS2-4819">AXIS2-4819</a>: Race condition in WSDLDataLocator</li>
-<li><a href="https://issues.apache.org:443/jira/browse/AXIS2-4827">AXIS2-4827</a>: ADB class org.apache.axis2.databinding.types.Union does not implement java.io.Serializable</li>
-<li><a href="https://issues.apache.org:443/jira/browse/AXIS2-4842">AXIS2-4842</a>: NPE in TempFileManager</li>
-<li><a href="https://issues.apache.org:443/jira/browse/AXIS2-4871">AXIS2-4871</a>: Null Pointer Exception in AxisService.printXSD</li>
-<li><a href="https://issues.apache.org:443/jira/browse/AXIS2-4883">AXIS2-4883</a>: Javadoc link broken on site and in documents distribution</li>
-<li><a href="https://issues.apache.org:443/jira/browse/AXIS2-4885">AXIS2-4885</a>: Unsubstituted variable ${axis2_version} in 1.5.3 site and documents distribution</li>
-<li><a href="https://issues.apache.org:443/jira/browse/AXIS2-4887">AXIS2-4887</a>: TargetNameSpace required for XSD2Java</li>
-<li><a href="https://issues.apache.org:443/jira/browse/AXIS2-4888">AXIS2-4888</a>: The org.apache.axis2:axis2 Maven artifact should not have a classifier</li>
-<li><a href="https://issues.apache.org:443/jira/browse/AXIS2-4889">AXIS2-4889</a>: SOAPConnectionTest#testGet slows down the build</li>
-<li><a href="https://issues.apache.org:443/jira/browse/AXIS2-4896">AXIS2-4896</a>: Unable to install axis2.eclipse.codegen.plugin into eclipse</li>
-<li><a href="https://issues.apache.org:443/jira/browse/AXIS2-4901">AXIS2-4901</a>: LinkageError related to DOM classes when using the codegen plugin for Eclipse</li>
-<li><a href="https://issues.apache.org:443/jira/browse/AXIS2-4909">AXIS2-4909</a>: Simple MTOM web service no longer works due to missing closing MIME boundary.</li>
-</ul>
-<p>In addition, this release contains changes required for the Sandesha2 1.4 release.</p>
-<h3>November 12, 2010 - Apache Axis2/Java Version 1.5.3 Released!</h3>
-<p>1.5.3 is a maintenance release that contains the following improvements:</p>
-<ul>
-<li>Improved support for SSL when using the servlet transport: Axis2 can now be configured
-so that generated WSDLs contain https endpoints (<a href="https://issues.apache.org/jira/browse/AXIS2-4465">AXIS2-4465</a>).</li>
-<li>Improved compatibility with Rampart (<a href="https://issues.apache.org/jira/browse/AXIS2-3213">AXIS2-3213</a>
-and <a href="https://issues.apache.org/jira/browse/AXIS2-4870">AXIS2-4870</a>) and Sandesha2 (potential HTTP connection pool starvation).</li>
-<li>Axiom has been upgraded to 1.2.10. This version contains performance improvements relevant for Rampart.</li>
-<li>Application (business) faults are no longer logged at level ERROR (<a href="https://issues.apache.org/jira/browse/AXIS2-4280">AXIS2-4280</a>).</li>
-<li>Improved conformance to the SAAJ specifications. The 1.5.3 release contains a set of fixes and improvements for the SAAJ
-implementation developed on the trunk and not included in previous releases from the 1.5 branch.</li>
-<li>Axis2 now relies exclusively on dependencies available from the Maven central repository, and no other Maven
-repositories are required. This in particular fixes a build problem that appeared after the 1.5.2 release.</li>
-<li>The Eclipse and IntelliJ IDEA plugins are again available for <a href="tools/index.html">download</a> via the Axis2 Web site
-(previous 1.5.x versions could only be downloaded from the Maven repository).</li>
-</ul>
-<p>[ <a href="download.cgi#1_5_3"><strong>Download</strong> ]</a></p>
-<h3>September 6, 2010 - Apache Axis2/Java Version 1.5.2 Released!</h3>
-<p>1.5.2 is a maintenance release to fix the security issue described in
-<a href="http://svn.apache.org/repos/asf/axis/axis2/java/core/security/CVE-2010-1632.pdf">CVE-2010-1632</a>
-as well as an XSS vulnerability in the admin console and some other minor issues. It also
-upgrades Axiom to version 1.2.9.</p>
-<p>[ <a href="download.cgi#1_5_2"><strong>Download</strong></a> ]</p>
-<h3>October 23, 2009 - Apache Axis2/Java Version 1.5.1 Released!</h3>
-<p>The 1.5.1 version fixes some <a href="http://issues.apache.org/jira/browse/AXIS2">bugs</a>, including most notably a connection starvation issue that would cause a large number of sockets stuck in CLOSE_WAIT or TIME_WAIT.</p>
-<p><b>PLEASE NOTE:</b> As of Axis2 1.5, we now <i>require</i> JDK 1.5 or above.  JDKs 1.4 or previous are no longer supported.</p>
-<p>[ <a href="download.cgi#1_5_1"><strong>Download</strong></a> ]</p>
-<p>Please see the <a href="refLib.html">Axis
-Reference Library</a> for a list of technical resources that should
-prove useful on this project.</p>
 <h3><em>Why Apache Axis2:</em></h3>
 <p>A new architecture for Axis2 was introduced during the August
 2004 Summit in Colombo, Sri Lanka. The new architecture on which
@@ -133,17 +58,6 @@
 currently available or under development include:</p>
 <ul>
 <li><a href=
-"http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=wsrm"
->WS-ReliableMessaging</a> - Supported by <a href=
-"http://axis.apache.org/axis2/java/sandesha/">Apache
-Sandesha2</a></li>
-<li><a href=
-"http://www-128.ibm.com/developerworks/library/specification/ws-tx/#coor"
->WS-Coordination</a> and <a href=
-"http://www-128.ibm.com/developerworks/library/specification/ws-tx/#atom"
->WS-AtomicTransaction</a> - Supported by <a href=
-"http://axis.apache.org/axis2/java/kandula/">Apache Kandula2</a></li>
-<li><a href=
 "http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=wss"
 >WS-Security</a> - Supported by <a href=
 "http://axis.apache.org/axis2/java/rampart/">
@@ -232,16 +146,6 @@
 Axis2.</p>
 </li>
 <li>
-<p style="margin-bottom: 0in"><strong>Add-ons</strong> - Several
-Web services specifications have been incorporated including
-<a href="http://ws.apache.org/wss4j/">WSS4J</a> for
-security (Apache Rampart), <a href="http://axis.apache.org/axis2/java/sandesha/"
->Sandesha</a> for reliable messaging, <a href=
-"http://axis.apache.org/axis2/java/kandula/">Kandula</a> which
-is an encapsulation of WS-Coordination, WS-AtomicTransaction and
-WS-BusinessActivity.</p>
-</li>
-<li>
 <p style="margin-bottom: 0in"><strong>Composition and
 Extensibility</strong> - Modules and phases improve support for
 composability and extensibility. Modules support composability and
@@ -260,104 +164,5 @@
 "<a href=
 "mailto:java-user@axis.apache.org">java-user@axis.apache.org</a>". Make
 sure to prefix the subject of the mail with [Axis2].</p>
-<h2>Features of Axis2 Latest Version</h2>
-<p>Apache Axis2 Version 1.4 comes with performance improvements and
-a number bug fixes over the 1.3 release. Check out the complete list of
-features below.</p>
-<h3>Programming Model</h3>
-<ul>
-<li>Improved, XML-centric client API including full WSDL and policy
-support</li>
-<li><a href="docs/jaxws-guide.html">Support for JAXWS-style services and clients</a></li>
-<li>Support for POJO and Spring services and clients</li>
-<li>Support for any message exchange pattern</li>
-<li>Synchronous and asynchronous calls</li>
-<li>Archived service deployment model supporting full service
-encapsulation with versioning support</li>
-<li>Archived module deployment model supporting controlled
-extensibility with versioning support</li>
-<li><a href="#Hot_Deployment">Hot deployment</a></li>
-<li>WS-Policy driven code generation extensions</li>
-<li>Flexible service life cycle model</li>
-<li>Automatic support for POX (REST) style invocation of
-services</li>
-<li>Support for querying a service's WSDL (using ?wsdl), schema
-(using ?xsd) and policies (using ?policy)</li>
-<li>WSDL 2.0</li>
-<li>Custom Deployers</li>
-<li>Binary serialization (Fast Infoset)</li>
-<li>JSON support</li>
-<li>EJB Provider support</li>
-</ul>
-<h3>Supported Specifications</h3>
-<ul>
-<li>SOAP 1.1 and 1.2</li>
-<li>Message Transmission Optimization Mechanism (MTOM), XML
-Optimized Packaging (XOP) and SOAP with Attachments</li>
-<li>WSDL 1.1, including both SOAP and HTTP bindings</li>
-<li>WS-Addressing (submission and final)</li>
-<li>WS-Policy</li>
-<li>SAAJ 1.1</li>
-</ul>
-<h3>Transports</h3>
-<ul>
-<li>HTTP</li>
-<li>SMTP</li>
-<li>JMS</li>
-<li>TCP</li>
-</ul>
-<h3>Supported Data Bindings</h3>
-<ul>
-<li>Axis Data Binding (ADB)</li>
-<li>XMLBeans</li>
-<li>JibX</li>
-<li>JaxBRI (Experimental)</li>
-</ul>
-<h2><a name="Tools_included_in this_Release">Tools Included in This
-Release</a></h2>
-<p>[<a href="tools/index.html"
->Download Tool Plug-ins</a>]</p>
-<ol type="1">
-<li>Axis2 Web Application (Web App)</li>
-<li>WSDL2WS- <a href="tools/eclipse/wsdl2java-plugin.html"
->eclipse plug-in</a><a>/</a> <a href=
-"tools/CodegenToolReference.html">Command line
-version</a><a>/</a><a href=
-"tools/idea/Idea_plug-in_userguide.html#WSDL2Java_Code_Generation"
->IntelliJ IDEA plug-in</a><a>/</a><a href=
-"tools/maven-plugins/maven-wsdl2code-plugin.html"
->Maven2 WSDL2Code Plug-in</a></li>
-<li>Service Archive Wizard- <a href=
-"tools/eclipse/servicearchiver-plugin.html"
->eclipse plug-in</a>/ <a href=
-"tools/idea/Idea_plug-in_userguide.html#Create_Service_Archive"
->IntelliJ IDEA plug-in</a>/ <a href=
-"tools/maven-plugins/maven-aar-plugin.html"
->Maven2 AAR Plug-in</a></li>
-<li>Java2WSDL- <a href=
-"tools/maven-plugins/maven-java2wsdl-plugin.html"
->Maven2 Java2WSDL Plug-in</a></li>
-</ol>
-<h2>Extension Modules</h2>
-<ul>
-<li>Apache Rampart: Supporting WS-Security (and soon
-WS-Policy)</li>
-<li>Apache Sandesha2: Supporting WS-Reliable Messaging</li>
-</ul>
-(Apache Axis2 comes built in with a module that supports
-WS-Addressing.)
-<h2>Known Issues and Limitations</h2>
-<h2>Archived News</h2>
-<p>For information on previous Axis2 releases running up to the
-current release see the <a href="archived_news.html"
->'Axis2 Archived News'</a> page.</p>
-For other news items from Apache Software Foundation see:
-<ul>
-<li><a href=
-"http://www.apachenews.org/archives/cat_apache_webservices_index.html">
-Web services related news on the Apache News Blog Online</a></li>
-<li><a href="http://www.apachenews.org/">The Apache News Blog
-Online</a></li>
-</ul>
 </body>
 </document>
diff --git a/src/site/xdoc/maven-help.xml b/src/site/xdoc/maven-help.xml
deleted file mode 100644
index d0d46b1..0000000
--- a/src/site/xdoc/maven-help.xml
+++ /dev/null
@@ -1,203 +0,0 @@
-<!--

-  ~ Licensed to the Apache Software Foundation (ASF) under one

-  ~ or more contributor license agreements. See the NOTICE file

-  ~ distributed with this work for additional information

-  ~ regarding copyright ownership. The ASF licenses this file

-  ~ to you under the Apache License, Version 2.0 (the

-  ~ "License"); you may not use this file except in compliance

-  ~ with the License. You may obtain a copy of the License at

-  ~

-  ~ http://www.apache.org/licenses/LICENSE-2.0

-  ~

-  ~ Unless required by applicable law or agreed to in writing,

-  ~ software distributed under the License is distributed on an

-  ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

-  ~ KIND, either express or implied. See the License for the

-  ~ specific language governing permissions and limitations

-  ~ under the License.

-  -->

-

-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"

-        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

-<html xmlns="http://www.w3.org/1999/xhtml">

-    <head>

-        <meta name="generator" content=

-                "HTML Tidy for Windows (vers 14 June 2007), see www.w3.org"/>

-        <title>Quick Guide to Maven for Axis 2.0</title>

-        <meta http-equiv="content-type" content=

-                "text/html; charset=us-ascii"/>

-    </head>

-    <body lang="en" xml:lang="en">

-        <h1 align="center">Quick Guide to Maven for Axis 2.0</h1>

-        <h2 align="left">Introduction</h2>

-        <p align="left">

-            <a href="http://maven.apache.org">Maven 2</a>

-            is used

-            as the build environment for Axis2. This document will provide a quick

-            guide on how to use Maven with our project.

-        </p>

-        <h2 align="left">Commands</h2>

-        <table>

-            <tbody>

-                <tr>

-                    <th scope="col">

-                        <div align="left">Command</div>

-                    </th>

-                    <th scope="col">

-                        <div align="left">Description</div>

-                    </th>

-                </tr>

-                <tr>

-                    <td>mvn clean</td>

-                    <td>Cleans all the content built so far in the target/ folder. This

-                        will not delete jars from your local repository.

-                    </td>

-                </tr>

-                <tr>

-                    <td>

-                        <div align="left">mvn install</div>

-                    </td>

-                    <td>

-                        <div align="left">Run a full build.</div>

-                    </td>

-                </tr>

-                <tr>

-                    <td>

-                        <div align="left">mvn test</div>

-                    </td>

-                    <td>

-                        <div align="left">Runs our basic test suite.</div>

-                    </td>

-                </tr>

-                <tr>

-                    <td>

-                        <div align="left">mvn clean test</div>

-                    </td>

-                    <td>

-                        <div align="left">Cleans up, rebuilds everything from scratch, and then runs the basic test

-                            suite.

-                        </div>

-                    </td>

-                </tr>

-                <tr>

-                    <td>

-                        <div align="left">mvn -Dtest=MyTest install</div>

-                    </td>

-                    <td>

-                        <div align="left">run a single test (cd to the specific module say kernel before running this

-                            and don't use the package name of the class, just the class name).

-                        </div>

-                    </td>

-                </tr>

-                <tr>

-                    <td>

-                        <div align="left">mvn dependency:resolve</div>

-                    </td>

-                    <td>

-                        <div align="left">print dependencies under any module</div>

-                    </td>

-                </tr>

-                <tr>

-                    <td>

-                        <div align="left">mvn site</div>

-                    </td>

-                    <td>

-                        <div align="left">Generates the website in target/site/</div>

-                    </td>

-                </tr>

-                <tr>

-                    <td>

-                        <div align="left">mvn idea:idea</div>

-                    </td>

-                    <td>

-                        <div align="left">Generates IDEA .ipr, .iml and .iws project

-                            files.

-                        </div>

-                    </td>

-                </tr>

-                <tr>

-                    <td>

-                        <div align="left">mvn -Dtest=false</div>

-                    </td>

-                    <td>

-                        <div align="left"></div>

-                        Builds Axis2 and skips all the tests.

-                    </td>

-                </tr>

-                <tr>

-                    <td>

-                        <div align="left">mvn -U -Drelease clean install</div>

-                    </td>

-                    <td>

-                        <div align="left"></div>

-                        Generate release artifacts.

-                    </td>

-                </tr>

-            </tbody>

-        </table>

-        <h4>Notes:</h4>

-        <ul>

-            <li>The "-U" ensures that you fetch the latest snapshots</li>

-            <li>The "-Drelease" runs the pom.xml under modules/distribution. The zip's are created under

-                modules/distribution/target

-            </li>

-            <li>To skip tests use "-Dtest=false"</li>

-            <li>If you run into an exception, switch on printing of full exception using "-e"</li>

-            <li>If you want to see the versbose output, use "-X"</li>

-        </ul>

-        <h3>Ant helper for the m2 build</h3>

-        <p>If you prefer to use Ant, we have a build.xml. Please note that there are 2 maven2 plugins that need to be

-            built first when you update version # for Axis2. the ant build.xml takes care of that automatically. It

-            builds

-            axis2-aar-maven-plugin and axis2-mar-maven-plugin before it runs the main build.

-        </p>

-        <table>

-            <tbody>

-                <tr>

-                    <th scope="col">

-                        <div align="left">Command</div>

-                    </th>

-                    <th scope="col">

-                        <div align="left">Description</div>

-                    </th>

-                </tr>

-                <tr>

-                    <td>ant clean"</td>

-                    <td>cleans up</td>

-                </tr>

-                <tr>

-                    <td>ant install"</td>

-                    <td>runs the build</td>

-                </tr>

-                <tr>

-                    <td>ant deploy"</td>

-                    <td>deploys artifacts in apache m2 snapshots repo</td>

-                </tr>

-                <tr>

-                    <td>ant -Doffline=true clean"</td>

-                    <td>offline clean up</td>

-                </tr>

-                <tr>

-                    <td>ant -Doffline=true install"</td>

-                    <td>offline build</td>

-                </tr>

-                <tr>

-                    <td>ant -Dskip=true install"</td>

-                    <td>run the build, but skip the tests</td>

-                </tr>

-                <tr>

-                    <td>ant -Dskip=true install"</td>

-                    <td>run the build, but skip the tests</td>

-                </tr>

-                <tr>

-                    <td>ant -Dskip=true deploy"</td>

-                    <td>deploys artifacts, but skip the tests</td>

-                </tr>

-                <tr>

-                    <td>ant -Doffline=true -Dskip=true install"</td>

-                    <td>run the build in the offline and skips the tests</td>

-                </tr>

-            </tbody>

-        </table>

-    </body>

-</html>

diff --git a/src/site/xdoc/modules/index.xml b/src/site/xdoc/modules/index.xml
index 8fed255..4abb12d 100644
--- a/src/site/xdoc/modules/index.xml
+++ b/src/site/xdoc/modules/index.xml
@@ -40,20 +40,14 @@
 <td><a href="addressing/index.html">Addressing</a></td>

 <td>This is an implementation of WS-Addressing submission version

 (2004-08) and WS-Addressing 2005-08 versions.</td>

-<td>Bundled with the <a href="../download.cgi#std-bin">Standard Binary Distribution</a>.</td>

+<td>Bundled with the <a href="../download.html">Standard Binary Distribution</a>.</td>

 </tr>

 <tr>

 <td><a href="../docs/soapmonitor-module.html">SOAP Monitor</a></td>

 <td>SOAP Monitor utility provides a way for Web services developers

 to monitor the SOAP messages being sent/received without requiring

 any special configuration or restarting of the server</td>

-<td>Bundled with the <a href="../download.cgi#std-bin">Standard Binary Distribution</a>.</td>

-</tr>

-<tr>

-<td><a href=

-"http://ws.apache.org/sandesha/sandesha2/index.html">Sandesha2</a></td>

-<td>An implementation of WS-RM specification February 2005</td>

-<td><a href="http://axis.apache.org/axis2/java/sandesha/">http://axis.apache.org/axis2/java/sandesha/</a></td>

+<td>Bundled with the <a href="../download.html">Standard Binary Distribution</a>.</td>

 </tr>

 <tr>

 <td><a href="http://ws.apache.org/rampart/">Rampart</a></td>

diff --git a/src/site/xdoc/release-process.xml b/src/site/xdoc/release-process.xml
deleted file mode 100644
index fc32ef1..0000000
--- a/src/site/xdoc/release-process.xml
+++ /dev/null
@@ -1,238 +0,0 @@
-<!--

-  ~ Licensed to the Apache Software Foundation (ASF) under one

-  ~ or more contributor license agreements. See the NOTICE file

-  ~ distributed with this work for additional information

-  ~ regarding copyright ownership. The ASF licenses this file

-  ~ to you under the Apache License, Version 2.0 (the

-  ~ "License"); you may not use this file except in compliance

-  ~ with the License. You may obtain a copy of the License at

-  ~

-  ~ http://www.apache.org/licenses/LICENSE-2.0

-  ~

-  ~ Unless required by applicable law or agreed to in writing,

-  ~ software distributed under the License is distributed on an

-  ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

-  ~ KIND, either express or implied. See the License for the

-  ~ specific language governing permissions and limitations

-  ~ under the License.

-  -->

-<document xmlns="http://maven.apache.org/XDOC/2.0"

-          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

-          xsi:schemaLocation="http://maven.apache.org/XDOC/2.0 http://maven.apache.org/xsd/xdoc-2.0.xsd">

-    <properties>

-        <title>Axis2 Release Process</title>

-    </properties>

-    <body>

-        <h1>Release Process</h1>

-        <macro name="toc"/>

-        <section name="Release process overview">

-            <subsection name="Cutting a branch">

-                <ul>

-                    <li>When a release is ready to go, release manager (RM) puts

-                    forward a release plan as per standard Apache process, including

-                    dates. This gets VOTEd on by the committers. During this period the

-                    trunk is still the only relevant source base.</li>

-                    <li>As soon as a release is approved (or even before), RM should

-                    add the new version into JIRA as a target.</li>

-                    <li>At the point where we would normally do the "code freeze" for a

-                    release, the RM cuts a branch named for the release. This branch is

-                    where the release candidates and releases will happen.</li>

-                    <li>Ideally a release branch is only around for a week or maybe two

-                    before the release happens.</li>

-                    <li>The only things that should EVER get checked into the release

-                    branch are - 1) bug fixes targeted at the release, 2)

-                    release-specific updates (documentation, SNAPSHOT removal, etc). In

-                    particular new functionality does not go here unless it is a

-                    solution to a JIRA report targeted at the release.</li>

-                    <li>Normal development continues on the trunk.</li>

-                </ul>

-            </subsection>

-            <subsection name="Dependencies and branches">

-                <ul>

-                    <li>The trunk should always be "cutting edge" and as such should

-                    usually be pointing at SNAPSHOT versions of all dependencies. This

-                    allows for continuous integration with our partner projects.</li>

-                    <li>Soon after a release branch is cut, the RM is responsible for

-                    removing ALL dependencies on SNAPSHOT versions and replacing them

-                    with officially released versions. This change happens only on the

-                    release branch.</li>

-                </ul>

-            </subsection>

-            <subsection name="Managing change and issue resolution with a release branch">

-                <ul>

-                    <li>The RM goes through JIRA issues and sets "fix for" to point to

-                    both "NIGHTLY" and the new branched release number for the fixes

-                    that are targeted for the release after the branch is cut.</li>

-                    <li>In general, the assignee/coder fixes JIRA issues or makes other

-                    changes *on the trunk*. If the JIRA issue is targeted at the

-                    release, or upon coder's discretion, they then merge the fix over

-                    to the release branch.</li>

-                    <li>This way the trunk is ALWAYS up-to-date, and we don't have to

-                    worry about losing fixes that have only been made on the release

-                    branch.</li>

-                    <li>When the assignee resolves an issue, they confirm it's been

-                    fixed in both branches, if appropriate.</li>

-                </ul>

-            </subsection>

-            <subsection name="Checking changes into the branch">

-                <ul>

-                    <li>If bug fixes are needed later for a release which has long

-                    since happened (to fix user issues, etc), those fixes generally

-                    should also happen on the trunk first assuming the problem still

-                    exists on the trunk.</li>

-                    <li>There are only two cases where we would ever check anything

-                    into the branch without first checking it into the trunk. 1)

-                    Release specific items (release number references, release notes,

-                    removal of SNAPSHOTs), and 2) if the trunk has moved on in some

-                    incompatible way.</li>

-                </ul>

-            </subsection>

-        </section>

-        <section name="Performing a release">

-            <p><strong>Note:</strong> performing the release requires at least Maven 2.1.0. The recommended version is 2.2.1.</p>

-            <subsection name="Preparation">

-                <p>Verify that the code meets the basic requirements for being releasable:</p>

-                <ol>

-                    <li>Check the consistency between the metadata in <tt>pom.xml</tt> and <tt>modules/parent/pom.xml</tt>.

-                    Since the root and parent POMs are different, some of the metadata is duplicated and needs to be synchronized

-                    manually. This includes the mailing list addresses, issue tracker information, SCM location, etc.</li>

-                    <li>Check that the set of legal (<tt>legal/*.LICENSE</tt>) files corresponds to the set of third party

-                    JARs included in the binary distribution.</li>

-                    <li>Check that the <tt>apache-release</tt> profile works correctly and produces the required distributions.

-                    The profile can be executed as follows:

-                    <pre>mvn clean install -Papache-release -Dmaven.test.skip=true</pre></li>

-                    <li>Check that the source distribution is buildable.</li>

-                    <li>Check that the source tree is buildable with an empty local Maven repository.</li>

-                </ol>

-                <p>If any problems are detected, they should be fixed on the trunk (except for issues specific to the

-                release branch) and then merged to the release branch.</p>

-                <p>Next update the relevant documents for the new release:</p>

-                <ol>

-                    <li>Update the <tt>release-notes.html</tt> file on the release branch (since the content of this file is replaced

-                    with every release, there is no need to keep it in sync with the trunk, except if the template changes).</li>

-                    <li>Update the <tt>src/site/xdoc/index.xml</tt> file with a description of the release and add an entry for

-                    the release in <tt>src/site/xdoc/download.xml</tt>. To avoid extra work for the RM doing the next major release,

-                    these changes should be done on the trunk first and then merged to the release branch.

-                    If the release is a maintenance release, then the previous release from that branch must be prepared

-                    for archiving by changing the links in the download page. This is necessary to conform to the

-                    <a href="http://www.apache.org/dev/release.html#when-to-archive">release archiving policy</a>. If the release

-                    is a major release, then this should be done with the release from the oldest branch, unless it is expected

-                    that users will still continue to download and use that release.</li>

-                </ol>

-            </subsection>

-            <subsection name="Pre-requisites">

-                <p>The following things are required to perform the actual release:</p>

-                <ul>

-                    <li>A PGP key that conforms to the <a href="http://www.apache.org/dev/release-signing.html">requirements for

-                    Apache release signing</a>. To make the release process easier, the passphrase for the code signing key should

-                    be configured in <tt>${user.home}/.m2/settings.xml</tt>:

-<pre><![CDATA[<settings>

-  ...

-  <profiles>

-    <profile>

-      <id>apache-release</id>

-      <properties>

-        <gpg.passphrase><!-- key passphrase --></gpg.passphrase>

-      </properties>

-    </profile>

-  </profiles>

-  ...

-</settings>]]></pre></li>

-                    <li>The release process uses a Nexus staging repository. Every committer should have access to the corresponding

-                    staging profile in Nexus. To validate this, login to <a href="https://repository.apache.org">repository.apache.org</a>

-                    and check that you can see the <tt>org.apache.axis2</tt> staging profile. The credentials used to deploy to Nexus

-                    should be added to <tt>settings.xml</tt>:

-<pre><![CDATA[<servers>

-  ...

-  <server>

-    <id>apache.releases.https</id>

-    <username><!-- ASF username --></username>

-    <password><!-- ASF LDAP password --></password>

-  </server>

-  ...

-</servers>]]></pre></li>

-                </ul>

-            </subsection>

-            <subsection name="Release">

-                <p>In order to prepare the release artifacts for vote, execute the following steps:</p>

-                <ol>

-                    <li>Update the release date in <tt>release-notes.html</tt>, <tt>src/site/xdoc/index.xml</tt> and

-                    <tt>src/site/xdoc/download.xml</tt>. Since it is not possible to predict the exact date when the

-                    release is officially announced, this should be the date when the release tag is created.</li>

-                    <li>Temporarily disable the Hudson build(s) for Axis2, in order to avoid accidental deployment of the release

-                    candidate to the local repository of a Hudson executor if the release process fails somewhere in the middle and/or

-                    a Hudson build starts at the wrong moment.</li>

-                    <li>Start the release process using the following command:

-                    <pre>mvn release:prepare -Peverything</pre>

-                    When asked for a tag name, use the following format: <tt>vX.Y.Z</tt>. The <tt>everything</tt> profile

-                    makes sure that the version numbers of all Maven modules are incremented properly.

-                    The execution of the <tt>release:prepare</tt> goal may fail for users in

-                    locations that use the EU Subversion server. If this happens,

-                    wait for a minute (so that the EU server can catch up with its master) and simply rerun the command.

-                    It will continue where the error occurred.</li>

-                    <li>Perform the release using the following command:

-                    <pre>mvn release:perform</pre></li>

-                    <li>Login to Nexus and close the staging repository. For more details about this step, see

-                    <a href="https://docs.sonatype.org/display/Repository/Closing+a+Staging+Repository">here</a>.</li>

-                    <li>Deploy the distributions to your <tt>public_html</tt> area on <tt>people.apache.org</tt>.

-                    The <tt>release:perform</tt> goal should have produced all the necessary files in the

-                    <tt>target/checkout/target/axis2-&lt;version&gt;-dists</tt> folder. Please preserve the directory structure and

-                    file names because they exactly match the requirements for deployment to <tt>www.apache.org</tt>

-                    (see below).</li>

-                    <li>Generate and deploy the Maven site to your <tt>public_html</tt> area on <tt>people.apache.org</tt>

-                    (either by building the site locally and transfer the files to <tt>people.apache.org</tt>, or by

-                    checking out the release tag and building the site directly on <tt>people.apache.org</tt>).</li>

-                    <li>Start the release vote by sending a mail to <tt>java-dev@axis.apache.org</tt>.

-                    The mail should mention the following things:

-                    <ul>

-                        <li>The list of issues solved in the release (by linking to the relevant JIRA view).</li>

-                        <li>A link to the Nexus staging repository.</li>

-                        <li>The URL on <tt>people.apache.org</tt> where the distributions can be downloaded.</li>

-                        <li>A link to the preview of the Maven site.</li>

-                    </ul>

-                    </li>

-                    <li>Reenable the Hudson build(s).</li>

-                </ol>

-                <p>If the vote passes, execute the following steps:</p>

-                <ol>

-                    <li>Promote the artifacts in the staging repository. See

-                    <a href="https://docs.sonatype.org/display/Repository/Releasing+a+Staging+Repository">here</a>

-                    for detailed instructions for this step.</li>

-                    <li>Login to <tt>people.apache.org</tt> and copy the distributions (including the checksums and

-                    signatures) to <tt>/www/www.apache.org/dist/axis/axis2/java/core/</tt>. If you followed the

-                    steps described above, then you should already have everything that is needed in your <tt>public_html</tt>

-                    folder and you only need to copy the <tt>X.Y.Z</tt> folder to the right location. Please execute the

-                    copy with umask 0002 and check that the files and directories have the right permissions (write access for the

-                    <tt>axis</tt> group).</li>

-                    <li>Check out the current Axis2 site from <a href="https://svn.apache.org/repos/asf/axis/site/axis2/java/core/">https://svn.apache.org/repos/asf/axis/site/axis2/java/core/</a>

-                    and synchronize it with the site for the new release. The site should have been generated during the

-                    release build and can be found in the <tt>target/checkout/target/site</tt>. Alternatively you can

-                    check out the release tag and rebuild the site using <tt>mvn site</tt>, or extract it from the

-                    documents distribution. Axiom has a script (see <tt>etc/syncsite.py</tt>) that can be used to

-                    synchronize the site in Subversion. It takes care of executing the relevant <tt>svn add</tt>

-                    and <tt>svn remove</tt> commands on the local working copy of the site.

-                    The live Web site is updated automatically by svnpubsub once the changes have been committed to SVN.</li>

-                </ol>

-                <p>It may take several hours before everything has been synchronized. Before proceeding, check that</p>

-                <ul>

-                    <li>the Maven artifacts for the release are available from the Maven central repository;</li>

-                    <li>the Maven site has been synchronized;</li>

-                    <li>the distributions can be downloaded from the mirror sites.</li>

-                </ul>

-                <p>Once everything is in place, send announcements to <tt>java-user@axis.apache.org</tt> (with copy to

-                <tt>java-dev@axis.apache.org</tt>) and <tt>announce@apache.org</tt>. Since the two lists have different conventions,

-                audiences and moderation policies, it is recommended to send the announcement separately to the two lists.

-                Note that mail to <tt>announce@apache.org</tt> must be sent from an <tt>apache.org</tt> address and will

-                always be moderated. The announcement sent to <tt>announce@apache.org</tt> also should include a general description

-                of Axis2, because not everybody subscribed to that list knows about the project.</p>

-            </subsection>

-            <subsection name="Post-release actions">

-                <ol>

-                    <li>Update the DOAP file (<tt>etc/doap_Axis2.rdf</tt>) and add a new entry for the release.</li>

-                    <li>Update the status of the release version in JIRA.</li>

-                    <li>Remove archived releases from <tt>/www/www.apache.org/dist/axis</tt> on <tt>people.apache.org</tt>.</li>

-                </ol>

-            </subsection>

-        </section>

-    </body>

-</document>

diff --git a/src/site/xdoc/tools/eclipse/plugin-installation.xml b/src/site/xdoc/tools/eclipse/plugin-installation.xml
deleted file mode 100644
index bde82d1..0000000
--- a/src/site/xdoc/tools/eclipse/plugin-installation.xml
+++ /dev/null
@@ -1,72 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  ~ Licensed to the Apache Software Foundation (ASF) under one
-  ~ or more contributor license agreements. See the NOTICE file
-  ~ distributed with this work for additional information
-  ~ regarding copyright ownership. The ASF licenses this file
-  ~ to you under the Apache License, Version 2.0 (the
-  ~ "License"); you may not use this file except in compliance
-  ~ with the License. You may obtain a copy of the License at
-  ~
-  ~ http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing,
-  ~ software distributed under the License is distributed on an
-  ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  ~ KIND, either express or implied. See the License for the
-  ~ specific language governing permissions and limitations
-  ~ under the License.
-  -->
-<document xmlns="http://maven.apache.org/XDOC/2.0"
-          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-          xsi:schemaLocation="http://maven.apache.org/XDOC/2.0 http://maven.apache.org/xsd/xdoc-2.0.xsd">
-    <properties>
-        <title>Eclipse plugin installation</title>
-    </properties>
-    <body>
-        <h1>Eclipse plugin installation</h1>
-        <section name="Introduction">
-            <p>
-                This document provides instructions for installating of the two Eclipse plugins provided by Axis2
-                (<a href="servicearchiver-plugin.html">Service Archive Generator</a> and
-                <a href="wsdl2java-plugin.html">Code Generator Wizard</a>).
-                The two plugins should work on Eclipse version 3.1 and upwards, and require at least Java 1.5.
-                The plugins have dependencies on bundles that are installed by default in the Eclipse IDE for Java EE Developers
-                edition, but not in the Eclipse IDE for Java Developers edition. It is therefore recommended
-                to use the EE edition.
-                The installation procedure is the same for both plugins, but depends on the Eclipse
-                version being used. To determine which procedure to use, check if there is a
-                <tt>dropins</tt> folder in the Eclipse installation directory. This folder is used
-                by the p2 provisioning system introduced in recent Eclipse version. It should be
-                present starting with Eclipse version 3.4.
-            </p>
-        </section>
-        <section name="Installation using the dropins directory">
-            <p>
-                If your Eclipse version uses p2, use the following procedure to install the
-                Axis2 plugins:
-            </p>
-            <ol>
-                <li><a href="../index.html">Download</a> the ZIP file for the plugin you want to install.</li>
-                <li>Extract the content of the <tt>plugins</tt> folder in the ZIP archive into the
-                <tt>dropins</tt> folder (i.e. do <b>not</b> create a <tt>plugins</tt> folder under <tt>dropins</tt>).</li>
-            </ol>
-            <p>
-                As explained <a href="http://wiki.eclipse.org/Equinox_p2_Getting_Started#Dropins">here</a>,
-                it is possible to use other directory layouts in the <tt>dropins</tt> folder.
-            </p>
-        </section>
-        <section name="Installation on older Eclipse versions">
-            <p>
-                If you have an older Eclipse version that doesn't support p2 yet, use the following
-                procedure to install the Axis2 plugins:
-            </p>
-            <ol>
-                <li><a href="../index.html">Download</a> the ZIP file for the plugin you want to install.</li>
-                <li>Extract the content of the ZIP archive into the Eclipse installation directory.
-                This should add one or more JAR files and/or directories to the existing <tt>plugins</tt>
-                folder.</li>
-            </ol>
-        </section>
-    </body>
-</document>
diff --git a/src/site/xdoc/tools/eclipse/servicearchiver-plugin.xml b/src/site/xdoc/tools/eclipse/servicearchiver-plugin.xml
index ff9e4e4..e392cec 100644
--- a/src/site/xdoc/tools/eclipse/servicearchiver-plugin.xml
+++ b/src/site/xdoc/tools/eclipse/servicearchiver-plugin.xml
@@ -27,7 +27,7 @@
         <h1>Service Archive Generator Wizard Guide for Eclipse Plug-in</h1>

         <p>This document will guide you through the installation and usage

         of the archive generator Eclipse plug-in.</p>

-        <p><a href="../index.html">[Download Plugin Tool]</a></p>

+        <p><a href="../../download.html">[Download Plugin Tool]</a></p>

         <macro name="toc"/>

         <section name="Introduction">

             <p>As part of the Axis2 tool set, the service archive generator is

diff --git a/src/site/xdoc/tools/eclipse/wsdl2java-plugin.xml b/src/site/xdoc/tools/eclipse/wsdl2java-plugin.xml
index a7476ec..a5d0f58 100644
--- a/src/site/xdoc/tools/eclipse/wsdl2java-plugin.xml
+++ b/src/site/xdoc/tools/eclipse/wsdl2java-plugin.xml
@@ -29,7 +29,7 @@
         for Eclipse. In other words, this document will guide you through

         the operations of generating a WSDL file from a Java class and/or

         generating a Java class file from a WSDL file.</p>

-        <p><a href="../index.html">[Download Plugin Tool]</a></p>

+        <p><a href="../../download.html">[Download Plugin Tool]</a></p>

         <macro name="toc"/>

         <section name="Introduction">

             <p>The Axis2 code generator comes built-in with an <a href=

diff --git a/src/site/xdoc/tools/idea/Idea_plug-in_userguide.xml b/src/site/xdoc/tools/idea/Idea_plug-in_userguide.xml
index fe6ad6a..532b5af 100644
--- a/src/site/xdoc/tools/idea/Idea_plug-in_userguide.xml
+++ b/src/site/xdoc/tools/idea/Idea_plug-in_userguide.xml
@@ -33,7 +33,7 @@
 <h1>Axis2 Plug-in Guide for IntelliJ IDEA</h1>

 <p>This document explains the installation and usage of Axis2

 plug-in for IntelliJ IDEA.</p>

-<p><a href="../index.html">[Download

+<p><a href="../../download.html">[Download

 Plug-in]</a></p>

 <h2>Content</h2>

 <ul>

@@ -63,7 +63,7 @@
 <a name="installation" id="installation"></a>

 <h2>Installation</h2>

 <p>First <a href=

-"../index.html">download</a> the

+"../../download.html">download</a> the

 plug-in which is a zipped file, and extract it into plugins

 directory which is located in the directory where IDEA is

 installed. If a previous version of the plug-in resides in this

diff --git a/src/site/xdoc/tools/index.xml.vm b/src/site/xdoc/tools/index.xml
similarity index 61%
rename from src/site/xdoc/tools/index.xml.vm
rename to src/site/xdoc/tools/index.xml
index 9e41229..d10487b 100644
--- a/src/site/xdoc/tools/index.xml.vm
+++ b/src/site/xdoc/tools/index.xml
@@ -33,7 +33,6 @@
 				<tr>

 					<th scope="col">Name</th>

 					<th scope="col">Description</th>

-					<th scope="col">Downloads</th>

 				</tr>

 				<tr>

 					<td>

@@ -44,9 +43,6 @@
 implemented by the WSDL2Code class and WSDL2Java class. One can

 choose to run the main classes directly or use one of the scripts

 to run the WSDL2Code and WSDL2Java appropriately.</td>

-					<td>This tool is bundled with the Axis2 Standard Binary

-Distribution found <a href="../download.cgi#std-bin">here</a>

-					</td>

 				</tr>

 				<tr>

 					<td>

@@ -57,11 +53,6 @@
 an important tool that allows the generation of service archives

 ("aar" file or a "jar" files) that can be deployed as a Web

 services to the Axis2.</td>

-					<td>

-						<a href="http://www.apache.org/dyn/mirrors/mirrors.cgi/axis/axis2/java/core/${axis2_version}/axis2-eclipse-service-plugin-${axis2_version}.zip">zip</a> |

-						<a href="http://www.apache.org/dist/axis/axis2/java/core/${axis2_version}/axis2-eclipse-service-plugin-${axis2_version}.zip.md5">MD5</a> |

-						<a href="http://www.apache.org/dist/axis/axis2/java/core/${axis2_version}/axis2-eclipse-service-plugin-${axis2_version}.zip.asc">PGP</a>

-					</td>

 				</tr>

 				<tr>

 					<td>

@@ -71,11 +62,6 @@
 					<td>Axis2 code generator comes built-in with an <a href="http://www.eclipse.org/">eclipse</a> plug-in. This can be used to

 generate a WSDL file from a java class (Java2WSDL) and/or a java

 class file from a WSDL (WSDL2Java)</td>

-					<td>

-						<a href="http://www.apache.org/dyn/mirrors/mirrors.cgi/axis/axis2/java/core/${axis2_version}/axis2-eclipse-codegen-plugin-${axis2_version}.zip">zip</a> |

-						<a href="http://www.apache.org/dist/axis/axis2/java/core/${axis2_version}/axis2-eclipse-codegen-plugin-${axis2_version}.zip.md5">MD5</a> |

-						<a href="http://www.apache.org/dist/axis/axis2/java/core/${axis2_version}/axis2-eclipse-codegen-plugin-${axis2_version}.zip.asc">PGP</a>

-					</td>

 				</tr>

 				<tr>

 					<td>

@@ -85,52 +71,57 @@
 					<td>Using this tool one can create service archives that can be

 deployed as a Web services to the Axis2, and also generate a java

 class file from a WSDL file (WSDL2Java).</td>

-					<td>

-                        <a href="http://www.apache.org/dyn/mirrors/mirrors.cgi/axis/axis2/java/core/${axis2_version}/axis2-idea-plugin-${axis2_version}.zip">zip</a> |

-                        <a href="http://www.apache.org/dist/axis/axis2/java/core/${axis2_version}/axis2-idea-plugin-${axis2_version}.zip.md5">MD5</a> |

-                        <a href="http://www.apache.org/dist/axis/axis2/java/core/${axis2_version}/axis2-idea-plugin-${axis2_version}.zip.asc">PGP</a>

-					</td>

 				</tr>

 				<tr>

 					<td>

-						<a href="maven-plugins/maven-aar-plugin.html">Maven2 AAR

-Plug-in</a>

+						<a href="maven-plugins/maven-aar-plugin.html">axis2-aar-maven-plugin</a>

 					</td>

 					<td>This plugin generates an Axis2 service file (AAR file).</td>

-					<td>N/A <a href="#note1">[1]</a></td>

 				</tr>

 				<tr>

-					<td>

-						Maven2 MAR Plug-in

-					</td>

+					<td>axis2-mar-maven-plugin</td>

 					<td>This plugin generates an Axis2 module archive file (MAR file).</td>

-					<td>N/A <a href="#note1">[1]</a></td>

 				</tr>

 				<tr>

 					<td>

-						<a href="maven-plugins/maven-java2wsdl-plugin.html">Maven2

-Java2WSDL Plug-in</a>

+						<a href="maven-plugins/maven-java2wsdl-plugin.html">axis2-java2wsdl-maven-plugin</a>

 					</td>

 					<td>

 						<p>This plugin takes as input a Java class and generates a WSDL,

 which describes a Web service for invoking the classes methods.</p>

 					</td>

-					<td>N/A <a href="#note1">[1]</a></td>

 				</tr>

 				<tr>

 					<td>

-						<a href="maven-plugins/maven-wsdl2code-plugin.html">Maven2

-WSDL2Code Plug-in</a>

+						<a href="maven-plugins/axis2-wsdl2code-maven-plugin/index.html">axis2-wsdl2code-maven-plugin</a>

 					</td>

 					<td>

 						<p>This plugin takes as input a WSDL and generates client and

 server stubs for calling or implementing a Web service matching the

 WSDL.</p>

 					</td>

-					<td>N/A <a href="#note1">[1]</a></td>

 				</tr>

+                <tr>

+                    <td>

+                        <a href="maven-plugins/axis2-repo-maven-plugin/index.html">axis2-repo-maven-plugin</a>

+                    </td>

+                    <td>

+                        <p>This plugin creates Axis2 repositories from project dependencies.</p>

+                    </td>

+                </tr>

+                <tr>

+                    <td>

+                        <a href="maven-plugins/axis2-xsd2java-maven-plugin/index.html">axis2-xsd2java-maven-plugin</a>

+                    </td>

+                    <td>

+                        <p>This plugin generates ADB beans from a set of XSD files.</p>

+                    </td>

+                </tr>

 			</tbody>

 		</table>

-		<p><a name="note1"/>[1] All Maven plugins are available from the Maven central repository and need not be downloaded separately.</p>

+		<p>The command line tools and Ant tasks are bundled with the Axis2 binary distribution.

+		The Eclipse and IntelliJ IDEA plugins are shipped as separate archives. These files can

+		be downloaded <a href="../download.html">here</a>.

+		All Maven plugins are available from the Maven central repository and need not be downloaded separately.</p>

 	</body>

 </document>

diff --git a/src/site/xdoc/tools/maven-plugins/maven-wsdl2code-plugin.xml b/src/site/xdoc/tools/maven-plugins/maven-wsdl2code-plugin.xml
deleted file mode 100644
index 4fa0f37..0000000
--- a/src/site/xdoc/tools/maven-plugins/maven-wsdl2code-plugin.xml
+++ /dev/null
@@ -1,229 +0,0 @@
-<!--

-  ~ Licensed to the Apache Software Foundation (ASF) under one

-  ~ or more contributor license agreements. See the NOTICE file

-  ~ distributed with this work for additional information

-  ~ regarding copyright ownership. The ASF licenses this file

-  ~ to you under the Apache License, Version 2.0 (the

-  ~ "License"); you may not use this file except in compliance

-  ~ with the License. You may obtain a copy of the License at

-  ~

-  ~ http://www.apache.org/licenses/LICENSE-2.0

-  ~

-  ~ Unless required by applicable law or agreed to in writing,

-  ~ software distributed under the License is distributed on an

-  ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

-  ~ KIND, either express or implied. See the License for the

-  ~ specific language governing permissions and limitations

-  ~ under the License.

-  -->

-

-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"

-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

-<html xmlns="http://www.w3.org/1999/xhtml">

-<head>

-<meta name="generator" content=

-"HTML Tidy for Windows (vers 14 June 2007), see www.w3.org" />

-<meta http-equiv="content-type" content="" />

-<title>Maven2 WSDL2Code Plug-in Guide</title>

-</head>

-<body>

-<h1>Maven2 WSDL2Code Plug-in Guide</h1>

-<h2>Introduction</h2>

-<p>This plugin takes as input a WSDL and generates client and

-server stubs for calling or implementing a Web service matching the

-WSDL.</p>

-<p><a href="../index.html">[Download Plugin Tool]</a></p>

-<h2>Goals</h2>

-<p>The WSDl2Code offers a single goal:</p>

-<ul>

-<li>wsdl2code (default): Reads the WSDL and generates code.</li>

-</ul>

-<p>To run the plugin, add the following section to your <a href=

-"http://maven.apache.org/guides/introduction/introduction-to-the-pom.html">

-POM</a> (Project Object Model):</p>

-<pre>

-    &lt;build&gt;

-        &lt;plugins&gt;

-            &lt;plugin&gt;

-                &lt;groupId&gt;org.apache.axis2&lt;/groupId&gt;

-                &lt;artifactId&gt;axis2-wsdl2code-maven-plugin&lt;/artifactId&gt;

-                &lt;version&gt;1.6.2&lt;/version&gt;

-                &lt;executions&gt;

-                    &lt;execution&gt;

-                        &lt;goals&gt;

-                            &lt;goal&gt;wsdl2code&lt;/goal&gt;

-                        &lt;/goals&gt;

-                    &lt;/execution&gt;

-                &lt;/executions&gt;

-                &lt;configuration&gt;

-                    &lt;packageName&gt;com.foo.myservice&lt;/packageName&gt;

-                    &lt;wsdlFile&gt;src/main/wsdl/myservice.wsdl&lt;/wsdlFile&gt;

-                    &lt;databindingName&gt;xmlbeans&lt;/databindingName&gt;

-                &lt;/configuration&gt;

-            &lt;/plugin&gt;

-        &lt;/plugins&gt;

-    &lt;/build&gt;

-</pre>

-Also please add axis2 jars as a dependency 

-<pre xml:space="preserve">

-    &lt;dependency&gt;

-          &lt;groupId&gt;org.apache.axis2&lt;/groupId&gt;

-          &lt;artifactId&gt;axis2&lt;/artifactId&gt;

-          &lt;version&gt;1.6.2&lt;/version&gt;

-    &lt;/dependency&gt;

-</pre>

-    

-<p>The plugin will be invoked automatically in the generate-sources

-phase. You can also invoke it directly from the command line by

-running the command</p>

-<pre>

-mvn axis2-wsdl2code:wsdl2code

-</pre>

-<h3>The WSDL2Code Goal</h3>

-<p>By default, the plugin reads the file

-<strong>src/main/axis2/service.wsdl</strong>. Sources for the Java

-programming language and the ADB data binding are generated into

-<strong>target/generated-sources/axis2/wsdl2code</strong>. Note the

-configuration element <strong>packageName</strong> above, which

-sets the package name, thus a subdirectory.</p>

-<h2>Configuration</h2>

-<p>The WSDL2Code goal takes the following parameters as input. All

-parameters can be set from the command line by using properties.

-For example, the parameter "generateServerSide" may be set using

-the property "axis2.wsdl2code.generateServerSide". If the parameter

-isn't set via property or in the POM, then a default value

-applies.</p>

-<table>

-<tbody>

-<tr align="center">

-<td><strong>Parameter Name</strong></td>

-<td><strong>Command Line Property</strong></td>

-<td><strong>Description</strong></td>

-<td><strong>Default Value</strong></td>

-</tr>

-<tr>

-<td>databindingName</td>

-<td>${axis2.wsdl2code.databindingName}</td>

-<td>Data binding framework, which is being used by the generated

-sources.</td>

-<td>adb</td>

-</tr>

-<tr>

-<td>generateAllClasses</td>

-<td>${axis2.wsdl2code.generateAllClasses}</td>

-<td>Whether to generate simply all classes. This is only valid in

-conjunction with "generateServerSide".</td>

-<td>false</td>

-</tr>

-<tr>

-<td>generateServerSide</td>

-<td>${axis2.wsdl2code.generateServerSide}</td>

-<td>Whether server side sources are being generated.</td>

-<td>false</td>

-</tr>

-<tr>

-<td>generateServerSideInterface</td>

-<td>${axis2.wsdl2code.generateServerSideInterface}</td>

-<td>Whether to generate the server side interface.</td>

-<td>false</td>

-</tr>

-<tr>

-<td>generateServicesXml</td>

-<td>${axis2.wsdl2code.generateServicesXml}</td>

-<td>Whether a "services.xml" file is being generated.</td>

-<td>false</td>

-</tr>

-<tr>

-<td>generateTestcase</td>

-<td>${axis2.wsdl2code.generateTestCase}</td>

-<td>Whether a test case is being generated.</td>

-<td>false</td>

-</tr>

-<tr>

-<td>language</td>

-<td>${axis2.wsdl2code.language}</td>

-<td>Programming language of the generated sources.</td>

-<td>java</td>

-</tr>

-<tr>

-<td>namespaceToPackages</td>

-<td>${axis2.wsdl2code.namespaceToPackages}</td>

-<td>Map of namespace URI to packages in the format

-uri1=package1,uri2=package2,... Using this parameter is

-discouraged. In general, you should use the namespaceUris

-parameter. However, the latter cannot be set on the command

-line.</td>

-<td></td>

-</tr>

-<tr>

-<td>namespaceURIs</td>

-<td></td>

-<td>Map of namespace URI to packages. Example:

-&lt;namespaceURIs&gt; &lt;namespaceURI&gt;

-&lt;uri&gt;uri1&lt;/uri&gt; &lt;packageName&gt;package1&lt;/packageName&gt;

-&lt;/namespaceURI&gt; ........ &lt;/namespaceURI&gt;</td>

-<td></td>

-</tr>

-<tr>

-<td>outputDirectory</td>

-<td>${axis2.wsdl2code.target}</td>

-<td>Target directory, where sources are being

-target/generated-sources/axis2/wsdl2code generated.</td>

-<td></td>

-</tr>

-<tr>

-<td>packageName</td>

-<td>${axis2.wsdl2code.package}</td>

-<td>Package name of the generated sources.</td>

-<td></td>

-</tr>

-<tr>

-<td>portName</td>

-<td>${axis2.wsdl2code.portName}</td>

-<td>Port name, for which sources are being generated. By default,

-sources are generated for a randomly picked port.</td>

-<td></td>

-</tr>

-    <tr>

-    <td>allPorts</td>

-    <td>${axis2.wsdl2code.allPorts}</td>

-    <td>Set this to true to generate code for all ports.</td>

-    <td>false</td>

-    </tr>

-<tr>

-<td>serviceName</td>

-<td>${axis2.wsdl2code.serviceName}</td>

-<td>Service name, for which sources are being generated. By

-default, sources are generated for all services.</td>

-<td></td>

-</tr>

-<tr>

-<td>syncMode</td>

-<td>${axis2.wsdl2code.syncMode}</td>

-<td>Sync mode, for which sources are being generated; either of

-"sync", "async", or "both" (default).</td>

-<td>both</td>

-</tr>

-<tr>

-<td>unpackClasses</td>

-<td>${axis2.wsdl2code.unpackClasses}</td>

-<td>Whether to unpack classes.</td>

-<td></td>

-</tr>

-<tr>

-<td>wsdlFile</td>

-<td>${axis2.wsdl2code.wsdl}</td>

-<td>Location of the WSDL file, which is read as input</td>

-<td>src/main/axis2/service.wsdl</td>

-</tr>

-<tr>

-<td>unwrap</td>

-<td>${axis2.wsdl2code.unwrap}</td>

-<td>This will select between wrapped and unwrapped during code generation.

-Maps to the -uw option of the command line tool.</td>

-<td>false</td>

-</tr>

-</tbody>

-</table>

-</body>

-</html>

diff --git a/modules/integration/test-resources/SOAP12Testing/SOAP12TestModuleB/META-INF/module.xml b/systests/SOAP12TestModuleB/module.xml
similarity index 100%
rename from modules/integration/test-resources/SOAP12Testing/SOAP12TestModuleB/META-INF/module.xml
rename to systests/SOAP12TestModuleB/module.xml
diff --git a/systests/SOAP12TestModuleB/pom.xml b/systests/SOAP12TestModuleB/pom.xml
new file mode 100644
index 0000000..cb72579
--- /dev/null
+++ b/systests/SOAP12TestModuleB/pom.xml
@@ -0,0 +1,50 @@
+<?xml version="1.0"?>
+<!--
+  ~ Licensed to the Apache Software Foundation (ASF) under one
+  ~ or more contributor license agreements. See the NOTICE file
+  ~ distributed with this work for additional information
+  ~ regarding copyright ownership. The ASF licenses this file
+  ~ to you under the Apache License, Version 2.0 (the
+  ~ "License"); you may not use this file except in compliance
+  ~ with the License. You may obtain a copy of the License at
+  ~
+  ~ http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing,
+  ~ software distributed under the License is distributed on an
+  ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  ~ KIND, either express or implied. See the License for the
+  ~ specific language governing permissions and limitations
+  ~ under the License.
+  -->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.apache.axis2</groupId>
+        <artifactId>systests</artifactId>
+        <version>1.8.0-SNAPSHOT</version>
+    </parent>
+    <artifactId>SOAP12TestModuleB</artifactId>
+    <packaging>mar</packaging>
+    <url>http://axis.apache.org/axis2/java/core/</url>
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.axis2</groupId>
+                <artifactId>axis2-mar-maven-plugin</artifactId>
+                <extensions>true</extensions>
+                <configuration>
+                    <moduleXmlFile>module.xml</moduleXmlFile>
+                    <includeDependencies>false</includeDependencies>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.axis2</groupId>
+            <artifactId>axis2-kernel</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+    </dependencies>
+</project>
diff --git a/modules/integration/test-resources/SOAP12Testing/SOAP12TestModuleB/org/apache/axis2/soap12testing/handlers/HeaderConstants.java b/systests/SOAP12TestModuleB/src/main/java/org/apache/axis2/soap12testing/handlers/HeaderConstants.java
similarity index 100%
rename from modules/integration/test-resources/SOAP12Testing/SOAP12TestModuleB/org/apache/axis2/soap12testing/handlers/HeaderConstants.java
rename to systests/SOAP12TestModuleB/src/main/java/org/apache/axis2/soap12testing/handlers/HeaderConstants.java
diff --git a/modules/integration/test-resources/SOAP12Testing/SOAP12TestModuleB/org/apache/axis2/soap12testing/handlers/SOAP12InFlowHandlerDefaultB.java b/systests/SOAP12TestModuleB/src/main/java/org/apache/axis2/soap12testing/handlers/SOAP12InFlowHandlerDefaultB.java
similarity index 98%
rename from modules/integration/test-resources/SOAP12Testing/SOAP12TestModuleB/org/apache/axis2/soap12testing/handlers/SOAP12InFlowHandlerDefaultB.java
rename to systests/SOAP12TestModuleB/src/main/java/org/apache/axis2/soap12testing/handlers/SOAP12InFlowHandlerDefaultB.java
index 8350b29..0513779 100644
--- a/modules/integration/test-resources/SOAP12Testing/SOAP12TestModuleB/org/apache/axis2/soap12testing/handlers/SOAP12InFlowHandlerDefaultB.java
+++ b/systests/SOAP12TestModuleB/src/main/java/org/apache/axis2/soap12testing/handlers/SOAP12InFlowHandlerDefaultB.java
@@ -114,7 +114,7 @@
                                     //fault.setReason(reason);
                                     if (roleValue != null && roleValue.equals(SAMPLE_ROLE + "/" + ROLE_BY_B)) {
                                         SOAPFaultNode node = factory.createSOAPFaultNode(fault);
-                                        node.setNodeValue(SAMPLE_ROLE + "/" + ROLE_BY_B);
+                                        node.setFaultNodeValue(SAMPLE_ROLE + "/" + ROLE_BY_B);
                                         SOAPFaultRole role = factory.createSOAPFaultRole(fault);
                                         role.setRoleValue(SAMPLE_ROLE + "/" + ROLE_BY_B);
                                         msgContext.setProperty(SOAP12Constants.SOAP_FAULT_NODE_LOCAL_NAME, node);
diff --git a/modules/integration/test-resources/SOAP12Testing/SOAP12TestModuleB/org/apache/axis2/soap12testing/handlers/SOAP12OutFaultFlowHandlerDefault.java b/systests/SOAP12TestModuleB/src/main/java/org/apache/axis2/soap12testing/handlers/SOAP12OutFaultFlowHandlerDefault.java
similarity index 100%
rename from modules/integration/test-resources/SOAP12Testing/SOAP12TestModuleB/org/apache/axis2/soap12testing/handlers/SOAP12OutFaultFlowHandlerDefault.java
rename to systests/SOAP12TestModuleB/src/main/java/org/apache/axis2/soap12testing/handlers/SOAP12OutFaultFlowHandlerDefault.java
diff --git a/modules/integration/test-resources/SOAP12Testing/SOAP12TestModuleB/org/apache/axis2/soap12testing/handlers/SOAP12OutFlowHandlerDefault.java b/systests/SOAP12TestModuleB/src/main/java/org/apache/axis2/soap12testing/handlers/SOAP12OutFlowHandlerDefault.java
similarity index 100%
rename from modules/integration/test-resources/SOAP12Testing/SOAP12TestModuleB/org/apache/axis2/soap12testing/handlers/SOAP12OutFlowHandlerDefault.java
rename to systests/SOAP12TestModuleB/src/main/java/org/apache/axis2/soap12testing/handlers/SOAP12OutFlowHandlerDefault.java
diff --git a/modules/integration/test-resources/SOAP12Testing/SOAP12TestModuleC/META-INF/module.xml b/systests/SOAP12TestModuleC/module.xml
similarity index 100%
rename from modules/integration/test-resources/SOAP12Testing/SOAP12TestModuleC/META-INF/module.xml
rename to systests/SOAP12TestModuleC/module.xml
diff --git a/systests/SOAP12TestModuleC/pom.xml b/systests/SOAP12TestModuleC/pom.xml
new file mode 100644
index 0000000..fcffb99
--- /dev/null
+++ b/systests/SOAP12TestModuleC/pom.xml
@@ -0,0 +1,50 @@
+<?xml version="1.0"?>
+<!--
+  ~ Licensed to the Apache Software Foundation (ASF) under one
+  ~ or more contributor license agreements. See the NOTICE file
+  ~ distributed with this work for additional information
+  ~ regarding copyright ownership. The ASF licenses this file
+  ~ to you under the Apache License, Version 2.0 (the
+  ~ "License"); you may not use this file except in compliance
+  ~ with the License. You may obtain a copy of the License at
+  ~
+  ~ http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing,
+  ~ software distributed under the License is distributed on an
+  ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  ~ KIND, either express or implied. See the License for the
+  ~ specific language governing permissions and limitations
+  ~ under the License.
+  -->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.apache.axis2</groupId>
+        <artifactId>systests</artifactId>
+        <version>1.8.0-SNAPSHOT</version>
+    </parent>
+    <artifactId>SOAP12TestModuleC</artifactId>
+    <packaging>mar</packaging>
+    <url>http://axis.apache.org/axis2/java/core/</url>
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.axis2</groupId>
+                <artifactId>axis2-mar-maven-plugin</artifactId>
+                <extensions>true</extensions>
+                <configuration>
+                    <moduleXmlFile>module.xml</moduleXmlFile>
+                    <includeDependencies>false</includeDependencies>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.axis2</groupId>
+            <artifactId>axis2-kernel</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+    </dependencies>
+</project>
diff --git a/modules/integration/test-resources/SOAP12Testing/SOAP12TestModuleB/org/apache/axis2/soap12testing/handlers/HeaderConstants.java b/systests/SOAP12TestModuleC/src/main/java/org/apache/axis2/soap12testing/handlers/HeaderConstants.java
similarity index 100%
copy from modules/integration/test-resources/SOAP12Testing/SOAP12TestModuleB/org/apache/axis2/soap12testing/handlers/HeaderConstants.java
copy to systests/SOAP12TestModuleC/src/main/java/org/apache/axis2/soap12testing/handlers/HeaderConstants.java
diff --git a/modules/integration/test-resources/SOAP12Testing/SOAP12TestModuleC/org/apache/axis2/soap12testing/handlers/SOAP12InFlowHandlerDefaultC.java b/systests/SOAP12TestModuleC/src/main/java/org/apache/axis2/soap12testing/handlers/SOAP12InFlowHandlerDefaultC.java
similarity index 98%
rename from modules/integration/test-resources/SOAP12Testing/SOAP12TestModuleC/org/apache/axis2/soap12testing/handlers/SOAP12InFlowHandlerDefaultC.java
rename to systests/SOAP12TestModuleC/src/main/java/org/apache/axis2/soap12testing/handlers/SOAP12InFlowHandlerDefaultC.java
index 59e6a07..334af64 100644
--- a/modules/integration/test-resources/SOAP12Testing/SOAP12TestModuleC/org/apache/axis2/soap12testing/handlers/SOAP12InFlowHandlerDefaultC.java
+++ b/systests/SOAP12TestModuleC/src/main/java/org/apache/axis2/soap12testing/handlers/SOAP12InFlowHandlerDefaultC.java
@@ -117,7 +117,7 @@
                                     //fault.setReason(reason);
                                     if (roleValue != null && roleValue.equals(SAMPLE_ROLE + "/" + ROLE_BY_B)) {
                                         SOAPFaultNode node = factory.createSOAPFaultNode(fault);
-                                        node.setNodeValue(SAMPLE_ROLE + "/" + ROLE_BY_B);
+                                        node.setFaultNodeValue(SAMPLE_ROLE + "/" + ROLE_BY_B);
                                         SOAPFaultRole role = factory.createSOAPFaultRole(fault);
                                         role.setRoleValue(SAMPLE_ROLE + "/" + ROLE_BY_B);
                                         msgContext.setProperty(SOAP12Constants.SOAP_FAULT_NODE_LOCAL_NAME, node);
diff --git a/modules/integration/test-resources/SOAP12Testing/SOAP12TestModuleC/org/apache/axis2/soap12testing/handlers/SOAP12OutFaultFlowHandlerDefault.java b/systests/SOAP12TestModuleC/src/main/java/org/apache/axis2/soap12testing/handlers/SOAP12OutFaultFlowHandlerDefault.java
similarity index 100%
rename from modules/integration/test-resources/SOAP12Testing/SOAP12TestModuleC/org/apache/axis2/soap12testing/handlers/SOAP12OutFaultFlowHandlerDefault.java
rename to systests/SOAP12TestModuleC/src/main/java/org/apache/axis2/soap12testing/handlers/SOAP12OutFaultFlowHandlerDefault.java
diff --git a/modules/integration/test-resources/SOAP12Testing/SOAP12TestModuleB/org/apache/axis2/soap12testing/handlers/SOAP12OutFlowHandlerDefault.java b/systests/SOAP12TestModuleC/src/main/java/org/apache/axis2/soap12testing/handlers/SOAP12OutFlowHandlerDefault.java
similarity index 100%
copy from modules/integration/test-resources/SOAP12Testing/SOAP12TestModuleB/org/apache/axis2/soap12testing/handlers/SOAP12OutFlowHandlerDefault.java
copy to systests/SOAP12TestModuleC/src/main/java/org/apache/axis2/soap12testing/handlers/SOAP12OutFlowHandlerDefault.java
diff --git a/systests/SOAP12TestServiceB/pom.xml b/systests/SOAP12TestServiceB/pom.xml
new file mode 100644
index 0000000..add68b7
--- /dev/null
+++ b/systests/SOAP12TestServiceB/pom.xml
@@ -0,0 +1,50 @@
+<?xml version="1.0"?>
+<!--
+  ~ Licensed to the Apache Software Foundation (ASF) under one
+  ~ or more contributor license agreements. See the NOTICE file
+  ~ distributed with this work for additional information
+  ~ regarding copyright ownership. The ASF licenses this file
+  ~ to you under the Apache License, Version 2.0 (the
+  ~ "License"); you may not use this file except in compliance
+  ~ with the License. You may obtain a copy of the License at
+  ~
+  ~ http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing,
+  ~ software distributed under the License is distributed on an
+  ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  ~ KIND, either express or implied. See the License for the
+  ~ specific language governing permissions and limitations
+  ~ under the License.
+  -->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.apache.axis2</groupId>
+        <artifactId>systests</artifactId>
+        <version>1.8.0-SNAPSHOT</version>
+    </parent>
+    <artifactId>SOAP12TestServiceB</artifactId>
+    <packaging>aar</packaging>
+    <url>http://axis.apache.org/axis2/java/core/</url>
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.axis2</groupId>
+                <artifactId>axis2-aar-maven-plugin</artifactId>
+                <extensions>true</extensions>
+                <configuration>
+                    <servicesXmlFile>services.xml</servicesXmlFile>
+                    <includeDependencies>false</includeDependencies>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.axis2</groupId>
+            <artifactId>axis2-kernel</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+    </dependencies>
+</project>
diff --git a/modules/integration/test-resources/SOAP12Testing/SOAP12TestServiceB/META-INF/services.xml b/systests/SOAP12TestServiceB/services.xml
similarity index 100%
rename from modules/integration/test-resources/SOAP12Testing/SOAP12TestServiceB/META-INF/services.xml
rename to systests/SOAP12TestServiceB/services.xml
diff --git a/modules/integration/test-resources/SOAP12Testing/SOAP12TestServiceB/org/apache/axis2/soap12testing/webservices/SOAP12TestWebServiceDefault.java b/systests/SOAP12TestServiceB/src/main/java/org/apache/axis2/soap12testing/webservices/SOAP12TestWebServiceDefault.java
similarity index 100%
rename from modules/integration/test-resources/SOAP12Testing/SOAP12TestServiceB/org/apache/axis2/soap12testing/webservices/SOAP12TestWebServiceDefault.java
rename to systests/SOAP12TestServiceB/src/main/java/org/apache/axis2/soap12testing/webservices/SOAP12TestWebServiceDefault.java
diff --git a/systests/SOAP12TestServiceC/pom.xml b/systests/SOAP12TestServiceC/pom.xml
new file mode 100644
index 0000000..dd8b0ff
--- /dev/null
+++ b/systests/SOAP12TestServiceC/pom.xml
@@ -0,0 +1,50 @@
+<?xml version="1.0"?>
+<!--
+  ~ Licensed to the Apache Software Foundation (ASF) under one
+  ~ or more contributor license agreements. See the NOTICE file
+  ~ distributed with this work for additional information
+  ~ regarding copyright ownership. The ASF licenses this file
+  ~ to you under the Apache License, Version 2.0 (the
+  ~ "License"); you may not use this file except in compliance
+  ~ with the License. You may obtain a copy of the License at
+  ~
+  ~ http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing,
+  ~ software distributed under the License is distributed on an
+  ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  ~ KIND, either express or implied. See the License for the
+  ~ specific language governing permissions and limitations
+  ~ under the License.
+  -->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.apache.axis2</groupId>
+        <artifactId>systests</artifactId>
+        <version>1.8.0-SNAPSHOT</version>
+    </parent>
+    <artifactId>SOAP12TestServiceC</artifactId>
+    <packaging>aar</packaging>
+    <url>http://axis.apache.org/axis2/java/core/</url>
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.axis2</groupId>
+                <artifactId>axis2-aar-maven-plugin</artifactId>
+                <extensions>true</extensions>
+                <configuration>
+                    <servicesXmlFile>services.xml</servicesXmlFile>
+                    <includeDependencies>false</includeDependencies>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.axis2</groupId>
+            <artifactId>axis2-kernel</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+    </dependencies>
+</project>
diff --git a/modules/integration/test-resources/SOAP12Testing/SOAP12TestServiceC/META-INF/services.xml b/systests/SOAP12TestServiceC/services.xml
similarity index 100%
rename from modules/integration/test-resources/SOAP12Testing/SOAP12TestServiceC/META-INF/services.xml
rename to systests/SOAP12TestServiceC/services.xml
diff --git a/modules/integration/test-resources/SOAP12Testing/SOAP12TestServiceB/org/apache/axis2/soap12testing/webservices/SOAP12TestWebServiceDefault.java b/systests/SOAP12TestServiceC/src/main/java/org/apache/axis2/soap12testing/webservices/SOAP12TestWebServiceDefault.java
similarity index 100%
copy from modules/integration/test-resources/SOAP12Testing/SOAP12TestServiceB/org/apache/axis2/soap12testing/webservices/SOAP12TestWebServiceDefault.java
copy to systests/SOAP12TestServiceC/src/main/java/org/apache/axis2/soap12testing/webservices/SOAP12TestWebServiceDefault.java
diff --git a/systests/echo/pom.xml b/systests/echo/pom.xml
new file mode 100644
index 0000000..a8388df
--- /dev/null
+++ b/systests/echo/pom.xml
@@ -0,0 +1,50 @@
+<?xml version="1.0"?>
+<!--
+  ~ Licensed to the Apache Software Foundation (ASF) under one
+  ~ or more contributor license agreements. See the NOTICE file
+  ~ distributed with this work for additional information
+  ~ regarding copyright ownership. The ASF licenses this file
+  ~ to you under the Apache License, Version 2.0 (the
+  ~ "License"); you may not use this file except in compliance
+  ~ with the License. You may obtain a copy of the License at
+  ~
+  ~ http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing,
+  ~ software distributed under the License is distributed on an
+  ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  ~ KIND, either express or implied. See the License for the
+  ~ specific language governing permissions and limitations
+  ~ under the License.
+  -->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.apache.axis2</groupId>
+        <artifactId>systests</artifactId>
+        <version>1.8.0-SNAPSHOT</version>
+    </parent>
+    <artifactId>echo</artifactId>
+    <packaging>aar</packaging>
+    <url>http://axis.apache.org/axis2/java/core/</url>
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.axis2</groupId>
+                <artifactId>axis2-aar-maven-plugin</artifactId>
+                <extensions>true</extensions>
+                <configuration>
+                    <servicesXmlFile>services.xml</servicesXmlFile>
+                    <includeDependencies>false</includeDependencies>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.axis2</groupId>
+            <artifactId>axis2-kernel</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+    </dependencies>
+</project>
diff --git a/modules/webapp/src/main/webapp/axis2-web/disengage.jsp b/systests/echo/services.xml
similarity index 75%
copy from modules/webapp/src/main/webapp/axis2-web/disengage.jsp
copy to systests/echo/services.xml
index 0c5c055..e9ef0fc 100644
--- a/modules/webapp/src/main/webapp/axis2-web/disengage.jsp
+++ b/systests/echo/services.xml
@@ -1,4 +1,4 @@
-<%--
+<!--
   ~ Licensed to the Apache Software Foundation (ASF) under one
   ~ or more contributor license agreements. See the NOTICE file
   ~ distributed with this work for additional information
@@ -15,8 +15,11 @@
   ~ KIND, either express or implied. See the License for the
   ~ specific language governing permissions and limitations
   ~ under the License.
-  --%>
-<%@ page contentType="text/html;charset=UTF-8" language="java" %>
-<jsp:include page="include/adminheader.jsp"/>
-<%=request.getSession().getAttribute("status")%>
-<jsp:include page="include/adminfooter.jsp"/>
\ No newline at end of file
+  -->
+
+<service name="Echo">
+    <parameter name="ServiceClass">org.apache.axis2.echo.EchoService</parameter>
+    <operation name="echo">
+        <messageReceiver class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/>
+    </operation>
+</service>
\ No newline at end of file
diff --git a/modules/transport/local/src/org/apache/axis2/transport/local/NonBlockingLocalTransportSender.java b/systests/echo/src/main/java/org/apache/axis2/echo/EchoService.java
similarity index 81%
rename from modules/transport/local/src/org/apache/axis2/transport/local/NonBlockingLocalTransportSender.java
rename to systests/echo/src/main/java/org/apache/axis2/echo/EchoService.java
index 1576c00..535c0d4 100644
--- a/modules/transport/local/src/org/apache/axis2/transport/local/NonBlockingLocalTransportSender.java
+++ b/systests/echo/src/main/java/org/apache/axis2/echo/EchoService.java
@@ -16,13 +16,12 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+package org.apache.axis2.echo;
 
-package org.apache.axis2.transport.local;
+import org.apache.axiom.om.OMElement;
 
-public class NonBlockingLocalTransportSender extends LocalTransportSender {
-
-    protected boolean isNonBlocking() {
-        return true;
+public class EchoService {
+    public OMElement echo(OMElement element) {
+        return element;
     }
-
 }
diff --git a/systests/pom.xml b/systests/pom.xml
new file mode 100644
index 0000000..ff6b82a
--- /dev/null
+++ b/systests/pom.xml
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  ~ Licensed to the Apache Software Foundation (ASF) under one
+  ~ or more contributor license agreements. See the NOTICE file
+  ~ distributed with this work for additional information
+  ~ regarding copyright ownership. The ASF licenses this file
+  ~ to you under the Apache License, Version 2.0 (the
+  ~ "License"); you may not use this file except in compliance
+  ~ with the License. You may obtain a copy of the License at
+  ~
+  ~ http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing,
+  ~ software distributed under the License is distributed on an
+  ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  ~ KIND, either express or implied. See the License for the
+  ~ specific language governing permissions and limitations
+  ~ under the License.
+  -->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.apache.axis2</groupId>
+        <artifactId>axis2</artifactId>
+        <version>1.8.0-SNAPSHOT</version>
+    </parent>
+
+    <artifactId>systests</artifactId>
+    <packaging>pom</packaging>
+    <url>http://axis.apache.org/axis2/java/core/</url>
+
+    <build>
+        <plugins>
+            <plugin>
+                <artifactId>maven-deploy-plugin</artifactId>
+                <configuration>
+                    <skip>true</skip>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+    
+    <modules>
+        <module>echo</module>
+        <module>SOAP12TestModuleB</module>
+        <module>SOAP12TestModuleC</module>
+        <module>SOAP12TestServiceB</module>
+        <module>SOAP12TestServiceC</module>
+        <module>webapp-tests</module>
+    </modules>
+</project>
diff --git a/systests/webapp-tests/pom.xml b/systests/webapp-tests/pom.xml
new file mode 100644
index 0000000..830a1f6
--- /dev/null
+++ b/systests/webapp-tests/pom.xml
@@ -0,0 +1,185 @@
+<?xml version="1.0"?>
+<!--
+  ~ Licensed to the Apache Software Foundation (ASF) under one
+  ~ or more contributor license agreements. See the NOTICE file
+  ~ distributed with this work for additional information
+  ~ regarding copyright ownership. The ASF licenses this file
+  ~ to you under the Apache License, Version 2.0 (the
+  ~ "License"); you may not use this file except in compliance
+  ~ with the License. You may obtain a copy of the License at
+  ~
+  ~ http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing,
+  ~ software distributed under the License is distributed on an
+  ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  ~ KIND, either express or implied. See the License for the
+  ~ specific language governing permissions and limitations
+  ~ under the License.
+  -->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.apache.axis2</groupId>
+        <artifactId>systests</artifactId>
+        <version>1.8.0-SNAPSHOT</version>
+    </parent>
+    <artifactId>webapp-tests</artifactId>
+    <url>http://axis.apache.org/axis2/java/core/</url>
+    <dependencies>
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>axis2-webapp</artifactId>
+            <version>${project.version}</version>
+            <type>war</type>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>echo</artifactId>
+            <version>${project.version}</version>
+            <type>aar</type>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>com.google.truth</groupId>
+            <artifactId>truth</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>net.sourceforge.jwebunit</groupId>
+            <artifactId>jwebunit-htmlunit-plugin</artifactId>
+            <version>3.3</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.slf4j</groupId>
+            <artifactId>slf4j-jdk14</artifactId>
+            <version>1.6.6</version>
+            <scope>test</scope>
+        </dependency>
+    </dependencies>
+    <!-- htmlunit requires newer versions of certain libraries -->
+    <dependencyManagement>
+        <dependencies>
+            <dependency>
+                <groupId>commons-io</groupId>
+                <artifactId>commons-io</artifactId>
+                <version>2.4</version>
+            </dependency>
+        </dependencies>
+    </dependencyManagement>
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>com.github.veithen.alta</groupId>
+                <artifactId>alta-maven-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <id>war-location</id>
+                        <goals>
+                            <goal>generate-properties</goal>
+                        </goals>
+                        <configuration>
+                            <name>webapp</name>
+                            <value>%file%</value>
+                            <dependencySet>
+                                <scope>test</scope>
+                                <includes>
+                                    <include>*:axis2-webapp:war:*</include>
+                                </includes>
+                            </dependencySet>
+                        </configuration>
+                    </execution>
+                    <execution>
+                        <id>aar-location</id>
+                        <goals>
+                            <goal>generate-test-resources</goal>
+                        </goals>
+                        <configuration>
+                            <name>echo-service-location.txt</name>
+                            <value>%file%</value>
+                            <dependencySet>
+                                <scope>test</scope>
+                                <includes>
+                                    <include>*:echo:aar:*</include>
+                                </includes>
+                            </dependencySet>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+            <plugin>
+                <groupId>org.codehaus.mojo</groupId>
+                <artifactId>build-helper-maven-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <id>reserve-network-port</id>
+                        <goals>
+                            <goal>reserve-network-port</goal>
+                        </goals>
+                        <phase>pre-integration-test</phase>
+                        <configuration>
+                            <portNames>
+                                <portName>jetty.stopPort</portName>
+                                <portName>jetty.httpPort</portName>
+                            </portNames>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+            <plugin>
+                <groupId>org.eclipse.jetty</groupId>
+                <artifactId>jetty-maven-plugin</artifactId>
+                <configuration>
+                    <stopKey>foo</stopKey>
+                    <stopPort>${jetty.stopPort}</stopPort>
+                    <stopWait>10</stopWait>
+                    <httpConnector>
+                        <port>${jetty.httpPort}</port>
+                    </httpConnector>
+                    <war>${webapp}</war>
+                    <webApp>
+                        <contextPath>/axis2</contextPath>
+                    </webApp>
+                </configuration>
+                <executions>
+                    <execution>
+                        <id>start-jetty</id>
+                        <phase>pre-integration-test</phase>
+                        <goals>
+                            <goal>deploy-war</goal>
+                        </goals>
+                        <configuration>
+                            <!-- TODO: necessary? -->
+                            <daemon>true</daemon>
+                        </configuration>
+                    </execution>
+                    <execution>
+                        <id>stop-jetty</id>
+                        <phase>post-integration-test</phase>
+                        <goals>
+                            <goal>stop</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+            <plugin>
+                <artifactId>maven-failsafe-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>integration-test</goal>
+                            <goal>verify</goal>
+                        </goals>
+                        <configuration>
+                            <systemPropertyVariables>
+                                <jetty.httpPort>${jetty.httpPort}</jetty.httpPort>
+                            </systemPropertyVariables>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
+</project>
diff --git a/systests/webapp-tests/src/test/java/org/apache/axis2/webapp/Axis2WebTester.java b/systests/webapp-tests/src/test/java/org/apache/axis2/webapp/Axis2WebTester.java
new file mode 100644
index 0000000..cea751d
--- /dev/null
+++ b/systests/webapp-tests/src/test/java/org/apache/axis2/webapp/Axis2WebTester.java
@@ -0,0 +1,55 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.axis2.webapp;
+
+import java.util.Iterator;
+import java.util.List;
+
+import javax.servlet.http.Cookie;
+
+import org.junit.rules.TestRule;
+import org.junit.runner.Description;
+import org.junit.runners.model.Statement;
+
+import net.sourceforge.jwebunit.junit.WebTester;
+
+public class Axis2WebTester extends WebTester implements TestRule {
+    public Statement apply(final Statement base, Description description) {
+        return new Statement() {
+            @Override
+            public void evaluate() throws Throwable {
+                setBaseUrl("http://localhost:" + System.getProperty("jetty.httpPort", "8080") + "/axis2");
+                base.evaluate();
+            }
+        };
+    }
+
+    public String getSessionId() {
+        List<?> cookies = getTestingEngine().getCookies();
+        for (Iterator<?> i = cookies.iterator(); i.hasNext();) {
+            Cookie cookie = (Cookie)i.next();
+            if (cookie.getName().equals("JSESSIONID")) {
+                return cookie.getValue();
+            }
+        }
+        String path = getTestingEngine().getPageURL().getPath();
+        int idx = path.lastIndexOf(";jsessionid=");
+        return idx == -1 ? null : path.substring(idx+12);
+    }
+}
diff --git a/systests/webapp-tests/src/test/java/org/apache/axis2/webapp/AxisAdminServletITCase.java b/systests/webapp-tests/src/test/java/org/apache/axis2/webapp/AxisAdminServletITCase.java
new file mode 100644
index 0000000..96cbc29
--- /dev/null
+++ b/systests/webapp-tests/src/test/java/org/apache/axis2/webapp/AxisAdminServletITCase.java
@@ -0,0 +1,97 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.axis2.webapp;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import org.apache.commons.io.IOUtils;
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+
+public class AxisAdminServletITCase {
+    @Rule
+    public Axis2WebTester tester = new Axis2WebTester();
+
+    @Before
+    public void setUp() {
+        tester.beginAt("/axis2-admin/");
+        tester.setTextField("userName", "admin");
+        tester.setTextField("password", "axis2");
+        tester.submit();
+    }
+
+    @Test
+    public void testAvailableServices() {
+        tester.clickLinkWithText("Available Services");
+        tester.assertMatch("Service EPR : http://localhost:[0-9]+/axis2/services/Version");
+        tester.assertTextPresent("Service Description : This service is to get the running Axis version");
+    }
+
+    /**
+     * Tests that the admin console is not vulnerable to session fixation attacks. This tests
+     * attempts to log in with an existing session. This should result in a new session with a
+     * different session ID.
+     */
+    @Test
+    public void loginInvalidatesExistingSession() {
+        String sessionId = tester.getSessionId();
+        assertThat(sessionId).isNotNull();
+        tester.gotoPage("/axis2-admin/welcome");
+        tester.setTextField("userName", "admin");
+        tester.setTextField("password", "axis2");
+        tester.submit();
+        assertThat(tester.getSessionId()).isNotEqualTo(sessionId);
+    }
+
+    @Test
+    public void testUploadRemoveService() throws Exception {
+        tester.clickLinkWithText("Upload Service");
+        String echoServiceLocation = IOUtils.toString(AxisAdminServletITCase.class.getResource("/echo-service-location.txt"));
+        tester.setTextField("filename", echoServiceLocation);
+        tester.clickButtonWithText(" Upload ");
+        tester.assertMatch("File echo-.+\\.aar successfully uploaded");
+        int attempt = 0;
+        while (true) {
+            attempt++;
+            tester.clickLinkWithText("Available Services");
+            try {
+                tester.assertFormPresent("Echo");
+                break;
+            } catch (AssertionError ex) {
+                if (attempt < 30) {
+                    Thread.sleep(1000);
+                } else {
+                    throw ex;
+                } 
+            }
+        }
+        tester.setWorkingForm("Echo");
+        tester.submit();
+        tester.assertTextPresent("Service 'Echo' has been successfully removed.");
+    }
+
+    @Test
+    public void testEditServiceParameters() {
+        tester.clickLinkWithText("Edit Parameters");
+        tester.selectOption("axisService", "Version");
+        tester.clickButtonWithText(" Edit Parameters ");
+        tester.assertTextFieldEquals("Version_ServiceClass", "sample.axisversion.Version");
+    }
+}
diff --git a/systests/webapp-tests/src/test/java/org/apache/axis2/webapp/AxisServletITCase.java b/systests/webapp-tests/src/test/java/org/apache/axis2/webapp/AxisServletITCase.java
new file mode 100644
index 0000000..7e5f581
--- /dev/null
+++ b/systests/webapp-tests/src/test/java/org/apache/axis2/webapp/AxisServletITCase.java
@@ -0,0 +1,45 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.axis2.webapp;
+
+import org.junit.Rule;
+import org.junit.Test;
+
+public class AxisServletITCase {
+    @Rule
+    public Axis2WebTester tester = new Axis2WebTester();
+
+    @Test
+    public void testListServices() {
+        tester.beginAt("/");
+        tester.clickLinkWithExactText("Services");
+        tester.assertLinkPresentWithExactText("Version");
+        tester.assertTextPresent("Service Description : This service is to get the running Axis version");
+    }
+
+    /**
+     * Regression test for AXIS2-5683.
+     */
+    @Test
+    public void testHandlePolicyRequestXSS() {
+        tester.setIgnoreFailingStatusCodes(true);
+        tester.beginAt("/services/Version?policy&id=<xss>");
+        tester.assertResponseCode(404);
+    }
+}
diff --git a/systests/webapp-tests/src/test/java/org/apache/axis2/webapp/NoSessionITCase.java b/systests/webapp-tests/src/test/java/org/apache/axis2/webapp/NoSessionITCase.java
new file mode 100644
index 0000000..04b02a2
--- /dev/null
+++ b/systests/webapp-tests/src/test/java/org/apache/axis2/webapp/NoSessionITCase.java
@@ -0,0 +1,60 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.axis2.webapp;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import java.util.Arrays;
+import java.util.Collection;
+
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.Parameterized;
+import org.junit.runners.Parameterized.Parameter;
+import org.junit.runners.Parameterized.Parameters;
+
+/**
+ * Test that pages that don't require login don't create HTTP sessions. Pages that create HTTP
+ * sessions without the user being logged in may be exploited in session fixation attacks.
+ */
+@RunWith(Parameterized.class)
+public class NoSessionITCase {
+    @Parameters(name = "{0}")
+    public static Collection<Object[]> data() {
+        return Arrays.asList(new Object[][] {
+            { "/" },
+            { "/services/listServices" },
+            { "/services/ListFaultyServices" },
+            { "/axis2-web/HappyAxis.jsp" },
+            { "/axis2-admin/" } });
+    }
+    
+    @Parameter
+    public String page;
+    
+    @Rule
+    public Axis2WebTester tester = new Axis2WebTester();
+    
+    @Test
+    public void test() {
+        tester.beginAt(page);
+        assertThat(tester.getSessionId()).isNull();
+    }
+}