[maven-scm] copy for tag cxf-build-utils-2.3.0

git-svn-id: https://svn.apache.org/repos/asf/cxf/build-utils/tags/cxf-build-utils-2.3.0@1005602 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/buildtools/pom.xml b/buildtools/pom.xml
new file mode 100644
index 0000000..3dbca63
--- /dev/null
+++ b/buildtools/pom.xml
@@ -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.
+-->
+<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.cxf.build-utils</groupId>
+        <artifactId>cxf-build-utils</artifactId>
+        <version>2.3.0</version>
+    </parent>
+
+    <modelVersion>4.0.0</modelVersion>
+    <groupId>org.apache.cxf.build-utils</groupId>
+    <artifactId>cxf-buildtools</artifactId>
+    <name>Apache CXF Buildtools</name>
+    <url>http://cxf.apache.org</url>
+    <packaging>jar</packaging>
+
+    <properties>
+        <maven.test.skip>true</maven.test.skip>
+    </properties>
+
+    <dependencies>
+        <dependency>
+            <groupId>jdom</groupId>
+            <artifactId>jdom</artifactId>
+            <version>1.0</version>
+            <optional>true</optional>
+        </dependency>
+        <dependency>
+            <groupId>org.codehaus.plexus</groupId>
+            <artifactId>plexus-utils</artifactId>
+            <version>2.0.5</version>
+            <optional>true</optional>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.maven</groupId>
+            <artifactId>maven-plugin-api</artifactId>
+            <version>2.0.7</version>
+            <optional>true</optional>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.maven</groupId>
+            <artifactId>maven-model</artifactId>
+            <version>2.0.7</version>
+            <optional>true</optional>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.maven</groupId>
+            <artifactId>maven-project</artifactId>
+            <version>2.0.7</version>
+            <optional>true</optional>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.maven.plugins</groupId>
+            <artifactId>maven-shade-plugin</artifactId>
+            <version>1.3.2</version>
+            <optional>true</optional>
+            <scope>provided</scope>
+        </dependency>
+        <dependency>
+            <groupId>pmd</groupId>
+            <artifactId>pmd</artifactId>
+            <version>4.2</version>
+            <scope>provided</scope>
+        </dependency>
+    </dependencies>
+</project>
diff --git a/buildtools/src/main/java/org/apache/cxf/maven/CXFAllTransformer.java b/buildtools/src/main/java/org/apache/cxf/maven/CXFAllTransformer.java
new file mode 100644
index 0000000..3ce3e38
--- /dev/null
+++ b/buildtools/src/main/java/org/apache/cxf/maven/CXFAllTransformer.java
@@ -0,0 +1,132 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT 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.cxf.maven;
+
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStreamWriter;
+import java.io.Writer;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.jar.JarEntry;
+import java.util.jar.JarOutputStream;
+
+import org.apache.maven.plugins.shade.resource.ResourceTransformer;
+import org.jdom.Content;
+import org.jdom.Document;
+import org.jdom.Element;
+import org.jdom.JDOMException;
+import org.jdom.input.SAXBuilder;
+
+public class CXFAllTransformer implements ResourceTransformer {
+    
+    byte buffer[] = new byte[1024];
+    Map<String, ByteArrayOutputStream> extensions 
+        = new LinkedHashMap<String, ByteArrayOutputStream>();
+    String lastResource;
+
+    public CXFAllTransformer() {
+        super();
+    }
+
+    public boolean canTransformResource(String r) {
+        if (r.startsWith("META-INF/cxf/cxf-extension-")
+            && r.endsWith(".xml")) {
+            lastResource = r;
+            return true;
+        }
+        return false;
+    }
+    public boolean hasTransformedResource() {
+        return !extensions.isEmpty();
+    }
+
+    public void processResource(String resource, InputStream is, List relocators) throws IOException {
+        processResource(is);
+    }
+    public void processResource(InputStream is) throws IOException {
+        ByteArrayOutputStream bout = new ByteArrayOutputStream(1024);
+        int i = is.read(buffer);
+        while (i != -1) {
+            bout.write(buffer, 0, i);
+            i = is.read(buffer);
+        }
+        extensions.put(lastResource, bout);
+    }
+    public void modifyOutputStream(JarOutputStream jos) throws IOException {
+        List<String> imps = new ArrayList<String>(extensions.keySet());
+        for (Map.Entry<String, ByteArrayOutputStream> ent : extensions.entrySet()) {
+            jos.putNextEntry(new JarEntry(ent.getKey()));
+            ent.getValue().writeTo(jos);
+            try {
+                Document r = new SAXBuilder()
+                    .build(new ByteArrayInputStream(ent.getValue().toByteArray()));
+                
+                Element root = r.getRootElement();
+                for (Iterator itr = root.getChildren().iterator(); itr.hasNext();) {
+                    Content n = (Content)itr.next();
+                    if (n instanceof Element) {
+                        Element e = (Element)n;
+                        if ("import".equals(e.getName())
+                            && "http://www.springframework.org/schema/beans".equals(e.getNamespaceURI())) {
+                            
+                            //remove stuff that is imported from other extensions to
+                            //keep them from being loaded twice. (it's not an issue
+                            //to load them twice, there just is a performance 
+                            //penalty in doing so
+                            String loc = e.getAttributeValue("resource");
+                            if (loc.startsWith("classpath:META-INF/cxf/cxf")) {
+                                
+                                loc = loc.substring(10);
+                                imps.remove(loc);
+                            }
+                        }
+                    }
+                }
+            } catch (JDOMException e) {
+                throw new RuntimeException(e);
+            }
+        }
+        
+        if (imps.size() > 0) {
+            jos.putNextEntry(new JarEntry("META-INF/cxf/cxf-all.xml"));
+            Writer writer = new OutputStreamWriter(jos, "UTF-8");
+            writer.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
+            writer.append("<beans xmlns=\"http://www.springframework.org/schema/beans\"\n");
+            writer.append("    xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n");
+            writer.append("    xsi:schemaLocation=\"");
+            writer.append("http://www.springframework.org/schema/beans ");
+            writer.append("http://www.springframework.org/schema/beans/spring-beans.xsd\">\n");
+            writer.append("    <import resource=\"classpath:META-INF/cxf/cxf.xml\"/>\n");
+            for (String res : imps) {
+                writer.append("    <import resource=\"classpath:");
+                writer.append(res);
+                writer.append("\"/>\n");
+            }
+            writer.append("</beans>");
+            writer.flush();
+        }
+    }
+}
+
diff --git a/buildtools/src/main/java/org/apache/cxf/maven/PluginTransformer.java b/buildtools/src/main/java/org/apache/cxf/maven/PluginTransformer.java
new file mode 100644
index 0000000..35d271c
--- /dev/null
+++ b/buildtools/src/main/java/org/apache/cxf/maven/PluginTransformer.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.cxf.maven;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.Iterator;
+import java.util.List;
+import java.util.jar.JarEntry;
+import java.util.jar.JarOutputStream;
+
+import org.apache.maven.plugins.shade.resource.ResourceTransformer;
+import org.jdom.Content;
+import org.jdom.Document;
+import org.jdom.Element;
+import org.jdom.JDOMException;
+import org.jdom.input.SAXBuilder;
+import org.jdom.output.Format;
+import org.jdom.output.XMLOutputter;
+
+public class PluginTransformer implements ResourceTransformer {
+    public static final String XSI_NS = "http://www.w3.org/2001/XMLSchema-instance";
+
+    String resource;
+    Document doc;
+
+    public PluginTransformer() {
+        super();
+    }
+
+    public boolean canTransformResource(String r) {
+        r = r.toLowerCase();
+
+        if (resource != null && resource.toLowerCase().equals(r)) {
+            return true;
+        }
+
+        return false;
+    }
+
+    public void processResource(String resource, InputStream is, List relocators) throws IOException {
+        processResource(is);
+    }
+    public void processResource(InputStream is) throws IOException {
+        Document r;
+        try {
+            r = new SAXBuilder().build(is);
+        } catch (JDOMException e) {
+            throw new RuntimeException(e);
+        }
+
+        if (doc == null) {
+            doc = r;
+            
+            Element el = doc.getRootElement();
+            el.setAttribute("name", "default");
+            el.setAttribute("provider", "cxf.apache.org");
+        } else {
+            Element root = r.getRootElement();
+
+            for (Iterator itr = root.getChildren().iterator(); itr.hasNext();) {
+                Content n = (Content)itr.next();
+                itr.remove();
+
+                doc.getRootElement().addContent(n);
+            }
+        }
+    }
+
+    public boolean hasTransformedResource() {
+        return doc != null;
+    }
+
+    public void modifyOutputStream(JarOutputStream jos) throws IOException {
+        jos.putNextEntry(new JarEntry(resource));
+
+        new XMLOutputter(Format.getPrettyFormat()).output(doc, jos);
+        doc = null;
+    }
+
+}
diff --git a/buildtools/src/main/java/org/apache/cxf/pmd/UnsafeStringConstructorRule.java b/buildtools/src/main/java/org/apache/cxf/pmd/UnsafeStringConstructorRule.java
new file mode 100644
index 0000000..141ad91
--- /dev/null
+++ b/buildtools/src/main/java/org/apache/cxf/pmd/UnsafeStringConstructorRule.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.cxf.pmd;
+
+import java.util.List;
+
+import net.sourceforge.pmd.AbstractJavaRule;
+import net.sourceforge.pmd.RuleContext;
+import net.sourceforge.pmd.ast.ASTAdditiveExpression;
+import net.sourceforge.pmd.ast.ASTAllocationExpression;
+import net.sourceforge.pmd.ast.ASTArgumentList;
+import net.sourceforge.pmd.ast.ASTArrayDimsAndInits;
+import net.sourceforge.pmd.ast.ASTClassOrInterfaceType;
+import net.sourceforge.pmd.ast.ASTExpression;
+import net.sourceforge.pmd.ast.ASTName;
+import net.sourceforge.pmd.ast.Node;
+import net.sourceforge.pmd.ast.SimpleNode;
+import net.sourceforge.pmd.symboltable.NameDeclaration;
+import net.sourceforge.pmd.symboltable.VariableNameDeclaration;
+import net.sourceforge.pmd.typeresolution.TypeHelper;
+
+/**
+ * Look for new String(byte[]) or new String(byte[], start, end)
+ * and complain.
+ */
+public class UnsafeStringConstructorRule extends AbstractJavaRule {
+
+    /** {@inheritDoc} */
+    @Override
+    public Object visit(ASTAllocationExpression node, Object data) {
+        if (!(node.jjtGetChild(0) instanceof ASTClassOrInterfaceType)) {
+            return data;
+        }
+
+        if (!TypeHelper.isA((ASTClassOrInterfaceType)node.jjtGetChild(0), String.class)) {
+            return data;
+        }
+        
+        ASTArgumentList arglist = node.getFirstChildOfType(ASTArgumentList.class);
+        if (arglist == null) { // unlikely
+            return data;
+        }
+        
+        // one of the two possibilities ...
+        if (arglist.jjtGetNumChildren() == 1 || arglist.jjtGetNumChildren() == 3) {
+            ASTExpression firstArgExpr = arglist.getFirstChildOfType(ASTExpression.class);
+            Class<?> exprType = firstArgExpr.getType();
+            // pmd reports the type as byte, not byte[]. But since
+            // there is no such thing as new String(byte), it seems
+            // safe enough to take that as good enough.
+            if (exprType != null) {
+                if (exprType == Byte.TYPE || 
+                    (exprType.isArray() && exprType.getComponentType() == Byte.TYPE)) {
+                    addViolation(data, node);
+                }
+            }
+        }
+        return data;
+
+    }
+
+}
diff --git a/buildtools/src/main/resources/META-INF/LICENSE b/buildtools/src/main/resources/META-INF/LICENSE
new file mode 100644
index 0000000..d645695
--- /dev/null
+++ b/buildtools/src/main/resources/META-INF/LICENSE
@@ -0,0 +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.
diff --git a/buildtools/src/main/resources/META-INF/NOTICE b/buildtools/src/main/resources/META-INF/NOTICE
new file mode 100644
index 0000000..064a0fe
--- /dev/null
+++ b/buildtools/src/main/resources/META-INF/NOTICE
@@ -0,0 +1,70 @@
+// ------------------------------------------------------------------
+// NOTICE file corresponding to the section 4d of The Apache License,
+// Version 2.0, in this case for Apache CXF Buildtools
+// ------------------------------------------------------------------
+
+Apache CXF Buildtools
+Copyright 2006-2007 The Apache Software Foundation
+
+This product includes software developed at
+The Apache Software Foundation (http://www.apache.org/).
+
+
+This product includes/uses software, Maven Profile Model (http://maven.apache.org/maven-profile),
+developed by Apache Software Foundation  (http://www.apache.org/)
+License: The Apache Software License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+This product includes/uses software, Unnamed - junit:junit:jar:3.8.1
+
+This product includes/uses software, Default Plexus Container,
+developed by Codehaus  (http://www.codehaus.org/)
+
+This product includes/uses software, Maven Project Builder (http://maven.apache.org/maven-project),
+developed by Apache Software Foundation  (http://www.apache.org/)
+License: The Apache Software License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+This product includes/uses software, Maven Local Settings Model (http://maven.apache.org/maven-settings),
+developed by Apache Software Foundation  (http://www.apache.org/)
+License: The Apache Software License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+This product includes/uses software, classworlds (http://classworlds.codehaus.org/),
+developed by The Codehaus  (http://codehaus.org/)
+
+This product includes/uses software, Plexus Common Utilities,
+developed by Codehaus  (http://www.codehaus.org/)
+License: The Apache Software License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+This product includes/uses software, Maven Repository Metadata Model (http://maven.apache.org/maven-repository-metadata),
+developed by Apache Software Foundation  (http://www.apache.org/)
+License: The Apache Software License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+This product includes/uses software, Unnamed - jdom:jdom:jar:1.0
+
+This product includes/uses software, Maven Model (http://maven.apache.org/maven-model),
+developed by Apache Software Foundation  (http://www.apache.org/)
+License: The Apache Software License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+This product includes/uses software, ASM All (http://asm.objectweb.org/asm-all),
+developed by ObjectWeb  (http://www.objectweb.org/)
+
+This product includes/uses software, Maven Artifact (http://maven.apache.org/maven-artifact),
+developed by Apache Software Foundation  (http://www.apache.org/)
+License: The Apache Software License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+This product includes/uses software, Maven Artifact Manager (http://maven.apache.org/maven-artifact-manager),
+developed by Apache Software Foundation  (http://www.apache.org/)
+License: The Apache Software License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+This product includes/uses software, Maven Plugin API (http://maven.apache.org/maven-plugin-api),
+developed by Apache Software Foundation  (http://www.apache.org/)
+License: The Apache Software License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+This product includes/uses software, shade-maven-plugin (http://mojo.codehaus.org/shade-maven-plugin),
+developed by Codehaus  (http://codehaus.org)
+
+This product includes/uses software, Maven Wagon API (http://maven.apache.org/wagon/wagon-provider-api),
+developed by Apache Software Foundation  (http://www.apache.org/)
+License: The Apache Software License, Version 2.0  (http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+
+
diff --git a/buildtools/src/main/resources/cxf-checkstyle-corba.xml b/buildtools/src/main/resources/cxf-checkstyle-corba.xml
new file mode 100644
index 0000000..e30862b
--- /dev/null
+++ b/buildtools/src/main/resources/cxf-checkstyle-corba.xml
@@ -0,0 +1,301 @@
+<?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.
+-->
+<!DOCTYPE module PUBLIC
+    "-//Puppy Crawl//DTD Check Configuration 1.2//EN"
+    "http://www.puppycrawl.com/dtds/configuration_1_2.dtd">
+
+<!--
+	Checks to make sure the code meets the CXF coding guidelines which 
+	are similar to the Sun guidelines at:
+	http://java.sun.com/docs/codeconv/index.html
+	
+	It also enforces aa bunch of other "BestPractices like method
+	lengths, if/try depths, etc...
+-->
+
+<module name="Checker">
+	<!-- Checks whether files end with a new line.                        -->
+	<!-- See http://checkstyle.sf.net/config_misc.html#NewlineAtEndOfFile -->
+	<!--
+		<module name="NewlineAtEndOfFile"/>
+	-->
+
+	<!-- Checks that property files contain the same keys.         -->
+	<!-- See http://checkstyle.sf.net/config_misc.html#Translation -->
+	<module name="Translation" />
+
+	<!--<module name="StrictDuplicateCode"/>-->
+
+	<module name="TreeWalker">
+		<!-- Enable FileContentsHolder to allow us to in turn turn on suppression comments -->
+		<module name="FileContentsHolder" />
+		<!-- Checks for Javadoc comments.                     -->
+		<!-- See http://checkstyle.sf.net/config_javadoc.html -->
+		<!--
+			<module name="PackageHtml"/>
+			<module name="JavadocMethod"/>
+			<module name="JavadocType"/>
+			<module name="JavadocVariable"/>
+			<module name="JavadocStyle"/>
+		-->
+
+
+		<!-- Checks for Naming Conventions.                  -->
+		<!-- See http://checkstyle.sf.net/config_naming.html -->
+		<module name="ConstantName" />
+		<module name="LocalFinalVariableName" />
+		<module name="LocalVariableName" />
+		<module name="MemberName">
+            <property name="format"
+                      value="^[a-z_][a-zA-Z0-9_]*$"/>
+        </module>
+		<module name="MethodName">
+            <property name="format"
+                      value="^[a-z_][a-zA-Z0-9_]*$"/>
+        </module>
+		<module name="PackageName" />
+		<module name="ParameterName" />
+		<module name="StaticVariableName" />
+		<module name="TypeName" />
+
+		<!-- Checks for imports                              -->
+		<!-- See http://checkstyle.sf.net/config_import.html -->
+		<module name="AvoidStarImport">
+			<property name="excludes"
+				value="java.io,java.util,java.net,java.nio,java.nio.channels,java.lang.reflect,org.w3c.dom,org.xml.sax,java.awt,javax.swing,junit.framework" />
+		</module>
+		<module name="IllegalImport" /><!-- defaults to sun.* packages -->
+		<module name="RedundantImport" />
+		<module name="UnusedImports" />
+		<module name="ImportOrder">
+			<property name="groups"
+				value="java,javax,org.w3c,org.xml,junit,antlr,com,net,org,org.junit,*" />
+			<property name="ordered" value="true" />
+		</module>
+		<!--
+			<module name="ImportControl">
+			<property name="file" value="etc/import-control.xml"/>
+			</module>
+		-->
+
+
+		<!-- Checks for Size Violations.                    -->
+		<!-- See http://checkstyle.sf.net/config_sizes.html -->
+		<module name="AnonInnerLength">
+			<property name="max" value="40" />
+		</module>
+		<module name="ExecutableStatementCount">
+			<property name="max" value="75" />
+		</module>
+		<module name="LineLength">
+			<property name="max" value="110" />
+		</module>
+		<module name="MethodLength">
+			<property name="max" value="150" />
+			<property name="countEmpty" value="false" />
+		</module>
+		<module name="ParameterNumber">
+			<property name="max" value="7" />
+		</module>
+
+		<!-- Checks for whitespace                               -->
+		<!-- See http://checkstyle.sf.net/config_whitespace.html -->
+		<module name="EmptyForIteratorPad" />
+		<module name="EmptyForInitializerPad" />
+		<module name="MethodParamPad" />
+		<module name="NoWhitespaceAfter">
+			<property name="tokens"
+				value="ARRAY_INIT,BNOT,DEC,DOT,INC,LNOT,UNARY_MINUS,UNARY_PLUS" />
+		</module>
+		<module name="NoWhitespaceBefore" />
+		<module name="OperatorWrap" />
+		<module name="ParenPad" />
+		<module name="TypecastParenPad" />
+		<module name="WhitespaceAfter">
+			<property name="tokens" value="COMMA, SEMI" />
+		</module>
+		<module name="WhitespaceAround">
+			<property name="tokens"
+				value="ASSIGN, BAND, BAND_ASSIGN, BOR, BOR_ASSIGN, BSR, BSR_ASSIGN, BXOR, BXOR_ASSIGN, COLON, DIV, DIV_ASSIGN, EQUAL, GE, GT, LAND, LCURLY, LE, LITERAL_ASSERT, LITERAL_CATCH, LITERAL_DO, LITERAL_ELSE, LITERAL_FINALLY, LITERAL_FOR, LITERAL_IF, LITERAL_RETURN, LITERAL_SYNCHRONIZED, LITERAL_TRY, LITERAL_WHILE, LOR, LT, MINUS, MINUS_ASSIGN, MOD, MOD_ASSIGN, NOT_EQUAL, PLUS, PLUS_ASSIGN, QUESTION, RCURLY, SL, SLIST, SL_ASSIGN, SR, SR_ASSIGN, STAR, STAR_ASSIGN,TYPE_EXTENSION_AND" />
+		</module>
+
+
+		<!-- Modifier Checks                                    -->
+		<!-- See http://checkstyle.sf.net/config_modifiers.html -->
+		<module name="ModifierOrder" />
+		<module name="RedundantModifier" />
+
+
+		<!-- Checks for blocks. You know, those {}'s         -->
+		<!-- See http://checkstyle.sf.net/config_blocks.html -->
+		<module name="AvoidNestedBlocks">
+			<property name="allowInSwitchCase" value="true" />
+		</module>
+		<module name="EmptyBlock">
+			<property name="option" value="text" />
+		</module>
+		<module name="LeftCurly" />
+		<module name="NeedBraces" />
+		<module name="RightCurly" />
+
+
+		<!-- Checks for common coding problems               -->
+		<!-- See http://checkstyle.sf.net/config_coding.html -->
+		<!--<module name="ArrayTrailingComma"/>-->
+		<!--<module name="AvoidInlineConditionals"/>-->
+		<module name="CovariantEquals" />
+		<module name="DoubleCheckedLocking" />
+		<module name="EmptyStatement" />
+		<module name="EqualsHashCode" />
+		<!--<module name="FinalLocalVariable"/>-->
+		<module name="HiddenField">
+			<property name="ignoreConstructorParameter" value="true" />
+			<property name="ignoreSetter" value="true" />
+		</module>
+		<module name="IllegalInstantiation" />
+		<!--<module name="IllegalToken"/>-->
+		<!--<module name="IllegalTokenText"/>-->
+		<module name="InnerAssignment" />
+		<!--<module name="MagicNumber"/>-->
+		<module name="MissingSwitchDefault" />
+		<!--module name="ModifiedControlVariable"/-->
+		<module name="SimplifyBooleanExpression" />
+		<module name="SimplifyBooleanReturn" />
+		<module name="StringLiteralEquality" />
+		<module name="NestedIfDepth">
+			<property name="max" value="3" />
+		</module>
+		<module name="NestedTryDepth">
+			<property name="max" value="3" />
+		</module>
+		<module name="SuperClone" />
+		<module name="SuperFinalize" />
+		<!--<module name="IllegalCatch"/>-->
+		<module name="IllegalThrows">
+			<property name="illegalClassNames"
+				value="java.lang.Error,java.lang.RuntimeException" />
+		</module>
+		<!--<module name="RedundantThrows"/>-->
+		<module name="PackageDeclaration" />
+		<module name="JUnitTestCase" />
+		<module name="ReturnCount">
+			<property name="max" value="6" />
+		</module>
+
+		<module name="IllegalType">
+			<property name="format" value="^xxx$" />
+			<property name="illegalClassNames"
+				value="java.util.GregorianCalendar, java.util.Hashtable, java.util.HashSet, java.util.HashMap, java.util.ArrayList, java.util.LinkedList, java.util.LinkedHashMap, java.util.LinkedHashSet, java.util.TreeSet, java.util.TreeMap" />
+		</module>
+		<module name="DeclarationOrder" />
+		<!--<module name="ParameterAssignment"/>-->
+		<module name="ExplicitInitialization" />
+		<module name="DefaultComesLast" />
+		<!--<module name="MissingCtor"/>-->
+		<module name="FallThrough" />
+		<!--<module name="MultipleStringLiterals"/>-->
+		<module name="MultipleVariableDeclarations" />
+		<!--<module name="RequireThis"/>-->
+		<module name="UnnecessaryParentheses" />
+
+
+
+		<!-- Checks for class design                         -->
+		<!-- See http://checkstyle.sf.net/config_design.html -->
+		<!--<module name="DesignForExtension"/>-->
+		<module name="FinalClass" />
+		<module name="HideUtilityClassConstructor" />
+		<module name="InterfaceIsType" />
+		<!--<module name="MutableException"/>-->
+		<module name="ThrowsCount">
+			<property name="max" value="5" />
+		</module>
+		<module name="VisibilityModifier">
+			<property name="protectedAllowed" value="true" />
+			<property name="packageAllowed" value="true" />
+			<!-- this is needed for the resource injection unit tests.  It will removed 
+				when private member inject is supported.
+			-->
+			<property name="publicMemberPattern" value="resource[12].*" />
+		</module>
+
+
+
+		<!-- Metrics checks.                   -->
+		<!-- See http://checkstyle.sf.net/config_metrics.html -->
+		<module name="BooleanExpressionComplexity">
+			<property name="max" value="6" />
+		</module>
+		<!--<module name="ClassDataAbstractionCoupling"/>-->
+		<!--<module name="ClassFanOutComplexity"/>-->
+		<!--<module name="CyclomaticComplexity"/>-->
+		<!--<module name="NPathComplexity"/>-->
+		<module name="JavaNCSS">
+			<property name="methodMaximum" value="100" />
+		</module>
+
+
+		<!-- Miscellaneous other checks.                   -->
+		<!-- See http://checkstyle.sf.net/config_misc.html -->
+		<!-- 
+			<module name="ArrayTypeStyle"/>
+			<module name="FinalParameters"/>
+		-->
+		<!--
+			<module name="GenericIllegalRegexp">
+			<property name="format" value="\s+$"/>
+			<property name="message" value="Line has trailing spaces."/>
+			</module>
+		-->
+		<module name="TodoComment">
+			<property name="format" value="WARNING" />
+		</module>
+
+		<module name="UpperEll" />
+
+		<!--Assert statement may have side effects:-->
+		<module name="DescendantToken">
+			<property name="tokens" value="LITERAL_ASSERT" />
+			<property name="limitedTokens"
+				value="ASSIGN,DEC,INC,POST_DEC,POST_INC,PLUS_ASSIGN,MINUS_ASSIGN,STAR_ASSIGN,DIV_ASSIGN,MOD_ASSIGN,BSR_ASSIGN,SR_ASSIGN,SL_ASSIGN,BAND_ASSIGN,BXOR_ASSIGN,BOR_ASSIGN" />
+			<property name="maximumNumber" value="0" />
+		</module>
+
+		<!--<module name="UncommentedMain"/>-->
+		<!--module name="TrailingComment"/-->
+		<module name="Indentation">
+			<property name="caseIndent" value="0" />
+		</module>
+		<!--<module name="RequiredRegexp">-->
+	</module>
+    <module name="SuppressionCommentFilter"/>
+    <!-- Header checks -->
+    <module name="Header">
+      <property name="header"
+                value="/**\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * &quot;License&quot;); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n" />
+    </module>
+    <!-- <module name="RegexpHeader"/> -->
+    <module name="FileLength">
+      <property name="max" value="3000" />
+    </module>
+    <module name="FileTabCharacter">
+      <property name="eachLine" value="true"/>
+    </module>
+</module>
diff --git a/buildtools/src/main/resources/cxf-checkstyle-suppressions.xml b/buildtools/src/main/resources/cxf-checkstyle-suppressions.xml
new file mode 100644
index 0000000..41f8fe3
--- /dev/null
+++ b/buildtools/src/main/resources/cxf-checkstyle-suppressions.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0"?>
+<!DOCTYPE suppressions PUBLIC
+    "-//Puppy Crawl//DTD Suppressions 1.0//EN"
+    "http://www.puppycrawl.com/dtds/suppressions_1_0.dtd">
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements. See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership. The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License. You may obtain a copy of the License at
+ 
+  http://www.apache.org/licenses/LICENSE-2.0
+ 
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied. See the License for the
+  specific language governing permissions and limitations
+  under the License.
+-->
+<suppressions>
+    <suppress checks=".*"
+              files=".+[\\\/]generated[\\\/].+\.java"
+              />
+    <suppress checks=".*"
+              files=".+[\\\/]build[\\\/]src[\\\/].+\.java"
+              />
+              
+    <suppress checks=".*"
+              files=".+[\\\/]contrib[\\\/].+\.java"
+              />
+</suppressions>
\ No newline at end of file
diff --git a/buildtools/src/main/resources/cxf-checkstyle.xml b/buildtools/src/main/resources/cxf-checkstyle.xml
new file mode 100644
index 0000000..6a28034
--- /dev/null
+++ b/buildtools/src/main/resources/cxf-checkstyle.xml
@@ -0,0 +1,296 @@
+<?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.
+-->
+<!DOCTYPE module PUBLIC
+    "-//Puppy Crawl//DTD Check Configuration 1.2//EN"
+    "http://www.puppycrawl.com/dtds/configuration_1_2.dtd">
+
+<!--
+	Checks to make sure the code meets the CXF coding guidelines which 
+	are similar to the Sun guidelines at:
+	http://java.sun.com/docs/codeconv/index.html
+	
+	It also enforces aa bunch of other "BestPractices like method
+	lengths, if/try depths, etc...
+-->
+
+<module name="Checker">
+	<!-- Checks whether files end with a new line.                        -->
+	<!-- See http://checkstyle.sf.net/config_misc.html#NewlineAtEndOfFile -->
+	<!--
+		<module name="NewlineAtEndOfFile"/>
+	-->
+
+	<!-- Checks that property files contain the same keys.         -->
+	<!-- See http://checkstyle.sf.net/config_misc.html#Translation -->
+	<module name="Translation" />
+
+	<!--<module name="StrictDuplicateCode"/>-->
+
+	<module name="TreeWalker">
+		<!-- Enable FileContentsHolder to allow us to in turn turn on suppression comments -->
+		<module name="FileContentsHolder" />
+		<!-- Checks for Javadoc comments.                     -->
+		<!-- See http://checkstyle.sf.net/config_javadoc.html -->
+		<!--
+			<module name="PackageHtml"/>
+			<module name="JavadocMethod"/>
+			<module name="JavadocType"/>
+			<module name="JavadocVariable"/>
+			<module name="JavadocStyle"/>
+		-->
+
+
+		<!-- Checks for Naming Conventions.                  -->
+		<!-- See http://checkstyle.sf.net/config_naming.html -->
+		<module name="ConstantName" />
+		<module name="LocalFinalVariableName" />
+		<module name="LocalVariableName" />
+		<module name="MemberName" />
+		<module name="MethodName" />
+		<module name="PackageName" />
+		<module name="ParameterName" />
+		<module name="StaticVariableName" />
+		<module name="TypeName" />
+
+
+		<!-- Checks for imports                              -->
+		<!-- See http://checkstyle.sf.net/config_import.html -->
+		<module name="AvoidStarImport">
+			<property name="excludes"
+				value="java.io,java.util,java.net,java.nio,java.nio.channels,java.lang.reflect,org.w3c.dom,org.xml.sax,java.awt,javax.swing,junit.framework" />
+		</module>
+		<module name="IllegalImport" /><!-- defaults to sun.* packages -->
+		<module name="RedundantImport" />
+		<module name="UnusedImports" />
+		<module name="ImportOrder">
+			<property name="groups"
+				value="java,javax,org.w3c,org.xml,junit,antlr,com.,net,org,org.junit,*" />
+			<property name="ordered" value="true" />
+		</module>
+		<!--
+			<module name="ImportControl">
+			<property name="file" value="etc/import-control.xml"/>
+			</module>
+		-->
+
+
+		<!-- Checks for Size Violations.                    -->
+		<!-- See http://checkstyle.sf.net/config_sizes.html -->
+		<module name="AnonInnerLength">
+			<property name="max" value="40" />
+		</module>
+		<module name="ExecutableStatementCount">
+			<property name="max" value="75" />
+		</module>
+		<module name="LineLength">
+			<property name="max" value="110" />
+		</module>
+		<module name="MethodLength">
+			<property name="max" value="150" />
+			<property name="countEmpty" value="false" />
+		</module>
+		<module name="ParameterNumber">
+			<property name="max" value="7" />
+		</module>
+
+		<!-- Checks for whitespace                               -->
+		<!-- See http://checkstyle.sf.net/config_whitespace.html -->
+		<module name="EmptyForIteratorPad" />
+		<module name="EmptyForInitializerPad" />
+		<module name="MethodParamPad" />
+		<module name="NoWhitespaceAfter">
+			<property name="tokens"
+				value="ARRAY_INIT,BNOT,DEC,DOT,INC,LNOT,UNARY_MINUS,UNARY_PLUS" />
+		</module>
+		<module name="NoWhitespaceBefore" />
+		<module name="OperatorWrap" />
+		<module name="ParenPad" />
+		<module name="TypecastParenPad" />
+		<module name="WhitespaceAfter">
+			<property name="tokens" value="COMMA, SEMI" />
+		</module>
+		<module name="WhitespaceAround">
+			<property name="tokens"
+				value="ASSIGN, BAND, BAND_ASSIGN, BOR, BOR_ASSIGN, BSR, BSR_ASSIGN, BXOR, BXOR_ASSIGN, COLON, DIV, DIV_ASSIGN, EQUAL, GE, GT, LAND, LCURLY, LE, LITERAL_ASSERT, LITERAL_CATCH, LITERAL_DO, LITERAL_ELSE, LITERAL_FINALLY, LITERAL_FOR, LITERAL_IF, LITERAL_RETURN, LITERAL_SYNCHRONIZED, LITERAL_TRY, LITERAL_WHILE, LOR, LT, MINUS, MINUS_ASSIGN, MOD, MOD_ASSIGN, NOT_EQUAL, PLUS, PLUS_ASSIGN, QUESTION, RCURLY, SL, SLIST, SL_ASSIGN, SR, SR_ASSIGN, STAR, STAR_ASSIGN,TYPE_EXTENSION_AND" />
+		</module>
+
+
+		<!-- Modifier Checks                                    -->
+		<!-- See http://checkstyle.sf.net/config_modifiers.html -->
+		<module name="ModifierOrder" />
+		<module name="RedundantModifier" />
+
+
+		<!-- Checks for blocks. You know, those {}'s         -->
+		<!-- See http://checkstyle.sf.net/config_blocks.html -->
+		<module name="AvoidNestedBlocks">
+			<property name="allowInSwitchCase" value="true" />
+		</module>
+		<module name="EmptyBlock">
+			<property name="option" value="text" />
+		</module>
+		<module name="LeftCurly" />
+		<module name="NeedBraces" />
+		<module name="RightCurly" />
+
+
+		<!-- Checks for common coding problems               -->
+		<!-- See http://checkstyle.sf.net/config_coding.html -->
+		<!--<module name="ArrayTrailingComma"/>-->
+		<!--<module name="AvoidInlineConditionals"/>-->
+		<module name="CovariantEquals" />
+		<module name="DoubleCheckedLocking" />
+		<module name="EmptyStatement" />
+		<module name="EqualsHashCode" />
+		<!--<module name="FinalLocalVariable"/>-->
+		<module name="HiddenField">
+			<property name="ignoreConstructorParameter" value="true" />
+			<property name="ignoreSetter" value="true" />
+		</module>
+		<module name="IllegalInstantiation" />
+		<!--<module name="IllegalToken"/>-->
+		<!--<module name="IllegalTokenText"/>-->
+		<module name="InnerAssignment" />
+		<!--<module name="MagicNumber"/>-->
+		<module name="MissingSwitchDefault" />
+		<!--module name="ModifiedControlVariable"/-->
+		<module name="SimplifyBooleanExpression" />
+		<module name="SimplifyBooleanReturn" />
+		<module name="StringLiteralEquality" />
+		<module name="NestedIfDepth">
+			<property name="max" value="3" />
+		</module>
+		<module name="NestedTryDepth">
+			<property name="max" value="3" />
+		</module>
+		<module name="SuperClone" />
+		<module name="SuperFinalize" />
+		<!--<module name="IllegalCatch"/>-->
+		<module name="IllegalThrows">
+			<property name="illegalClassNames"
+				value="java.lang.Error,java.lang.RuntimeException" />
+		</module>
+		<!--<module name="RedundantThrows"/>-->
+		<module name="PackageDeclaration" />
+		<module name="JUnitTestCase" />
+		<module name="ReturnCount">
+			<property name="max" value="6" />
+		</module>
+
+		<module name="IllegalType">
+			<property name="format" value="^xxx$" />
+			<property name="illegalClassNames"
+				value="java.util.GregorianCalendar, java.util.Hashtable, java.util.HashSet, java.util.HashMap, java.util.ArrayList, java.util.LinkedList, java.util.LinkedHashMap, java.util.LinkedHashSet, java.util.TreeSet, java.util.TreeMap" />
+		</module>
+		<module name="DeclarationOrder" />
+		<!--<module name="ParameterAssignment"/>-->
+		<module name="ExplicitInitialization" />
+		<module name="DefaultComesLast" />
+		<!--<module name="MissingCtor"/>-->
+		<module name="FallThrough" />
+		<!--<module name="MultipleStringLiterals"/>-->
+		<module name="MultipleVariableDeclarations" />
+		<!--<module name="RequireThis"/>-->
+		<module name="UnnecessaryParentheses" />
+
+
+
+		<!-- Checks for class design                         -->
+		<!-- See http://checkstyle.sf.net/config_design.html -->
+		<!--<module name="DesignForExtension"/>-->
+		<module name="FinalClass" />
+		<module name="HideUtilityClassConstructor" />
+		<module name="InterfaceIsType" />
+		<!--<module name="MutableException"/>-->
+		<module name="ThrowsCount">
+			<property name="max" value="5" />
+		</module>
+		<module name="VisibilityModifier">
+			<property name="protectedAllowed" value="true" />
+			<property name="packageAllowed" value="true" />
+			<!-- this is needed for the resource injection unit tests.  It will removed 
+				when private member inject is supported.
+			-->
+			<property name="publicMemberPattern" value="resource[12].*" />
+		</module>
+
+
+
+		<!-- Metrics checks.                   -->
+		<!-- See http://checkstyle.sf.net/config_metrics.html -->
+		<module name="BooleanExpressionComplexity">
+			<property name="max" value="6" />
+		</module>
+		<!--<module name="ClassDataAbstractionCoupling"/>-->
+		<!--<module name="ClassFanOutComplexity"/>-->
+		<!--<module name="CyclomaticComplexity"/>-->
+		<!--<module name="NPathComplexity"/>-->
+		<module name="JavaNCSS">
+			<property name="methodMaximum" value="100" />
+		</module>
+
+
+		<!-- Miscellaneous other checks.                   -->
+		<!-- See http://checkstyle.sf.net/config_misc.html -->
+		<!-- 
+			<module name="ArrayTypeStyle"/>
+			<module name="FinalParameters"/>
+		-->
+		<!--
+			<module name="GenericIllegalRegexp">
+			<property name="format" value="\s+$"/>
+			<property name="message" value="Line has trailing spaces."/>
+			</module>
+		-->
+		<module name="TodoComment">
+			<property name="format" value="WARNING" />
+		</module>
+
+		<module name="UpperEll" />
+
+		<!--Assert statement may have side effects:-->
+		<module name="DescendantToken">
+			<property name="tokens" value="LITERAL_ASSERT" />
+			<property name="limitedTokens"
+				value="ASSIGN,DEC,INC,POST_DEC,POST_INC,PLUS_ASSIGN,MINUS_ASSIGN,STAR_ASSIGN,DIV_ASSIGN,MOD_ASSIGN,BSR_ASSIGN,SR_ASSIGN,SL_ASSIGN,BAND_ASSIGN,BXOR_ASSIGN,BOR_ASSIGN" />
+			<property name="maximumNumber" value="0" />
+		</module>
+
+		<!--<module name="UncommentedMain"/>-->
+		<!--module name="TrailingComment"/-->
+		<module name="Indentation">
+			<property name="caseIndent" value="0" />
+		</module>
+		<!--<module name="RequiredRegexp">-->
+	</module>
+    <module name="SuppressionCommentFilter"/>
+    <!-- Header checks -->
+    <module name="Header">
+      <property name="header"
+                value="/**\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * &quot;License&quot;); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n" />
+    </module>
+    <!-- <module name="RegexpHeader"/> -->
+    <module name="FileLength">
+      <property name="max" value="3000" />
+    </module>
+    <module name="FileTabCharacter">
+      <property name="eachLine" value="true"/>
+    </module>
+</module>
diff --git a/buildtools/src/main/resources/cxf-eclipse-checkstyle b/buildtools/src/main/resources/cxf-eclipse-checkstyle
new file mode 100644
index 0000000..4857668
--- /dev/null
+++ b/buildtools/src/main/resources/cxf-eclipse-checkstyle
@@ -0,0 +1,30 @@
+<?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.
+-->
+<fileset-config file-format-version="1.1.0" simple-config="false">
+    <fileset name="all" enabled="true" check-config-name="CXF Checks" type="external" description="">
+        <file-match-pattern match-pattern="^src[/\\]." include-pattern="true"/>
+        <file-match-pattern match-pattern="^src[/\\]main[/\\]generated[/\\]." include-pattern="false"/>
+        <file-match-pattern match-pattern="^src[/\\]test[/\\]generated[/\\]." include-pattern="false"/>
+        <file-match-pattern match-pattern="^src[/\\]main[/\\]release[/\\]samples[/\\]jax_rs[/\\]basic_https[/\\]contrib[/\\]." include-pattern="false"/>
+    </fileset>
+    <filter name="FileTypesFilter" enabled="true">
+        <filter-data value="java"/>
+    </filter>
+</fileset-config>
\ No newline at end of file
diff --git a/buildtools/src/main/resources/cxf-eclipse-checkstyle-corba b/buildtools/src/main/resources/cxf-eclipse-checkstyle-corba
new file mode 100644
index 0000000..3fdff59
--- /dev/null
+++ b/buildtools/src/main/resources/cxf-eclipse-checkstyle-corba
@@ -0,0 +1,29 @@
+<?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.
+-->
+<fileset-config file-format-version="1.1.0" simple-config="false">
+    <fileset name="all" enabled="true" check-config-name="CXF CORBA Checks" type="external" description="">
+        <file-match-pattern match-pattern="^src[/\\]." include-pattern="true"/>
+        <file-match-pattern match-pattern="^src[/\\]main[/\\]generated[/\\]." include-pattern="false"/>
+        <file-match-pattern match-pattern="^src[/\\]test[/\\]generated[/\\]." include-pattern="false"/>
+    </fileset>
+    <filter name="FileTypesFilter" enabled="true">
+        <filter-data value="java"/>
+    </filter>
+</fileset-config>
\ No newline at end of file
diff --git a/buildtools/src/main/resources/cxf-eclipse-pmd b/buildtools/src/main/resources/cxf-eclipse-pmd
new file mode 100644
index 0000000..f1bd7be
--- /dev/null
+++ b/buildtools/src/main/resources/cxf-eclipse-pmd
@@ -0,0 +1,23 @@
+<?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.
+-->
+<pmd>
+    <useProjectRuleSet>true</useProjectRuleSet>
+    <rules/>
+</pmd>
\ No newline at end of file
diff --git a/buildtools/src/main/resources/cxf-pmd-custom.xml b/buildtools/src/main/resources/cxf-pmd-custom.xml
new file mode 100644
index 0000000..7d7d031
--- /dev/null
+++ b/buildtools/src/main/resources/cxf-pmd-custom.xml
@@ -0,0 +1,38 @@
+<?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.
+-->
+<ruleset name="pmd-eclipse">
+    <description>PMD Plugin rules with custom Javascript.</description>
+     <rule name="AvoidUnsafeStringConstructor"
+                  message="Don't use new String(byte[]...) without an encoding."
+                  class="org.apache.cxf.pmd.UnsafeStringConstructorRule">
+              <description>
+              Don't use new String(byte[]) or new String(byte[], int, int).
+              </description>
+                <priority>3</priority>
+
+              <example>
+        <![CDATA[
+            public String doSomething() {
+              return new String(byte[]);
+            }
+        ]]>
+              </example>
+            </rule>
+</ruleset>
diff --git a/buildtools/src/main/resources/cxf-pmd-ruleset-generated.xml b/buildtools/src/main/resources/cxf-pmd-ruleset-generated.xml
new file mode 100644
index 0000000..cf6458d
--- /dev/null
+++ b/buildtools/src/main/resources/cxf-pmd-ruleset-generated.xml
@@ -0,0 +1,214 @@
+<?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.
+-->
+<!-- 
+  Modified version of the cxf ruleset to turn off warnings that are common 
+  in generated code.   Some code generators (like SDO) output some code
+  that generate some PMD warnings.   We run PMD as part of the maven 
+  build prior to generating code, so it's not a problem there.   But in 
+  Eclipse, we need a PMD ruleset that turns off those warnings as the
+  PMD eclipse plugin doesn't have a way to not run on certain files
+  -->
+<ruleset name="pmd-eclipse-generated">
+    <description>PMD Plugin preferences rule set</description>
+
+
+    <rule ref="rulesets/basic.xml/BooleanInstantiation"/>
+    <rule ref="rulesets/basic.xml/CollapsibleIfStatements"/>
+    <rule ref="rulesets/basic.xml/DoubleCheckedLocking"/>
+    <!--<rule ref="rulesets/basic.xml/EmptyCatchBlock"/>-->
+    <!--<rule ref="rulesets/basic.xml/EmptyFinallyBlock"/>-->
+    <!--<rule ref="rulesets/basic.xml/EmptyIfStmt"/>-->
+    <rule ref="rulesets/basic.xml/EmptyStatementNotInLoop"/>
+    <!--<rule ref="rulesets/basic.xml/EmptyStaticInitializer"/>-->
+    <!--<rule ref="rulesets/basic.xml/EmptySwitchStatements"/>-->
+    <!--<rule ref="rulesets/basic.xml/EmptySynchronizedBlock"/>-->
+    <!--<rule ref="rulesets/basic.xml/EmptyTryBlock"/>-->
+    <!--<rule ref="rulesets/basic.xml/EmptyWhileStmt"/>-->
+    <rule ref="rulesets/basic.xml/ForLoopShouldBeWhileLoop"/>
+    <rule ref="rulesets/basic.xml/JumbledIncrementer"/>
+    <!--<rule ref="rulesets/basic.xml/OverrideBothEqualsAndHashcode"/>-->
+    <rule ref="rulesets/basic.xml/ReturnFromFinallyBlock"/>
+    <rule ref="rulesets/basic.xml/UnconditionalIfStatement"/>
+    <rule ref="rulesets/basic.xml/UnnecessaryConversionTemporary"/>
+    <rule ref="rulesets/basic.xml/UnnecessaryFinalModifier"/>
+    <rule ref="rulesets/basic.xml/UnnecessaryReturn"/>
+    <!--<rule ref="rulesets/basic.xml/UselessOverridingMethod"/>-->
+
+    <!--<rule ref="rulesets/braces.xml/ForLoopsMustUseBraces"/>-->
+    <!--<rule ref="rulesets/braces.xml/IfElseStmtsMustUseBraces"/>-->
+    <!--<rule ref="rulesets/braces.xml/IfStmtsMustUseBraces"/>-->
+    <!--<rule ref="rulesets/braces.xml/WhileLoopsMustUseBraces"/>-->
+
+    <!--<rule ref="rulesets/clone.xml/CloneMethodMustImplementCloneable"/>-->
+    <!--<rule ref="rulesets/clone.xml/CloneThrowsCloneNotSupportedException"/>-->
+    <!--<rule ref="rulesets/clone.xml/ProperCloneImplementation"/>-->
+
+    <!--<rule ref="rulesets/codesize.xml/CyclomaticComplexity"/>-->
+    <!--<rule ref="rulesets/codesize.xml/ExcessiveClassLength"/>-->
+    <!--<rule ref="rulesets/codesize.xml/ExcessiveMethodLength"/>-->
+    <!--<rule ref="rulesets/codesize.xml/ExcessiveParameterList"/>-->
+    <!--<rule ref="rulesets/codesize.xml/ExcessivePublicCount"/>-->
+    <!--<rule ref="rulesets/codesize.xml/TooManyFields"/>-->
+
+    <!--<rule ref="rulesets/controversial.xml/AssignmentInOperand"/>-->
+    <!--<rule ref="rulesets/controversial.xml/AtLeastOneConstructor"/>-->
+    <!--<rule ref="rulesets/controversial.xml/CallSuperInConstructor"/>-->
+    <!--<rule ref="rulesets/controversial.xml/DontImportSun"/>-->
+    <!--<rule ref="rulesets/controversial.xml/NullAssignment"/>-->
+    <!--<rule ref="rulesets/controversial.xml/OnlyOneReturn"/>-->
+    <!--<rule ref="rulesets/controversial.xml/SingularField"/>-->
+    <!--<rule ref="rulesets/controversial.xml/SuspiciousOctalEscape"/>-->
+    <!--<rule ref="rulesets/controversial.xml/UnnecessaryConstructor"/>-->
+    <!--<rule ref="rulesets/controversial.xml/UnnecessaryParentheses"/>-->
+    <!--<rule ref="rulesets/controversial.xml/UnusedModifier"/>-->
+
+    <!--<rule ref="rulesets/coupling.xml/CouplingBetweenObjects"/>-->
+    <!--<rule ref="rulesets/coupling.xml/ExcessiveImports"/>-->
+    <!--<rule ref="rulesets/coupling.xml/LooseCoupling"/>-->
+
+    <!--<rule ref="rulesets/design.xml/AbstractClassWithoutAbstractMethod"/>-->
+    <!--<rule ref="rulesets/design.xml/AccessorClassGeneration"/>-->
+    <!--<rule ref="rulesets/design.xml/AssignmentToNonFinalStatic"/>-->
+    <!--<rule ref="rulesets/design.xml/AvoidDeeplyNestedIfStmts"/>-->
+    <!--<rule ref="rulesets/design.xml/AvoidInstanceofChecksInCatchClause"/>-->
+    <rule ref="rulesets/design.xml/AvoidProtectedFieldInFinalClass"/>
+    <!--<rule ref="rulesets/design.xml/AvoidReassigningParameters"/>-->
+    <!--<rule ref="rulesets/design.xml/AvoidSynchronizedAtMethodLevel"/>-->
+    <!--<rule ref="rulesets/design.xml/BadComparison"/>-->
+    <!--<rule ref="rulesets/design.xml/CloseConnection"/>-->
+    <!--<rule ref="rulesets/design.xml/CompareObjectsWithEquals"/>-->
+    <!--<rule ref="rulesets/design.xml/ConfusingTernary"/>-->
+    <rule ref="rulesets/design.xml/ConstructorCallsOverridableMethod"/>
+    <!--<rule ref="rulesets/design.xml/DefaultLabelNotLastInSwitchStmt"/>-->
+    <!--<rule ref="rulesets/design.xml/FinalFieldCouldBeStatic"/>-->
+    <rule ref="rulesets/design.xml/IdempotentOperations"/>
+    <!--<rule ref="rulesets/design.xml/ImmutableField"/>-->
+    <!--<rule ref="rulesets/design.xml/InstantiationToGetClass"/>-->
+    <!--<rule ref="rulesets/design.xml/MissingBreakInSwitch"/>-->
+    <!--<rule ref="rulesets/design.xml/MissingStaticMethodInNonInstantiatableClass"/>-->
+    <!--<rule ref="rulesets/design.xml/NonCaseLabelInSwitchStatement"/>-->
+    <!--<rule ref="rulesets/design.xml/NonStaticInitializer"/>-->
+    <rule ref="rulesets/design.xml/OptimizableToArrayCall"/>
+    <rule ref="rulesets/design.xml/PositionLiteralsFirstInComparisons"/>
+    <rule ref="rulesets/design.xml/SimplifyBooleanExpressions"/>
+    <rule ref="rulesets/design.xml/SimplifyBooleanReturns"/>
+    <rule ref="rulesets/design.xml/SimplifyConditional"/>
+    <!--<rule ref="rulesets/design.xml/SwitchDensity"/>-->
+    <!--<rule ref="rulesets/design.xml/SwitchStmtsShouldHaveDefault"/>-->
+    <!--rule ref="rulesets/design.xml/UnnecessaryLocalBeforeReturn"/-->
+    <!--<rule ref="rulesets/design.xml/UseLocaleWithCaseConversions"/>-->
+    <!--<rule ref="rulesets/design.xml/UseNotifyAllInsteadOfNotify"/>-->
+    <!--<rule ref="rulesets/design.xml/UseSingleton"/>-->
+
+    <!--<rule ref="rulesets/finalizers.xml/EmptyFinalizer"/>-->
+    <!--<rule ref="rulesets/finalizers.xml/FinalizeOnlyCallsSuperFinalize"/>-->
+    <!--<rule ref="rulesets/finalizers.xml/FinalizeOverloaded"/>-->
+    <!--<rule ref="rulesets/finalizers.xml/FinalizeDoesNotCallSuperFinalize"/>-->
+    <!--<rule ref="rulesets/finalizers.xml/FinalizeShouldBeProtected"/>-->
+    <!--<rule ref="rulesets/finalizers.xml/AvoidCallingFinalize"/>-->
+
+    <!--<rule ref="rulesets/imports.xml/DuplicateImports"/>-->
+    <!--<rule ref="rulesets/imports.xml/DontImportJavaLang"/>-->
+    <!--<rule ref="rulesets/imports.xml/UnusedImports"/>-->
+    <!--<rule ref="rulesets/imports.xml/ImportFromSamePackage"/>-->
+
+    <!--<rule ref="rulesets/javabeans.xml/BeanMembersShouldSerialize"/>-->
+    <!--<rule ref="rulesets/javabeans.xml/MissingSerialVersionUID"/>-->
+
+    <!--<rule ref="rulesets/junit.xml/JUnitStaticSuite"/>-->
+    <!--<rule ref="rulesets/junit.xml/JUnitSpelling"/>-->
+    <!--<rule ref="rulesets/junit.xml/JUnitAssertionsShouldIncludeMessage"/>-->
+    <!--<rule ref="rulesets/junit.xml/JUnitTestsShouldIncludeAssert"/>-->
+    <!--<rule ref="rulesets/junit.xml/TestClassWithoutTestCases"/>-->
+    <!--<rule ref="rulesets/junit.xml/UnnecessaryBooleanAssertion"/>-->
+    <!--<rule ref="rulesets/junit.xml/UseAssertEqualsInsteadOfAssertTrue"/>-->
+    <!--<rule ref="rulesets/junit.xml/UseAssertSameInsteadOfAssertTrue"/>-->
+
+    <!--<rule ref="rulesets/logging-java.xml/AvoidPrintStackTrace"/>-->
+    <rule ref="rulesets/logging-java.xml/LoggerIsNotStaticFinal"/>
+    <!--<rule ref="rulesets/logging-java.xml/MoreThanOneLogger"/>-->
+    <!--<rule ref="rulesets/logging-java.xml/LoggerIsNotStaticFinal"/>-->
+    <!--<rule ref="rulesets/logging-java.xml/LogBlockWithoutIf"/>-->
+    <!--<rule ref="rulesets/logging-java.xml/SystemPrintln"/>-->
+    <!--<rule ref="rulesets/logging-jakarta-commons.xml/UseCorrectExceptionLogging"/>-->
+    <!--<rule ref="rulesets/logging-jakarta-commons.xml/ProperLogger"/>-->
+
+    <!--<rule ref="rulesets/naming.xml/ShortVariable"/>-->
+    <!--<rule ref="rulesets/naming.xml/LongVariable"/>-->
+    <!--<rule ref="rulesets/naming.xml/ShortMethodName"/>-->
+    <!--<rule ref="rulesets/naming.xml/VariableNamingConventions"/>-->
+    <!--<rule ref="rulesets/naming.xml/MethodNamingConventions"/>-->
+    <!--<rule ref="rulesets/naming.xml/ClassNamingConventions"/>-->
+    <!--<rule ref="rulesets/naming.xml/AbstractNaming"/>-->
+    <!--<rule ref="rulesets/naming.xml/AvoidDollarSigns"/>-->
+    <!--<rule ref="rulesets/naming.xml/MethodWithSameNameAsEnclosingClass"/>-->
+    <!--<rule ref="rulesets/naming.xml/SuspiciousHashcodeMethodName"/>-->
+    <!--<rule ref="rulesets/naming.xml/SuspiciousConstantFieldName"/>-->
+    <!--<rule ref="rulesets/naming.xml/AvoidFieldNameMatchingTypeName"/>-->
+    <!--<rule ref="rulesets/naming.xml/AvoidFieldNameMatchingMethodName"/>-->
+    <!--<rule ref="rulesets/naming.xml/AvoidNonConstructorMethodsWithClassName"/>-->
+    <!--<rule ref="rulesets/naming.xml/NoPackage"/>-->
+    <!--<rule ref="rulesets/naming.xml/PackageCase"/>-->
+
+    <!--<rule ref="rulesets/optimizations.xml/LocalVariableCouldBeFinal"/>-->
+    <!--<rule ref="rulesets/optimizations.xml/MethodArgumentCouldBeFinal"/>-->
+    <!--<rule ref="rulesets/optimizations.xml/AvoidInstantiatingObjectsInLoops"/>-->
+    <!--<rule ref="rulesets/optimizations.xml/UseArrayListInsteadOfVector"/>-->
+    <!--<rule ref="rulesets/optimizations.xml/SimplifyStartsWith"/>-->
+    <!--<rule ref="rulesets/optimizations.xml/UseStringBuilderForStringAppends"/>-->
+
+    <!--<rule ref="rulesets/strictexception.xml/AvoidCatchingThrowable"/>-->
+    <!--<rule ref="rulesets/strictexception.xml/SignatureDeclareThrowsException"/>-->
+    <!--<rule ref="rulesets/strictexception.xml/ExceptionAsFlowControl"/>-->
+    <!--<rule ref="rulesets/strictexception.xml/AvoidCatchingNPE"/>-->
+    <!--<rule ref="rulesets/strictexception.xml/AvoidThrowingRawExceptionTypes"/>-->
+    <!--<rule ref="rulesets/strictexception.xml/AvoidThrowingNullPointerException"/>-->
+
+    <!--<rule ref="rulesets/strings.xml/AvoidDuplicateLiterals"/>-->
+    <!--<rule ref="rulesets/strings.xml/StringInstantiation"/>-->
+    <!--<rule ref="rulesets/strings.xml/StringToString"/>-->
+    <!--<rule ref="rulesets/strings.xml/AvoidConcatenatingNonLiteralsInStringBuilder"/>-->
+    <!--<rule ref="rulesets/strings.xml/UnnecessaryCaseChange"/>-->
+
+    <!--<rule ref="rulesets/sunsecure.xml/MethodReturnsInternalArray"/>-->
+    <!--<rule ref="rulesets/sunsecure.xml/ArrayIsStoredDirectly"/>-->
+
+    <!--rule ref="rulesets/unusedcode.xml/UnusedLocalVariable"/-->
+    <rule ref="rulesets/unusedcode.xml/UnusedPrivateField"/>
+    <rule ref="rulesets/unusedcode.xml/UnusedPrivateMethod"/>
+    <!--<rule ref="rulesets/unusedcode.xml/UnusedFormalParameter"/>-->
+
+    <rule name="DontUseLoggerGetLogger"
+          message="Don't use Logger.getLogger(...), use LogUtils.getL7dLogger(....) instead"
+          class="net.sourceforge.pmd.rules.XPathRule">
+        <priority>2</priority>
+        <description>Don't use Logger.getLogger(...), use LogUtils.getL7dLogger(....) instead</description>
+        <properties>
+            <property name="xpath">
+                <value>
+<![CDATA[
+//PrimaryPrefix/Name[ends-with(@Image, 'Logger.getLogger') and //PackageDeclaration/Name[starts-with(@Image, 'org.apache.cxf')]]
+]]>
+                </value>
+            </property>
+        </properties>
+    </rule>
+
+</ruleset>
diff --git a/buildtools/src/main/resources/cxf-pmd-ruleset.xml b/buildtools/src/main/resources/cxf-pmd-ruleset.xml
new file mode 100644
index 0000000..8db0662
--- /dev/null
+++ b/buildtools/src/main/resources/cxf-pmd-ruleset.xml
@@ -0,0 +1,206 @@
+<?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.
+-->
+<ruleset name="pmd-eclipse">
+    <description>PMD Plugin preferences rule set</description>
+
+
+    <rule ref="rulesets/basic.xml/BooleanInstantiation"/>
+    <rule ref="rulesets/basic.xml/CollapsibleIfStatements"/>
+    <rule ref="rulesets/basic.xml/DoubleCheckedLocking"/>
+    <!--<rule ref="rulesets/basic.xml/EmptyCatchBlock"/>-->
+    <!--<rule ref="rulesets/basic.xml/EmptyFinallyBlock"/>-->
+    <!--<rule ref="rulesets/basic.xml/EmptyIfStmt"/>-->
+    <rule ref="rulesets/basic.xml/EmptyStatementNotInLoop"/>
+    <!--<rule ref="rulesets/basic.xml/EmptyStaticInitializer"/>-->
+    <!--<rule ref="rulesets/basic.xml/EmptySwitchStatements"/>-->
+    <!--<rule ref="rulesets/basic.xml/EmptySynchronizedBlock"/>-->
+    <!--<rule ref="rulesets/basic.xml/EmptyTryBlock"/>-->
+    <!--<rule ref="rulesets/basic.xml/EmptyWhileStmt"/>-->
+    <rule ref="rulesets/basic.xml/ForLoopShouldBeWhileLoop"/>
+    <rule ref="rulesets/basic.xml/JumbledIncrementer"/>
+    <!--<rule ref="rulesets/basic.xml/OverrideBothEqualsAndHashcode"/>-->
+    <rule ref="rulesets/basic.xml/ReturnFromFinallyBlock"/>
+    <rule ref="rulesets/basic.xml/UnconditionalIfStatement"/>
+    <rule ref="rulesets/basic.xml/UnnecessaryConversionTemporary"/>
+    <rule ref="rulesets/basic.xml/UnnecessaryFinalModifier"/>
+    <rule ref="rulesets/basic.xml/UnnecessaryReturn"/>
+    <!--<rule ref="rulesets/basic.xml/UselessOverridingMethod"/>-->
+
+    <!--<rule ref="rulesets/braces.xml/ForLoopsMustUseBraces"/>-->
+    <!--<rule ref="rulesets/braces.xml/IfElseStmtsMustUseBraces"/>-->
+    <!--<rule ref="rulesets/braces.xml/IfStmtsMustUseBraces"/>-->
+    <!--<rule ref="rulesets/braces.xml/WhileLoopsMustUseBraces"/>-->
+
+    <!--<rule ref="rulesets/clone.xml/CloneMethodMustImplementCloneable"/>-->
+    <!--<rule ref="rulesets/clone.xml/CloneThrowsCloneNotSupportedException"/>-->
+    <!--<rule ref="rulesets/clone.xml/ProperCloneImplementation"/>-->
+
+    <!--<rule ref="rulesets/codesize.xml/CyclomaticComplexity"/>-->
+    <!--<rule ref="rulesets/codesize.xml/ExcessiveClassLength"/>-->
+    <!--<rule ref="rulesets/codesize.xml/ExcessiveMethodLength"/>-->
+    <!--<rule ref="rulesets/codesize.xml/ExcessiveParameterList"/>-->
+    <!--<rule ref="rulesets/codesize.xml/ExcessivePublicCount"/>-->
+    <!--<rule ref="rulesets/codesize.xml/TooManyFields"/>-->
+
+    <!--<rule ref="rulesets/controversial.xml/AssignmentInOperand"/>-->
+    <!--<rule ref="rulesets/controversial.xml/AtLeastOneConstructor"/>-->
+    <!--<rule ref="rulesets/controversial.xml/CallSuperInConstructor"/>-->
+    <!--<rule ref="rulesets/controversial.xml/DontImportSun"/>-->
+    <!--<rule ref="rulesets/controversial.xml/NullAssignment"/>-->
+    <!--<rule ref="rulesets/controversial.xml/OnlyOneReturn"/>-->
+    <!--<rule ref="rulesets/controversial.xml/SingularField"/>-->
+    <!--<rule ref="rulesets/controversial.xml/SuspiciousOctalEscape"/>-->
+    <!--<rule ref="rulesets/controversial.xml/UnnecessaryConstructor"/>-->
+    <!--<rule ref="rulesets/controversial.xml/UnnecessaryParentheses"/>-->
+    <!--<rule ref="rulesets/controversial.xml/UnusedModifier"/>-->
+
+    <!--<rule ref="rulesets/coupling.xml/CouplingBetweenObjects"/>-->
+    <!--<rule ref="rulesets/coupling.xml/ExcessiveImports"/>-->
+    <!--<rule ref="rulesets/coupling.xml/LooseCoupling"/>-->
+
+    <!--<rule ref="rulesets/design.xml/AbstractClassWithoutAbstractMethod"/>-->
+    <!--<rule ref="rulesets/design.xml/AccessorClassGeneration"/>-->
+    <!--<rule ref="rulesets/design.xml/AssignmentToNonFinalStatic"/>-->
+    <!--<rule ref="rulesets/design.xml/AvoidDeeplyNestedIfStmts"/>-->
+    <!--<rule ref="rulesets/design.xml/AvoidInstanceofChecksInCatchClause"/>-->
+    <rule ref="rulesets/design.xml/AvoidProtectedFieldInFinalClass"/>
+    <!--<rule ref="rulesets/design.xml/AvoidReassigningParameters"/>-->
+    <!--<rule ref="rulesets/design.xml/AvoidSynchronizedAtMethodLevel"/>-->
+    <!--<rule ref="rulesets/design.xml/BadComparison"/>-->
+    <!--<rule ref="rulesets/design.xml/CloseConnection"/>-->
+    <!--<rule ref="rulesets/design.xml/CompareObjectsWithEquals"/>-->
+    <!--<rule ref="rulesets/design.xml/ConfusingTernary"/>-->
+    <rule ref="rulesets/design.xml/ConstructorCallsOverridableMethod"/>
+    <!--<rule ref="rulesets/design.xml/DefaultLabelNotLastInSwitchStmt"/>-->
+    <!--<rule ref="rulesets/design.xml/FinalFieldCouldBeStatic"/>-->
+    <rule ref="rulesets/design.xml/IdempotentOperations"/>
+    <!--<rule ref="rulesets/design.xml/ImmutableField"/>-->
+    <!--<rule ref="rulesets/design.xml/InstantiationToGetClass"/>-->
+    <!--<rule ref="rulesets/design.xml/MissingBreakInSwitch"/>-->
+    <!--<rule ref="rulesets/design.xml/MissingStaticMethodInNonInstantiatableClass"/>-->
+    <!--<rule ref="rulesets/design.xml/NonCaseLabelInSwitchStatement"/>-->
+    <!--<rule ref="rulesets/design.xml/NonStaticInitializer"/>-->
+    <rule ref="rulesets/design.xml/OptimizableToArrayCall"/>
+    <rule ref="rulesets/design.xml/PositionLiteralsFirstInComparisons"/>
+    <rule ref="rulesets/design.xml/SimplifyBooleanExpressions"/>
+    <rule ref="rulesets/design.xml/SimplifyBooleanReturns"/>
+    <rule ref="rulesets/design.xml/SimplifyConditional"/>
+    <!--<rule ref="rulesets/design.xml/SwitchDensity"/>-->
+    <!--<rule ref="rulesets/design.xml/SwitchStmtsShouldHaveDefault"/>-->
+    <rule ref="rulesets/design.xml/UnnecessaryLocalBeforeReturn"/>
+    <!--<rule ref="rulesets/design.xml/UseLocaleWithCaseConversions"/>-->
+    <!--<rule ref="rulesets/design.xml/UseNotifyAllInsteadOfNotify"/>-->
+    <!--<rule ref="rulesets/design.xml/UseSingleton"/>-->
+
+    <!--<rule ref="rulesets/finalizers.xml/EmptyFinalizer"/>-->
+    <!--<rule ref="rulesets/finalizers.xml/FinalizeOnlyCallsSuperFinalize"/>-->
+    <!--<rule ref="rulesets/finalizers.xml/FinalizeOverloaded"/>-->
+    <!--<rule ref="rulesets/finalizers.xml/FinalizeDoesNotCallSuperFinalize"/>-->
+    <!--<rule ref="rulesets/finalizers.xml/FinalizeShouldBeProtected"/>-->
+    <!--<rule ref="rulesets/finalizers.xml/AvoidCallingFinalize"/>-->
+
+    <!--<rule ref="rulesets/imports.xml/DuplicateImports"/>-->
+    <!--<rule ref="rulesets/imports.xml/DontImportJavaLang"/>-->
+    <!--<rule ref="rulesets/imports.xml/UnusedImports"/>-->
+    <!--<rule ref="rulesets/imports.xml/ImportFromSamePackage"/>-->
+
+    <!--<rule ref="rulesets/javabeans.xml/BeanMembersShouldSerialize"/>-->
+    <!--<rule ref="rulesets/javabeans.xml/MissingSerialVersionUID"/>-->
+
+    <!--<rule ref="rulesets/junit.xml/JUnitStaticSuite"/>-->
+    <!--<rule ref="rulesets/junit.xml/JUnitSpelling"/>-->
+    <!--<rule ref="rulesets/junit.xml/JUnitAssertionsShouldIncludeMessage"/>-->
+    <!--<rule ref="rulesets/junit.xml/JUnitTestsShouldIncludeAssert"/>-->
+    <!--<rule ref="rulesets/junit.xml/TestClassWithoutTestCases"/>-->
+    <!--<rule ref="rulesets/junit.xml/UnnecessaryBooleanAssertion"/>-->
+    <!--<rule ref="rulesets/junit.xml/UseAssertEqualsInsteadOfAssertTrue"/>-->
+    <!--<rule ref="rulesets/junit.xml/UseAssertSameInsteadOfAssertTrue"/>-->
+
+    <!--<rule ref="rulesets/logging-java.xml/AvoidPrintStackTrace"/>-->
+    <rule ref="rulesets/logging-java.xml/LoggerIsNotStaticFinal"/>
+    <!--<rule ref="rulesets/logging-java.xml/MoreThanOneLogger"/>-->
+    <!--<rule ref="rulesets/logging-java.xml/LoggerIsNotStaticFinal"/>-->
+    <!--<rule ref="rulesets/logging-java.xml/LogBlockWithoutIf"/>-->
+    <!--<rule ref="rulesets/logging-java.xml/SystemPrintln"/>-->
+    <!--<rule ref="rulesets/logging-jakarta-commons.xml/UseCorrectExceptionLogging"/>-->
+    <!--<rule ref="rulesets/logging-jakarta-commons.xml/ProperLogger"/>-->
+
+    <!--<rule ref="rulesets/naming.xml/ShortVariable"/>-->
+    <!--<rule ref="rulesets/naming.xml/LongVariable"/>-->
+    <!--<rule ref="rulesets/naming.xml/ShortMethodName"/>-->
+    <!--<rule ref="rulesets/naming.xml/VariableNamingConventions"/>-->
+    <!--<rule ref="rulesets/naming.xml/MethodNamingConventions"/>-->
+    <!--<rule ref="rulesets/naming.xml/ClassNamingConventions"/>-->
+    <!--<rule ref="rulesets/naming.xml/AbstractNaming"/>-->
+    <!--<rule ref="rulesets/naming.xml/AvoidDollarSigns"/>-->
+    <!--<rule ref="rulesets/naming.xml/MethodWithSameNameAsEnclosingClass"/>-->
+    <!--<rule ref="rulesets/naming.xml/SuspiciousHashcodeMethodName"/>-->
+    <!--<rule ref="rulesets/naming.xml/SuspiciousConstantFieldName"/>-->
+    <!--<rule ref="rulesets/naming.xml/AvoidFieldNameMatchingTypeName"/>-->
+    <!--<rule ref="rulesets/naming.xml/AvoidFieldNameMatchingMethodName"/>-->
+    <!--<rule ref="rulesets/naming.xml/AvoidNonConstructorMethodsWithClassName"/>-->
+    <!--<rule ref="rulesets/naming.xml/NoPackage"/>-->
+    <!--<rule ref="rulesets/naming.xml/PackageCase"/>-->
+
+    <!--<rule ref="rulesets/optimizations.xml/LocalVariableCouldBeFinal"/>-->
+    <!--<rule ref="rulesets/optimizations.xml/MethodArgumentCouldBeFinal"/>-->
+    <!--<rule ref="rulesets/optimizations.xml/AvoidInstantiatingObjectsInLoops"/>-->
+    <!--<rule ref="rulesets/optimizations.xml/UseArrayListInsteadOfVector"/>-->
+    <!--<rule ref="rulesets/optimizations.xml/SimplifyStartsWith"/>-->
+    <!--<rule ref="rulesets/optimizations.xml/UseStringBuilderForStringAppends"/>-->
+
+    <!--<rule ref="rulesets/strictexception.xml/AvoidCatchingThrowable"/>-->
+    <!--<rule ref="rulesets/strictexception.xml/SignatureDeclareThrowsException"/>-->
+    <!--<rule ref="rulesets/strictexception.xml/ExceptionAsFlowControl"/>-->
+    <!--<rule ref="rulesets/strictexception.xml/AvoidCatchingNPE"/>-->
+    <!--<rule ref="rulesets/strictexception.xml/AvoidThrowingRawExceptionTypes"/>-->
+    <!--<rule ref="rulesets/strictexception.xml/AvoidThrowingNullPointerException"/>-->
+
+    <!--<rule ref="rulesets/strings.xml/AvoidDuplicateLiterals"/>-->
+    <!--<rule ref="rulesets/strings.xml/StringInstantiation"/>-->
+    <!--<rule ref="rulesets/strings.xml/StringToString"/>-->
+    <!--<rule ref="rulesets/strings.xml/AvoidConcatenatingNonLiteralsInStringBuilder"/>-->
+    <!--<rule ref="rulesets/strings.xml/UnnecessaryCaseChange"/>-->
+
+    <!--<rule ref="rulesets/sunsecure.xml/MethodReturnsInternalArray"/>-->
+    <!--<rule ref="rulesets/sunsecure.xml/ArrayIsStoredDirectly"/>-->
+
+    <rule ref="rulesets/unusedcode.xml/UnusedLocalVariable"/>
+    <rule ref="rulesets/unusedcode.xml/UnusedPrivateField"/>
+    <rule ref="rulesets/unusedcode.xml/UnusedPrivateMethod"/>
+    <!--<rule ref="rulesets/unusedcode.xml/UnusedFormalParameter"/>-->
+
+    <rule name="DontUseLoggerGetLogger"
+          message="Don't use Logger.getLogger(...), use LogUtils.getL7dLogger(....) instead"
+          class="net.sourceforge.pmd.rules.XPathRule">
+        <priority>2</priority>
+        <description>Don't use Logger.getLogger(...), use LogUtils.getL7dLogger(....) instead</description>
+        <properties>
+            <property name="xpath">
+                <value>
+<![CDATA[
+//PrimaryPrefix/Name[ends-with(@Image, 'Logger.getLogger') and //PackageDeclaration/Name[starts-with(@Image, 'org.apache.cxf')]]
+]]>
+                </value>
+            </property>
+        </properties>
+    </rule>
+
+</ruleset>
diff --git a/buildtools/src/main/resources/notice-supplements.xml b/buildtools/src/main/resources/notice-supplements.xml
new file mode 100644
index 0000000..a5b8d4d
--- /dev/null
+++ b/buildtools/src/main/resources/notice-supplements.xml
@@ -0,0 +1,501 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<supplementalDataModels>
+    <supplement>
+        <project>
+            <groupId>javax.ws.rs</groupId>
+            <artifactId>jsr311-api</artifactId>
+            <name>JSR 311 API</name>
+            <url>https://jsr311.dev.java.net/</url>
+            <organization>
+                <name>Sun Microsystems</name>
+                <url>http://www.sun.com/</url>
+            </organization>
+            <licenses>
+                <license>
+                    <name>COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) Version 1.0</name>
+                    <url>http://www.sun.com/cddl/cddl.html</url>
+                </license>
+            </licenses>
+        </project>
+    </supplement>
+    <supplement>
+        <project>
+            <groupId>com.sun.xml.bind</groupId>
+            <artifactId>jaxb-impl</artifactId>
+            <name>Sun JAXB Reference Implementation Runtime</name>
+            <organization>
+                <name>Sun Microsystems</name>
+                <url>http://www.sun.com/</url>
+            </organization>
+            <licenses>
+                <license>
+                    <name>COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) Version 1.0</name>
+                    <url>http://www.sun.com/cddl/cddl.html</url>
+                </license>
+            </licenses>
+        </project>
+    </supplement>
+    <supplement>
+        <project>
+            <groupId>com.sun.xml.bind</groupId>
+            <artifactId>jaxb-xjc</artifactId>
+            <name>Sun JAXB Reference Implementation Tools</name>
+            <organization>
+                <name>Sun Microsystems</name>
+                <url>http://www.sun.com/</url>
+            </organization>
+            <licenses>
+                <license>
+                    <name>COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) Version 1.0</name>
+                    <url>http://www.sun.com/cddl/cddl.html</url>
+                </license>
+            </licenses>
+        </project>
+    </supplement>
+    <supplement>
+        <project>
+            <groupId>com.sun.xml.fastinfoset</groupId>
+            <artifactId>FastInfoset</artifactId>
+            <name>Sun FastInfoset Implementation</name>
+            <organization>
+                <name>Sun Microsystems</name>
+                <url>http://www.sun.com/</url>
+            </organization>
+            <licenses>
+                <license>
+                    <name>The Apache Software License, Version 2.0</name>
+                    <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
+                </license>
+            </licenses>
+        </project>
+    </supplement>
+    <supplement>
+        <project>
+            <groupId>com.sun.xml.messaging.saaj</groupId>
+            <artifactId>saaj-impl</artifactId>
+            <name>Sun SAAJ Reference Implementation</name>
+            <organization>
+                <name>Sun Microsystems</name>
+                <url>http://www.sun.com/</url>
+            </organization>
+            <licenses>
+                <license>
+                    <name>COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) Version 1.0</name>
+                    <url>http://www.sun.com/cddl/cddl.html</url>
+                </license>
+            </licenses>
+        </project>
+    </supplement>
+    <supplement>
+        <project>
+            <groupId>javax.xml.soap</groupId>
+            <artifactId>saaj-api</artifactId>
+            <name>Sun SAAJ API</name>
+            <organization>
+                <name>Sun Microsystems</name>
+                <url>http://www.sun.com/</url>
+            </organization>
+            <licenses>
+                <license>
+                    <name>COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) Version 1.0</name>
+                    <url>http://www.sun.com/cddl/cddl.html</url>
+                </license>
+            </licenses>
+        </project>
+    </supplement>
+    <supplement>
+        <project>
+            <groupId>javax.xml.bind</groupId>
+            <artifactId>jaxb-api</artifactId>
+            <name>Java Architecture for XML Binding (JAXB API)</name>
+            <organization>
+                <name>Sun Microsystems</name>
+                <url>http://www.sun.com/</url>
+            </organization>
+            <licenses>
+                <license>
+                    <name>COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) Version 1.0</name>
+                    <url>http://www.sun.com/cddl/cddl.html</url>
+                </license>
+            </licenses>
+        </project>
+    </supplement>
+    <supplement>
+        <project>
+            <groupId>xalan</groupId>
+            <artifactId>xalan</artifactId>
+            <name>Apache Xalan-Java</name>
+            <organization>
+                <name>The Apache Software Foundation</name>
+                <url>http://www.apache.org</url>
+            </organization>
+            <licenses>
+                <license>
+                    <name>The Apache Software License, Version 2.0</name>
+                    <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
+                </license>
+            </licenses>
+        </project>
+    </supplement>
+    <supplement>
+        <project>
+            <groupId>org.slf4j</groupId>
+            <artifactId>slf4j-api</artifactId>
+            <name>Simple Logging Facade for Java - API</name>
+            <licenses>
+                <license>
+                    <name>MIT License</name>
+                    <url>http://www.slf4j.org/license.html</url>
+                </license>
+            </licenses>
+        </project>
+    </supplement>
+    <supplement>
+        <project>
+            <groupId>org.slf4j</groupId>
+            <artifactId>slf4j-jdk14</artifactId>
+            <name>Simple Logging Facade for Java - JDK Logging</name>
+            <licenses>
+                <license>
+                    <name>MIT License</name>
+                    <url>http://www.slf4j.org/license.html</url>
+                </license>
+            </licenses>
+        </project>
+    </supplement>
+
+    <supplement>
+        <project>
+            <groupId>jaxen</groupId>
+            <artifactId>jaxen</artifactId>
+            <name>Jaxen</name>
+            <licenses>
+                <license>
+                    <name>BSD</name>
+                    <url>http://jaxen.codehaus.org/license.html</url>
+                </license>
+            </licenses>
+        </project>
+    </supplement>
+    <supplement>
+        <project>
+            <groupId>asm</groupId>
+            <artifactId>asm</artifactId>
+            <name>ASM</name>
+            <licenses>
+                <license>
+                    <name>BSD</name>
+                    <url>http://asm.ow2.org/license.html</url>
+                </license>
+            </licenses>
+        </project>
+    </supplement>
+
+
+    <supplement>
+        <project>
+            <groupId>commons-collections</groupId>
+            <artifactId>commons-collections</artifactId>
+            <name>Apache Commons - collections</name>
+            <organization>
+                <name>The Apache Software Foundation</name>
+                <url>http://www.apache.org</url>
+            </organization>
+            <licenses>
+                <license>
+                    <name>The Apache Software License, Version 2.0</name>
+                    <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
+                </license>
+            </licenses>
+        </project>
+    </supplement>
+    <supplement>
+        <project>
+            <groupId>net.java.dev.stax-utils</groupId>
+            <artifactId>stax-utils</artifactId>
+            <name>StAX Utilities</name>
+        </project>
+    </supplement>
+    <supplement>
+        <project>
+            <groupId>jdom</groupId>
+            <artifactId>jdom</artifactId>
+            <name>JDOM</name>
+            <organization>
+                <name>jdom.org</name>
+                <url>http://www.jdom.org</url>
+            </organization>
+            <licenses>
+                <license>
+                    <name>Modified Apache Software License</name>
+                    <url>licenses/jdom.txt</url>
+                </license>
+            </licenses>
+        </project>
+    </supplement>
+    <supplement>
+        <project>
+            <groupId>org.apache.santuario</groupId>
+            <artifactId>xmlsec</artifactId>
+            <name>XML Security</name>
+            <organization>
+                <name>The Apache Software Foundation</name>
+                <url>http://www.apache.org</url>
+            </organization>
+            <licenses>
+                <license>
+                    <name>The Apache Software License, Version 2.0</name>
+                    <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
+                </license>
+            </licenses>
+        </project>
+    </supplement>
+    <supplement>
+        <project>
+            <groupId>org.apache.ant</groupId>
+            <artifactId>ant-launcher</artifactId>
+            <name>Ant Launcher</name>
+            <organization>
+                <name>The Apache Software Foundation</name>
+                <url>http://www.apache.org</url>
+            </organization>
+            <licenses>
+                <license>
+                    <name>The Apache Software License, Version 2.0</name>
+                    <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
+                </license>
+            </licenses>
+        </project>
+    </supplement>
+    <supplement>
+        <project>
+            <groupId>org.apache.ant</groupId>
+            <artifactId>ant</artifactId>
+            <name>Ant</name>
+            <organization>
+                <name>The Apache Software Foundation</name>
+                <url>http://www.apache.org</url>
+            </organization>
+            <licenses>
+                <license>
+                    <name>The Apache Software License, Version 2.0</name>
+                    <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
+                </license>
+            </licenses>
+        </project>
+    </supplement>
+    <supplement>
+        <project>
+            <groupId>oro</groupId>
+            <artifactId>oro</artifactId>
+            <name>Jakarta-ORO</name>
+            <organization>
+                <name>The Apache Software Foundation</name>
+                <url>http://www.apache.org</url>
+            </organization>
+            <licenses>
+                <license>
+                    <name>The Apache Software License, Version 2.0</name>
+                    <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
+                </license>
+            </licenses>
+        </project>
+    </supplement>
+    <supplement>
+        <project>
+            <groupId>opensaml</groupId>
+            <artifactId>opensaml</artifactId>
+            <name>OpenSAML</name>
+            <organization>
+                <name>Internet2</name>
+                <url>http://www.opensaml.org</url>
+            </organization>
+            <licenses>
+                <license>
+                    <name>The Apache Software License, Version 2.0</name>
+                    <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
+                </license>
+            </licenses>
+        </project>
+    </supplement>
+    <supplement>
+        <project>
+            <groupId>org.codehaus.jettison</groupId>
+            <artifactId>jettison</artifactId>
+            <name>Jettison</name>
+            <organization>
+                <name>Envoi Solutions LLC</name>
+                <url>http://www.envoisolutions.com</url>
+            </organization>
+            <licenses>
+                <license>
+                    <name>The Apache Software License, Version 2.0</name>
+                    <url>http://jettison.codehaus.org/License</url>
+                </license>
+            </licenses>
+        </project>
+    </supplement>
+    <supplement>
+        <project>
+            <groupId>org.springframework</groupId>
+            <artifactId>spring-core</artifactId>
+            <name>Spring Core</name>
+            <licenses>
+                <license>
+                    <name>The Apache Software License, Version 2.0</name>
+                    <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
+                    <distribution>repo</distribution>
+                </license>
+            </licenses>
+            <organization>
+                <name>Spring Framework</name>
+                <url>http://www.springframework.org/</url>
+            </organization>
+        </project>
+    </supplement>
+    <supplement>
+        <project>
+            <groupId>org.springframework</groupId>
+            <artifactId>spring-aop</artifactId>
+            <name>Spring AOP</name>
+            <licenses>
+                <license>
+                    <name>The Apache Software License, Version 2.0</name>
+                    <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
+                    <distribution>repo</distribution>
+                </license>
+            </licenses>
+            <organization>
+                <name>Spring Framework</name>
+                <url>http://www.springframework.org/</url>
+            </organization>
+        </project>
+    </supplement>
+    <supplement>
+        <project>
+            <groupId>org.springframework</groupId>
+            <artifactId>spring-asm</artifactId>
+            <name>Spring ASM</name>
+            <licenses>
+                <license>
+                    <name>The Apache Software License, Version 2.0</name>
+                    <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
+                    <distribution>repo</distribution>
+                </license>
+            </licenses>
+            <organization>
+                <name>Spring Framework</name>
+                <url>http://www.springframework.org/</url>
+            </organization>
+        </project>
+    </supplement>
+    <supplement>
+        <project>
+            <groupId>org.springframework</groupId>
+            <artifactId>spring-context</artifactId>
+            <name>Spring Context</name>
+            <licenses>
+                <license>
+                    <name>The Apache Software License, Version 2.0</name>
+                    <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
+                    <distribution>repo</distribution>
+                </license>
+            </licenses>
+            <organization>
+                <name>Spring Framework</name>
+                <url>http://www.springframework.org/</url>
+            </organization>
+        </project>
+    </supplement>
+    <supplement>
+        <project>
+            <groupId>org.springframework</groupId>
+            <artifactId>spring-beans</artifactId>
+            <name>Spring Beans</name>
+            <licenses>
+                <license>
+                    <name>The Apache Software License, Version 2.0</name>
+                    <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
+                    <distribution>repo</distribution>
+                </license>
+            </licenses>
+            <organization>
+                <name>Spring Framework</name>
+                <url>http://www.springframework.org/</url>
+            </organization>
+        </project>
+    </supplement>
+    <supplement>
+        <project>
+            <groupId>org.springframework</groupId>
+            <artifactId>spring-expression</artifactId>
+            <name>Spring Expression</name>
+            <licenses>
+                <license>
+                    <name>The Apache Software License, Version 2.0</name>
+                    <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
+                    <distribution>repo</distribution>
+                </license>
+            </licenses>
+            <organization>
+                <name>Spring Framework</name>
+                <url>http://www.springframework.org/</url>
+            </organization>
+        </project>
+    </supplement>
+    <supplement>
+        <project>
+            <groupId>org.springframework</groupId>
+            <artifactId>spring-jms</artifactId>
+            <name>Spring JMS</name>
+            <licenses>
+                <license>
+                    <name>The Apache Software License, Version 2.0</name>
+                    <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
+                    <distribution>repo</distribution>
+                </license>
+            </licenses>
+            <organization>
+                <name>Spring Framework</name>
+                <url>http://www.springframework.org/</url>
+            </organization>
+        </project>
+    </supplement>
+    <supplement>
+        <project>
+            <groupId>org.springframework</groupId>
+            <artifactId>spring-tx</artifactId>
+            <name>Spring Transactions</name>
+            <licenses>
+                <license>
+                    <name>The Apache Software License, Version 2.0</name>
+                    <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
+                    <distribution>repo</distribution>
+                </license>
+            </licenses>
+            <organization>
+                <name>Spring Framework</name>
+                <url>http://www.springframework.org/</url>
+            </organization>
+        </project>
+    </supplement>
+    <supplement>
+        <project>
+            <groupId>org.springframework</groupId>
+            <artifactId>spring-web</artifactId>
+            <name>Spring Web</name>
+            <licenses>
+                <license>
+                    <name>The Apache Software License, Version 2.0</name>
+                    <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
+                    <distribution>repo</distribution>
+                </license>
+            </licenses>
+            <organization>
+                <name>Spring Framework</name>
+                <url>http://www.springframework.org/</url>
+            </organization>
+        </project>
+    </supplement>
+
+</supplementalDataModels>
diff --git a/pom.xml b/pom.xml
new file mode 100644
index 0000000..dde2eae
--- /dev/null
+++ b/pom.xml
@@ -0,0 +1,227 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements. See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership. The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License. You may obtain a copy of the License at
+ 
+  http://www.apache.org/licenses/LICENSE-2.0
+ 
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT 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</groupId>
+        <artifactId>apache</artifactId>
+        <version>7</version>
+    </parent>
+
+    <modelVersion>4.0.0</modelVersion>
+    <groupId>org.apache.cxf.build-utils</groupId>
+    <artifactId>cxf-build-utils</artifactId>
+    <version>2.3.0</version>
+    <name>Apache CXF Build Utilities</name>
+    <url>http://cxf.apache.org</url>
+    <packaging>pom</packaging>
+
+    <modules>
+        <module>buildtools</module>
+        <module>xml2fastinfoset-plugin</module>
+        <module>xml2fastinfoset-test</module>
+    </modules>
+
+    <distributionManagement>
+        <site>
+            <id>apache.cxf.site</id>
+            <url>scpexe://people.apache.org/www/cxf.apache.org/cxf/mvn_site/build-utils</url>
+        </site>
+    </distributionManagement>
+    <inceptionYear>2006</inceptionYear>
+    <scm>
+      <connection>scm:svn:http://svn.apache.org/repos/asf/cxf/build-utils/tags/cxf-build-utils-2.3.0</connection>
+      <developerConnection>scm:svn:https://svn.apache.org/repos/asf/cxf/build-utils/tags/cxf-build-utils-2.3.0</developerConnection>
+      <url>scm:svn:https://svn.apache.org/repos/asf/cxf/build-utils/tags/cxf-build-utils-2.3.0</url>
+  </scm>
+    <mailingLists>
+        <mailingList>
+            <name>Apache CXF User List</name>
+            <subscribe>users-subscribe@cxf.apache.org</subscribe>
+            <unsubscribe>users-unsubscribe@cxf.apache.org</unsubscribe>
+            <post>users@cxf.apache.org</post>
+            <archive>http://mail-archives.apache.org/mod_mbox/cxf-users</archive>
+        </mailingList>
+        <mailingList>
+            <name>Apache CXF Developer List</name>
+            <subscribe>dev-subscribe@cxf.apache.org</subscribe>
+            <unsubscribe>dev-unsubscribe@cxf.apache.org</unsubscribe>
+            <post>dev@cxf.apache.org</post>
+            <archive>http://mail-archives.apache.org/mod_mbox/cxf-dev</archive>
+        </mailingList>
+        <mailingList>
+            <name>Apache CXF Commits List</name>
+            <subscribe>commits-subscribe@cxf.apache.org</subscribe>
+            <unsubscribe>commits-unsubscribe@cxf.apache.org</unsubscribe>
+            <post>commits@cxf.apache.org</post>
+            <archive>http://mail-archives.apache.org/mod_mbox/cxf-commits</archive>
+        </mailingList>
+        <mailingList>
+            <name>Apache CXF Issues List</name>
+            <subscribe>issues-subscribe@cxf.apache.org</subscribe>
+            <unsubscribe>issues-unsubscribe@cxf.apache.org</unsubscribe>
+            <post>issues@cxf.apache.org</post>
+            <archive>http://mail-archives.apache.org/mod_mbox/cxf-issues</archive>
+        </mailingList>
+        <mailingList>
+            <name>Apache CXF Build Notifications List</name>
+            <subscribe>notifications-subscribe@cxf.apache.org</subscribe>
+            <unsubscribe>notifications-unsubscribe@cxf.apache.org</unsubscribe>
+            <post>notifications@cxf.apache.org</post>
+            <archive>http://mail-archives.apache.org/mod_mbox/cxf-notifications</archive>
+        </mailingList>
+    </mailingLists>
+
+    <build>
+        <defaultGoal>install</defaultGoal>
+
+         <pluginManagement>
+             <plugins>
+                 <plugin>
+                     <groupId>org.codehaus.mojo</groupId>
+                     <artifactId>build-helper-maven-plugin</artifactId>
+                     <version>1.4</version>
+                 </plugin>
+                 <plugin>
+                     <groupId>org.apache.maven.plugins</groupId>
+                     <artifactId>maven-clean-plugin</artifactId>
+                     <version>2.3</version>
+                 </plugin>
+                 <plugin>
+                     <groupId>org.apache.maven.plugins</groupId>
+                     <artifactId>maven-install-plugin</artifactId>
+                     <version>2.3</version>
+                 </plugin>
+                 <plugin>
+                     <groupId>org.apache.maven.plugins</groupId>
+                     <artifactId>maven-release-plugin</artifactId>
+                     <version>2.0-beta-9</version>
+                     <configuration>
+                         <tagBase>https://svn.apache.org/repos/asf/cxf/build-utils/tags</tagBase>
+                         <useReleaseProfile>false</useReleaseProfile>
+                         <preparationGoals>clean install</preparationGoals>
+                         <goals>deploy</goals>
+                         <arguments>-Prelease,deploy</arguments>
+                         <autoVersionSubmodules>true</autoVersionSubmodules>
+                     </configuration>
+                 </plugin>
+                 <plugin>
+                     <groupId>org.apache.maven.plugins</groupId>
+                     <artifactId>maven-javadoc-plugin</artifactId>
+                     <version>2.5</version>
+                     <configuration>
+                         <attach>true</attach>
+                         <source>1.5</source>
+                         <quiet>true</quiet>
+                         <bottom>Apache CXF</bottom>
+                         <javadocVersion>1.5</javadocVersion>
+                         <encoding>UTF-8</encoding>
+                         <!--subpackages>org.apache.cxf</subpackages-->
+                     </configuration>
+                 </plugin>
+                 <plugin>
+                     <groupId>org.apache.maven.plugins</groupId>
+                     <artifactId>maven-surefire-plugin</artifactId>
+                     <version>2.5</version>
+                 </plugin>
+                 <plugin>
+                     <groupId>org.apache.maven.plugins</groupId>
+                     <artifactId>maven-compiler-plugin</artifactId>
+                     <version>2.0.2</version>
+                     <configuration>
+                         <source>1.5</source>
+                         <target>1.5</target>
+                         <maxmem>256M</maxmem>
+                     </configuration>
+                 </plugin>
+                 <plugin>
+                     <groupId>org.apache.maven.plugins</groupId>
+                     <artifactId>maven-antrun-plugin</artifactId>
+                     <version>1.3</version>
+                 </plugin>
+                 <plugin>
+                     <groupId>org.apache.maven.plugins</groupId>
+                     <artifactId>maven-jar-plugin</artifactId>
+                     <version>2.2</version>
+                     <configuration>
+                         <archive>
+                             <manifestEntries>
+                                 <Specification-Title>${project.name}</Specification-Title>
+                                 <Specification-Vendor>The Apache Software Foundation</Specification-Vendor>
+                                 <Specification-Version>${project.version}</Specification-Version>
+                                 <Implementation-Title>${project.name}</Implementation-Title>
+                                 <Implementation-Vendor-Id>org.apache</Implementation-Vendor-Id>
+                                 <Implementation-Vendor>The Apache Software Foundation</Implementation-Vendor>
+                                 <Implementation-Version>${project.version}</Implementation-Version>
+                             </manifestEntries>
+                         </archive>
+                     </configuration>
+                 </plugin>
+                 <plugin>
+                     <groupId>org.apache.maven.plugins</groupId>
+                     <artifactId>maven-resources-plugin</artifactId>
+                     <version>2.3</version>
+                     <configuration>
+                         <encoding>UTF-8</encoding>
+                     </configuration>
+                 </plugin>
+                 <plugin>
+                     <groupId>org.apache.maven.plugins</groupId>
+                     <artifactId>maven-assembly-plugin</artifactId>
+                     <version>2.2-beta-4</version>
+                 </plugin>
+
+                 <plugin>
+                     <groupId>org.apache.maven.plugins</groupId>
+                     <artifactId>maven-dependency-plugin</artifactId>
+                     <version>2.1</version>
+                 </plugin>
+                 <plugin>
+                     <groupId>org.apache.maven.plugins</groupId>
+                     <artifactId>maven-shade-plugin</artifactId>
+                     <version>1.2.1</version>
+                 </plugin>
+                 <plugin>
+                     <groupId>org.apache.maven.plugins</groupId>
+                     <artifactId>maven-site-plugin</artifactId>
+                     <version>2.0.1</version>
+                 </plugin>
+                 <plugin>
+                     <groupId>org.apache.maven.plugins</groupId>
+                     <artifactId>maven-deploy-plugin</artifactId>
+                     <version>2.4</version>
+                 </plugin>
+                 <plugin>
+                     <groupId>org.apache.maven.plugins</groupId>
+                     <artifactId>maven-surefire-report-plugin</artifactId>
+                     <version>2.5</version>
+                 </plugin>
+                 <plugin>
+                     <groupId>org.apache.maven.plugins</groupId>
+                     <artifactId>maven-project-info-reports-plugin</artifactId>
+                     <version>2.1.1</version>
+                 </plugin>
+                 <plugin>
+                     <groupId>org.apache.maven.plugins</groupId>
+                     <artifactId>maven-plugin-plugin</artifactId>
+                     <version>2.5</version>
+                 </plugin>
+             </plugins>
+         </pluginManagement>
+    </build>
+</project>
diff --git a/xml2fastinfoset-plugin/pom.xml b/xml2fastinfoset-plugin/pom.xml
new file mode 100644
index 0000000..7679725
--- /dev/null
+++ b/xml2fastinfoset-plugin/pom.xml
@@ -0,0 +1,74 @@
+<?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">
+    <parent>
+         <groupId>org.apache.cxf.build-utils</groupId>
+         <artifactId>cxf-build-utils</artifactId>
+         <version>2.3.0</version>
+     </parent>
+
+
+    <modelVersion>4.0.0</modelVersion>
+    <groupId>org.apache.cxf.build-utils</groupId>
+    <artifactId>cxf-xml2fastinfoset-plugin</artifactId>
+    <packaging>maven-plugin</packaging>
+    <name>Apache CXF XML to FastInfoset Maven2 Plugin</name>
+    <url>http://cxf.apache.org</url>
+    <prerequisites>
+        <maven>2.0</maven>
+    </prerequisites>
+
+    <dependencies>
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+            <version>4.4</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.maven</groupId>
+            <artifactId>maven-plugin-api</artifactId>
+            <version>2.0.9</version>
+            <scope>provided</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.maven</groupId>
+            <artifactId>maven-project</artifactId>
+            <version>2.0.9</version>
+            <scope>provided</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.maven</groupId>
+            <artifactId>maven-artifact</artifactId>
+            <version>2.0.9</version>
+            <scope>provided</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.codehaus.plexus</groupId>
+            <artifactId>plexus-utils</artifactId>
+            <version>1.0.4</version>
+        </dependency>
+        <dependency>
+            <groupId>com.sun.xml.fastinfoset</groupId>
+            <artifactId>FastInfoset</artifactId>
+            <version>1.2.7</version>
+        </dependency>
+    </dependencies>
+</project>
diff --git a/xml2fastinfoset-plugin/src/main/java/org/apache/cxf/maven_plugin/xml2fastinfoset/XML2FastInfosetCompilerMojo.java b/xml2fastinfoset-plugin/src/main/java/org/apache/cxf/maven_plugin/xml2fastinfoset/XML2FastInfosetCompilerMojo.java
new file mode 100644
index 0000000..d0e4d04
--- /dev/null
+++ b/xml2fastinfoset-plugin/src/main/java/org/apache/cxf/maven_plugin/xml2fastinfoset/XML2FastInfosetCompilerMojo.java
@@ -0,0 +1,220 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT 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.cxf.maven_plugin.xml2fastinfoset;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Set;
+
+import javax.xml.parsers.ParserConfigurationException;
+import javax.xml.parsers.SAXParser;
+import javax.xml.parsers.SAXParserFactory;
+
+import org.xml.sax.SAXException;
+
+import com.sun.xml.fastinfoset.sax.SAXDocumentSerializer;
+
+import org.apache.maven.model.Resource;
+import org.apache.maven.plugin.AbstractMojo;
+import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.project.MavenProject;
+import org.codehaus.plexus.util.DirectoryScanner;
+
+/**
+ * Compile XML resources to FastInfoset XML resources.
+ * 
+ * @goal xml2fastinfoset
+ * @phase process-resources
+ */
+public class XML2FastInfosetCompilerMojo extends AbstractMojo {
+    private static final String[] EMPTY_STRING_ARRAY = {};
+    private static final String[] DEFAULT_INCLUDES = {"**/*.xml"};
+
+    /**
+     * @parameter expression="${project}"
+     * @required
+     * @readonly
+     */
+    private MavenProject project;
+
+    /**
+     * The resource directories containing the XML files to be compiled.
+     * 
+     * @parameter expression="${project.resources}"
+     * @required
+     * @readonly
+     */
+    private List resources;
+
+    /**
+     * A list of inclusion filters.
+     * 
+     * @parameter
+     */
+    private Set includes = new HashSet();
+
+    /**
+     * A list of exclusion filters.
+     * 
+     * @parameter
+     */
+    private Set excludes = new HashSet();
+
+    /**
+     * The directory for the results.
+     * 
+     * @parameter expression="${project.build.outputDirectory}"
+     * @required
+     */
+    private File outputDirectory;
+
+    @SuppressWarnings("unchecked")
+    public void execute() throws MojoExecutionException {
+
+        for (Iterator it = resources.iterator(); it.hasNext();) {
+            Resource resource = (Resource)it.next();
+            String targetPath = resource.getTargetPath();
+
+            File resourceDirectory = new File(resource.getDirectory());
+            if (!resourceDirectory.isAbsolute()) {
+                resourceDirectory = new File(project.getBasedir(), resourceDirectory.getPath());
+            }
+
+            if (!resourceDirectory.exists()) {
+                getLog().debug("Resource directory does not exist: " + resourceDirectory);
+                continue;
+            }
+
+
+            DirectoryScanner scanner = new DirectoryScanner();
+
+            scanner.setBasedir(resourceDirectory);
+            if (includes != null && !includes.isEmpty()) {
+                scanner.setIncludes((String[])includes.toArray(EMPTY_STRING_ARRAY));
+            } else {
+                scanner.setIncludes(DEFAULT_INCLUDES);
+            }
+
+            if (excludes != null && !excludes.isEmpty()) {
+                scanner.setExcludes((String[])excludes.toArray(EMPTY_STRING_ARRAY));
+            }
+
+            scanner.addDefaultExcludes();
+            scanner.scan();
+
+            List includedFiles = Arrays.asList(scanner.getIncludedFiles());
+
+            getLog().debug("FastInfosetting " + includedFiles.size() + " resource"
+                              + (includedFiles.size() > 1 ? "s" : "")
+                              + (targetPath == null ? "" : " to " + targetPath));
+
+            if (includedFiles.size() > 0) {
+                // this part is required in case the user specified "../something"
+                // as destination
+                // see MNG-1345
+                if (!outputDirectory.exists() && !outputDirectory.mkdirs()) {
+                    throw new MojoExecutionException("Cannot create resource output directory: "
+                                                     + outputDirectory);
+                }
+            }
+            
+            for (Iterator j = includedFiles.iterator(); j.hasNext();) {
+                String name = (String)j.next();
+
+                String destination = name.replaceFirst("\\.xml$", ".fixml");
+
+                if (targetPath != null) {
+                    destination = targetPath + "/" + name;
+                }
+                
+                File source = new File(resourceDirectory, name);
+
+                File destinationFile = new File(outputDirectory, destination);
+
+                if (!destinationFile.getParentFile().exists()) {
+                    destinationFile.getParentFile().mkdirs();
+                }
+
+                try {
+                    compileFile(source, destinationFile);
+                } catch (Exception e) {
+                    throw new MojoExecutionException("Error copying resource " + source, e);
+                }
+            }
+
+        }
+    }
+
+    private void compileFile(File sourceFile, File destinationFile) throws ParserConfigurationException,
+        SAXException, IOException {
+
+        FileInputStream fis = null;
+        FileOutputStream fos = null;
+        try {
+            fis = new FileInputStream(sourceFile);
+            fos = new FileOutputStream(destinationFile);
+            dehydrate(fis, fos);
+            fis.close();
+            fos.close();
+        } finally {
+            try {
+                if (fis != null) {
+                    fis.close();
+                }
+                if (fos != null) {
+                    fos.close();
+                }
+            } catch (Exception e) {
+                // nothing.
+            }
+        }
+    }
+
+    private void dehydrate(InputStream input, OutputStream output) throws ParserConfigurationException,
+        SAXException, IOException {
+        // Create Fast Infoset SAX serializer
+        SAXDocumentSerializer saxDocumentSerializer = new SAXDocumentSerializer();
+        // Set the output stream
+        saxDocumentSerializer.setOutputStream(output);
+
+        // Instantiate JAXP SAX parser factory
+        SAXParserFactory saxParserFactory = SAXParserFactory.newInstance();
+        /*
+         * Set parser to be namespace aware Very important to do otherwise
+         * invalid FI documents will be created by the SAXDocumentSerializer
+         */
+        saxParserFactory.setNamespaceAware(true);
+        // Instantiate the JAXP SAX parser
+        SAXParser saxParser = saxParserFactory.newSAXParser();
+        // Set the lexical handler
+        saxParser.setProperty("http://xml.org/sax/properties/lexical-handler", saxDocumentSerializer);
+        // Parse the XML document and convert to a fast infoset document
+        saxParser.parse(input, saxDocumentSerializer);
+    }
+
+}
diff --git a/xml2fastinfoset-test/pom.xml b/xml2fastinfoset-test/pom.xml
new file mode 100644
index 0000000..5283023
--- /dev/null
+++ b/xml2fastinfoset-test/pom.xml
@@ -0,0 +1,60 @@
+<?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">
+
+    <parent>
+        <groupId>org.apache.cxf.build-utils</groupId>
+        <artifactId>cxf-build-utils</artifactId>
+        <version>2.3.0</version>
+    </parent>
+
+    <modelVersion>4.0.0</modelVersion>
+    <groupId>org.apache.cxf.build-utils</groupId>
+    <artifactId>cxf-xml2fastinfoset-test</artifactId>
+    <packaging>jar</packaging>
+    <name>Apache CXF XML to FastInfoset Maven2 Plugin Test</name>
+    <url>http://cxf.apache.org</url>
+
+    <dependencies>
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+            <scope>test</scope>
+            <version>4.4</version>
+        </dependency>
+    </dependencies>
+    <build>
+        <plugins>
+            <plugin>
+                <executions>
+                    <execution>
+                        <phase>process-resources</phase>
+                        <goals>
+                            <goal>xml2fastinfoset</goal>
+                        </goals>
+                    </execution>
+                </executions>
+                <groupId>org.apache.cxf.build-utils</groupId>
+                <artifactId>cxf-xml2fastinfoset-plugin</artifactId>
+                <version>${project.version}</version>
+            </plugin>
+        </plugins>
+    </build>
+</project>
\ No newline at end of file
diff --git a/xml2fastinfoset-test/src/main/resources/META-INF/cxf/test-cxf.xml b/xml2fastinfoset-test/src/main/resources/META-INF/cxf/test-cxf.xml
new file mode 100644
index 0000000..56fcc42
--- /dev/null
+++ b/xml2fastinfoset-test/src/main/resources/META-INF/cxf/test-cxf.xml
@@ -0,0 +1,122 @@
+<?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.
+-->
+<beans xmlns="http://www.springframework.org/schema/beans"
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+       xmlns:foo="http://cxf.apache.org/configuration/foo"
+       xsi:schemaLocation="
+http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
+
+    <bean id="cxf" class="org.apache.cxf.bus.CXFBusImpl"/>
+    <bean id="org.apache.cxf.bus.spring.Jsr250BeanPostProcessor" class="org.apache.cxf.bus.spring.Jsr250BeanPostProcessor"/>    
+    <bean id="org.apache.cxf.bus.spring.BusExtensionPostProcessor" class="org.apache.cxf.bus.spring.BusExtensionPostProcessor"/>
+    
+    <bean id="org.apache.cxf.resource.ResourceManager" class="org.apache.cxf.bus.resource.ResourceManagerImpl">
+       <constructor-arg>
+            <list>
+                <bean class="org.apache.cxf.resource.ClasspathResolver"/>
+                <bean class="org.apache.cxf.resource.ClassLoaderResolver"/>
+                <bean class="org.apache.cxf.bus.spring.BusApplicationContextResourceResolver"/>
+            </list>
+       </constructor-arg>
+       <property name="bus" ref="cxf"/>
+    </bean>
+    <bean id="org.apache.cxf.configuration.Configurer" 
+    	class="org.apache.cxf.configuration.spring.ConfigurerImpl">
+    </bean>    
+        
+    <bean id="org.apache.cxf.binding.BindingFactoryManager" class="org.apache.cxf.binding.BindingFactoryManagerImpl">
+        <constructor-arg>
+            <bean class="org.apache.cxf.configuration.spring.SpringBeanMap">
+              <property name="type" value="org.apache.cxf.binding.BindingFactory"/>
+              <property name="idsProperty" value="activationNamespaces"/>
+            </bean>
+        </constructor-arg>
+        <property name="bus" ref="cxf"/>
+    </bean>
+    
+    <bean id="org.apache.cxf.transport.DestinationFactoryManager" class="org.apache.cxf.transport.DestinationFactoryManagerImpl">
+        <constructor-arg>
+            <bean class="org.apache.cxf.configuration.spring.SpringBeanMap">
+              <property name="type" value="org.apache.cxf.transport.DestinationFactory"/>
+              <property name="idsProperty" value="transportIds"/>
+            </bean>
+        </constructor-arg>
+        <property name="bus" ref="cxf"/>
+    </bean>
+    
+    <bean id="org.apache.cxf.transport.ConduitInitiatorManager" class="org.apache.cxf.transport.ConduitInitiatorManagerImpl">
+        <constructor-arg>
+            <bean class="org.apache.cxf.configuration.spring.SpringBeanMap">
+              <property name="type" value="org.apache.cxf.transport.ConduitInitiator"/>
+              <property name="idsProperty" value="transportIds"/>
+            </bean>
+        </constructor-arg>
+        <property name="bus" ref="cxf"/>
+    </bean>
+    
+    <bean id="org.apache.cxf.wsdl.WSDLManager" class="org.apache.cxf.wsdl11.WSDLManagerImpl">
+        <property name="bus" ref="cxf"/>
+    </bean>
+    
+    <bean id="org.apache.cxf.phase.PhaseManager" class="org.apache.cxf.phase.PhaseManagerImpl">
+        
+    </bean>
+    
+    <bean id="org.apache.cxf.workqueue.WorkQueueManager" class="org.apache.cxf.workqueue.WorkQueueManagerImpl">
+        <property name="bus" ref="cxf"/>
+    </bean>
+    
+    <bean id="org.apache.cxf.buslifecycle.BusLifeCycleManager" class="org.apache.cxf.buslifecycle.CXFBusLifeCycleManager">
+        <property name="bus" ref="cxf"/>
+    </bean>
+    
+    <bean id="org.apache.cxf.endpoint.ServerRegistry" class="org.apache.cxf.endpoint.ServerRegistryImpl">
+        <property name="bus" ref="cxf"/>
+    </bean>
+
+    <bean id="org.apache.cxf.endpoint.ServerLifeCycleManager" class="org.apache.cxf.endpoint.ServerLifeCycleManagerImpl"/>
+    <bean id="org.apache.cxf.endpoint.ClientLifeCycleManager" class="org.apache.cxf.endpoint.ClientLifeCycleManagerImpl"/>
+        
+
+    <bean id="org.apache.cxf.transports.http.QueryHandlerRegistry" class="org.apache.cxf.transport.http.QueryHandlerRegistryImpl">
+        <constructor-arg ref="cxf"/>
+        <constructor-arg>
+        	<list>
+        		<bean class="org.apache.cxf.transport.http.WSDLQueryHandler">
+			        <constructor-arg ref="cxf"/>
+        		</bean>	
+        	</list>
+        </constructor-arg>
+    </bean>
+
+    <bean id="org.apache.cxf.endpoint.EndpointResolverRegistry" class="org.apache.cxf.endpoint.EndpointResolverRegistryImpl">
+        <property name="bus" ref="cxf"/>
+    </bean>
+    <bean id="org.apache.cxf.headers.HeaderManager" class="org.apache.cxf.headers.HeaderManagerImpl">
+        <property name="bus" ref="cxf"/>
+    </bean>
+    <bean id="org.apache.cxf.catalog.OASISCatalogManager" class="org.apache.cxf.catalog.OASISCatalogManager">
+        <property name="bus" ref="cxf"/>
+    </bean>
+
+    <bean id="org.apache.cxf.endpoint.ServiceContractResolverRegistry" class="org.apache.cxf.endpoint.ServiceContractResolverRegistryImpl">
+        <property name="bus" ref="cxf"/>
+    </bean>
+</beans>