8176508: Update JAX-WS RI integration to latest version
Reviewed-by: lancea, mchung, alanb, iris
diff --git a/src/java.activation/share/classes/javax/activation/CommandInfo.java b/src/java.activation/share/classes/javax/activation/CommandInfo.java
index b6312e0..5e8d3d3 100644
--- a/src/java.activation/share/classes/javax/activation/CommandInfo.java
+++ b/src/java.activation/share/classes/javax/activation/CommandInfo.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -118,6 +118,9 @@
      *                  passed to the command.
      * @param loader    The ClassLoader to be used to instantiate the bean.
      * @return The bean
+     * @exception       IOException     for failures reading data
+     * @exception       ClassNotFoundException  if command object class can't
+     *                                          be found
      * @see java.beans.Beans#instantiate
      * @see javax.activation.CommandObject
      */
diff --git a/src/java.activation/share/classes/javax/activation/CommandObject.java b/src/java.activation/share/classes/javax/activation/CommandObject.java
index 7dda023..1ec5849 100644
--- a/src/java.activation/share/classes/javax/activation/CommandObject.java
+++ b/src/java.activation/share/classes/javax/activation/CommandObject.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -48,6 +48,7 @@
      *
      * @param verb The Command Verb this object refers to.
      * @param dh The DataHandler.
+     * @exception       IOException     for failures accessing data
      */
     public void setCommandContext(String verb, DataHandler dh)
                                                 throws IOException;
diff --git a/src/java.activation/share/classes/javax/activation/DataHandler.java b/src/java.activation/share/classes/javax/activation/DataHandler.java
index 27f7248..5950399 100644
--- a/src/java.activation/share/classes/javax/activation/DataHandler.java
+++ b/src/java.activation/share/classes/javax/activation/DataHandler.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -326,6 +326,7 @@
      * Otherwise, {@code null} is returned.
      *
      * @return the OutputStream
+     * @exception       IOException     for failures creating the OutputStream
      *
      * @see javax.activation.DataSource#getOutputStream
      * @see javax.activation.URLDataSource
diff --git a/src/java.activation/share/classes/javax/activation/DataSource.java b/src/java.activation/share/classes/javax/activation/DataSource.java
index 8439eb1..cee1018 100644
--- a/src/java.activation/share/classes/javax/activation/DataSource.java
+++ b/src/java.activation/share/classes/javax/activation/DataSource.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -49,6 +49,7 @@
      * positioned at the beginning of the data.
      *
      * @return an InputStream
+     * @exception       IOException     for failures creating the InputStream
      */
     public InputStream getInputStream() throws IOException;
 
@@ -60,6 +61,7 @@
      * be positioned at the location the data is to be written.
      *
      * @return an OutputStream
+     * @exception       IOException     for failures creating the OutputStream
      */
     public OutputStream getOutputStream() throws IOException;
 
diff --git a/src/java.activation/share/classes/javax/activation/MailcapCommandMap.java b/src/java.activation/share/classes/javax/activation/MailcapCommandMap.java
index 29bc9ad..d88a440 100644
--- a/src/java.activation/share/classes/javax/activation/MailcapCommandMap.java
+++ b/src/java.activation/share/classes/javax/activation/MailcapCommandMap.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -29,6 +29,8 @@
 import java.util.*;
 import java.io.*;
 import java.net.*;
+import java.security.AccessController;
+import java.security.PrivilegedAction;
 import com.sun.activation.registries.MailcapFile;
 import com.sun.activation.registries.LogSupport;
 
@@ -48,12 +50,19 @@
  * <ol>
  * <li> Programatically added entries to the MailcapCommandMap instance.
  * <li> The file {@code .mailcap} in the user's home directory.
- * <li> The file {@literal <}<i>java.home</i>{@literal >}{@code /lib/mailcap}.
+ * <li> The file {@code mailcap} in the Java runtime.
  * <li> The file or resources named {@code META-INF/mailcap}.
  * <li> The file or resource named {@code META-INF/mailcap.default}
  * (usually found only in the {@code activation.jar} file).
  * </ol>
  * <p>
+ * (The current implementation looks for the {@code mailcap} file
+ * in the Java runtime in the directory <i>java.home</i>{@code /conf}
+ * if it exists, and otherwise in the directory
+ * <i>java.home</i>{@code /lib}, where <i>java.home</i> is the value
+ * of the "java.home" System property.  Note that the "conf" directory was
+ * introduced in JDK 9.)
+ * <p>
  * <b>Mailcap file format:</b><p>
  *
  * Mailcap files must conform to the mailcap
@@ -120,6 +129,29 @@
     private MailcapFile[] DB;
     private static final int PROG = 0;  // programmatically added entries
 
+    private static final String confDir;
+
+    static {
+        String dir = null;
+        try {
+            dir = (String)AccessController.doPrivileged(
+                new PrivilegedAction() {
+                    public Object run() {
+                        String home = System.getProperty("java.home");
+                        String newdir = home + File.separator + "conf";
+                        File conf = new File(newdir);
+                        if (conf.exists())
+                            return newdir + File.separator;
+                        else
+                            return home + File.separator + "lib" + File.separator;
+                    }
+                });
+        } catch (Exception ex) {
+            // ignore any exceptions
+        }
+        confDir = dir;
+    }
+
     /**
      * The default Constructor.
      */
@@ -144,11 +176,11 @@
         LogSupport.log("MailcapCommandMap: load SYS");
         try {
             // check system's home
-            String system_mailcap = System.getProperty("java.home") +
-                File.separator + "lib" + File.separator + "mailcap";
-            mf = loadFile(system_mailcap);
-            if (mf != null)
-                dbv.add(mf);
+            if (confDir != null) {
+                mf = loadFile(confDir + "mailcap");
+                if (mf != null)
+                    dbv.add(mf);
+            }
         } catch (SecurityException ex) {}
 
         LogSupport.log("MailcapCommandMap: load JAR");
@@ -633,6 +665,7 @@
      * entries that specify a view command for the specified
      * MIME type are returned.
      *
+     * @param   mimeType        the MIME type
      * @return          array of native command entries
      * @since   1.6, JAF 1.1
      */
diff --git a/src/java.activation/share/classes/javax/activation/MimeType.java b/src/java.activation/share/classes/javax/activation/MimeType.java
index 7f751fa..d96f454 100644
--- a/src/java.activation/share/classes/javax/activation/MimeType.java
+++ b/src/java.activation/share/classes/javax/activation/MimeType.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -58,6 +58,7 @@
      * Constructor that builds a MimeType from a String.
      *
      * @param rawdata   the MIME type string
+     * @exception       MimeTypeParseException  if the MIME type can't be parsed
      */
     public MimeType(String rawdata) throws MimeTypeParseException {
         parse(rawdata);
@@ -258,6 +259,7 @@
      *
      * @param rawdata   the MIME type string to compare with
      * @return          true if they match
+     * @exception       MimeTypeParseException  if the MIME type can't be parsed
      */
     public boolean match(String rawdata) throws MimeTypeParseException {
         return match(new MimeType(rawdata));
diff --git a/src/java.activation/share/classes/javax/activation/MimeTypeParameterList.java b/src/java.activation/share/classes/javax/activation/MimeTypeParameterList.java
index 869dcfa..83822fa 100644
--- a/src/java.activation/share/classes/javax/activation/MimeTypeParameterList.java
+++ b/src/java.activation/share/classes/javax/activation/MimeTypeParameterList.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -58,6 +58,7 @@
      * Constructs a new MimeTypeParameterList with the passed in data.
      *
      * @param parameterList an RFC 2045, 2046 compliant parameter list.
+     * @exception       MimeTypeParseException  if the MIME type can't be parsed
      */
     public MimeTypeParameterList(String parameterList)
                                         throws MimeTypeParseException {
@@ -71,6 +72,7 @@
      * A routine for parsing the parameter list out of a String.
      *
      * @param parameterList an RFC 2045, 2046 compliant parameter list.
+     * @exception       MimeTypeParseException  if the MIME type can't be parsed
      */
     protected void parse(String parameterList) throws MimeTypeParseException {
         if (parameterList == null)
diff --git a/src/java.activation/share/classes/javax/activation/MimetypesFileTypeMap.java b/src/java.activation/share/classes/javax/activation/MimetypesFileTypeMap.java
index 430b43b..d249463 100644
--- a/src/java.activation/share/classes/javax/activation/MimetypesFileTypeMap.java
+++ b/src/java.activation/share/classes/javax/activation/MimetypesFileTypeMap.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -28,6 +28,8 @@
 import java.io.*;
 import java.net.*;
 import java.util.*;
+import java.security.AccessController;
+import java.security.PrivilegedAction;
 import com.sun.activation.registries.MimeTypeFile;
 import com.sun.activation.registries.LogSupport;
 
@@ -43,12 +45,19 @@
  * <ol>
  * <li> Programmatically added entries to the MimetypesFileTypeMap instance.
  * <li> The file {@code .mime.types} in the user's home directory.
- * <li> The file {@literal <}<i>java.home</i>{@literal >}{@code /lib/mime.types}.
+ * <li> The file {@code mime.types} in the Java runtime.
  * <li> The file or resources named {@code META-INF/mime.types}.
  * <li> The file or resource named {@code META-INF/mimetypes.default}
  * (usually found only in the {@code activation.jar} file).
  * </ol>
  * <p>
+ * (The current implementation looks for the {@code mime.types} file
+ * in the Java runtime in the directory <i>java.home</i>{@code /conf}
+ * if it exists, and otherwise in the directory
+ * <i>java.home</i>{@code /lib}, where <i>java.home</i> is the value
+ * of the "java.home" System property.  Note that the "conf" directory was
+ * introduced in JDK 9.)
+ * <p>
  * <b>MIME types file format:</b>
  *
  * <pre>{@code
@@ -72,7 +81,30 @@
     private MimeTypeFile[] DB;
     private static final int PROG = 0;  // programmatically added entries
 
-    private static String defaultType = "application/octet-stream";
+    private static final String defaultType = "application/octet-stream";
+
+    private static final String confDir;
+
+    static {
+        String dir = null;
+        try {
+            dir = (String)AccessController.doPrivileged(
+                new PrivilegedAction() {
+                    public Object run() {
+                        String home = System.getProperty("java.home");
+                        String newdir = home + File.separator + "conf";
+                        File conf = new File(newdir);
+                        if (conf.exists())
+                            return newdir + File.separator;
+                        else
+                            return home + File.separator + "lib" + File.separator;
+                    }
+                });
+        } catch (Exception ex) {
+            // ignore any exceptions
+        }
+        confDir = dir;
+    }
 
     /**
      * The default constructor.
@@ -97,11 +129,11 @@
         LogSupport.log("MimetypesFileTypeMap: load SYS");
         try {
             // check system's home
-            String system_mimetypes = System.getProperty("java.home") +
-                File.separator + "lib" + File.separator + "mime.types";
-            mf = loadFile(system_mimetypes);
-            if (mf != null)
-                dbv.addElement(mf);
+            if (confDir != null) {
+                mf = loadFile(confDir + "mime.types");
+                if (mf != null)
+                    dbv.addElement(mf);
+            }
         } catch (SecurityException ex) {}
 
         LogSupport.log("MimetypesFileTypeMap: load JAR");
@@ -239,6 +271,7 @@
      * added from the named file.
      *
      * @param mimeTypeFileName  the file name
+     * @exception       IOException     for errors reading the file
      */
     public MimetypesFileTypeMap(String mimeTypeFileName) throws IOException {
         this();
diff --git a/src/java.xml.bind/share/classes/com/sun/xml/internal/bind/marshaller/MinimumEscapeHandler.java b/src/java.xml.bind/share/classes/com/sun/xml/internal/bind/marshaller/MinimumEscapeHandler.java
index d993fd6..fb83399 100644
--- a/src/java.xml.bind/share/classes/com/sun/xml/internal/bind/marshaller/MinimumEscapeHandler.java
+++ b/src/java.xml.bind/share/classes/com/sun/xml/internal/bind/marshaller/MinimumEscapeHandler.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -48,10 +48,10 @@
         int limit = start+length;
         for (int i = start; i < limit; i++) {
             char c = ch[i];
-                if(c == '&' || c == '<' || c == '>' || c == '\r' || (c == '\"' && isAttVal) ) {
-                if(i!=start)
-                    out.write(ch,start,i-start);
-                start = i+1;
+            if (c == '&' || c == '<' || c == '>' || c == '\r' || (c == '\n' && isAttVal) || (c == '\"' && isAttVal)) {
+                if (i != start)
+                    out.write(ch, start, i - start);
+                start = i + 1;
                 switch (ch[i]) {
                     case '&':
                         out.write("&amp;");
@@ -65,6 +65,14 @@
                     case '\"':
                         out.write("&quot;");
                         break;
+                    case '\n':
+                    case '\r':
+                        out.write("&#");
+                        out.write(Integer.toString(c));
+                        out.write(';');
+                        break;
+                    default:
+                        throw new IllegalArgumentException("Cannot escape: '" + c + "'");
                 }
             }
         }
diff --git a/src/java.xml.bind/share/classes/com/sun/xml/internal/bind/marshaller/NoEscapeHandler.java b/src/java.xml.bind/share/classes/com/sun/xml/internal/bind/marshaller/NoEscapeHandler.java
new file mode 100644
index 0000000..5edfb0c
--- /dev/null
+++ b/src/java.xml.bind/share/classes/com/sun/xml/internal/bind/marshaller/NoEscapeHandler.java
@@ -0,0 +1,45 @@
+/*
+ * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package com.sun.xml.internal.bind.marshaller;
+
+import java.io.IOException;
+import java.io.Writer;
+
+/**
+ * Performs no character escaping.
+ *
+ * @author
+ *     Roman Grigoriadi (roman.grigoriadi@oracle.com)
+ */
+public class NoEscapeHandler implements CharacterEscapeHandler {
+
+    public static final NoEscapeHandler theInstance = new NoEscapeHandler();
+
+    @Override
+    public void escape(char[] ch, int start, int length, boolean isAttVal, Writer out) throws IOException {
+        out.write(ch, start, length);
+    }
+}
diff --git a/src/java.xml.bind/share/classes/com/sun/xml/internal/bind/v2/runtime/BridgeImpl.java b/src/java.xml.bind/share/classes/com/sun/xml/internal/bind/v2/runtime/BridgeImpl.java
index 2142009..8674293 100644
--- a/src/java.xml.bind/share/classes/com/sun/xml/internal/bind/v2/runtime/BridgeImpl.java
+++ b/src/java.xml.bind/share/classes/com/sun/xml/internal/bind/v2/runtime/BridgeImpl.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -76,7 +76,7 @@
 
     public void marshal(Marshaller _m, T t, XMLStreamWriter output) throws JAXBException {
         MarshallerImpl m = (MarshallerImpl)_m;
-        m.write(tagName,bi,t,XMLStreamWriterOutput.create(output,context),new StAXPostInitAction(output,m.serializer));
+        m.write(tagName,bi,t,XMLStreamWriterOutput.create(output,context, m.getEscapeHandler()),new StAXPostInitAction(output,m.serializer));
     }
 
     public void marshal(Marshaller _m, T t, OutputStream output, NamespaceContext nsContext) throws JAXBException {
diff --git a/src/java.xml.bind/share/classes/com/sun/xml/internal/bind/v2/runtime/MarshallerImpl.java b/src/java.xml.bind/share/classes/com/sun/xml/internal/bind/v2/runtime/MarshallerImpl.java
index 4891984..5796b01 100644
--- a/src/java.xml.bind/share/classes/com/sun/xml/internal/bind/v2/runtime/MarshallerImpl.java
+++ b/src/java.xml.bind/share/classes/com/sun/xml/internal/bind/v2/runtime/MarshallerImpl.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -165,7 +165,7 @@
 
     @Override
     public void marshal(Object obj, XMLStreamWriter writer) throws JAXBException {
-        write(obj, XMLStreamWriterOutput.create(writer,context), new StAXPostInitAction(writer,serializer));
+        write(obj, XMLStreamWriterOutput.create(writer,context, escapeHandler), new StAXPostInitAction(writer,serializer));
     }
 
     @Override
@@ -371,6 +371,15 @@
     }
 
 
+    /**
+     * Returns escape handler provided with JAXB context parameters.
+     *
+     * @return escape handler
+     */
+    CharacterEscapeHandler getEscapeHandler() {
+        return escapeHandler;
+    }
+
     //
     //
     // create XMLWriter by specifing various type of output.
@@ -436,13 +445,14 @@
         if(encoding.equals("UTF-8")) {
             Encoded[] table = context.getUTF8NameTable();
             final UTF8XmlOutput out;
+            CharacterEscapeHandler ceh = createEscapeHandler(encoding);
             if(isFormattedOutput())
-                out = new IndentingUTF8XmlOutput(os, indent, table, escapeHandler);
+                out = new IndentingUTF8XmlOutput(os, indent, table, ceh);
             else {
                 if(c14nSupport)
-                    out = new C14nXmlOutput(os, table, context.c14nSupport, escapeHandler);
+                    out = new C14nXmlOutput(os, table, context.c14nSupport, ceh);
                 else
-                    out = new UTF8XmlOutput(os, table, escapeHandler);
+                    out = new UTF8XmlOutput(os, table, ceh);
             }
             if(header!=null)
                 out.setHeader(header);
diff --git a/src/java.xml.bind/share/classes/com/sun/xml/internal/bind/v2/runtime/output/FastInfosetStreamWriterOutput.java b/src/java.xml.bind/share/classes/com/sun/xml/internal/bind/v2/runtime/output/FastInfosetStreamWriterOutput.java
index 2e1ca69..4a1de63 100644
--- a/src/java.xml.bind/share/classes/com/sun/xml/internal/bind/v2/runtime/output/FastInfosetStreamWriterOutput.java
+++ b/src/java.xml.bind/share/classes/com/sun/xml/internal/bind/v2/runtime/output/FastInfosetStreamWriterOutput.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,21 +25,22 @@
 
 package com.sun.xml.internal.bind.v2.runtime.output;
 
+import com.sun.xml.internal.bind.marshaller.NoEscapeHandler;
 import com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl;
 import com.sun.xml.internal.bind.v2.runtime.Name;
 import com.sun.xml.internal.bind.v2.runtime.XMLSerializer;
-import javax.xml.stream.XMLStreamException;
-
 import com.sun.xml.internal.bind.v2.runtime.unmarshaller.Base64Data;
 import com.sun.xml.internal.fastinfoset.EncodingConstants;
 import com.sun.xml.internal.fastinfoset.stax.StAXDocumentSerializer;
+import com.sun.xml.internal.org.jvnet.fastinfoset.VocabularyApplicationData;
+import org.xml.sax.SAXException;
+
+import javax.xml.bind.JAXBContext;
+import javax.xml.stream.XMLStreamException;
 import java.io.IOException;
 import java.util.Collection;
 import java.util.Map;
 import java.util.WeakHashMap;
-import javax.xml.bind.JAXBContext;
-import com.sun.xml.internal.org.jvnet.fastinfoset.VocabularyApplicationData;
-import org.xml.sax.SAXException;
 
 /**
  * {@link XmlOutput} for {@link StAXDocumentSerializer}.
@@ -220,7 +221,7 @@
 
     public FastInfosetStreamWriterOutput(StAXDocumentSerializer out,
             JAXBContextImpl context) {
-        super(out);
+        super(out, NoEscapeHandler.theInstance);
 
         this.fiout = out;
         this.localNames = context.getUTF8NameTable();
diff --git a/src/java.xml.bind/share/classes/com/sun/xml/internal/bind/v2/runtime/output/StAXExStreamWriterOutput.java b/src/java.xml.bind/share/classes/com/sun/xml/internal/bind/v2/runtime/output/StAXExStreamWriterOutput.java
index 67d7fb4..c39199f 100644
--- a/src/java.xml.bind/share/classes/com/sun/xml/internal/bind/v2/runtime/output/StAXExStreamWriterOutput.java
+++ b/src/java.xml.bind/share/classes/com/sun/xml/internal/bind/v2/runtime/output/StAXExStreamWriterOutput.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -27,6 +27,7 @@
 
 import javax.xml.stream.XMLStreamException;
 
+import com.sun.xml.internal.bind.marshaller.NoEscapeHandler;
 import com.sun.xml.internal.bind.v2.runtime.unmarshaller.Base64Data;
 
 import com.sun.xml.internal.org.jvnet.staxex.XMLStreamWriterEx;
@@ -40,7 +41,7 @@
     private final XMLStreamWriterEx out;
 
     public StAXExStreamWriterOutput(XMLStreamWriterEx out) {
-        super(out);
+        super(out, NoEscapeHandler.theInstance);
         this.out = out;
     }
 
diff --git a/src/java.xml.bind/share/classes/com/sun/xml/internal/bind/v2/runtime/output/XMLStreamWriterOutput.java b/src/java.xml.bind/share/classes/com/sun/xml/internal/bind/v2/runtime/output/XMLStreamWriterOutput.java
index c4721fd..892adcd 100644
--- a/src/java.xml.bind/share/classes/com/sun/xml/internal/bind/v2/runtime/output/XMLStreamWriterOutput.java
+++ b/src/java.xml.bind/share/classes/com/sun/xml/internal/bind/v2/runtime/output/XMLStreamWriterOutput.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -26,15 +26,16 @@
 package com.sun.xml.internal.bind.v2.runtime.output;
 
 import java.io.IOException;
+import java.io.Writer;
 import java.lang.reflect.Constructor;
 
 import javax.xml.stream.XMLStreamException;
 import javax.xml.stream.XMLStreamWriter;
 
+import com.sun.xml.internal.bind.marshaller.CharacterEscapeHandler;
 import com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl;
 import com.sun.xml.internal.bind.v2.runtime.XMLSerializer;
 
-import com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallerImpl;
 import org.xml.sax.SAXException;
 
 /**
@@ -53,7 +54,7 @@
      * Creates a new {@link XmlOutput} from a {@link XMLStreamWriter}.
      * This method recognizes an FI StAX writer.
      */
-    public static XmlOutput create(XMLStreamWriter out, JAXBContextImpl context) {
+    public static XmlOutput create(XMLStreamWriter out, JAXBContextImpl context, CharacterEscapeHandler escapeHandler) {
         // try optimized path
         final Class writerClass = out.getClass();
         if (writerClass==FI_STAX_WRITER_CLASS) {
@@ -69,17 +70,26 @@
             }
         }
 
+        CharacterEscapeHandler xmlStreamEscapeHandler = escapeHandler != null ?
+                escapeHandler : NewLineEscapeHandler.theInstance;
+
         // otherwise the normal writer.
-        return new XMLStreamWriterOutput(out);
+        return new XMLStreamWriterOutput(out, xmlStreamEscapeHandler);
     }
 
 
     private final XMLStreamWriter out;
 
+    private final CharacterEscapeHandler escapeHandler;
+
+    private final XmlStreamOutWriterAdapter writerWrapper;
+
     protected final char[] buf = new char[256];
 
-    protected XMLStreamWriterOutput(XMLStreamWriter out) {
+    protected XMLStreamWriterOutput(XMLStreamWriter out, CharacterEscapeHandler escapeHandler) {
         this.out = out;
+        this.escapeHandler = escapeHandler;
+        this.writerWrapper = new XmlStreamOutWriterAdapter(out);
     }
 
     // not called if we are generating fragments
@@ -137,7 +147,7 @@
     public void text(String value, boolean needsSeparatingWhitespace) throws IOException, SAXException, XMLStreamException {
         if(needsSeparatingWhitespace)
             out.writeCharacters(" ");
-        out.writeCharacters(value);
+        escapeHandler.escape(value.toCharArray(), 0, value.length(), false, writerWrapper);
     }
 
     public void text(Pcdata value, boolean needsSeparatingWhitespace) throws IOException, SAXException, XMLStreamException {
@@ -207,4 +217,81 @@
         }
     }
 
+    /**
+     * Performs character escaping only for new lines.
+     */
+    private static class NewLineEscapeHandler implements CharacterEscapeHandler {
+
+        public static final NewLineEscapeHandler theInstance = new NewLineEscapeHandler();
+
+        @Override
+        public void escape(char[] ch, int start, int length, boolean isAttVal, Writer out) throws IOException {
+            int limit = start+length;
+            int lastEscaped = start;
+            for (int i = start; i < limit; i++) {
+                char c = ch[i];
+                if (c == '\r' || c == '\n') {
+                    if (i != lastEscaped) {
+                        out.write(ch, lastEscaped, i - lastEscaped);
+                    }
+                    lastEscaped = i + 1;
+                    if (out instanceof XmlStreamOutWriterAdapter) {
+                        try {
+                            ((XmlStreamOutWriterAdapter)out).writeEntityRef("#x" + Integer.toHexString(c));
+                        } catch (XMLStreamException e) {
+                            throw new IOException("Error writing xml stream", e);
+                        }
+                    } else {
+                        out.write("&#x");
+                        out.write(Integer.toHexString(c));
+                        out.write(';');
+                    }
+                }
+            }
+
+            if (lastEscaped != limit) {
+                out.write(ch, lastEscaped, length - lastEscaped);
+            }
+        }
+    }
+
+    private static final class XmlStreamOutWriterAdapter extends Writer {
+
+        private final XMLStreamWriter writer;
+
+        private XmlStreamOutWriterAdapter(XMLStreamWriter writer) {
+            this.writer = writer;
+        }
+
+        @Override
+        public void write(char[] cbuf, int off, int len) throws IOException {
+            try {
+                writer.writeCharacters(cbuf, off, len);
+            } catch (XMLStreamException e) {
+                throw new IOException("Error writing XML stream", e);
+            }
+        }
+
+        public void writeEntityRef(String entityReference) throws XMLStreamException {
+            writer.writeEntityRef(entityReference);
+        }
+
+        @Override
+        public void flush() throws IOException {
+            try {
+                writer.flush();
+            } catch (XMLStreamException e) {
+                throw new IOException("Error flushing XML stream", e);
+            }
+        }
+
+        @Override
+        public void close() throws IOException {
+            try {
+                writer.close();
+            } catch (XMLStreamException e) {
+                throw new IOException("Error closing XML stream", e);
+            }
+        }
+    }
 }
diff --git a/src/java.xml.bind/share/classes/javax/xml/bind/ContextFinder.java b/src/java.xml.bind/share/classes/javax/xml/bind/ContextFinder.java
index d59b0e4..2787564 100644
--- a/src/java.xml.bind/share/classes/javax/xml/bind/ContextFinder.java
+++ b/src/java.xml.bind/share/classes/javax/xml/bind/ContextFinder.java
@@ -150,13 +150,14 @@
      * Create an instance of a class using the specified ClassLoader
      */
     static JAXBContext newInstance(String contextPath,
+                                   Class[] contextPathClasses,
                                    String className,
                                    ClassLoader classLoader,
                                    Map properties) throws JAXBException {
 
         try {
             Class spFactory = ServiceLoaderUtil.safeLoadClass(className, PLATFORM_DEFAULT_FACTORY_CLASS, classLoader);
-            return newInstance(contextPath, spFactory, classLoader, properties);
+            return newInstance(contextPath, contextPathClasses, spFactory, classLoader, properties);
         } catch (ClassNotFoundException x) {
             throw new JAXBException(Messages.format(Messages.DEFAULT_PROVIDER_NOT_FOUND), x);
 
@@ -175,6 +176,7 @@
     }
 
     static JAXBContext newInstance(String contextPath,
+                                   Class[] contextPathClasses,
                                    Class spFactory,
                                    ClassLoader classLoader,
                                    Map properties) throws JAXBException {
@@ -212,6 +214,9 @@
                 // the cast would fail, so generate an exception with a nice message
                 throw handleClassCastException(context.getClass(), JAXBContext.class);
             }
+
+            ModuleUtil.delegateAddOpensToImplModule(contextPathClasses, spFactory);
+
             return (JAXBContext) context;
         } catch (InvocationTargetException x) {
             // throw if it is exception not to be wrapped
@@ -277,6 +282,7 @@
                 // the cast would fail, so generate an exception with a nice message
                 throw handleClassCastException(context.getClass(), JAXBContext.class);
             }
+            ModuleUtil.delegateAddOpensToImplModule(classes,  spFactory);
             return (JAXBContext) context;
 
         } catch (NoSuchMethodException | IllegalAccessException e) {
@@ -295,50 +301,52 @@
                             ClassLoader classLoader,
                             Map properties) throws JAXBException {
 
-        StringTokenizer packages = new StringTokenizer(contextPath, ":");
-        if (!packages.hasMoreTokens()) {
+        if (contextPath == null || contextPath.isEmpty()) {
             // no context is specified
             throw new JAXBException(Messages.format(Messages.NO_PACKAGE_IN_CONTEXTPATH));
         }
 
-        // search for jaxb.properties in the class loader of each class first
-        logger.fine("Searching jaxb.properties");
-        while (packages.hasMoreTokens()) {
-            // com.acme.foo - > com/acme/foo/jaxb.properties
-            String factoryClassName =
-                    classNameFromPackageProperties(
-                        classLoader,
-                        packages.nextToken(":").replace('.', '/'),
-                        factoryId,
-                        JAXB_CONTEXT_FACTORY_DEPRECATED);
+        //ModuleUtil is mr-jar class, scans context path for jaxb classes on jdk9 and higher
+        Class[] contextPathClasses = ModuleUtil.getClassesFromContextPath(contextPath, classLoader);
 
-            if (factoryClassName != null) {
-                return newInstance(contextPath, factoryClassName, classLoader, properties);
-            }
+        //first try with classloader#getResource
+        String factoryClassName = jaxbProperties(contextPath, classLoader, factoryId);
+        if (factoryClassName == null && contextPathClasses != null) {
+            //try with class#getResource
+            factoryClassName = jaxbProperties(contextPathClasses, factoryId);
         }
 
+        if (factoryClassName != null) {
+            return newInstance(contextPath, contextPathClasses, factoryClassName, classLoader, properties);
+        }
+
+
         String factoryName = classNameFromSystemProperties();
-        if (factoryName != null) return newInstance(contextPath, factoryName, classLoader, properties);
+        if (factoryName != null) return newInstance(contextPath, contextPathClasses, factoryName, classLoader, properties);
 
         JAXBContextFactory obj = ServiceLoaderUtil.firstByServiceLoader(
                 JAXBContextFactory.class, logger, EXCEPTION_HANDLER);
 
-        if (obj != null) return obj.createContext(contextPath, classLoader, properties);
+        if (obj != null) {
+            JAXBContext context = obj.createContext(contextPath, classLoader, properties);
+            ModuleUtil.delegateAddOpensToImplModule(contextPathClasses, obj.getClass());
+            return context;
+        }
 
         // to ensure backwards compatibility
         factoryName = firstByServiceLoaderDeprecated(JAXBContext.class, classLoader);
-        if (factoryName != null) return newInstance(contextPath, factoryName, classLoader, properties);
+        if (factoryName != null) return newInstance(contextPath, contextPathClasses, factoryName, classLoader, properties);
 
         Class ctxFactory = (Class) ServiceLoaderUtil.lookupUsingOSGiServiceLoader(
                 "javax.xml.bind.JAXBContext", logger);
 
         if (ctxFactory != null) {
-            return newInstance(contextPath, ctxFactory, classLoader, properties);
+            return newInstance(contextPath, contextPathClasses, ctxFactory, classLoader, properties);
         }
 
         // else no provider found
         logger.fine("Trying to create the platform default provider");
-        return newInstance(contextPath, PLATFORM_DEFAULT_FACTORY_CLASS, classLoader, properties);
+        return newInstance(contextPath, contextPathClasses, PLATFORM_DEFAULT_FACTORY_CLASS, classLoader, properties);
     }
 
     static JAXBContext find(Class<?>[] classes, Map<String, ?> properties) throws JAXBException {
@@ -356,13 +364,18 @@
             // TODO: it's easier to look things up from the class
             // c.getResourceAsStream("jaxb.properties");
 
-            String factoryClassName =
-                    classNameFromPackageProperties(
-                            getClassClassLoader(c),
-                            c.getPackage().getName().replace('.', '/'),
-                            JAXBContext.JAXB_CONTEXT_FACTORY, JAXB_CONTEXT_FACTORY_DEPRECATED);
+            URL jaxbPropertiesUrl = getResourceUrl(c, "jaxb.properties");
 
-            if (factoryClassName != null) return newInstance(classes, properties, factoryClassName);
+            if (jaxbPropertiesUrl != null) {
+
+                String factoryClassName =
+                        classNameFromPackageProperties(
+                                jaxbPropertiesUrl,
+                                JAXBContext.JAXB_CONTEXT_FACTORY, JAXB_CONTEXT_FACTORY_DEPRECATED);
+
+                return newInstance(classes, properties, factoryClassName);
+            }
+
         }
 
         String factoryClassName = classNameFromSystemProperties();
@@ -371,7 +384,11 @@
         JAXBContextFactory factory =
                 ServiceLoaderUtil.firstByServiceLoader(JAXBContextFactory.class, logger, EXCEPTION_HANDLER);
 
-        if (factory != null) return factory.createContext(classes, properties);
+        if (factory != null) {
+            JAXBContext context = factory.createContext(classes, properties);
+            ModuleUtil.delegateAddOpensToImplModule(classes, factory.getClass());
+            return context;
+        }
 
         // to ensure backwards compatibility
         String className = firstByServiceLoaderDeprecated(JAXBContext.class, getContextClassLoader());
@@ -395,22 +412,20 @@
      * first factoryId should be the preferred one,
      * more of those can be provided to support backwards compatibility
      */
-    private static String classNameFromPackageProperties(ClassLoader classLoader,
-                                                         String packageName,
+    private static String classNameFromPackageProperties(URL packagePropertiesUrl,
                                                          String ... factoryIds) throws JAXBException {
 
-        String resourceName = packageName + "/jaxb.properties";
-        logger.log(Level.FINE, "Trying to locate {0}", resourceName);
-        Properties props = loadJAXBProperties(classLoader, resourceName);
-        if (props != null) {
-            for(String factoryId : factoryIds) {
-                if (props.containsKey(factoryId)) {
-                    return props.getProperty(factoryId);
-                }
+        logger.log(Level.FINE, "Trying to locate {0}", packagePropertiesUrl.toString());
+        Properties props = loadJAXBProperties(packagePropertiesUrl);
+        for(String factoryId : factoryIds) {
+            if (props.containsKey(factoryId)) {
+                return props.getProperty(factoryId);
             }
-            throw new JAXBException(Messages.format(Messages.MISSING_PROPERTY, packageName, factoryIds[0]));
         }
-        return null;
+        //Factory key not found
+        String propertiesUrl = packagePropertiesUrl.toExternalForm();
+        String packageName = propertiesUrl.substring(0, propertiesUrl.indexOf("/jaxb.properties"));
+        throw new JAXBException(Messages.format(Messages.MISSING_PROPERTY, packageName, factoryIds[0]));
     }
 
     private static String classNameFromSystemProperties() throws JAXBException {
@@ -452,30 +467,40 @@
         return value;
     }
 
-    private static Properties loadJAXBProperties(ClassLoader classLoader,
-                                                 String propFileName) throws JAXBException {
+    private static Properties loadJAXBProperties(URL url) throws JAXBException {
 
-        Properties props = null;
         try {
-            URL url;
-            if (classLoader == null)
-                url = ClassLoader.getSystemResource(propFileName);
-            else
-                url = classLoader.getResource(propFileName);
-
-            if (url != null) {
-                logger.log(Level.FINE, "loading props from {0}", url);
-                props = new Properties();
-                InputStream is = url.openStream();
-                props.load(is);
-                is.close();
-            }
+            Properties props;
+            logger.log(Level.FINE, "loading props from {0}", url);
+            props = new Properties();
+            InputStream is = url.openStream();
+            props.load(is);
+            is.close();
+            return props;
         } catch (IOException ioe) {
-            logger.log(Level.FINE, "Unable to load " + propFileName, ioe);
+            logger.log(Level.FINE, "Unable to load " + url.toString(), ioe);
             throw new JAXBException(ioe.toString(), ioe);
         }
+    }
 
-        return props;
+    /**
+     * If run on JPMS package containing resource must be open unconditionally.
+     *
+     * @param classLoader classloader to load resource with
+     * @param resourceName qualified name of the resource
+     * @return resource url if found
+     */
+    private static URL getResourceUrl(ClassLoader classLoader, String resourceName) {
+        URL url;
+        if (classLoader == null)
+            url = ClassLoader.getSystemResource(resourceName);
+        else
+            url = classLoader.getResource(resourceName);
+        return url;
+    }
+
+    private static URL getResourceUrl(Class<?> clazz, String resourceName) {
+        return clazz.getResource(resourceName);
     }
 
 
@@ -606,4 +631,28 @@
         }
     }
 
+    private static String jaxbProperties(String contextPath, ClassLoader classLoader, String factoryId) throws JAXBException {
+        String[] packages = contextPath.split(":");
+
+        for (String pkg : packages) {
+            String pkgUrl = pkg.replace('.', '/');
+            URL jaxbPropertiesUrl = getResourceUrl(classLoader, pkgUrl + "/jaxb.properties");
+            if (jaxbPropertiesUrl != null) {
+                return classNameFromPackageProperties(jaxbPropertiesUrl,
+                                                      factoryId, JAXB_CONTEXT_FACTORY_DEPRECATED);
+            }
+        }
+        return null;
+    }
+
+    private static String jaxbProperties(Class[] classesFromContextPath, String factoryId) throws JAXBException {
+        for (Class c : classesFromContextPath) {
+            URL jaxbPropertiesUrl = getResourceUrl(c, "jaxb.properties");
+            if (jaxbPropertiesUrl != null) {
+                return classNameFromPackageProperties(jaxbPropertiesUrl, factoryId, JAXB_CONTEXT_FACTORY_DEPRECATED);
+            }
+        }
+        return null;
+    }
+
 }
diff --git a/src/java.xml.bind/share/classes/javax/xml/bind/JAXBContext.java b/src/java.xml.bind/share/classes/javax/xml/bind/JAXBContext.java
index 4b4f6e5..9bb4cea 100644
--- a/src/java.xml.bind/share/classes/javax/xml/bind/JAXBContext.java
+++ b/src/java.xml.bind/share/classes/javax/xml/bind/JAXBContext.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -27,11 +27,11 @@
 
 import org.w3c.dom.Node;
 
+import java.io.IOException;
+import java.io.InputStream;
 import java.util.Collections;
 import java.util.Map;
 import java.util.Properties;
-import java.io.IOException;
-import java.io.InputStream;
 
 /**
  * The {@code JAXBContext} class provides the client's entry point to the
@@ -227,6 +227,9 @@
  * This phase of the look up allows some packages to force the use of a certain JAXB implementation.
  * (For example, perhaps the schema compiler has generated some vendor extension in the code.)
  *
+ * <p>
+ * This configuration method is deprecated.
+ *
  * <li>
  * If the system property {@link #JAXB_CONTEXT_FACTORY} exists, then its value is assumed to be the provider
  * factory class. If no such property exists, properties {@code "javax.xml.bind.context.factory"} and
@@ -332,7 +335,14 @@
      * the context class loader of the current thread.
      *
      * @throws JAXBException if an error was encountered while creating the
-     *               {@code JAXBContext}. See {@link JAXBContext#newInstance(String, ClassLoader, Map)} for details.
+     *                       {@code JAXBContext} such as
+     * <ol>
+     *   <li>failure to locate either ObjectFactory.class or jaxb.index in the packages</li>
+     *   <li>an ambiguity among global elements contained in the contextPath</li>
+     *   <li>failure to locate a value for the context factory provider property</li>
+     *   <li>mixing schema derived packages from different providers on the same contextPath</li>
+     *   <li>packages are not open to {@code java.xml.bind} module</li>
+     * </ol>
      */
     public static JAXBContext newInstance( String contextPath )
             throws JAXBException {
@@ -414,16 +424,26 @@
      * <p>
      * The steps involved in discovering the JAXB implementation is discussed in the class javadoc.
      *
-     * @param contextPath list of java package names that contain schema
-     *                    derived class and/or java to schema (JAXB-annotated)
-     *                    mapped classes
+     * @param contextPath
+     *      List of java package names that contain schema
+     *      derived class and/or java to schema (JAXB-annotated)
+     *      mapped classes.
+     *      Packages in {@code contextPath} that are in named modules must be
+     *      {@linkplain java.lang.Module#isOpen open} to at least the {@code java.xml.bind} module.
      * @param classLoader
      *      This class loader will be used to locate the implementation
      *      classes.
      *
      * @return a new instance of a {@code JAXBContext}
      * @throws JAXBException if an error was encountered while creating the
-     *               {@code JAXBContext}. See {@link JAXBContext#newInstance(String, ClassLoader, Map)} for details.
+     *                       {@code JAXBContext} such as
+     * <ol>
+     *   <li>failure to locate either ObjectFactory.class or jaxb.index in the packages</li>
+     *   <li>an ambiguity among global elements contained in the contextPath</li>
+     *   <li>failure to locate a value for the context factory provider property</li>
+     *   <li>mixing schema derived packages from different providers on the same contextPath</li>
+     *   <li>packages are not open to {@code java.xml.bind} module</li>
+     * </ol>
      */
     public static JAXBContext newInstance( String contextPath, ClassLoader classLoader ) throws JAXBException {
 
@@ -442,7 +462,12 @@
      * The interpretation of properties is up to implementations. Implementations must
      * throw {@code JAXBException} if it finds properties that it doesn't understand.
      *
-     * @param contextPath list of java package names that contain schema derived classes
+     * @param contextPath
+     *      List of java package names that contain schema
+     *      derived class and/or java to schema (JAXB-annotated)
+     *      mapped classes.
+     *      Packages in {@code contextPath} that are in named modules must be
+     *      {@linkplain java.lang.Module#isOpen open} to at least the {@code java.xml.bind} module.
      * @param classLoader
      *      This class loader will be used to locate the implementation classes.
      * @param properties
@@ -457,6 +482,7 @@
      *   <li>an ambiguity among global elements contained in the contextPath</li>
      *   <li>failure to locate a value for the context factory provider property</li>
      *   <li>mixing schema derived packages from different providers on the same contextPath</li>
+     *   <li>packages are not open to {@code java.xml.bind} module</li>
      * </ol>
      * @since 1.6, JAXB 2.0
      */
@@ -588,15 +614,27 @@
      * The steps involved in discovering the JAXB implementation is discussed in the class javadoc.
      *
      * @param classesToBeBound
-     *      list of java classes to be recognized by the new {@link JAXBContext}.
+     *      List of java classes to be recognized by the new {@link JAXBContext}.
+     *      Classes in {@code classesToBeBound} that are in named modules must be in a package
+     *      that is {@linkplain java.lang.Module#isOpen open} to at least the {@code java.xml.bind} module.
      *      Can be empty, in which case a {@link JAXBContext} that only knows about
      *      spec-defined classes will be returned.
      *
      * @return
      *      A new instance of a {@code JAXBContext}.
      *
-     * @throws JAXBException if an error was encountered while creating the
-     *               {@code JAXBContext}. See {@link JAXBContext#newInstance(Class[], Map)} for details.
+     * @throws JAXBException
+     *      if an error was encountered while creating the
+     *      {@code JAXBContext}, such as (but not limited to):
+     * <ol>
+     *  <li>No JAXB implementation was discovered
+     *  <li>Classes use JAXB annotations incorrectly
+     *  <li>Classes have colliding annotations (i.e., two classes with the same type name)
+     *  <li>The JAXB implementation was unable to locate
+     *      provider-specific out-of-band information (such as additional
+     *      files generated at the development time.)
+     *  <li>{@code classesToBeBound} are not open to {@code java.xml.bind} module
+     * </ol>
      *
      * @throws IllegalArgumentException
      *      if the parameter contains {@code null} (i.e., {@code newInstance(null);})
@@ -621,7 +659,9 @@
      * throw {@code JAXBException} if it finds properties that it doesn't understand.
      *
      * @param classesToBeBound
-     *      list of java classes to be recognized by the new {@link JAXBContext}.
+     *      List of java classes to be recognized by the new {@link JAXBContext}.
+     *      Classes in {@code classesToBeBound} that are in named modules must be in a package
+     *      that is {@linkplain java.lang.Module#isOpen open} to at least the {@code java.xml.bind} module.
      *      Can be empty, in which case a {@link JAXBContext} that only knows about
      *      spec-defined classes will be returned.
      * @param properties
@@ -641,6 +681,7 @@
      *  <li>The JAXB implementation was unable to locate
      *      provider-specific out-of-band information (such as additional
      *      files generated at the development time.)
+     *  <li>{@code classesToBeBound} are not open to {@code java.xml.bind} module
      * </ol>
      *
      * @throws IllegalArgumentException
@@ -702,6 +743,7 @@
      *                       {@code Validator} object
      * @deprecated since JAXB2.0
      */
+    @Deprecated
     public abstract Validator createValidator() throws JAXBException;
 
     /**
diff --git a/src/java.xml.bind/share/classes/javax/xml/bind/JAXBContextFactory.java b/src/java.xml.bind/share/classes/javax/xml/bind/JAXBContextFactory.java
index ef98dc6..90fad73 100644
--- a/src/java.xml.bind/share/classes/javax/xml/bind/JAXBContextFactory.java
+++ b/src/java.xml.bind/share/classes/javax/xml/bind/JAXBContextFactory.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -44,7 +44,9 @@
      * For semantics see {@link javax.xml.bind.JAXBContext#newInstance(Class[], java.util.Map)}
      *
      * @param classesToBeBound
-     *      list of java classes to be recognized by the new {@link JAXBContext}.
+     *      List of java classes to be recognized by the new {@link JAXBContext}.
+     *      Classes in {@code classesToBeBound} that are in named modules must be in a package
+     *      that is {@linkplain java.lang.Module#isOpen open} to at least the {@code java.xml.bind} module.
      *      Can be empty, in which case a {@link JAXBContext} that only knows about
      *      spec-defined classes will be returned.
      * @param properties
@@ -56,7 +58,16 @@
      *
      * @throws JAXBException
      *      if an error was encountered while creating the
-     *      {@code JAXBContext}. See {@link JAXBContext#newInstance(Class[], Map)} for details.
+     *      {@code JAXBContext}, such as (but not limited to):
+     * <ol>
+     *  <li>No JAXB implementation was discovered
+     *  <li>Classes use JAXB annotations incorrectly
+     *  <li>Classes have colliding annotations (i.e., two classes with the same type name)
+     *  <li>The JAXB implementation was unable to locate
+     *      provider-specific out-of-band information (such as additional
+     *      files generated at the development time.)
+     *  <li>{@code classesToBeBound} are not open to {@code java.xml.bind} module
+     * </ol>
      *
      * @throws IllegalArgumentException
      *      if the parameter contains {@code null} (i.e., {@code newInstance(null,someMap);})
@@ -77,7 +88,10 @@
      * The interpretation of properties is up to implementations. Implementations must
      * throw {@code JAXBException} if it finds properties that it doesn't understand.
      *
-     * @param contextPath list of java package names that contain schema derived classes
+     * @param contextPath
+     *      List of java package names that contain schema derived classes.
+     *      Classes in {@code classesToBeBound} that are in named modules must be in a package
+     *      that is {@linkplain java.lang.Module#isOpen open} to at least the {@code java.xml.bind} module.
      * @param classLoader
      *      This class loader will be used to locate the implementation classes.
      * @param properties
@@ -86,7 +100,14 @@
      *
      * @return a new instance of a {@code JAXBContext}
      * @throws JAXBException if an error was encountered while creating the
-     *      {@code JAXBContext}. See {@link JAXBContext#newInstance(String, ClassLoader, Map)} for details.
+     *                       {@code JAXBContext} such as
+     * <ol>
+     *   <li>failure to locate either ObjectFactory.class or jaxb.index in the packages</li>
+     *   <li>an ambiguity among global elements contained in the contextPath</li>
+     *   <li>failure to locate a value for the context factory provider property</li>
+     *   <li>mixing schema derived packages from different providers on the same contextPath</li>
+     *   <li>packages are not open to {@code java.xml.bind} module</li>
+     * </ol>
      *
      * @since 9, JAXB 2.3
      */
diff --git a/src/java.xml.bind/share/classes/javax/xml/bind/Messages.java b/src/java.xml.bind/share/classes/javax/xml/bind/Messages.java
index 79ede4f..cbde96f 100644
--- a/src/java.xml.bind/share/classes/javax/xml/bind/Messages.java
+++ b/src/java.xml.bind/share/classes/javax/xml/bind/Messages.java
@@ -91,4 +91,10 @@
 
     static final String ILLEGAL_CAST = // 2 args
         "JAXBContext.IllegalCast";
+
+    static final String ERROR_LOAD_CLASS = // 2 args
+            "ContextFinder.ErrorLoadClass";
+
+    static final String JAXB_CLASSES_NOT_OPEN = // 1 arg
+            "JAXBClasses.notOpen";
 }
diff --git a/src/java.xml.bind/share/classes/javax/xml/bind/Messages.properties b/src/java.xml.bind/share/classes/javax/xml/bind/Messages.properties
index 548001a..8ea89d3 100644
--- a/src/java.xml.bind/share/classes/javax/xml/bind/Messages.properties
+++ b/src/java.xml.bind/share/classes/javax/xml/bind/Messages.properties
@@ -44,6 +44,11 @@
 ContextFinder.NoPackageInContextPath = \
     No package name is given
 
+ContextFinder.ErrorLoadClass = \
+    Error loading class {0} listed in {1}, make sure that entries are accessable \
+    on CLASSPATH and of the form ClassName or OuterClass.InnerClass \
+    not ClassName.class or fully.qualified.ClassName
+
 PropertyException.NameValue = \
         name: {0} value: {1}
 
@@ -52,3 +57,6 @@
 
 JAXBContext.IllegalCast = \
     ClassCastException: attempting to cast {0} to {1}.  Please make sure that you are specifying the proper ClassLoader.
+
+JAXBClasses.notOpen = \
+    Package {0} with JAXB class {1} defined in a module {2} must be open to at least java.xml.bind module.
diff --git a/src/java.xml.bind/share/classes/javax/xml/bind/ModuleUtil.java b/src/java.xml.bind/share/classes/javax/xml/bind/ModuleUtil.java
new file mode 100644
index 0000000..d78441c
--- /dev/null
+++ b/src/java.xml.bind/share/classes/javax/xml/bind/ModuleUtil.java
@@ -0,0 +1,160 @@
+/*
+ * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package javax.xml.bind;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.lang.Module;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+/**
+ * Propagates openness of JAXB annottated classess packages to JAXB impl module.
+ *
+ * @author Roman Grigoriadi
+ */
+class ModuleUtil {
+
+    private static Logger logger = Logger.getLogger("javax.xml.bind");
+
+    /**
+     * Resolves classes from context path.
+     * Only one class per package is needed to access its {@link java.lang.Module}
+     */
+    static Class[] getClassesFromContextPath(String contextPath, ClassLoader classLoader) throws JAXBException {
+        List<Class> classes = new ArrayList<>();
+        if (contextPath == null || contextPath.isEmpty()){
+          return classes.toArray(new Class[]{});
+        }
+
+        String [] tokens = contextPath.split(":");
+        for (String pkg : tokens){
+
+           // look for ObjectFactory and load it
+           final Class<?> o;
+           try {
+               o = classLoader.loadClass(pkg+".ObjectFactory");
+               classes.add(o);
+               continue;
+           } catch (ClassNotFoundException e) {
+               // not necessarily an error
+           }
+
+           // look for jaxb.index and load the list of classes
+           try {
+               final Class firstByJaxbIndex = findFirstByJaxbIndex(pkg, classLoader);
+               if (firstByJaxbIndex != null) {
+                   classes.add(firstByJaxbIndex);
+               }
+           } catch (IOException e) {
+               throw new JAXBException(e);
+           }
+        }
+
+        if (logger.isLoggable(Level.FINE)) {
+            logger.log(Level.FINE, "Resolved classes from context path: {0}", classes);
+        }
+        return classes.toArray(new Class[]{});
+    }
+
+    /**
+     * Find first class in package by {@code jaxb.index} file.
+     */
+    static Class findFirstByJaxbIndex(String pkg, ClassLoader classLoader) throws IOException, JAXBException {
+        final String resource = pkg.replace('.', '/') + "/jaxb.index";
+        final InputStream resourceAsStream = classLoader.getResourceAsStream(resource);
+
+        if (resourceAsStream == null) {
+            return null;
+        }
+
+        BufferedReader in =
+                new BufferedReader(new InputStreamReader(resourceAsStream, "UTF-8"));
+        try {
+            String className = in.readLine();
+            while (className != null) {
+                className = className.trim();
+                if (className.startsWith("#") || (className.length() == 0)) {
+                    className = in.readLine();
+                    continue;
+                }
+
+                try {
+                    return classLoader.loadClass(pkg + '.' + className);
+                } catch (ClassNotFoundException e) {
+                    throw new JAXBException(Messages.format(Messages.ERROR_LOAD_CLASS, className, pkg), e);
+                }
+
+            }
+        } finally {
+            in.close();
+        }
+        return null;
+    }
+
+    /**
+     * Implementation may be defined in other module than {@code java.xml.bind}. In that case openness
+     * {@linkplain Module#isOpen open} of classes should be delegated to implementation module.
+     *
+     * @param classes used to resolve module for {@linkplain Module#addOpens(String, Module)}
+     * @param factorySPI used to resolve {@link Module} of the implementation.
+     *
+     * @throws JAXBException if ony of a classes package is not open to {@code java.xml.bind} module.
+     */
+    static void delegateAddOpensToImplModule(Class[] classes, Class<?> factorySPI) throws JAXBException {
+        final Module implModule = factorySPI.getModule();
+        if (!implModule.isNamed()) {
+            return;
+        }
+
+        Module jaxbModule = JAXBContext.class.getModule();
+
+        for (Class cls : classes) {
+            final Module classModule = cls.getModule();
+            final String packageName = cls.getPackageName();
+            //no need for unnamed
+            if (!classModule.isNamed()) {
+                continue;
+            }
+            //report error if they are not open to java.xml.bind
+            if (!classModule.isOpen(packageName, jaxbModule)) {
+                throw new JAXBException(Messages.format(Messages.JAXB_CLASSES_NOT_OPEN,
+                                                        packageName, cls.getName(), classModule.getName()));
+            }
+            //propagate openness to impl module
+            classModule.addOpens(packageName, implModule);
+            if (logger.isLoggable(Level.FINE)) {
+                logger.log(Level.FINE, "Propagating openness of package {0} in {1} to {2}.",
+                           new String[]{ packageName, classModule.getName(), implModule.getName() });
+            }
+        }
+    }
+
+}
diff --git a/src/java.xml.bind/share/classes/javax/xml/bind/Unmarshaller.java b/src/java.xml.bind/share/classes/javax/xml/bind/Unmarshaller.java
index f075443..f8424dd 100644
--- a/src/java.xml.bind/share/classes/javax/xml/bind/Unmarshaller.java
+++ b/src/java.xml.bind/share/classes/javax/xml/bind/Unmarshaller.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -23,6 +23,8 @@
  * questions.
  */
 
+
+
 package javax.xml.bind;
 
 import javax.xml.bind.annotation.adapters.XmlAdapter;
@@ -975,7 +977,6 @@
      * {@link #isValidating()} API as well as access to the Schema object.
      * To determine if the Unmarshaller has validation enabled, simply
      * test the return type for null:
-     * <p>
      * <pre>{@code
      *   boolean isValidating = u.getSchema()!=null;
      * }</pre>
diff --git a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/client/p2p/HttpSOAPConnection.java b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/client/p2p/HttpSOAPConnection.java
index a032c58..aadf04a 100644
--- a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/client/p2p/HttpSOAPConnection.java
+++ b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/client/p2p/HttpSOAPConnection.java
@@ -76,6 +76,7 @@
         }
     }
 
+    @Override
     public void close() throws SOAPException {
         if (closed) {
             log.severe("SAAJ0002.p2p.close.already.closed.conn");
@@ -86,6 +87,7 @@
         closed = true;
     }
 
+    @Override
    public SOAPMessage call(SOAPMessage message, Object endPoint)
         throws SOAPException {
         if (closed) {
@@ -348,6 +350,7 @@
     // Object identifies where the request should be sent.
     // It is required to support objects of type String and java.net.URL.
 
+    @Override
     public SOAPMessage get(Object endPoint) throws SOAPException {
         if (closed) {
             log.severe("SAAJ0011.p2p.get.already.closed.conn");
diff --git a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/client/p2p/HttpSOAPConnectionFactory.java b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/client/p2p/HttpSOAPConnectionFactory.java
index d2e626a..c22b8e4 100644
--- a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/client/p2p/HttpSOAPConnectionFactory.java
+++ b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/client/p2p/HttpSOAPConnectionFactory.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -34,6 +34,7 @@
  */
 public class HttpSOAPConnectionFactory extends SOAPConnectionFactory {
 
+    @Override
     public SOAPConnection createConnection()
         throws SOAPException
     {
diff --git a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/packaging/mime/MessagingException.java b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/packaging/mime/MessagingException.java
index df55da3..eab9cc3 100644
--- a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/packaging/mime/MessagingException.java
+++ b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/packaging/mime/MessagingException.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -116,6 +116,7 @@
      * Produce the message, include the message from the nested
      * exception if there is one.
      */
+    @Override
     public String getMessage() {
         if (next == null)
             return super.getMessage();
diff --git a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/packaging/mime/internet/BMMimeMultipart.java b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/packaging/mime/internet/BMMimeMultipart.java
index 96a7702..d6bd513 100644
--- a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/packaging/mime/internet/BMMimeMultipart.java
+++ b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/packaging/mime/internet/BMMimeMultipart.java
@@ -28,18 +28,20 @@
  */
 
 
-
 package com.sun.xml.internal.messaging.saaj.packaging.mime.internet;
 
-import java.io.*;
-import java.util.BitSet;
+import com.sun.xml.internal.messaging.saaj.packaging.mime.MessagingException;
+import com.sun.xml.internal.messaging.saaj.packaging.mime.util.ASCIIUtility;
+import com.sun.xml.internal.messaging.saaj.packaging.mime.util.OutputUtil;
+import com.sun.xml.internal.messaging.saaj.util.ByteOutputStream;
 
 import javax.activation.DataSource;
-
-import com.sun.xml.internal.messaging.saaj.packaging.mime.*;
-import com.sun.xml.internal.messaging.saaj.packaging.mime.util.*;
-
-import com.sun.xml.internal.messaging.saaj.util.ByteOutputStream;
+import java.io.BufferedInputStream;
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.util.BitSet;
 
 /**
  * The MimeMultipart class is an implementation of the abstract Multipart
@@ -67,11 +69,10 @@
  * subtype by using the <code>MimeMultipart(String subtype)</code>
  * constructor.  For example, to create a "multipart/alternative" object,
  * use <code>new MimeMultipart("alternative")</code>.
- *
  */
 
 //TODO: cleanup the SharedInputStream handling
-public  class BMMimeMultipart extends MimeMultipart {
+public class BMMimeMultipart extends MimeMultipart {
 
     /*
      * When true it indicates parsing hasnt been done at all
@@ -120,12 +121,12 @@
      */
     public BMMimeMultipart(String subtype) {
         super(subtype);
-        /*
-         * Compute a boundary string.
-        String boundary = UniqueValue.getUniqueBoundaryValue();
-        ContentType cType = new ContentType("multipart", subtype, null);
+    /*
+     * Compute a boundary string.
+    String boundary = UniqueValue.getUniqueBoundaryValue();
+    ContentType cType = new ContentType("multipart", subtype, null);
         contentType.setParameter("boundary", boundary);
-         */
+     */
     }
 
     /**
@@ -144,25 +145,25 @@
      * skips the 'preamble' and reads bytes till the terminating
      * boundary and creates MimeBodyParts for each part of the stream.
      *
-     * @param   ds      DataSource, can be a MultipartDataSource.
-     * @param   ct      content type.
-     * @exception MessagingException in case of error.
+     * @param   ct  content type.
+     * @param   ds  DataSource, can be a MultipartDataSource.
+     * @throws  MessagingException in case of error.
      */
     public BMMimeMultipart(DataSource ds, ContentType ct)
-        throws MessagingException {
-        super(ds,ct);
+            throws MessagingException {
+        super(ds, ct);
         boundary = ct.getParameter("boundary");
         /*
-        if (ds instanceof MultipartDataSource) {
-            // ask super to do this for us.
-            setMultipartDataSource((MultipartDataSource)ds);
-            return;
-        }
+    if (ds instanceof MultipartDataSource) {
+        // ask super to do this for us.
+        setMultipartDataSource((MultipartDataSource)ds);
+        return;
+    }
 
-        // 'ds' was not a MultipartDataSource, we have
-        // to parse this ourself.
-        parsed = false;
-        this.ds = ds;
+    // 'ds' was not a MultipartDataSource, we have
+    // to parse this ourself.
+    parsed = false;
+    this.ds = ds;
         if (ct==null)
             contentType = new ContentType(ds.getContentType());
         else
@@ -177,8 +178,8 @@
             try {
                 in = ds.getInputStream();
                 if (!(in instanceof ByteArrayInputStream) &&
-                    !(in instanceof BufferedInputStream) &&
-                    !(in instanceof SharedInputStream))
+                        !(in instanceof BufferedInputStream) &&
+                        !(in instanceof SharedInputStream))
                     in = new BufferedInputStream(in);
             } catch (Exception ex) {
                 throw new MessagingException("No inputstream from datasource");
@@ -186,7 +187,7 @@
 
             if (!in.markSupported()) {
                 throw new MessagingException(
-                    "InputStream does not support Marking");
+                        "InputStream does not support Marking");
             }
         }
         return in;
@@ -199,10 +200,10 @@
      * method is called by all other methods that need data for
      * the body parts, to make sure the data has been parsed.
      *
-     * @since   JavaMail 1.2
+     * @since JavaMail 1.2
      */
     @Override
-    protected  void parse() throws  MessagingException {
+    protected void parse() throws MessagingException {
         if (parsed)
             return;
 
@@ -210,7 +211,7 @@
 
         SharedInputStream sin = null;
         if (in instanceof SharedInputStream) {
-            sin = (SharedInputStream)in;
+            sin = (SharedInputStream) in;
         }
 
         String bnd = "--" + boundary;
@@ -231,8 +232,8 @@
     }
 
     public MimeBodyPart getNextPart(
-        InputStream stream, byte[] pattern, SharedInputStream sin)
-        throws Exception {
+            InputStream stream, byte[] pattern, SharedInputStream sin)
+            throws Exception {
 
         if (!stream.markSupported()) {
             throw new Exception("InputStream does not support Marking");
@@ -242,7 +243,7 @@
             compile(pattern);
             if (!skipPreamble(stream, pattern, sin)) {
                 throw new Exception(
-                    "Missing Start Boundary, or boundary does not start on a new line");
+                        "Missing Start Boundary, or boundary does not start on a new line");
             }
             begining = false;
         }
@@ -256,7 +257,7 @@
             b = readHeaders(stream);
             if (b == -1) {
                 throw new Exception(
-                    "End of Stream encountered while reading part headers");
+                        "End of Stream encountered while reading part headers");
             }
             long[] v = new long[1];
             v[0] = -1; // just to ensure the code later sets it correctly
@@ -276,7 +277,7 @@
         } else {
             InternetHeaders headers = createInternetHeaders(stream);
             ByteOutputStream baos = new ByteOutputStream();
-            b = readBody(stream, pattern, null,baos, null);
+            b = readBody(stream, pattern, null, baos, null);
             // looks like this check has to be disabled
             // in the old impl it is allowed to have Mime Package
             // without closing boundary
@@ -286,7 +287,7 @@
                 }
             }
             MimeBodyPart mbp = createMimeBodyPart(
-                headers, baos.getBytes(), baos.getCount());
+                    headers, baos.getBytes(), baos.getCount());
             addBodyPart(mbp);
             return mbp;
         }
@@ -294,11 +295,11 @@
     }
 
     public boolean parse(
-        InputStream stream, byte[] pattern, SharedInputStream sin)
-        throws Exception {
+            InputStream stream, byte[] pattern, SharedInputStream sin)
+            throws Exception {
 
         while (!lastPartFound.get(0) && (b != -1)) {
-           getNextPart(stream, pattern, sin);
+            getNextPart(stream, pattern, sin);
         }
         return true;
     }
@@ -307,7 +308,7 @@
         // if the headers are to end properly then there has to be CRLF
         // actually we just need to mark the start and end positions
         int b = is.read();
-        while(b != -1) {
+        while (b != -1) {
             // when it is a shared input stream no need to copy
             if (b == '\r') {
                 b = is.read();
@@ -316,7 +317,7 @@
                     if (b == '\r') {
                         b = is.read();
                         if (b == '\n') {
-                           return b;
+                            return b;
                         } else {
                             continue;
                         }
@@ -331,43 +332,43 @@
         }
         if (b == -1) {
             throw new Exception(
-            "End of inputstream while reading Mime-Part Headers");
+                    "End of inputstream while reading Mime-Part Headers");
         }
         return b;
     }
 
     private int readBody(
-        InputStream is, byte[] pattern, long[] posVector,
-        ByteOutputStream baos, SharedInputStream sin)
-        throws Exception {
+            InputStream is, byte[] pattern, long[] posVector,
+            ByteOutputStream baos, SharedInputStream sin)
+            throws Exception {
         if (!find(is, pattern, posVector, baos, sin)) {
             throw new Exception(
-            "Missing boundary delimitier while reading Body Part");
+                    "Missing boundary delimitier while reading Body Part");
         }
         return b;
     }
 
     private boolean skipPreamble(
-        InputStream is, byte[] pattern, SharedInputStream sin)
-        throws Exception {
+            InputStream is, byte[] pattern, SharedInputStream sin)
+            throws Exception {
         if (!find(is, pattern, sin)) {
             return false;
         }
         if (lastPartFound.get(0)) {
             throw new Exception(
-            "Found closing boundary delimiter while trying to skip preamble");
+                    "Found closing boundary delimiter while trying to skip preamble");
         }
         return true;
     }
 
 
-    public int  readNext(InputStream is, byte[] buff, int patternLength,
-        BitSet eof, long[] posVector, SharedInputStream sin)
-        throws Exception {
+    public int readNext(InputStream is, byte[] buff, int patternLength,
+                        BitSet eof, long[] posVector, SharedInputStream sin)
+            throws Exception {
 
         int bufferLength = is.read(buffer, 0, patternLength);
         if (bufferLength == -1) {
-           eof.flip(0);
+            eof.flip(0);
         } else if (bufferLength < patternLength) {
             //repeatedly read patternLength - bufferLength
             int temp = 0;
@@ -385,18 +386,18 @@
                     }
                     break;
                 }
-                buffer[i] = (byte)temp;
+                buffer[i] = (byte) temp;
             }
-            bufferLength=i;
+            bufferLength = i;
         }
         return bufferLength;
     }
 
     public boolean find(InputStream is, byte[] pattern, SharedInputStream sin)
-        throws Exception {
+            throws Exception {
         int i;
         int l = pattern.length;
-        int lx = l -1;
+        int lx = l - 1;
         BitSet eof = new BitSet(1);
         long[] posVector = new long[1];
 
@@ -409,12 +410,12 @@
             }
 
             /*
-            if (bufferLength < l) {
-                //is.reset();
-                return false;
-            }*/
+        if (bufferLength < l) {
+            //is.reset();
+        return false;
+        }*/
 
-            for(i = lx; i >= 0; i--) {
+            for (i = lx; i >= 0; i--) {
                 if (buffer[i] != pattern[i]) {
                     break;
                 }
@@ -435,11 +436,11 @@
     }
 
     public boolean find(
-        InputStream is, byte[] pattern, long[] posVector,
-        ByteOutputStream out, SharedInputStream sin) throws Exception {
+            InputStream is, byte[] pattern, long[] posVector,
+            ByteOutputStream out, SharedInputStream sin) throws Exception {
         int i;
         int l = pattern.length;
-        int lx = l -1;
+        int lx = l - 1;
         int bufferLength = 0;
         int s = 0;
         long endPos = -1;
@@ -466,7 +467,7 @@
                 // looks like it is allowed to not have a closing boundary
                 //return false;
                 //if (sin != null) {
-                 //   posVector[0] = endPos;
+                //   posVector[0] = endPos;
                 //}
                 b = -1;
                 if ((s == l) && (sin == null)) {
@@ -482,7 +483,7 @@
                 } else {
                     // looks like it is allowed to not have a closing boundary
                     // in the old implementation
-                        out.write(buffer, 0, bufferLength);
+                    out.write(buffer, 0, bufferLength);
                 }
                 // looks like it is allowed to not have a closing boundary
                 // in the old implementation
@@ -491,7 +492,7 @@
                 return true;
             }
 
-            for(i = lx; i >= 0; i--) {
+            for (i = lx; i >= 0; i--) {
                 if (buffer[i] != pattern[i]) {
                     break;
                 }
@@ -507,7 +508,7 @@
                         if (s == 2) {
                             if (prevBuffer[1] == '\n') {
                                 if (prevBuffer[0] != '\r' && prevBuffer[0] != '\n') {
-                                    out.write(prevBuffer,0,1);
+                                    out.write(prevBuffer, 0, 1);
                                 }
                                 if (sin != null) {
                                     posVector[0] = endPos;
@@ -516,15 +517,15 @@
                             } else {
                                 throw new Exception(
                                         "Boundary characters encountered in part Body " +
-                                        "without a preceeding CRLF");
+                                                "without a preceeding CRLF");
                             }
 
-                        } else if (s==1) {
+                        } else if (s == 1) {
                             if (prevBuffer[0] != '\n') {
                                 throw new Exception(
                                         "Boundary characters encountered in part Body " +
-                                        "without a preceeding CRLF");
-                            }else {
+                                                "without a preceeding CRLF");
+                            } else {
                                 if (sin != null) {
                                     posVector[0] = endPos;
                                 }
@@ -532,13 +533,13 @@
                         }
 
                     } else if (s > 2) {
-                        if ((prevBuffer[s-2] == '\r') && (prevBuffer[s-1] == '\n')) {
+                        if ((prevBuffer[s - 2] == '\r') && (prevBuffer[s - 1] == '\n')) {
                             if (sin != null) {
                                 posVector[0] = endPos - 2;
                             } else {
                                 out.write(prevBuffer, 0, s - 2);
                             }
-                        } else if (prevBuffer[s-1] == '\n') {
+                        } else if (prevBuffer[s - 1] == '\n') {
                             //old impl allowed just a \n
                             if (sin != null) {
                                 posVector[0] = endPos - 1;
@@ -547,8 +548,8 @@
                             }
                         } else {
                             throw new Exception(
-                                "Boundary characters encountered in part Body " +
-                                "without a preceeding CRLF");
+                                    "Boundary characters encountered in part Body " +
+                                            "without a preceeding CRLF");
                         }
                     }
                 }
@@ -561,22 +562,22 @@
             }
 
             if ((s > 0) && (sin == null)) {
-                if (prevBuffer[s-1] == (byte)13) {
+                if (prevBuffer[s - 1] == (byte) 13) {
                     // if buffer[0] == (byte)10
-                    if (buffer[0] == (byte)10) {
+                    if (buffer[0] == (byte) 10) {
                         int j;
-                        for(j = lx-1; j > 0; j--) {
-                            if (buffer[j+1] != pattern[j]) {
+                        for (j = lx - 1; j > 0; j--) {
+                            if (buffer[j + 1] != pattern[j]) {
                                 break;
-                             }
-                         }
-                         if (j == 0) {
-                             // matched the pattern excluding the last char of the pattern
-                             // so dont write the CR into stream
-                             out.write(prevBuffer,0,s-1);
-                         } else {
-                             out.write(prevBuffer,0,s);
-                         }
+                            }
+                        }
+                        if (j == 0) {
+                            // matched the pattern excluding the last char of the pattern
+                            // so dont write the CR into stream
+                            out.write(prevBuffer, 0, s - 1);
+                        } else {
+                            out.write(prevBuffer, 0, s);
+                        }
                     } else {
                         out.write(prevBuffer, 0, s);
                     }
@@ -612,20 +613,20 @@
                 return true;
             } else {
                 throw new Exception(
-                    "transport padding after a Mime Boundary  should end in a CRLF, found CR only");
+                        "transport padding after a Mime Boundary  should end in a CRLF, found CR only");
             }
         }
 
         if (b == '-') {
             b = is.read();
             if (b != '-') {
-               throw new Exception(
-                   "Unexpected singular '-' character after Mime Boundary");
+                throw new Exception(
+                        "Unexpected singular '-' character after Mime Boundary");
             } else {
                 //System.out.println("Last Part Found");
                 lastPartFound.flip(0);
                 // read the next char
-                b  = is.read();
+                b = is.read();
             }
         }
 
@@ -641,7 +642,7 @@
                     b = is.read();
                 }
                 if (b == '\n') {
-                   return true;
+                    return true;
                 }
             }
         }
@@ -673,7 +674,8 @@
 
         // Initialise Good Suffix Shift table
         gss = new int[l];
-  NEXT: for (i = l; i > 0; i--) {
+        NEXT:
+        for (i = l; i > 0; i--) {
             // j is the beginning index of suffix being considered
             for (j = l - 1; j >= i; j--) {
                 // Testing for good suffix
@@ -681,9 +683,9 @@
                     // pattern[j..len] is a good suffix
                     gss[j - 1] = i;
                 } else {
-                   // No match. The array has already been
-                   // filled up with correct values before.
-                   continue NEXT;
+                    // No match. The array has already been
+                    // filled up with correct values before.
+                    continue NEXT;
                 }
             }
             while (j > 0) {
@@ -756,6 +758,7 @@
             this.contentType.setParameter("boundary", bnd);
         }
     }
+
     public String getBoundary() {
         return this.boundary;
     }
diff --git a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/packaging/mime/internet/InternetHeaders.java b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/packaging/mime/internet/InternetHeaders.java
index 84616c8..0c72461 100644
--- a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/packaging/mime/internet/InternetHeaders.java
+++ b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/packaging/mime/internet/InternetHeaders.java
@@ -320,15 +320,15 @@
      * @return list of header lines.
      */
     public List<String> getAllHeaderLines() {
-        if(headerValueView==null)
+        if (headerValueView == null)
             headerValueView = new AbstractList<String>() {
                 @Override
-                                public String get(int index) {
+                public String get(int index) {
                     return headers.get(index).line;
                 }
 
                 @Override
-                                public int size() {
+                public int size() {
                     return headers.size();
                 }
             };
diff --git a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/packaging/mime/internet/MimeMultipart.java b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/packaging/mime/internet/MimeMultipart.java
index 6c5bf21..0243705 100644
--- a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/packaging/mime/internet/MimeMultipart.java
+++ b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/packaging/mime/internet/MimeMultipart.java
@@ -31,15 +31,21 @@
 
 package com.sun.xml.internal.messaging.saaj.packaging.mime.internet;
 
-import java.io.*;
+import com.sun.xml.internal.messaging.saaj.packaging.mime.MessagingException;
+import com.sun.xml.internal.messaging.saaj.packaging.mime.MultipartDataSource;
+import com.sun.xml.internal.messaging.saaj.packaging.mime.util.ASCIIUtility;
+import com.sun.xml.internal.messaging.saaj.packaging.mime.util.LineInputStream;
+import com.sun.xml.internal.messaging.saaj.packaging.mime.util.OutputUtil;
+import com.sun.xml.internal.messaging.saaj.util.ByteOutputStream;
+import com.sun.xml.internal.messaging.saaj.util.FinalArrayList;
+import com.sun.xml.internal.messaging.saaj.util.SAAJUtil;
 
 import javax.activation.DataSource;
-
-import com.sun.xml.internal.messaging.saaj.packaging.mime.*;
-import com.sun.xml.internal.messaging.saaj.packaging.mime.util.*;
-import com.sun.xml.internal.messaging.saaj.util.FinalArrayList;
-import com.sun.xml.internal.messaging.saaj.util.ByteOutputStream;
-import com.sun.xml.internal.messaging.saaj.util.SAAJUtil;
+import java.io.BufferedInputStream;
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
 
 /**
  * The MimeMultipart class is an implementation
@@ -211,7 +217,7 @@
      * @exception       MessagingException if no such MimeBodyPart exists
      */
     public  MimeBodyPart getBodyPart(int index)
-                        throws MessagingException {
+            throws MessagingException {
         parse();
         if (parts == null)
             throw new IndexOutOfBoundsException("No such BodyPart");
@@ -228,19 +234,19 @@
      * @exception       MessagingException if no such MimeBodyPart exists.
      */
     public  MimeBodyPart getBodyPart(String CID)
-                        throws MessagingException {
+            throws MessagingException {
         parse();
 
         int count = getCount();
         for (int i = 0; i < count; i++) {
            MimeBodyPart part = getBodyPart(i);
            String s = part.getContentID();
-           // Old versions of AXIS2 put angle brackets around the content
-           // id but not the start param
-           String sNoAngle = (s!= null) ? s.replaceFirst("^<", "").replaceFirst(">$", "")
-                   :null;
+               // Old versions of AXIS2 put angle brackets around the content
+               // id but not the start param
+               String sNoAngle = (s!= null) ? s.replaceFirst("^<", "").replaceFirst(">$", "")
+                       :null;
            if (s != null && (s.equals(CID) || CID.equals(sNoAngle)))
-                return part;
+               return part;
         }
         return null;
     }
@@ -319,14 +325,14 @@
         try {
             in = ds.getInputStream();
             if (!(in instanceof ByteArrayInputStream) &&
-                !(in instanceof BufferedInputStream) &&
-                !(in instanceof SharedInputStream))
+                    !(in instanceof BufferedInputStream) &&
+                    !(in instanceof SharedInputStream))
                 in = new BufferedInputStream(in);
         } catch (Exception ex) {
             throw new MessagingException("No inputstream from datasource");
         }
         if (in instanceof SharedInputStream)
-            sin = (SharedInputStream)in;
+            sin = (SharedInputStream) in;
 
         String boundary = "--" + contentType.getParameter("boundary");
         byte[] bndbytes = ASCIIUtility.getBytes(boundary);
@@ -338,12 +344,12 @@
             LineInputStream lin = new LineInputStream(in);
             String line;
             while ((line = lin.readLine()) != null) {
-                /*
-                 * Strip trailing whitespace.  Can't use trim method
-                 * because it's too aggressive.  Some bogus MIME
-                 * messages will include control characters in the
-                 * boundary string.
-                 */
+        /*
+         * Strip trailing whitespace.  Can't use trim method
+         * because it's too aggressive.  Some bogus MIME
+         * messages will include control characters in the
+         * boundary string.
+         */
                 int i;
                 for (i = line.length() - 1; i >= 0; i--) {
                     char c = line.charAt(i);
@@ -357,12 +363,12 @@
             if (line == null)
                 throw new MessagingException("Missing start boundary");
 
-            /*
-             * Read and process body parts until we see the
-             * terminating boundary line (or EOF).
-             */
+        /*
+         * Read and process body parts until we see the
+         * terminating boundary line (or EOF).
+         */
             boolean done = false;
-        getparts:
+            getparts:
             while (!done) {
                 InternetHeaders headers = null;
                 if (sin != null) {
@@ -372,7 +378,7 @@
                         ;
                     if (line == null) {
                         if (!ignoreMissingEndBoundary) {
-                           throw new MessagingException("Missing End Boundary for Mime Package : EOF while skipping headers");
+                            throw new MessagingException("Missing End Boundary for Mime Package : EOF while skipping headers");
                         }
                         // assume there's just a missing end boundary
                         break getparts;
@@ -397,7 +403,7 @@
                 /*
                  * Read and save the content bytes in buf.
                  */
-                for (;;) {
+                for (; ; ) {
                     if (bol) {
                         /*
                          * At the beginning of a line, check whether the
@@ -416,7 +422,7 @@
                                 if (in.read() == '-') {
                                     done = true;
                                     foundClosingBoundary = true;
-                                    break;      // ignore trailing text
+                                    break;    // ignore trailing text
                                 }
                             }
                             // skip linear whitespace
@@ -424,12 +430,12 @@
                                 b2 = in.read();
                             // check for end of line
                             if (b2 == '\n')
-                                break;  // got it!  break out of the loop
+                                break;    // got it!  break out of the loop
                             if (b2 == '\r') {
                                 in.mark(1);
                                 if (in.read() != '\n')
                                     in.reset();
-                                break;  // got it!  break out of the loop
+                                break;    // got it!  break out of the loop
                             }
                         }
                         // failed to match, reset and proceed normally
@@ -491,7 +497,7 @@
                 buf.close();
         }
 
-        if (!ignoreMissingEndBoundary && !foundClosingBoundary && sin== null) {
+        if (!ignoreMissingEndBoundary && !foundClosingBoundary && sin == null) {
             throw new MessagingException("Missing End Boundary for Mime Package : EOF while skipping headers");
         }
         parsed = true;
@@ -510,7 +516,7 @@
      * @since           JavaMail 1.2
      */
     protected InternetHeaders createInternetHeaders(InputStream is)
-                                throws MessagingException {
+                throws MessagingException {
         return new InternetHeaders(is);
     }
 
@@ -523,12 +529,12 @@
      *
      * @param   headers         the headers for the body part.
      * @param   content         the content of the body part.
-     * @param   len             the content length.
+     * @param   len                     the content length.
      * @return  MimeBodyPart
      * @since                   JavaMail 1.2
      */
     protected MimeBodyPart createMimeBodyPart(InternetHeaders headers, byte[] content, int len) {
-            return new MimeBodyPart(headers, content,len);
+        return new MimeBodyPart(headers, content,len);
     }
 
     /**
@@ -544,7 +550,7 @@
      * @since                   JavaMail 1.2
      */
     protected MimeBodyPart createMimeBodyPart(InputStream is) throws MessagingException {
-            return new MimeBodyPart(is);
+        return new MimeBodyPart(is);
     }
 
     /**
@@ -564,7 +570,7 @@
      * @exception               MessagingException in case of error.
      */
     protected void setMultipartDataSource(MultipartDataSource mp)
-                        throws MessagingException {
+            throws MessagingException {
         contentType = new ContentType(mp.getContentType());
 
         int count = mp.getCount();
@@ -582,7 +588,7 @@
      * @see     #contentType
      */
     public ContentType getContentType() {
-            return contentType;
+        return contentType;
     }
 
     /**
diff --git a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/packaging/mime/internet/MimePartDataSource.java b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/packaging/mime/internet/MimePartDataSource.java
index eb7b46c..786a1f7 100644
--- a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/packaging/mime/internet/MimePartDataSource.java
+++ b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/packaging/mime/internet/MimePartDataSource.java
@@ -28,21 +28,21 @@
  */
 
 
-
 package com.sun.xml.internal.messaging.saaj.packaging.mime.internet;
 
-import java.io.*;
-import java.net.UnknownServiceException;
+import com.sun.xml.internal.messaging.saaj.packaging.mime.MessagingException;
 
 import javax.activation.DataSource;
-
-import com.sun.xml.internal.messaging.saaj.packaging.mime.MessagingException;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.net.UnknownServiceException;
 
 /**
  * A utility class that implements a DataSource out of
  * a MimeBodyPart. This class is primarily meant for service providers.
  *
- * @author      John Mani
+ * @author John Mani
  */
 
 public final class MimePartDataSource implements DataSource {
@@ -68,13 +68,13 @@
      * using the <code>getContentStream()</code> method and decodes
      * it using the <code>MimeUtility.decode()</code> method.
      *
-     * @return  decoded input stream
+     * @return decoded input stream
      */
     @Override
     public InputStream getInputStream() throws IOException {
 
         try {
-        InputStream is = part.getContentStream();
+            InputStream is = part.getContentStream();
 
             String encoding = part.getEncoding();
             if (encoding != null)
@@ -92,7 +92,7 @@
      * This implementation throws the UnknownServiceException.
      */
     @Override
-        public OutputStream getOutputStream() throws IOException {
+    public OutputStream getOutputStream() throws IOException {
         throw new UnknownServiceException();
     }
 
@@ -113,11 +113,11 @@
      * This implementation just returns an empty string.
      */
     @Override
-        public String getName() {
+    public String getName() {
         try {
-                return part.getFileName();
+            return part.getFileName();
         } catch (MessagingException mex) {
-        return "";
+            return "";
         }
     }
 }
diff --git a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/packaging/mime/internet/MimePullMultipart.java b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/packaging/mime/internet/MimePullMultipart.java
index 76f4c78..40589ed 100644
--- a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/packaging/mime/internet/MimePullMultipart.java
+++ b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/packaging/mime/internet/MimePullMultipart.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -113,6 +113,7 @@
        parsed = true;
     }
 
+    @Override
     protected  void parse() throws MessagingException {
         parseAll();
     }
diff --git a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/packaging/mime/internet/ParameterList.java b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/packaging/mime/internet/ParameterList.java
index f1dcc12..e16ba61 100644
--- a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/packaging/mime/internet/ParameterList.java
+++ b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/packaging/mime/internet/ParameterList.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -50,7 +50,7 @@
      * No-arg Constructor.
      */
     public ParameterList() {
-        this.list = new HashMap<String, String>();
+        this.list = new HashMap<>();
     }
 
     private ParameterList(HashMap<String, String> m) {
@@ -73,7 +73,7 @@
         int type;
         String name;
 
-        list = new HashMap<String, String>();
+        list = new HashMap<>();
         while (true) {
             tk = h.next();
             type = tk.getType();
@@ -171,6 +171,7 @@
      *
      * @return          String
      */
+    @Override
     public String toString() {
         return toString(0);
     }
@@ -232,6 +233,6 @@
     }
 
     public ParameterList copy() {
-        return new ParameterList((HashMap)list.clone());
+        return new ParameterList((HashMap<String, String>)list.clone());
     }
 }
diff --git a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/packaging/mime/util/ASCIIUtility.java b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/packaging/mime/util/ASCIIUtility.java
index a85fc85..6e11534 100644
--- a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/packaging/mime/util/ASCIIUtility.java
+++ b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/packaging/mime/util/ASCIIUtility.java
@@ -32,12 +32,14 @@
 
 import com.sun.xml.internal.messaging.saaj.util.ByteOutputStream;
 
-import java.io.*;
+import java.io.IOException;
+import java.io.InputStream;
 
 public class ASCIIUtility {
 
     // Private constructor so that this class is not instantiated
-    private ASCIIUtility() { }
+    private ASCIIUtility() {
+    }
 
 
     /**
@@ -47,16 +49,14 @@
      *
      * Based on java.lang.Integer.parseInt().
      *
-     * @param b bytes to convert to integer.
+     * @param b     bytes to convert to integer.
      * @param start start of the range.
-     * @param end end of the range (not including).
+     * @param end   end of the range (not including).
      * @param radix radix.
-     *
      * @return integer.
-     *
      */
     public static int parseInt(byte[] b, int start, int end, int radix)
-                throws NumberFormatException {
+            throws NumberFormatException {
         if (b == null)
             throw new NumberFormatException("null");
 
@@ -77,18 +77,18 @@
             }
             multmin = limit / radix;
             if (i < end) {
-                digit = Character.digit((char)b[i++], radix);
+                digit = Character.digit((char) b[i++], radix);
                 if (digit < 0) {
                     throw new NumberFormatException(
-                        "illegal number: " + toString(b, start, end)
-                        );
+                            "illegal number: " + toString(b, start, end)
+                    );
                 } else {
                     result = -digit;
                 }
             }
             while (i < end) {
                 // Accumulating negatively avoids surprises near MAX_VALUE
-                digit = Character.digit((char)b[i++], radix);
+                digit = Character.digit((char) b[i++], radix);
                 if (digit < 0) {
                     throw new NumberFormatException("illegal number");
                 }
@@ -120,56 +120,48 @@
      * array into a String. The range extends from <code>start</code>
      * till, but not including <code>end</code>.
      *
-     * @param b bytes to convert to integer.
+     * @param b     bytes to convert to integer.
      * @param start start of the range.
-     * @param end end of the range (not including).
-     *
+     * @param end   end of the range (not including).
      * @return integer.
-     *
      */
     public static String toString(byte[] b, int start, int end) {
         int size = end - start;
         char[] theChars = new char[size];
 
         for (int i = 0, j = start; i < size; )
-            theChars[i++] = (char)(b[j++]&0xff);
+            theChars[i++] = (char) (b[j++] & 0xff);
 
         return new String(theChars);
     }
 
-        /**
-         * Encodes specified String into a sequence of bytes using the platform's
-         * default charset, storing the result into a new byte array.
-         *
-         * @param s string to encode into byte array.
-         *
-         * @return byte array.
-         *
-         */
+    /**
+     * Encodes specified String into a sequence of bytes using the platform's
+     * default charset, storing the result into a new byte array.
+     *
+     * @param s string to encode into byte array.
+     * @return byte array.
+     */
     public static byte[] getBytes(String s) {
-        char [] chars= s.toCharArray();
+        char[] chars = s.toCharArray();
         int size = chars.length;
         byte[] bytes = new byte[size];
 
-        for (int i = 0; i < size;)
+        for (int i = 0; i < size; )
             bytes[i] = (byte) chars[i++];
         return bytes;
     }
 
     /**
-         * Converts input stream to array.
-         *
-         * @param is stream to convert to array.
-         *
-         * @return byte array.
-         *
-         * @throws IOException if an I/O error occurs.
+     * Converts input stream to array.
      *
-     * @deprecated
-     *      this is an expensive operation that require an additional
-     *      buffer reallocation just to get the array of an exact size.
-     *      Unless you absolutely need the exact size array, don't use this.
-     *      Use {@link ByteOutputStream} and {@link ByteOutputStream#write(InputStream)}.
+     * @param is stream to convert to array.
+     * @return byte array.
+     * @throws IOException if an I/O error occurs.
+     * @deprecated this is an expensive operation that require an additional
+     * buffer reallocation just to get the array of an exact size.
+     * Unless you absolutely need the exact size array, don't use this.
+     * Use {@link ByteOutputStream} and {@link ByteOutputStream#write(InputStream)}.
      */
     @Deprecated
     public static byte[] getBytes(InputStream is) throws IOException {
diff --git a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/packaging/mime/util/QDecoderStream.java b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/packaging/mime/util/QDecoderStream.java
index 06ea938..ab8c3ab 100644
--- a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/packaging/mime/util/QDecoderStream.java
+++ b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/packaging/mime/util/QDecoderStream.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -63,6 +63,7 @@
      *             stream is reached.
      * @exception  IOException  if an I/O error occurs.
      */
+    @Override
     public int read() throws IOException {
         int c = in.read();
 
diff --git a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/packaging/mime/util/QPDecoderStream.java b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/packaging/mime/util/QPDecoderStream.java
index 1f60b1a..7184e00 100644
--- a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/packaging/mime/util/QPDecoderStream.java
+++ b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/packaging/mime/util/QPDecoderStream.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -67,6 +67,7 @@
      *             stream is reached.
      * @exception  IOException  if an I/O error occurs.
      */
+    @Override
     public int read() throws IOException {
         if (spaces > 0) {
             // We have cached space characters, return one
@@ -150,6 +151,7 @@
      *             the stream has been reached.
      * @exception  IOException  if an I/O error occurs.
      */
+    @Override
     public int read(byte[] buf, int off, int len) throws IOException {
         int i, c;
         for (i = 0; i < len; i++) {
@@ -167,6 +169,7 @@
      * Tests if this input stream supports marks. Currently this class
      * does not support marks
      */
+    @Override
     public boolean markSupported() {
         return false;
     }
@@ -178,6 +181,7 @@
      * this method just invokes the <code>available</code> method
      * of the original input stream.
      */
+    @Override
     public int available() throws IOException {
         // This is bogus ! We don't really know how much
         // bytes are available *after* decoding
diff --git a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/packaging/mime/util/QPEncoderStream.java b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/packaging/mime/util/QPEncoderStream.java
index 3f80d39..74ac839 100644
--- a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/packaging/mime/util/QPEncoderStream.java
+++ b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/packaging/mime/util/QPEncoderStream.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -81,6 +81,7 @@
      * @param      len   the number of bytes to write.
      * @exception  IOException  if an I/O error occurs.
      */
+    @Override
     public void write(byte[] b, int off, int len) throws IOException {
         for (int i = 0; i < len; i++)
             write(b[off + i]);
@@ -91,6 +92,7 @@
      * @param      b   the data to be written.
      * @exception  IOException  if an I/O error occurs.
      */
+    @Override
     public void write(byte[] b) throws IOException {
         write(b, 0, b.length);
     }
@@ -100,6 +102,7 @@
      * @param      c   the <code>byte</code>.
      * @exception  IOException  if an I/O error occurs.
      */
+    @Override
     public void write(int c) throws IOException {
         c = c & 0xff; // Turn off the MSB.
         if (gotSpace) { // previous character was <SPACE>
@@ -139,6 +142,7 @@
      * to be encoded out to the stream.
      * @exception  IOException  if an I/O error occurs.
      */
+    @Override
     public void flush() throws IOException {
         out.flush();
     }
@@ -147,6 +151,7 @@
      * Forces any buffered output bytes to be encoded out to the stream
      * and closes this output stream
      */
+    @Override
     public void close() throws IOException {
         out.close();
     }
diff --git a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/packaging/mime/util/UUDecoderStream.java b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/packaging/mime/util/UUDecoderStream.java
index d012014..1945aef 100644
--- a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/packaging/mime/util/UUDecoderStream.java
+++ b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/packaging/mime/util/UUDecoderStream.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -78,6 +78,7 @@
      * @see        java.io.FilterInputStream#in
      */
 
+    @Override
     public int read() throws IOException {
         if (index >= bufsize) {
             readPrefix();
@@ -88,6 +89,7 @@
         return buffer[index++] & 0xff; // return lower byte
     }
 
+    @Override
     public int read(byte[] buf, int off, int len) throws IOException {
         int i, c;
         for (i = 0; i < len; i++) {
@@ -101,10 +103,12 @@
         return i;
     }
 
+    @Override
     public boolean markSupported() {
         return false;
     }
 
+    @Override
     public int available() throws IOException {
          // This is only an estimate, since in.available()
          // might include CRLFs too ..
diff --git a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/AttachmentPartImpl.java b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/AttachmentPartImpl.java
index ada4a7d..d82c028 100644
--- a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/AttachmentPartImpl.java
+++ b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/AttachmentPartImpl.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -88,6 +88,7 @@
         }
     }
 
+    @Override
     public int getSize() throws SOAPException {
         if (mimePart != null) {
             try {
@@ -124,6 +125,7 @@
         }
     }
 
+    @Override
     public void clearContent() {
         if (mimePart != null) {
             mimePart.close();
@@ -133,6 +135,7 @@
         rawContent = null;
     }
 
+    @Override
     public Object getContent() throws SOAPException {
         try {
             if (mimePart != null) {
@@ -153,6 +156,7 @@
         }
     }
 
+    @Override
     public void setContent(Object object, String contentType)
         throws IllegalArgumentException {
         if (mimePart != null) {
@@ -165,23 +169,28 @@
     }
 
 
+    @Override
     public DataHandler getDataHandler() throws SOAPException {
         if (mimePart != null) {
             //return an inputstream
             return new DataHandler(new DataSource() {
 
+                @Override
                 public InputStream getInputStream() throws IOException {
                     return mimePart.read();
                 }
 
+                @Override
                 public OutputStream getOutputStream() throws IOException {
                     throw new UnsupportedOperationException("getOutputStream cannot be supported : You have enabled LazyAttachments Option");
                 }
 
+                @Override
                 public String getContentType() {
                     return mimePart.getContentType();
                 }
 
+                @Override
                 public String getName() {
                     return "MIMEPart Wrapper DataSource";
                 }
@@ -197,6 +206,7 @@
         return dataHandler;
     }
 
+    @Override
     public void setDataHandler(DataHandler dataHandler)
         throws IllegalArgumentException {
         if (mimePart != null) {
@@ -216,35 +226,43 @@
         setMimeHeader("Content-Type", dataHandler.getContentType());
     }
 
+    @Override
     public void removeAllMimeHeaders() {
         headers.removeAllHeaders();
     }
 
+    @Override
     public void removeMimeHeader(String header) {
         headers.removeHeader(header);
     }
 
+    @Override
     public String[] getMimeHeader(String name) {
         return headers.getHeader(name);
     }
 
+    @Override
     public void setMimeHeader(String name, String value) {
         headers.setHeader(name, value);
     }
 
+    @Override
     public void addMimeHeader(String name, String value) {
         headers.addHeader(name, value);
     }
 
-    public Iterator getAllMimeHeaders() {
+    @Override
+    public Iterator<MimeHeader> getAllMimeHeaders() {
         return headers.getAllHeaders();
     }
 
-    public Iterator getMatchingMimeHeaders(String[] names) {
+    @Override
+    public Iterator<MimeHeader> getMatchingMimeHeaders(String[] names) {
         return headers.getMatchingHeaders(names);
     }
 
-    public Iterator getNonMatchingMimeHeaders(String[] names) {
+    @Override
+    public Iterator<MimeHeader> getNonMatchingMimeHeaders(String[] names) {
         return headers.getNonMatchingHeaders(names);
     }
 
@@ -329,6 +347,7 @@
         }
     }
 
+    @Override
     public  void setBase64Content(InputStream content, String contentType)
         throws SOAPException {
 
@@ -365,6 +384,7 @@
         }
     }
 
+    @Override
     public  InputStream getBase64Content() throws SOAPException {
         InputStream stream;
         if (mimePart != null) {
@@ -425,6 +445,7 @@
         }
     }
 
+    @Override
     public void setRawContent(InputStream content, String contentType)
         throws SOAPException {
         if (mimePart != null) {
@@ -475,6 +496,7 @@
         }
     } */
 
+    @Override
     public void setRawContentBytes(
         byte[] content, int off, int len, String contentType)
         throws SOAPException {
@@ -498,6 +520,7 @@
         }
     }
 
+    @Override
     public  InputStream getRawContent() throws SOAPException {
         if (mimePart != null) {
             return mimePart.read();
@@ -522,6 +545,7 @@
         }
     }
 
+    @Override
     public  byte[] getRawContentBytes() throws SOAPException {
         InputStream ret;
         if (mimePart != null) {
@@ -556,12 +580,14 @@
     }
 
     // attachments are equal if they are the same reference
+    @Override
     public boolean equals(Object o) {
         return (this == o);
     }
 
     // In JDK 8 we get a warning if we implement equals() but not hashCode().
     // There is no intuitive value for this, the default one in Object is fine.
+    @Override
     public int hashCode() {
         return super.hashCode();
     }
diff --git a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/ContextClassloaderLocal.java b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/ContextClassloaderLocal.java
index 22efd45..09de903 100644
--- a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/ContextClassloaderLocal.java
+++ b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/ContextClassloaderLocal.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2014, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -71,6 +71,7 @@
 
     private static ClassLoader getContextClassLoader() {
         return AccessController.doPrivileged(new PrivilegedAction<ClassLoader>() {
+                    @Override
                     public ClassLoader run() {
                         ClassLoader cl = null;
                         try {
diff --git a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/MessageFactoryImpl.java b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/MessageFactoryImpl.java
index d7a0226..d2d5c6e 100644
--- a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/MessageFactoryImpl.java
+++ b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/MessageFactoryImpl.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -63,6 +63,7 @@
         return oldListener;
     }
 
+    @Override
     public SOAPMessage createMessage() throws SOAPException {
         throw new UnsupportedOperationException();
     }
@@ -105,6 +106,7 @@
                 "Unable to parse content type: " + e.getMessage());
         }
     }
+    @Override
     public SOAPMessage createMessage(MimeHeaders headers, InputStream in)
         throws SOAPException, IOException {
         String contentTypeString = MessageImpl.getContentType(headers);
diff --git a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/MessageImpl.java b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/MessageImpl.java
index a7df703..b7fab47 100644
--- a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/MessageImpl.java
+++ b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/MessageImpl.java
@@ -87,7 +87,7 @@
     protected boolean saved = false;
     protected byte[] messageBytes;
     protected int messageByteCount;
-    protected HashMap properties = new HashMap();
+    protected Map<String, Object> properties = new HashMap<>();
 
     // used for lazy attachment initialization
     protected MimeMultipart multiPart = null;
@@ -883,17 +883,17 @@
             throw new RuntimeException(e);
         }
         if (attachments == null)
-            attachments = new FinalArrayList<AttachmentPart>();
+            attachments = new FinalArrayList<>();
 
         attachments.add(attachment);
 
         needsSave();
     }
 
-    static private final Iterator nullIter = Collections.EMPTY_LIST.iterator();
+    static private final Iterator<AttachmentPart> nullIter = Collections.<AttachmentPart>EMPTY_LIST.iterator();
 
     @Override
-    public Iterator getAttachments() {
+    public Iterator<AttachmentPart> getAttachments() {
         try {
             initializeAllAttachments();
         } catch (Exception e) {
@@ -963,7 +963,7 @@
     }
 
     @Override
-    public Iterator getAttachments(MimeHeaders headers) {
+    public Iterator<AttachmentPart> getAttachments(MimeHeaders headers) {
         try {
             initializeAllAttachments();
         } catch (Exception e) {
diff --git a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/SAAJMetaFactoryImpl.java b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/SAAJMetaFactoryImpl.java
index 022741e..d4faa0a 100644
--- a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/SAAJMetaFactoryImpl.java
+++ b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/SAAJMetaFactoryImpl.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -42,6 +42,7 @@
         Logger.getLogger(LogDomainConstants.SOAP_DOMAIN,
                          "com.sun.xml.internal.messaging.saaj.soap.LocalStrings");
 
+    @Override
     protected  MessageFactory newMessageFactory(String protocol)
         throws SOAPException {
         if (SOAPConstants.SOAP_1_1_PROTOCOL.equals(protocol)) {
@@ -60,6 +61,7 @@
         }
     }
 
+    @Override
     protected  SOAPFactory newSOAPFactory(String protocol)
         throws SOAPException {
         if (SOAPConstants.SOAP_1_1_PROTOCOL.equals(protocol)) {
diff --git a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/SOAPDocumentFragment.java b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/SOAPDocumentFragment.java
new file mode 100644
index 0000000..84c6d69
--- /dev/null
+++ b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/SOAPDocumentFragment.java
@@ -0,0 +1,234 @@
+/*
+ * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package com.sun.xml.internal.messaging.saaj.soap;
+
+import com.sun.xml.internal.messaging.saaj.soap.impl.NodeListImpl;
+import org.w3c.dom.*;
+
+/**
+ * SAAJ wrapper for {@link DocumentFragment}
+ *
+ * @author Yan GAO.
+ */
+public class SOAPDocumentFragment implements DocumentFragment {
+
+    private SOAPDocumentImpl soapDocument;
+    private DocumentFragment documentFragment;
+
+    public SOAPDocumentFragment(SOAPDocumentImpl ownerDoc) {
+        this.soapDocument = ownerDoc;
+        this.documentFragment = soapDocument.getDomDocument().createDocumentFragment();
+    }
+
+    public SOAPDocumentFragment() {}
+
+    @Override
+    public boolean hasAttributes() {
+        return documentFragment.hasAttributes();
+    }
+
+    @Override
+    public boolean isSameNode(Node other) {
+        return documentFragment.isSameNode(getDomNode(other));
+    }
+
+    @Override
+    public String lookupNamespaceURI(String prefix) {
+        return documentFragment.lookupNamespaceURI(prefix);
+    }
+
+    @Override
+    public Node getParentNode() {
+        return soapDocument.findIfPresent(documentFragment.getParentNode());
+    }
+
+    @Override
+    public Node getFirstChild() {
+        return soapDocument.findIfPresent(documentFragment.getFirstChild());
+    }
+
+    @Override
+    public Object getUserData(String key) {
+        return documentFragment.getUserData(key);
+    }
+
+    @Override
+    public String getTextContent() throws DOMException {
+        return documentFragment.getTextContent();
+    }
+    @Override
+    public short getNodeType() {
+        return documentFragment.getNodeType();
+    }
+
+    public Node getDomNode(Node node) {
+        return soapDocument.getDomNode(node);
+    }
+
+    @Override
+    public Node appendChild(Node newChild) throws DOMException {
+        Node node = soapDocument.importNode(newChild, true);
+        return soapDocument.findIfPresent(documentFragment.appendChild(getDomNode(node)));
+    }
+
+    @Override
+    public Node removeChild(Node oldChild) throws DOMException {
+        return soapDocument.findIfPresent(documentFragment.removeChild(getDomNode(oldChild)));
+    }
+
+    @Override
+    public NamedNodeMap getAttributes() {
+        return documentFragment.getAttributes();
+    }
+
+    @Override
+    public short compareDocumentPosition(Node other) throws DOMException {
+        return documentFragment.compareDocumentPosition(getDomNode(other));
+    }
+    @Override
+    public void setTextContent(String textContent) throws DOMException {
+        documentFragment.setTextContent(textContent);
+    }
+    @Override
+    public Node insertBefore(Node newChild, Node refChild) throws DOMException {
+        Node node = soapDocument.importNode(newChild, true);
+        return soapDocument.findIfPresent(documentFragment.insertBefore(getDomNode(node), getDomNode(refChild)));
+    }
+    @Override
+    public Object setUserData(String key, Object data, UserDataHandler handler) {
+        return documentFragment.setUserData(key, data, handler);
+    }
+    @Override
+    public boolean isDefaultNamespace(String namespaceURI) {
+        return documentFragment.isDefaultNamespace(namespaceURI);
+    }
+
+    @Override
+    public Node getLastChild() {
+        return soapDocument.findIfPresent(documentFragment.getLastChild());
+    }
+
+    @Override
+    public void setPrefix(String prefix) throws DOMException {
+        documentFragment.setPrefix(prefix);
+    }
+    @Override
+    public String getNodeName() {
+        return documentFragment.getNodeName();
+    }
+
+    @Override
+    public void setNodeValue(String nodeValue) throws DOMException {
+        documentFragment.setNodeValue(nodeValue);
+    }
+    @Override
+    public Node replaceChild(Node newChild, Node oldChild) throws DOMException {
+        Node node = soapDocument.importNode(newChild, true);
+        return soapDocument.findIfPresent(documentFragment.replaceChild(getDomNode(node), getDomNode(oldChild)));
+    }
+    @Override
+    public String getLocalName() {
+        return documentFragment.getLocalName();
+    }
+
+    @Override
+    public void normalize() {
+        documentFragment.normalize();
+    }
+
+    @Override
+    public Node cloneNode(boolean deep) {
+        Node node= documentFragment.cloneNode(deep);
+        soapDocument.registerChildNodes(node, deep);
+        return soapDocument.findIfPresent(node);
+    }
+
+    @Override
+    public boolean isSupported(String feature, String version) {
+        return documentFragment.isSupported(feature, version);
+    }
+
+    @Override
+    public boolean isEqualNode(Node arg) {
+        return documentFragment.isEqualNode(getDomNode(arg));
+    }
+
+    @Override
+    public boolean hasChildNodes() {
+        return documentFragment.hasChildNodes();
+    }
+
+    @Override
+    public String lookupPrefix(String namespaceURI) {
+        return documentFragment.lookupPrefix(namespaceURI);
+    }
+
+    @Override
+    public String getNodeValue() throws DOMException {
+        return documentFragment.getNodeValue();
+    }
+    @Override
+    public Document getOwnerDocument() {
+        return documentFragment.getOwnerDocument();
+    }
+    @Override
+    public Object getFeature(String feature, String version) {
+        return documentFragment.getFeature(feature, version);
+    }
+
+    @Override
+    public Node getPreviousSibling() {
+        return soapDocument.findIfPresent(documentFragment.getPreviousSibling());
+    }
+
+    @Override
+    public NodeList getChildNodes() {
+        return new NodeListImpl(soapDocument, documentFragment.getChildNodes());
+    }
+
+    @Override
+    public String getBaseURI() {
+        return documentFragment.getBaseURI();
+    }
+
+    @Override
+    public Node getNextSibling() {
+        return soapDocument.findIfPresent(documentFragment.getNextSibling());
+    }
+
+    @Override
+    public String getPrefix() {
+        return documentFragment.getPrefix();
+    }
+
+    @Override
+    public String getNamespaceURI() {
+        return documentFragment.getNamespaceURI();
+    }
+    public Document getSoapDocument() {
+        return soapDocument;
+    }
+}
diff --git a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/SOAPDocumentImpl.java b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/SOAPDocumentImpl.java
index 417cd9a..d08f01c 100644
--- a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/SOAPDocumentImpl.java
+++ b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/SOAPDocumentImpl.java
@@ -32,6 +32,8 @@
 import com.sun.xml.internal.messaging.saaj.soap.impl.CDATAImpl;
 import com.sun.xml.internal.messaging.saaj.soap.impl.ElementFactory;
 import com.sun.xml.internal.messaging.saaj.soap.impl.ElementImpl;
+import com.sun.xml.internal.messaging.saaj.soap.impl.NamedNodeMapImpl;
+import com.sun.xml.internal.messaging.saaj.soap.impl.NodeListImpl;
 import com.sun.xml.internal.messaging.saaj.soap.impl.SOAPCommentImpl;
 import com.sun.xml.internal.messaging.saaj.soap.impl.SOAPTextImpl;
 import com.sun.xml.internal.messaging.saaj.soap.name.NameImpl;
@@ -39,6 +41,7 @@
 import com.sun.xml.internal.messaging.saaj.util.SAAJUtil;
 import org.w3c.dom.Attr;
 import org.w3c.dom.CDATASection;
+import org.w3c.dom.CharacterData;
 import org.w3c.dom.Comment;
 import org.w3c.dom.DOMConfiguration;
 import org.w3c.dom.DOMException;
@@ -52,6 +55,7 @@
 import org.w3c.dom.Node;
 import org.w3c.dom.NodeList;
 import org.w3c.dom.ProcessingInstruction;
+import org.w3c.dom.Text;
 import org.w3c.dom.UserDataHandler;
 
 import javax.xml.parsers.DocumentBuilder;
@@ -59,13 +63,14 @@
 import javax.xml.parsers.ParserConfigurationException;
 import javax.xml.soap.SOAPElement;
 import javax.xml.soap.SOAPException;
+import java.lang.reflect.Constructor;
 import java.text.MessageFormat;
-import java.util.HashMap;
-import java.util.Map;
 import java.util.logging.Logger;
 
 public class SOAPDocumentImpl implements SOAPDocument, javax.xml.soap.Node, Document {
 
+    public static final String SAAJ_NODE = "javax.xml.soap.Node";
+
     private static final String XMLNS = "xmlns".intern();
     protected static final Logger log =
         Logger.getLogger(LogDomainConstants.SOAP_DOMAIN,
@@ -75,8 +80,6 @@
 
     private Document document;
 
-    private Map<Node, javax.xml.soap.Node> domToSoap = new HashMap<>();
-
     public SOAPDocumentImpl(SOAPPartImpl enclosingDocument) {
         document = createDocument();
         this.enclosingSOAPPart = enclosingDocument;
@@ -105,6 +108,7 @@
     //        super(doctype, grammarAccess);
     //    }
 
+    @Override
     public SOAPPartImpl getSOAPPart() {
         if (enclosingSOAPPart == null) {
             log.severe("SAAJ0541.soap.fragment.not.bound.to.part");
@@ -113,19 +117,23 @@
         return enclosingSOAPPart;
     }
 
+    @Override
     public SOAPDocumentImpl getDocument() {
         return this;
     }
 
+    @Override
     public DocumentType getDoctype() {
         // SOAP means no DTD, No DTD means no doctype (SOAP 1.2 only?)
         return null;
     }
 
+    @Override
     public DOMImplementation getImplementation() {
         return document.getImplementation();
     }
 
+    @Override
     public Element getDocumentElement() {
         // This had better be an Envelope!
         getSOAPPart().doGetDocumentElement();
@@ -136,6 +144,7 @@
         return document.getDocumentElement();
     }
 
+    @Override
     public Element createElement(String tagName) throws DOMException {
         return ElementFactory.createElement(
             this,
@@ -144,22 +153,27 @@
             null);
     }
 
+    @Override
     public DocumentFragment createDocumentFragment() {
-        return document.createDocumentFragment();
+        return new SOAPDocumentFragment(this);
     }
 
+    @Override
     public org.w3c.dom.Text createTextNode(String data) {
         return new SOAPTextImpl(this, data);
     }
 
+    @Override
     public Comment createComment(String data) {
         return new SOAPCommentImpl(this, data);
     }
 
+    @Override
     public CDATASection createCDATASection(String data) throws DOMException {
         return new CDATAImpl(this, data);
     }
 
+    @Override
     public ProcessingInstruction createProcessingInstruction(
         String target,
         String data)
@@ -168,6 +182,7 @@
         throw new UnsupportedOperationException("Processing Instructions are not allowed in SOAP documents");
     }
 
+    @Override
     public Attr createAttribute(String name) throws DOMException {
         boolean isQualifiedName = (name.indexOf(":") > 0);
         if (isQualifiedName) {
@@ -184,24 +199,70 @@
         return document.createAttribute(name);
     }
 
+    @Override
     public EntityReference createEntityReference(String name)
         throws DOMException {
             log.severe("SAAJ0543.soap.entity.refs.not.allowed.in.docs");
             throw new UnsupportedOperationException("Entity References are not allowed in SOAP documents");
     }
 
+    @Override
     public NodeList getElementsByTagName(String tagname) {
-        return document.getElementsByTagName(tagname);
+        return new NodeListImpl(this, document.getElementsByTagName(tagname));
     }
 
+    @Override
     public org.w3c.dom.Node importNode(Node importedNode, boolean deep)
         throws DOMException {
-        final Node node = document.importNode(getDomNode(importedNode), deep);
-        return node instanceof Element ?
-            ElementFactory.createElement(this, (Element) node)
-                : node;
+        Node domNode = getDomNode(importedNode);
+        final Node newNode = document.importNode(domNode, deep);
+
+        if (importedNode instanceof javax.xml.soap.Node) {
+            Node newSoapNode = createSoapNode(importedNode.getClass(), newNode);
+            newNode.setUserData(SAAJ_NODE, newSoapNode, null);
+            if (deep && importedNode.hasChildNodes()) {
+                NodeList childNodes = importedNode.getChildNodes();
+                for (int i = 0; i < childNodes.getLength(); i++) {
+                    registerChildNodes(childNodes.item(i), deep);
+                }
+            }
+            return newSoapNode;
+        }
+
+        registerChildNodes(newNode, deep);
+        return findIfPresent(newNode);
     }
 
+    //If the parentNode is not registered to domToSoap, create soap wapper for parentNode and register it to domToSoap
+    //If deep = true, also register all children of parentNode to domToSoap map.
+    public void registerChildNodes(Node parentNode, boolean deep) {
+        if (parentNode.getUserData(SAAJ_NODE) == null) {
+            if (parentNode instanceof Element) {
+                ElementFactory.createElement(this, (Element) parentNode);
+            } else if (parentNode instanceof CharacterData) {
+                switch (parentNode.getNodeType()) {
+                    case CDATA_SECTION_NODE:
+                        new CDATAImpl(this, (CharacterData) parentNode);
+                        break;
+                    case COMMENT_NODE:
+                        new SOAPCommentImpl(this, (CharacterData) parentNode);
+                        break;
+                    case TEXT_NODE:
+                        new SOAPTextImpl(this, (CharacterData) parentNode);
+                        break;
+                }
+            }
+        }
+        if (deep) {
+            NodeList nodeList = parentNode.getChildNodes();
+            for (int i = 0; i < nodeList.getLength(); i++) {
+                Node nextChild = nodeList.item(i);
+                registerChildNodes(nextChild, true);
+            }
+        }
+    }
+
+    @Override
     public Element createElementNS(String namespaceURI, String qualifiedName)
         throws DOMException {
         return ElementFactory.createElement(
@@ -211,19 +272,22 @@
             namespaceURI);
     }
 
+    @Override
     public Attr createAttributeNS(String namespaceURI, String qualifiedName)
         throws DOMException {
         return document.createAttributeNS(namespaceURI, qualifiedName);
     }
 
+    @Override
     public NodeList getElementsByTagNameNS(
         String namespaceURI,
         String localName) {
-        return document.getElementsByTagNameNS(namespaceURI, localName);
+        return new NodeListImpl(this, document.getElementsByTagNameNS(namespaceURI, localName));
     }
 
+    @Override
     public Element getElementById(String elementId) {
-        return document.getElementById(elementId);
+        return (Element) findIfPresent(document.getElementById(elementId));
     }
 
     @Override
@@ -293,7 +357,7 @@
 
     @Override
     public Node renameNode(Node n, String namespaceURI, String qualifiedName) throws DOMException {
-        return document.renameNode(n, namespaceURI, qualifiedName);
+        return findIfPresent(document.renameNode(n, namespaceURI, qualifiedName));
     }
 
     @Override
@@ -318,37 +382,37 @@
 
     @Override
     public Node getParentNode() {
-        return document.getParentNode();
+        return findIfPresent(document.getParentNode());
     }
 
     @Override
     public NodeList getChildNodes() {
-        return document.getChildNodes();
+        return new NodeListImpl(this, document.getChildNodes());
     }
 
     @Override
     public Node getFirstChild() {
-        return document.getFirstChild();
+        return findIfPresent(document.getFirstChild());
     }
 
     @Override
     public Node getLastChild() {
-        return document.getLastChild();
+        return findIfPresent(document.getLastChild());
     }
 
     @Override
     public Node getPreviousSibling() {
-        return document.getPreviousSibling();
+        return findIfPresent(document.getPreviousSibling());
     }
 
     @Override
     public Node getNextSibling() {
-        return document.getNextSibling();
+        return findIfPresent(document.getNextSibling());
     }
 
     @Override
     public NamedNodeMap getAttributes() {
-        return document.getAttributes();
+        return new NamedNodeMapImpl(document.getAttributes(), this);
     }
 
     @Override
@@ -383,7 +447,9 @@
 
     @Override
     public Node cloneNode(boolean deep) {
-        return document.cloneNode(deep);
+        Node node = document.cloneNode(deep);
+        registerChildNodes(node, deep);
+        return findIfPresent(node);
     }
 
     @Override
@@ -428,7 +494,7 @@
 
     @Override
     public short compareDocumentPosition(Node other) throws DOMException {
-        return document.compareDocumentPosition(other);
+        return document.compareDocumentPosition(getDomNode(other));
     }
 
     @Override
@@ -443,7 +509,7 @@
 
     @Override
     public boolean isSameNode(Node other) {
-        return document.isSameNode(other);
+        return document.isSameNode(getDomNode(other));
     }
 
     @Override
@@ -463,7 +529,7 @@
 
     @Override
     public boolean isEqualNode(Node arg) {
-        return document.isEqualNode(arg);
+        return document.isEqualNode(getDomNode(arg));
     }
 
     @Override
@@ -496,11 +562,11 @@
      */
     public void register(javax.xml.soap.Node node) {
         final Node domElement = getDomNode(node);
-        if (domToSoap.containsKey(domElement)) {
+        if (domElement.getUserData(SAAJ_NODE) != null) {
             throw new IllegalStateException("Element " + domElement.getNodeName()
                     + " is already registered");
         }
-        domToSoap.put(domElement, node);
+        domElement.setUserData(SAAJ_NODE, node, null);
     }
 
     /**
@@ -522,7 +588,7 @@
         if (node instanceof javax.xml.soap.Node) {
             return (javax.xml.soap.Node) node;
         }
-        final javax.xml.soap.Node found = domToSoap.get(node);
+        final javax.xml.soap.Node found = (javax.xml.soap.Node) node.getUserData(SAAJ_NODE);
         if (found == null && required) {
             throw new IllegalArgumentException(MessageFormat.format("Cannot find SOAP wrapper for element {0}", node));
         }
@@ -562,6 +628,24 @@
         return node;
     }
 
+
+    private Node createSoapNode(Class nodeType, Node node) {
+        if (SOAPTextImpl.class.isAssignableFrom(nodeType)) {
+            return new SOAPTextImpl(this, (Text) node);
+        } else if (SOAPCommentImpl.class.isAssignableFrom(nodeType)) {
+            return new SOAPCommentImpl(this, (Comment) node);
+        } else if (CDATAImpl.class.isAssignableFrom(nodeType)) {
+            return new CDATAImpl(this, (CDATASection) node);
+        }
+        try {
+            Constructor<Node> constructor = nodeType.getConstructor(SOAPDocumentImpl.class, Element.class);
+            return constructor.newInstance(this, node);
+        } catch (Exception e) {
+            throw new IllegalStateException(e);
+        }
+    }
+
+
     public Document getDomElement() {
         return document;
     }
diff --git a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/SOAPFactoryImpl.java b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/SOAPFactoryImpl.java
index fc97fa8..ac5d9ee 100644
--- a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/SOAPFactoryImpl.java
+++ b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/SOAPFactoryImpl.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -49,6 +49,7 @@
 
     protected abstract SOAPDocumentImpl createDocument();
 
+    @Override
     public SOAPElement createElement(String tagName) throws SOAPException {
          if (tagName == null) {
              log.log(
@@ -60,6 +61,7 @@
                         NameImpl.createFromTagName(tagName));
     }
 
+    @Override
     public SOAPElement createElement(Name name) throws SOAPException {
         // @since SAAJ 1.3
         // If the Name was null it would cause a NullPointerException in earlier release
@@ -71,6 +73,7 @@
         return ElementFactory.createElement(createDocument(), name);
     }
 
+    @Override
     public SOAPElement createElement(QName qname) throws SOAPException {
         if (qname == null) {
             log.log(Level.SEVERE,"SAAJ0567.soap.null.input",
@@ -80,6 +83,7 @@
         return ElementFactory.createElement(createDocument(),qname);
     }
 
+    @Override
     public SOAPElement createElement(
         String localName,
         String prefix,
@@ -96,6 +100,7 @@
         return ElementFactory.createElement(createDocument(), localName, prefix, uri);
     }
 
+    @Override
     public Name createName(String localName, String prefix, String uri)
         throws SOAPException {
         // @since SAAJ 1.3
@@ -110,6 +115,7 @@
         return NameImpl.create(localName, prefix, uri);
     }
 
+    @Override
     public Name createName(String localName) throws SOAPException {
         // @since SAAJ 1.3
         // if localName==null, earlier impl would create Name with localName=null
@@ -125,6 +131,7 @@
 
     // Note: the child elements might still be org.w3c.dom.Element's, but the
     // getChildElements will do the conversion to SOAPElement when called.
+    @Override
     public SOAPElement createElement(Element domElement) throws SOAPException {
         if (domElement == null) {
             return null;
@@ -163,14 +170,17 @@
         return copy;
     }
 
+    @Override
     public Detail createDetail() throws SOAPException {
         throw new UnsupportedOperationException();
     }
 
+    @Override
     public  SOAPFault createFault(String reasonText, QName faultCode) throws SOAPException {
         throw new UnsupportedOperationException();
     }
 
+    @Override
     public SOAPFault createFault() throws SOAPException {
         throw new UnsupportedOperationException();
     }
diff --git a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/SOAPIOException.java b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/SOAPIOException.java
index 772fcd5..90782cc 100644
--- a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/SOAPIOException.java
+++ b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/SOAPIOException.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -64,6 +64,7 @@
         soapException.fillInStackTrace();
     }
 
+    @Override
     public Throwable fillInStackTrace() {
         if (soapException != null) {
             soapException.fillInStackTrace();
@@ -71,26 +72,32 @@
         return this;
     }
 
+    @Override
     public String getLocalizedMessage() {
         return soapException.getLocalizedMessage();
     }
 
+    @Override
     public String getMessage() {
         return soapException.getMessage();
     }
 
+    @Override
     public void printStackTrace() {
         soapException.printStackTrace();
     }
 
+    @Override
     public void printStackTrace(PrintStream s) {
         soapException.printStackTrace(s);
     }
 
+    @Override
     public void printStackTrace(PrintWriter s) {
         soapException.printStackTrace(s);
     }
 
+    @Override
     public String toString() {
         return soapException.toString();
     }
diff --git a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/SOAPPartImpl.java b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/SOAPPartImpl.java
index 49abddb..1410930 100644
--- a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/SOAPPartImpl.java
+++ b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/SOAPPartImpl.java
@@ -75,6 +75,7 @@
 import java.util.Iterator;
 import java.util.logging.Level;
 import java.util.logging.Logger;
+import javax.xml.soap.MimeHeader;
 
 /**
  * SOAPPartImpl is the first attachment. This contains the XML/SOAP document.
@@ -136,6 +137,7 @@
         return (message != null) ? message.isFastInfoset() : false;
     }
 
+    @Override
     public SOAPEnvelope getEnvelope() throws SOAPException {
 
         // If there is no SOAP envelope already created, then create
@@ -185,38 +187,47 @@
         }
     }
 
+    @Override
     public void removeAllMimeHeaders() {
         headers.removeAllHeaders();
     }
 
+    @Override
     public void removeMimeHeader(String header) {
         headers.removeHeader(header);
     }
 
+    @Override
     public String[] getMimeHeader(String name) {
         return headers.getHeader(name);
     }
 
+    @Override
     public void setMimeHeader(String name, String value) {
         headers.setHeader(name, value);
     }
 
+    @Override
     public void addMimeHeader(String name, String value) {
         headers.addHeader(name, value);
     }
 
-    public Iterator getAllMimeHeaders() {
+    @Override
+    public Iterator<MimeHeader> getAllMimeHeaders() {
         return headers.getAllHeaders();
     }
 
-    public Iterator getMatchingMimeHeaders(String[] names) {
+    @Override
+    public Iterator<MimeHeader> getMatchingMimeHeaders(String[] names) {
         return headers.getMatchingHeaders(names);
     }
 
-    public Iterator getNonMatchingMimeHeaders(String[] names) {
+    @Override
+    public Iterator<MimeHeader> getNonMatchingMimeHeaders(String[] names) {
         return headers.getNonMatchingHeaders(names);
     }
 
+    @Override
     public Source getContent() throws SOAPException {
         if (source != null) {
             InputStream bis = null;
@@ -248,6 +259,7 @@
         return ((Envelope) getEnvelope()).getContent();
     }
 
+    @Override
     public void setContent(Source source) throws SOAPException {
         try {
             if (source instanceof StreamSource) {
@@ -376,18 +388,22 @@
 
     DataHandler getDataHandler() {
         DataSource ds = new DataSource() {
+            @Override
             public OutputStream getOutputStream() throws IOException {
                 throw new IOException("Illegal Operation");
             }
 
+            @Override
             public String getContentType() {
                 return getContentTypeString();
             }
 
+            @Override
             public String getName() {
                 return getContentId();
             }
 
+            @Override
             public InputStream getInputStream() throws IOException {
                 return getContentAsStream();
             }
@@ -395,15 +411,18 @@
         return new DataHandler(ds);
     }
 
+    @Override
     public SOAPDocumentImpl getDocument() {
         handleNewSource();
         return document;
     }
 
+    @Override
     public SOAPPartImpl getSOAPPart() {
         return this;
     }
 
+    @Override
     public DocumentType getDoctype() {
         return document.getDoctype();
     }
@@ -412,10 +431,12 @@
     // same way whether they are called from here or directly from the document.
     // If the document needs any help from this SOAPPart then
     // Make it use a call-back as in doGetDocumentElement() below
+    @Override
     public DOMImplementation getImplementation() {
         return document.getImplementation();
     }
 
+    @Override
     public Element getDocumentElement() {
         // If there is no SOAP envelope already created, then create
         // one from a source if one exists. If there is a newer source
@@ -435,26 +456,32 @@
         }
     }
 
+    @Override
     public Element createElement(String tagName) throws DOMException {
         return document.createElement(tagName);
     }
 
+    @Override
     public DocumentFragment createDocumentFragment() {
         return document.createDocumentFragment();
     }
 
+    @Override
     public org.w3c.dom.Text createTextNode(String data) {
         return document.createTextNode(data);
     }
 
+    @Override
     public Comment createComment(String data) {
         return document.createComment(data);
     }
 
+    @Override
     public CDATASection createCDATASection(String data) throws DOMException {
         return document.createCDATASection(data);
     }
 
+    @Override
     public ProcessingInstruction createProcessingInstruction(
     String target,
     String data)
@@ -462,20 +489,24 @@
         return document.createProcessingInstruction(target, data);
     }
 
+    @Override
     public Attr createAttribute(String name) throws DOMException {
         return document.createAttribute(name);
     }
 
+    @Override
     public EntityReference createEntityReference(String name)
     throws DOMException {
         return document.createEntityReference(name);
     }
 
+    @Override
     public NodeList getElementsByTagName(String tagname) {
         handleNewSource();
         return document.getElementsByTagName(tagname);
     }
 
+    @Override
     public org.w3c.dom.Node importNode(
         org.w3c.dom.Node importedNode,
         boolean deep)
@@ -484,16 +515,19 @@
         return document.importNode(importedNode, deep);
     }
 
+    @Override
     public Element createElementNS(String namespaceURI, String qualifiedName)
     throws DOMException {
         return document.createElementNS(namespaceURI, qualifiedName);
     }
 
+    @Override
     public Attr createAttributeNS(String namespaceURI, String qualifiedName)
     throws DOMException {
         return document.createAttributeNS(namespaceURI, qualifiedName);
     }
 
+    @Override
     public NodeList getElementsByTagNameNS(
         String namespaceURI,
         String localName) {
@@ -501,16 +535,19 @@
         return document.getElementsByTagNameNS(namespaceURI, localName);
     }
 
+    @Override
     public Element getElementById(String elementId) {
         handleNewSource();
         return document.getElementById(elementId);
     }
+    @Override
     public org.w3c.dom.Node appendChild(org.w3c.dom.Node newChild)
         throws DOMException {
         handleNewSource();
         return document.appendChild(newChild);
     }
 
+    @Override
     public org.w3c.dom.Node cloneNode(boolean deep) {
         handleNewSource();
         return document.cloneNode(deep);
@@ -525,75 +562,92 @@
         return newSoapPart;
     }
 
+    @Override
     public NamedNodeMap getAttributes() {
         return document.getDomDocument().getAttributes();
     }
 
+    @Override
     public NodeList getChildNodes() {
         handleNewSource();
         return document.getChildNodes();
     }
 
+    @Override
     public org.w3c.dom.Node getFirstChild() {
         handleNewSource();
         return document.getFirstChild();
     }
 
+    @Override
     public org.w3c.dom.Node getLastChild() {
         handleNewSource();
         return document.getLastChild();
     }
 
+    @Override
     public String getLocalName() {
         return document.getDomDocument().getLocalName();
     }
 
+    @Override
     public String getNamespaceURI() {
         return document.getDomDocument().getNamespaceURI();
     }
 
+    @Override
     public org.w3c.dom.Node getNextSibling() {
         handleNewSource();
         return document.getNextSibling();
     }
 
+    @Override
     public String getNodeName() {
         return document.getDomDocument().getNodeName();
     }
 
+    @Override
     public short getNodeType() {
         return document.getDomDocument().getNodeType();
     }
 
+    @Override
     public String getNodeValue() throws DOMException {
         return document.getNodeValue();
     }
 
+    @Override
     public Document getOwnerDocument() {
         return document.getDomDocument().getOwnerDocument();
     }
 
+    @Override
     public org.w3c.dom.Node getParentNode() {
         return document.getDomDocument().getParentNode();
     }
 
+    @Override
     public String getPrefix() {
         return document.getDomDocument().getPrefix();
     }
 
+    @Override
     public org.w3c.dom.Node getPreviousSibling() {
         return document.getDomDocument().getPreviousSibling();
     }
 
+    @Override
     public boolean hasAttributes() {
         return document.getDomDocument().hasAttributes();
     }
 
+    @Override
     public boolean hasChildNodes() {
         handleNewSource();
         return document.hasChildNodes();
     }
 
+    @Override
     public org.w3c.dom.Node insertBefore(
         org.w3c.dom.Node arg0,
         org.w3c.dom.Node arg1)
@@ -602,21 +656,25 @@
         return document.insertBefore(arg0, arg1);
     }
 
+    @Override
     public boolean isSupported(String arg0, String arg1) {
         return document.getDomDocument().isSupported(arg0, arg1);
     }
 
+    @Override
     public void normalize() {
         handleNewSource();
         document.normalize();
     }
 
+    @Override
     public org.w3c.dom.Node removeChild(org.w3c.dom.Node arg0)
         throws DOMException {
         handleNewSource();
         return document.removeChild(arg0);
     }
 
+    @Override
     public org.w3c.dom.Node replaceChild(
         org.w3c.dom.Node arg0,
         org.w3c.dom.Node arg1)
@@ -625,10 +683,12 @@
         return document.replaceChild(arg0, arg1);
     }
 
+    @Override
     public void setNodeValue(String arg0) throws DOMException {
         document.setNodeValue(arg0);
     }
 
+    @Override
     public void setPrefix(String arg0) throws DOMException {
         document.setPrefix(arg0);
     }
@@ -703,141 +763,173 @@
         this.sourceCharsetEncoding = charset;
     }
 
+    @Override
     public org.w3c.dom.Node renameNode(org.w3c.dom.Node n, String namespaceURI, String qualifiedName)
         throws DOMException {
         handleNewSource();
         return document.renameNode(n, namespaceURI, qualifiedName);
     }
 
+    @Override
     public void normalizeDocument() {
         document.normalizeDocument();
     }
 
+    @Override
     public DOMConfiguration getDomConfig() {
         return document.getDomDocument().getDomConfig();
     }
 
+    @Override
     public org.w3c.dom.Node adoptNode(org.w3c.dom.Node source) throws DOMException {
         handleNewSource();
         return document.adoptNode(source);
     }
 
+    @Override
     public void setDocumentURI(String documentURI) {
         document.setDocumentURI(documentURI);
     }
 
+    @Override
     public String getDocumentURI() {
         return document.getDomDocument().getDocumentURI();
     }
 
+    @Override
     public void  setStrictErrorChecking(boolean strictErrorChecking) {
         document.setStrictErrorChecking(strictErrorChecking);
     }
 
+    @Override
     public String getInputEncoding() {
         return document.getDomDocument().getInputEncoding();
     }
 
+    @Override
     public String getXmlEncoding() {
         return document.getDomDocument().getXmlEncoding();
     }
 
+    @Override
     public boolean getXmlStandalone() {
         return document.getDomDocument().getXmlStandalone();
     }
 
+    @Override
     public void setXmlStandalone(boolean xmlStandalone) throws DOMException {
         document.setXmlStandalone(xmlStandalone);
     }
 
+    @Override
     public String getXmlVersion() {
         return document.getDomDocument().getXmlVersion();
     }
 
+    @Override
     public void setXmlVersion(String xmlVersion) throws DOMException {
         document.setXmlVersion(xmlVersion);
     }
 
+    @Override
     public boolean  getStrictErrorChecking() {
         return document.getDomDocument().getStrictErrorChecking();
     }
 
     // DOM L3 methods from org.w3c.dom.Node
+    @Override
     public String getBaseURI() {
         return document.getDomDocument().getBaseURI();
     }
 
+    @Override
     public short compareDocumentPosition(org.w3c.dom.Node other)
                               throws DOMException {
         return document.compareDocumentPosition(other);
     }
 
+    @Override
     public String getTextContent()
                       throws DOMException {
         return document.getTextContent();
     }
 
+    @Override
     public void setTextContent(String textContent) throws DOMException {
          document.setTextContent(textContent);
     }
 
+    @Override
     public boolean isSameNode(org.w3c.dom.Node other) {
         return document.isSameNode(other);
     }
 
+    @Override
     public String lookupPrefix(String namespaceURI) {
         return document.getDomDocument().lookupPrefix(namespaceURI);
     }
 
+    @Override
     public boolean isDefaultNamespace(String namespaceURI) {
         return document.isDefaultNamespace(namespaceURI);
     }
 
+    @Override
     public String lookupNamespaceURI(String prefix) {
         return document.lookupNamespaceURI(prefix);
     }
 
+    @Override
     public boolean isEqualNode(org.w3c.dom.Node arg) {
         return document.getDomDocument().isEqualNode(arg);
     }
 
+    @Override
     public Object getFeature(String feature,
                   String version) {
         return  document.getFeature(feature,version);
     }
 
+    @Override
     public Object setUserData(String key,
                    Object data,
                   UserDataHandler handler) {
         return document.setUserData(key, data, handler);
     }
 
+    @Override
     public Object getUserData(String key) {
         return document.getDomDocument().getUserData(key);
     }
 
+    @Override
     public void recycleNode() {
         // Nothing seems to be required to be done here
     }
 
+    @Override
     public String getValue() {
         return null;
     }
 
+    @Override
     public void setValue(String value) {
         log.severe("SAAJ0571.soappart.setValue.not.defined");
         throw new IllegalStateException("Setting value of a soap part is not defined");
     }
 
+    @Override
     public void setParentElement(SOAPElement parent) throws SOAPException {
         log.severe("SAAJ0570.soappart.parent.element.not.defined");
         throw new SOAPExceptionImpl("The parent element of a soap part is not defined");
     }
 
+    @Override
     public SOAPElement getParentElement() {
         return null;
     }
 
+    @Override
     public void detachNode() {
         // Nothing seems to be required to be done here
     }
diff --git a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/StaxLazySourceBridge.java b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/StaxLazySourceBridge.java
index 751a014..cd78cdd 100644
--- a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/StaxLazySourceBridge.java
+++ b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/StaxLazySourceBridge.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -42,38 +42,39 @@
  * @author shih-chang.chen@oracle.com
  */
 public class StaxLazySourceBridge extends StaxBridge {
-        private LazyEnvelopeSource lazySource;
+    private LazyEnvelopeSource lazySource;
 
-        public StaxLazySourceBridge(LazyEnvelopeSource src, SOAPPartImpl soapPart) throws SOAPException {
-                super(soapPart);
-                lazySource = src;
-                final String soapEnvNS = soapPart.getSOAPNamespace();
-                try {
-                        breakpoint = new XMLStreamReaderToXMLStreamWriter.Breakpoint(src.readToBodyStarTag(), saajWriter) {
-                                        public boolean proceedAfterStartElement()  {
-                                                if ("Body".equals(reader.getLocalName()) && soapEnvNS.equals(reader.getNamespaceURI()) ){
-                                                        return false;
-                                                } else
-                                                        return true;
-                                        }
-                                };
-                } catch (XMLStreamException e) {
-                        throw new SOAPException(e);
+    public StaxLazySourceBridge(LazyEnvelopeSource src, SOAPPartImpl soapPart) throws SOAPException {
+        super(soapPart);
+        lazySource = src;
+        final String soapEnvNS = soapPart.getSOAPNamespace();
+        try {
+            breakpoint = new XMLStreamReaderToXMLStreamWriter.Breakpoint(src.readToBodyStarTag(), saajWriter) {
+                @Override
+                public boolean proceedAfterStartElement()  {
+                    if ("Body".equals(reader.getLocalName()) && soapEnvNS.equals(reader.getNamespaceURI()) ){
+                        return false;
+                    } else
+                        return true;
                 }
+            };
+        } catch (XMLStreamException e) {
+            throw new SOAPException(e);
         }
+    }
 
-        @Override
+    @Override
     public XMLStreamReader getPayloadReader() {
         return lazySource.readPayload();
 //              throw new UnsupportedOperationException();
     }
 
-        @Override
+    @Override
     public QName getPayloadQName() {
         return lazySource.getPayloadQName();
     }
 
-        @Override
+    @Override
     public String getPayloadAttributeValue(String attName) {
         if (lazySource.isPayloadStreamReader()) {
             XMLStreamReader reader = lazySource.readPayload();
@@ -84,7 +85,7 @@
         return null;
     }
 
-        @Override
+    @Override
     public String getPayloadAttributeValue(QName attName) {
         if (lazySource.isPayloadStreamReader()) {
             XMLStreamReader reader = lazySource.readPayload();
@@ -95,12 +96,13 @@
         return null;
     }
 
-        public void bridgePayload() throws XMLStreamException {
-                //Assuming out is at Body
-                writePayloadTo(saajWriter);
-        }
+        @Override
+    public void bridgePayload() throws XMLStreamException {
+        //Assuming out is at Body
+        writePayloadTo(saajWriter);
+    }
 
-        public void writePayloadTo(XMLStreamWriter writer) throws XMLStreamException {
+    public void writePayloadTo(XMLStreamWriter writer) throws XMLStreamException {
         lazySource.writePayloadTo(writer);
     }
 }
diff --git a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/StaxReaderBridge.java b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/StaxReaderBridge.java
index 753a263..551de80 100644
--- a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/StaxReaderBridge.java
+++ b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/StaxReaderBridge.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -38,41 +38,46 @@
  * @author shih-chang.chen@oracle.com
  */
 public class StaxReaderBridge extends StaxBridge {
-        private XMLStreamReader in;
+    private XMLStreamReader in;
 
-        public StaxReaderBridge(XMLStreamReader reader, SOAPPartImpl soapPart) throws SOAPException {
-                super(soapPart);
-                in = reader;
-                final String soapEnvNS = soapPart.getSOAPNamespace();
-                breakpoint =  new XMLStreamReaderToXMLStreamWriter.Breakpoint(reader, saajWriter) {
-                        boolean seenBody = false;
-                        boolean stopedAtBody = false;
-                    public boolean proceedBeforeStartElement()  {
-                        if (stopedAtBody) return true;
-                        if (seenBody) {
-                                stopedAtBody = true;
-                                return false;
-                        }
-                            if ("Body".equals(reader.getLocalName()) && soapEnvNS.equals(reader.getNamespaceURI()) ){
-                                seenBody = true;
-                            }
-                            return true;
+    public StaxReaderBridge(XMLStreamReader reader, SOAPPartImpl soapPart) throws SOAPException {
+        super(soapPart);
+        in = reader;
+        final String soapEnvNS = soapPart.getSOAPNamespace();
+        breakpoint =  new XMLStreamReaderToXMLStreamWriter.Breakpoint(reader, saajWriter) {
+                boolean seenBody = false;
+                boolean stopedAtBody = false;
+                @Override
+                public boolean proceedBeforeStartElement()  {
+                    if (stopedAtBody) return true;
+                    if (seenBody) {
+                        stopedAtBody = true;
+                        return false;
                     }
-                };
-        }
+                    if ("Body".equals(reader.getLocalName()) && soapEnvNS.equals(reader.getNamespaceURI()) ){
+                        seenBody = true;
+                    }
+                    return true;
+                }
+            };
+    }
 
+    @Override
     public XMLStreamReader getPayloadReader() {
         return in;
     }
 
+    @Override
     public QName getPayloadQName() {
         return (in.getEventType() == XMLStreamConstants.START_ELEMENT) ? in.getName() : null;
     }
 
+    @Override
     public String getPayloadAttributeValue(String attName) {
         return (in.getEventType() == XMLStreamConstants.START_ELEMENT) ? in.getAttributeValue(null, attName) : null;
     }
 
+    @Override
     public String getPayloadAttributeValue(QName attName) {
         return (in.getEventType() == XMLStreamConstants.START_ELEMENT) ? in.getAttributeValue(attName.getNamespaceURI(), attName.getLocalPart()) : null;
     }
diff --git a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/dynamic/SOAPFactoryDynamicImpl.java b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/dynamic/SOAPFactoryDynamicImpl.java
index 5813623..d7a45dc 100644
--- a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/dynamic/SOAPFactoryDynamicImpl.java
+++ b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/dynamic/SOAPFactoryDynamicImpl.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -36,10 +36,12 @@
 import com.sun.xml.internal.messaging.saaj.soap.SOAPFactoryImpl;
 
 public class SOAPFactoryDynamicImpl extends SOAPFactoryImpl {
+    @Override
     protected SOAPDocumentImpl createDocument() {
         return null;
     }
 
+    @Override
     public Detail createDetail() throws SOAPException {
         throw new UnsupportedOperationException(
                 "createDetail() not supported for Dynamic Protocol");
diff --git a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/dynamic/SOAPMessageFactoryDynamicImpl.java b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/dynamic/SOAPMessageFactoryDynamicImpl.java
index 2ea59f9..64b2678 100644
--- a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/dynamic/SOAPMessageFactoryDynamicImpl.java
+++ b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/dynamic/SOAPMessageFactoryDynamicImpl.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -35,6 +35,7 @@
 import com.sun.xml.internal.messaging.saaj.soap.MessageFactoryImpl;
 
 public class SOAPMessageFactoryDynamicImpl extends MessageFactoryImpl {
+    @Override
     public SOAPMessage createMessage() throws SOAPException {
         throw new UnsupportedOperationException(
                 "createMessage() not supported for Dynamic Protocol");
diff --git a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/impl/BodyElementImpl.java b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/impl/BodyElementImpl.java
index 30777a7..10a45b7 100644
--- a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/impl/BodyElementImpl.java
+++ b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/impl/BodyElementImpl.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -29,6 +29,7 @@
 import javax.xml.soap.*;
 
 import com.sun.xml.internal.messaging.saaj.soap.SOAPDocumentImpl;
+import org.w3c.dom.Element;
 
 /**
  * All elements of the SOAP-ENV:BODY.
@@ -47,6 +48,11 @@
         super(ownerDoc, qname);
     }
 
+    public BodyElementImpl(SOAPDocumentImpl ownerDoc, Element domElement) {
+        super(ownerDoc, domElement);
+    }
+
+    @Override
     public void setParentElement(SOAPElement element) throws SOAPException {
         if (! (element instanceof SOAPBody)) {
             log.severe("SAAJ0101.impl.parent.of.body.elem.mustbe.body");
diff --git a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/impl/BodyImpl.java b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/impl/BodyImpl.java
index 4993bf7..d5885ea 100644
--- a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/impl/BodyImpl.java
+++ b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/impl/BodyImpl.java
@@ -30,21 +30,30 @@
 import java.util.logging.Level;
 
 import javax.xml.namespace.QName;
-import javax.xml.soap.*;
 import javax.xml.stream.XMLStreamException;
 import javax.xml.stream.XMLStreamReader;
 import javax.xml.parsers.DocumentBuilder;
 import javax.xml.parsers.DocumentBuilderFactory;
 
 import com.sun.xml.internal.messaging.saaj.util.SAAJUtil;
-import org.w3c.dom.*;
-import org.w3c.dom.Node;
 
 import com.sun.xml.internal.messaging.saaj.SOAPExceptionImpl;
 import com.sun.xml.internal.messaging.saaj.soap.SOAPDocument;
 import com.sun.xml.internal.messaging.saaj.soap.SOAPDocumentImpl;
 import com.sun.xml.internal.messaging.saaj.soap.StaxBridge;
 import com.sun.xml.internal.messaging.saaj.soap.name.NameImpl;
+import javax.xml.soap.Name;
+import javax.xml.soap.SOAPBody;
+import javax.xml.soap.SOAPBodyElement;
+import javax.xml.soap.SOAPElement;
+import javax.xml.soap.SOAPEnvelope;
+import javax.xml.soap.SOAPException;
+import javax.xml.soap.SOAPFault;
+import org.w3c.dom.Document;
+import org.w3c.dom.DocumentFragment;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
 
 /**
  * The implementation of SOAP-ENV:BODY or the SOAPBody abstraction.
@@ -72,6 +81,7 @@
     protected abstract SOAPFault createFaultElement();
     protected abstract QName getDefaultFaultCode();
 
+    @Override
     public SOAPFault addFault() throws SOAPException {
         if (hasFault()) {
             log.severe("SAAJ0110.impl.fault.already.exists");
@@ -88,6 +98,7 @@
         return fault;
     }
 
+    @Override
     public SOAPFault addFault(
         Name faultCode,
         String faultString,
@@ -100,6 +111,7 @@
         return fault;
     }
 
+    @Override
    public SOAPFault addFault(
         QName faultCode,
         String faultString,
@@ -112,6 +124,7 @@
         return fault;
     }
 
+    @Override
     public SOAPFault addFault(Name faultCode, String faultString)
         throws SOAPException {
 
@@ -121,6 +134,7 @@
         return fault;
     }
 
+    @Override
     public SOAPFault addFault(QName faultCode, String faultString)
         throws SOAPException {
 
@@ -147,6 +161,7 @@
         return null;
     }
 
+    @Override
     public boolean hasFault() {
         QName payloadQName = getPayloadQName();
         return getFaultQName().equals(payloadQName);
@@ -156,6 +171,7 @@
         return new QName(getNamespaceURI(), "Fault");
     }
 
+    @Override
     public SOAPFault getFault() {
         if (hasFault()) {
             if (fault == null) {
@@ -167,6 +183,7 @@
         return null;
     }
 
+    @Override
     public SOAPBodyElement addBodyElement(Name name) throws SOAPException {
         SOAPBodyElement newBodyElement =
             (SOAPBodyElement) ElementFactory.createNamedElement(
@@ -181,6 +198,7 @@
         return newBodyElement;
     }
 
+    @Override
     public SOAPBodyElement addBodyElement(QName qname) throws SOAPException {
         SOAPBodyElement newBodyElement =
             (SOAPBodyElement) ElementFactory.createNamedElement(
@@ -195,6 +213,7 @@
         return newBodyElement;
     }
 
+    @Override
     public void setParentElement(SOAPElement element) throws SOAPException {
 
         if (!(element instanceof SOAPEnvelope)) {
@@ -204,10 +223,12 @@
         super.setParentElement(element);
     }
 
+    @Override
     protected SOAPElement addElement(Name name) throws SOAPException {
         return addBodyElement(name);
     }
 
+    @Override
     protected SOAPElement addElement(QName name) throws SOAPException {
         return addBodyElement(name);
     }
@@ -226,6 +247,7 @@
     //        return super.replaceChild(newElement, ref);
     //    }
 
+    @Override
     public SOAPBodyElement addDocument(Document document)
         throws SOAPException {
         /*
@@ -252,7 +274,7 @@
             org.w3c.dom.Node replacingNode = ownerDoc.importNode(docFrag, true);
             // Adding replacingNode at the last of the children list of body
             addNode(replacingNode);
-            Iterator<Node> i =
+            Iterator<javax.xml.soap.Node> i =
                 getChildElements(NameImpl.copyElementName(rootElement));
             // Return the child element with the required name which is at the
             // end of the list
@@ -263,6 +285,7 @@
         //*/
     }
 
+    @Override
     protected SOAPElement convertToSoapElement(Element element) {
         final Node soapNode = getSoapDocument().findIfPresent(element);
         if ((soapNode instanceof SOAPBodyElement) &&
@@ -278,6 +301,7 @@
         }
     }
 
+    @Override
     public SOAPElement setElementQName(QName newName) throws SOAPException {
         log.log(Level.SEVERE,
                 "SAAJ0146.impl.invalid.name.change.requested",
@@ -288,9 +312,10 @@
                                 + newName.getLocalPart());
     }
 
+    @Override
     public Document extractContentAsDocument() throws SOAPException {
 
-        Iterator<Node> eachChild = getChildElements();
+        Iterator<javax.xml.soap.Node> eachChild = getChildElements();
         javax.xml.soap.Node firstBodyElement = null;
 
         while (eachChild.hasNext() &&
diff --git a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/impl/CDATAImpl.java b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/impl/CDATAImpl.java
index b406caf..975d2cc 100644
--- a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/impl/CDATAImpl.java
+++ b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/impl/CDATAImpl.java
@@ -25,325 +25,61 @@
 
 package com.sun.xml.internal.messaging.saaj.soap.impl;
 
-import java.util.logging.Logger;
-
-import javax.xml.soap.SOAPElement;
-import javax.xml.soap.SOAPException;
-
 import com.sun.xml.internal.messaging.saaj.soap.SOAPDocumentImpl;
-import com.sun.xml.internal.messaging.saaj.util.LogDomainConstants;
-import com.sun.xml.internal.messaging.saaj.util.SAAJUtil;
 import org.w3c.dom.CDATASection;
+import org.w3c.dom.CharacterData;
 import org.w3c.dom.DOMException;
-import org.w3c.dom.Document;
-import org.w3c.dom.NamedNodeMap;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
 import org.w3c.dom.Text;
-import org.w3c.dom.UserDataHandler;
 
-public class CDATAImpl implements CDATASection, javax.xml.soap.Text {
-
-    protected static final Logger log =
-        Logger.getLogger(LogDomainConstants.SOAP_IMPL_DOMAIN,
-                         "com.sun.xml.internal.messaging.saaj.soap.impl.LocalStrings");
+public class CDATAImpl extends TextImpl<CDATASection> implements CDATASection {
 
     static final String cdataUC = "<![CDATA[";
     static final String cdataLC = "<![cdata[";
 
+    public CDATAImpl(SOAPDocumentImpl ownerDoc, String text) {
+        super(ownerDoc, text);
+    }
+
+    public CDATAImpl(SOAPDocumentImpl ownerDoc, CharacterData data) {
+        super(ownerDoc, data);
+    }
+
+    @Override
+    protected CDATASection createN(SOAPDocumentImpl ownerDoc, String text) {
+        CDATASection c = ownerDoc.getDomDocument().createCDATASection(text);
+//        ownerDoc.register(this);
+        return c;
+    }
+
+    @Override
+    protected CDATASection createN(SOAPDocumentImpl ownerDoc, CharacterData data) {
+        CDATASection c = (CDATASection) data;
+        return c;
+    }
+
     @Override
     public Text splitText(int offset) throws DOMException {
-        return cdataSection.splitText(offset);
+        return getDomElement().splitText(offset);
     }
 
     @Override
     public boolean isElementContentWhitespace() {
-        return cdataSection.isElementContentWhitespace();
+        return getDomElement().isElementContentWhitespace();
     }
 
     @Override
     public String getWholeText() {
-        return cdataSection.getWholeText();
+        return getDomElement().getWholeText();
     }
 
     @Override
     public Text replaceWholeText(String content) throws DOMException {
-        return cdataSection.replaceWholeText(content);
+        return getDomElement().replaceWholeText(content);
     }
 
     @Override
-    public String getData() throws DOMException {
-        return cdataSection.getData();
-    }
-
-    @Override
-    public void setData(String data) throws DOMException {
-        cdataSection.setData(data);
-    }
-
-    @Override
-    public int getLength() {
-        return cdataSection.getLength();
-    }
-
-    @Override
-    public String substringData(int offset, int count) throws DOMException {
-        return cdataSection.substringData(offset, count);
-    }
-
-    @Override
-    public void appendData(String arg) throws DOMException {
-        cdataSection.appendData(arg);
-    }
-
-    @Override
-    public void insertData(int offset, String arg) throws DOMException {
-        cdataSection.insertData(offset, arg);
-    }
-
-    @Override
-    public void deleteData(int offset, int count) throws DOMException {
-        cdataSection.deleteData(offset, count);
-    }
-
-    @Override
-    public void replaceData(int offset, int count, String arg) throws DOMException {
-        cdataSection.replaceData(offset, count, arg);
-    }
-
-    @Override
-    public String getNodeName() {
-        return cdataSection.getNodeName();
-    }
-
-    @Override
-    public String getNodeValue() throws DOMException {
-        return cdataSection.getNodeValue();
-    }
-
-    @Override
-    public void setNodeValue(String nodeValue) throws DOMException {
-        cdataSection.setNodeValue(nodeValue);
-    }
-
-    @Override
-    public short getNodeType() {
-        return cdataSection.getNodeType();
-    }
-
-    @Override
-    public Node getParentNode() {
-        return cdataSection.getParentNode();
-    }
-
-    @Override
-    public NodeList getChildNodes() {
-        return cdataSection.getChildNodes();
-    }
-
-    @Override
-    public Node getFirstChild() {
-        return cdataSection.getFirstChild();
-    }
-
-    @Override
-    public Node getLastChild() {
-        return cdataSection.getLastChild();
-    }
-
-    @Override
-    public Node getPreviousSibling() {
-        return cdataSection.getPreviousSibling();
-    }
-
-    @Override
-    public Node getNextSibling() {
-        return cdataSection.getNextSibling();
-    }
-
-    @Override
-    public NamedNodeMap getAttributes() {
-        return cdataSection.getAttributes();
-    }
-
-    @Override
-    public Document getOwnerDocument() {
-        return cdataSection.getOwnerDocument();
-    }
-
-    @Override
-    public Node insertBefore(Node newChild, Node refChild) throws DOMException {
-        return cdataSection.insertBefore(newChild, refChild);
-    }
-
-    @Override
-    public Node replaceChild(Node newChild, Node oldChild) throws DOMException {
-        return cdataSection.replaceChild(newChild, oldChild);
-    }
-
-    @Override
-    public Node removeChild(Node oldChild) throws DOMException {
-        return cdataSection.removeChild(oldChild);
-    }
-
-    @Override
-    public Node appendChild(Node newChild) throws DOMException {
-        return cdataSection.appendChild(newChild);
-    }
-
-    @Override
-    public boolean hasChildNodes() {
-        return cdataSection.hasChildNodes();
-    }
-
-    @Override
-    public Node cloneNode(boolean deep) {
-        return cdataSection.cloneNode(deep);
-    }
-
-    @Override
-    public void normalize() {
-        cdataSection.normalize();
-    }
-
-    @Override
-    public boolean isSupported(String feature, String version) {
-        return cdataSection.isSupported(feature, version);
-    }
-
-    @Override
-    public String getNamespaceURI() {
-        return cdataSection.getNamespaceURI();
-    }
-
-    @Override
-    public String getPrefix() {
-        return cdataSection.getPrefix();
-    }
-
-    @Override
-    public void setPrefix(String prefix) throws DOMException {
-        cdataSection.setPrefix(prefix);
-    }
-
-    @Override
-    public String getLocalName() {
-        return cdataSection.getLocalName();
-    }
-
-    @Override
-    public boolean hasAttributes() {
-        return cdataSection.hasAttributes();
-    }
-
-    @Override
-    public String getBaseURI() {
-        return cdataSection.getBaseURI();
-    }
-
-    @Override
-    public short compareDocumentPosition(Node other) throws DOMException {
-        return cdataSection.compareDocumentPosition(other);
-    }
-
-    @Override
-    public String getTextContent() throws DOMException {
-        return cdataSection.getTextContent();
-    }
-
-    @Override
-    public void setTextContent(String textContent) throws DOMException {
-        cdataSection.setTextContent(textContent);
-    }
-
-    @Override
-    public boolean isSameNode(Node other) {
-        return cdataSection.isSameNode(other);
-    }
-
-    @Override
-    public String lookupPrefix(String namespaceURI) {
-        return cdataSection.lookupPrefix(namespaceURI);
-    }
-
-    @Override
-    public boolean isDefaultNamespace(String namespaceURI) {
-        return cdataSection.isDefaultNamespace(namespaceURI);
-    }
-
-    @Override
-    public String lookupNamespaceURI(String prefix) {
-        return cdataSection.lookupNamespaceURI(prefix);
-    }
-
-    @Override
-    public boolean isEqualNode(Node arg) {
-        return cdataSection.isEqualNode(arg);
-    }
-
-    @Override
-    public Object getFeature(String feature, String version) {
-        return cdataSection.getFeature(feature, version);
-    }
-
-    @Override
-    public Object setUserData(String key, Object data, UserDataHandler handler) {
-        return cdataSection.setUserData(key, data, handler);
-    }
-
-    @Override
-    public Object getUserData(String key) {
-        return cdataSection.getUserData(key);
-    }
-
-    private CDATASection cdataSection;
-
-    public CDATAImpl(SOAPDocumentImpl ownerDoc, String text) {
-        cdataSection = ownerDoc.getDomDocument().createCDATASection(text);
-        ownerDoc.register(this);
-    }
-
-    public String getValue() {
-        String nodeValue = getNodeValue();
-        return (nodeValue.equals("") ? null : nodeValue);
-    }
-
-    public void setValue(String text) {
-        setNodeValue(text);
-    }
-
-    public void setParentElement(SOAPElement parent) throws SOAPException {
-        if (parent == null) {
-            log.severe("SAAJ0145.impl.no.null.to.parent.elem");
-            throw new SOAPException("Cannot pass NULL to setParentElement");
-        }
-        ((ElementImpl) parent).addNode(this);
-    }
-
-    public SOAPElement getParentElement() {
-        return (SOAPElement) getParentNode();
-    }
-
-
-    public void detachNode() {
-        org.w3c.dom.Node parent = getParentNode();
-        if (parent != null) {
-            parent.removeChild(this);
-        }
-    }
-
-    public void recycleNode() {
-        detachNode();
-        // TBD
-        //  - add this to the factory so subsequent
-        //    creations can reuse this object.
-    }
-
     public boolean isComment() {
         return false;
     }
 
-    public CDATASection getDomElement() {
-        return cdataSection;
-    }
 }
diff --git a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/impl/DetailEntryImpl.java b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/impl/DetailEntryImpl.java
index 923c48d..e6e964d 100644
--- a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/impl/DetailEntryImpl.java
+++ b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/impl/DetailEntryImpl.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -30,6 +30,7 @@
 import javax.xml.soap.Name;
 
 import com.sun.xml.internal.messaging.saaj.soap.SOAPDocumentImpl;
+import org.w3c.dom.Element;
 
 public abstract class DetailEntryImpl
     extends ElementImpl
@@ -40,4 +41,8 @@
     public DetailEntryImpl(SOAPDocumentImpl ownerDoc, QName qname) {
         super(ownerDoc, qname);
     }
+
+    public DetailEntryImpl(SOAPDocumentImpl ownerDoc, Element domElement) {
+        super(ownerDoc, domElement);
+    }
 }
diff --git a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/impl/DetailImpl.java b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/impl/DetailImpl.java
index aeeb60b..c1651ee 100644
--- a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/impl/DetailImpl.java
+++ b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/impl/DetailImpl.java
@@ -31,7 +31,6 @@
 import javax.xml.namespace.QName;
 import javax.xml.soap.*;
 
-import com.sun.xml.internal.messaging.saaj.util.SAAJUtil;
 import org.w3c.dom.Element;
 
 import com.sun.xml.internal.messaging.saaj.soap.SOAPDocumentImpl;
@@ -49,26 +48,31 @@
     protected abstract DetailEntry createDetailEntry(Name name);
     protected abstract DetailEntry createDetailEntry(QName name);
 
+    @Override
     public DetailEntry addDetailEntry(Name name) throws SOAPException {
         DetailEntry entry = createDetailEntry(name);
         addNode(entry);
         return entry;
     }
 
+    @Override
     public DetailEntry addDetailEntry(QName qname) throws SOAPException {
         DetailEntry entry = createDetailEntry(qname);
         addNode(entry);
         return entry;
     }
 
+    @Override
     protected SOAPElement addElement(Name name) throws SOAPException {
         return addDetailEntry(name);
     }
 
+    @Override
     protected SOAPElement addElement(QName name) throws SOAPException {
         return addDetailEntry(name);
     }
 
+    @Override
     protected SOAPElement convertToSoapElement(Element element) {
         final javax.xml.soap.Node soapNode = getSoapDocument().find(element);
         if (soapNode instanceof DetailEntry) {
@@ -82,12 +86,14 @@
         }
     }
 
-    public Iterator getDetailEntries() {
-        return new Iterator<SOAPElement>() {
+    @Override
+    public Iterator<DetailEntry> getDetailEntries() {
+        return new Iterator<DetailEntry>() {
             Iterator<org.w3c.dom.Node> eachNode = getChildElementNodes();
             SOAPElement next = null;
             SOAPElement last = null;
 
+            @Override
             public boolean hasNext() {
                 if (next == null) {
                     while (eachNode.hasNext()) {
@@ -101,15 +107,17 @@
                 return next != null;
             }
 
-            public SOAPElement next() {
+            @Override
+            public DetailEntry next() {
                 if (!hasNext()) {
                     throw new NoSuchElementException();
                 }
                 last = next;
                 next = null;
-                return last;
+                return (DetailEntry) last;
             }
 
+            @Override
             public void remove() {
                 if (last == null) {
                     throw new IllegalStateException();
@@ -121,6 +129,7 @@
         };
     }
 
+    @Override
    protected  boolean isStandardFaultElement() {
        return true;
    }
diff --git a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/impl/ElementFactory.java b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/impl/ElementFactory.java
index 20aa00b..b704bf3 100644
--- a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/impl/ElementFactory.java
+++ b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/impl/ElementFactory.java
@@ -106,9 +106,9 @@
         }
         if ("Fault".equalsIgnoreCase(localName)) {
             if (NameImpl.SOAP11_NAMESPACE.equals(namespaceUri)) {
-                return new Fault1_1Impl(element, ownerDocument);
+                return new Fault1_1Impl(ownerDocument, element);
             } else if (NameImpl.SOAP12_NAMESPACE.equals(namespaceUri)) {
-                return new Fault1_2Impl(element, ownerDocument);
+                return new Fault1_2Impl(ownerDocument, element);
             }
 
         }
diff --git a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/impl/ElementImpl.java b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/impl/ElementImpl.java
index 5f9ffc3..efbc0df 100644
--- a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/impl/ElementImpl.java
+++ b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/impl/ElementImpl.java
@@ -27,21 +27,37 @@
 
 import java.net.URI;
 import java.net.URISyntaxException;
-import java.util.*;
 import java.util.logging.Level;
 import java.util.logging.Logger;
 
 import javax.xml.namespace.QName;
-import javax.xml.soap.*;
 
-import org.w3c.dom.*;
 import org.w3c.dom.Node;
 
 import com.sun.xml.internal.messaging.saaj.SOAPExceptionImpl;
 import com.sun.xml.internal.messaging.saaj.soap.SOAPDocument;
 import com.sun.xml.internal.messaging.saaj.soap.SOAPDocumentImpl;
 import com.sun.xml.internal.messaging.saaj.soap.name.NameImpl;
-import com.sun.xml.internal.messaging.saaj.util.*;
+import com.sun.xml.internal.messaging.saaj.util.LogDomainConstants;
+import com.sun.xml.internal.messaging.saaj.util.NamespaceContextIterator;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.NoSuchElementException;
+import javax.xml.soap.Name;
+import javax.xml.soap.SOAPBodyElement;
+import javax.xml.soap.SOAPConstants;
+import javax.xml.soap.SOAPElement;
+import javax.xml.soap.SOAPException;
+import org.w3c.dom.Attr;
+import org.w3c.dom.CharacterData;
+import org.w3c.dom.DOMException;
+import org.w3c.dom.Document;
+import org.w3c.dom.DocumentFragment;
+import org.w3c.dom.Element;
+import org.w3c.dom.NamedNodeMap;
+import org.w3c.dom.NodeList;
+import org.w3c.dom.TypeInfo;
+import org.w3c.dom.UserDataHandler;
 
 public class ElementImpl implements SOAPElement, SOAPBodyElement {
 
@@ -108,7 +124,7 @@
 
     @Override
     public NodeList getElementsByTagName(String name) {
-        return new NodeListImpl(getSoapDocument(), element.getElementsByTagName(name));
+        return new NodeListImpl(soapDocument, element.getElementsByTagName(name));
     }
 
     @Override
@@ -139,21 +155,21 @@
         this.soapDocument = ownerDoc;
         this.element = ownerDoc.getDomDocument().createElementNS(name.getURI(), name.getQualifiedName());
         elementQName = NameImpl.convertToQName(name);
-        getSoapDocument().register(this);
+        soapDocument.register(this);
     }
 
     public ElementImpl(SOAPDocumentImpl ownerDoc, QName name) {
         this.soapDocument = ownerDoc;
         this.element = ownerDoc.getDomDocument().createElementNS(name.getNamespaceURI(), getQualifiedName(name));
         elementQName = name;
-        getSoapDocument().register(this);
+        soapDocument.register(this);
     }
 
     public ElementImpl(SOAPDocumentImpl ownerDoc, Element domElement) {
         this.element = domElement;
         this.soapDocument = ownerDoc;
         this.elementQName = new QName(domElement.getNamespaceURI(), domElement.getLocalName());
-        getSoapDocument().register(this);
+        soapDocument.register(this);
     }
 
     public ElementImpl(
@@ -165,7 +181,7 @@
         this.element = ownerDoc.getDomDocument().createElementNS(uri, qualifiedName);
         elementQName =
             new QName(uri, getLocalPart(qualifiedName), getPrefix(qualifiedName));
-        getSoapDocument().register(this);
+        soapDocument.register(this);
     }
 
     public void ensureNamespaceIsDeclared(String prefix, String uri) {
@@ -178,28 +194,29 @@
         }
     }
 
+    @Override
     public Document getOwnerDocument() {
         return soapDocument;
     }
 
     @Override
     public Node insertBefore(Node newChild, Node refChild) throws DOMException {
-        return element.insertBefore(getSoapDocument().getDomNode(newChild), getSoapDocument().getDomNode(refChild));
+        return soapDocument.findIfPresent(element.insertBefore(soapDocument.getDomNode(newChild), soapDocument.getDomNode(refChild)));
     }
 
     @Override
     public Node replaceChild(Node newChild, Node oldChild) throws DOMException {
-        return element.replaceChild(getSoapDocument().getDomNode(newChild), getSoapDocument().getDomNode(oldChild));
+        return soapDocument.findIfPresent(element.replaceChild(soapDocument.getDomNode(newChild), soapDocument.getDomNode(oldChild)));
     }
 
     @Override
     public Node removeChild(Node oldChild) throws DOMException {
-        return element.removeChild(getSoapDocument().getDomNode(oldChild));
+        return soapDocument.findIfPresent(element.removeChild(soapDocument.getDomNode(oldChild)));
     }
 
     @Override
     public Node appendChild(Node newChild) throws DOMException {
-        return element.appendChild(getSoapDocument().getDomNode(newChild));
+        return soapDocument.findIfPresent(element.appendChild(soapDocument.getDomNode(newChild)));
     }
 
     @Override
@@ -209,7 +226,9 @@
 
     @Override
     public Node cloneNode(boolean deep) {
-        return element.cloneNode(deep);
+        Node elementNSNode = element.cloneNode(deep);
+        soapDocument.registerChildNodes(elementNSNode, deep);
+        return soapDocument.findIfPresent(soapDocument.getDomNode(elementNSNode));
     }
 
     @Override
@@ -254,7 +273,7 @@
 
     @Override
     public short compareDocumentPosition(Node other) throws DOMException {
-        return element.compareDocumentPosition(other);
+        return element.compareDocumentPosition(soapDocument.getDomNode(other));
     }
 
     @Override
@@ -269,7 +288,7 @@
 
     @Override
     public boolean isSameNode(Node other) {
-        return element.isSameNode(other);
+        return element.isSameNode(soapDocument.getDomNode(other));
     }
 
     @Override
@@ -289,7 +308,7 @@
 
     @Override
     public boolean isEqualNode(Node arg) {
-        return element.isEqualNode(arg);
+        return element.isEqualNode(soapDocument.getDomNode(arg));
     }
 
     @Override
@@ -307,14 +326,17 @@
         return element.getUserData(key);
     }
 
+    @Override
     public SOAPElement addChildElement(Name name) throws SOAPException {
         return  addElement(name);
     }
 
+    @Override
     public SOAPElement addChildElement(QName qname) throws SOAPException {
         return  addElement(qname);
     }
 
+    @Override
     public SOAPElement addChildElement(String localName) throws SOAPException {
         String nsUri = getNamespaceURI("");
         Name name = (nsUri == null || nsUri.isEmpty())
@@ -323,6 +345,7 @@
         return addChildElement(name);
     }
 
+    @Override
     public SOAPElement addChildElement(String localName, String prefix)
         throws SOAPException {
         String uri = getNamespaceURI(prefix);
@@ -337,6 +360,7 @@
         return addChildElement(localName, prefix, uri);
     }
 
+    @Override
     public String getNamespaceURI(String prefix) {
 
         if ("xmlns".equals(prefix)) {
@@ -415,12 +439,14 @@
         return null;
     }
 
+    @Override
     public SOAPElement setElementQName(QName newName) throws SOAPException {
         ElementImpl copy =
             new ElementImpl((SOAPDocumentImpl) getOwnerDocument(), newName);
         return replaceElementWithSOAPElement(this,copy);
     }
 
+    @Override
     public QName createQName(String localName, String prefix)
         throws SOAPException {
         String uri = getNamespaceURI(prefix);
@@ -485,6 +511,7 @@
         return new NamespaceContextIterator(this, traverseStack);
     }
 
+    @Override
     public SOAPElement addChildElement(
         String localName,
         String prefix,
@@ -496,6 +523,7 @@
         return convertToSoapElement(newElement);
     }
 
+    @Override
     public SOAPElement addChildElement(SOAPElement element)
         throws SOAPException {
 
@@ -531,7 +559,7 @@
                    log.severe("SAAJ0158.impl.version.mismatch.fault");
                    throw new SOAPExceptionImpl("SOAP Version mismatch encountered when trying to add SOAPFault to SOAPBody");
                }
-               Iterator<Node> it = this.getChildElements();
+               Iterator<javax.xml.soap.Node> it = this.getChildElements();
                if (it.hasNext()) {
                    log.severe("SAAJ0156.impl.adding.fault.error");
                    throw new SOAPExceptionImpl("Cannot add SOAPFault as a child of a non-Empty SOAPBody");
@@ -542,8 +570,7 @@
         // preserve the encodingStyle attr as it may get lost in the import
         String encodingStyle = element.getEncodingStyle();
 
-        final Element domElement = ((ElementImpl) element).getDomElement();
-        final Element importedElement = importElement(domElement);
+        final Element importedElement = importElement(element);
         addNode(importedElement);
 
         final SOAPElement converted = convertToSoapElement(importedElement);
@@ -603,7 +630,7 @@
     }
 
     protected void addNode(org.w3c.dom.Node newElement) throws SOAPException {
-        insertBefore(getSoapDocument().getDomNode(newElement), null);
+        insertBefore(soapDocument.getDomNode(newElement), null);
 
         if (getOwnerDocument() instanceof DocumentFragment)
             return;
@@ -623,7 +650,7 @@
         Node child = getFirstChild();
         while (child != null) {
             if (child instanceof Element) {
-                return (Element) getSoapDocument().find(child);
+                return (Element) soapDocument.find(child);
             }
             child = child.getNextSibling();
         }
@@ -634,7 +661,7 @@
         Node eachChild = getFirstChild();
         while (eachChild != null) {
             if (eachChild instanceof Element) {
-                SOAPElement eachChildSoap = (SOAPElement) getSoapDocument().find(eachChild);
+                SOAPElement eachChildSoap = (SOAPElement) soapDocument.find(eachChild);
                 if (eachChildSoap != null) {
                     if (eachChildSoap.getElementName().equals(name)) {
                         return eachChildSoap;
@@ -658,6 +685,7 @@
         return null;
     }
 
+    @Override
     public SOAPElement addTextNode(String text) throws SOAPException {
         if (text.startsWith(CDATAImpl.cdataUC)
             || text.startsWith(CDATAImpl.cdataLC))
@@ -680,6 +708,7 @@
         return this;
     }
 
+    @Override
     public SOAPElement addAttribute(Name name, String value)
         throws SOAPException {
         addAttributeBare(name, value);
@@ -689,6 +718,7 @@
         return this;
     }
 
+    @Override
     public SOAPElement addAttribute(QName qname, String value)
         throws SOAPException {
         addAttributeBare(qname, value);
@@ -731,6 +761,7 @@
         }
     }
 
+    @Override
     public SOAPElement addNamespaceDeclaration(String prefix, String uri)
         throws SOAPException {
         if (prefix.length() > 0) {
@@ -743,10 +774,12 @@
         return this;
     }
 
+    @Override
     public String getAttributeValue(Name name) {
         return getAttributeValueFrom(this, name);
     }
 
+    @Override
     public String getAttributeValue(QName qname) {
         return getAttributeValueFrom(
                    this,
@@ -756,9 +789,10 @@
                    getQualifiedName(qname));
     }
 
-    public Iterator getAllAttributes() {
+    @Override
+    public Iterator<Name> getAllAttributes() {
         Iterator<Name> i = getAllAttributesFrom(this);
-        ArrayList<Name> list = new ArrayList<Name>();
+        ArrayList<Name> list = new ArrayList<>();
         while (i.hasNext()) {
             Name name = i.next();
             if (!"xmlns".equalsIgnoreCase(name.getPrefix()))
@@ -767,9 +801,10 @@
         return list.iterator();
     }
 
-    public Iterator getAllAttributesAsQNames() {
+    @Override
+    public Iterator<QName> getAllAttributesAsQNames() {
         Iterator<Name> i = getAllAttributesFrom(this);
-        ArrayList<QName> list = new ArrayList<QName>();
+        ArrayList<QName> list = new ArrayList<>();
         while (i.hasNext()) {
             Name name = i.next();
             if (!"xmlns".equalsIgnoreCase(name.getPrefix())) {
@@ -780,11 +815,13 @@
     }
 
 
-    public Iterator getNamespacePrefixes() {
+    @Override
+    public Iterator<String> getNamespacePrefixes() {
         return doGetNamespacePrefixes(false);
     }
 
-    public Iterator getVisibleNamespacePrefixes() {
+    @Override
+    public Iterator<String> getVisibleNamespacePrefixes() {
         return doGetNamespacePrefixes(true);
     }
 
@@ -805,11 +842,13 @@
                 }
             }
 
+            @Override
             public boolean hasNext() {
                 findNext();
                 return next != null;
             }
 
+            @Override
             public String next() {
                 findNext();
                 if (next == null) {
@@ -821,6 +860,7 @@
                 return last;
             }
 
+            @Override
             public void remove() {
                 if (last == null) {
                     throw new IllegalStateException();
@@ -832,18 +872,22 @@
         };
     }
 
+    @Override
     public Name getElementName() {
         return NameImpl.convertToName(elementQName);
     }
 
+    @Override
     public QName getElementQName() {
         return elementQName;
     }
 
+    @Override
     public boolean removeAttribute(Name name) {
         return removeAttribute(name.getURI(), name.getLocalName());
     }
 
+    @Override
     public boolean removeAttribute(QName name) {
         return removeAttribute(name.getNamespaceURI(), name.getLocalPart());
     }
@@ -860,6 +904,7 @@
         return true;
     }
 
+    @Override
     public boolean removeNamespaceDeclaration(String prefix) {
         org.w3c.dom.Attr declaration = getNamespaceAttr(prefix);
         if (declaration == null) {
@@ -873,12 +918,13 @@
         return true;
     }
 
-    public Iterator<Node> getChildElements() {
+    @Override
+    public Iterator<javax.xml.soap.Node> getChildElements() {
         return getChildElementsFrom(this);
     }
 
     protected SOAPElement convertToSoapElement(Element element) {
-        final Node soapNode = getSoapDocument().findIfPresent(element);
+        final Node soapNode = soapDocument.findIfPresent(element);
         if (soapNode instanceof SOAPElement) {
             return (SOAPElement) soapNode;
         } else {
@@ -888,6 +934,36 @@
         }
     }
 
+    protected TextImpl convertToSoapText(CharacterData characterData) {
+        final Node soapNode = getSoapDocument().findIfPresent(characterData);
+        if (soapNode instanceof TextImpl) {
+            return (TextImpl) soapNode;
+        } else {
+            TextImpl t = null;
+            switch (characterData.getNodeType()) {
+                case CDATA_SECTION_NODE:
+                    t = new CDATAImpl(getSoapDocument(), characterData.getData());
+                    break;
+                case COMMENT_NODE:
+                    t = new SOAPCommentImpl(getSoapDocument(), characterData.getData());
+                    break;
+                case TEXT_NODE:
+                    t = new SOAPTextImpl(getSoapDocument(), characterData.getData());
+                    break;
+            }
+            Node parent = getSoapDocument().find(characterData.getParentNode());
+            if (parent != null) {
+                parent.replaceChild(t, characterData);
+            } // XXX else throw an exception?
+
+            return t;
+
+//            return replaceElementWithSOAPElement(
+//                element,
+//                (ElementImpl) createElement(NameImpl.copyElementName(element)));
+        }
+    }
+
     protected SOAPElement replaceElementWithSOAPElement(
         Element element,
         ElementImpl copy) {
@@ -898,13 +974,13 @@
             copy.addAttributeBare(name, getAttributeValueFrom(element, name));
         }
 
-        Iterator<Node> eachChild = getChildElementsFrom(element);
+        Iterator<Node> eachChild = getChildElementsFromDOM(element);
         while (eachChild.hasNext()) {
             Node nextChild = eachChild.next();
             copy.insertBefore(nextChild, null);
         }
 
-        Node parent = getSoapDocument().find(element.getParentNode());
+        Node parent = soapDocument.find(element.getParentNode());
         if (parent != null) {
             parent.replaceChild(copy, element);
         } // XXX else throw an exception?
@@ -912,22 +988,22 @@
         return copy;
     }
 
-    protected Iterator<Node> getChildElementNodes() {
+    private Iterator<Node> getChildElementsFromDOM(final Element el) {
         return new Iterator<Node>() {
-            Iterator<Node> eachNode = getChildElements();
-            Node next = null;
+            Node next = el.getFirstChild();
+            Node nextNext = null;
             Node last = null;
+            Node soapElement = getSoapDocument().findIfPresent(el);
 
+            @Override
             public boolean hasNext() {
-                if (next == null) {
-                    while (eachNode.hasNext()) {
-                        Node node = eachNode.next();
-                        if (node instanceof Element) {
-                            next = getSoapDocument().findIfPresent(node);
-                            break;
-                        }
-                    }
+                if (next != null) {
+                    return true;
                 }
+                if (nextNext != null) {
+                    next = nextNext;
+                }
+
                 return next != null;
             }
 
@@ -935,11 +1011,66 @@
                 if (hasNext()) {
                     last = next;
                     next = null;
+
+                    if ((soapElement instanceof ElementImpl)
+                            && (last instanceof Element)) {
+                        last =
+                                ((ElementImpl) soapElement).convertToSoapElement(
+                                        (Element) last);
+                    } else if ((soapElement instanceof ElementImpl) && (last instanceof CharacterData)) {
+                        last = ((ElementImpl) soapElement).convertToSoapText(
+                                        (CharacterData) last);
+                    }
+
+                    nextNext = last.getNextSibling();
                     return last;
                 }
                 throw new NoSuchElementException();
             }
 
+            @Override
+            public void remove() {
+                if (last == null) {
+                    throw new IllegalStateException();
+                }
+                Node target = last;
+                last = null;
+                el.removeChild(target);
+            }
+        };
+    }
+
+    protected Iterator<Node> getChildElementNodes() {
+        return new Iterator<Node>() {
+            Iterator<javax.xml.soap.Node> eachNode = getChildElements();
+            Node next = null;
+            Node last = null;
+
+            @Override
+            public boolean hasNext() {
+                if (next == null) {
+                    while (eachNode.hasNext()) {
+                        Node node = eachNode.next();
+                        if (node instanceof Element) {
+                            next = soapDocument.findIfPresent(node);
+                            break;
+                        }
+                    }
+                }
+                return next != null;
+            }
+
+            @Override
+            public javax.xml.soap.Node next() {
+                if (hasNext()) {
+                    last = next;
+                    next = null;
+                    return (javax.xml.soap.Node) last;
+                }
+                throw new NoSuchElementException();
+            }
+
+            @Override
             public void remove() {
                 if (last == null) {
                     throw new IllegalStateException();
@@ -951,20 +1082,23 @@
         };
     }
 
-    public Iterator getChildElements(final Name name) {
+    @Override
+    public Iterator<javax.xml.soap.Node> getChildElements(final Name name) {
        return getChildElements(name.getURI(), name.getLocalName());
     }
 
-    public Iterator getChildElements(final QName qname) {
+    @Override
+    public Iterator<javax.xml.soap.Node> getChildElements(final QName qname) {
         return getChildElements(qname.getNamespaceURI(), qname.getLocalPart());
     }
 
-    private Iterator<Node> getChildElements(final String nameUri, final String nameLocal) {
-        return new Iterator<Node>() {
+    private Iterator<javax.xml.soap.Node> getChildElements(final String nameUri, final String nameLocal) {
+        return new Iterator<javax.xml.soap.Node>() {
             Iterator<Node> eachElement = getChildElementNodes();
             Node next = null;
             Node last = null;
 
+            @Override
             public boolean hasNext() {
                 if (next == null) {
                     while (eachElement.hasNext()) {
@@ -982,15 +1116,17 @@
                 return next != null;
             }
 
-            public Node next() {
+            @Override
+            public javax.xml.soap.Node next() {
                 if (!hasNext()) {
                     throw new NoSuchElementException();
                 }
                 last = next;
                 next = null;
-                return last;
+                return (javax.xml.soap.Node) last;
             }
 
+            @Override
             public void remove() {
                 if (last == null) {
                     throw new IllegalStateException();
@@ -1002,6 +1138,7 @@
         };
     }
 
+    @Override
     public void removeContents() {
         Node currentChild = getFirstChild();
 
@@ -1020,6 +1157,7 @@
         }
     }
 
+    @Override
     public void setEncodingStyle(String encodingStyle) throws SOAPException {
         if (!"".equals(encodingStyle)) {
             try {
@@ -1037,6 +1175,7 @@
         tryToFindEncodingStyleAttributeName();
     }
 
+    @Override
     public String getEncodingStyle() {
         String encodingStyle = encodingStyleAttribute.getValue();
         if (encodingStyle != null)
@@ -1058,11 +1197,13 @@
     }
 
     // Node methods
+    @Override
     public String getValue() {
         javax.xml.soap.Node valueNode = getValueNode();
         return valueNode == null ? null : valueNode.getValue();
     }
 
+    @Override
     public void setValue(String value) {
         Node valueNode = getValueNodeStrict();
         if (valueNode != null) {
@@ -1092,7 +1233,7 @@
     }
 
     protected javax.xml.soap.Node getValueNode() {
-        Iterator<Node> i = getChildElements();
+        Iterator<javax.xml.soap.Node> i = getChildElements();
         while (i.hasNext()) {
             Node n = i.next();
             if (n.getNodeType() == org.w3c.dom.Node.TEXT_NODE ||
@@ -1101,12 +1242,13 @@
                 normalize();
                 // Should remove the normalization step when this gets fixed in
                 // DOM/Xerces.
-                return getSoapDocument().find(n);
+                return soapDocument.find(n);
             }
         }
         return null;
     }
 
+    @Override
     public void setParentElement(SOAPElement element) throws SOAPException {
         if (element == null) {
             log.severe("SAAJ0106.impl.no.null.to.parent.elem");
@@ -1138,12 +1280,13 @@
         encodingStyleAttribute.setName(encodingStyleAttributeName);
     }
 
+    @Override
     public SOAPElement getParentElement() {
         Node parentNode = getParentNode();
         if (parentNode instanceof SOAPDocument) {
             return null;
         }
-        return (SOAPElement) getSoapDocument().find(parentNode);
+        return (SOAPElement) soapDocument.find(parentNode);
     }
 
     protected String getSOAPNamespace() {
@@ -1167,6 +1310,7 @@
         return soapNamespace;
     }
 
+    @Override
     public void detachNode() {
         Node parent = getParentNode();
         if (parent != null) {
@@ -1184,6 +1328,7 @@
         }
     }
 
+    @Override
     public void recycleNode() {
         detachNode();
         // TBD
@@ -1260,10 +1405,12 @@
             int attributeIndex = 0;
             String currentName;
 
+            @Override
             public boolean hasNext() {
                 return attributeIndex < attributesLength;
             }
 
+            @Override
             public Name next() {
                 if (!hasNext()) {
                     throw new NoSuchElementException();
@@ -1283,6 +1430,7 @@
                 }
             }
 
+            @Override
             public void remove() {
                 if (currentName == null) {
                     throw new IllegalStateException();
@@ -1331,13 +1479,14 @@
         return attribute == null ? null : attribute.getValue();
     }
 
-    protected Iterator<Node> getChildElementsFrom(final Element element) {
-        return new Iterator<Node>() {
+    protected Iterator<javax.xml.soap.Node> getChildElementsFrom(final Element element) {
+        return new Iterator<javax.xml.soap.Node>() {
             Node next = element.getFirstChild();
             Node nextNext = null;
             Node last = null;
-            Node soapElement = getSoapDocument().findIfPresent(element);
+            Node soapElement = soapDocument.findIfPresent(element);
 
+            @Override
             public boolean hasNext() {
                 if (next != null) {
                     return true;
@@ -1349,7 +1498,8 @@
                 return next != null;
             }
 
-            public Node next() {
+            @Override
+            public javax.xml.soap.Node next() {
                 if (hasNext()) {
                     last = next;
                     next = null;
@@ -1362,11 +1512,12 @@
                     }
 
                     nextNext = last.getNextSibling();
-                    return getSoapDocument().findIfPresent(last);
+                    return (javax.xml.soap.Node) soapDocument.findIfPresent(last);
                 }
                 throw new NoSuchElementException();
             }
 
+            @Override
             public void remove() {
                 if (last == null) {
                     throw new IllegalStateException();
@@ -1428,6 +1579,7 @@
     //TODO: This is a temporary SAAJ workaround for optimizing XWS
     // should be removed once the corresponding JAXP bug is fixed
     // It appears the bug will be fixed in JAXP 1.4 (not by Appserver 9 timeframe)
+    @Override
     public void setAttributeNS(
         String namespaceURI,String qualifiedName, String value) {
         int index = qualifiedName.indexOf(':');
@@ -1483,7 +1635,7 @@
 
     @Override
     public NodeList getElementsByTagNameNS(String namespaceURI, String localName) throws DOMException {
-        return new NodeListImpl(getSoapDocument(), element.getElementsByTagNameNS(namespaceURI, localName));
+        return new NodeListImpl(soapDocument, element.getElementsByTagNameNS(namespaceURI, localName));
     }
 
     @Override
@@ -1538,37 +1690,37 @@
 
     @Override
     public Node getParentNode() {
-        return getSoapDocument().find(element.getParentNode());
+        return soapDocument.find(element.getParentNode());
     }
 
     @Override
     public NodeList getChildNodes() {
-        return new NodeListImpl(getSoapDocument(), element.getChildNodes());
+        return new NodeListImpl(soapDocument, element.getChildNodes());
     }
 
     @Override
     public Node getFirstChild() {
-        return getSoapDocument().findIfPresent(element.getFirstChild());
+        return soapDocument.findIfPresent(element.getFirstChild());
     }
 
     @Override
     public Node getLastChild() {
-        return getSoapDocument().findIfPresent(element.getLastChild());
+        return soapDocument.findIfPresent(element.getLastChild());
     }
 
     @Override
     public Node getPreviousSibling() {
-        return getSoapDocument().findIfPresent(element.getPreviousSibling());
+        return soapDocument.findIfPresent(element.getPreviousSibling());
     }
 
     @Override
     public Node getNextSibling() {
-        return getSoapDocument().findIfPresent(element.getNextSibling());
+        return soapDocument.findIfPresent(element.getNextSibling());
     }
 
     @Override
     public NamedNodeMap getAttributes() {
-        return element.getAttributes();
+        return new NamedNodeMapImpl(element.getAttributes(), soapDocument);
     }
 
     public Element getDomElement() {
diff --git a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/impl/EnvelopeImpl.java b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/impl/EnvelopeImpl.java
index faaa3d8..a1564b4 100644
--- a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/impl/EnvelopeImpl.java
+++ b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/impl/EnvelopeImpl.java
@@ -100,6 +100,7 @@
     protected abstract NameImpl getHeaderName(String prefix);
     protected abstract NameImpl getBodyName(String prefix);
 
+    @Override
     public SOAPHeader addHeader() throws SOAPException {
         return addHeader(null);
     }
@@ -140,6 +141,7 @@
         header = hdr;
     }
 
+    @Override
     public SOAPHeader getHeader() throws SOAPException {
         lookForHeader();
         return header;
@@ -152,6 +154,7 @@
         body = bodyChildElement;
     }
 
+    @Override
     public SOAPBody addBody() throws SOAPException {
         return addBody(null);
     }
@@ -176,6 +179,7 @@
         return body;
     }
 
+    @Override
     protected SOAPElement addElement(Name name) throws SOAPException {
         if (getBodyName(null).equals(name)) {
             return addBody(name.getPrefix());
@@ -187,6 +191,7 @@
         return super.addElement(name);
     }
 
+    @Override
     protected SOAPElement addElement(QName name) throws SOAPException {
         if (getBodyName(null).equals(NameImpl.convertToName(name))) {
             return addBody(name.getPrefix());
@@ -198,15 +203,18 @@
         return super.addElement(name);
     }
 
+    @Override
     public SOAPBody getBody() throws SOAPException {
         lookForBody();
         return body;
     }
 
+    @Override
     public Source getContent() {
         return new DOMSource(getOwnerDocument());
     }
 
+    @Override
     public Name createName(String localName, String prefix, String uri)
         throws SOAPException {
 
@@ -241,6 +249,7 @@
         return NameImpl.create(localName, prefix, namespace);
     }
 
+    @Override
     public Name createName(String localName) throws SOAPException {
         return NameImpl.createFromUnqualifiedName(localName);
     }
@@ -257,6 +266,7 @@
         charset = value;
     }
 
+    @Override
     public void output(OutputStream out) throws IOException {
         try {
 //            materializeBody();
@@ -301,6 +311,7 @@
     /**
      * Serialize to FI if boolean parameter set.
      */
+    @Override
     public void output(OutputStream out, boolean isFastInfoset)
         throws IOException
     {
@@ -353,6 +364,7 @@
     //    }
 
 
+    @Override
      public SOAPElement setElementQName(QName newName) throws SOAPException {
         log.log(Level.SEVERE,
                 "SAAJ0146.impl.invalid.name.change.requested",
@@ -389,6 +401,7 @@
                 final DOMStreamReader reader = new DOMStreamReader(this);
                 XMLStreamReaderToXMLStreamWriter writingBridge =  new XMLStreamReaderToXMLStreamWriter();
                 writingBridge.bridge( new XMLStreamReaderToXMLStreamWriter.Breakpoint(reader, writer) {
+                        @Override
                         public boolean proceedAfterStartElement()  {
                                 if ("Body".equals(reader.getLocalName()) && soapEnvNS.equals(reader.getNamespaceURI()) ){
                                         return false;
diff --git a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/impl/FaultElementImpl.java b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/impl/FaultElementImpl.java
index 447039e..07f25df 100644
--- a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/impl/FaultElementImpl.java
+++ b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/impl/FaultElementImpl.java
@@ -54,6 +54,7 @@
 
     protected abstract boolean isStandardFaultElement();
 
+    @Override
     public SOAPElement setElementQName(QName newName) throws SOAPException {
             log.log(Level.SEVERE,
                     "SAAJ0146.impl.invalid.name.change.requested",
diff --git a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/impl/HeaderElementImpl.java b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/impl/HeaderElementImpl.java
index c455946..73b4725 100644
--- a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/impl/HeaderElementImpl.java
+++ b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/impl/HeaderElementImpl.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -30,6 +30,7 @@
 
 import com.sun.xml.internal.messaging.saaj.soap.SOAPDocumentImpl;
 import com.sun.xml.internal.messaging.saaj.soap.name.NameImpl;
+import org.w3c.dom.Element;
 
 public abstract class HeaderElementImpl
     extends ElementImpl
@@ -47,6 +48,10 @@
         super(ownerDoc, qname);
     }
 
+    public HeaderElementImpl(SOAPDocumentImpl ownerDoc, Element domElement) {
+        super(ownerDoc, domElement);
+    }
+
     protected abstract NameImpl getActorAttributeName();
     protected abstract NameImpl getRoleAttributeName();
     protected abstract NameImpl getMustunderstandAttributeName();
@@ -58,6 +63,7 @@
     protected abstract String getActorOrRole();
 
 
+    @Override
     public void setParentElement(SOAPElement element) throws SOAPException {
         if (!(element instanceof SOAPHeader)) {
             log.severe("SAAJ0130.impl.header.elem.parent.mustbe.header");
@@ -67,6 +73,7 @@
         super.setParentElement(element);
     }
 
+    @Override
     public void setActor(String actorUri) {
         try {
             removeAttribute(getActorAttributeName());
@@ -76,6 +83,7 @@
     }
 
     //SOAP 1.2 supports Role
+    @Override
     public void setRole(String roleUri) throws SOAPException {
         // runtime exception thrown if called for SOAP 1.1
         removeAttribute(getRoleAttributeName());
@@ -85,6 +93,7 @@
 
     Name actorAttNameWithoutNS = NameImpl.createFromTagName("actor");
 
+    @Override
     public String getActor() {
         String actor = getAttributeValue(getActorAttributeName());
         return actor;
@@ -92,12 +101,14 @@
 
     Name roleAttNameWithoutNS = NameImpl.createFromTagName("role");
 
+    @Override
     public String getRole() {
         // runtime exception thrown for 1.1
         String role = getAttributeValue(getRoleAttributeName());
         return role;
     }
 
+    @Override
     public void setMustUnderstand(boolean mustUnderstand) {
         try {
             removeAttribute(getMustunderstandAttributeName());
@@ -108,6 +119,7 @@
         }
     }
 
+    @Override
     public boolean getMustUnderstand() {
         String mu = getAttributeValue(getMustunderstandAttributeName());
 
@@ -117,6 +129,7 @@
         return false;
     }
 
+    @Override
     public void setRelay(boolean relay) throws SOAPException {
         // runtime exception thrown for 1.1
         removeAttribute(getRelayAttributeName());
@@ -125,6 +138,7 @@
             getRelayLiteralValue(relay));
     }
 
+    @Override
     public boolean getRelay() {
         String mu = getAttributeValue(getRelayAttributeName());
         if (mu != null)
diff --git a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/impl/HeaderImpl.java b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/impl/HeaderImpl.java
index 0d9f7ad..aaf56be 100644
--- a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/impl/HeaderImpl.java
+++ b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/impl/HeaderImpl.java
@@ -25,19 +25,25 @@
 
 package com.sun.xml.internal.messaging.saaj.soap.impl;
 
-import java.util.*;
 import java.util.logging.Level;
 
 import javax.xml.namespace.QName;
-import javax.xml.soap.*;
 
-import com.sun.xml.internal.messaging.saaj.util.SAAJUtil;
 import org.w3c.dom.Element;
 
 import com.sun.xml.internal.messaging.saaj.SOAPExceptionImpl;
 import com.sun.xml.internal.messaging.saaj.soap.SOAPDocument;
 import com.sun.xml.internal.messaging.saaj.soap.SOAPDocumentImpl;
 import com.sun.xml.internal.messaging.saaj.soap.name.NameImpl;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+import javax.xml.soap.Name;
+import javax.xml.soap.SOAPElement;
+import javax.xml.soap.SOAPEnvelope;
+import javax.xml.soap.SOAPException;
+import javax.xml.soap.SOAPHeader;
+import javax.xml.soap.SOAPHeaderElement;
 
 public abstract class HeaderImpl extends ElementImpl implements SOAPHeader {
     protected static final boolean MUST_UNDERSTAND_ONLY = false;
@@ -58,6 +64,7 @@
     protected abstract NameImpl getUpgradeName();
     protected abstract NameImpl getSupportedEnvelopeName();
 
+    @Override
     public SOAPHeaderElement addHeaderElement(Name name) throws SOAPException {
         SOAPElement newHeaderElement =
             ElementFactory.createNamedElement(
@@ -81,6 +88,7 @@
         return (SOAPHeaderElement) newHeaderElement;
     }
 
+    @Override
     public SOAPHeaderElement addHeaderElement(QName name) throws SOAPException {
         SOAPElement newHeaderElement =
             ElementFactory.createNamedElement(
@@ -104,19 +112,23 @@
         return (SOAPHeaderElement) newHeaderElement;
     }
 
+    @Override
     protected SOAPElement addElement(Name name) throws SOAPException {
         return addHeaderElement(name);
     }
 
+    @Override
     protected SOAPElement addElement(QName name) throws SOAPException {
         return addHeaderElement(name);
     }
 
-    public Iterator examineHeaderElements(String actor) {
+    @Override
+    public Iterator<SOAPHeaderElement> examineHeaderElements(String actor) {
         return getHeaderElementsForActor(actor, false, false);
     }
 
-    public Iterator extractHeaderElements(String actor) {
+    @Override
+    public Iterator<SOAPHeaderElement> extractHeaderElements(String actor) {
         return getHeaderElementsForActor(actor, true, false);
     }
 
@@ -135,9 +147,9 @@
         String actor,
         boolean detach,
         boolean mustUnderstand) {
-        List<SOAPHeaderElement> elementList = new ArrayList<SOAPHeaderElement>();
+        List<SOAPHeaderElement> elementList = new ArrayList<>();
 
-        Iterator<org.w3c.dom.Node> eachChild = getChildElements();
+        Iterator<javax.xml.soap.Node> eachChild = getChildElements();
 
         org.w3c.dom.Node currentChild = iterate(eachChild);
         while (currentChild != null) {
@@ -181,6 +193,7 @@
         return each.hasNext() ? each.next() : null;
     }
 
+    @Override
     public void setParentElement(SOAPElement element) throws SOAPException {
         if (!(element instanceof SOAPEnvelope)) {
             log.severe("SAAJ0133.impl.header.parent.mustbe.envelope");
@@ -193,6 +206,7 @@
     // namespace qualified. Holds for both SOAP versions.
     // TODO - This check needs to be made for other addChildElement() methods
     // as well.
+    @Override
     public SOAPElement addChildElement(String localName) throws SOAPException {
 
         SOAPElement element = super.addChildElement(localName);
@@ -205,19 +219,23 @@
         return element;
     }
 
-    public Iterator examineAllHeaderElements() {
+    @Override
+    public Iterator<SOAPHeaderElement> examineAllHeaderElements() {
         return getHeaderElements(null, false, MUST_UNDERSTAND_ONLY);
     }
 
-    public Iterator examineMustUnderstandHeaderElements(String actor) {
+    @Override
+    public Iterator<SOAPHeaderElement> examineMustUnderstandHeaderElements(String actor) {
         return getHeaderElements(actor, false, true);
 
     }
 
-    public Iterator extractAllHeaderElements() {
+    @Override
+    public Iterator<SOAPHeaderElement> extractAllHeaderElements() {
         return getHeaderElements(null, true, false);
     }
 
+    @Override
     public SOAPHeaderElement addUpgradeHeaderElement(Iterator supportedSoapUris)
         throws SOAPException {
         if (supportedSoapUris == null) {
@@ -241,18 +259,19 @@
                 NameImpl.createFromUnqualifiedName("qname"),
                 ns + ":Envelope");
             subElement.addNamespaceDeclaration(
-                ns,
-                (String) supportedSoapUris.next());
+                ns, (String) supportedSoapUris.next());
             i ++;
         }
         return upgradeHeaderElement;
     }
 
+    @Override
     public SOAPHeaderElement addUpgradeHeaderElement(String supportedSoapUri)
         throws SOAPException {
         return addUpgradeHeaderElement(new String[] {supportedSoapUri});
     }
 
+    @Override
     public SOAPHeaderElement addUpgradeHeaderElement(String[] supportedSoapUris)
         throws SOAPException {
 
@@ -280,6 +299,7 @@
         return upgradeHeaderElement;
     }
 
+    @Override
     protected SOAPElement convertToSoapElement(Element element) {
         final org.w3c.dom.Node soapNode = getSoapDocument().findIfPresent(element);
         if (soapNode instanceof SOAPHeaderElement) {
@@ -298,6 +318,7 @@
         }
     }
 
+    @Override
     public SOAPElement setElementQName(QName newName) throws SOAPException {
        log.log(Level.SEVERE,
                 "SAAJ0146.impl.invalid.name.change.requested",
diff --git a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/impl/LocalStrings.properties b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/impl/LocalStrings.properties
index b4b7b99..87c0ec7 100644
--- a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/impl/LocalStrings.properties
+++ b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/impl/LocalStrings.properties
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
@@ -46,7 +46,7 @@
 SAAJ0123.impl.no.reserved.xmlns=SAAJ0123: Cannot declare reserved xmlns prefix
 SAAJ0124.impl.qualified.name.cannot.be.xmlns=SAAJ0124: Qualified name cannot be xmlns
 #SAAJ0125.impl.URI.cannot.be.null=SAAJ0125: URI cannot be null
-SAAJ0126.impl.cannot.locate.ns=SAAJ0126: Unable to locate namespace for prefix {0}
+#SAAJ0126.impl.cannot.locate.ns=SAAJ0126: Unable to locate namespace for prefix {0}
 SAAJ0127.impl.no.null.for.parent.elem=SAAJ0127: Cannot pass NULL to setParentElement
 
 SAAJ0130.impl.header.elem.parent.mustbe.header=SAAJ0130: Parent of a SOAPHeaderElement has to be a SOAPHeader
@@ -60,7 +60,7 @@
 SAAJ0142.impl.reason.or.text.not.supported=SAAJ0142: Fault/Reason/Text not supported by this SOAP version, try SOAP 1.2 or later
 SAAJ0143.impl.node.not.supported=SAAJ0143: Fault/Node not supported by this SOAP version, try SOAP 1.2 or later
 SAAJ0144.impl.role.not.supported=SAAJ0144: Fault/Role not supported by this SOAP version, try SOAP 1.2 or later
-SAAJ0145.impl.no.null.to.parent.elem=SAAJ0145: Cannot pass NULL to setParentElement
+#SAAJ0145.impl.no.null.to.parent.elem=SAAJ0145: Cannot pass NULL to setParentElement
 SAAJ0146.impl.invalid.name.change.requested=SAAJ0146: Cannot change name of element {0} to {1}
 SAAJ0147.impl.invalid.uri.change.requested=SAAJ0147: Cannot change the URI for prefix {0} from {1} to {2} in setElementQName
 SAAJ0148.impl.invalid.prefix.for.uri=Non-empty namespace URI: {0} for an empty prefix in SetElementQName
diff --git a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/impl/NamedNodeMapImpl.java b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/impl/NamedNodeMapImpl.java
new file mode 100644
index 0000000..fb7f28d
--- /dev/null
+++ b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/impl/NamedNodeMapImpl.java
@@ -0,0 +1,94 @@
+/*
+ * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package com.sun.xml.internal.messaging.saaj.soap.impl;
+
+import com.sun.xml.internal.messaging.saaj.soap.SOAPDocumentImpl;
+import org.w3c.dom.DOMException;
+import org.w3c.dom.NamedNodeMap;
+import org.w3c.dom.Node;
+
+/**
+ * {@link NamedNodeMap} wrapper, finding SOAP elements automatically when possible.
+ *
+ * @author Roman Grigoriadi
+ */
+public class NamedNodeMapImpl implements NamedNodeMap {
+
+    private final NamedNodeMap namedNodeMap;
+
+    private final SOAPDocumentImpl soapDocument;
+
+    /**
+     * Create wrapper.
+     *
+     * @param namedNodeMap node map to wrap
+     * @param soapDocument soap document to find soap elements
+     */
+    public NamedNodeMapImpl(NamedNodeMap namedNodeMap, SOAPDocumentImpl soapDocument) {
+        this.namedNodeMap = namedNodeMap;
+        this.soapDocument = soapDocument;
+    }
+
+    @Override
+    public Node getNamedItem(String name) {
+        return soapDocument.findIfPresent(namedNodeMap.getNamedItem(name));
+    }
+
+    @Override
+    public Node setNamedItem(Node arg) throws DOMException {
+        return namedNodeMap.setNamedItem(arg);
+    }
+
+    @Override
+    public Node removeNamedItem(String name) throws DOMException {
+        return namedNodeMap.removeNamedItem(name);
+    }
+
+    @Override
+    public Node item(int index) {
+        return namedNodeMap.item(index);
+    }
+
+    @Override
+    public int getLength() {
+        return namedNodeMap.getLength();
+    }
+
+    @Override
+    public Node getNamedItemNS(String namespaceURI, String localName) throws DOMException {
+        return namedNodeMap.getNamedItemNS(namespaceURI, localName);
+    }
+
+    @Override
+    public Node setNamedItemNS(Node arg) throws DOMException {
+        return namedNodeMap.setNamedItemNS(arg);
+    }
+
+    @Override
+    public Node removeNamedItemNS(String namespaceURI, String localName) throws DOMException {
+        return namedNodeMap.removeNamedItemNS(namespaceURI, localName);
+    }
+}
diff --git a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/impl/SOAPCommentImpl.java b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/impl/SOAPCommentImpl.java
index 85fbb14..b05af53 100644
--- a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/impl/SOAPCommentImpl.java
+++ b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/impl/SOAPCommentImpl.java
@@ -25,327 +25,64 @@
 
 package com.sun.xml.internal.messaging.saaj.soap.impl;
 
-import java.util.ResourceBundle;
-import java.util.logging.Logger;
-
-import javax.xml.soap.SOAPElement;
-import javax.xml.soap.SOAPException;
-
-import com.sun.xml.internal.messaging.saaj.util.SAAJUtil;
+import org.w3c.dom.CharacterData;
 import org.w3c.dom.Comment;
 import org.w3c.dom.DOMException;
-import org.w3c.dom.Document;
-import org.w3c.dom.NamedNodeMap;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
 import org.w3c.dom.Text;
 
 import com.sun.xml.internal.messaging.saaj.soap.SOAPDocumentImpl;
-import com.sun.xml.internal.messaging.saaj.util.LogDomainConstants;
-import org.w3c.dom.UserDataHandler;
+import static com.sun.xml.internal.messaging.saaj.soap.impl.TextImpl.log;
 
-public class SOAPCommentImpl
-    implements javax.xml.soap.Text, org.w3c.dom.Comment {
-
-    protected static final Logger log =
-        Logger.getLogger(LogDomainConstants.SOAP_IMPL_DOMAIN,
-                         "com.sun.xml.internal.messaging.saaj.soap.impl.LocalStrings");
-    protected static ResourceBundle rb =
-        log.getResourceBundle();
-
-    @Override
-    public String getData() throws DOMException {
-        return comment.getData();
-    }
-
-    @Override
-    public void setData(String data) throws DOMException {
-        comment.setData(data);
-    }
-
-    @Override
-    public int getLength() {
-        return comment.getLength();
-    }
-
-    @Override
-    public String substringData(int offset, int count) throws DOMException {
-        return comment.substringData(offset, count);
-    }
-
-    @Override
-    public void appendData(String arg) throws DOMException {
-        comment.appendData(arg);
-    }
-
-    @Override
-    public void insertData(int offset, String arg) throws DOMException {
-        comment.insertData(offset, arg);
-    }
-
-    @Override
-    public void deleteData(int offset, int count) throws DOMException {
-        comment.deleteData(offset, count);
-    }
-
-    @Override
-    public void replaceData(int offset, int count, String arg) throws DOMException {
-        comment.replaceData(offset, count, arg);
-    }
-
-    @Override
-    public String getNodeName() {
-        return comment.getNodeName();
-    }
-
-    @Override
-    public String getNodeValue() throws DOMException {
-        return comment.getNodeValue();
-    }
-
-    @Override
-    public void setNodeValue(String nodeValue) throws DOMException {
-        comment.setNodeValue(nodeValue);
-    }
-
-    @Override
-    public short getNodeType() {
-        return comment.getNodeType();
-    }
-
-    @Override
-    public Node getParentNode() {
-        return comment.getParentNode();
-    }
-
-    @Override
-    public NodeList getChildNodes() {
-        return comment.getChildNodes();
-    }
-
-    @Override
-    public Node getFirstChild() {
-        return comment.getFirstChild();
-    }
-
-    @Override
-    public Node getLastChild() {
-        return comment.getLastChild();
-    }
-
-    @Override
-    public Node getPreviousSibling() {
-        return comment.getPreviousSibling();
-    }
-
-    @Override
-    public Node getNextSibling() {
-        return comment.getNextSibling();
-    }
-
-    @Override
-    public NamedNodeMap getAttributes() {
-        return comment.getAttributes();
-    }
-
-    @Override
-    public Document getOwnerDocument() {
-        return comment.getOwnerDocument();
-    }
-
-    @Override
-    public Node insertBefore(Node newChild, Node refChild) throws DOMException {
-        return comment.insertBefore(newChild, refChild);
-    }
-
-    @Override
-    public Node replaceChild(Node newChild, Node oldChild) throws DOMException {
-        return comment.replaceChild(newChild, oldChild);
-    }
-
-    @Override
-    public Node removeChild(Node oldChild) throws DOMException {
-        return comment.removeChild(oldChild);
-    }
-
-    @Override
-    public Node appendChild(Node newChild) throws DOMException {
-        return comment.appendChild(newChild);
-    }
-
-    @Override
-    public boolean hasChildNodes() {
-        return comment.hasChildNodes();
-    }
-
-    @Override
-    public Node cloneNode(boolean deep) {
-        return comment.cloneNode(deep);
-    }
-
-    @Override
-    public void normalize() {
-        comment.normalize();
-    }
-
-    @Override
-    public boolean isSupported(String feature, String version) {
-        return comment.isSupported(feature, version);
-    }
-
-    @Override
-    public String getNamespaceURI() {
-        return comment.getNamespaceURI();
-    }
-
-    @Override
-    public String getPrefix() {
-        return comment.getPrefix();
-    }
-
-    @Override
-    public void setPrefix(String prefix) throws DOMException {
-        comment.setPrefix(prefix);
-    }
-
-    @Override
-    public String getLocalName() {
-        return comment.getLocalName();
-    }
-
-    @Override
-    public boolean hasAttributes() {
-        return comment.hasAttributes();
-    }
-
-    @Override
-    public String getBaseURI() {
-        return comment.getBaseURI();
-    }
-
-    @Override
-    public short compareDocumentPosition(Node other) throws DOMException {
-        return comment.compareDocumentPosition(other);
-    }
-
-    @Override
-    public String getTextContent() throws DOMException {
-        return comment.getTextContent();
-    }
-
-    @Override
-    public void setTextContent(String textContent) throws DOMException {
-        comment.setTextContent(textContent);
-    }
-
-    @Override
-    public boolean isSameNode(Node other) {
-        return comment.isSameNode(other);
-    }
-
-    @Override
-    public String lookupPrefix(String namespaceURI) {
-        return comment.lookupPrefix(namespaceURI);
-    }
-
-    @Override
-    public boolean isDefaultNamespace(String namespaceURI) {
-        return comment.isDefaultNamespace(namespaceURI);
-    }
-
-    @Override
-    public String lookupNamespaceURI(String prefix) {
-        return comment.lookupNamespaceURI(prefix);
-    }
-
-    @Override
-    public boolean isEqualNode(Node arg) {
-        return comment.isEqualNode(arg);
-    }
-
-    @Override
-    public Object getFeature(String feature, String version) {
-        return comment.getFeature(feature, version);
-    }
-
-    @Override
-    public Object setUserData(String key, Object data, UserDataHandler handler) {
-        return comment.setUserData(key, data, handler);
-    }
-
-    @Override
-    public Object getUserData(String key) {
-        return comment.getUserData(key);
-    }
-
-    private Comment comment;
+public class SOAPCommentImpl extends TextImpl<Comment> implements Comment {
 
     public SOAPCommentImpl(SOAPDocumentImpl ownerDoc, String text) {
-        comment = ownerDoc.getDomDocument().createComment(text);
-        ownerDoc.register(this);
+        super(ownerDoc, text);
     }
 
-    public String getValue() {
-        String nodeValue = getNodeValue();
-        return (nodeValue.equals("") ? null : nodeValue);
+    public SOAPCommentImpl(SOAPDocumentImpl ownerDoc, CharacterData data) {
+        super(ownerDoc, data);
     }
 
-    public void setValue(String text) {
-        setNodeValue(text);
+    @Override
+    protected Comment createN(SOAPDocumentImpl ownerDoc, String text) {
+        Comment c = ownerDoc.getDomDocument().createComment(text);
+//        ownerDoc.register(this);
+        return c;
     }
 
-
-    public void setParentElement(SOAPElement element) throws SOAPException {
-        if (element == null) {
-            log.severe("SAAJ0112.impl.no.null.to.parent.elem");
-            throw new SOAPException("Cannot pass NULL to setParentElement");
-        }
-        ((ElementImpl) element).addNode(this);
+    @Override
+    protected Comment createN(SOAPDocumentImpl ownerDoc, CharacterData data) {
+        Comment c = (Comment) data;
+        return c;
     }
 
-    public SOAPElement getParentElement() {
-        return (SOAPElement) getParentNode();
-    }
-
-    public void detachNode() {
-        org.w3c.dom.Node parent = getParentNode();
-        if (parent != null) {
-            parent.removeChild(this);
-        }
-    }
-
-    public void recycleNode() {
-        detachNode();
-        // TBD
-        //  - add this to the factory so subsequent
-        //    creations can reuse this object.
-    }
-
+    @Override
     public boolean isComment() {
         return true;
     }
 
+    @Override
     public Text splitText(int offset) throws DOMException {
         log.severe("SAAJ0113.impl.cannot.split.text.from.comment");
         throw new UnsupportedOperationException("Cannot split text from a Comment Node.");
     }
 
+    @Override
     public Text replaceWholeText(String content) throws DOMException {
         log.severe("SAAJ0114.impl.cannot.replace.wholetext.from.comment");
         throw new UnsupportedOperationException("Cannot replace Whole Text from a Comment Node.");
     }
 
+    @Override
     public String getWholeText() {
         //TODO: maybe we have to implement this in future.
         throw new UnsupportedOperationException("Not Supported");
     }
 
+    @Override
     public boolean isElementContentWhitespace() {
         //TODO: maybe we have to implement this in future.
         throw new UnsupportedOperationException("Not Supported");
     }
 
-    public Comment getDomElement() {
-        return comment;
-    }
 }
diff --git a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/impl/SOAPTextImpl.java b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/impl/SOAPTextImpl.java
index 076cacb..63cb43a 100644
--- a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/impl/SOAPTextImpl.java
+++ b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/impl/SOAPTextImpl.java
@@ -25,316 +25,55 @@
 
 package com.sun.xml.internal.messaging.saaj.soap.impl;
 
-import java.util.logging.Logger;
-
-import javax.xml.soap.SOAPElement;
-import javax.xml.soap.SOAPException;
-
 import com.sun.xml.internal.messaging.saaj.soap.SOAPDocumentImpl;
-import com.sun.xml.internal.messaging.saaj.util.LogDomainConstants;
+import org.w3c.dom.CharacterData;
 import org.w3c.dom.DOMException;
-import org.w3c.dom.Document;
-import org.w3c.dom.NamedNodeMap;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
 import org.w3c.dom.Text;
-import org.w3c.dom.UserDataHandler;
 
-public class SOAPTextImpl
-    implements javax.xml.soap.Text, org.w3c.dom.Text {
+public class SOAPTextImpl extends TextImpl<Text> implements Text {
+
+    public SOAPTextImpl(SOAPDocumentImpl ownerDoc, String text) {
+        super(ownerDoc, text);
+    }
+
+    public SOAPTextImpl(SOAPDocumentImpl ownerDoc, CharacterData data) {
+        super(ownerDoc, data);
+    }
+
+    @Override
+    protected Text createN(SOAPDocumentImpl ownerDoc, String text) {
+        Text t = ownerDoc.getDomDocument().createTextNode(text);
+//        ownerDoc.register(this);
+        return t;
+    }
+
+    @Override
+    protected Text createN(SOAPDocumentImpl ownerDoc, CharacterData data) {
+        Text t = (Text) data;
+        return t;
+    }
 
     @Override
     public Text splitText(int offset) throws DOMException {
-        return textNode.splitText(offset);
+        return getDomElement().splitText(offset);
     }
 
     @Override
     public boolean isElementContentWhitespace() {
-        return textNode.isElementContentWhitespace();
+        return getDomElement().isElementContentWhitespace();
     }
 
     @Override
     public String getWholeText() {
-        return textNode.getWholeText();
+        return getDomElement().getWholeText();
     }
 
     @Override
     public Text replaceWholeText(String content) throws DOMException {
-        return textNode.replaceWholeText(content);
+        return getDomElement().replaceWholeText(content);
     }
 
     @Override
-    public String getData() throws DOMException {
-        return textNode.getData();
-    }
-
-    @Override
-    public void setData(String data) throws DOMException {
-        textNode.setData(data);
-    }
-
-    @Override
-    public int getLength() {
-        return textNode.getLength();
-    }
-
-    @Override
-    public String substringData(int offset, int count) throws DOMException {
-        return textNode.substringData(offset, count);
-    }
-
-    @Override
-    public void appendData(String arg) throws DOMException {
-        textNode.appendData(arg);
-    }
-
-    @Override
-    public void insertData(int offset, String arg) throws DOMException {
-        textNode.insertData(offset, arg);
-    }
-
-    @Override
-    public void deleteData(int offset, int count) throws DOMException {
-        textNode.deleteData(offset, count);
-    }
-
-    @Override
-    public void replaceData(int offset, int count, String arg) throws DOMException {
-        textNode.replaceData(offset, count, arg);
-    }
-
-    @Override
-    public String getNodeName() {
-        return textNode.getNodeName();
-    }
-
-    @Override
-    public String getNodeValue() throws DOMException {
-        return textNode.getNodeValue();
-    }
-
-    @Override
-    public void setNodeValue(String nodeValue) throws DOMException {
-        textNode.setNodeValue(nodeValue);
-    }
-
-    @Override
-    public short getNodeType() {
-        return textNode.getNodeType();
-    }
-
-    @Override
-    public Node getParentNode() {
-        return textNode.getParentNode();
-    }
-
-    @Override
-    public NodeList getChildNodes() {
-        return textNode.getChildNodes();
-    }
-
-    @Override
-    public Node getFirstChild() {
-        return textNode.getFirstChild();
-    }
-
-    @Override
-    public Node getLastChild() {
-        return textNode.getLastChild();
-    }
-
-    @Override
-    public Node getPreviousSibling() {
-        return textNode.getPreviousSibling();
-    }
-
-    @Override
-    public Node getNextSibling() {
-        return textNode.getNextSibling();
-    }
-
-    @Override
-    public NamedNodeMap getAttributes() {
-        return textNode.getAttributes();
-    }
-
-    @Override
-    public Document getOwnerDocument() {
-        return textNode.getOwnerDocument();
-    }
-
-    @Override
-    public Node insertBefore(Node newChild, Node refChild) throws DOMException {
-        return textNode.insertBefore(newChild, refChild);
-    }
-
-    @Override
-    public Node replaceChild(Node newChild, Node oldChild) throws DOMException {
-        return textNode.replaceChild(newChild, oldChild);
-    }
-
-    @Override
-    public Node removeChild(Node oldChild) throws DOMException {
-        return textNode.removeChild(oldChild);
-    }
-
-    @Override
-    public Node appendChild(Node newChild) throws DOMException {
-        return textNode.appendChild(newChild);
-    }
-
-    @Override
-    public boolean hasChildNodes() {
-        return textNode.hasChildNodes();
-    }
-
-    @Override
-    public Node cloneNode(boolean deep) {
-        return textNode.cloneNode(deep);
-    }
-
-    @Override
-    public void normalize() {
-        textNode.normalize();
-    }
-
-    @Override
-    public boolean isSupported(String feature, String version) {
-        return textNode.isSupported(feature, version);
-    }
-
-    @Override
-    public String getNamespaceURI() {
-        return textNode.getNamespaceURI();
-    }
-
-    @Override
-    public String getPrefix() {
-        return textNode.getPrefix();
-    }
-
-    @Override
-    public void setPrefix(String prefix) throws DOMException {
-        textNode.setPrefix(prefix);
-    }
-
-    @Override
-    public String getLocalName() {
-        return textNode.getLocalName();
-    }
-
-    @Override
-    public boolean hasAttributes() {
-        return textNode.hasAttributes();
-    }
-
-    @Override
-    public String getBaseURI() {
-        return textNode.getBaseURI();
-    }
-
-    @Override
-    public short compareDocumentPosition(Node other) throws DOMException {
-        return textNode.compareDocumentPosition(other);
-    }
-
-    @Override
-    public String getTextContent() throws DOMException {
-        return textNode.getTextContent();
-    }
-
-    @Override
-    public void setTextContent(String textContent) throws DOMException {
-        textNode.setTextContent(textContent);
-    }
-
-    @Override
-    public boolean isSameNode(Node other) {
-        return textNode.isSameNode(other);
-    }
-
-    @Override
-    public String lookupPrefix(String namespaceURI) {
-        return textNode.lookupPrefix(namespaceURI);
-    }
-
-    @Override
-    public boolean isDefaultNamespace(String namespaceURI) {
-        return textNode.isDefaultNamespace(namespaceURI);
-    }
-
-    @Override
-    public String lookupNamespaceURI(String prefix) {
-        return textNode.lookupNamespaceURI(prefix);
-    }
-
-    @Override
-    public boolean isEqualNode(Node arg) {
-        return textNode.isEqualNode(arg);
-    }
-
-    @Override
-    public Object getFeature(String feature, String version) {
-        return textNode.getFeature(feature, version);
-    }
-
-    @Override
-    public Object setUserData(String key, Object data, UserDataHandler handler) {
-        return textNode.setUserData(key, data, handler);
-    }
-
-    @Override
-    public Object getUserData(String key) {
-        return textNode.getUserData(key);
-    }
-
-    protected static final Logger log =
-        Logger.getLogger(LogDomainConstants.SOAP_IMPL_DOMAIN,
-                         "com.sun.xml.internal.messaging.saaj.soap.impl.LocalStrings");
-
-    private Text textNode;
-
-    public SOAPTextImpl(SOAPDocumentImpl ownerDoc, String text) {
-        textNode = ownerDoc.getDomDocument().createTextNode(text);
-        ownerDoc.register(this);
-    }
-
-    public String getValue() {
-        String nodeValue = getNodeValue();
-        return (nodeValue.equals("") ? null : nodeValue);
-    }
-
-    public void setValue(String text) {
-        setNodeValue(text);
-    }
-
-    public void setParentElement(SOAPElement parent) throws SOAPException {
-        if (parent == null) {
-            log.severe("SAAJ0126.impl.cannot.locate.ns");
-            throw new SOAPException("Cannot pass NULL to setParentElement");
-        }
-        ((ElementImpl) parent).addNode(this);
-    }
-
-    public SOAPElement getParentElement() {
-        return (SOAPElement) getParentNode();
-    }
-
-
-    public void detachNode() {
-        org.w3c.dom.Node parent = getParentNode();
-        if (parent != null) {
-            parent.removeChild(getDomElement());
-        }
-    }
-
-    public void recycleNode() {
-        detachNode();
-        // TBD
-        //  - add this to the factory so subsequent
-        //    creations can reuse this object.
-    }
-
     public boolean isComment() {
         String txt = getNodeValue();
         if (txt == null) {
@@ -343,7 +82,4 @@
         return txt.startsWith("<!--") && txt.endsWith("-->");
     }
 
-    public Text getDomElement() {
-        return textNode;
-    }
 }
diff --git a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/impl/TextImpl.java b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/impl/TextImpl.java
new file mode 100644
index 0000000..0a49b10
--- /dev/null
+++ b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/impl/TextImpl.java
@@ -0,0 +1,342 @@
+/*
+ * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package com.sun.xml.internal.messaging.saaj.soap.impl;
+
+import com.sun.xml.internal.messaging.saaj.soap.SOAPDocumentImpl;
+import com.sun.xml.internal.messaging.saaj.util.LogDomainConstants;
+import java.util.logging.Logger;
+import javax.xml.soap.SOAPElement;
+import javax.xml.soap.SOAPException;
+import javax.xml.soap.Text;
+import org.w3c.dom.CharacterData;
+import org.w3c.dom.DOMException;
+import org.w3c.dom.Document;
+import org.w3c.dom.NamedNodeMap;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+import org.w3c.dom.UserDataHandler;
+
+/**
+ *
+ * @author lukas
+ * @param <T>
+ */
+public abstract class TextImpl<T extends CharacterData> implements Text, CharacterData {
+
+    protected static final Logger log
+            = Logger.getLogger(LogDomainConstants.SOAP_IMPL_DOMAIN,
+                    "com.sun.xml.internal.messaging.saaj.soap.impl.LocalStrings");
+    private final T domNode;
+
+    private final SOAPDocumentImpl soapDocument;
+
+    protected TextImpl(SOAPDocumentImpl ownerDoc, String text) {
+        this.soapDocument = ownerDoc;
+        domNode = createN(ownerDoc, text);
+        ownerDoc.register(this);
+    }
+
+    protected TextImpl(SOAPDocumentImpl ownerDoc, CharacterData data) {
+        this.soapDocument = ownerDoc;
+        domNode = createN(ownerDoc, data);
+        ownerDoc.register(this);
+    }
+
+    protected abstract T createN(SOAPDocumentImpl ownerDoc, CharacterData data);
+
+    protected abstract T createN(SOAPDocumentImpl ownerDoc, String text);
+
+    public T getDomElement() {
+        return domNode;
+    }
+
+    @Override
+    public String getValue() {
+        String nodeValue = getNodeValue();
+        return (nodeValue.equals("") ? null : nodeValue);
+    }
+
+    @Override
+    public void setValue(String text) {
+        setNodeValue(text);
+    }
+
+    @Override
+    public void setParentElement(SOAPElement parent) throws SOAPException {
+        if (parent == null) {
+            log.severe("SAAJ0112.impl.no.null.to.parent.elem");
+            throw new SOAPException("Cannot pass NULL to setParentElement");
+        }
+        ((ElementImpl) parent).addNode(this);
+    }
+
+    @Override
+    public SOAPElement getParentElement() {
+        return (SOAPElement) getParentNode();
+    }
+
+    @Override
+    public void detachNode() {
+        org.w3c.dom.Node parent = getParentNode();
+        if (parent != null) {
+             parent.removeChild(getDomElement());
+        }
+    }
+
+    @Override
+    public void recycleNode() {
+        detachNode();
+        // TBD
+        //  - add this to the factory so subsequent
+        //    creations can reuse this object.
+    }
+
+    @Override
+    public String getNodeName() {
+        return domNode.getNodeName();
+    }
+
+    @Override
+    public String getNodeValue() throws DOMException {
+        return domNode.getNodeValue();
+    }
+
+    @Override
+    public void setNodeValue(String nodeValue) throws DOMException {
+        domNode.setNodeValue(nodeValue);
+    }
+
+    @Override
+    public short getNodeType() {
+        return domNode.getNodeType();
+    }
+
+    @Override
+    public Node getParentNode() {
+        return domNode.getParentNode();
+    }
+
+    @Override
+    public NodeList getChildNodes() {
+        return domNode.getChildNodes();
+    }
+
+    @Override
+    public Node getFirstChild() {
+        return domNode.getFirstChild();
+    }
+
+    @Override
+    public Node getLastChild() {
+        return domNode.getLastChild();
+    }
+
+    @Override
+    public Node getPreviousSibling() {
+        return domNode.getPreviousSibling();
+    }
+
+    @Override
+    public Node getNextSibling() {
+        return domNode.getNextSibling();
+    }
+
+    @Override
+    public NamedNodeMap getAttributes() {
+        return domNode.getAttributes();
+    }
+
+    @Override
+    public Document getOwnerDocument() {
+        return domNode.getOwnerDocument();
+    }
+
+    @Override
+    public Node insertBefore(Node newChild, Node refChild) throws DOMException {
+        return domNode.insertBefore(newChild, refChild);
+    }
+
+    @Override
+    public Node replaceChild(Node newChild, Node oldChild) throws DOMException {
+        return domNode.replaceChild(newChild, oldChild);
+    }
+
+    @Override
+    public Node removeChild(Node oldChild) throws DOMException {
+        return domNode.removeChild(oldChild);
+    }
+
+    @Override
+    public Node appendChild(Node newChild) throws DOMException {
+        return domNode.appendChild(newChild);
+    }
+
+    @Override
+    public boolean hasChildNodes() {
+        return domNode.hasChildNodes();
+    }
+
+    @Override
+    public Node cloneNode(boolean deep) {
+        return domNode.cloneNode(deep);
+    }
+
+    @Override
+    public void normalize() {
+        domNode.normalize();
+    }
+
+    @Override
+    public boolean isSupported(String feature, String version) {
+        return domNode.isSupported(feature, version);
+    }
+
+    @Override
+    public String getNamespaceURI() {
+        return domNode.getNamespaceURI();
+    }
+
+    @Override
+    public String getPrefix() {
+        return domNode.getPrefix();
+    }
+
+    @Override
+    public void setPrefix(String prefix) throws DOMException {
+        domNode.setPrefix(prefix);
+    }
+
+    @Override
+    public String getLocalName() {
+        return domNode.getLocalName();
+    }
+
+    @Override
+    public boolean hasAttributes() {
+        return domNode.hasAttributes();
+    }
+
+    @Override
+    public String getBaseURI() {
+        return domNode.getBaseURI();
+    }
+
+    @Override
+    public short compareDocumentPosition(Node other) throws DOMException {
+        return domNode.compareDocumentPosition(other);
+    }
+
+    @Override
+    public String getTextContent() throws DOMException {
+        return domNode.getTextContent();
+    }
+
+    @Override
+    public void setTextContent(String textContent) throws DOMException {
+        domNode.setTextContent(textContent);;
+    }
+
+    @Override
+    public boolean isSameNode(Node other) {
+        return domNode.isSameNode(other);
+    }
+
+    @Override
+    public String lookupPrefix(String namespaceURI) {
+        return domNode.lookupPrefix(namespaceURI);
+    }
+
+    @Override
+    public boolean isDefaultNamespace(String namespaceURI) {
+        return domNode.isDefaultNamespace(namespaceURI);
+    }
+
+    @Override
+    public String lookupNamespaceURI(String prefix) {
+        return domNode.lookupNamespaceURI(prefix);
+    }
+
+    @Override
+    public boolean isEqualNode(Node arg) {
+        return domNode.isEqualNode(arg);
+    }
+
+    @Override
+    public Object getFeature(String feature, String version) {
+        return domNode.getFeature(feature, version);
+    }
+
+    @Override
+    public Object setUserData(String key, Object data, UserDataHandler handler) {
+        return domNode.setUserData(key, data, handler);
+    }
+
+    @Override
+    public Object getUserData(String key) {
+        return domNode.getUserData(key);
+    }
+
+    @Override
+    public String getData() throws DOMException {
+        return domNode.getData();
+    }
+
+    @Override
+    public void setData(String data) throws DOMException {
+        domNode.setData(data);
+    }
+
+    @Override
+    public int getLength() {
+        return domNode.getLength();
+    }
+
+    @Override
+    public String substringData(int offset, int count) throws DOMException {
+        return domNode.substringData(offset, count);
+    }
+
+    @Override
+    public void appendData(String arg) throws DOMException {
+        domNode.appendData(arg);
+    }
+
+    @Override
+    public void insertData(int offset, String arg) throws DOMException {
+        domNode.insertData(offset, arg);
+    }
+
+    @Override
+    public void deleteData(int offset, int count) throws DOMException {
+        domNode.deleteData(offset, count);
+    }
+
+    @Override
+    public void replaceData(int offset, int count, String arg) throws DOMException {
+        domNode.replaceData(offset, count, arg);
+    }
+
+}
diff --git a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/ver1_1/Body1_1Impl.java b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/ver1_1/Body1_1Impl.java
index 453abec..f841bf7 100644
--- a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/ver1_1/Body1_1Impl.java
+++ b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/ver1_1/Body1_1Impl.java
@@ -54,32 +54,38 @@
         throw new UnsupportedOperationException("Not supported in SOAP 1.1");
     }
 
+    @Override
     protected NameImpl getFaultName(String name) {
         // Ignore name
         return NameImpl.createFault1_1Name(null);
     }
 
+    @Override
     protected SOAPBodyElement createBodyElement(Name name) {
         return new BodyElement1_1Impl(
             ((SOAPDocument) getOwnerDocument()).getDocument(),
             name);
     }
 
+    @Override
     protected SOAPBodyElement createBodyElement(QName name) {
         return new BodyElement1_1Impl(
             ((SOAPDocument) getOwnerDocument()).getDocument(),
             name);
     }
 
+    @Override
     protected QName getDefaultFaultCode() {
         return new QName(SOAPConstants.URI_NS_SOAP_1_1_ENVELOPE, "Server");
     }
 
+    @Override
     protected boolean isFault(SOAPElement child) {
         // SOAP 1.1 faults always use the default name
         return child.getElementName().equals(getFaultName(null));
     }
 
+    @Override
     protected SOAPFault createFaultElement() {
         return new Fault1_1Impl(
             ((SOAPDocument) getOwnerDocument()).getDocument(), getPrefix());
diff --git a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/ver1_1/BodyElement1_1Impl.java b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/ver1_1/BodyElement1_1Impl.java
index 6cc387d..9f6db55 100644
--- a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/ver1_1/BodyElement1_1Impl.java
+++ b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/ver1_1/BodyElement1_1Impl.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -36,6 +36,7 @@
 
 import com.sun.xml.internal.messaging.saaj.soap.SOAPDocumentImpl;
 import com.sun.xml.internal.messaging.saaj.soap.impl.BodyElementImpl;
+import org.w3c.dom.Element;
 
 public class BodyElement1_1Impl extends BodyElementImpl {
 
@@ -45,6 +46,12 @@
     public BodyElement1_1Impl(SOAPDocumentImpl ownerDoc, QName qname) {
         super(ownerDoc, qname);
     }
+
+    public BodyElement1_1Impl(SOAPDocumentImpl ownerDoc, Element domElement) {
+        super(ownerDoc, domElement);
+    }
+
+    @Override
     public SOAPElement setElementQName(QName newName) throws SOAPException {
         BodyElementImpl copy =
             new BodyElement1_1Impl((SOAPDocumentImpl) getOwnerDocument(), newName);
diff --git a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/ver1_1/Detail1_1Impl.java b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/ver1_1/Detail1_1Impl.java
index acd4612..6d4fe38 100644
--- a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/ver1_1/Detail1_1Impl.java
+++ b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/ver1_1/Detail1_1Impl.java
@@ -51,11 +51,13 @@
         super(ownerDoc, domElement);
     }
 
+    @Override
     protected DetailEntry createDetailEntry(Name name) {
         return new DetailEntry1_1Impl(
             (SOAPDocumentImpl) getOwnerDocument(),
             name);
     }
+    @Override
     protected DetailEntry createDetailEntry(QName name) {
         return new DetailEntry1_1Impl(
             (SOAPDocumentImpl) getOwnerDocument(),
diff --git a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/ver1_1/DetailEntry1_1Impl.java b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/ver1_1/DetailEntry1_1Impl.java
index 6c9ea4e..a0571e2 100644
--- a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/ver1_1/DetailEntry1_1Impl.java
+++ b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/ver1_1/DetailEntry1_1Impl.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -36,6 +36,7 @@
 
 import com.sun.xml.internal.messaging.saaj.soap.SOAPDocumentImpl;
 import com.sun.xml.internal.messaging.saaj.soap.impl.DetailEntryImpl;
+import org.w3c.dom.Element;
 
 public class DetailEntry1_1Impl extends DetailEntryImpl {
 
@@ -45,6 +46,12 @@
     public DetailEntry1_1Impl(SOAPDocumentImpl ownerDoc, QName qname) {
         super(ownerDoc, qname);
     }
+
+    public DetailEntry1_1Impl(SOAPDocumentImpl ownerDoc, Element domElement) {
+        super(ownerDoc, domElement);
+    }
+
+    @Override
     public SOAPElement setElementQName(QName newName) throws SOAPException {
         DetailEntryImpl copy =
             new DetailEntry1_1Impl((SOAPDocumentImpl) getOwnerDocument(), newName);
diff --git a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/ver1_1/Envelope1_1Impl.java b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/ver1_1/Envelope1_1Impl.java
index de55d8f..31429c7 100644
--- a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/ver1_1/Envelope1_1Impl.java
+++ b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/ver1_1/Envelope1_1Impl.java
@@ -58,10 +58,12 @@
         super(ownerDoc, domElement);
     }
 
+    @Override
     protected NameImpl getBodyName(String prefix) {
         return NameImpl.createBody1_1Name(prefix);
     }
 
+    @Override
     protected NameImpl getHeaderName(String prefix) {
         return NameImpl.createHeader1_1Name(prefix);
     }
diff --git a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/ver1_1/Fault1_1Impl.java b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/ver1_1/Fault1_1Impl.java
index 58c00c4..c2cf2c0 100644
--- a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/ver1_1/Fault1_1Impl.java
+++ b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/ver1_1/Fault1_1Impl.java
@@ -60,37 +60,48 @@
        super(ownerDocument, NameImpl.createFault1_1Name(prefix));
     }
 
-    public Fault1_1Impl(Element domElement, SOAPDocumentImpl ownerDoc) {
+    public Fault1_1Impl(SOAPDocumentImpl ownerDoc, Element domElement) {
         super(ownerDoc, domElement);
     }
 
+    public Fault1_1Impl(SOAPDocumentImpl ownerDoc) {
+        super(ownerDoc, NameImpl.createFault1_1Name(null));
+    }
+
+    @Override
     protected NameImpl getDetailName() {
         return NameImpl.createDetail1_1Name();
     }
 
+    @Override
     protected NameImpl getFaultCodeName() {
         return NameImpl.createFromUnqualifiedName("faultcode");
     }
 
+    @Override
     protected NameImpl getFaultStringName() {
         return NameImpl.createFromUnqualifiedName("faultstring");
     }
 
+    @Override
     protected NameImpl getFaultActorName() {
         return NameImpl.createFromUnqualifiedName("faultactor");
     }
 
+    @Override
     protected DetailImpl createDetail() {
         return new Detail1_1Impl(
                        ((SOAPDocument) getOwnerDocument()).getDocument());
     }
 
+    @Override
     protected FaultElementImpl createSOAPFaultElement(String localName) {
         return new FaultElement1_1Impl(
                        ((SOAPDocument) getOwnerDocument()).getDocument(),
                        localName);
     }
 
+    @Override
     protected void checkIfStandardFaultCode(String faultCode, String uri)
         throws SOAPException {
         // SOAP 1.1 doesn't seem to mandate using faultcode from a particular
@@ -98,16 +109,19 @@
         // Also need to be backward compatible.
     }
 
+    @Override
     protected void finallySetFaultCode(String faultcode) throws SOAPException {
         this.faultCodeElement.addTextNode(faultcode);
     }
 
+    @Override
     public String getFaultCode() {
         if (this.faultCodeElement == null)
             findFaultCodeElement();
         return this.faultCodeElement.getValue();
     }
 
+    @Override
     public Name getFaultCodeAsName() {
 
         String faultcodeString = getFaultCode();
@@ -132,6 +146,7 @@
         return NameImpl.createFromQualifiedName(faultcodeString, nsName);
     }
 
+    @Override
     public QName getFaultCodeAsQName() {
         String faultcodeString = getFaultCode();
         if (faultcodeString == null) {
@@ -142,6 +157,7 @@
         return convertCodeToQName(faultcodeString, this.faultCodeElement);
     }
 
+    @Override
     public void setFaultString(String faultString) throws SOAPException {
 
         if (this.faultStringElement == null)
@@ -158,6 +174,7 @@
         this.faultStringElement.addTextNode(faultString);
     }
 
+    @Override
     public String getFaultString() {
         if (this.faultStringElement == null)
             findFaultStringElement();
@@ -165,6 +182,7 @@
 
     }
 
+    @Override
     public Locale getFaultStringLocale() {
         if (this.faultStringElement == null)
             findFaultStringElement();
@@ -178,6 +196,7 @@
         return null;
     }
 
+    @Override
     public void setFaultString(String faultString, Locale locale)
         throws SOAPException {
         setFaultString(faultString);
@@ -186,6 +205,7 @@
             localeToXmlLang(locale));
     }
 
+    @Override
     protected boolean isStandardFaultElement(String localName) {
         if (localName.equalsIgnoreCase("detail") ||
             localName.equalsIgnoreCase("faultcode") ||
@@ -196,6 +216,7 @@
         return false;
     }
 
+    @Override
     public void appendFaultSubcode(QName subcode) {
         log.log(
             Level.SEVERE,
@@ -204,6 +225,7 @@
         throw new UnsupportedOperationException("Not supported in SOAP 1.1");
     }
 
+    @Override
     public void removeAllFaultSubcodes() {
         log.log(
             Level.SEVERE,
@@ -212,7 +234,8 @@
         throw new UnsupportedOperationException("Not supported in SOAP 1.1");
     }
 
-    public Iterator getFaultSubcodes() {
+    @Override
+    public Iterator<QName> getFaultSubcodes() {
         log.log(
             Level.SEVERE,
             "SAAJ0303.ver1_1.msg.op.unsupported.in.SOAP1.1",
@@ -220,6 +243,7 @@
         throw new UnsupportedOperationException("Not supported in SOAP 1.1");
     }
 
+    @Override
     public String getFaultReasonText(Locale locale) {
         log.log(
             Level.SEVERE,
@@ -228,7 +252,8 @@
         throw new UnsupportedOperationException("Not supported in SOAP 1.1");
     }
 
-    public Iterator getFaultReasonTexts() {
+    @Override
+    public Iterator<String> getFaultReasonTexts() {
         log.log(
             Level.SEVERE,
             "SAAJ0303.ver1_1.msg.op.unsupported.in.SOAP1.1",
@@ -236,7 +261,8 @@
         throw new UnsupportedOperationException("Not supported in SOAP 1.1");
     }
 
-    public Iterator getFaultReasonLocales() {
+    @Override
+    public Iterator<Locale> getFaultReasonLocales() {
         log.log(
             Level.SEVERE,
             "SAAJ0303.ver1_1.msg.op.unsupported.in.SOAP1.1",
@@ -244,6 +270,7 @@
         throw new UnsupportedOperationException("Not supported in SOAP 1.1");
     }
 
+    @Override
     public void addFaultReasonText(String text, java.util.Locale locale)
         throws SOAPException {
         log.log(
@@ -253,6 +280,7 @@
         throw new UnsupportedOperationException("Not supported in SOAP 1.1");
     }
 
+    @Override
     public String getFaultRole() {
         log.log(
             Level.SEVERE,
@@ -261,6 +289,7 @@
         throw new UnsupportedOperationException("Not supported in SOAP 1.1");
     }
 
+    @Override
     public void setFaultRole(String uri) {
         log.log(
             Level.SEVERE,
@@ -269,6 +298,7 @@
         throw new UnsupportedOperationException("Not supported in SOAP 1.1");
     }
 
+    @Override
     public String getFaultNode() {
         log.log(
             Level.SEVERE,
@@ -277,6 +307,7 @@
         throw new UnsupportedOperationException("Not supported in SOAP 1.1");
     }
 
+    @Override
     public void setFaultNode(String uri) {
         log.log(
             Level.SEVERE,
@@ -285,10 +316,12 @@
         throw new UnsupportedOperationException("Not supported in SOAP 1.1");
     }
 
+    @Override
     protected QName getDefaultFaultCode() {
         return new QName(SOAPConstants.URI_NS_SOAP_1_1_ENVELOPE, "Server");
     }
 
+    @Override
     public SOAPElement addChildElement(SOAPElement element)
         throws SOAPException {
         String localName = element.getLocalName();
@@ -301,18 +334,21 @@
         return super.addChildElement(element);
     }
 
+    @Override
     protected FaultElementImpl createSOAPFaultElement(QName qname) {
          return new FaultElement1_1Impl(
                        ((SOAPDocument) getOwnerDocument()).getDocument(),
                        qname);
     }
 
+    @Override
     protected FaultElementImpl createSOAPFaultElement(Name qname) {
          return new FaultElement1_1Impl(
                        ((SOAPDocument) getOwnerDocument()).getDocument(),
                        (NameImpl)qname);
     }
 
+    @Override
     public void setFaultCode(String faultCode, String prefix, String uri)
         throws SOAPException {
         if (prefix == null || "".equals(prefix)) {
@@ -370,6 +406,7 @@
         return false;
     }
 
+    @Override
      public void setFaultActor(String faultActor) throws SOAPException {
         if (this.faultActorElement == null)
             findFaultActorElement();
diff --git a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/ver1_1/FaultElement1_1Impl.java b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/ver1_1/FaultElement1_1Impl.java
index 22bcab0..62f9c8c 100644
--- a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/ver1_1/FaultElement1_1Impl.java
+++ b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/ver1_1/FaultElement1_1Impl.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -59,6 +59,7 @@
               NameImpl.createFaultElement1_1Name(localName, prefix));
     }
 
+    @Override
     protected boolean isStandardFaultElement() {
         String localName = elementQName.getLocalPart();
         if (localName.equalsIgnoreCase("faultcode") ||
@@ -69,6 +70,7 @@
         return false;
     }
 
+    @Override
     public SOAPElement setElementQName(QName newName) throws SOAPException {
         if (!isStandardFaultElement()) {
             FaultElement1_1Impl copy =
diff --git a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/ver1_1/Header1_1Impl.java b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/ver1_1/Header1_1Impl.java
index 75b76d5..cff022a 100644
--- a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/ver1_1/Header1_1Impl.java
+++ b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/ver1_1/Header1_1Impl.java
@@ -56,6 +56,7 @@
         super(ownerDoc, domElement);
     }
 
+    @Override
     protected NameImpl getNotUnderstoodName() {
         log.log(
             Level.SEVERE,
@@ -64,6 +65,7 @@
         throw new UnsupportedOperationException("Not supported by SOAP 1.1");
     }
 
+    @Override
     protected NameImpl getUpgradeName() {
         return NameImpl.create(
             "Upgrade",
@@ -71,6 +73,7 @@
             SOAPConstants.URI_NS_SOAP_1_1_ENVELOPE);
     }
 
+    @Override
     protected NameImpl getSupportedEnvelopeName() {
         return NameImpl.create(
             "SupportedEnvelope",
@@ -78,6 +81,7 @@
             SOAPConstants.URI_NS_SOAP_1_1_ENVELOPE);
     }
 
+    @Override
     public SOAPHeaderElement addNotUnderstoodHeaderElement(QName name)
         throws SOAPException {
         log.log(
@@ -87,11 +91,13 @@
         throw new UnsupportedOperationException("Not supported by SOAP 1.1");
     }
 
+    @Override
     protected SOAPHeaderElement createHeaderElement(Name name) {
         return new HeaderElement1_1Impl(
             ((SOAPDocument) getOwnerDocument()).getDocument(),
             name);
     }
+    @Override
     protected SOAPHeaderElement createHeaderElement(QName name) {
         return new HeaderElement1_1Impl(
             ((SOAPDocument) getOwnerDocument()).getDocument(),
diff --git a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/ver1_1/HeaderElement1_1Impl.java b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/ver1_1/HeaderElement1_1Impl.java
index 8708ac9..7f25698 100644
--- a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/ver1_1/HeaderElement1_1Impl.java
+++ b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/ver1_1/HeaderElement1_1Impl.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -41,6 +41,7 @@
 import com.sun.xml.internal.messaging.saaj.soap.impl.HeaderElementImpl;
 import com.sun.xml.internal.messaging.saaj.soap.name.NameImpl;
 import com.sun.xml.internal.messaging.saaj.util.LogDomainConstants;
+import org.w3c.dom.Element;
 
 public class HeaderElement1_1Impl extends HeaderElementImpl {
 
@@ -55,17 +56,24 @@
         super(ownerDoc, qname);
     }
 
+    public HeaderElement1_1Impl(SOAPDocumentImpl ownerDoc, Element domElement) {
+        super(ownerDoc, domElement);
+    }
+
+    @Override
     public SOAPElement setElementQName(QName newName) throws SOAPException {
         HeaderElementImpl copy =
             new HeaderElement1_1Impl((SOAPDocumentImpl) getOwnerDocument(), newName);
         return replaceElementWithSOAPElement(this,copy);
     }
 
+    @Override
     protected NameImpl getActorAttributeName() {
         return NameImpl.create("actor", null, NameImpl.SOAP11_NAMESPACE);
     }
 
     // role not supported by SOAP 1.1
+    @Override
     protected NameImpl getRoleAttributeName() {
         log.log(
             Level.SEVERE,
@@ -74,15 +82,18 @@
         throw new UnsupportedOperationException("Role not supported by SOAP 1.1");
     }
 
+    @Override
     protected NameImpl getMustunderstandAttributeName() {
         return NameImpl.create("mustUnderstand", null, NameImpl.SOAP11_NAMESPACE);
     }
 
     // mustUnderstand attribute has literal value "1" or "0"
+    @Override
     protected String getMustunderstandLiteralValue(boolean mustUnderstand) {
         return (mustUnderstand == true ? "1" : "0");
     }
 
+    @Override
     protected boolean getMustunderstandAttributeValue(String mu) {
         if ("1".equals(mu) || "true".equalsIgnoreCase(mu))
             return true;
@@ -90,6 +101,7 @@
     }
 
     // relay not supported by SOAP 1.1
+    @Override
     protected NameImpl getRelayAttributeName() {
         log.log(
             Level.SEVERE,
@@ -98,6 +110,7 @@
         throw new UnsupportedOperationException("Relay not supported by SOAP 1.1");
     }
 
+    @Override
     protected String getRelayLiteralValue(boolean relayAttr) {
         log.log(
             Level.SEVERE,
@@ -106,6 +119,7 @@
         throw new UnsupportedOperationException("Relay not supported by SOAP 1.1");
     }
 
+    @Override
     protected boolean getRelayAttributeValue(String mu) {
         log.log(
             Level.SEVERE,
@@ -114,6 +128,7 @@
         throw new UnsupportedOperationException("Relay not supported by SOAP 1.1");
     }
 
+    @Override
     protected String getActorOrRole() {
         return getActor();
     }
diff --git a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/ver1_1/Message1_1Impl.java b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/ver1_1/Message1_1Impl.java
index e52640f..e7e2ab5 100644
--- a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/ver1_1/Message1_1Impl.java
+++ b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/ver1_1/Message1_1Impl.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -76,6 +76,7 @@
             super(headers,ct,stat,reader);
     }
 
+    @Override
     public SOAPPart getSOAPPart() {
         if (soapPartImpl == null) {
             soapPartImpl = new SOAPPart1_1Impl(this);
@@ -83,10 +84,12 @@
         return soapPartImpl;
     }
 
+    @Override
     protected boolean isCorrectSoapVersion(int contentTypeId) {
         return (contentTypeId & SOAP1_1_FLAG) != 0;
     }
 
+    @Override
     public String getAction() {
         log.log(
             Level.SEVERE,
@@ -95,6 +98,7 @@
         throw new UnsupportedOperationException("Operation not supported by SOAP 1.1");
     }
 
+    @Override
     public void setAction(String type) {
         log.log(
             Level.SEVERE,
@@ -103,6 +107,7 @@
         throw new UnsupportedOperationException("Operation not supported by SOAP 1.1");
     }
 
+    @Override
     public String getCharset() {
         log.log(
             Level.SEVERE,
@@ -111,6 +116,7 @@
         throw new UnsupportedOperationException("Operation not supported by SOAP 1.1");
     }
 
+    @Override
     public void setCharset(String charset) {
         log.log(
             Level.SEVERE,
@@ -119,10 +125,12 @@
         throw new UnsupportedOperationException("Operation not supported by SOAP 1.1");
     }
 
+    @Override
     protected String getExpectedContentType() {
         return isFastInfoset ? "application/fastinfoset" : "text/xml";
     }
 
+    @Override
    protected String getExpectedAcceptHeader() {
        String accept = "text/xml, text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2";
        return acceptFastInfoset ? ("application/fastinfoset, " + accept) : accept;
diff --git a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/ver1_1/SOAPFactory1_1Impl.java b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/ver1_1/SOAPFactory1_1Impl.java
index 1344809..d3b2713 100644
--- a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/ver1_1/SOAPFactory1_1Impl.java
+++ b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/ver1_1/SOAPFactory1_1Impl.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -39,14 +39,17 @@
 import com.sun.xml.internal.messaging.saaj.soap.SOAPFactoryImpl;
 
 public class SOAPFactory1_1Impl extends SOAPFactoryImpl {
+    @Override
     protected SOAPDocumentImpl createDocument() {
         return (new SOAPPart1_1Impl()).getDocument();
     }
 
+    @Override
     public Detail createDetail() throws SOAPException {
         return new Detail1_1Impl(createDocument());
     }
 
+    @Override
     public SOAPFault createFault(String reasonText, QName faultCode)
         throws SOAPException {
         if (faultCode == null) {
@@ -55,14 +58,15 @@
         if (reasonText == null) {
             throw new IllegalArgumentException("reasonText argument for createFault was passed NULL");
         }
-        Fault1_1Impl fault = new Fault1_1Impl(createDocument(), null);
+        Fault1_1Impl fault = new Fault1_1Impl(createDocument());
         fault.setFaultCode(faultCode);
         fault.setFaultString(reasonText);
         return fault;
     }
 
+    @Override
     public SOAPFault createFault() throws SOAPException {
-        Fault1_1Impl fault = new Fault1_1Impl(createDocument(), null);
+        Fault1_1Impl fault = new Fault1_1Impl(createDocument());
         fault.setFaultCode(fault.getDefaultFaultCode());
         fault.setFaultString("Fault string, and possibly fault code, not set");
         return fault;
diff --git a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/ver1_1/SOAPMessageFactory1_1Impl.java b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/ver1_1/SOAPMessageFactory1_1Impl.java
index 01ce1b8..e43c5fc 100644
--- a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/ver1_1/SOAPMessageFactory1_1Impl.java
+++ b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/ver1_1/SOAPMessageFactory1_1Impl.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -40,16 +40,19 @@
 
 public class SOAPMessageFactory1_1Impl extends MessageFactoryImpl {
 
+    @Override
     public SOAPMessage createMessage() throws SOAPException {
         return new Message1_1Impl();
     }
 
+    @Override
     public SOAPMessage createMessage(boolean isFastInfoset,
         boolean acceptFastInfoset) throws SOAPException
     {
         return new Message1_1Impl(isFastInfoset, acceptFastInfoset);
     }
 
+    @Override
     public SOAPMessage createMessage(MimeHeaders headers, InputStream in) throws IOException, SOAPExceptionImpl {
 
         if (headers == null) {
diff --git a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/ver1_1/SOAPPart1_1Impl.java b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/ver1_1/SOAPPart1_1Impl.java
index b2408ff..0e284bb 100644
--- a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/ver1_1/SOAPPart1_1Impl.java
+++ b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/ver1_1/SOAPPart1_1Impl.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -54,10 +54,12 @@
         super(message);
     }
 
+    @Override
     protected String getContentType() {
         return isFastInfoset() ? "application/fastinfoset" : "text/xml";
     }
 
+    @Override
     protected Envelope createEnvelopeFromSource() throws SOAPException {
         // Record the presence of xml declaration before the envelope gets
         // created.
@@ -80,11 +82,13 @@
         return envelope;
     }
 
+    @Override
     protected Envelope createEmptyEnvelope(String prefix)
         throws SOAPException {
         return new Envelope1_1Impl(getDocument(), prefix, true, true);
     }
 
+    @Override
     protected SOAPPartImpl duplicateType() {
         return new SOAPPart1_1Impl();
     }
diff --git a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/ver1_2/Body1_2Impl.java b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/ver1_2/Body1_2Impl.java
index 1e57365..5fb3436 100644
--- a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/ver1_2/Body1_2Impl.java
+++ b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/ver1_2/Body1_2Impl.java
@@ -57,25 +57,30 @@
         super(ownerDoc, domElement);
     }
 
+    @Override
     protected NameImpl getFaultName(String name) {
         return NameImpl.createFault1_2Name(name, null);
     }
 
+    @Override
     protected SOAPBodyElement createBodyElement(Name name) {
         return new BodyElement1_2Impl(
             ((SOAPDocument) getOwnerDocument()).getDocument(),
             name);
     }
+    @Override
     protected SOAPBodyElement createBodyElement(QName name) {
         return new BodyElement1_2Impl(
             ((SOAPDocument) getOwnerDocument()).getDocument(),
             name);
     }
 
+    @Override
     protected QName getDefaultFaultCode() {
         return SOAPConstants.SOAP_RECEIVER_FAULT;
     }
 
+    @Override
     public SOAPFault addFault() throws SOAPException {
         if (hasAnyChildElement()) {
             log.severe("SAAJ0402.ver1_2.only.fault.allowed.in.body");
@@ -89,6 +94,7 @@
      * Override setEncodingStyle of ElementImpl to restrict adding encodingStyle
      * attribute to SOAP Body (SOAP 1.2 spec, part 1, section 5.1.1)
      */
+    @Override
     public void setEncodingStyle(String encodingStyle) throws SOAPException {
         log.severe("SAAJ0401.ver1_2.no.encodingstyle.in.body");
         throw new SOAPExceptionImpl("encodingStyle attribute cannot appear on Body");
@@ -98,6 +104,7 @@
      * Override addAttribute of ElementImpl to restrict adding encodingStyle
      * attribute to SOAP Body (SOAP 1.2 spec, part 1, section 5.1.1)
      */
+    @Override
     public SOAPElement addAttribute(Name name, String value)
         throws SOAPException {
         if (name.getLocalName().equals("encodingStyle")
@@ -108,6 +115,7 @@
         return super.addAttribute(name, value);
     }
 
+    @Override
     public SOAPElement addAttribute(QName name, String value)
         throws SOAPException {
         if (name.getLocalPart().equals("encodingStyle")
@@ -118,6 +126,7 @@
         return super.addAttribute(name, value);
     }
 
+    @Override
     protected boolean isFault(SOAPElement child) {
         return (child.getElementName().getURI().equals(
                     SOAPConstants.URI_NS_SOAP_1_2_ENVELOPE) &&
@@ -125,6 +134,7 @@
                     "Fault"));
     }
 
+    @Override
     protected SOAPFault createFaultElement() {
         return new Fault1_2Impl(
             ((SOAPDocument) getOwnerDocument()).getDocument(), getPrefix());
@@ -135,6 +145,7 @@
      * SOAP message MUST contain a single Fault element as the only
      * child element of the SOAP Body.
      */
+    @Override
     public SOAPBodyElement addBodyElement(Name name) throws SOAPException {
         if (hasFault()) {
             log.severe("SAAJ0402.ver1_2.only.fault.allowed.in.body");
@@ -144,6 +155,7 @@
         return super.addBodyElement(name);
     }
 
+    @Override
     public SOAPBodyElement addBodyElement(QName name) throws SOAPException {
         if (hasFault()) {
             log.severe("SAAJ0402.ver1_2.only.fault.allowed.in.body");
@@ -153,6 +165,7 @@
         return super.addBodyElement(name);
     }
 
+    @Override
     protected SOAPElement addElement(Name name) throws SOAPException {
         if (hasFault()) {
             log.severe("SAAJ0402.ver1_2.only.fault.allowed.in.body");
@@ -162,6 +175,7 @@
         return super.addElement(name);
     }
 
+    @Override
     protected SOAPElement addElement(QName name) throws SOAPException {
         if (hasFault()) {
             log.severe("SAAJ0402.ver1_2.only.fault.allowed.in.body");
@@ -171,6 +185,7 @@
         return super.addElement(name);
     }
 
+    @Override
     public SOAPElement addChildElement(Name name) throws SOAPException {
         if (hasFault()) {
             log.severe("SAAJ0402.ver1_2.only.fault.allowed.in.body");
@@ -180,6 +195,7 @@
         return super.addChildElement(name);
     }
 
+    @Override
     public SOAPElement addChildElement(QName name) throws SOAPException {
         if (hasFault()) {
             log.severe("SAAJ0402.ver1_2.only.fault.allowed.in.body");
diff --git a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/ver1_2/BodyElement1_2Impl.java b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/ver1_2/BodyElement1_2Impl.java
index 8e9d9d8..6038bc5 100644
--- a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/ver1_2/BodyElement1_2Impl.java
+++ b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/ver1_2/BodyElement1_2Impl.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -36,6 +36,7 @@
 
 import com.sun.xml.internal.messaging.saaj.soap.SOAPDocumentImpl;
 import com.sun.xml.internal.messaging.saaj.soap.impl.BodyElementImpl;
+import org.w3c.dom.Element;
 
 public class BodyElement1_2Impl extends BodyElementImpl {
 
@@ -47,6 +48,11 @@
         super(ownerDoc, qname);
     }
 
+    public BodyElement1_2Impl(SOAPDocumentImpl ownerDoc, Element domElement) {
+        super(ownerDoc, domElement);
+    }
+
+    @Override
     public SOAPElement setElementQName(QName newName) throws SOAPException {
         BodyElementImpl copy =
             new BodyElement1_2Impl((SOAPDocumentImpl) getOwnerDocument(), newName);
diff --git a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/ver1_2/Detail1_2Impl.java b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/ver1_2/Detail1_2Impl.java
index 455d6e4..a0cad13 100644
--- a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/ver1_2/Detail1_2Impl.java
+++ b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/ver1_2/Detail1_2Impl.java
@@ -59,12 +59,14 @@
         super(ownerDoc, domElement);
     }
 
+    @Override
     protected DetailEntry createDetailEntry(Name name) {
         return new DetailEntry1_2Impl(
             ((SOAPDocument) getOwnerDocument()).getDocument(),
             name);
     }
 
+    @Override
     protected DetailEntry createDetailEntry(QName name) {
         return new DetailEntry1_2Impl(
             ((SOAPDocument) getOwnerDocument()).getDocument(),
@@ -75,11 +77,13 @@
      * Override setEncodingStyle of ElementImpl to restrict adding encodingStyle
      * attribute to SOAP Detail (SOAP 1.2 spec, part 1, section 5.1.1)
      */
+    @Override
     public void setEncodingStyle(String encodingStyle) throws SOAPException {
         log.severe("SAAJ0403.ver1_2.no.encodingStyle.in.detail");
         throw new SOAPExceptionImpl("EncodingStyle attribute cannot appear in Detail");
     }
 
+    @Override
     public SOAPElement addAttribute(Name name, String value)
         throws SOAPException {
         if (name.getLocalName().equals("encodingStyle")
@@ -89,6 +93,7 @@
         return super.addAttribute(name, value);
     }
 
+    @Override
     public SOAPElement addAttribute(QName name, String value)
         throws SOAPException {
         if (name.getLocalPart().equals("encodingStyle")
diff --git a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/ver1_2/DetailEntry1_2Impl.java b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/ver1_2/DetailEntry1_2Impl.java
index 26f2b21..2f55421 100644
--- a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/ver1_2/DetailEntry1_2Impl.java
+++ b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/ver1_2/DetailEntry1_2Impl.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -36,6 +36,7 @@
 
 import com.sun.xml.internal.messaging.saaj.soap.SOAPDocumentImpl;
 import com.sun.xml.internal.messaging.saaj.soap.impl.DetailEntryImpl;
+import org.w3c.dom.Element;
 
 public class DetailEntry1_2Impl extends DetailEntryImpl {
 
@@ -47,6 +48,11 @@
         super(ownerDoc, qname);
     }
 
+    public DetailEntry1_2Impl(SOAPDocumentImpl ownerDoc, Element domElement) {
+        super(ownerDoc, domElement);
+    }
+
+    @Override
     public SOAPElement setElementQName(QName newName) throws SOAPException {
         DetailEntryImpl copy =
             new DetailEntry1_2Impl((SOAPDocumentImpl) getOwnerDocument(), newName);
diff --git a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/ver1_2/Envelope1_2Impl.java b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/ver1_2/Envelope1_2Impl.java
index 075a848..1d5a823 100644
--- a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/ver1_2/Envelope1_2Impl.java
+++ b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/ver1_2/Envelope1_2Impl.java
@@ -68,10 +68,12 @@
             createBody);
     }
 
+    @Override
     protected NameImpl getBodyName(String prefix) {
         return NameImpl.createBody1_2Name(prefix);
     }
 
+    @Override
     protected NameImpl getHeaderName(String prefix) {
         return NameImpl.createHeader1_2Name(prefix);
     }
@@ -80,6 +82,7 @@
      * Override setEncodingStyle of ElementImpl to restrict adding encodingStyle
      * attribute to SOAP Envelope (SOAP 1.2 spec, part 1, section 5.1.1)
      */
+    @Override
     public void setEncodingStyle(String encodingStyle) throws SOAPException {
         log.severe("SAAJ0404.ver1_2.no.encodingStyle.in.envelope");
         throw new SOAPExceptionImpl("encodingStyle attribute cannot appear on Envelope");
@@ -89,6 +92,7 @@
      * Override addAttribute of ElementImpl to restrict adding encodingStyle
      * attribute to SOAP Envelope (SOAP 1.2 spec, part 1, section 5.1.1)
      */
+    @Override
     public SOAPElement addAttribute(Name name, String value)
         throws SOAPException {
         if (name.getLocalName().equals("encodingStyle")
@@ -98,6 +102,7 @@
         return super.addAttribute(name, value);
     }
 
+    @Override
     public SOAPElement addAttribute(QName name, String value)
         throws SOAPException {
         if (name.getLocalPart().equals("encodingStyle")
@@ -112,6 +117,7 @@
      * Override addChildElement method to ensure that no element
      * is added after body in SOAP 1.2.
      */
+    @Override
     public SOAPElement addChildElement(Name name) throws SOAPException {
         // check if body already exists
         if (getBody() != null) {
@@ -122,6 +128,7 @@
         return super.addChildElement(name);
     }
 
+    @Override
     public SOAPElement addChildElement(QName name) throws SOAPException {
         // check if body already exists
         if (getBody() != null) {
@@ -142,6 +149,7 @@
      *
      */
 
+    @Override
     public SOAPElement addTextNode(String text) throws SOAPException {
         log.log(
             Level.SEVERE,
diff --git a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/ver1_2/Fault1_2Impl.java b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/ver1_2/Fault1_2Impl.java
index 3f206c1..55ba06e 100644
--- a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/ver1_2/Fault1_2Impl.java
+++ b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/ver1_2/Fault1_2Impl.java
@@ -29,12 +29,10 @@
 */
 package com.sun.xml.internal.messaging.saaj.soap.ver1_2;
 
-import java.util.*;
 import java.util.logging.Logger;
 import java.util.logging.Level;
 
 import javax.xml.namespace.QName;
-import javax.xml.soap.*;
 
 import com.sun.xml.internal.messaging.saaj.SOAPExceptionImpl;
 import com.sun.xml.internal.messaging.saaj.soap.SOAPDocument;
@@ -42,6 +40,14 @@
 import com.sun.xml.internal.messaging.saaj.soap.impl.*;
 import com.sun.xml.internal.messaging.saaj.soap.name.NameImpl;
 import com.sun.xml.internal.messaging.saaj.util.LogDomainConstants;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Locale;
+import javax.xml.soap.Name;
+import javax.xml.soap.SOAPConstants;
+import javax.xml.soap.SOAPElement;
+import javax.xml.soap.SOAPException;
 import org.w3c.dom.Element;
 
 
@@ -69,22 +75,30 @@
         super(ownerDocument, NameImpl.createFault1_2Name(null, prefix));
     }
 
-    public Fault1_2Impl(Element domElement, SOAPDocumentImpl ownerDoc) {
+    public Fault1_2Impl(SOAPDocumentImpl ownerDocument) {
+        super(ownerDocument, NameImpl.createFault1_2Name(null, null));
+    }
+
+    public Fault1_2Impl(SOAPDocumentImpl ownerDoc, Element domElement) {
         super(ownerDoc, domElement);
     }
 
+    @Override
     protected NameImpl getDetailName() {
         return NameImpl.createSOAP12Name("Detail", getPrefix());
     }
 
+    @Override
     protected NameImpl getFaultCodeName() {
         return NameImpl.createSOAP12Name("Code", getPrefix());
     }
 
+    @Override
     protected NameImpl getFaultStringName() {
         return getFaultReasonName();
     }
 
+    @Override
     protected NameImpl getFaultActorName() {
         return getFaultRoleName();
     }
@@ -109,17 +123,20 @@
         return NameImpl.createXmlName("lang");
     }
 
+    @Override
     protected DetailImpl createDetail() {
         return new Detail1_2Impl(
                        ((SOAPDocument) getOwnerDocument()).getDocument());
     }
 
+    @Override
     protected FaultElementImpl createSOAPFaultElement(String localName) {
         return new FaultElement1_2Impl(
                        ((SOAPDocument) getOwnerDocument()).getDocument(),
                        localName);
     }
 
+    @Override
     protected void checkIfStandardFaultCode(String faultCode, String uri)
         throws SOAPException {
         QName qname = new QName(uri, faultCode);
@@ -136,6 +153,7 @@
         throw new SOAPExceptionImpl(qname + " is not a standard Code value");
     }
 
+    @Override
     protected void finallySetFaultCode(String faultcode) throws SOAPException {
         SOAPElement value = this.faultCodeElement.addChildElement(valueName);
         value.addTextNode(faultcode);
@@ -145,13 +163,14 @@
         findFaultStringElement();
     }
 
-    public Iterator getFaultReasonTexts() throws SOAPException {
+    @Override
+    public Iterator<String> getFaultReasonTexts() throws SOAPException {
         // Fault Reason has similar semantics as faultstring
         if (this.faultStringElement == null)
             findReasonElement();
         Iterator eachTextElement =
             this.faultStringElement.getChildElements(textName);
-        List<String> texts = new ArrayList<String>();
+        List<String> texts = new ArrayList<>();
         while (eachTextElement.hasNext()) {
             SOAPElement textElement = (SOAPElement) eachTextElement.next();
             Locale thisLocale = getLocale(textElement);
@@ -168,6 +187,7 @@
         return texts.iterator();
     }
 
+    @Override
     public void addFaultReasonText(String text, java.util.Locale locale)
         throws SOAPException {
 
@@ -214,6 +234,7 @@
         }
     }
 
+    @Override
     public String getFaultReasonText(Locale locale) throws SOAPException {
 
         if (locale == null)
@@ -234,13 +255,14 @@
         return null;
     }
 
-    public Iterator getFaultReasonLocales() throws SOAPException {
+    @Override
+    public Iterator<Locale> getFaultReasonLocales() throws SOAPException {
         // Fault Reason has similar semantics as faultstring
         if (this.faultStringElement == null)
             findReasonElement();
         Iterator eachTextElement =
             this.faultStringElement.getChildElements(textName);
-        List<Locale> localeSet = new ArrayList<Locale>();
+        List<Locale> localeSet = new ArrayList<>();
         while (eachTextElement.hasNext()) {
             SOAPElement textElement = (SOAPElement) eachTextElement.next();
             Locale thisLocale = getLocale(textElement);
@@ -257,6 +279,7 @@
         return localeSet.iterator();
     }
 
+    @Override
     public Locale getFaultStringLocale() {
         Locale locale = null;
         try {
@@ -288,6 +311,7 @@
         return null;
     }
 
+    @Override
     public String getFaultNode() {
         SOAPElement faultNode = findAndConvertChildElement(getFaultNodeName());
         if (faultNode == null) {
@@ -296,6 +320,7 @@
         return faultNode.getValue();
     }
 
+    @Override
     public void setFaultNode(String uri) throws SOAPException {
         SOAPElement faultNode = findAndConvertChildElement(getFaultNodeName());
         if (faultNode != null) {
@@ -314,10 +339,12 @@
         addNode(faultNode);
     }
 
+    @Override
     public String getFaultRole() {
         return getFaultActor();
     }
 
+    @Override
     public void setFaultRole(String uri) throws SOAPException {
         if (this.faultActorElement == null)
             findFaultActorElement();
@@ -333,6 +360,7 @@
         addNode(this.faultActorElement);
     }
 
+    @Override
     public String getFaultCode() {
         if (this.faultCodeElement == null)
             findFaultCodeElement();
@@ -341,6 +369,7 @@
         return ((SOAPElement) codeValues.next()).getValue();
     }
 
+    @Override
     public QName getFaultCodeAsQName() {
         String faultcode = getFaultCode();
         if (faultcode == null) {
@@ -355,6 +384,7 @@
             (SOAPElement) valueElements.next());
     }
 
+    @Override
     public Name getFaultCodeAsName() {
         String faultcode = getFaultCode();
         if (faultcode == null) {
@@ -370,6 +400,7 @@
                 (SOAPElement) valueElements.next()));
     }
 
+    @Override
     public String getFaultString() {
         String reason = null;
         try {
@@ -380,10 +411,12 @@
         return reason;
     }
 
+    @Override
     public void setFaultString(String faultString) throws SOAPException {
         addFaultReasonText(faultString, Locale.getDefault());
     }
 
+    @Override
     public void setFaultString(
         String faultString,
         Locale locale)
@@ -391,6 +424,7 @@
         addFaultReasonText(faultString, locale);
     }
 
+    @Override
     public void appendFaultSubcode(QName subcode) throws SOAPException {
         if (subcode == null) {
             return;
@@ -426,6 +460,7 @@
         subcodeValueElement.addTextNode(prefix + ":" + subcode.getLocalPart());
     }
 
+    @Override
     public void removeAllFaultSubcodes() {
         if (this.faultCodeElement == null)
             findFaultCodeElement();
@@ -437,10 +472,11 @@
         }
     }
 
-    public Iterator getFaultSubcodes() {
+    @Override
+    public Iterator<QName> getFaultSubcodes() {
         if (this.faultCodeElement == null)
             findFaultCodeElement();
-        final List<QName> subcodeList = new ArrayList<QName>();
+        final List<QName> subcodeList = new ArrayList<>();
         SOAPElement currentCodeElement = this.faultCodeElement;
         Iterator subcodeElements =
             currentCodeElement.getChildElements(subcodeName);
@@ -457,14 +493,17 @@
         return new Iterator<QName>() {
             Iterator<QName> subCodeIter = subcodeList.iterator();
 
+            @Override
             public boolean hasNext() {
                 return subCodeIter.hasNext();
             }
 
+            @Override
             public QName next() {
                 return subCodeIter.next();
             }
 
+            @Override
             public void remove() {
                 throw new UnsupportedOperationException(
                     "Method remove() not supported on SubCodes Iterator");
@@ -480,11 +519,13 @@
      * Override setEncodingStyle of ElementImpl to restrict adding encodingStyle
      * attribute to SOAP Fault (SOAP 1.2 spec, part 1, section 5.1.1)
      */
+    @Override
     public void setEncodingStyle(String encodingStyle) throws SOAPException {
         log.severe("SAAJ0407.ver1_2.no.encodingStyle.in.fault");
         throw new SOAPExceptionImpl("encodingStyle attribute cannot appear on Fault");
     }
 
+    @Override
     public SOAPElement addAttribute(Name name, String value)
         throws SOAPException {
         if (name.getLocalName().equals("encodingStyle")
@@ -494,6 +535,7 @@
         return super.addAttribute(name, value);
     }
 
+    @Override
     public SOAPElement addAttribute(QName name, String value)
         throws SOAPException {
         if (name.getLocalPart().equals("encodingStyle")
@@ -503,6 +545,7 @@
         return super.addAttribute(name, value);
     }
 
+    @Override
     public SOAPElement addTextNode(String text) throws SOAPException {
         log.log(
             Level.SEVERE,
@@ -511,6 +554,7 @@
         throw new SOAPExceptionImpl("Adding text to SOAP 1.2 Fault is not legal");
     }
 
+    @Override
     public SOAPElement addChildElement(SOAPElement element)
         throws SOAPException {
         String localName = element.getLocalName();
@@ -533,6 +577,7 @@
             return super.addChildElement(element);
     }
 
+    @Override
     protected boolean isStandardFaultElement(String localName) {
         if (localName.equalsIgnoreCase("code") ||
             localName.equalsIgnoreCase("reason") ||
@@ -544,22 +589,26 @@
         return false;
     }
 
+    @Override
     protected QName getDefaultFaultCode() {
         return SOAPConstants.SOAP_SENDER_FAULT;
     }
 
+    @Override
      protected FaultElementImpl createSOAPFaultElement(QName qname) {
          return new FaultElement1_2Impl(
                        ((SOAPDocument) getOwnerDocument()).getDocument(),
                        qname);
     }
 
+    @Override
     protected FaultElementImpl createSOAPFaultElement(Name qname) {
          return new FaultElement1_2Impl(
                        ((SOAPDocument) getOwnerDocument()).getDocument(),
                        (NameImpl)qname);
     }
 
+    @Override
      public void setFaultActor(String faultActor) throws SOAPException {
         this.setFaultRole(faultActor);
     }
diff --git a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/ver1_2/FaultElement1_2Impl.java b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/ver1_2/FaultElement1_2Impl.java
index a65f172..0e34cf0 100644
--- a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/ver1_2/FaultElement1_2Impl.java
+++ b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/ver1_2/FaultElement1_2Impl.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -38,6 +38,7 @@
 import com.sun.xml.internal.messaging.saaj.soap.impl.FaultElementImpl;
 import com.sun.xml.internal.messaging.saaj.soap.name.NameImpl;
 import com.sun.xml.internal.messaging.saaj.SOAPExceptionImpl;
+import org.w3c.dom.Element;
 
 public class FaultElement1_2Impl extends FaultElementImpl {
 
@@ -53,6 +54,11 @@
         super(ownerDoc, NameImpl.createSOAP12Name(localName));
     }
 
+    public FaultElement1_2Impl(SOAPDocumentImpl ownerDoc, Element domElement) {
+        super(ownerDoc, domElement);
+    }
+
+    @Override
     protected boolean isStandardFaultElement() {
         String localName = elementQName.getLocalPart();
         if (localName.equalsIgnoreCase("code") ||
@@ -64,6 +70,7 @@
         return false;
     }
 
+    @Override
     public SOAPElement setElementQName(QName newName) throws SOAPException {
         if (!isStandardFaultElement()) {
             FaultElement1_2Impl copy =
@@ -74,11 +81,13 @@
         }
     }
 
+    @Override
     public void setEncodingStyle(String encodingStyle) throws SOAPException {
         log.severe("SAAJ0408.ver1_2.no.encodingStyle.in.fault.child");
         throw new SOAPExceptionImpl("encodingStyle attribute cannot appear on a Fault child element");
     }
 
+    @Override
     public SOAPElement addAttribute(Name name, String value)
         throws SOAPException {
         if (name.getLocalName().equals("encodingStyle")
@@ -88,6 +97,7 @@
         return super.addAttribute(name, value);
     }
 
+    @Override
     public SOAPElement addAttribute(QName name, String value)
         throws SOAPException {
         if (name.getLocalPart().equals("encodingStyle")
diff --git a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/ver1_2/Header1_2Impl.java b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/ver1_2/Header1_2Impl.java
index ee9eeaa..295158b 100644
--- a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/ver1_2/Header1_2Impl.java
+++ b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/ver1_2/Header1_2Impl.java
@@ -59,18 +59,22 @@
         super(ownerDoc, domElement);
     }
 
+    @Override
     protected NameImpl getNotUnderstoodName() {
         return NameImpl.createNotUnderstood1_2Name(null);
     }
 
+    @Override
     protected NameImpl getUpgradeName() {
         return NameImpl.createUpgrade1_2Name(null);
     }
 
+    @Override
     protected NameImpl getSupportedEnvelopeName() {
         return NameImpl.createSupportedEnvelope1_2Name(null);
     }
 
+    @Override
     public SOAPHeaderElement addNotUnderstoodHeaderElement(final QName sourceName)
         throws SOAPException {
 
@@ -102,6 +106,7 @@
         return notunderstoodHeaderElement;
     }
 
+    @Override
     public SOAPElement addTextNode(String text) throws SOAPException {
         log.log(
             Level.SEVERE,
@@ -110,6 +115,7 @@
         throw new SOAPExceptionImpl("Adding text to SOAP 1.2 Header is not legal");
     }
 
+    @Override
     protected SOAPHeaderElement createHeaderElement(Name name)
         throws SOAPException {
         String uri = name.getURI();
@@ -122,6 +128,7 @@
             name);
     }
 
+    @Override
     protected SOAPHeaderElement createHeaderElement(QName name)
         throws SOAPException {
         String uri = name.getNamespaceURI();
@@ -134,11 +141,13 @@
             name);
     }
 
+    @Override
     public void setEncodingStyle(String encodingStyle) throws SOAPException {
         log.severe("SAAJ0409.ver1_2.no.encodingstyle.in.header");
         throw new SOAPExceptionImpl("encodingStyle attribute cannot appear on Header");
     }
 
+    @Override
     public SOAPElement addAttribute(Name name, String value)
         throws SOAPException {
         if (name.getLocalName().equals("encodingStyle")
@@ -149,6 +158,7 @@
         return super.addAttribute(name, value);
     }
 
+    @Override
     public SOAPElement addAttribute(QName name, String value)
         throws SOAPException {
         if (name.getLocalPart().equals("encodingStyle")
diff --git a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/ver1_2/HeaderElement1_2Impl.java b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/ver1_2/HeaderElement1_2Impl.java
index b2673a9..fdbcf06 100644
--- a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/ver1_2/HeaderElement1_2Impl.java
+++ b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/ver1_2/HeaderElement1_2Impl.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -37,6 +37,7 @@
 import com.sun.xml.internal.messaging.saaj.soap.SOAPDocumentImpl;
 import com.sun.xml.internal.messaging.saaj.soap.impl.HeaderElementImpl;
 import com.sun.xml.internal.messaging.saaj.soap.name.NameImpl;
+import org.w3c.dom.Element;
 
 public class HeaderElement1_2Impl extends HeaderElementImpl {
 
@@ -47,51 +48,65 @@
         super(ownerDoc, qname);
     }
 
+    public HeaderElement1_2Impl(SOAPDocumentImpl ownerDoc, Element domElement) {
+        super(ownerDoc, domElement);
+    }
+
+    @Override
     public SOAPElement setElementQName(QName newName) throws SOAPException {
         HeaderElementImpl copy =
             new HeaderElement1_2Impl((SOAPDocumentImpl)getOwnerDocument(), newName);
         return replaceElementWithSOAPElement(this,copy);
     }
 
+    @Override
     protected NameImpl getRoleAttributeName() {
         return NameImpl.create("role", null, NameImpl.SOAP12_NAMESPACE);
     }
 
     // Actor equivalent to Role in SOAP 1.2
+    @Override
     protected NameImpl getActorAttributeName() {
         return getRoleAttributeName();
     }
 
+    @Override
     protected NameImpl getMustunderstandAttributeName() {
         return NameImpl.create("mustUnderstand", null, NameImpl.SOAP12_NAMESPACE);
     }
 
     // mustUnderstand attribute has literal value "true" or "false"
+    @Override
     protected String getMustunderstandLiteralValue(boolean mustUnderstand) {
         return (mustUnderstand == true ? "true" : "false");
     }
 
+    @Override
     protected boolean getMustunderstandAttributeValue(String mu) {
         if (mu.equals("true") || mu.equals("1"))
             return true;
         return false;
     }
 
+    @Override
    protected NameImpl getRelayAttributeName() {
         return NameImpl.create("relay", null, NameImpl.SOAP12_NAMESPACE);
     }
 
     //relay attribute has literal value "true" or "false"
+    @Override
     protected String getRelayLiteralValue(boolean relay) {
         return (relay == true ? "true" : "false");
     }
 
+    @Override
     protected boolean getRelayAttributeValue(String relay) {
         if (relay.equals("true") || relay.equals("1"))
             return true;
         return false;
     }
 
+    @Override
     protected String getActorOrRole() {
         return getRole();
     }
diff --git a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/ver1_2/Message1_2Impl.java b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/ver1_2/Message1_2Impl.java
index b63c8ed..bf851c1 100644
--- a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/ver1_2/Message1_2Impl.java
+++ b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/ver1_2/Message1_2Impl.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -69,6 +69,7 @@
             super(headers,ct,stat,reader);
     }
 
+    @Override
     public SOAPPart getSOAPPart()  {
         if (soapPartImpl == null)
             soapPartImpl = new SOAPPart1_2Impl(this);
@@ -76,14 +77,17 @@
         return soapPartImpl;
     }
 
+    @Override
     protected boolean isCorrectSoapVersion(int contentTypeId) {
         return (contentTypeId & SOAP1_2_FLAG) != 0;
     }
 
+    @Override
     protected String getExpectedContentType() {
         return isFastInfoset ? "application/soap+fastinfoset" : "application/soap+xml";
     }
 
+    @Override
    protected String getExpectedAcceptHeader() {
        String accept = "application/soap+xml, text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2";
        return acceptFastInfoset ? ("application/soap+fastinfoset, " + accept) : accept;
diff --git a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/ver1_2/SOAPFactory1_2Impl.java b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/ver1_2/SOAPFactory1_2Impl.java
index af01e12..4f6ce88 100644
--- a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/ver1_2/SOAPFactory1_2Impl.java
+++ b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/ver1_2/SOAPFactory1_2Impl.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -39,14 +39,17 @@
 import com.sun.xml.internal.messaging.saaj.soap.SOAPFactoryImpl;
 
 public class SOAPFactory1_2Impl extends SOAPFactoryImpl {
+    @Override
     protected SOAPDocumentImpl createDocument() {
         return (new SOAPPart1_2Impl()).getDocument();
     }
 
+    @Override
     public Detail createDetail() throws SOAPException {
         return new Detail1_2Impl(createDocument());
     }
 
+    @Override
     public SOAPFault createFault(String reasonText, QName faultCode)
         throws SOAPException {
          if (faultCode == null) {
@@ -55,14 +58,15 @@
         if (reasonText == null) {
             throw new IllegalArgumentException("reasonText argument for createFault was passed NULL");
         }
-        Fault1_2Impl fault = new Fault1_2Impl(createDocument(), null);
+        Fault1_2Impl fault = new Fault1_2Impl(createDocument());
         fault.setFaultCode(faultCode);
         fault.setFaultString(reasonText);
         return fault;
     }
 
+    @Override
     public SOAPFault createFault() throws SOAPException {
-        Fault1_2Impl fault = new Fault1_2Impl(createDocument(), null);
+        Fault1_2Impl fault = new Fault1_2Impl(createDocument());
         fault.setFaultCode(fault.getDefaultFaultCode());
         fault.setFaultString("Fault string, and possibly fault code, not set");
         return fault;
diff --git a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/ver1_2/SOAPMessageFactory1_2Impl.java b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/ver1_2/SOAPMessageFactory1_2Impl.java
index ac11521..2736d5d 100644
--- a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/ver1_2/SOAPMessageFactory1_2Impl.java
+++ b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/ver1_2/SOAPMessageFactory1_2Impl.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -40,16 +40,19 @@
 
 public class SOAPMessageFactory1_2Impl extends MessageFactoryImpl {
 
+    @Override
     public SOAPMessage createMessage() throws SOAPException {
         return new Message1_2Impl();
     }
 
+    @Override
     public SOAPMessage createMessage(boolean isFastInfoset,
         boolean acceptFastInfoset) throws SOAPException
     {
         return new Message1_2Impl(isFastInfoset, acceptFastInfoset);
     }
 
+    @Override
     public SOAPMessage createMessage(MimeHeaders headers, InputStream in) throws IOException, SOAPExceptionImpl {
 
         if (headers == null) {
diff --git a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/ver1_2/SOAPPart1_2Impl.java b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/ver1_2/SOAPPart1_2Impl.java
index 6f708b8..0331405 100644
--- a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/ver1_2/SOAPPart1_2Impl.java
+++ b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/ver1_2/SOAPPart1_2Impl.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -53,14 +53,17 @@
         super(message);
     }
 
+    @Override
     protected String getContentType() {
         return "application/soap+xml";
     }
 
+    @Override
     protected Envelope createEmptyEnvelope(String prefix) throws SOAPException {
         return new Envelope1_2Impl(getDocument(), prefix, true, true);
     }
 
+    @Override
     protected Envelope createEnvelopeFromSource() throws SOAPException {
         XMLDeclarationParser parser = lookForXmlDecl();
         Source tmp = source;
@@ -82,6 +85,7 @@
 
     }
 
+    @Override
     protected SOAPPartImpl duplicateType() {
         return new SOAPPart1_2Impl();
     }
diff --git a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/util/ByteInputStream.java b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/util/ByteInputStream.java
index 5722f11..4e11155 100644
--- a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/util/ByteInputStream.java
+++ b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/util/ByteInputStream.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -53,6 +53,7 @@
         return count;
     }
 
+    @Override
     public void close() throws IOException {
         reset();
     }
diff --git a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/util/JAXMStreamSource.java b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/util/JAXMStreamSource.java
index df3508a..fc9652e 100644
--- a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/util/JAXMStreamSource.java
+++ b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/util/JAXMStreamSource.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -75,10 +75,12 @@
         this.reader = new CharArrayReader(cout.toCharArray(), 0, cout.size());
     }
 
+    @Override
     public InputStream getInputStream() {
         return in;
     }
 
+    @Override
     public Reader getReader() {
         return reader;
     }
diff --git a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/util/NamespaceContextIterator.java b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/util/NamespaceContextIterator.java
index cac1817..cffc2c4 100644
--- a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/util/NamespaceContextIterator.java
+++ b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/util/NamespaceContextIterator.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -89,11 +89,13 @@
         }
     }
 
+    @Override
     public boolean hasNext() {
         findNext();
         return next != null;
     }
 
+    @Override
     public Object next() {
         return getNext();
     }
@@ -112,6 +114,7 @@
         return last;
     }
 
+    @Override
     public void remove() {
         if (last == null) {
             throw new IllegalStateException();
diff --git a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/util/RejectDoctypeSaxFilter.java b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/util/RejectDoctypeSaxFilter.java
index 649e206..e56fee4 100644
--- a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/util/RejectDoctypeSaxFilter.java
+++ b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/util/RejectDoctypeSaxFilter.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -96,6 +96,7 @@
      * Override setProperty() to capture any LexicalHandler that is set for
      * forwarding of events.
      */
+    @Override
     public void setProperty(String name, Object value)
     throws SAXNotRecognizedException, SAXNotSupportedException {
         if (LEXICAL_HANDLER_PROP.equals(name)) {
@@ -109,38 +110,45 @@
     // Beginning of SAX LexicalHandler callbacks...
     //
 
+    @Override
     public void startDTD(String name, String publicId, String systemId)
     throws SAXException {
         throw new SAXException("Document Type Declaration is not allowed");
     }
 
+    @Override
     public void endDTD() throws SAXException {
     }
 
+    @Override
     public void startEntity(String name) throws SAXException {
         if (lexicalHandler != null) {
             lexicalHandler.startEntity(name);
         }
     }
 
+    @Override
     public void endEntity(String name) throws SAXException {
         if (lexicalHandler != null) {
             lexicalHandler.endEntity(name);
         }
     }
 
+    @Override
     public void startCDATA() throws SAXException {
         if (lexicalHandler != null) {
             lexicalHandler.startCDATA();
         }
     }
 
+    @Override
     public void endCDATA() throws SAXException {
         if (lexicalHandler != null) {
             lexicalHandler.endCDATA();
         }
     }
 
+    @Override
     public void comment(char[] ch, int start, int length) throws SAXException {
         if (lexicalHandler != null) {
             lexicalHandler.comment(ch, start, length);
@@ -151,6 +159,7 @@
     // End of SAX LexicalHandler callbacks
     //
 
+    @Override
     public void startElement(String namespaceURI, String localName,
     String qName, Attributes atts)   throws SAXException{
         if(atts != null ){
diff --git a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/util/TeeInputStream.java b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/util/TeeInputStream.java
index bbb4c83..563f38d 100644
--- a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/util/TeeInputStream.java
+++ b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/util/TeeInputStream.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -46,44 +46,53 @@
         this.source = source;
     }
 
+    @Override
     public int read() throws IOException {
         int result = source.read();
         copySink.write(result);
         return result;
     }
 
+    @Override
     public int available() throws IOException {
         return source.available();
     }
 
+    @Override
     public void close() throws IOException {
         source.close();
     }
 
+    @Override
     public synchronized void mark(int readlimit) {
         source.mark(readlimit);
     }
 
+    @Override
     public boolean markSupported() {
         return source.markSupported();
     }
 
+    @Override
     public int read(byte[] b, int off, int len) throws IOException {
         int result = source.read(b, off, len);
         copySink.write(b, off, len);
         return result;
     }
 
+    @Override
     public int read(byte[] b) throws IOException {
         int result = source.read(b);
         copySink.write(b);
         return result;
     }
 
+    @Override
     public synchronized void reset() throws IOException {
         source.reset();
     }
 
+    @Override
     public long skip(long n) throws IOException {
         return source.skip(n);
     }
diff --git a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/util/stax/LazyEnvelopeStaxReader.java b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/util/stax/LazyEnvelopeStaxReader.java
index c8765a4..1bf8da3 100644
--- a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/util/stax/LazyEnvelopeStaxReader.java
+++ b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/util/stax/LazyEnvelopeStaxReader.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -59,11 +59,13 @@
         }
     }
 
+    @Override
     public Object getProperty(String name) throws IllegalArgumentException {
         if (usePayloadReaderDelegate) return payloadReader.getProperty(name);
         return super.getProperty(name);
     }
 
+    @Override
     public int next() throws XMLStreamException {
 //        boolean previouslyUsingPayloadReader = usePayloadReaderDelegate;
         //call checkReaderStatus to advance to payloadReader if needed
@@ -78,22 +80,26 @@
         return getEventType();
     }
 
+    @Override
     public void require(int type, String namespaceURI, String localName)
             throws XMLStreamException {
         if (usePayloadReaderDelegate) payloadReader.require(type, namespaceURI, localName);
         else super.require(type, namespaceURI, localName);
     }
 
+    @Override
     public String getElementText() throws XMLStreamException {
         if (usePayloadReaderDelegate) return payloadReader.getElementText();
         return super.getElementText();
     }
 
+    @Override
     public int nextTag() throws XMLStreamException {
         if (usePayloadReaderDelegate) return payloadReader.nextTag();
         return super.nextTag();
     }
 
+    @Override
     public boolean hasNext() throws XMLStreamException {
         checkReaderStatus(false);
         boolean hasNext;
@@ -139,116 +145,139 @@
         }
     }
 
+    @Override
     public void close() throws XMLStreamException {
         if (usePayloadReaderDelegate) payloadReader.close();
         else super.close();
     }
 
+    @Override
     public String getNamespaceURI(String prefix) {
         if (usePayloadReaderDelegate) return payloadReader.getNamespaceURI(prefix);
         return super.getNamespaceURI(prefix);
     }
 
+    @Override
     public boolean isStartElement() {
         if (usePayloadReaderDelegate) return payloadReader.isStartElement();
         return super.isStartElement();
     }
 
+    @Override
     public boolean isEndElement() {
         if (usePayloadReaderDelegate) return payloadReader.isEndElement();
         return super.isEndElement();
     }
 
+    @Override
     public boolean isCharacters() {
         if (usePayloadReaderDelegate) return payloadReader.isCharacters();
         return super.isEndElement();
     }
 
+    @Override
     public boolean isWhiteSpace() {
         if (usePayloadReaderDelegate) return payloadReader.isWhiteSpace();
         return super.isWhiteSpace();
     }
 
+    @Override
     public String getAttributeValue(String namespaceURI, String localName) {
         if (usePayloadReaderDelegate) return payloadReader.getAttributeValue(namespaceURI, localName);
         return super.getAttributeValue(namespaceURI, localName);
     }
 
+    @Override
     public int getAttributeCount() {
         if (usePayloadReaderDelegate) return payloadReader.getAttributeCount();
         return super.getAttributeCount();
     }
 
+    @Override
     public QName getAttributeName(int index) {
         if (usePayloadReaderDelegate) return payloadReader.getAttributeName(index);
         return super.getAttributeName(index);
     }
 
+    @Override
     public String getAttributeNamespace(int index) {
         if (usePayloadReaderDelegate) return payloadReader.getAttributeNamespace(index);
         return super.getAttributeNamespace(index);
     }
 
+    @Override
     public String getAttributeLocalName(int index) {
         if (usePayloadReaderDelegate) return payloadReader.getAttributeLocalName(index);
         return super.getAttributeLocalName(index);
     }
 
+    @Override
     public String getAttributePrefix(int index) {
         if (usePayloadReaderDelegate) return payloadReader.getAttributePrefix(index);
         return super.getAttributePrefix(index);
     }
 
+    @Override
     public String getAttributeType(int index) {
         if (usePayloadReaderDelegate) return payloadReader.getAttributeType(index);
         return super.getAttributeType(index);
     }
 
+    @Override
     public String getAttributeValue(int index) {
         if (usePayloadReaderDelegate) return payloadReader.getAttributeValue(index);
         return super.getAttributeValue(index);
     }
 
+    @Override
     public boolean isAttributeSpecified(int index) {
         if (usePayloadReaderDelegate) return payloadReader.isAttributeSpecified(index);
         return super.isAttributeSpecified(index);
     }
 
+    @Override
     public int getNamespaceCount() {
         if (usePayloadReaderDelegate) return payloadReader.getNamespaceCount();
         return super.getNamespaceCount();
     }
 
+    @Override
     public String getNamespacePrefix(int index) {
         if (usePayloadReaderDelegate) return payloadReader.getNamespacePrefix(index);
         return super.getNamespacePrefix(index);
     }
 
+    @Override
     public String getNamespaceURI(int index) {
         if (usePayloadReaderDelegate) return payloadReader.getNamespaceURI(index);
         return super.getNamespaceURI(index);
     }
 
+    @Override
     public NamespaceContext getNamespaceContext() {
         if (usePayloadReaderDelegate) return payloadReader.getNamespaceContext();
         return super.getNamespaceContext();
     }
 
+    @Override
     public int getEventType() {
         if (usePayloadReaderDelegate) return payloadReader.getEventType();
         return super.getEventType();
     }
 
+    @Override
     public String getText() {
         if (usePayloadReaderDelegate) return payloadReader.getText();
         return super.getText();
     }
 
+    @Override
     public char[] getTextCharacters() {
         if (usePayloadReaderDelegate) return payloadReader.getTextCharacters();
         return super.getTextCharacters();
     }
 
+    @Override
     public int getTextCharacters(int sourceStart, char[] target,
             int targetStart, int length) throws XMLStreamException {
         if (usePayloadReaderDelegate) return payloadReader.getTextCharacters(sourceStart, target, targetStart,
@@ -256,81 +285,97 @@
         return super.getTextCharacters(sourceStart, target, targetStart, length);
     }
 
+    @Override
     public int getTextStart() {
         if (usePayloadReaderDelegate) return payloadReader.getTextStart();
         return super.getTextStart();
     }
 
+    @Override
     public int getTextLength() {
         if (usePayloadReaderDelegate) return payloadReader.getTextLength();
         return super.getTextLength();
     }
 
+    @Override
     public String getEncoding() {
         if (usePayloadReaderDelegate) return payloadReader.getEncoding();
         return super.getEncoding();
     }
 
+    @Override
     public boolean hasText() {
         if (usePayloadReaderDelegate) return payloadReader.hasText();
         return super.hasText();
     }
 
+    @Override
     public Location getLocation() {
         if (usePayloadReaderDelegate) return payloadReader.getLocation();
         return super.getLocation();
     }
 
+    @Override
     public QName getName() {
         if (usePayloadReaderDelegate) return payloadReader.getName();
         return super.getName();
     }
 
+    @Override
     public String getLocalName() {
         if (usePayloadReaderDelegate) return payloadReader.getLocalName();
         return super.getLocalName();
     }
 
+    @Override
     public boolean hasName() {
         if (usePayloadReaderDelegate) return payloadReader.hasName();
         return super.hasName();
     }
 
+    @Override
     public String getNamespaceURI() {
         if (usePayloadReaderDelegate) return payloadReader.getNamespaceURI();
         return super.getNamespaceURI();
     }
 
+    @Override
     public String getPrefix() {
         if (usePayloadReaderDelegate) return payloadReader.getPrefix();
         return super.getPrefix();
     }
 
+    @Override
     public String getVersion() {
         if (usePayloadReaderDelegate) return payloadReader.getVersion();
         return super.getVersion();
     }
 
+    @Override
     public boolean isStandalone() {
         if (usePayloadReaderDelegate) return payloadReader.isStandalone();
         return super.isStandalone();
     }
 
+    @Override
     public boolean standaloneSet() {
         if (usePayloadReaderDelegate) return payloadReader.standaloneSet();
         return super.standaloneSet();
     }
 
+    @Override
     public String getCharacterEncodingScheme() {
         if (usePayloadReaderDelegate) return payloadReader.getCharacterEncodingScheme();
         return super.getCharacterEncodingScheme();
     }
 
+    @Override
     public String getPITarget() {
         if (usePayloadReaderDelegate) return payloadReader.getPITarget();
         return super.getPITarget();
     }
 
+    @Override
     public String getPIData() {
         if (usePayloadReaderDelegate) return payloadReader.getPIData();
         return super.getPIData();
diff --git a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/util/stax/SaajStaxWriter.java b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/util/stax/SaajStaxWriter.java
index a53cb79..ce9c175 100644
--- a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/util/stax/SaajStaxWriter.java
+++ b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/util/stax/SaajStaxWriter.java
@@ -335,24 +335,30 @@
     @Override
     public NamespaceContext getNamespaceContext() {
         return new NamespaceContext() {
+            @Override
             public String getNamespaceURI(final String prefix) {
                 return currentElement.getNamespaceURI(prefix);
             }
+            @Override
             public String getPrefix(final String namespaceURI) {
                 return currentElement.lookupPrefix(namespaceURI);
             }
+            @Override
             public Iterator getPrefixes(final String namespaceURI) {
                 return new Iterator<String>() {
                     String prefix = getPrefix(namespaceURI);
+                    @Override
                     public boolean hasNext() {
                         return (prefix != null);
                     }
+                    @Override
                     public String next() {
                         if (!hasNext()) throw new java.util.NoSuchElementException();
                         String next = prefix;
                         prefix = null;
                         return next;
                     }
+                    @Override
                     public void remove() {}
                 };
             }
diff --git a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/util/stax/SaajStaxWriterEx.java b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/util/stax/SaajStaxWriterEx.java
index 4048b29..b5745dc 100644
--- a/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/util/stax/SaajStaxWriterEx.java
+++ b/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/util/stax/SaajStaxWriterEx.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -67,6 +67,7 @@
         super(msg, uri);
     }
 
+    @Override
     public void writeStartElement(String prefix, String ln, String ns) throws XMLStreamException {
         if (xopNS.equals(ns) && Include.equals(ln)) {
             state = State.xopInclude;
@@ -108,31 +109,41 @@
     @Override
     public NamespaceContextEx getNamespaceContext() {
         return new NamespaceContextEx() {
+            @Override
             public String getNamespaceURI(String prefix) {
                 return currentElement.getNamespaceURI(prefix);
             }
+            @Override
             public String getPrefix(String namespaceURI) {
                 return currentElement.lookupPrefix(namespaceURI);
             }
+            @Override
             public Iterator getPrefixes(final String namespaceURI) {
                 return new Iterator<String>() {
                     String prefix = getPrefix(namespaceURI);
+                    @Override
                     public boolean hasNext() {
                         return (prefix != null);
                     }
+                    @Override
                     public String next() {
                         if (prefix == null) throw new java.util.NoSuchElementException();
                         String next = prefix;
                         prefix = null;
                         return next;
                     }
+                    @Override
                     public void remove() {}
                 };
             }
+            @Override
             public Iterator<Binding> iterator() {
                 return new Iterator<Binding>() {
+                    @Override
                     public boolean hasNext() { return false; }
+                    @Override
                     public Binding next() { return null; }
+                    @Override
                     public void remove() {}
                 };
             }
@@ -208,6 +219,7 @@
         return hrefOrCid;
     }
 
+    @Override
     public AttachmentMarshaller getAttachmentMarshaller() {
         return new AttachmentMarshaller() {
             @Override
diff --git a/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/api/message/saaj/SAAJMessageHeaders.java b/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/api/message/saaj/SAAJMessageHeaders.java
index 80f7d3b..db5defc 100644
--- a/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/api/message/saaj/SAAJMessageHeaders.java
+++ b/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/api/message/saaj/SAAJMessageHeaders.java
@@ -25,6 +25,18 @@
 
 package com.sun.xml.internal.ws.api.message.saaj;
 
+import com.sun.xml.internal.ws.api.SOAPVersion;
+import com.sun.xml.internal.ws.api.WSBinding;
+import com.sun.xml.internal.ws.api.message.Header;
+import com.sun.xml.internal.ws.api.message.MessageHeaders;
+import com.sun.xml.internal.ws.binding.SOAPBindingImpl;
+import com.sun.xml.internal.ws.message.saaj.SAAJHeader;
+
+import javax.xml.namespace.QName;
+import javax.xml.soap.SOAPException;
+import javax.xml.soap.SOAPHeader;
+import javax.xml.soap.SOAPHeaderElement;
+import javax.xml.soap.SOAPMessage;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.HashMap;
@@ -34,21 +46,6 @@
 import java.util.Map;
 import java.util.Set;
 
-import javax.xml.namespace.QName;
-import javax.xml.soap.SOAPException;
-import javax.xml.soap.SOAPHeader;
-import javax.xml.soap.SOAPHeaderElement;
-import javax.xml.soap.SOAPMessage;
-
-import com.sun.xml.internal.messaging.saaj.soap.SOAPDocumentImpl;
-import com.sun.xml.internal.messaging.saaj.soap.impl.HeaderImpl;
-import com.sun.xml.internal.ws.api.SOAPVersion;
-import com.sun.xml.internal.ws.api.WSBinding;
-import com.sun.xml.internal.ws.api.message.Header;
-import com.sun.xml.internal.ws.api.message.MessageHeaders;
-import com.sun.xml.internal.ws.binding.SOAPBindingImpl;
-import com.sun.xml.internal.ws.message.saaj.SAAJHeader;
-
 public class SAAJMessageHeaders implements MessageHeaders {
     SOAPMessage sm;
     Map<SOAPHeaderElement, Header> nonSAAJHeaders;
@@ -236,12 +233,11 @@
         if (soapHeader == null) {
             return null;
         }
-        SOAPDocumentImpl soapDocument = ((HeaderImpl)soapHeader).getSoapDocument();
         SOAPHeaderElement headerElem = find(nsUri, localName);
         if (headerElem == null) {
             return null;
         }
-        headerElem = (SOAPHeaderElement) soapDocument.find(soapHeader.removeChild(headerElem));
+        headerElem = (SOAPHeaderElement) soapHeader.removeChild(headerElem);
 
         //it might have been a nonSAAJHeader - remove from that map
         removeNonSAAJHeader(headerElem);
diff --git a/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/api/server/SDDocumentSource.java b/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/api/server/SDDocumentSource.java
index 3ba900a..02d22f1 100644
--- a/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/api/server/SDDocumentSource.java
+++ b/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/api/server/SDDocumentSource.java
@@ -35,6 +35,7 @@
 import javax.xml.stream.XMLStreamReader;
 import java.io.IOException;
 import java.io.InputStream;
+import java.lang.reflect.Method;
 import java.net.MalformedURLException;
 import java.net.URL;
 
@@ -89,8 +90,14 @@
      */
     public abstract URL getSystemId();
 
-    public static SDDocumentSource create(final Class<?> implClass, final String url) {
-        return create(url, implClass);
+    public static SDDocumentSource create(final Class<?> implClass, final String wsdlLocation) {
+        ClassLoader cl = implClass.getClassLoader();
+        URL url = cl.getResource(wsdlLocation);
+        if (url != null) {
+            return create(url);
+        } else {
+            return create(wsdlLocation, implClass);
+        }
     }
 
     /**
diff --git a/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/api/streaming/XMLStreamReaderFactory.java b/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/api/streaming/XMLStreamReaderFactory.java
index 68cccd1..9aab8d7 100644
--- a/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/api/streaming/XMLStreamReaderFactory.java
+++ b/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/api/streaming/XMLStreamReaderFactory.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -28,6 +28,7 @@
 import com.sun.istack.internal.NotNull;
 import com.sun.istack.internal.Nullable;
 import com.sun.xml.internal.ws.streaming.XMLReaderException;
+import com.sun.xml.internal.ws.util.MrJarUtil;
 import com.sun.xml.internal.ws.util.xml.XmlUtil;
 import org.xml.sax.InputSource;
 
@@ -79,7 +80,7 @@
 
                     // this system property can be used to disable the pooling altogether,
                     // in case someone hits an issue with pooling in the production system.
-                    if(!getProperty(XMLStreamReaderFactory.class.getName()+".noPool")) {
+                    if(!MrJarUtil.getNoPoolProperty(XMLStreamReaderFactory.class.getName())) {
                         f = Zephyr.newInstance(xif);
                     }
 
diff --git a/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/api/streaming/XMLStreamWriterFactory.java b/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/api/streaming/XMLStreamWriterFactory.java
index fa52778..2b34c2c 100644
--- a/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/api/streaming/XMLStreamWriterFactory.java
+++ b/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/api/streaming/XMLStreamWriterFactory.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -30,6 +30,7 @@
 import com.sun.xml.internal.ws.encoding.HasEncoding;
 import com.sun.xml.internal.ws.encoding.SOAPBindingCodec;
 import com.sun.xml.internal.ws.streaming.XMLReaderException;
+import com.sun.xml.internal.ws.util.MrJarUtil;
 import com.sun.xml.internal.ws.util.xml.XMLStreamWriterFilter;
 
 import javax.xml.stream.XMLOutputFactory;
@@ -85,7 +86,7 @@
 
             // this system property can be used to disable the pooling altogether,
             // in case someone hits an issue with pooling in the production system.
-            if (!Boolean.getBoolean(XMLStreamWriterFactory.class.getName()+".noPool")) {
+            if (!MrJarUtil.getNoPoolProperty(XMLStreamWriterFactory.class.getName())) {
                 try {
                     Class<?> clazz = xof.createXMLStreamWriter(new StringWriter()).getClass();
                     if (clazz.getName().startsWith("com.sun.xml.internal.stream.")) {
diff --git a/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/model/RuntimeModeler.java b/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/model/RuntimeModeler.java
index ad6f52f..3b2df62 100644
--- a/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/model/RuntimeModeler.java
+++ b/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/model/RuntimeModeler.java
@@ -1180,7 +1180,7 @@
                     if(p == null)
                         resRpcParams.put(resRpcParams.size()+10000, param);
                     else
-                        resRpcParams.put(param.getIndex(), param);
+                        resRpcParams.put(p.getIndex(), param);
                 }
             }else{
                 javaMethod.addParameter(param);
diff --git a/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/policy/privateutil/LocalizationMessages.java b/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/policy/privateutil/LocalizationMessages.java
index 1c6f1d6..a672ba5 100644
--- a/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/policy/privateutil/LocalizationMessages.java
+++ b/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/policy/privateutil/LocalizationMessages.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,30 +25,28 @@
 
 package com.sun.xml.internal.ws.policy.privateutil;
 
-import com.sun.istack.internal.localization.Localizable;
-import com.sun.istack.internal.localization.LocalizableMessageFactory;
-import com.sun.istack.internal.localization.Localizer;
-
 import java.util.Locale;
 import java.util.ResourceBundle;
+import javax.annotation.Generated;
+import com.sun.istack.internal.localization.Localizable;
+import com.sun.istack.internal.localization.LocalizableMessageFactory;
+import com.sun.istack.internal.localization.LocalizableMessageFactory.ResourceBundleSupplier;
+import com.sun.istack.internal.localization.Localizer;
 
 
 /**
  * Defines string formatting method for each constant in the resource file
  *
  */
+@Generated("com.sun.istack.internal.maven.ResourceGenMojo")
 public final class LocalizationMessages {
-    private final static String BUNDLE_NAME = "com.sun.xml.internal.ws.policy.privateutil.Localization";
-    private final static LocalizableMessageFactory messageFactory =
-        new LocalizableMessageFactory(BUNDLE_NAME, LocalizationMessages::getResourceBundle);
-    private final static Localizer localizer = new Localizer();
 
-    private static ResourceBundle getResourceBundle(Locale locale) {
-        return ResourceBundle.getBundle(BUNDLE_NAME, locale);
-    }
+    private final static String BUNDLE_NAME = "com.sun.xml.internal.ws.policy.privateutil.Localization";
+    private final static LocalizableMessageFactory MESSAGE_FACTORY = new LocalizableMessageFactory(BUNDLE_NAME, new LocalizationMessages.BundleSupplier());
+    private final static Localizer LOCALIZER = new Localizer();
 
     public static Localizable localizableWSP_0017_UNABLE_TO_ACCESS_POLICY_SOURCE_MODEL_PLUS_REASON(Object arg0, Object arg1) {
-        return messageFactory.getMessage("WSP_0017_UNABLE_TO_ACCESS_POLICY_SOURCE_MODEL_PLUS_REASON", arg0, arg1);
+        return MESSAGE_FACTORY.getMessage("WSP_0017_UNABLE_TO_ACCESS_POLICY_SOURCE_MODEL_PLUS_REASON", arg0, arg1);
     }
 
     /**
@@ -57,11 +55,11 @@
      *
      */
     public static String WSP_0017_UNABLE_TO_ACCESS_POLICY_SOURCE_MODEL_PLUS_REASON(Object arg0, Object arg1) {
-        return localizer.localize(localizableWSP_0017_UNABLE_TO_ACCESS_POLICY_SOURCE_MODEL_PLUS_REASON(arg0, arg1));
+        return LOCALIZER.localize(localizableWSP_0017_UNABLE_TO_ACCESS_POLICY_SOURCE_MODEL_PLUS_REASON(arg0, arg1));
     }
 
     public static Localizable localizableWSP_0028_SERVICE_PROVIDER_COULD_NOT_BE_INSTANTIATED(Object arg0) {
-        return messageFactory.getMessage("WSP_0028_SERVICE_PROVIDER_COULD_NOT_BE_INSTANTIATED", arg0);
+        return MESSAGE_FACTORY.getMessage("WSP_0028_SERVICE_PROVIDER_COULD_NOT_BE_INSTANTIATED", arg0);
     }
 
     /**
@@ -69,11 +67,11 @@
      *
      */
     public static String WSP_0028_SERVICE_PROVIDER_COULD_NOT_BE_INSTANTIATED(Object arg0) {
-        return localizer.localize(localizableWSP_0028_SERVICE_PROVIDER_COULD_NOT_BE_INSTANTIATED(arg0));
+        return LOCALIZER.localize(localizableWSP_0028_SERVICE_PROVIDER_COULD_NOT_BE_INSTANTIATED(arg0));
     }
 
     public static Localizable localizableWSP_0081_UNABLE_TO_INSERT_CHILD(Object arg0, Object arg1) {
-        return messageFactory.getMessage("WSP_0081_UNABLE_TO_INSERT_CHILD", arg0, arg1);
+        return MESSAGE_FACTORY.getMessage("WSP_0081_UNABLE_TO_INSERT_CHILD", arg0, arg1);
     }
 
     /**
@@ -81,11 +79,11 @@
      *
      */
     public static String WSP_0081_UNABLE_TO_INSERT_CHILD(Object arg0, Object arg1) {
-        return localizer.localize(localizableWSP_0081_UNABLE_TO_INSERT_CHILD(arg0, arg1));
+        return LOCALIZER.localize(localizableWSP_0081_UNABLE_TO_INSERT_CHILD(arg0, arg1));
     }
 
     public static Localizable localizableWSP_0096_ERROR_WHILE_COMBINE(Object arg0) {
-        return messageFactory.getMessage("WSP_0096_ERROR_WHILE_COMBINE", arg0);
+        return MESSAGE_FACTORY.getMessage("WSP_0096_ERROR_WHILE_COMBINE", arg0);
     }
 
     /**
@@ -93,11 +91,11 @@
      *
      */
     public static String WSP_0096_ERROR_WHILE_COMBINE(Object arg0) {
-        return localizer.localize(localizableWSP_0096_ERROR_WHILE_COMBINE(arg0));
+        return LOCALIZER.localize(localizableWSP_0096_ERROR_WHILE_COMBINE(arg0));
     }
 
     public static Localizable localizableWSP_0018_UNABLE_TO_ACCESS_POLICY_SOURCE_MODEL(Object arg0) {
-        return messageFactory.getMessage("WSP_0018_UNABLE_TO_ACCESS_POLICY_SOURCE_MODEL", arg0);
+        return MESSAGE_FACTORY.getMessage("WSP_0018_UNABLE_TO_ACCESS_POLICY_SOURCE_MODEL", arg0);
     }
 
     /**
@@ -105,11 +103,11 @@
      *
      */
     public static String WSP_0018_UNABLE_TO_ACCESS_POLICY_SOURCE_MODEL(Object arg0) {
-        return localizer.localize(localizableWSP_0018_UNABLE_TO_ACCESS_POLICY_SOURCE_MODEL(arg0));
+        return LOCALIZER.localize(localizableWSP_0018_UNABLE_TO_ACCESS_POLICY_SOURCE_MODEL(arg0));
     }
 
     public static Localizable localizableWSP_0090_UNEXPECTED_ELEMENT(Object arg0, Object arg1) {
-        return messageFactory.getMessage("WSP_0090_UNEXPECTED_ELEMENT", arg0, arg1);
+        return MESSAGE_FACTORY.getMessage("WSP_0090_UNEXPECTED_ELEMENT", arg0, arg1);
     }
 
     /**
@@ -117,11 +115,11 @@
      *
      */
     public static String WSP_0090_UNEXPECTED_ELEMENT(Object arg0, Object arg1) {
-        return localizer.localize(localizableWSP_0090_UNEXPECTED_ELEMENT(arg0, arg1));
+        return LOCALIZER.localize(localizableWSP_0090_UNEXPECTED_ELEMENT(arg0, arg1));
     }
 
     public static Localizable localizableWSP_0043_POLICY_MODEL_TRANSLATION_ERROR_INPUT_PARAM_NULL() {
-        return messageFactory.getMessage("WSP_0043_POLICY_MODEL_TRANSLATION_ERROR_INPUT_PARAM_NULL");
+        return MESSAGE_FACTORY.getMessage("WSP_0043_POLICY_MODEL_TRANSLATION_ERROR_INPUT_PARAM_NULL");
     }
 
     /**
@@ -129,11 +127,11 @@
      *
      */
     public static String WSP_0043_POLICY_MODEL_TRANSLATION_ERROR_INPUT_PARAM_NULL() {
-        return localizer.localize(localizableWSP_0043_POLICY_MODEL_TRANSLATION_ERROR_INPUT_PARAM_NULL());
+        return LOCALIZER.localize(localizableWSP_0043_POLICY_MODEL_TRANSLATION_ERROR_INPUT_PARAM_NULL());
     }
 
     public static Localizable localizableWSP_0055_NO_ALTERNATIVE_COMBINATIONS_CREATED() {
-        return messageFactory.getMessage("WSP_0055_NO_ALTERNATIVE_COMBINATIONS_CREATED");
+        return MESSAGE_FACTORY.getMessage("WSP_0055_NO_ALTERNATIVE_COMBINATIONS_CREATED");
     }
 
     /**
@@ -141,11 +139,11 @@
      *
      */
     public static String WSP_0055_NO_ALTERNATIVE_COMBINATIONS_CREATED() {
-        return localizer.localize(localizableWSP_0055_NO_ALTERNATIVE_COMBINATIONS_CREATED());
+        return LOCALIZER.localize(localizableWSP_0055_NO_ALTERNATIVE_COMBINATIONS_CREATED());
     }
 
     public static Localizable localizableWSP_0072_DIGEST_MUST_NOT_BE_NULL_WHEN_ALG_DEFINED() {
-        return messageFactory.getMessage("WSP_0072_DIGEST_MUST_NOT_BE_NULL_WHEN_ALG_DEFINED");
+        return MESSAGE_FACTORY.getMessage("WSP_0072_DIGEST_MUST_NOT_BE_NULL_WHEN_ALG_DEFINED");
     }
 
     /**
@@ -153,11 +151,11 @@
      *
      */
     public static String WSP_0072_DIGEST_MUST_NOT_BE_NULL_WHEN_ALG_DEFINED() {
-        return localizer.localize(localizableWSP_0072_DIGEST_MUST_NOT_BE_NULL_WHEN_ALG_DEFINED());
+        return LOCALIZER.localize(localizableWSP_0072_DIGEST_MUST_NOT_BE_NULL_WHEN_ALG_DEFINED());
     }
 
     public static Localizable localizableWSP_0016_UNABLE_TO_CLONE_POLICY_SOURCE_MODEL() {
-        return messageFactory.getMessage("WSP_0016_UNABLE_TO_CLONE_POLICY_SOURCE_MODEL");
+        return MESSAGE_FACTORY.getMessage("WSP_0016_UNABLE_TO_CLONE_POLICY_SOURCE_MODEL");
     }
 
     /**
@@ -165,11 +163,11 @@
      *
      */
     public static String WSP_0016_UNABLE_TO_CLONE_POLICY_SOURCE_MODEL() {
-        return localizer.localize(localizableWSP_0016_UNABLE_TO_CLONE_POLICY_SOURCE_MODEL());
+        return LOCALIZER.localize(localizableWSP_0016_UNABLE_TO_CLONE_POLICY_SOURCE_MODEL());
     }
 
     public static Localizable localizableWSP_0058_MULTIPLE_POLICY_IDS_NOT_ALLOWED() {
-        return messageFactory.getMessage("WSP_0058_MULTIPLE_POLICY_IDS_NOT_ALLOWED");
+        return MESSAGE_FACTORY.getMessage("WSP_0058_MULTIPLE_POLICY_IDS_NOT_ALLOWED");
     }
 
     /**
@@ -177,11 +175,11 @@
      *
      */
     public static String WSP_0058_MULTIPLE_POLICY_IDS_NOT_ALLOWED() {
-        return localizer.localize(localizableWSP_0058_MULTIPLE_POLICY_IDS_NOT_ALLOWED());
+        return LOCALIZER.localize(localizableWSP_0058_MULTIPLE_POLICY_IDS_NOT_ALLOWED());
     }
 
     public static Localizable localizableWSP_0061_METHOD_INVOCATION_FAILED(Object arg0, Object arg1, Object arg2) {
-        return messageFactory.getMessage("WSP_0061_METHOD_INVOCATION_FAILED", arg0, arg1, arg2);
+        return MESSAGE_FACTORY.getMessage("WSP_0061_METHOD_INVOCATION_FAILED", arg0, arg1, arg2);
     }
 
     /**
@@ -189,11 +187,11 @@
      *
      */
     public static String WSP_0061_METHOD_INVOCATION_FAILED(Object arg0, Object arg1, Object arg2) {
-        return localizer.localize(localizableWSP_0061_METHOD_INVOCATION_FAILED(arg0, arg1, arg2));
+        return LOCALIZER.localize(localizableWSP_0061_METHOD_INVOCATION_FAILED(arg0, arg1, arg2));
     }
 
     public static Localizable localizableWSP_0048_POLICY_ELEMENT_EXPECTED_FIRST() {
-        return messageFactory.getMessage("WSP_0048_POLICY_ELEMENT_EXPECTED_FIRST");
+        return MESSAGE_FACTORY.getMessage("WSP_0048_POLICY_ELEMENT_EXPECTED_FIRST");
     }
 
     /**
@@ -201,11 +199,11 @@
      *
      */
     public static String WSP_0048_POLICY_ELEMENT_EXPECTED_FIRST() {
-        return localizer.localize(localizableWSP_0048_POLICY_ELEMENT_EXPECTED_FIRST());
+        return LOCALIZER.localize(localizableWSP_0048_POLICY_ELEMENT_EXPECTED_FIRST());
     }
 
     public static Localizable localizableWSP_0068_FAILED_TO_UNMARSHALL_POLICY_EXPRESSION() {
-        return messageFactory.getMessage("WSP_0068_FAILED_TO_UNMARSHALL_POLICY_EXPRESSION");
+        return MESSAGE_FACTORY.getMessage("WSP_0068_FAILED_TO_UNMARSHALL_POLICY_EXPRESSION");
     }
 
     /**
@@ -213,11 +211,11 @@
      *
      */
     public static String WSP_0068_FAILED_TO_UNMARSHALL_POLICY_EXPRESSION() {
-        return localizer.localize(localizableWSP_0068_FAILED_TO_UNMARSHALL_POLICY_EXPRESSION());
+        return LOCALIZER.localize(localizableWSP_0068_FAILED_TO_UNMARSHALL_POLICY_EXPRESSION());
     }
 
     public static Localizable localizableWSP_0029_SERVICE_PORT_OPERATION_PARAM_MUST_NOT_BE_NULL(Object arg0, Object arg1, Object arg2) {
-        return messageFactory.getMessage("WSP_0029_SERVICE_PORT_OPERATION_PARAM_MUST_NOT_BE_NULL", arg0, arg1, arg2);
+        return MESSAGE_FACTORY.getMessage("WSP_0029_SERVICE_PORT_OPERATION_PARAM_MUST_NOT_BE_NULL", arg0, arg1, arg2);
     }
 
     /**
@@ -225,11 +223,11 @@
      *
      */
     public static String WSP_0029_SERVICE_PORT_OPERATION_PARAM_MUST_NOT_BE_NULL(Object arg0, Object arg1, Object arg2) {
-        return localizer.localize(localizableWSP_0029_SERVICE_PORT_OPERATION_PARAM_MUST_NOT_BE_NULL(arg0, arg1, arg2));
+        return LOCALIZER.localize(localizableWSP_0029_SERVICE_PORT_OPERATION_PARAM_MUST_NOT_BE_NULL(arg0, arg1, arg2));
     }
 
     public static Localizable localizableWSP_0080_IMPLEMENTATION_EXPECTED_NOT_NULL() {
-        return messageFactory.getMessage("WSP_0080_IMPLEMENTATION_EXPECTED_NOT_NULL");
+        return MESSAGE_FACTORY.getMessage("WSP_0080_IMPLEMENTATION_EXPECTED_NOT_NULL");
     }
 
     /**
@@ -237,11 +235,11 @@
      *
      */
     public static String WSP_0080_IMPLEMENTATION_EXPECTED_NOT_NULL() {
-        return localizer.localize(localizableWSP_0080_IMPLEMENTATION_EXPECTED_NOT_NULL());
+        return LOCALIZER.localize(localizableWSP_0080_IMPLEMENTATION_EXPECTED_NOT_NULL());
     }
 
     public static Localizable localizableWSP_0051_OPERATION_NOT_SUPPORTED_FOR_THIS_BUT_ASSERTION_RELATED_NODE_TYPE(Object arg0) {
-        return messageFactory.getMessage("WSP_0051_OPERATION_NOT_SUPPORTED_FOR_THIS_BUT_ASSERTION_RELATED_NODE_TYPE", arg0);
+        return MESSAGE_FACTORY.getMessage("WSP_0051_OPERATION_NOT_SUPPORTED_FOR_THIS_BUT_ASSERTION_RELATED_NODE_TYPE", arg0);
     }
 
     /**
@@ -249,11 +247,11 @@
      *
      */
     public static String WSP_0051_OPERATION_NOT_SUPPORTED_FOR_THIS_BUT_ASSERTION_RELATED_NODE_TYPE(Object arg0) {
-        return localizer.localize(localizableWSP_0051_OPERATION_NOT_SUPPORTED_FOR_THIS_BUT_ASSERTION_RELATED_NODE_TYPE(arg0));
+        return LOCALIZER.localize(localizableWSP_0051_OPERATION_NOT_SUPPORTED_FOR_THIS_BUT_ASSERTION_RELATED_NODE_TYPE(arg0));
     }
 
     public static Localizable localizableWSP_0008_UNEXPECTED_CHILD_MODEL_TYPE(Object arg0) {
-        return messageFactory.getMessage("WSP_0008_UNEXPECTED_CHILD_MODEL_TYPE", arg0);
+        return MESSAGE_FACTORY.getMessage("WSP_0008_UNEXPECTED_CHILD_MODEL_TYPE", arg0);
     }
 
     /**
@@ -261,11 +259,11 @@
      *
      */
     public static String WSP_0008_UNEXPECTED_CHILD_MODEL_TYPE(Object arg0) {
-        return localizer.localize(localizableWSP_0008_UNEXPECTED_CHILD_MODEL_TYPE(arg0));
+        return LOCALIZER.localize(localizableWSP_0008_UNEXPECTED_CHILD_MODEL_TYPE(arg0));
     }
 
     public static Localizable localizableWSP_0023_UNEXPECTED_ERROR_WHILE_CLOSING_RESOURCE(Object arg0) {
-        return messageFactory.getMessage("WSP_0023_UNEXPECTED_ERROR_WHILE_CLOSING_RESOURCE", arg0);
+        return MESSAGE_FACTORY.getMessage("WSP_0023_UNEXPECTED_ERROR_WHILE_CLOSING_RESOURCE", arg0);
     }
 
     /**
@@ -273,11 +271,11 @@
      *
      */
     public static String WSP_0023_UNEXPECTED_ERROR_WHILE_CLOSING_RESOURCE(Object arg0) {
-        return localizer.localize(localizableWSP_0023_UNEXPECTED_ERROR_WHILE_CLOSING_RESOURCE(arg0));
+        return LOCALIZER.localize(localizableWSP_0023_UNEXPECTED_ERROR_WHILE_CLOSING_RESOURCE(arg0));
     }
 
     public static Localizable localizableWSP_0091_END_ELEMENT_NO_MATCH(Object arg0, Object arg1, Object arg2) {
-        return messageFactory.getMessage("WSP_0091_END_ELEMENT_NO_MATCH", arg0, arg1, arg2);
+        return MESSAGE_FACTORY.getMessage("WSP_0091_END_ELEMENT_NO_MATCH", arg0, arg1, arg2);
     }
 
     /**
@@ -285,11 +283,11 @@
      *
      */
     public static String WSP_0091_END_ELEMENT_NO_MATCH(Object arg0, Object arg1, Object arg2) {
-        return localizer.localize(localizableWSP_0091_END_ELEMENT_NO_MATCH(arg0, arg1, arg2));
+        return LOCALIZER.localize(localizableWSP_0091_END_ELEMENT_NO_MATCH(arg0, arg1, arg2));
     }
 
     public static Localizable localizableWSP_0001_UNSUPPORTED_MODEL_NODE_TYPE(Object arg0) {
-        return messageFactory.getMessage("WSP_0001_UNSUPPORTED_MODEL_NODE_TYPE", arg0);
+        return MESSAGE_FACTORY.getMessage("WSP_0001_UNSUPPORTED_MODEL_NODE_TYPE", arg0);
     }
 
     /**
@@ -297,11 +295,11 @@
      *
      */
     public static String WSP_0001_UNSUPPORTED_MODEL_NODE_TYPE(Object arg0) {
-        return localizer.localize(localizableWSP_0001_UNSUPPORTED_MODEL_NODE_TYPE(arg0));
+        return LOCALIZER.localize(localizableWSP_0001_UNSUPPORTED_MODEL_NODE_TYPE(arg0));
     }
 
     public static Localizable localizableWSP_0053_INVALID_CLIENT_SIDE_ALTERNATIVE() {
-        return messageFactory.getMessage("WSP_0053_INVALID_CLIENT_SIDE_ALTERNATIVE");
+        return MESSAGE_FACTORY.getMessage("WSP_0053_INVALID_CLIENT_SIDE_ALTERNATIVE");
     }
 
     /**
@@ -309,11 +307,11 @@
      *
      */
     public static String WSP_0053_INVALID_CLIENT_SIDE_ALTERNATIVE() {
-        return localizer.localize(localizableWSP_0053_INVALID_CLIENT_SIDE_ALTERNATIVE());
+        return LOCALIZER.localize(localizableWSP_0053_INVALID_CLIENT_SIDE_ALTERNATIVE());
     }
 
     public static Localizable localizableWSP_0087_UNKNOWN_EVENT(Object arg0) {
-        return messageFactory.getMessage("WSP_0087_UNKNOWN_EVENT", arg0);
+        return MESSAGE_FACTORY.getMessage("WSP_0087_UNKNOWN_EVENT", arg0);
     }
 
     /**
@@ -321,11 +319,11 @@
      *
      */
     public static String WSP_0087_UNKNOWN_EVENT(Object arg0) {
-        return localizer.localize(localizableWSP_0087_UNKNOWN_EVENT(arg0));
+        return LOCALIZER.localize(localizableWSP_0087_UNKNOWN_EVENT(arg0));
     }
 
     public static Localizable localizableWSP_0065_INCONSISTENCY_IN_POLICY_SOURCE_MODEL(Object arg0) {
-        return messageFactory.getMessage("WSP_0065_INCONSISTENCY_IN_POLICY_SOURCE_MODEL", arg0);
+        return MESSAGE_FACTORY.getMessage("WSP_0065_INCONSISTENCY_IN_POLICY_SOURCE_MODEL", arg0);
     }
 
     /**
@@ -333,11 +331,11 @@
      *
      */
     public static String WSP_0065_INCONSISTENCY_IN_POLICY_SOURCE_MODEL(Object arg0) {
-        return localizer.localize(localizableWSP_0065_INCONSISTENCY_IN_POLICY_SOURCE_MODEL(arg0));
+        return LOCALIZER.localize(localizableWSP_0065_INCONSISTENCY_IN_POLICY_SOURCE_MODEL(arg0));
     }
 
     public static Localizable localizableWSP_0032_SERVICE_CAN_NOT_BE_NULL() {
-        return messageFactory.getMessage("WSP_0032_SERVICE_CAN_NOT_BE_NULL");
+        return MESSAGE_FACTORY.getMessage("WSP_0032_SERVICE_CAN_NOT_BE_NULL");
     }
 
     /**
@@ -345,11 +343,11 @@
      *
      */
     public static String WSP_0032_SERVICE_CAN_NOT_BE_NULL() {
-        return localizer.localize(localizableWSP_0032_SERVICE_CAN_NOT_BE_NULL());
+        return LOCALIZER.localize(localizableWSP_0032_SERVICE_CAN_NOT_BE_NULL());
     }
 
     public static Localizable localizableWSP_0093_INVALID_URI(Object arg0, Object arg1) {
-        return messageFactory.getMessage("WSP_0093_INVALID_URI", arg0, arg1);
+        return MESSAGE_FACTORY.getMessage("WSP_0093_INVALID_URI", arg0, arg1);
     }
 
     /**
@@ -357,11 +355,11 @@
      *
      */
     public static String WSP_0093_INVALID_URI(Object arg0, Object arg1) {
-        return localizer.localize(localizableWSP_0093_INVALID_URI(arg0, arg1));
+        return LOCALIZER.localize(localizableWSP_0093_INVALID_URI(arg0, arg1));
     }
 
     public static Localizable localizableWSP_0045_POLICY_MAP_KEY_MUST_NOT_BE_NULL() {
-        return messageFactory.getMessage("WSP_0045_POLICY_MAP_KEY_MUST_NOT_BE_NULL");
+        return MESSAGE_FACTORY.getMessage("WSP_0045_POLICY_MAP_KEY_MUST_NOT_BE_NULL");
     }
 
     /**
@@ -369,11 +367,11 @@
      *
      */
     public static String WSP_0045_POLICY_MAP_KEY_MUST_NOT_BE_NULL() {
-        return localizer.localize(localizableWSP_0045_POLICY_MAP_KEY_MUST_NOT_BE_NULL());
+        return LOCALIZER.localize(localizableWSP_0045_POLICY_MAP_KEY_MUST_NOT_BE_NULL());
     }
 
     public static Localizable localizableWSP_0079_ERROR_WHILE_RFC_2396_UNESCAPING(Object arg0) {
-        return messageFactory.getMessage("WSP_0079_ERROR_WHILE_RFC2396_UNESCAPING", arg0);
+        return MESSAGE_FACTORY.getMessage("WSP_0079_ERROR_WHILE_RFC2396_UNESCAPING", arg0);
     }
 
     /**
@@ -381,11 +379,11 @@
      *
      */
     public static String WSP_0079_ERROR_WHILE_RFC_2396_UNESCAPING(Object arg0) {
-        return localizer.localize(localizableWSP_0079_ERROR_WHILE_RFC_2396_UNESCAPING(arg0));
+        return LOCALIZER.localize(localizableWSP_0079_ERROR_WHILE_RFC_2396_UNESCAPING(arg0));
     }
 
     public static Localizable localizableWSP_0064_INITIAL_POLICY_COLLECTION_MUST_NOT_BE_EMPTY() {
-        return messageFactory.getMessage("WSP_0064_INITIAL_POLICY_COLLECTION_MUST_NOT_BE_EMPTY");
+        return MESSAGE_FACTORY.getMessage("WSP_0064_INITIAL_POLICY_COLLECTION_MUST_NOT_BE_EMPTY");
     }
 
     /**
@@ -393,11 +391,11 @@
      *
      */
     public static String WSP_0064_INITIAL_POLICY_COLLECTION_MUST_NOT_BE_EMPTY() {
-        return localizer.localize(localizableWSP_0064_INITIAL_POLICY_COLLECTION_MUST_NOT_BE_EMPTY());
+        return LOCALIZER.localize(localizableWSP_0064_INITIAL_POLICY_COLLECTION_MUST_NOT_BE_EMPTY());
     }
 
     public static Localizable localizableWSP_0044_POLICY_MAP_MUTATOR_ALREADY_CONNECTED() {
-        return messageFactory.getMessage("WSP_0044_POLICY_MAP_MUTATOR_ALREADY_CONNECTED");
+        return MESSAGE_FACTORY.getMessage("WSP_0044_POLICY_MAP_MUTATOR_ALREADY_CONNECTED");
     }
 
     /**
@@ -405,11 +403,11 @@
      *
      */
     public static String WSP_0044_POLICY_MAP_MUTATOR_ALREADY_CONNECTED() {
-        return localizer.localize(localizableWSP_0044_POLICY_MAP_MUTATOR_ALREADY_CONNECTED());
+        return LOCALIZER.localize(localizableWSP_0044_POLICY_MAP_MUTATOR_ALREADY_CONNECTED());
     }
 
     public static Localizable localizableWSP_0015_UNABLE_TO_INSTANTIATE_DIGEST_ALG_URI_FIELD() {
-        return messageFactory.getMessage("WSP_0015_UNABLE_TO_INSTANTIATE_DIGEST_ALG_URI_FIELD");
+        return MESSAGE_FACTORY.getMessage("WSP_0015_UNABLE_TO_INSTANTIATE_DIGEST_ALG_URI_FIELD");
     }
 
     /**
@@ -417,11 +415,11 @@
      *
      */
     public static String WSP_0015_UNABLE_TO_INSTANTIATE_DIGEST_ALG_URI_FIELD() {
-        return localizer.localize(localizableWSP_0015_UNABLE_TO_INSTANTIATE_DIGEST_ALG_URI_FIELD());
+        return LOCALIZER.localize(localizableWSP_0015_UNABLE_TO_INSTANTIATE_DIGEST_ALG_URI_FIELD());
     }
 
     public static Localizable localizableWSP_0046_POLICY_MAP_KEY_HANDLER_NOT_SET() {
-        return messageFactory.getMessage("WSP_0046_POLICY_MAP_KEY_HANDLER_NOT_SET");
+        return MESSAGE_FACTORY.getMessage("WSP_0046_POLICY_MAP_KEY_HANDLER_NOT_SET");
     }
 
     /**
@@ -429,11 +427,11 @@
      *
      */
     public static String WSP_0046_POLICY_MAP_KEY_HANDLER_NOT_SET() {
-        return localizer.localize(localizableWSP_0046_POLICY_MAP_KEY_HANDLER_NOT_SET());
+        return LOCALIZER.localize(localizableWSP_0046_POLICY_MAP_KEY_HANDLER_NOT_SET());
     }
 
     public static Localizable localizableWSP_0012_UNABLE_TO_UNMARSHALL_POLICY_MALFORMED_URI() {
-        return messageFactory.getMessage("WSP_0012_UNABLE_TO_UNMARSHALL_POLICY_MALFORMED_URI");
+        return MESSAGE_FACTORY.getMessage("WSP_0012_UNABLE_TO_UNMARSHALL_POLICY_MALFORMED_URI");
     }
 
     /**
@@ -441,11 +439,11 @@
      *
      */
     public static String WSP_0012_UNABLE_TO_UNMARSHALL_POLICY_MALFORMED_URI() {
-        return localizer.localize(localizableWSP_0012_UNABLE_TO_UNMARSHALL_POLICY_MALFORMED_URI());
+        return LOCALIZER.localize(localizableWSP_0012_UNABLE_TO_UNMARSHALL_POLICY_MALFORMED_URI());
     }
 
     public static Localizable localizableWSP_0003_UNMARSHALLING_FAILED_END_TAG_DOES_NOT_MATCH(Object arg0, Object arg1) {
-        return messageFactory.getMessage("WSP_0003_UNMARSHALLING_FAILED_END_TAG_DOES_NOT_MATCH", arg0, arg1);
+        return MESSAGE_FACTORY.getMessage("WSP_0003_UNMARSHALLING_FAILED_END_TAG_DOES_NOT_MATCH", arg0, arg1);
     }
 
     /**
@@ -453,11 +451,11 @@
      *
      */
     public static String WSP_0003_UNMARSHALLING_FAILED_END_TAG_DOES_NOT_MATCH(Object arg0, Object arg1) {
-        return localizer.localize(localizableWSP_0003_UNMARSHALLING_FAILED_END_TAG_DOES_NOT_MATCH(arg0, arg1));
+        return LOCALIZER.localize(localizableWSP_0003_UNMARSHALLING_FAILED_END_TAG_DOES_NOT_MATCH(arg0, arg1));
     }
 
     public static Localizable localizableWSP_0007_UNEXPECTED_MODEL_NODE_TYPE_FOUND(Object arg0) {
-        return messageFactory.getMessage("WSP_0007_UNEXPECTED_MODEL_NODE_TYPE_FOUND", arg0);
+        return MESSAGE_FACTORY.getMessage("WSP_0007_UNEXPECTED_MODEL_NODE_TYPE_FOUND", arg0);
     }
 
     /**
@@ -465,11 +463,11 @@
      *
      */
     public static String WSP_0007_UNEXPECTED_MODEL_NODE_TYPE_FOUND(Object arg0) {
-        return localizer.localize(localizableWSP_0007_UNEXPECTED_MODEL_NODE_TYPE_FOUND(arg0));
+        return LOCALIZER.localize(localizableWSP_0007_UNEXPECTED_MODEL_NODE_TYPE_FOUND(arg0));
     }
 
     public static Localizable localizableWSP_0086_FAILED_CREATE_READER(Object arg0) {
-        return messageFactory.getMessage("WSP_0086_FAILED_CREATE_READER", arg0);
+        return MESSAGE_FACTORY.getMessage("WSP_0086_FAILED_CREATE_READER", arg0);
     }
 
     /**
@@ -477,11 +475,11 @@
      *
      */
     public static String WSP_0086_FAILED_CREATE_READER(Object arg0) {
-        return localizer.localize(localizableWSP_0086_FAILED_CREATE_READER(arg0));
+        return LOCALIZER.localize(localizableWSP_0086_FAILED_CREATE_READER(arg0));
     }
 
     public static Localizable localizableWSP_0077_ASSERTION_CREATOR_DOES_NOT_SUPPORT_ANY_URI(Object arg0) {
-        return messageFactory.getMessage("WSP_0077_ASSERTION_CREATOR_DOES_NOT_SUPPORT_ANY_URI", arg0);
+        return MESSAGE_FACTORY.getMessage("WSP_0077_ASSERTION_CREATOR_DOES_NOT_SUPPORT_ANY_URI", arg0);
     }
 
     /**
@@ -489,11 +487,11 @@
      *
      */
     public static String WSP_0077_ASSERTION_CREATOR_DOES_NOT_SUPPORT_ANY_URI(Object arg0) {
-        return localizer.localize(localizableWSP_0077_ASSERTION_CREATOR_DOES_NOT_SUPPORT_ANY_URI(arg0));
+        return LOCALIZER.localize(localizableWSP_0077_ASSERTION_CREATOR_DOES_NOT_SUPPORT_ANY_URI(arg0));
     }
 
     public static Localizable localizableWSP_0082_NO_SUBJECT_TYPE() {
-        return messageFactory.getMessage("WSP_0082_NO_SUBJECT_TYPE");
+        return MESSAGE_FACTORY.getMessage("WSP_0082_NO_SUBJECT_TYPE");
     }
 
     /**
@@ -501,11 +499,11 @@
      *
      */
     public static String WSP_0082_NO_SUBJECT_TYPE() {
-        return localizer.localize(localizableWSP_0082_NO_SUBJECT_TYPE());
+        return LOCALIZER.localize(localizableWSP_0082_NO_SUBJECT_TYPE());
     }
 
     public static Localizable localizableWSP_0089_EXPECTED_ELEMENT(Object arg0, Object arg1, Object arg2) {
-        return messageFactory.getMessage("WSP_0089_EXPECTED_ELEMENT", arg0, arg1, arg2);
+        return MESSAGE_FACTORY.getMessage("WSP_0089_EXPECTED_ELEMENT", arg0, arg1, arg2);
     }
 
     /**
@@ -513,11 +511,11 @@
      *
      */
     public static String WSP_0089_EXPECTED_ELEMENT(Object arg0, Object arg1, Object arg2) {
-        return localizer.localize(localizableWSP_0089_EXPECTED_ELEMENT(arg0, arg1, arg2));
+        return LOCALIZER.localize(localizableWSP_0089_EXPECTED_ELEMENT(arg0, arg1, arg2));
     }
 
     public static Localizable localizableWSP_0031_SERVICE_PARAM_MUST_NOT_BE_NULL() {
-        return messageFactory.getMessage("WSP_0031_SERVICE_PARAM_MUST_NOT_BE_NULL");
+        return MESSAGE_FACTORY.getMessage("WSP_0031_SERVICE_PARAM_MUST_NOT_BE_NULL");
     }
 
     /**
@@ -525,11 +523,11 @@
      *
      */
     public static String WSP_0031_SERVICE_PARAM_MUST_NOT_BE_NULL() {
-        return localizer.localize(localizableWSP_0031_SERVICE_PARAM_MUST_NOT_BE_NULL());
+        return LOCALIZER.localize(localizableWSP_0031_SERVICE_PARAM_MUST_NOT_BE_NULL());
     }
 
     public static Localizable localizableWSP_0030_SERVICE_PORT_OPERATION_FAULT_MSG_PARAM_MUST_NOT_BE_NULL(Object arg0, Object arg1, Object arg2, Object arg3) {
-        return messageFactory.getMessage("WSP_0030_SERVICE_PORT_OPERATION_FAULT_MSG_PARAM_MUST_NOT_BE_NULL", arg0, arg1, arg2, arg3);
+        return MESSAGE_FACTORY.getMessage("WSP_0030_SERVICE_PORT_OPERATION_FAULT_MSG_PARAM_MUST_NOT_BE_NULL", arg0, arg1, arg2, arg3);
     }
 
     /**
@@ -537,11 +535,11 @@
      *
      */
     public static String WSP_0030_SERVICE_PORT_OPERATION_FAULT_MSG_PARAM_MUST_NOT_BE_NULL(Object arg0, Object arg1, Object arg2, Object arg3) {
-        return localizer.localize(localizableWSP_0030_SERVICE_PORT_OPERATION_FAULT_MSG_PARAM_MUST_NOT_BE_NULL(arg0, arg1, arg2, arg3));
+        return LOCALIZER.localize(localizableWSP_0030_SERVICE_PORT_OPERATION_FAULT_MSG_PARAM_MUST_NOT_BE_NULL(arg0, arg1, arg2, arg3));
     }
 
     public static Localizable localizableWSP_0040_POLICY_REFERENCE_URI_ATTR_NOT_FOUND() {
-        return messageFactory.getMessage("WSP_0040_POLICY_REFERENCE_URI_ATTR_NOT_FOUND");
+        return MESSAGE_FACTORY.getMessage("WSP_0040_POLICY_REFERENCE_URI_ATTR_NOT_FOUND");
     }
 
     /**
@@ -549,11 +547,11 @@
      *
      */
     public static String WSP_0040_POLICY_REFERENCE_URI_ATTR_NOT_FOUND() {
-        return localizer.localize(localizableWSP_0040_POLICY_REFERENCE_URI_ATTR_NOT_FOUND());
+        return LOCALIZER.localize(localizableWSP_0040_POLICY_REFERENCE_URI_ATTR_NOT_FOUND());
     }
 
     public static Localizable localizableWSP_0034_REMOVE_OPERATION_NOT_SUPPORTED() {
-        return messageFactory.getMessage("WSP_0034_REMOVE_OPERATION_NOT_SUPPORTED");
+        return MESSAGE_FACTORY.getMessage("WSP_0034_REMOVE_OPERATION_NOT_SUPPORTED");
     }
 
     /**
@@ -561,11 +559,11 @@
      *
      */
     public static String WSP_0034_REMOVE_OPERATION_NOT_SUPPORTED() {
-        return localizer.localize(localizableWSP_0034_REMOVE_OPERATION_NOT_SUPPORTED());
+        return LOCALIZER.localize(localizableWSP_0034_REMOVE_OPERATION_NOT_SUPPORTED());
     }
 
     public static Localizable localizableWSP_0084_MESSAGE_TYPE_NO_MESSAGE() {
-        return messageFactory.getMessage("WSP_0084_MESSAGE_TYPE_NO_MESSAGE");
+        return MESSAGE_FACTORY.getMessage("WSP_0084_MESSAGE_TYPE_NO_MESSAGE");
     }
 
     /**
@@ -573,11 +571,11 @@
      *
      */
     public static String WSP_0084_MESSAGE_TYPE_NO_MESSAGE() {
-        return localizer.localize(localizableWSP_0084_MESSAGE_TYPE_NO_MESSAGE());
+        return LOCALIZER.localize(localizableWSP_0084_MESSAGE_TYPE_NO_MESSAGE());
     }
 
     public static Localizable localizableWSP_0004_UNEXPECTED_VISIBILITY_ATTR_VALUE(Object arg0) {
-        return messageFactory.getMessage("WSP_0004_UNEXPECTED_VISIBILITY_ATTR_VALUE", arg0);
+        return MESSAGE_FACTORY.getMessage("WSP_0004_UNEXPECTED_VISIBILITY_ATTR_VALUE", arg0);
     }
 
     /**
@@ -585,11 +583,11 @@
      *
      */
     public static String WSP_0004_UNEXPECTED_VISIBILITY_ATTR_VALUE(Object arg0) {
-        return localizer.localize(localizableWSP_0004_UNEXPECTED_VISIBILITY_ATTR_VALUE(arg0));
+        return LOCALIZER.localize(localizableWSP_0004_UNEXPECTED_VISIBILITY_ATTR_VALUE(arg0));
     }
 
     public static Localizable localizableWSP_0074_CANNOT_CREATE_ASSERTION_BAD_TYPE(Object arg0, Object arg1, Object arg2) {
-        return messageFactory.getMessage("WSP_0074_CANNOT_CREATE_ASSERTION_BAD_TYPE", arg0, arg1, arg2);
+        return MESSAGE_FACTORY.getMessage("WSP_0074_CANNOT_CREATE_ASSERTION_BAD_TYPE", arg0, arg1, arg2);
     }
 
     /**
@@ -597,11 +595,11 @@
      *
      */
     public static String WSP_0074_CANNOT_CREATE_ASSERTION_BAD_TYPE(Object arg0, Object arg1, Object arg2) {
-        return localizer.localize(localizableWSP_0074_CANNOT_CREATE_ASSERTION_BAD_TYPE(arg0, arg1, arg2));
+        return LOCALIZER.localize(localizableWSP_0074_CANNOT_CREATE_ASSERTION_BAD_TYPE(arg0, arg1, arg2));
     }
 
     public static Localizable localizableWSP_0052_NUMBER_OF_ALTERNATIVE_COMBINATIONS_CREATED(Object arg0) {
-        return messageFactory.getMessage("WSP_0052_NUMBER_OF_ALTERNATIVE_COMBINATIONS_CREATED", arg0);
+        return MESSAGE_FACTORY.getMessage("WSP_0052_NUMBER_OF_ALTERNATIVE_COMBINATIONS_CREATED", arg0);
     }
 
     /**
@@ -609,11 +607,11 @@
      *
      */
     public static String WSP_0052_NUMBER_OF_ALTERNATIVE_COMBINATIONS_CREATED(Object arg0) {
-        return localizer.localize(localizableWSP_0052_NUMBER_OF_ALTERNATIVE_COMBINATIONS_CREATED(arg0));
+        return LOCALIZER.localize(localizableWSP_0052_NUMBER_OF_ALTERNATIVE_COMBINATIONS_CREATED(arg0));
     }
 
     public static Localizable localizableWSP_0037_PRIVATE_CONSTRUCTOR_DOES_NOT_TAKE_NULL() {
-        return messageFactory.getMessage("WSP_0037_PRIVATE_CONSTRUCTOR_DOES_NOT_TAKE_NULL");
+        return MESSAGE_FACTORY.getMessage("WSP_0037_PRIVATE_CONSTRUCTOR_DOES_NOT_TAKE_NULL");
     }
 
     /**
@@ -621,11 +619,11 @@
      *
      */
     public static String WSP_0037_PRIVATE_CONSTRUCTOR_DOES_NOT_TAKE_NULL() {
-        return localizer.localize(localizableWSP_0037_PRIVATE_CONSTRUCTOR_DOES_NOT_TAKE_NULL());
+        return LOCALIZER.localize(localizableWSP_0037_PRIVATE_CONSTRUCTOR_DOES_NOT_TAKE_NULL());
     }
 
     public static Localizable localizableWSP_0067_ILLEGAL_CFG_FILE_SYNTAX() {
-        return messageFactory.getMessage("WSP_0067_ILLEGAL_CFG_FILE_SYNTAX");
+        return MESSAGE_FACTORY.getMessage("WSP_0067_ILLEGAL_CFG_FILE_SYNTAX");
     }
 
     /**
@@ -633,11 +631,11 @@
      *
      */
     public static String WSP_0067_ILLEGAL_CFG_FILE_SYNTAX() {
-        return localizer.localize(localizableWSP_0067_ILLEGAL_CFG_FILE_SYNTAX());
+        return LOCALIZER.localize(localizableWSP_0067_ILLEGAL_CFG_FILE_SYNTAX());
     }
 
     public static Localizable localizableWSP_0085_MESSAGE_FAULT_NO_NAME() {
-        return messageFactory.getMessage("WSP_0085_MESSAGE_FAULT_NO_NAME");
+        return MESSAGE_FACTORY.getMessage("WSP_0085_MESSAGE_FAULT_NO_NAME");
     }
 
     /**
@@ -645,11 +643,11 @@
      *
      */
     public static String WSP_0085_MESSAGE_FAULT_NO_NAME() {
-        return localizer.localize(localizableWSP_0085_MESSAGE_FAULT_NO_NAME());
+        return LOCALIZER.localize(localizableWSP_0085_MESSAGE_FAULT_NO_NAME());
     }
 
     public static Localizable localizableWSP_0050_OPERATION_NOT_SUPPORTED_FOR_THIS_BUT_POLICY_REFERENCE_NODE_TYPE(Object arg0) {
-        return messageFactory.getMessage("WSP_0050_OPERATION_NOT_SUPPORTED_FOR_THIS_BUT_POLICY_REFERENCE_NODE_TYPE", arg0);
+        return MESSAGE_FACTORY.getMessage("WSP_0050_OPERATION_NOT_SUPPORTED_FOR_THIS_BUT_POLICY_REFERENCE_NODE_TYPE", arg0);
     }
 
     /**
@@ -657,11 +655,11 @@
      *
      */
     public static String WSP_0050_OPERATION_NOT_SUPPORTED_FOR_THIS_BUT_POLICY_REFERENCE_NODE_TYPE(Object arg0) {
-        return localizer.localize(localizableWSP_0050_OPERATION_NOT_SUPPORTED_FOR_THIS_BUT_POLICY_REFERENCE_NODE_TYPE(arg0));
+        return LOCALIZER.localize(localizableWSP_0050_OPERATION_NOT_SUPPORTED_FOR_THIS_BUT_POLICY_REFERENCE_NODE_TYPE(arg0));
     }
 
     public static Localizable localizableWSP_0042_POLICY_REFERENCE_NODE_EXPECTED_INSTEAD_OF(Object arg0) {
-        return messageFactory.getMessage("WSP_0042_POLICY_REFERENCE_NODE_EXPECTED_INSTEAD_OF", arg0);
+        return MESSAGE_FACTORY.getMessage("WSP_0042_POLICY_REFERENCE_NODE_EXPECTED_INSTEAD_OF", arg0);
     }
 
     /**
@@ -669,11 +667,11 @@
      *
      */
     public static String WSP_0042_POLICY_REFERENCE_NODE_EXPECTED_INSTEAD_OF(Object arg0) {
-        return localizer.localize(localizableWSP_0042_POLICY_REFERENCE_NODE_EXPECTED_INSTEAD_OF(arg0));
+        return LOCALIZER.localize(localizableWSP_0042_POLICY_REFERENCE_NODE_EXPECTED_INSTEAD_OF(arg0));
     }
 
     public static Localizable localizableWSP_0014_UNABLE_TO_INSTANTIATE_READER_FOR_STORAGE() {
-        return messageFactory.getMessage("WSP_0014_UNABLE_TO_INSTANTIATE_READER_FOR_STORAGE");
+        return MESSAGE_FACTORY.getMessage("WSP_0014_UNABLE_TO_INSTANTIATE_READER_FOR_STORAGE");
     }
 
     /**
@@ -681,11 +679,11 @@
      *
      */
     public static String WSP_0014_UNABLE_TO_INSTANTIATE_READER_FOR_STORAGE() {
-        return localizer.localize(localizableWSP_0014_UNABLE_TO_INSTANTIATE_READER_FOR_STORAGE());
+        return LOCALIZER.localize(localizableWSP_0014_UNABLE_TO_INSTANTIATE_READER_FOR_STORAGE());
     }
 
     public static Localizable localizableWSP_0054_NO_MORE_ELEMS_IN_POLICY_MAP() {
-        return messageFactory.getMessage("WSP_0054_NO_MORE_ELEMS_IN_POLICY_MAP");
+        return MESSAGE_FACTORY.getMessage("WSP_0054_NO_MORE_ELEMS_IN_POLICY_MAP");
     }
 
     /**
@@ -693,11 +691,11 @@
      *
      */
     public static String WSP_0054_NO_MORE_ELEMS_IN_POLICY_MAP() {
-        return localizer.localize(localizableWSP_0054_NO_MORE_ELEMS_IN_POLICY_MAP());
+        return LOCALIZER.localize(localizableWSP_0054_NO_MORE_ELEMS_IN_POLICY_MAP());
     }
 
     public static Localizable localizableWSP_0083_MESSAGE_TYPE_NULL() {
-        return messageFactory.getMessage("WSP_0083_MESSAGE_TYPE_NULL");
+        return MESSAGE_FACTORY.getMessage("WSP_0083_MESSAGE_TYPE_NULL");
     }
 
     /**
@@ -705,11 +703,11 @@
      *
      */
     public static String WSP_0083_MESSAGE_TYPE_NULL() {
-        return localizer.localize(localizableWSP_0083_MESSAGE_TYPE_NULL());
+        return LOCALIZER.localize(localizableWSP_0083_MESSAGE_TYPE_NULL());
     }
 
     public static Localizable localizableWSP_0011_UNABLE_TO_UNMARSHALL_POLICY_XML_ELEM_EXPECTED() {
-        return messageFactory.getMessage("WSP_0011_UNABLE_TO_UNMARSHALL_POLICY_XML_ELEM_EXPECTED");
+        return MESSAGE_FACTORY.getMessage("WSP_0011_UNABLE_TO_UNMARSHALL_POLICY_XML_ELEM_EXPECTED");
     }
 
     /**
@@ -717,11 +715,11 @@
      *
      */
     public static String WSP_0011_UNABLE_TO_UNMARSHALL_POLICY_XML_ELEM_EXPECTED() {
-        return localizer.localize(localizableWSP_0011_UNABLE_TO_UNMARSHALL_POLICY_XML_ELEM_EXPECTED());
+        return LOCALIZER.localize(localizableWSP_0011_UNABLE_TO_UNMARSHALL_POLICY_XML_ELEM_EXPECTED());
     }
 
     public static Localizable localizableWSP_0025_SPI_FAIL_SERVICE_MSG(Object arg0, Object arg1) {
-        return messageFactory.getMessage("WSP_0025_SPI_FAIL_SERVICE_MSG", arg0, arg1);
+        return MESSAGE_FACTORY.getMessage("WSP_0025_SPI_FAIL_SERVICE_MSG", arg0, arg1);
     }
 
     /**
@@ -729,11 +727,11 @@
      *
      */
     public static String WSP_0025_SPI_FAIL_SERVICE_MSG(Object arg0, Object arg1) {
-        return localizer.localize(localizableWSP_0025_SPI_FAIL_SERVICE_MSG(arg0, arg1));
+        return LOCALIZER.localize(localizableWSP_0025_SPI_FAIL_SERVICE_MSG(arg0, arg1));
     }
 
     public static Localizable localizableWSP_0094_INVALID_URN() {
-        return messageFactory.getMessage("WSP_0094_INVALID_URN");
+        return MESSAGE_FACTORY.getMessage("WSP_0094_INVALID_URN");
     }
 
     /**
@@ -741,11 +739,11 @@
      *
      */
     public static String WSP_0094_INVALID_URN() {
-        return localizer.localize(localizableWSP_0094_INVALID_URN());
+        return LOCALIZER.localize(localizableWSP_0094_INVALID_URN());
     }
 
     public static Localizable localizableWSP_0026_SINGLE_EMPTY_ALTERNATIVE_COMBINATION_CREATED() {
-        return messageFactory.getMessage("WSP_0026_SINGLE_EMPTY_ALTERNATIVE_COMBINATION_CREATED");
+        return MESSAGE_FACTORY.getMessage("WSP_0026_SINGLE_EMPTY_ALTERNATIVE_COMBINATION_CREATED");
     }
 
     /**
@@ -753,11 +751,11 @@
      *
      */
     public static String WSP_0026_SINGLE_EMPTY_ALTERNATIVE_COMBINATION_CREATED() {
-        return localizer.localize(localizableWSP_0026_SINGLE_EMPTY_ALTERNATIVE_COMBINATION_CREATED());
+        return LOCALIZER.localize(localizableWSP_0026_SINGLE_EMPTY_ALTERNATIVE_COMBINATION_CREATED());
     }
 
     public static Localizable localizableWSP_0078_ASSERTION_CREATOR_DISCOVERED(Object arg0, Object arg1) {
-        return messageFactory.getMessage("WSP_0078_ASSERTION_CREATOR_DISCOVERED", arg0, arg1);
+        return MESSAGE_FACTORY.getMessage("WSP_0078_ASSERTION_CREATOR_DISCOVERED", arg0, arg1);
     }
 
     /**
@@ -765,11 +763,11 @@
      *
      */
     public static String WSP_0078_ASSERTION_CREATOR_DISCOVERED(Object arg0, Object arg1) {
-        return localizer.localize(localizableWSP_0078_ASSERTION_CREATOR_DISCOVERED(arg0, arg1));
+        return LOCALIZER.localize(localizableWSP_0078_ASSERTION_CREATOR_DISCOVERED(arg0, arg1));
     }
 
     public static Localizable localizableWSP_0041_POLICY_REFERENCE_NODE_FOUND_WITH_NO_POLICY_REFERENCE_IN_IT() {
-        return messageFactory.getMessage("WSP_0041_POLICY_REFERENCE_NODE_FOUND_WITH_NO_POLICY_REFERENCE_IN_IT");
+        return MESSAGE_FACTORY.getMessage("WSP_0041_POLICY_REFERENCE_NODE_FOUND_WITH_NO_POLICY_REFERENCE_IN_IT");
     }
 
     /**
@@ -777,11 +775,11 @@
      *
      */
     public static String WSP_0041_POLICY_REFERENCE_NODE_FOUND_WITH_NO_POLICY_REFERENCE_IN_IT() {
-        return localizer.localize(localizableWSP_0041_POLICY_REFERENCE_NODE_FOUND_WITH_NO_POLICY_REFERENCE_IN_IT());
+        return LOCALIZER.localize(localizableWSP_0041_POLICY_REFERENCE_NODE_FOUND_WITH_NO_POLICY_REFERENCE_IN_IT());
     }
 
     public static Localizable localizableWSP_0039_POLICY_SRC_MODEL_INPUT_PARAMETER_MUST_NOT_BE_NULL() {
-        return messageFactory.getMessage("WSP_0039_POLICY_SRC_MODEL_INPUT_PARAMETER_MUST_NOT_BE_NULL");
+        return MESSAGE_FACTORY.getMessage("WSP_0039_POLICY_SRC_MODEL_INPUT_PARAMETER_MUST_NOT_BE_NULL");
     }
 
     /**
@@ -789,11 +787,11 @@
      *
      */
     public static String WSP_0039_POLICY_SRC_MODEL_INPUT_PARAMETER_MUST_NOT_BE_NULL() {
-        return localizer.localize(localizableWSP_0039_POLICY_SRC_MODEL_INPUT_PARAMETER_MUST_NOT_BE_NULL());
+        return LOCALIZER.localize(localizableWSP_0039_POLICY_SRC_MODEL_INPUT_PARAMETER_MUST_NOT_BE_NULL());
     }
 
     public static Localizable localizableWSP_0070_ERROR_REGISTERING_ASSERTION_CREATOR(Object arg0) {
-        return messageFactory.getMessage("WSP_0070_ERROR_REGISTERING_ASSERTION_CREATOR", arg0);
+        return MESSAGE_FACTORY.getMessage("WSP_0070_ERROR_REGISTERING_ASSERTION_CREATOR", arg0);
     }
 
     /**
@@ -801,11 +799,11 @@
      *
      */
     public static String WSP_0070_ERROR_REGISTERING_ASSERTION_CREATOR(Object arg0) {
-        return localizer.localize(localizableWSP_0070_ERROR_REGISTERING_ASSERTION_CREATOR(arg0));
+        return LOCALIZER.localize(localizableWSP_0070_ERROR_REGISTERING_ASSERTION_CREATOR(arg0));
     }
 
     public static Localizable localizableWSP_0036_PRIVATE_METHOD_DOES_NOT_ACCEPT_NULL_OR_EMPTY_COLLECTION() {
-        return messageFactory.getMessage("WSP_0036_PRIVATE_METHOD_DOES_NOT_ACCEPT_NULL_OR_EMPTY_COLLECTION");
+        return MESSAGE_FACTORY.getMessage("WSP_0036_PRIVATE_METHOD_DOES_NOT_ACCEPT_NULL_OR_EMPTY_COLLECTION");
     }
 
     /**
@@ -813,11 +811,11 @@
      *
      */
     public static String WSP_0036_PRIVATE_METHOD_DOES_NOT_ACCEPT_NULL_OR_EMPTY_COLLECTION() {
-        return localizer.localize(localizableWSP_0036_PRIVATE_METHOD_DOES_NOT_ACCEPT_NULL_OR_EMPTY_COLLECTION());
+        return LOCALIZER.localize(localizableWSP_0036_PRIVATE_METHOD_DOES_NOT_ACCEPT_NULL_OR_EMPTY_COLLECTION());
     }
 
     public static Localizable localizableWSP_0027_SERVICE_PROVIDER_NOT_FOUND(Object arg0) {
-        return messageFactory.getMessage("WSP_0027_SERVICE_PROVIDER_NOT_FOUND", arg0);
+        return MESSAGE_FACTORY.getMessage("WSP_0027_SERVICE_PROVIDER_NOT_FOUND", arg0);
     }
 
     /**
@@ -825,11 +823,11 @@
      *
      */
     public static String WSP_0027_SERVICE_PROVIDER_NOT_FOUND(Object arg0) {
-        return localizer.localize(localizableWSP_0027_SERVICE_PROVIDER_NOT_FOUND(arg0));
+        return LOCALIZER.localize(localizableWSP_0027_SERVICE_PROVIDER_NOT_FOUND(arg0));
     }
 
     public static Localizable localizableWSP_0056_NEITHER_NULL_NOR_EMPTY_POLICY_COLLECTION_EXPECTED() {
-        return messageFactory.getMessage("WSP_0056_NEITHER_NULL_NOR_EMPTY_POLICY_COLLECTION_EXPECTED");
+        return MESSAGE_FACTORY.getMessage("WSP_0056_NEITHER_NULL_NOR_EMPTY_POLICY_COLLECTION_EXPECTED");
     }
 
     /**
@@ -837,11 +835,11 @@
      *
      */
     public static String WSP_0056_NEITHER_NULL_NOR_EMPTY_POLICY_COLLECTION_EXPECTED() {
-        return localizer.localize(localizableWSP_0056_NEITHER_NULL_NOR_EMPTY_POLICY_COLLECTION_EXPECTED());
+        return LOCALIZER.localize(localizableWSP_0056_NEITHER_NULL_NOR_EMPTY_POLICY_COLLECTION_EXPECTED());
     }
 
     public static Localizable localizableWSP_0022_STORAGE_TYPE_NOT_SUPPORTED(Object arg0) {
-        return messageFactory.getMessage("WSP_0022_STORAGE_TYPE_NOT_SUPPORTED", arg0);
+        return MESSAGE_FACTORY.getMessage("WSP_0022_STORAGE_TYPE_NOT_SUPPORTED", arg0);
     }
 
     /**
@@ -849,11 +847,11 @@
      *
      */
     public static String WSP_0022_STORAGE_TYPE_NOT_SUPPORTED(Object arg0) {
-        return localizer.localize(localizableWSP_0022_STORAGE_TYPE_NOT_SUPPORTED(arg0));
+        return LOCALIZER.localize(localizableWSP_0022_STORAGE_TYPE_NOT_SUPPORTED(arg0));
     }
 
     public static Localizable localizableWSP_0095_INVALID_BOOLEAN_VALUE(Object arg0) {
-        return messageFactory.getMessage("WSP_0095_INVALID_BOOLEAN_VALUE", arg0);
+        return MESSAGE_FACTORY.getMessage("WSP_0095_INVALID_BOOLEAN_VALUE", arg0);
     }
 
     /**
@@ -861,11 +859,11 @@
      *
      */
     public static String WSP_0095_INVALID_BOOLEAN_VALUE(Object arg0) {
-        return localizer.localize(localizableWSP_0095_INVALID_BOOLEAN_VALUE(arg0));
+        return LOCALIZER.localize(localizableWSP_0095_INVALID_BOOLEAN_VALUE(arg0));
     }
 
     public static Localizable localizableWSP_0059_MULTIPLE_ATTRS_WITH_SAME_NAME_DETECTED_FOR_ASSERTION(Object arg0, Object arg1) {
-        return messageFactory.getMessage("WSP_0059_MULTIPLE_ATTRS_WITH_SAME_NAME_DETECTED_FOR_ASSERTION", arg0, arg1);
+        return MESSAGE_FACTORY.getMessage("WSP_0059_MULTIPLE_ATTRS_WITH_SAME_NAME_DETECTED_FOR_ASSERTION", arg0, arg1);
     }
 
     /**
@@ -873,11 +871,11 @@
      *
      */
     public static String WSP_0059_MULTIPLE_ATTRS_WITH_SAME_NAME_DETECTED_FOR_ASSERTION(Object arg0, Object arg1) {
-        return localizer.localize(localizableWSP_0059_MULTIPLE_ATTRS_WITH_SAME_NAME_DETECTED_FOR_ASSERTION(arg0, arg1));
+        return LOCALIZER.localize(localizableWSP_0059_MULTIPLE_ATTRS_WITH_SAME_NAME_DETECTED_FOR_ASSERTION(arg0, arg1));
     }
 
     public static Localizable localizableWSP_0047_POLICY_IS_NULL_RETURNING() {
-        return messageFactory.getMessage("WSP_0047_POLICY_IS_NULL_RETURNING");
+        return MESSAGE_FACTORY.getMessage("WSP_0047_POLICY_IS_NULL_RETURNING");
     }
 
     /**
@@ -885,11 +883,11 @@
      *
      */
     public static String WSP_0047_POLICY_IS_NULL_RETURNING() {
-        return localizer.localize(localizableWSP_0047_POLICY_IS_NULL_RETURNING());
+        return LOCALIZER.localize(localizableWSP_0047_POLICY_IS_NULL_RETURNING());
     }
 
     public static Localizable localizableWSP_0088_FAILED_PARSE(Object arg0) {
-        return messageFactory.getMessage("WSP_0088_FAILED_PARSE", arg0);
+        return MESSAGE_FACTORY.getMessage("WSP_0088_FAILED_PARSE", arg0);
     }
 
     /**
@@ -897,11 +895,11 @@
      *
      */
     public static String WSP_0088_FAILED_PARSE(Object arg0) {
-        return localizer.localize(localizableWSP_0088_FAILED_PARSE(arg0));
+        return LOCALIZER.localize(localizableWSP_0088_FAILED_PARSE(arg0));
     }
 
     public static Localizable localizableWSP_0005_UNEXPECTED_POLICY_ELEMENT_FOUND_IN_ASSERTION_PARAM(Object arg0) {
-        return messageFactory.getMessage("WSP_0005_UNEXPECTED_POLICY_ELEMENT_FOUND_IN_ASSERTION_PARAM", arg0);
+        return MESSAGE_FACTORY.getMessage("WSP_0005_UNEXPECTED_POLICY_ELEMENT_FOUND_IN_ASSERTION_PARAM", arg0);
     }
 
     /**
@@ -909,11 +907,11 @@
      *
      */
     public static String WSP_0005_UNEXPECTED_POLICY_ELEMENT_FOUND_IN_ASSERTION_PARAM(Object arg0) {
-        return localizer.localize(localizableWSP_0005_UNEXPECTED_POLICY_ELEMENT_FOUND_IN_ASSERTION_PARAM(arg0));
+        return LOCALIZER.localize(localizableWSP_0005_UNEXPECTED_POLICY_ELEMENT_FOUND_IN_ASSERTION_PARAM(arg0));
     }
 
     public static Localizable localizableWSP_0009_UNEXPECTED_CDATA_ON_SOURCE_MODEL_NODE(Object arg0, Object arg1) {
-        return messageFactory.getMessage("WSP_0009_UNEXPECTED_CDATA_ON_SOURCE_MODEL_NODE", arg0, arg1);
+        return MESSAGE_FACTORY.getMessage("WSP_0009_UNEXPECTED_CDATA_ON_SOURCE_MODEL_NODE", arg0, arg1);
     }
 
     /**
@@ -921,11 +919,11 @@
      *
      */
     public static String WSP_0009_UNEXPECTED_CDATA_ON_SOURCE_MODEL_NODE(Object arg0, Object arg1) {
-        return localizer.localize(localizableWSP_0009_UNEXPECTED_CDATA_ON_SOURCE_MODEL_NODE(arg0, arg1));
+        return LOCALIZER.localize(localizableWSP_0009_UNEXPECTED_CDATA_ON_SOURCE_MODEL_NODE(arg0, arg1));
     }
 
     public static Localizable localizableWSP_0024_SPI_FAIL_SERVICE_URL_LINE_MSG(Object arg0, Object arg1, Object arg2) {
-        return messageFactory.getMessage("WSP_0024_SPI_FAIL_SERVICE_URL_LINE_MSG", arg0, arg1, arg2);
+        return MESSAGE_FACTORY.getMessage("WSP_0024_SPI_FAIL_SERVICE_URL_LINE_MSG", arg0, arg1, arg2);
     }
 
     /**
@@ -933,11 +931,11 @@
      *
      */
     public static String WSP_0024_SPI_FAIL_SERVICE_URL_LINE_MSG(Object arg0, Object arg1, Object arg2) {
-        return localizer.localize(localizableWSP_0024_SPI_FAIL_SERVICE_URL_LINE_MSG(arg0, arg1, arg2));
+        return LOCALIZER.localize(localizableWSP_0024_SPI_FAIL_SERVICE_URL_LINE_MSG(arg0, arg1, arg2));
     }
 
     public static Localizable localizableWSP_0057_N_ALTERNATIVE_COMBINATIONS_M_POLICY_ALTERNATIVES_CREATED(Object arg0, Object arg1) {
-        return messageFactory.getMessage("WSP_0057_N_ALTERNATIVE_COMBINATIONS_M_POLICY_ALTERNATIVES_CREATED", arg0, arg1);
+        return MESSAGE_FACTORY.getMessage("WSP_0057_N_ALTERNATIVE_COMBINATIONS_M_POLICY_ALTERNATIVES_CREATED", arg0, arg1);
     }
 
     /**
@@ -945,11 +943,11 @@
      *
      */
     public static String WSP_0057_N_ALTERNATIVE_COMBINATIONS_M_POLICY_ALTERNATIVES_CREATED(Object arg0, Object arg1) {
-        return localizer.localize(localizableWSP_0057_N_ALTERNATIVE_COMBINATIONS_M_POLICY_ALTERNATIVES_CREATED(arg0, arg1));
+        return LOCALIZER.localize(localizableWSP_0057_N_ALTERNATIVE_COMBINATIONS_M_POLICY_ALTERNATIVES_CREATED(arg0, arg1));
     }
 
     public static Localizable localizableWSP_0020_SUBJECT_PARAM_MUST_NOT_BE_NULL() {
-        return messageFactory.getMessage("WSP_0020_SUBJECT_PARAM_MUST_NOT_BE_NULL");
+        return MESSAGE_FACTORY.getMessage("WSP_0020_SUBJECT_PARAM_MUST_NOT_BE_NULL");
     }
 
     /**
@@ -957,11 +955,11 @@
      *
      */
     public static String WSP_0020_SUBJECT_PARAM_MUST_NOT_BE_NULL() {
-        return localizer.localize(localizableWSP_0020_SUBJECT_PARAM_MUST_NOT_BE_NULL());
+        return LOCALIZER.localize(localizableWSP_0020_SUBJECT_PARAM_MUST_NOT_BE_NULL());
     }
 
     public static Localizable localizableWSP_0071_ERROR_MULTIPLE_ASSERTION_CREATORS_FOR_NAMESPACE(Object arg0, Object arg1, Object arg2) {
-        return messageFactory.getMessage("WSP_0071_ERROR_MULTIPLE_ASSERTION_CREATORS_FOR_NAMESPACE", arg0, arg1, arg2);
+        return MESSAGE_FACTORY.getMessage("WSP_0071_ERROR_MULTIPLE_ASSERTION_CREATORS_FOR_NAMESPACE", arg0, arg1, arg2);
     }
 
     /**
@@ -969,11 +967,11 @@
      *
      */
     public static String WSP_0071_ERROR_MULTIPLE_ASSERTION_CREATORS_FOR_NAMESPACE(Object arg0, Object arg1, Object arg2) {
-        return localizer.localize(localizableWSP_0071_ERROR_MULTIPLE_ASSERTION_CREATORS_FOR_NAMESPACE(arg0, arg1, arg2));
+        return LOCALIZER.localize(localizableWSP_0071_ERROR_MULTIPLE_ASSERTION_CREATORS_FOR_NAMESPACE(arg0, arg1, arg2));
     }
 
     public static Localizable localizableWSP_0038_POLICY_TO_ATTACH_MUST_NOT_BE_NULL() {
-        return messageFactory.getMessage("WSP_0038_POLICY_TO_ATTACH_MUST_NOT_BE_NULL");
+        return MESSAGE_FACTORY.getMessage("WSP_0038_POLICY_TO_ATTACH_MUST_NOT_BE_NULL");
     }
 
     /**
@@ -981,11 +979,11 @@
      *
      */
     public static String WSP_0038_POLICY_TO_ATTACH_MUST_NOT_BE_NULL() {
-        return localizer.localize(localizableWSP_0038_POLICY_TO_ATTACH_MUST_NOT_BE_NULL());
+        return LOCALIZER.localize(localizableWSP_0038_POLICY_TO_ATTACH_MUST_NOT_BE_NULL());
     }
 
     public static Localizable localizableWSP_0033_SERVICE_AND_PORT_PARAM_MUST_NOT_BE_NULL(Object arg0, Object arg1) {
-        return messageFactory.getMessage("WSP_0033_SERVICE_AND_PORT_PARAM_MUST_NOT_BE_NULL", arg0, arg1);
+        return MESSAGE_FACTORY.getMessage("WSP_0033_SERVICE_AND_PORT_PARAM_MUST_NOT_BE_NULL", arg0, arg1);
     }
 
     /**
@@ -993,11 +991,11 @@
      *
      */
     public static String WSP_0033_SERVICE_AND_PORT_PARAM_MUST_NOT_BE_NULL(Object arg0, Object arg1) {
-        return localizer.localize(localizableWSP_0033_SERVICE_AND_PORT_PARAM_MUST_NOT_BE_NULL(arg0, arg1));
+        return LOCALIZER.localize(localizableWSP_0033_SERVICE_AND_PORT_PARAM_MUST_NOT_BE_NULL(arg0, arg1));
     }
 
     public static Localizable localizableWSP_0060_POLICY_ELEMENT_TYPE_UNKNOWN(Object arg0) {
-        return messageFactory.getMessage("WSP_0060_POLICY_ELEMENT_TYPE_UNKNOWN", arg0);
+        return MESSAGE_FACTORY.getMessage("WSP_0060_POLICY_ELEMENT_TYPE_UNKNOWN", arg0);
     }
 
     /**
@@ -1005,11 +1003,11 @@
      *
      */
     public static String WSP_0060_POLICY_ELEMENT_TYPE_UNKNOWN(Object arg0) {
-        return localizer.localize(localizableWSP_0060_POLICY_ELEMENT_TYPE_UNKNOWN(arg0));
+        return LOCALIZER.localize(localizableWSP_0060_POLICY_ELEMENT_TYPE_UNKNOWN(arg0));
     }
 
     public static Localizable localizableWSP_0013_UNABLE_TO_SET_PARENT_MODEL_ON_ROOT() {
-        return messageFactory.getMessage("WSP_0013_UNABLE_TO_SET_PARENT_MODEL_ON_ROOT");
+        return MESSAGE_FACTORY.getMessage("WSP_0013_UNABLE_TO_SET_PARENT_MODEL_ON_ROOT");
     }
 
     /**
@@ -1017,11 +1015,11 @@
      *
      */
     public static String WSP_0013_UNABLE_TO_SET_PARENT_MODEL_ON_ROOT() {
-        return localizer.localize(localizableWSP_0013_UNABLE_TO_SET_PARENT_MODEL_ON_ROOT());
+        return LOCALIZER.localize(localizableWSP_0013_UNABLE_TO_SET_PARENT_MODEL_ON_ROOT());
     }
 
     public static Localizable localizableWSP_0019_SUBOPTIMAL_ALTERNATIVE_SELECTED(Object arg0) {
-        return messageFactory.getMessage("WSP_0019_SUBOPTIMAL_ALTERNATIVE_SELECTED", arg0);
+        return MESSAGE_FACTORY.getMessage("WSP_0019_SUBOPTIMAL_ALTERNATIVE_SELECTED", arg0);
     }
 
     /**
@@ -1029,11 +1027,11 @@
      *
      */
     public static String WSP_0019_SUBOPTIMAL_ALTERNATIVE_SELECTED(Object arg0) {
-        return localizer.localize(localizableWSP_0019_SUBOPTIMAL_ALTERNATIVE_SELECTED(arg0));
+        return LOCALIZER.localize(localizableWSP_0019_SUBOPTIMAL_ALTERNATIVE_SELECTED(arg0));
     }
 
     public static Localizable localizableWSP_0073_CREATE_CHILD_NODE_OPERATION_NOT_SUPPORTED(Object arg0, Object arg1) {
-        return messageFactory.getMessage("WSP_0073_CREATE_CHILD_NODE_OPERATION_NOT_SUPPORTED", arg0, arg1);
+        return MESSAGE_FACTORY.getMessage("WSP_0073_CREATE_CHILD_NODE_OPERATION_NOT_SUPPORTED", arg0, arg1);
     }
 
     /**
@@ -1041,11 +1039,11 @@
      *
      */
     public static String WSP_0073_CREATE_CHILD_NODE_OPERATION_NOT_SUPPORTED(Object arg0, Object arg1) {
-        return localizer.localize(localizableWSP_0073_CREATE_CHILD_NODE_OPERATION_NOT_SUPPORTED(arg0, arg1));
+        return LOCALIZER.localize(localizableWSP_0073_CREATE_CHILD_NODE_OPERATION_NOT_SUPPORTED(arg0, arg1));
     }
 
     public static Localizable localizableWSP_0002_UNRECOGNIZED_SCOPE_TYPE(Object arg0) {
-        return messageFactory.getMessage("WSP_0002_UNRECOGNIZED_SCOPE_TYPE", arg0);
+        return MESSAGE_FACTORY.getMessage("WSP_0002_UNRECOGNIZED_SCOPE_TYPE", arg0);
     }
 
     /**
@@ -1053,11 +1051,11 @@
      *
      */
     public static String WSP_0002_UNRECOGNIZED_SCOPE_TYPE(Object arg0) {
-        return localizer.localize(localizableWSP_0002_UNRECOGNIZED_SCOPE_TYPE(arg0));
+        return LOCALIZER.localize(localizableWSP_0002_UNRECOGNIZED_SCOPE_TYPE(arg0));
     }
 
     public static Localizable localizableWSP_0062_INPUT_PARAMS_MUST_NOT_BE_NULL() {
-        return messageFactory.getMessage("WSP_0062_INPUT_PARAMS_MUST_NOT_BE_NULL");
+        return MESSAGE_FACTORY.getMessage("WSP_0062_INPUT_PARAMS_MUST_NOT_BE_NULL");
     }
 
     /**
@@ -1065,11 +1063,11 @@
      *
      */
     public static String WSP_0062_INPUT_PARAMS_MUST_NOT_BE_NULL() {
-        return localizer.localize(localizableWSP_0062_INPUT_PARAMS_MUST_NOT_BE_NULL());
+        return LOCALIZER.localize(localizableWSP_0062_INPUT_PARAMS_MUST_NOT_BE_NULL());
     }
 
     public static Localizable localizableWSP_0063_ERROR_WHILE_CONSTRUCTING_EXCEPTION(Object arg0) {
-        return messageFactory.getMessage("WSP_0063_ERROR_WHILE_CONSTRUCTING_EXCEPTION", arg0);
+        return MESSAGE_FACTORY.getMessage("WSP_0063_ERROR_WHILE_CONSTRUCTING_EXCEPTION", arg0);
     }
 
     /**
@@ -1077,11 +1075,11 @@
      *
      */
     public static String WSP_0063_ERROR_WHILE_CONSTRUCTING_EXCEPTION(Object arg0) {
-        return localizer.localize(localizableWSP_0063_ERROR_WHILE_CONSTRUCTING_EXCEPTION(arg0));
+        return LOCALIZER.localize(localizableWSP_0063_ERROR_WHILE_CONSTRUCTING_EXCEPTION(arg0));
     }
 
     public static Localizable localizableWSP_0021_SUBJECT_AND_POLICY_PARAM_MUST_NOT_BE_NULL(Object arg0, Object arg1) {
-        return messageFactory.getMessage("WSP_0021_SUBJECT_AND_POLICY_PARAM_MUST_NOT_BE_NULL", arg0, arg1);
+        return MESSAGE_FACTORY.getMessage("WSP_0021_SUBJECT_AND_POLICY_PARAM_MUST_NOT_BE_NULL", arg0, arg1);
     }
 
     /**
@@ -1089,11 +1087,11 @@
      *
      */
     public static String WSP_0021_SUBJECT_AND_POLICY_PARAM_MUST_NOT_BE_NULL(Object arg0, Object arg1) {
-        return localizer.localize(localizableWSP_0021_SUBJECT_AND_POLICY_PARAM_MUST_NOT_BE_NULL(arg0, arg1));
+        return LOCALIZER.localize(localizableWSP_0021_SUBJECT_AND_POLICY_PARAM_MUST_NOT_BE_NULL(arg0, arg1));
     }
 
     public static Localizable localizableWSP_0075_PROBLEMATIC_ASSERTION_STATE(Object arg0, Object arg1) {
-        return messageFactory.getMessage("WSP_0075_PROBLEMATIC_ASSERTION_STATE", arg0, arg1);
+        return MESSAGE_FACTORY.getMessage("WSP_0075_PROBLEMATIC_ASSERTION_STATE", arg0, arg1);
     }
 
     /**
@@ -1101,11 +1099,11 @@
      *
      */
     public static String WSP_0075_PROBLEMATIC_ASSERTION_STATE(Object arg0, Object arg1) {
-        return localizer.localize(localizableWSP_0075_PROBLEMATIC_ASSERTION_STATE(arg0, arg1));
+        return LOCALIZER.localize(localizableWSP_0075_PROBLEMATIC_ASSERTION_STATE(arg0, arg1));
     }
 
     public static Localizable localizableWSP_0006_UNEXPECTED_MULTIPLE_POLICY_NODES() {
-        return messageFactory.getMessage("WSP_0006_UNEXPECTED_MULTIPLE_POLICY_NODES");
+        return MESSAGE_FACTORY.getMessage("WSP_0006_UNEXPECTED_MULTIPLE_POLICY_NODES");
     }
 
     /**
@@ -1113,11 +1111,11 @@
      *
      */
     public static String WSP_0006_UNEXPECTED_MULTIPLE_POLICY_NODES() {
-        return localizer.localize(localizableWSP_0006_UNEXPECTED_MULTIPLE_POLICY_NODES());
+        return LOCALIZER.localize(localizableWSP_0006_UNEXPECTED_MULTIPLE_POLICY_NODES());
     }
 
     public static Localizable localizableWSP_0092_CHARACTER_DATA_UNEXPECTED(Object arg0, Object arg1, Object arg2) {
-        return messageFactory.getMessage("WSP_0092_CHARACTER_DATA_UNEXPECTED", arg0, arg1, arg2);
+        return MESSAGE_FACTORY.getMessage("WSP_0092_CHARACTER_DATA_UNEXPECTED", arg0, arg1, arg2);
     }
 
     /**
@@ -1125,11 +1123,11 @@
      *
      */
     public static String WSP_0092_CHARACTER_DATA_UNEXPECTED(Object arg0, Object arg1, Object arg2) {
-        return localizer.localize(localizableWSP_0092_CHARACTER_DATA_UNEXPECTED(arg0, arg1, arg2));
+        return LOCALIZER.localize(localizableWSP_0092_CHARACTER_DATA_UNEXPECTED(arg0, arg1, arg2));
     }
 
     public static Localizable localizableWSP_0069_EXCEPTION_WHILE_RETRIEVING_EFFECTIVE_POLICY_FOR_KEY(Object arg0) {
-        return messageFactory.getMessage("WSP_0069_EXCEPTION_WHILE_RETRIEVING_EFFECTIVE_POLICY_FOR_KEY", arg0);
+        return MESSAGE_FACTORY.getMessage("WSP_0069_EXCEPTION_WHILE_RETRIEVING_EFFECTIVE_POLICY_FOR_KEY", arg0);
     }
 
     /**
@@ -1137,11 +1135,11 @@
      *
      */
     public static String WSP_0069_EXCEPTION_WHILE_RETRIEVING_EFFECTIVE_POLICY_FOR_KEY(Object arg0) {
-        return localizer.localize(localizableWSP_0069_EXCEPTION_WHILE_RETRIEVING_EFFECTIVE_POLICY_FOR_KEY(arg0));
+        return LOCALIZER.localize(localizableWSP_0069_EXCEPTION_WHILE_RETRIEVING_EFFECTIVE_POLICY_FOR_KEY(arg0));
     }
 
     public static Localizable localizableWSP_0010_UNEXPANDED_POLICY_REFERENCE_NODE_FOUND_REFERENCING(Object arg0) {
-        return messageFactory.getMessage("WSP_0010_UNEXPANDED_POLICY_REFERENCE_NODE_FOUND_REFERENCING", arg0);
+        return MESSAGE_FACTORY.getMessage("WSP_0010_UNEXPANDED_POLICY_REFERENCE_NODE_FOUND_REFERENCING", arg0);
     }
 
     /**
@@ -1149,11 +1147,11 @@
      *
      */
     public static String WSP_0010_UNEXPANDED_POLICY_REFERENCE_NODE_FOUND_REFERENCING(Object arg0) {
-        return localizer.localize(localizableWSP_0010_UNEXPANDED_POLICY_REFERENCE_NODE_FOUND_REFERENCING(arg0));
+        return LOCALIZER.localize(localizableWSP_0010_UNEXPANDED_POLICY_REFERENCE_NODE_FOUND_REFERENCING(arg0));
     }
 
     public static Localizable localizableWSP_0035_RECONFIGURE_ALTERNATIVES(Object arg0) {
-        return messageFactory.getMessage("WSP_0035_RECONFIGURE_ALTERNATIVES", arg0);
+        return MESSAGE_FACTORY.getMessage("WSP_0035_RECONFIGURE_ALTERNATIVES", arg0);
     }
 
     /**
@@ -1161,11 +1159,11 @@
      *
      */
     public static String WSP_0035_RECONFIGURE_ALTERNATIVES(Object arg0) {
-        return localizer.localize(localizableWSP_0035_RECONFIGURE_ALTERNATIVES(arg0));
+        return LOCALIZER.localize(localizableWSP_0035_RECONFIGURE_ALTERNATIVES(arg0));
     }
 
     public static Localizable localizableWSP_0066_ILLEGAL_PROVIDER_CLASSNAME(Object arg0) {
-        return messageFactory.getMessage("WSP_0066_ILLEGAL_PROVIDER_CLASSNAME", arg0);
+        return MESSAGE_FACTORY.getMessage("WSP_0066_ILLEGAL_PROVIDER_CLASSNAME", arg0);
     }
 
     /**
@@ -1173,11 +1171,11 @@
      *
      */
     public static String WSP_0066_ILLEGAL_PROVIDER_CLASSNAME(Object arg0) {
-        return localizer.localize(localizableWSP_0066_ILLEGAL_PROVIDER_CLASSNAME(arg0));
+        return LOCALIZER.localize(localizableWSP_0066_ILLEGAL_PROVIDER_CLASSNAME(arg0));
     }
 
     public static Localizable localizableWSP_0076_NO_SERVICE_PROVIDERS_FOUND(Object arg0) {
-        return messageFactory.getMessage("WSP_0076_NO_SERVICE_PROVIDERS_FOUND", arg0);
+        return MESSAGE_FACTORY.getMessage("WSP_0076_NO_SERVICE_PROVIDERS_FOUND", arg0);
     }
 
     /**
@@ -1185,11 +1183,11 @@
      *
      */
     public static String WSP_0076_NO_SERVICE_PROVIDERS_FOUND(Object arg0) {
-        return localizer.localize(localizableWSP_0076_NO_SERVICE_PROVIDERS_FOUND(arg0));
+        return LOCALIZER.localize(localizableWSP_0076_NO_SERVICE_PROVIDERS_FOUND(arg0));
     }
 
     public static Localizable localizableWSP_0049_PARENT_MODEL_CAN_NOT_BE_CHANGED() {
-        return messageFactory.getMessage("WSP_0049_PARENT_MODEL_CAN_NOT_BE_CHANGED");
+        return MESSAGE_FACTORY.getMessage("WSP_0049_PARENT_MODEL_CAN_NOT_BE_CHANGED");
     }
 
     /**
@@ -1197,7 +1195,18 @@
      *
      */
     public static String WSP_0049_PARENT_MODEL_CAN_NOT_BE_CHANGED() {
-        return localizer.localize(localizableWSP_0049_PARENT_MODEL_CAN_NOT_BE_CHANGED());
+        return LOCALIZER.localize(localizableWSP_0049_PARENT_MODEL_CAN_NOT_BE_CHANGED());
+    }
+
+    private static class BundleSupplier
+        implements ResourceBundleSupplier
+    {
+
+
+        public ResourceBundle getResourceBundle(Locale locale) {
+            return ResourceBundle.getBundle(BUNDLE_NAME, locale);
+        }
+
     }
 
 }
diff --git a/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/policy/sourcemodel/attach/ContextClassloaderLocal.java b/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/policy/sourcemodel/attach/ContextClassloaderLocal.java
index f775601..bbd7c32 100644
--- a/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/policy/sourcemodel/attach/ContextClassloaderLocal.java
+++ b/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/policy/sourcemodel/attach/ContextClassloaderLocal.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2014, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -27,8 +27,6 @@
 
 import java.security.AccessController;
 import java.security.PrivilegedAction;
-import java.text.MessageFormat;
-import java.util.ResourceBundle;
 import java.util.WeakHashMap;
 
 /**
@@ -36,9 +34,7 @@
  */
 abstract class ContextClassloaderLocal<V> {
 
-    private static final String FAILED_TO_CREATE_NEW_INSTANCE = "FAILED_TO_CREATE_NEW_INSTANCE";
-
-    private WeakHashMap<ClassLoader, V> CACHE = new WeakHashMap<ClassLoader, V>();
+    private WeakHashMap<ClassLoader, V> CACHE = new WeakHashMap<>();
 
     public V get() throws Error {
         ClassLoader tccl = getContextClassLoader();
@@ -60,25 +56,21 @@
         try {
             return initialValue();
         } catch (Exception e) {
-            throw new Error(format(FAILED_TO_CREATE_NEW_INSTANCE, getClass().getName()), e);
+            throw new Error(ContextClassloaderLocalMessages.FAILED_TO_CREATE_NEW_INSTANCE(getClass().getName()), e);
         }
     }
 
-    private static String format(String property, Object... args) {
-        String text = ResourceBundle.getBundle(ContextClassloaderLocal.class.getName()).getString(property);
-        return MessageFormat.format(text, args);
-    }
-
     private static ClassLoader getContextClassLoader() {
         return AccessController.doPrivileged(new PrivilegedAction<ClassLoader>() {
-                    public ClassLoader run() {
-                        ClassLoader cl = null;
-                        try {
-                            cl = Thread.currentThread().getContextClassLoader();
-                        } catch (SecurityException ex) {
-                        }
-                        return cl;
-                    }
-                });
+            @Override
+            public ClassLoader run() {
+                ClassLoader cl = null;
+                try {
+                    cl = Thread.currentThread().getContextClassLoader();
+                } catch (SecurityException ex) {
+                }
+                return cl;
+            }
+        });
     }
 }
diff --git a/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/policy/sourcemodel/attach/ContextClassloaderLocalMessages.java b/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/policy/sourcemodel/attach/ContextClassloaderLocalMessages.java
new file mode 100644
index 0000000..1b23220
--- /dev/null
+++ b/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/policy/sourcemodel/attach/ContextClassloaderLocalMessages.java
@@ -0,0 +1,71 @@
+/*
+ * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package com.sun.xml.internal.ws.policy.sourcemodel.attach;
+
+import java.util.Locale;
+import java.util.ResourceBundle;
+import javax.annotation.Generated;
+import com.sun.istack.internal.localization.Localizable;
+import com.sun.istack.internal.localization.LocalizableMessageFactory;
+import com.sun.istack.internal.localization.LocalizableMessageFactory.ResourceBundleSupplier;
+import com.sun.istack.internal.localization.Localizer;
+
+
+/**
+ * Defines string formatting method for each constant in the resource file
+ *
+ */
+@Generated("com.sun.istack.internal.maven.ResourceGenMojo")
+public final class ContextClassloaderLocalMessages {
+
+    private final static String BUNDLE_NAME = "com.sun.xml.internal.ws.policy.sourcemodel.attach.ContextClassloaderLocal";
+    private final static LocalizableMessageFactory MESSAGE_FACTORY = new LocalizableMessageFactory(BUNDLE_NAME, new ContextClassloaderLocalMessages.BundleSupplier());
+    private final static Localizer LOCALIZER = new Localizer();
+
+    public static Localizable localizableFAILED_TO_CREATE_NEW_INSTANCE(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("FAILED_TO_CREATE_NEW_INSTANCE", arg0);
+    }
+
+    /**
+     * Failed to create new instance of {0}
+     *
+     */
+    public static String FAILED_TO_CREATE_NEW_INSTANCE(Object arg0) {
+        return LOCALIZER.localize(localizableFAILED_TO_CREATE_NEW_INSTANCE(arg0));
+    }
+
+    private static class BundleSupplier
+        implements ResourceBundleSupplier
+    {
+
+
+        public ResourceBundle getResourceBundle(Locale locale) {
+            return ResourceBundle.getBundle(BUNDLE_NAME, locale);
+        }
+
+    }
+
+}
diff --git a/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/resources/AddressingMessages.java b/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/resources/AddressingMessages.java
index a1ae07c..e042a7e 100644
--- a/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/resources/AddressingMessages.java
+++ b/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/resources/AddressingMessages.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,330 +25,28 @@
 
 package com.sun.xml.internal.ws.resources;
 
-import com.sun.istack.internal.localization.Localizable;
-import com.sun.istack.internal.localization.LocalizableMessageFactory;
-import com.sun.istack.internal.localization.Localizer;
-
 import java.util.Locale;
 import java.util.ResourceBundle;
+import javax.annotation.Generated;
+import com.sun.istack.internal.localization.Localizable;
+import com.sun.istack.internal.localization.LocalizableMessageFactory;
+import com.sun.istack.internal.localization.LocalizableMessageFactory.ResourceBundleSupplier;
+import com.sun.istack.internal.localization.Localizer;
 
 
 /**
  * Defines string formatting method for each constant in the resource file
  *
  */
+@Generated("com.sun.istack.internal.maven.ResourceGenMojo")
 public final class AddressingMessages {
+
     private final static String BUNDLE_NAME = "com.sun.xml.internal.ws.resources.addressing";
-    private final static LocalizableMessageFactory messageFactory =
-        new LocalizableMessageFactory(BUNDLE_NAME, AddressingMessages::getResourceBundle);
-    private final static Localizer localizer = new Localizer();
-
-    private static ResourceBundle getResourceBundle(Locale locale) {
-        return ResourceBundle.getBundle(BUNDLE_NAME, locale);
-    }
-
-    public static Localizable localizableNON_ANONYMOUS_RESPONSE_ONEWAY() {
-        return messageFactory.getMessage("nonAnonymous.response.oneway");
-    }
-
-    /**
-     * Ignoring non-anonymous response for one-way message
-     *
-     */
-    public static String NON_ANONYMOUS_RESPONSE_ONEWAY() {
-        return localizer.localize(localizableNON_ANONYMOUS_RESPONSE_ONEWAY());
-    }
-
-    public static Localizable localizableNULL_WSA_HEADERS() {
-        return messageFactory.getMessage("null.wsa.headers");
-    }
-
-    /**
-     * No WS-Addressing headers found processing the server inbound request
-     *
-     */
-    public static String NULL_WSA_HEADERS() {
-        return localizer.localize(localizableNULL_WSA_HEADERS());
-    }
-
-    public static Localizable localizableUNKNOWN_WSA_HEADER() {
-        return messageFactory.getMessage("unknown.wsa.header");
-    }
-
-    /**
-     * Unknown WS-Addressing header
-     *
-     */
-    public static String UNKNOWN_WSA_HEADER() {
-        return localizer.localize(localizableUNKNOWN_WSA_HEADER());
-    }
-
-    public static Localizable localizableNULL_ACTION() {
-        return messageFactory.getMessage("null.action");
-    }
-
-    /**
-     * Populating request Addressing headers and found null Action
-     *
-     */
-    public static String NULL_ACTION() {
-        return localizer.localize(localizableNULL_ACTION());
-    }
-
-    public static Localizable localizableINVALID_WSAW_ANONYMOUS(Object arg0) {
-        return messageFactory.getMessage("invalid.wsaw.anonymous", arg0);
-    }
-
-    /**
-     * Invalid value obtained from wsaw:Anonymous: "{0}"
-     *
-     */
-    public static String INVALID_WSAW_ANONYMOUS(Object arg0) {
-        return localizer.localize(localizableINVALID_WSAW_ANONYMOUS(arg0));
-    }
-
-    public static Localizable localizableNULL_SOAP_VERSION() {
-        return messageFactory.getMessage("null.soap.version");
-    }
-
-    /**
-     * Unexpected null SOAP version
-     *
-     */
-    public static String NULL_SOAP_VERSION() {
-        return localizer.localize(localizableNULL_SOAP_VERSION());
-    }
-
-    public static Localizable localizableWSDL_BOUND_OPERATION_NOT_FOUND(Object arg0) {
-        return messageFactory.getMessage("wsdlBoundOperation.notFound", arg0);
-    }
-
-    /**
-     * Cannot find an operation in wsdl:binding for "{0}"
-     *
-     */
-    public static String WSDL_BOUND_OPERATION_NOT_FOUND(Object arg0) {
-        return localizer.localize(localizableWSDL_BOUND_OPERATION_NOT_FOUND(arg0));
-    }
-
-    public static Localizable localizableNON_UNIQUE_OPERATION_SIGNATURE(Object arg0, Object arg1, Object arg2, Object arg3) {
-        return messageFactory.getMessage("non.unique.operation.signature", arg0, arg1, arg2, arg3);
-    }
-
-    /**
-     * Operations in a port should have unique operation signature to successfuly identify a associated wsdl operation for a message. WSDL operation {0} and {1} have the same operation signature, wsa:Action "{2}" and request body block "{3}", Method dispatching may fail at runtime. Use unique wsa:Action for each operation
-     *
-     */
-    public static String NON_UNIQUE_OPERATION_SIGNATURE(Object arg0, Object arg1, Object arg2, Object arg3) {
-        return localizer.localize(localizableNON_UNIQUE_OPERATION_SIGNATURE(arg0, arg1, arg2, arg3));
-    }
-
-    public static Localizable localizableNON_ANONYMOUS_RESPONSE() {
-        return messageFactory.getMessage("nonAnonymous.response");
-    }
-
-    /**
-     * Sending 202 and processing non-anonymous response
-     *
-     */
-    public static String NON_ANONYMOUS_RESPONSE() {
-        return localizer.localize(localizableNON_ANONYMOUS_RESPONSE());
-    }
-
-    public static Localizable localizableVALIDATION_SERVER_NULL_ACTION() {
-        return messageFactory.getMessage("validation.server.nullAction");
-    }
-
-    /**
-     * Validating inbound Addressing headers on server and found null Action
-     *
-     */
-    public static String VALIDATION_SERVER_NULL_ACTION() {
-        return localizer.localize(localizableVALIDATION_SERVER_NULL_ACTION());
-    }
-
-    public static Localizable localizableFAULT_TO_CANNOT_PARSE() {
-        return messageFactory.getMessage("faultTo.cannot.parse");
-    }
-
-    /**
-     * FaultTo header cannot be parsed
-     *
-     */
-    public static String FAULT_TO_CANNOT_PARSE() {
-        return localizer.localize(localizableFAULT_TO_CANNOT_PARSE());
-    }
-
-    public static Localizable localizableVALIDATION_CLIENT_NULL_ACTION() {
-        return messageFactory.getMessage("validation.client.nullAction");
-    }
-
-    /**
-     * Validating inbound Addressing headers on client and found null Action
-     *
-     */
-    public static String VALIDATION_CLIENT_NULL_ACTION() {
-        return localizer.localize(localizableVALIDATION_CLIENT_NULL_ACTION());
-    }
-
-    public static Localizable localizableNULL_MESSAGE() {
-        return messageFactory.getMessage("null.message");
-    }
-
-    /**
-     * Null message found when processing the server inbound request and WS-Addressing is required
-     *
-     */
-    public static String NULL_MESSAGE() {
-        return localizer.localize(localizableNULL_MESSAGE());
-    }
-
-    public static Localizable localizableACTION_NOT_SUPPORTED_EXCEPTION(Object arg0) {
-        return messageFactory.getMessage("action.not.supported.exception", arg0);
-    }
-
-    /**
-     * Action: "{0}" not supported
-     *
-     */
-    public static String ACTION_NOT_SUPPORTED_EXCEPTION(Object arg0) {
-        return localizer.localize(localizableACTION_NOT_SUPPORTED_EXCEPTION(arg0));
-    }
-
-    public static Localizable localizableNON_ANONYMOUS_RESPONSE_NULL_HEADERS(Object arg0) {
-        return messageFactory.getMessage("nonAnonymous.response.nullHeaders", arg0);
-    }
-
-    /**
-     * No response headers found in non-anonymous response from "{0}"
-     *
-     */
-    public static String NON_ANONYMOUS_RESPONSE_NULL_HEADERS(Object arg0) {
-        return localizer.localize(localizableNON_ANONYMOUS_RESPONSE_NULL_HEADERS(arg0));
-    }
-
-    public static Localizable localizableNON_ANONYMOUS_RESPONSE_SENDING(Object arg0) {
-        return messageFactory.getMessage("nonAnonymous.response.sending", arg0);
-    }
-
-    /**
-     * Sending non-anonymous reply to "{0}"
-     *
-     */
-    public static String NON_ANONYMOUS_RESPONSE_SENDING(Object arg0) {
-        return localizer.localize(localizableNON_ANONYMOUS_RESPONSE_SENDING(arg0));
-    }
-
-    public static Localizable localizableREPLY_TO_CANNOT_PARSE() {
-        return messageFactory.getMessage("replyTo.cannot.parse");
-    }
-
-    /**
-     * ReplyTo header cannot be parsed
-     *
-     */
-    public static String REPLY_TO_CANNOT_PARSE() {
-        return localizer.localize(localizableREPLY_TO_CANNOT_PARSE());
-    }
-
-    public static Localizable localizableINVALID_ADDRESSING_HEADER_EXCEPTION(Object arg0, Object arg1) {
-        return messageFactory.getMessage("invalid.addressing.header.exception", arg0, arg1);
-    }
-
-    /**
-     * Invalid WS-Addressing header: "{0}",Reason: "{1}"
-     *
-     */
-    public static String INVALID_ADDRESSING_HEADER_EXCEPTION(Object arg0, Object arg1) {
-        return localizer.localize(localizableINVALID_ADDRESSING_HEADER_EXCEPTION(arg0, arg1));
-    }
-
-    public static Localizable localizableWSAW_ANONYMOUS_PROHIBITED() {
-        return messageFactory.getMessage("wsaw.anonymousProhibited");
-    }
-
-    /**
-     * Operation has "prohibited" value for wsaw:anonymous in the WSDL, Addressing must be disabled and SOAP message need to be hand-crafted
-     *
-     */
-    public static String WSAW_ANONYMOUS_PROHIBITED() {
-        return localizer.localize(localizableWSAW_ANONYMOUS_PROHIBITED());
-    }
-
-    public static Localizable localizableNULL_WSDL_PORT() {
-        return messageFactory.getMessage("null.wsdlPort");
-    }
-
-    /**
-     * Populating request Addressing headers and found null WSDLPort
-     *
-     */
-    public static String NULL_WSDL_PORT() {
-        return localizer.localize(localizableNULL_WSDL_PORT());
-    }
-
-    public static Localizable localizableADDRESSING_SHOULD_BE_ENABLED() {
-        return messageFactory.getMessage("addressing.should.be.enabled.");
-    }
-
-    /**
-     * Addressing is not enabled
-     *
-     */
-    public static String ADDRESSING_SHOULD_BE_ENABLED() {
-        return localizer.localize(localizableADDRESSING_SHOULD_BE_ENABLED());
-    }
-
-    public static Localizable localizableNULL_ADDRESSING_VERSION() {
-        return messageFactory.getMessage("null.addressing.version");
-    }
-
-    /**
-     * Unexpected null Addressing version
-     *
-     */
-    public static String NULL_ADDRESSING_VERSION() {
-        return localizer.localize(localizableNULL_ADDRESSING_VERSION());
-    }
-
-    public static Localizable localizableMISSING_HEADER_EXCEPTION(Object arg0) {
-        return messageFactory.getMessage("missing.header.exception", arg0);
-    }
-
-    /**
-     * Missing WS-Addressing header: "{0}"
-     *
-     */
-    public static String MISSING_HEADER_EXCEPTION(Object arg0) {
-        return localizer.localize(localizableMISSING_HEADER_EXCEPTION(arg0));
-    }
-
-    public static Localizable localizableNULL_PACKET() {
-        return messageFactory.getMessage("null.packet");
-    }
-
-    /**
-     * Populating request Addressing headers and found null Packet
-     *
-     */
-    public static String NULL_PACKET() {
-        return localizer.localize(localizableNULL_PACKET());
-    }
-
-    public static Localizable localizableWRONG_ADDRESSING_VERSION(Object arg0, Object arg1) {
-        return messageFactory.getMessage("wrong.addressing.version", arg0, arg1);
-    }
-
-    /**
-     * Expected "{0}" version of WS-Addressing but found "{1}"
-     *
-     */
-    public static String WRONG_ADDRESSING_VERSION(Object arg0, Object arg1) {
-        return localizer.localize(localizableWRONG_ADDRESSING_VERSION(arg0, arg1));
-    }
+    private final static LocalizableMessageFactory MESSAGE_FACTORY = new LocalizableMessageFactory(BUNDLE_NAME, new AddressingMessages.BundleSupplier());
+    private final static Localizer LOCALIZER = new Localizer();
 
     public static Localizable localizableADDRESSING_NOT_ENABLED(Object arg0) {
-        return messageFactory.getMessage("addressing.notEnabled", arg0);
+        return MESSAGE_FACTORY.getMessage("addressing.notEnabled", arg0);
     }
 
     /**
@@ -356,23 +54,35 @@
      *
      */
     public static String ADDRESSING_NOT_ENABLED(Object arg0) {
-        return localizer.localize(localizableADDRESSING_NOT_ENABLED(arg0));
+        return LOCALIZER.localize(localizableADDRESSING_NOT_ENABLED(arg0));
     }
 
-    public static Localizable localizableNON_ANONYMOUS_UNKNOWN_PROTOCOL(Object arg0) {
-        return messageFactory.getMessage("nonAnonymous.unknown.protocol", arg0);
+    public static Localizable localizableWSAW_ANONYMOUS_PROHIBITED() {
+        return MESSAGE_FACTORY.getMessage("wsaw.anonymousProhibited");
     }
 
     /**
-     * Unknown protocol: "{0}"
+     * Operation has "prohibited" value for wsaw:anonymous in the WSDL, Addressing must be disabled and SOAP message need to be hand-crafted
      *
      */
-    public static String NON_ANONYMOUS_UNKNOWN_PROTOCOL(Object arg0) {
-        return localizer.localize(localizableNON_ANONYMOUS_UNKNOWN_PROTOCOL(arg0));
+    public static String WSAW_ANONYMOUS_PROHIBITED() {
+        return LOCALIZER.localize(localizableWSAW_ANONYMOUS_PROHIBITED());
+    }
+
+    public static Localizable localizableNULL_SOAP_VERSION() {
+        return MESSAGE_FACTORY.getMessage("null.soap.version");
+    }
+
+    /**
+     * Unexpected null SOAP version
+     *
+     */
+    public static String NULL_SOAP_VERSION() {
+        return LOCALIZER.localize(localizableNULL_SOAP_VERSION());
     }
 
     public static Localizable localizableNULL_HEADERS() {
-        return messageFactory.getMessage("null.headers");
+        return MESSAGE_FACTORY.getMessage("null.headers");
     }
 
     /**
@@ -380,11 +90,167 @@
      *
      */
     public static String NULL_HEADERS() {
-        return localizer.localize(localizableNULL_HEADERS());
+        return LOCALIZER.localize(localizableNULL_HEADERS());
+    }
+
+    public static Localizable localizableFAULT_TO_CANNOT_PARSE() {
+        return MESSAGE_FACTORY.getMessage("faultTo.cannot.parse");
+    }
+
+    /**
+     * FaultTo header cannot be parsed
+     *
+     */
+    public static String FAULT_TO_CANNOT_PARSE() {
+        return LOCALIZER.localize(localizableFAULT_TO_CANNOT_PARSE());
+    }
+
+    public static Localizable localizableNON_ANONYMOUS_RESPONSE_NULL_HEADERS(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("nonAnonymous.response.nullHeaders", arg0);
+    }
+
+    /**
+     * No response headers found in non-anonymous response from "{0}"
+     *
+     */
+    public static String NON_ANONYMOUS_RESPONSE_NULL_HEADERS(Object arg0) {
+        return LOCALIZER.localize(localizableNON_ANONYMOUS_RESPONSE_NULL_HEADERS(arg0));
+    }
+
+    public static Localizable localizableUNKNOWN_WSA_HEADER() {
+        return MESSAGE_FACTORY.getMessage("unknown.wsa.header");
+    }
+
+    /**
+     * Unknown WS-Addressing header
+     *
+     */
+    public static String UNKNOWN_WSA_HEADER() {
+        return LOCALIZER.localize(localizableUNKNOWN_WSA_HEADER());
+    }
+
+    public static Localizable localizableINVALID_ADDRESSING_HEADER_EXCEPTION(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("invalid.addressing.header.exception", arg0, arg1);
+    }
+
+    /**
+     * Invalid WS-Addressing header: "{0}",Reason: "{1}"
+     *
+     */
+    public static String INVALID_ADDRESSING_HEADER_EXCEPTION(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableINVALID_ADDRESSING_HEADER_EXCEPTION(arg0, arg1));
+    }
+
+    public static Localizable localizableNULL_WSDL_PORT() {
+        return MESSAGE_FACTORY.getMessage("null.wsdlPort");
+    }
+
+    /**
+     * Populating request Addressing headers and found null WSDLPort
+     *
+     */
+    public static String NULL_WSDL_PORT() {
+        return LOCALIZER.localize(localizableNULL_WSDL_PORT());
+    }
+
+    public static Localizable localizableNON_ANONYMOUS_UNKNOWN_PROTOCOL(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("nonAnonymous.unknown.protocol", arg0);
+    }
+
+    /**
+     * Unknown protocol: "{0}"
+     *
+     */
+    public static String NON_ANONYMOUS_UNKNOWN_PROTOCOL(Object arg0) {
+        return LOCALIZER.localize(localizableNON_ANONYMOUS_UNKNOWN_PROTOCOL(arg0));
+    }
+
+    public static Localizable localizableNON_ANONYMOUS_RESPONSE_SENDING(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("nonAnonymous.response.sending", arg0);
+    }
+
+    /**
+     * Sending non-anonymous reply to "{0}"
+     *
+     */
+    public static String NON_ANONYMOUS_RESPONSE_SENDING(Object arg0) {
+        return LOCALIZER.localize(localizableNON_ANONYMOUS_RESPONSE_SENDING(arg0));
+    }
+
+    public static Localizable localizableNON_ANONYMOUS_RESPONSE() {
+        return MESSAGE_FACTORY.getMessage("nonAnonymous.response");
+    }
+
+    /**
+     * Sending 202 and processing non-anonymous response
+     *
+     */
+    public static String NON_ANONYMOUS_RESPONSE() {
+        return LOCALIZER.localize(localizableNON_ANONYMOUS_RESPONSE());
+    }
+
+    public static Localizable localizableREPLY_TO_CANNOT_PARSE() {
+        return MESSAGE_FACTORY.getMessage("replyTo.cannot.parse");
+    }
+
+    /**
+     * ReplyTo header cannot be parsed
+     *
+     */
+    public static String REPLY_TO_CANNOT_PARSE() {
+        return LOCALIZER.localize(localizableREPLY_TO_CANNOT_PARSE());
+    }
+
+    public static Localizable localizableINVALID_WSAW_ANONYMOUS(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("invalid.wsaw.anonymous", arg0);
+    }
+
+    /**
+     * Invalid value obtained from wsaw:Anonymous: "{0}"
+     *
+     */
+    public static String INVALID_WSAW_ANONYMOUS(Object arg0) {
+        return LOCALIZER.localize(localizableINVALID_WSAW_ANONYMOUS(arg0));
+    }
+
+    public static Localizable localizableVALIDATION_CLIENT_NULL_ACTION() {
+        return MESSAGE_FACTORY.getMessage("validation.client.nullAction");
+    }
+
+    /**
+     * Validating inbound Addressing headers on client and found null Action
+     *
+     */
+    public static String VALIDATION_CLIENT_NULL_ACTION() {
+        return LOCALIZER.localize(localizableVALIDATION_CLIENT_NULL_ACTION());
+    }
+
+    public static Localizable localizableWSDL_BOUND_OPERATION_NOT_FOUND(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("wsdlBoundOperation.notFound", arg0);
+    }
+
+    /**
+     * Cannot find an operation in wsdl:binding for "{0}"
+     *
+     */
+    public static String WSDL_BOUND_OPERATION_NOT_FOUND(Object arg0) {
+        return LOCALIZER.localize(localizableWSDL_BOUND_OPERATION_NOT_FOUND(arg0));
+    }
+
+    public static Localizable localizableMISSING_HEADER_EXCEPTION(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("missing.header.exception", arg0);
+    }
+
+    /**
+     * Missing WS-Addressing header: "{0}"
+     *
+     */
+    public static String MISSING_HEADER_EXCEPTION(Object arg0) {
+        return LOCALIZER.localize(localizableMISSING_HEADER_EXCEPTION(arg0));
     }
 
     public static Localizable localizableNULL_BINDING() {
-        return messageFactory.getMessage("null.binding");
+        return MESSAGE_FACTORY.getMessage("null.binding");
     }
 
     /**
@@ -392,7 +258,150 @@
      *
      */
     public static String NULL_BINDING() {
-        return localizer.localize(localizableNULL_BINDING());
+        return LOCALIZER.localize(localizableNULL_BINDING());
+    }
+
+    public static Localizable localizableNULL_WSA_HEADERS() {
+        return MESSAGE_FACTORY.getMessage("null.wsa.headers");
+    }
+
+    /**
+     * No WS-Addressing headers found processing the server inbound request
+     *
+     */
+    public static String NULL_WSA_HEADERS() {
+        return LOCALIZER.localize(localizableNULL_WSA_HEADERS());
+    }
+
+    public static Localizable localizableNON_ANONYMOUS_RESPONSE_ONEWAY() {
+        return MESSAGE_FACTORY.getMessage("nonAnonymous.response.oneway");
+    }
+
+    /**
+     * Ignoring non-anonymous response for one-way message
+     *
+     */
+    public static String NON_ANONYMOUS_RESPONSE_ONEWAY() {
+        return LOCALIZER.localize(localizableNON_ANONYMOUS_RESPONSE_ONEWAY());
+    }
+
+    public static Localizable localizableVALIDATION_SERVER_NULL_ACTION() {
+        return MESSAGE_FACTORY.getMessage("validation.server.nullAction");
+    }
+
+    /**
+     * Validating inbound Addressing headers on server and found null Action
+     *
+     */
+    public static String VALIDATION_SERVER_NULL_ACTION() {
+        return LOCALIZER.localize(localizableVALIDATION_SERVER_NULL_ACTION());
+    }
+
+    public static Localizable localizableWRONG_ADDRESSING_VERSION(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("wrong.addressing.version", arg0, arg1);
+    }
+
+    /**
+     * Expected "{0}" version of WS-Addressing but found "{1}"
+     *
+     */
+    public static String WRONG_ADDRESSING_VERSION(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableWRONG_ADDRESSING_VERSION(arg0, arg1));
+    }
+
+    public static Localizable localizableACTION_NOT_SUPPORTED_EXCEPTION(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("action.not.supported.exception", arg0);
+    }
+
+    /**
+     * Action: "{0}" not supported
+     *
+     */
+    public static String ACTION_NOT_SUPPORTED_EXCEPTION(Object arg0) {
+        return LOCALIZER.localize(localizableACTION_NOT_SUPPORTED_EXCEPTION(arg0));
+    }
+
+    public static Localizable localizableNULL_MESSAGE() {
+        return MESSAGE_FACTORY.getMessage("null.message");
+    }
+
+    /**
+     * Null message found when processing the server inbound request and WS-Addressing is required
+     *
+     */
+    public static String NULL_MESSAGE() {
+        return LOCALIZER.localize(localizableNULL_MESSAGE());
+    }
+
+    public static Localizable localizableADDRESSING_SHOULD_BE_ENABLED() {
+        return MESSAGE_FACTORY.getMessage("addressing.should.be.enabled.");
+    }
+
+    /**
+     * Addressing is not enabled
+     *
+     */
+    public static String ADDRESSING_SHOULD_BE_ENABLED() {
+        return LOCALIZER.localize(localizableADDRESSING_SHOULD_BE_ENABLED());
+    }
+
+    public static Localizable localizableNULL_PACKET() {
+        return MESSAGE_FACTORY.getMessage("null.packet");
+    }
+
+    /**
+     * Populating request Addressing headers and found null Packet
+     *
+     */
+    public static String NULL_PACKET() {
+        return LOCALIZER.localize(localizableNULL_PACKET());
+    }
+
+    public static Localizable localizableNULL_ADDRESSING_VERSION() {
+        return MESSAGE_FACTORY.getMessage("null.addressing.version");
+    }
+
+    /**
+     * Unexpected null Addressing version
+     *
+     */
+    public static String NULL_ADDRESSING_VERSION() {
+        return LOCALIZER.localize(localizableNULL_ADDRESSING_VERSION());
+    }
+
+    public static Localizable localizableNULL_ACTION() {
+        return MESSAGE_FACTORY.getMessage("null.action");
+    }
+
+    /**
+     * Populating request Addressing headers and found null Action
+     *
+     */
+    public static String NULL_ACTION() {
+        return LOCALIZER.localize(localizableNULL_ACTION());
+    }
+
+    public static Localizable localizableNON_UNIQUE_OPERATION_SIGNATURE(Object arg0, Object arg1, Object arg2, Object arg3) {
+        return MESSAGE_FACTORY.getMessage("non.unique.operation.signature", arg0, arg1, arg2, arg3);
+    }
+
+    /**
+     * Operations in a port should have unique operation signature to successfuly identify a associated wsdl operation for a message. WSDL operation {0} and {1} have the same operation signature, wsa:Action "{2}" and request body block "{3}", Method dispatching may fail at runtime. Use unique wsa:Action for each operation
+     *
+     */
+    public static String NON_UNIQUE_OPERATION_SIGNATURE(Object arg0, Object arg1, Object arg2, Object arg3) {
+        return LOCALIZER.localize(localizableNON_UNIQUE_OPERATION_SIGNATURE(arg0, arg1, arg2, arg3));
+    }
+
+    private static class BundleSupplier
+        implements ResourceBundleSupplier
+    {
+
+
+        public ResourceBundle getResourceBundle(Locale locale) {
+            return ResourceBundle.getBundle(BUNDLE_NAME, locale);
+        }
+
     }
 
 }
diff --git a/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/resources/BindingApiMessages.java b/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/resources/BindingApiMessages.java
index c044aca..4cd64ec 100644
--- a/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/resources/BindingApiMessages.java
+++ b/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/resources/BindingApiMessages.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,30 +25,28 @@
 
 package com.sun.xml.internal.ws.resources;
 
-import com.sun.istack.internal.localization.Localizable;
-import com.sun.istack.internal.localization.LocalizableMessageFactory;
-import com.sun.istack.internal.localization.Localizer;
-
 import java.util.Locale;
 import java.util.ResourceBundle;
+import javax.annotation.Generated;
+import com.sun.istack.internal.localization.Localizable;
+import com.sun.istack.internal.localization.LocalizableMessageFactory;
+import com.sun.istack.internal.localization.LocalizableMessageFactory.ResourceBundleSupplier;
+import com.sun.istack.internal.localization.Localizer;
 
 
 /**
  * Defines string formatting method for each constant in the resource file
  *
  */
+@Generated("com.sun.istack.internal.maven.ResourceGenMojo")
 public final class BindingApiMessages {
-    private final static String BUNDLE_NAME = "com.sun.xml.internal.ws.resources.bindingApi";
-    private final static LocalizableMessageFactory messageFactory =
-        new LocalizableMessageFactory(BUNDLE_NAME, BindingApiMessages::getResourceBundle);
-    private final static Localizer localizer = new Localizer();
 
-    private static ResourceBundle getResourceBundle(Locale locale) {
-        return ResourceBundle.getBundle(BUNDLE_NAME, locale);
-    }
+    private final static String BUNDLE_NAME = "com.sun.xml.internal.ws.resources.bindingApi";
+    private final static LocalizableMessageFactory MESSAGE_FACTORY = new LocalizableMessageFactory(BUNDLE_NAME, new BindingApiMessages.BundleSupplier());
+    private final static Localizer LOCALIZER = new Localizer();
 
     public static Localizable localizableBINDING_API_NO_FAULT_MESSAGE_NAME() {
-        return messageFactory.getMessage("binding.api.no.fault.message.name");
+        return MESSAGE_FACTORY.getMessage("binding.api.no.fault.message.name");
     }
 
     /**
@@ -56,7 +54,18 @@
      *
      */
     public static String BINDING_API_NO_FAULT_MESSAGE_NAME() {
-        return localizer.localize(localizableBINDING_API_NO_FAULT_MESSAGE_NAME());
+        return LOCALIZER.localize(localizableBINDING_API_NO_FAULT_MESSAGE_NAME());
+    }
+
+    private static class BundleSupplier
+        implements ResourceBundleSupplier
+    {
+
+
+        public ResourceBundle getResourceBundle(Locale locale) {
+            return ResourceBundle.getBundle(BUNDLE_NAME, locale);
+        }
+
     }
 
 }
diff --git a/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/resources/ClientMessages.java b/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/resources/ClientMessages.java
index 21228d5..c7182a1 100644
--- a/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/resources/ClientMessages.java
+++ b/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/resources/ClientMessages.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,115 +25,40 @@
 
 package com.sun.xml.internal.ws.resources;
 
-import com.sun.istack.internal.localization.Localizable;
-import com.sun.istack.internal.localization.LocalizableMessageFactory;
-import com.sun.istack.internal.localization.Localizer;
-
 import java.util.Locale;
 import java.util.ResourceBundle;
+import javax.annotation.Generated;
+import com.sun.istack.internal.localization.Localizable;
+import com.sun.istack.internal.localization.LocalizableMessageFactory;
+import com.sun.istack.internal.localization.LocalizableMessageFactory.ResourceBundleSupplier;
+import com.sun.istack.internal.localization.Localizer;
 
 
 /**
  * Defines string formatting method for each constant in the resource file
  *
  */
+@Generated("com.sun.istack.internal.maven.ResourceGenMojo")
 public final class ClientMessages {
+
     private final static String BUNDLE_NAME = "com.sun.xml.internal.ws.resources.client";
-    private final static LocalizableMessageFactory messageFactory =
-        new LocalizableMessageFactory(BUNDLE_NAME, ClientMessages::getResourceBundle);
-    private final static Localizer localizer = new Localizer();
+    private final static LocalizableMessageFactory MESSAGE_FACTORY = new LocalizableMessageFactory(BUNDLE_NAME, new ClientMessages.BundleSupplier());
+    private final static Localizer LOCALIZER = new Localizer();
 
-    private static ResourceBundle getResourceBundle(Locale locale) {
-        return ResourceBundle.getBundle(BUNDLE_NAME, locale);
-    }
-
-    public static Localizable localizableFAILED_TO_PARSE(Object arg0, Object arg1) {
-        return messageFactory.getMessage("failed.to.parse", arg0, arg1);
+    public static Localizable localizableINVALID_WSDL_URL(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("invalid.wsdl.url", arg0);
     }
 
     /**
-     * Failed to access the WSDL at: {0}. It failed with:
-     *  {1}.
+     * Invalid WSDL URL: {0}
      *
      */
-    public static String FAILED_TO_PARSE(Object arg0, Object arg1) {
-        return localizer.localize(localizableFAILED_TO_PARSE(arg0, arg1));
-    }
-
-    public static Localizable localizableINVALID_BINDING_ID(Object arg0, Object arg1) {
-        return messageFactory.getMessage("invalid.binding.id", arg0, arg1);
-    }
-
-    /**
-     * Invalid binding id: {0}. Must be: {1}
-     *
-     */
-    public static String INVALID_BINDING_ID(Object arg0, Object arg1) {
-        return localizer.localize(localizableINVALID_BINDING_ID(arg0, arg1));
-    }
-
-    public static Localizable localizableEPR_WITHOUT_ADDRESSING_ON() {
-        return messageFactory.getMessage("epr.without.addressing.on");
-    }
-
-    /**
-     * EPR is specified without enabling WS-Addressing support.
-     *
-     */
-    public static String EPR_WITHOUT_ADDRESSING_ON() {
-        return localizer.localize(localizableEPR_WITHOUT_ADDRESSING_ON());
-    }
-
-    public static Localizable localizableINVALID_SERVICE_NO_WSDL(Object arg0) {
-        return messageFactory.getMessage("invalid.service.no.wsdl", arg0);
-    }
-
-    /**
-     * No wsdl metadata for service: {0}, can't create proxy! Try creating Service by providing a WSDL URL
-     *
-     */
-    public static String INVALID_SERVICE_NO_WSDL(Object arg0) {
-        return localizer.localize(localizableINVALID_SERVICE_NO_WSDL(arg0));
-    }
-
-    public static Localizable localizableINVALID_SOAP_ROLE_NONE() {
-        return messageFactory.getMessage("invalid.soap.role.none");
-    }
-
-    /**
-     * Cannot set SOAP 1.2 role "none"
-     *
-     */
-    public static String INVALID_SOAP_ROLE_NONE() {
-        return localizer.localize(localizableINVALID_SOAP_ROLE_NONE());
-    }
-
-    public static Localizable localizableUNDEFINED_BINDING(Object arg0) {
-        return messageFactory.getMessage("undefined.binding", arg0);
-    }
-
-    /**
-     * Undefined binding: {0}
-     *
-     */
-    public static String UNDEFINED_BINDING(Object arg0) {
-        return localizer.localize(localizableUNDEFINED_BINDING(arg0));
-    }
-
-    public static Localizable localizableHTTP_NOT_FOUND(Object arg0) {
-        return messageFactory.getMessage("http.not.found", arg0);
-    }
-
-    /**
-     * HTTP Status-Code 404: Not Found - {0}
-     *
-     */
-    public static String HTTP_NOT_FOUND(Object arg0) {
-        return localizer.localize(localizableHTTP_NOT_FOUND(arg0));
+    public static String INVALID_WSDL_URL(Object arg0) {
+        return LOCALIZER.localize(localizableINVALID_WSDL_URL(arg0));
     }
 
     public static Localizable localizableINVALID_EPR_PORT_NAME(Object arg0, Object arg1) {
-        return messageFactory.getMessage("invalid.epr.port.name", arg0, arg1);
+        return MESSAGE_FACTORY.getMessage("invalid.epr.port.name", arg0, arg1);
     }
 
     /**
@@ -141,11 +66,35 @@
      *
      */
     public static String INVALID_EPR_PORT_NAME(Object arg0, Object arg1) {
-        return localizer.localize(localizableINVALID_EPR_PORT_NAME(arg0, arg1));
+        return LOCALIZER.localize(localizableINVALID_EPR_PORT_NAME(arg0, arg1));
+    }
+
+    public static Localizable localizableINVALID_SOAP_ROLE_NONE() {
+        return MESSAGE_FACTORY.getMessage("invalid.soap.role.none");
+    }
+
+    /**
+     * Cannot set SOAP 1.2 role "none"
+     *
+     */
+    public static String INVALID_SOAP_ROLE_NONE() {
+        return LOCALIZER.localize(localizableINVALID_SOAP_ROLE_NONE());
+    }
+
+    public static Localizable localizableEPR_WITHOUT_ADDRESSING_ON() {
+        return MESSAGE_FACTORY.getMessage("epr.without.addressing.on");
+    }
+
+    /**
+     * EPR is specified without enabling WS-Addressing support.
+     *
+     */
+    public static String EPR_WITHOUT_ADDRESSING_ON() {
+        return LOCALIZER.localize(localizableEPR_WITHOUT_ADDRESSING_ON());
     }
 
     public static Localizable localizableFAILED_TO_PARSE_WITH_MEX(Object arg0, Object arg1, Object arg2) {
-        return messageFactory.getMessage("failed.to.parseWithMEX", arg0, arg1, arg2);
+        return MESSAGE_FACTORY.getMessage("failed.to.parseWithMEX", arg0, arg1, arg2);
     }
 
     /**
@@ -156,11 +105,11 @@
      *
      */
     public static String FAILED_TO_PARSE_WITH_MEX(Object arg0, Object arg1, Object arg2) {
-        return localizer.localize(localizableFAILED_TO_PARSE_WITH_MEX(arg0, arg1, arg2));
+        return LOCALIZER.localize(localizableFAILED_TO_PARSE_WITH_MEX(arg0, arg1, arg2));
     }
 
     public static Localizable localizableHTTP_STATUS_CODE(Object arg0, Object arg1) {
-        return messageFactory.getMessage("http.status.code", arg0, arg1);
+        return MESSAGE_FACTORY.getMessage("http.status.code", arg0, arg1);
     }
 
     /**
@@ -168,155 +117,11 @@
      *
      */
     public static String HTTP_STATUS_CODE(Object arg0, Object arg1) {
-        return localizer.localize(localizableHTTP_STATUS_CODE(arg0, arg1));
-    }
-
-    public static Localizable localizableINVALID_ADDRESS(Object arg0) {
-        return messageFactory.getMessage("invalid.address", arg0);
-    }
-
-    /**
-     * Invalid address: {0}
-     *
-     */
-    public static String INVALID_ADDRESS(Object arg0) {
-        return localizer.localize(localizableINVALID_ADDRESS(arg0));
-    }
-
-    public static Localizable localizableUNDEFINED_PORT_TYPE(Object arg0) {
-        return messageFactory.getMessage("undefined.portType", arg0);
-    }
-
-    /**
-     * Undefined port type: {0}
-     *
-     */
-    public static String UNDEFINED_PORT_TYPE(Object arg0) {
-        return localizer.localize(localizableUNDEFINED_PORT_TYPE(arg0));
-    }
-
-    public static Localizable localizableWSDL_CONTAINS_NO_SERVICE(Object arg0) {
-        return messageFactory.getMessage("wsdl.contains.no.service", arg0);
-    }
-
-    /**
-     * WSDL {0} contains no service definition.
-     *
-     */
-    public static String WSDL_CONTAINS_NO_SERVICE(Object arg0) {
-        return localizer.localize(localizableWSDL_CONTAINS_NO_SERVICE(arg0));
-    }
-
-    public static Localizable localizableINVALID_SOAP_ACTION() {
-        return messageFactory.getMessage("invalid.soap.action");
-    }
-
-    /**
-     * A valid SOAPAction should be set in the RequestContext when Addressing is enabled, Use BindingProvider.SOAPACTION_URI_PROPERTY to set it.
-     *
-     */
-    public static String INVALID_SOAP_ACTION() {
-        return localizer.localize(localizableINVALID_SOAP_ACTION());
-    }
-
-    public static Localizable localizableNON_LOGICAL_HANDLER_SET(Object arg0) {
-        return messageFactory.getMessage("non.logical.handler.set", arg0);
-    }
-
-    /**
-     * Cannot set {0} on binding. Handler must be a LogicalHandler.
-     *
-     */
-    public static String NON_LOGICAL_HANDLER_SET(Object arg0) {
-        return localizer.localize(localizableNON_LOGICAL_HANDLER_SET(arg0));
-    }
-
-    public static Localizable localizableLOCAL_CLIENT_FAILED(Object arg0) {
-        return messageFactory.getMessage("local.client.failed", arg0);
-    }
-
-    /**
-     * local transport error: {0}
-     *
-     */
-    public static String LOCAL_CLIENT_FAILED(Object arg0) {
-        return localizer.localize(localizableLOCAL_CLIENT_FAILED(arg0));
-    }
-
-    public static Localizable localizableRUNTIME_WSDLPARSER_INVALID_WSDL(Object arg0, Object arg1, Object arg2, Object arg3) {
-        return messageFactory.getMessage("runtime.wsdlparser.invalidWSDL", arg0, arg1, arg2, arg3);
-    }
-
-    /**
-     * Invalid WSDL {0}, expected {1} found {2} at (line{3})
-     *
-     */
-    public static String RUNTIME_WSDLPARSER_INVALID_WSDL(Object arg0, Object arg1, Object arg2, Object arg3) {
-        return localizer.localize(localizableRUNTIME_WSDLPARSER_INVALID_WSDL(arg0, arg1, arg2, arg3));
-    }
-
-    public static Localizable localizableWSDL_NOT_FOUND(Object arg0) {
-        return messageFactory.getMessage("wsdl.not.found", arg0);
-    }
-
-    /**
-     * WSDL url {0} is not accessible.
-     *
-     */
-    public static String WSDL_NOT_FOUND(Object arg0) {
-        return localizer.localize(localizableWSDL_NOT_FOUND(arg0));
-    }
-
-    public static Localizable localizableHTTP_CLIENT_FAILED(Object arg0) {
-        return messageFactory.getMessage("http.client.failed", arg0);
-    }
-
-    /**
-     * HTTP transport error: {0}
-     *
-     */
-    public static String HTTP_CLIENT_FAILED(Object arg0) {
-        return localizer.localize(localizableHTTP_CLIENT_FAILED(arg0));
-    }
-
-    public static Localizable localizableINVALID_SERVICE_NAME_NULL(Object arg0) {
-        return messageFactory.getMessage("invalid.service.name.null", arg0);
-    }
-
-    /**
-     * {0} is not a valid service
-     *
-     */
-    public static String INVALID_SERVICE_NAME_NULL(Object arg0) {
-        return localizer.localize(localizableINVALID_SERVICE_NAME_NULL(arg0));
-    }
-
-    public static Localizable localizableINVALID_WSDL_URL(Object arg0) {
-        return messageFactory.getMessage("invalid.wsdl.url", arg0);
-    }
-
-    /**
-     * Invalid WSDL URL: {0}
-     *
-     */
-    public static String INVALID_WSDL_URL(Object arg0) {
-        return localizer.localize(localizableINVALID_WSDL_URL(arg0));
-    }
-
-    public static Localizable localizableINVALID_PORT_NAME(Object arg0, Object arg1) {
-        return messageFactory.getMessage("invalid.port.name", arg0, arg1);
-    }
-
-    /**
-     * {0} is not a valid port. Valid ports are: {1}
-     *
-     */
-    public static String INVALID_PORT_NAME(Object arg0, Object arg1) {
-        return localizer.localize(localizableINVALID_PORT_NAME(arg0, arg1));
+        return LOCALIZER.localize(localizableHTTP_STATUS_CODE(arg0, arg1));
     }
 
     public static Localizable localizableINVALID_SERVICE_NAME(Object arg0, Object arg1) {
-        return messageFactory.getMessage("invalid.service.name", arg0, arg1);
+        return MESSAGE_FACTORY.getMessage("invalid.service.name", arg0, arg1);
     }
 
     /**
@@ -324,11 +129,96 @@
      *
      */
     public static String INVALID_SERVICE_NAME(Object arg0, Object arg1) {
-        return localizer.localize(localizableINVALID_SERVICE_NAME(arg0, arg1));
+        return LOCALIZER.localize(localizableINVALID_SERVICE_NAME(arg0, arg1));
+    }
+
+    public static Localizable localizableRUNTIME_WSDLPARSER_INVALID_WSDL(Object arg0, Object arg1, Object arg2, Object arg3) {
+        return MESSAGE_FACTORY.getMessage("runtime.wsdlparser.invalidWSDL", arg0, arg1, arg2, arg3);
+    }
+
+    /**
+     * Invalid WSDL {0}, expected {1} found {2} at (line{3})
+     *
+     */
+    public static String RUNTIME_WSDLPARSER_INVALID_WSDL(Object arg0, Object arg1, Object arg2, Object arg3) {
+        return LOCALIZER.localize(localizableRUNTIME_WSDLPARSER_INVALID_WSDL(arg0, arg1, arg2, arg3));
+    }
+
+    public static Localizable localizableNON_LOGICAL_HANDLER_SET(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("non.logical.handler.set", arg0);
+    }
+
+    /**
+     * Cannot set {0} on binding. Handler must be a LogicalHandler.
+     *
+     */
+    public static String NON_LOGICAL_HANDLER_SET(Object arg0) {
+        return LOCALIZER.localize(localizableNON_LOGICAL_HANDLER_SET(arg0));
+    }
+
+    public static Localizable localizableINVALID_PORT_NAME(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("invalid.port.name", arg0, arg1);
+    }
+
+    /**
+     * {0} is not a valid port. Valid ports are: {1}
+     *
+     */
+    public static String INVALID_PORT_NAME(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableINVALID_PORT_NAME(arg0, arg1));
+    }
+
+    public static Localizable localizableINVALID_SOAP_ACTION() {
+        return MESSAGE_FACTORY.getMessage("invalid.soap.action");
+    }
+
+    /**
+     * A valid SOAPAction should be set in the RequestContext when Addressing is enabled, Use BindingProvider.SOAPACTION_URI_PROPERTY to set it.
+     *
+     */
+    public static String INVALID_SOAP_ACTION() {
+        return LOCALIZER.localize(localizableINVALID_SOAP_ACTION());
+    }
+
+    public static Localizable localizableINVALID_ADDRESS(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("invalid.address", arg0);
+    }
+
+    /**
+     * Invalid address: {0}
+     *
+     */
+    public static String INVALID_ADDRESS(Object arg0) {
+        return LOCALIZER.localize(localizableINVALID_ADDRESS(arg0));
+    }
+
+    public static Localizable localizableFAILED_TO_PARSE(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("failed.to.parse", arg0, arg1);
+    }
+
+    /**
+     * Failed to access the WSDL at: {0}. It failed with:
+     *  {1}.
+     *
+     */
+    public static String FAILED_TO_PARSE(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableFAILED_TO_PARSE(arg0, arg1));
+    }
+
+    public static Localizable localizableHTTP_NOT_FOUND(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("http.not.found", arg0);
+    }
+
+    /**
+     * HTTP Status-Code 404: Not Found - {0}
+     *
+     */
+    public static String HTTP_NOT_FOUND(Object arg0) {
+        return LOCALIZER.localize(localizableHTTP_NOT_FOUND(arg0));
     }
 
     public static Localizable localizableUNSUPPORTED_OPERATION(Object arg0, Object arg1, Object arg2) {
-        return messageFactory.getMessage("unsupported.operation", arg0, arg1, arg2);
+        return MESSAGE_FACTORY.getMessage("unsupported.operation", arg0, arg1, arg2);
     }
 
     /**
@@ -336,11 +226,47 @@
      *
      */
     public static String UNSUPPORTED_OPERATION(Object arg0, Object arg1, Object arg2) {
-        return localizer.localize(localizableUNSUPPORTED_OPERATION(arg0, arg1, arg2));
+        return LOCALIZER.localize(localizableUNSUPPORTED_OPERATION(arg0, arg1, arg2));
+    }
+
+    public static Localizable localizableWSDL_NOT_FOUND(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("wsdl.not.found", arg0);
+    }
+
+    /**
+     * WSDL url {0} is not accessible.
+     *
+     */
+    public static String WSDL_NOT_FOUND(Object arg0) {
+        return LOCALIZER.localize(localizableWSDL_NOT_FOUND(arg0));
+    }
+
+    public static Localizable localizableINVALID_SERVICE_NAME_NULL(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("invalid.service.name.null", arg0);
+    }
+
+    /**
+     * {0} is not a valid service
+     *
+     */
+    public static String INVALID_SERVICE_NAME_NULL(Object arg0) {
+        return LOCALIZER.localize(localizableINVALID_SERVICE_NAME_NULL(arg0));
+    }
+
+    public static Localizable localizableHTTP_CLIENT_FAILED(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("http.client.failed", arg0);
+    }
+
+    /**
+     * HTTP transport error: {0}
+     *
+     */
+    public static String HTTP_CLIENT_FAILED(Object arg0) {
+        return LOCALIZER.localize(localizableHTTP_CLIENT_FAILED(arg0));
     }
 
     public static Localizable localizableFAILED_TO_PARSE_EPR(Object arg0) {
-        return messageFactory.getMessage("failed.to.parse.epr", arg0);
+        return MESSAGE_FACTORY.getMessage("failed.to.parse.epr", arg0);
     }
 
     /**
@@ -348,7 +274,90 @@
      *
      */
     public static String FAILED_TO_PARSE_EPR(Object arg0) {
-        return localizer.localize(localizableFAILED_TO_PARSE_EPR(arg0));
+        return LOCALIZER.localize(localizableFAILED_TO_PARSE_EPR(arg0));
+    }
+
+    public static Localizable localizableLOCAL_CLIENT_FAILED(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("local.client.failed", arg0);
+    }
+
+    /**
+     * local transport error: {0}
+     *
+     */
+    public static String LOCAL_CLIENT_FAILED(Object arg0) {
+        return LOCALIZER.localize(localizableLOCAL_CLIENT_FAILED(arg0));
+    }
+
+    public static Localizable localizableUNDEFINED_BINDING(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("undefined.binding", arg0);
+    }
+
+    /**
+     * Undefined binding: {0}
+     *
+     */
+    public static String UNDEFINED_BINDING(Object arg0) {
+        return LOCALIZER.localize(localizableUNDEFINED_BINDING(arg0));
+    }
+
+    public static Localizable localizableINVALID_SERVICE_NO_WSDL(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("invalid.service.no.wsdl", arg0);
+    }
+
+    /**
+     * No wsdl metadata for service: {0}, can't create proxy! Try creating Service by providing a WSDL URL
+     *
+     */
+    public static String INVALID_SERVICE_NO_WSDL(Object arg0) {
+        return LOCALIZER.localize(localizableINVALID_SERVICE_NO_WSDL(arg0));
+    }
+
+    public static Localizable localizableWSDL_CONTAINS_NO_SERVICE(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("wsdl.contains.no.service", arg0);
+    }
+
+    /**
+     * WSDL {0} contains no service definition.
+     *
+     */
+    public static String WSDL_CONTAINS_NO_SERVICE(Object arg0) {
+        return LOCALIZER.localize(localizableWSDL_CONTAINS_NO_SERVICE(arg0));
+    }
+
+    public static Localizable localizableINVALID_BINDING_ID(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("invalid.binding.id", arg0, arg1);
+    }
+
+    /**
+     * Invalid binding id: {0}. Must be: {1}
+     *
+     */
+    public static String INVALID_BINDING_ID(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableINVALID_BINDING_ID(arg0, arg1));
+    }
+
+    public static Localizable localizableUNDEFINED_PORT_TYPE(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("undefined.portType", arg0);
+    }
+
+    /**
+     * Undefined port type: {0}
+     *
+     */
+    public static String UNDEFINED_PORT_TYPE(Object arg0) {
+        return LOCALIZER.localize(localizableUNDEFINED_PORT_TYPE(arg0));
+    }
+
+    private static class BundleSupplier
+        implements ResourceBundleSupplier
+    {
+
+
+        public ResourceBundle getResourceBundle(Locale locale) {
+            return ResourceBundle.getBundle(BUNDLE_NAME, locale);
+        }
+
     }
 
 }
diff --git a/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/resources/DispatchMessages.java b/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/resources/DispatchMessages.java
index 4d5c7fa..f617924 100644
--- a/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/resources/DispatchMessages.java
+++ b/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/resources/DispatchMessages.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,138 +25,28 @@
 
 package com.sun.xml.internal.ws.resources;
 
-import com.sun.istack.internal.localization.Localizable;
-import com.sun.istack.internal.localization.LocalizableMessageFactory;
-import com.sun.istack.internal.localization.Localizer;
-
 import java.util.Locale;
 import java.util.ResourceBundle;
+import javax.annotation.Generated;
+import com.sun.istack.internal.localization.Localizable;
+import com.sun.istack.internal.localization.LocalizableMessageFactory;
+import com.sun.istack.internal.localization.LocalizableMessageFactory.ResourceBundleSupplier;
+import com.sun.istack.internal.localization.Localizer;
 
 
 /**
  * Defines string formatting method for each constant in the resource file
  *
  */
+@Generated("com.sun.istack.internal.maven.ResourceGenMojo")
 public final class DispatchMessages {
+
     private final static String BUNDLE_NAME = "com.sun.xml.internal.ws.resources.dispatch";
-    private final static LocalizableMessageFactory messageFactory =
-        new LocalizableMessageFactory(BUNDLE_NAME, DispatchMessages::getResourceBundle);
-    private final static Localizer localizer = new Localizer();
-
-    private static ResourceBundle getResourceBundle(Locale locale) {
-        return ResourceBundle.getBundle(BUNDLE_NAME, locale);
-    }
-
-    public static Localizable localizableINVALID_NULLARG_XMLHTTP_REQUEST_METHOD(Object arg0, Object arg1) {
-        return messageFactory.getMessage("invalid.nullarg.xmlhttp.request.method", arg0, arg1);
-    }
-
-    /**
-     * A XML/HTTP request using MessageContext.HTTP_REQUEST_METHOD equals {0} with a Null invocation Argument is not allowed. Must be: {1}
-     *
-     */
-    public static String INVALID_NULLARG_XMLHTTP_REQUEST_METHOD(Object arg0, Object arg1) {
-        return localizer.localize(localizableINVALID_NULLARG_XMLHTTP_REQUEST_METHOD(arg0, arg1));
-    }
-
-    public static Localizable localizableINVALID_NULLARG_URI() {
-        return messageFactory.getMessage("invalid.nullarg.uri");
-    }
-
-    /**
-     * Endpoint address URI is not allowed with a null argument
-     *
-     */
-    public static String INVALID_NULLARG_URI() {
-        return localizer.localize(localizableINVALID_NULLARG_URI());
-    }
-
-    public static Localizable localizableINVALID_SOAPMESSAGE_DISPATCH_MSGMODE(Object arg0, Object arg1) {
-        return messageFactory.getMessage("invalid.soapmessage.dispatch.msgmode", arg0, arg1);
-    }
-
-    /**
-     * Can not create Dispatch<SOAPMessage> of {0}. Must be {1}.
-     *
-     */
-    public static String INVALID_SOAPMESSAGE_DISPATCH_MSGMODE(Object arg0, Object arg1) {
-        return localizer.localize(localizableINVALID_SOAPMESSAGE_DISPATCH_MSGMODE(arg0, arg1));
-    }
-
-    public static Localizable localizableINVALID_RESPONSE_DESERIALIZATION() {
-        return messageFactory.getMessage("invalid.response.deserialization");
-    }
-
-    /**
-     * Failed to deserialize the response.
-     *
-     */
-    public static String INVALID_RESPONSE_DESERIALIZATION() {
-        return localizer.localize(localizableINVALID_RESPONSE_DESERIALIZATION());
-    }
-
-    public static Localizable localizableINVALID_QUERY_LEADING_CHAR(Object arg0) {
-        return messageFactory.getMessage("invalid.query.leading.char", arg0);
-    }
-
-    /**
-     * Leading '?' of MessageContext.QUERY_STRING: {0} is not valid. Remove '?' and run again.
-     *
-     */
-    public static String INVALID_QUERY_LEADING_CHAR(Object arg0) {
-        return localizer.localize(localizableINVALID_QUERY_LEADING_CHAR(arg0));
-    }
-
-    public static Localizable localizableINVALID_QUERY_STRING(Object arg0) {
-        return messageFactory.getMessage("invalid.query.string", arg0);
-    }
-
-    /**
-     * Unable to resolve endpoint address using the supplied query string: {0}.
-     *
-     */
-    public static String INVALID_QUERY_STRING(Object arg0) {
-        return localizer.localize(localizableINVALID_QUERY_STRING(arg0));
-    }
-
-    public static Localizable localizableDUPLICATE_PORT(Object arg0) {
-        return messageFactory.getMessage("duplicate.port", arg0);
-    }
-
-    /**
-     * WSDLPort {0} already exists. Can not create a port of the same QName.
-     *
-     */
-    public static String DUPLICATE_PORT(Object arg0) {
-        return localizer.localize(localizableDUPLICATE_PORT(arg0));
-    }
-
-    public static Localizable localizableINVALID_DATASOURCE_DISPATCH_BINDING(Object arg0, Object arg1) {
-        return messageFactory.getMessage("invalid.datasource.dispatch.binding", arg0, arg1);
-    }
-
-    /**
-     * Can not create Dispatch<DataSource> with {0}. Must be: {1}
-     *
-     */
-    public static String INVALID_DATASOURCE_DISPATCH_BINDING(Object arg0, Object arg1) {
-        return localizer.localize(localizableINVALID_DATASOURCE_DISPATCH_BINDING(arg0, arg1));
-    }
-
-    public static Localizable localizableINVALID_DATASOURCE_DISPATCH_MSGMODE(Object arg0, Object arg1) {
-        return messageFactory.getMessage("invalid.datasource.dispatch.msgmode", arg0, arg1);
-    }
-
-    /**
-     * Can not create Dispatch<DataSource> of Service.Mode.PAYLOAD{0}. Must be: {1}
-     *
-     */
-    public static String INVALID_DATASOURCE_DISPATCH_MSGMODE(Object arg0, Object arg1) {
-        return localizer.localize(localizableINVALID_DATASOURCE_DISPATCH_MSGMODE(arg0, arg1));
-    }
+    private final static LocalizableMessageFactory MESSAGE_FACTORY = new LocalizableMessageFactory(BUNDLE_NAME, new DispatchMessages.BundleSupplier());
+    private final static Localizer LOCALIZER = new Localizer();
 
     public static Localizable localizableINVALID_NULLARG_SOAP_MSGMODE(Object arg0, Object arg1) {
-        return messageFactory.getMessage("invalid.nullarg.soap.msgmode", arg0, arg1);
+        return MESSAGE_FACTORY.getMessage("invalid.nullarg.soap.msgmode", arg0, arg1);
     }
 
     /**
@@ -164,71 +54,23 @@
      *
      */
     public static String INVALID_NULLARG_SOAP_MSGMODE(Object arg0, Object arg1) {
-        return localizer.localize(localizableINVALID_NULLARG_SOAP_MSGMODE(arg0, arg1));
+        return LOCALIZER.localize(localizableINVALID_NULLARG_SOAP_MSGMODE(arg0, arg1));
     }
 
-    public static Localizable localizableINVALID_URI(Object arg0) {
-        return messageFactory.getMessage("invalid.uri", arg0);
+    public static Localizable localizableINVALID_QUERY_STRING(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("invalid.query.string", arg0);
     }
 
     /**
-     * Endpoint String: {0} is and invalid URI.
+     * Unable to resolve endpoint address using the supplied query string: {0}.
      *
      */
-    public static String INVALID_URI(Object arg0) {
-        return localizer.localize(localizableINVALID_URI(arg0));
-    }
-
-    public static Localizable localizableINVALID_SOAPMESSAGE_DISPATCH_BINDING(Object arg0, Object arg1) {
-        return messageFactory.getMessage("invalid.soapmessage.dispatch.binding", arg0, arg1);
-    }
-
-    /**
-     * Can not create Dispatch<SOAPMessage> with {0} Binding. Must be: {1} Binding.
-     *
-     */
-    public static String INVALID_SOAPMESSAGE_DISPATCH_BINDING(Object arg0, Object arg1) {
-        return localizer.localize(localizableINVALID_SOAPMESSAGE_DISPATCH_BINDING(arg0, arg1));
-    }
-
-    public static Localizable localizableINVALID_URI_PATH_QUERY(Object arg0, Object arg1) {
-        return messageFactory.getMessage("invalid.uri.path.query", arg0, arg1);
-    }
-
-    /**
-     * Unable to construct a URI with this path info {0} and this query string {1}.
-     *
-     */
-    public static String INVALID_URI_PATH_QUERY(Object arg0, Object arg1) {
-        return localizer.localize(localizableINVALID_URI_PATH_QUERY(arg0, arg1));
-    }
-
-    public static Localizable localizableINVALID_RESPONSE() {
-        return messageFactory.getMessage("invalid.response");
-    }
-
-    /**
-     * No response returned.
-     *
-     */
-    public static String INVALID_RESPONSE() {
-        return localizer.localize(localizableINVALID_RESPONSE());
-    }
-
-    public static Localizable localizableINVALID_URI_RESOLUTION(Object arg0) {
-        return messageFactory.getMessage("invalid.uri.resolution", arg0);
-    }
-
-    /**
-     * Unable to resolve endpoint address using the supplied path: {0}.
-     *
-     */
-    public static String INVALID_URI_RESOLUTION(Object arg0) {
-        return localizer.localize(localizableINVALID_URI_RESOLUTION(arg0));
+    public static String INVALID_QUERY_STRING(Object arg0) {
+        return LOCALIZER.localize(localizableINVALID_QUERY_STRING(arg0));
     }
 
     public static Localizable localizableINVALID_URI_DECODE() {
-        return messageFactory.getMessage("invalid.uri.decode");
+        return MESSAGE_FACTORY.getMessage("invalid.uri.decode");
     }
 
     /**
@@ -236,7 +78,174 @@
      *
      */
     public static String INVALID_URI_DECODE() {
-        return localizer.localize(localizableINVALID_URI_DECODE());
+        return LOCALIZER.localize(localizableINVALID_URI_DECODE());
+    }
+
+    public static Localizable localizableINVALID_URI_RESOLUTION(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("invalid.uri.resolution", arg0);
+    }
+
+    /**
+     * Unable to resolve endpoint address using the supplied path: {0}.
+     *
+     */
+    public static String INVALID_URI_RESOLUTION(Object arg0) {
+        return LOCALIZER.localize(localizableINVALID_URI_RESOLUTION(arg0));
+    }
+
+    public static Localizable localizableINVALID_NULLARG_URI() {
+        return MESSAGE_FACTORY.getMessage("invalid.nullarg.uri");
+    }
+
+    /**
+     * Endpoint address URI is not allowed with a null argument
+     *
+     */
+    public static String INVALID_NULLARG_URI() {
+        return LOCALIZER.localize(localizableINVALID_NULLARG_URI());
+    }
+
+    public static Localizable localizableINVALID_URI_PATH_QUERY(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("invalid.uri.path.query", arg0, arg1);
+    }
+
+    /**
+     * Unable to construct a URI with this path info {0} and this query string {1}.
+     *
+     */
+    public static String INVALID_URI_PATH_QUERY(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableINVALID_URI_PATH_QUERY(arg0, arg1));
+    }
+
+    public static Localizable localizableINVALID_URI(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("invalid.uri", arg0);
+    }
+
+    /**
+     * Endpoint String: {0} is and invalid URI.
+     *
+     */
+    public static String INVALID_URI(Object arg0) {
+        return LOCALIZER.localize(localizableINVALID_URI(arg0));
+    }
+
+    public static Localizable localizableINVALID_DATASOURCE_DISPATCH_MSGMODE(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("invalid.datasource.dispatch.msgmode", arg0, arg1);
+    }
+
+    /**
+     * Can not create Dispatch<DataSource> of Service.Mode.PAYLOAD{0}. Must be: {1}
+     *
+     */
+    public static String INVALID_DATASOURCE_DISPATCH_MSGMODE(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableINVALID_DATASOURCE_DISPATCH_MSGMODE(arg0, arg1));
+    }
+
+    public static Localizable localizableDUPLICATE_PORT(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("duplicate.port", arg0);
+    }
+
+    /**
+     * WSDLPort {0} already exists. Can not create a port of the same QName.
+     *
+     */
+    public static String DUPLICATE_PORT(Object arg0) {
+        return LOCALIZER.localize(localizableDUPLICATE_PORT(arg0));
+    }
+
+    public static Localizable localizableINVALID_SOAPMESSAGE_DISPATCH_BINDING(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("invalid.soapmessage.dispatch.binding", arg0, arg1);
+    }
+
+    /**
+     * Can not create Dispatch<SOAPMessage> with {0} Binding. Must be: {1} Binding.
+     *
+     */
+    public static String INVALID_SOAPMESSAGE_DISPATCH_BINDING(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableINVALID_SOAPMESSAGE_DISPATCH_BINDING(arg0, arg1));
+    }
+
+    public static Localizable localizableINVALID_QUERY_LEADING_CHAR(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("invalid.query.leading.char", arg0);
+    }
+
+    /**
+     * Leading '?' of MessageContext.QUERY_STRING: {0} is not valid. Remove '?' and run again.
+     *
+     */
+    public static String INVALID_QUERY_LEADING_CHAR(Object arg0) {
+        return LOCALIZER.localize(localizableINVALID_QUERY_LEADING_CHAR(arg0));
+    }
+
+    public static Localizable localizableINVALID_RESPONSE_DESERIALIZATION() {
+        return MESSAGE_FACTORY.getMessage("invalid.response.deserialization");
+    }
+
+    /**
+     * Failed to deserialize the response.
+     *
+     */
+    public static String INVALID_RESPONSE_DESERIALIZATION() {
+        return LOCALIZER.localize(localizableINVALID_RESPONSE_DESERIALIZATION());
+    }
+
+    public static Localizable localizableINVALID_RESPONSE() {
+        return MESSAGE_FACTORY.getMessage("invalid.response");
+    }
+
+    /**
+     * No response returned.
+     *
+     */
+    public static String INVALID_RESPONSE() {
+        return LOCALIZER.localize(localizableINVALID_RESPONSE());
+    }
+
+    public static Localizable localizableINVALID_SOAPMESSAGE_DISPATCH_MSGMODE(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("invalid.soapmessage.dispatch.msgmode", arg0, arg1);
+    }
+
+    /**
+     * Can not create Dispatch<SOAPMessage> of {0}. Must be {1}.
+     *
+     */
+    public static String INVALID_SOAPMESSAGE_DISPATCH_MSGMODE(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableINVALID_SOAPMESSAGE_DISPATCH_MSGMODE(arg0, arg1));
+    }
+
+    public static Localizable localizableINVALID_DATASOURCE_DISPATCH_BINDING(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("invalid.datasource.dispatch.binding", arg0, arg1);
+    }
+
+    /**
+     * Can not create Dispatch<DataSource> with {0}. Must be: {1}
+     *
+     */
+    public static String INVALID_DATASOURCE_DISPATCH_BINDING(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableINVALID_DATASOURCE_DISPATCH_BINDING(arg0, arg1));
+    }
+
+    public static Localizable localizableINVALID_NULLARG_XMLHTTP_REQUEST_METHOD(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("invalid.nullarg.xmlhttp.request.method", arg0, arg1);
+    }
+
+    /**
+     * A XML/HTTP request using MessageContext.HTTP_REQUEST_METHOD equals {0} with a Null invocation Argument is not allowed. Must be: {1}
+     *
+     */
+    public static String INVALID_NULLARG_XMLHTTP_REQUEST_METHOD(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableINVALID_NULLARG_XMLHTTP_REQUEST_METHOD(arg0, arg1));
+    }
+
+    private static class BundleSupplier
+        implements ResourceBundleSupplier
+    {
+
+
+        public ResourceBundle getResourceBundle(Locale locale) {
+            return ResourceBundle.getBundle(BUNDLE_NAME, locale);
+        }
+
     }
 
 }
diff --git a/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/resources/EncodingMessages.java b/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/resources/EncodingMessages.java
index ecbf83b..a4d394d 100644
--- a/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/resources/EncodingMessages.java
+++ b/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/resources/EncodingMessages.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,54 +25,28 @@
 
 package com.sun.xml.internal.ws.resources;
 
-import com.sun.istack.internal.localization.Localizable;
-import com.sun.istack.internal.localization.LocalizableMessageFactory;
-import com.sun.istack.internal.localization.Localizer;
-
 import java.util.Locale;
 import java.util.ResourceBundle;
+import javax.annotation.Generated;
+import com.sun.istack.internal.localization.Localizable;
+import com.sun.istack.internal.localization.LocalizableMessageFactory;
+import com.sun.istack.internal.localization.LocalizableMessageFactory.ResourceBundleSupplier;
+import com.sun.istack.internal.localization.Localizer;
 
 
 /**
  * Defines string formatting method for each constant in the resource file
  *
  */
+@Generated("com.sun.istack.internal.maven.ResourceGenMojo")
 public final class EncodingMessages {
+
     private final static String BUNDLE_NAME = "com.sun.xml.internal.ws.resources.encoding";
-    private final static LocalizableMessageFactory messageFactory =
-        new LocalizableMessageFactory(BUNDLE_NAME, EncodingMessages::getResourceBundle);
-    private final static Localizer localizer = new Localizer();
-
-    private static ResourceBundle getResourceBundle(Locale locale) {
-        return ResourceBundle.getBundle(BUNDLE_NAME, locale);
-    }
-
-    public static Localizable localizableFAILED_TO_READ_RESPONSE(Object arg0) {
-        return messageFactory.getMessage("failed.to.read.response", arg0);
-    }
-
-    /**
-     * Failed to read a response: {0}
-     *
-     */
-    public static String FAILED_TO_READ_RESPONSE(Object arg0) {
-        return localizer.localize(localizableFAILED_TO_READ_RESPONSE(arg0));
-    }
-
-    public static Localizable localizableEXCEPTION_INCORRECT_TYPE(Object arg0) {
-        return messageFactory.getMessage("exception.incorrectType", arg0);
-    }
-
-    /**
-     * incorrect type. Expected java.lang.Exception, found {0}
-     *
-     */
-    public static String EXCEPTION_INCORRECT_TYPE(Object arg0) {
-        return localizer.localize(localizableEXCEPTION_INCORRECT_TYPE(arg0));
-    }
+    private final static LocalizableMessageFactory MESSAGE_FACTORY = new LocalizableMessageFactory(BUNDLE_NAME, new EncodingMessages.BundleSupplier());
+    private final static Localizer LOCALIZER = new Localizer();
 
     public static Localizable localizableEXCEPTION_NOTFOUND(Object arg0) {
-        return messageFactory.getMessage("exception.notfound", arg0);
+        return MESSAGE_FACTORY.getMessage("exception.notfound", arg0);
     }
 
     /**
@@ -80,47 +54,11 @@
      *
      */
     public static String EXCEPTION_NOTFOUND(Object arg0) {
-        return localizer.localize(localizableEXCEPTION_NOTFOUND(arg0));
-    }
-
-    public static Localizable localizableXSD_UNEXPECTED_ELEMENT_NAME(Object arg0, Object arg1) {
-        return messageFactory.getMessage("xsd.unexpectedElementName", arg0, arg1);
-    }
-
-    /**
-     * unexpected element name: expected={0}, actual: {1}
-     *
-     */
-    public static String XSD_UNEXPECTED_ELEMENT_NAME(Object arg0, Object arg1) {
-        return localizer.localize(localizableXSD_UNEXPECTED_ELEMENT_NAME(arg0, arg1));
-    }
-
-    public static Localizable localizableNESTED_DESERIALIZATION_ERROR(Object arg0) {
-        return messageFactory.getMessage("nestedDeserializationError", arg0);
-    }
-
-    /**
-     * deserialization error: {0}
-     *
-     */
-    public static String NESTED_DESERIALIZATION_ERROR(Object arg0) {
-        return localizer.localize(localizableNESTED_DESERIALIZATION_ERROR(arg0));
-    }
-
-    public static Localizable localizableNESTED_ENCODING_ERROR(Object arg0) {
-        return messageFactory.getMessage("nestedEncodingError", arg0);
-    }
-
-    /**
-     * encoding error: {0}
-     *
-     */
-    public static String NESTED_ENCODING_ERROR(Object arg0) {
-        return localizer.localize(localizableNESTED_ENCODING_ERROR(arg0));
+        return LOCALIZER.localize(localizableEXCEPTION_NOTFOUND(arg0));
     }
 
     public static Localizable localizableXSD_UNKNOWN_PREFIX(Object arg0) {
-        return messageFactory.getMessage("xsd.unknownPrefix", arg0);
+        return MESSAGE_FACTORY.getMessage("xsd.unknownPrefix", arg0);
     }
 
     /**
@@ -128,11 +66,59 @@
      *
      */
     public static String XSD_UNKNOWN_PREFIX(Object arg0) {
-        return localizer.localize(localizableXSD_UNKNOWN_PREFIX(arg0));
+        return LOCALIZER.localize(localizableXSD_UNKNOWN_PREFIX(arg0));
+    }
+
+    public static Localizable localizableNESTED_ENCODING_ERROR(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("nestedEncodingError", arg0);
+    }
+
+    /**
+     * encoding error: {0}
+     *
+     */
+    public static String NESTED_ENCODING_ERROR(Object arg0) {
+        return LOCALIZER.localize(localizableNESTED_ENCODING_ERROR(arg0));
+    }
+
+    public static Localizable localizableNESTED_DESERIALIZATION_ERROR(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("nestedDeserializationError", arg0);
+    }
+
+    /**
+     * deserialization error: {0}
+     *
+     */
+    public static String NESTED_DESERIALIZATION_ERROR(Object arg0) {
+        return LOCALIZER.localize(localizableNESTED_DESERIALIZATION_ERROR(arg0));
+    }
+
+    public static Localizable localizableXSD_UNEXPECTED_ELEMENT_NAME(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("xsd.unexpectedElementName", arg0, arg1);
+    }
+
+    /**
+     * unexpected element name: expected={0}, actual: {1}
+     *
+     */
+    public static String XSD_UNEXPECTED_ELEMENT_NAME(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableXSD_UNEXPECTED_ELEMENT_NAME(arg0, arg1));
+    }
+
+    public static Localizable localizableFAILED_TO_READ_RESPONSE(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("failed.to.read.response", arg0);
+    }
+
+    /**
+     * Failed to read a response: {0}
+     *
+     */
+    public static String FAILED_TO_READ_RESPONSE(Object arg0) {
+        return LOCALIZER.localize(localizableFAILED_TO_READ_RESPONSE(arg0));
     }
 
     public static Localizable localizableNESTED_SERIALIZATION_ERROR(Object arg0) {
-        return messageFactory.getMessage("nestedSerializationError", arg0);
+        return MESSAGE_FACTORY.getMessage("nestedSerializationError", arg0);
     }
 
     /**
@@ -140,11 +126,11 @@
      *
      */
     public static String NESTED_SERIALIZATION_ERROR(Object arg0) {
-        return localizer.localize(localizableNESTED_SERIALIZATION_ERROR(arg0));
+        return LOCALIZER.localize(localizableNESTED_SERIALIZATION_ERROR(arg0));
     }
 
     public static Localizable localizableNO_SUCH_CONTENT_ID(Object arg0) {
-        return messageFactory.getMessage("noSuchContentId", arg0);
+        return MESSAGE_FACTORY.getMessage("noSuchContentId", arg0);
     }
 
     /**
@@ -152,7 +138,30 @@
      *
      */
     public static String NO_SUCH_CONTENT_ID(Object arg0) {
-        return localizer.localize(localizableNO_SUCH_CONTENT_ID(arg0));
+        return LOCALIZER.localize(localizableNO_SUCH_CONTENT_ID(arg0));
+    }
+
+    public static Localizable localizableEXCEPTION_INCORRECT_TYPE(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("exception.incorrectType", arg0);
+    }
+
+    /**
+     * incorrect type. Expected java.lang.Exception, found {0}
+     *
+     */
+    public static String EXCEPTION_INCORRECT_TYPE(Object arg0) {
+        return LOCALIZER.localize(localizableEXCEPTION_INCORRECT_TYPE(arg0));
+    }
+
+    private static class BundleSupplier
+        implements ResourceBundleSupplier
+    {
+
+
+        public ResourceBundle getResourceBundle(Locale locale) {
+            return ResourceBundle.getBundle(BUNDLE_NAME, locale);
+        }
+
     }
 
 }
diff --git a/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/resources/HandlerMessages.java b/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/resources/HandlerMessages.java
index 2582b89..6c983de 100644
--- a/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/resources/HandlerMessages.java
+++ b/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/resources/HandlerMessages.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,90 +25,28 @@
 
 package com.sun.xml.internal.ws.resources;
 
-import com.sun.istack.internal.localization.Localizable;
-import com.sun.istack.internal.localization.LocalizableMessageFactory;
-import com.sun.istack.internal.localization.Localizer;
-
 import java.util.Locale;
 import java.util.ResourceBundle;
+import javax.annotation.Generated;
+import com.sun.istack.internal.localization.Localizable;
+import com.sun.istack.internal.localization.LocalizableMessageFactory;
+import com.sun.istack.internal.localization.LocalizableMessageFactory.ResourceBundleSupplier;
+import com.sun.istack.internal.localization.Localizer;
 
 
 /**
  * Defines string formatting method for each constant in the resource file
  *
  */
+@Generated("com.sun.istack.internal.maven.ResourceGenMojo")
 public final class HandlerMessages {
+
     private final static String BUNDLE_NAME = "com.sun.xml.internal.ws.resources.handler";
-    private final static LocalizableMessageFactory messageFactory =
-        new LocalizableMessageFactory(BUNDLE_NAME, HandlerMessages::getResourceBundle);
-    private final static Localizer localizer = new Localizer();
-
-    private static ResourceBundle getResourceBundle(Locale locale) {
-        return ResourceBundle.getBundle(BUNDLE_NAME, locale);
-    }
-
-    public static Localizable localizableHANDLER_MESSAGE_CONTEXT_INVALID_CLASS(Object arg0, Object arg1) {
-        return messageFactory.getMessage("handler.messageContext.invalid.class", arg0, arg1);
-    }
-
-    /**
-     * "{0}" is not an allowed value for the property "{1}"
-     *
-     */
-    public static String HANDLER_MESSAGE_CONTEXT_INVALID_CLASS(Object arg0, Object arg1) {
-        return localizer.localize(localizableHANDLER_MESSAGE_CONTEXT_INVALID_CLASS(arg0, arg1));
-    }
-
-    public static Localizable localizableCANNOT_EXTEND_HANDLER_DIRECTLY(Object arg0) {
-        return messageFactory.getMessage("cannot.extend.handler.directly", arg0);
-    }
-
-    /**
-     * Handler {0} must implement LogicalHandler or SOAPHandler.
-     *
-     */
-    public static String CANNOT_EXTEND_HANDLER_DIRECTLY(Object arg0) {
-        return localizer.localize(localizableCANNOT_EXTEND_HANDLER_DIRECTLY(arg0));
-    }
-
-    public static Localizable localizableHANDLER_NOT_VALID_TYPE(Object arg0) {
-        return messageFactory.getMessage("handler.not.valid.type", arg0);
-    }
-
-    /**
-     * {0} does not implement one of the handler interfaces.
-     *
-     */
-    public static String HANDLER_NOT_VALID_TYPE(Object arg0) {
-        return localizer.localize(localizableHANDLER_NOT_VALID_TYPE(arg0));
-    }
-
-    public static Localizable localizableCANNOT_INSTANTIATE_HANDLER(Object arg0, Object arg1) {
-        return messageFactory.getMessage("cannot.instantiate.handler", arg0, arg1);
-    }
-
-    /**
-     * Unable to instantiate handler: {0} because: {1}
-     *
-     */
-    public static String CANNOT_INSTANTIATE_HANDLER(Object arg0, Object arg1) {
-        return localizer.localize(localizableCANNOT_INSTANTIATE_HANDLER(arg0, arg1));
-    }
-
-    public static Localizable localizableHANDLER_CHAIN_CONTAINS_HANDLER_ONLY(Object arg0) {
-        return messageFactory.getMessage("handler.chain.contains.handler.only", arg0);
-    }
-
-    /**
-     * A HandlerChain can only contain Handler instances: {0}
-     *
-     */
-    public static String HANDLER_CHAIN_CONTAINS_HANDLER_ONLY(Object arg0) {
-        return localizer.localize(localizableHANDLER_CHAIN_CONTAINS_HANDLER_ONLY(arg0));
-    }
+    private final static LocalizableMessageFactory MESSAGE_FACTORY = new LocalizableMessageFactory(BUNDLE_NAME, new HandlerMessages.BundleSupplier());
+    private final static Localizer LOCALIZER = new Localizer();
 
     public static Localizable localizableHANDLER_NESTED_ERROR(Object arg0) {
-        return messageFactory.getMessage("handler.nestedError", arg0);
+        return MESSAGE_FACTORY.getMessage("handler.nestedError", arg0);
     }
 
     /**
@@ -116,11 +54,47 @@
      *
      */
     public static String HANDLER_NESTED_ERROR(Object arg0) {
-        return localizer.localize(localizableHANDLER_NESTED_ERROR(arg0));
+        return LOCALIZER.localize(localizableHANDLER_NESTED_ERROR(arg0));
+    }
+
+    public static Localizable localizableCANNOT_EXTEND_HANDLER_DIRECTLY(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("cannot.extend.handler.directly", arg0);
+    }
+
+    /**
+     * Handler {0} must implement LogicalHandler or SOAPHandler.
+     *
+     */
+    public static String CANNOT_EXTEND_HANDLER_DIRECTLY(Object arg0) {
+        return LOCALIZER.localize(localizableCANNOT_EXTEND_HANDLER_DIRECTLY(arg0));
+    }
+
+    public static Localizable localizableHANDLER_NOT_VALID_TYPE(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("handler.not.valid.type", arg0);
+    }
+
+    /**
+     * {0} does not implement one of the handler interfaces.
+     *
+     */
+    public static String HANDLER_NOT_VALID_TYPE(Object arg0) {
+        return LOCALIZER.localize(localizableHANDLER_NOT_VALID_TYPE(arg0));
+    }
+
+    public static Localizable localizableHANDLER_MESSAGE_CONTEXT_INVALID_CLASS(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("handler.messageContext.invalid.class", arg0, arg1);
+    }
+
+    /**
+     * "{0}" is not an allowed value for the property "{1}"
+     *
+     */
+    public static String HANDLER_MESSAGE_CONTEXT_INVALID_CLASS(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableHANDLER_MESSAGE_CONTEXT_INVALID_CLASS(arg0, arg1));
     }
 
     public static Localizable localizableHANDLER_PREDESTROY_IGNORE(Object arg0) {
-        return messageFactory.getMessage("handler.predestroy.ignore", arg0);
+        return MESSAGE_FACTORY.getMessage("handler.predestroy.ignore", arg0);
     }
 
     /**
@@ -128,7 +102,42 @@
      *
      */
     public static String HANDLER_PREDESTROY_IGNORE(Object arg0) {
-        return localizer.localize(localizableHANDLER_PREDESTROY_IGNORE(arg0));
+        return LOCALIZER.localize(localizableHANDLER_PREDESTROY_IGNORE(arg0));
+    }
+
+    public static Localizable localizableHANDLER_CHAIN_CONTAINS_HANDLER_ONLY(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("handler.chain.contains.handler.only", arg0);
+    }
+
+    /**
+     * A HandlerChain can only contain Handler instances: {0}
+     *
+     */
+    public static String HANDLER_CHAIN_CONTAINS_HANDLER_ONLY(Object arg0) {
+        return LOCALIZER.localize(localizableHANDLER_CHAIN_CONTAINS_HANDLER_ONLY(arg0));
+    }
+
+    public static Localizable localizableCANNOT_INSTANTIATE_HANDLER(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("cannot.instantiate.handler", arg0, arg1);
+    }
+
+    /**
+     * Unable to instantiate handler: {0} because: {1}
+     *
+     */
+    public static String CANNOT_INSTANTIATE_HANDLER(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableCANNOT_INSTANTIATE_HANDLER(arg0, arg1));
+    }
+
+    private static class BundleSupplier
+        implements ResourceBundleSupplier
+    {
+
+
+        public ResourceBundle getResourceBundle(Locale locale) {
+            return ResourceBundle.getBundle(BUNDLE_NAME, locale);
+        }
+
     }
 
 }
diff --git a/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/resources/HttpserverMessages.java b/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/resources/HttpserverMessages.java
index 0a21d3e..24f6efe 100644
--- a/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/resources/HttpserverMessages.java
+++ b/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/resources/HttpserverMessages.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,30 +25,28 @@
 
 package com.sun.xml.internal.ws.resources;
 
-import com.sun.istack.internal.localization.Localizable;
-import com.sun.istack.internal.localization.LocalizableMessageFactory;
-import com.sun.istack.internal.localization.Localizer;
-
 import java.util.Locale;
 import java.util.ResourceBundle;
+import javax.annotation.Generated;
+import com.sun.istack.internal.localization.Localizable;
+import com.sun.istack.internal.localization.LocalizableMessageFactory;
+import com.sun.istack.internal.localization.LocalizableMessageFactory.ResourceBundleSupplier;
+import com.sun.istack.internal.localization.Localizer;
 
 
 /**
  * Defines string formatting method for each constant in the resource file
  *
  */
+@Generated("com.sun.istack.internal.maven.ResourceGenMojo")
 public final class HttpserverMessages {
-    private final static String BUNDLE_NAME = "com.sun.xml.internal.ws.resources.httpserver";
-    private final static LocalizableMessageFactory messageFactory =
-        new LocalizableMessageFactory(BUNDLE_NAME, HttpserverMessages::getResourceBundle);
-    private final static Localizer localizer = new Localizer();
 
-    private static ResourceBundle getResourceBundle(Locale locale) {
-        return ResourceBundle.getBundle(BUNDLE_NAME, locale);
-    }
+    private final static String BUNDLE_NAME = "com.sun.xml.internal.ws.resources.httpserver";
+    private final static LocalizableMessageFactory MESSAGE_FACTORY = new LocalizableMessageFactory(BUNDLE_NAME, new HttpserverMessages.BundleSupplier());
+    private final static Localizer LOCALIZER = new Localizer();
 
     public static Localizable localizableUNEXPECTED_HTTP_METHOD(Object arg0) {
-        return messageFactory.getMessage("unexpected.http.method", arg0);
+        return MESSAGE_FACTORY.getMessage("unexpected.http.method", arg0);
     }
 
     /**
@@ -56,7 +54,18 @@
      *
      */
     public static String UNEXPECTED_HTTP_METHOD(Object arg0) {
-        return localizer.localize(localizableUNEXPECTED_HTTP_METHOD(arg0));
+        return LOCALIZER.localize(localizableUNEXPECTED_HTTP_METHOD(arg0));
+    }
+
+    private static class BundleSupplier
+        implements ResourceBundleSupplier
+    {
+
+
+        public ResourceBundle getResourceBundle(Locale locale) {
+            return ResourceBundle.getBundle(BUNDLE_NAME, locale);
+        }
+
     }
 
 }
diff --git a/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/resources/ManagementMessages.java b/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/resources/ManagementMessages.java
index ee61ddb..e4102c2 100644
--- a/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/resources/ManagementMessages.java
+++ b/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/resources/ManagementMessages.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,30 +25,28 @@
 
 package com.sun.xml.internal.ws.resources;
 
-import com.sun.istack.internal.localization.Localizable;
-import com.sun.istack.internal.localization.LocalizableMessageFactory;
-import com.sun.istack.internal.localization.Localizer;
-
 import java.util.Locale;
 import java.util.ResourceBundle;
+import javax.annotation.Generated;
+import com.sun.istack.internal.localization.Localizable;
+import com.sun.istack.internal.localization.LocalizableMessageFactory;
+import com.sun.istack.internal.localization.LocalizableMessageFactory.ResourceBundleSupplier;
+import com.sun.istack.internal.localization.Localizer;
 
 
 /**
  * Defines string formatting method for each constant in the resource file
  *
  */
+@Generated("com.sun.istack.internal.maven.ResourceGenMojo")
 public final class ManagementMessages {
-    private final static String BUNDLE_NAME = "com.sun.xml.internal.ws.resources.management";
-    private final static LocalizableMessageFactory messageFactory =
-        new LocalizableMessageFactory(BUNDLE_NAME, ManagementMessages::getResourceBundle);
-    private final static Localizer localizer = new Localizer();
 
-    private static ResourceBundle getResourceBundle(Locale locale) {
-        return ResourceBundle.getBundle(BUNDLE_NAME, locale);
-    }
+    private final static String BUNDLE_NAME = "com.sun.xml.internal.ws.resources.management";
+    private final static LocalizableMessageFactory MESSAGE_FACTORY = new LocalizableMessageFactory(BUNDLE_NAME, new ManagementMessages.BundleSupplier());
+    private final static Localizer LOCALIZER = new Localizer();
 
     public static Localizable localizableWSM_1008_EXPECTED_INTEGER_DISPOSE_DELAY_VALUE(Object arg0) {
-        return messageFactory.getMessage("WSM_1008_EXPECTED_INTEGER_DISPOSE_DELAY_VALUE", arg0);
+        return MESSAGE_FACTORY.getMessage("WSM_1008_EXPECTED_INTEGER_DISPOSE_DELAY_VALUE", arg0);
     }
 
     /**
@@ -56,83 +54,11 @@
      *
      */
     public static String WSM_1008_EXPECTED_INTEGER_DISPOSE_DELAY_VALUE(Object arg0) {
-        return localizer.localize(localizableWSM_1008_EXPECTED_INTEGER_DISPOSE_DELAY_VALUE(arg0));
-    }
-
-    public static Localizable localizableWSM_1004_EXPECTED_XML_TAG(Object arg0, Object arg1) {
-        return messageFactory.getMessage("WSM_1004_EXPECTED_XML_TAG", arg0, arg1);
-    }
-
-    /**
-     * WSM1004: Expected tag <{0}> but instead read <{1}>.
-     *
-     */
-    public static String WSM_1004_EXPECTED_XML_TAG(Object arg0, Object arg1) {
-        return localizer.localize(localizableWSM_1004_EXPECTED_XML_TAG(arg0, arg1));
-    }
-
-    public static Localizable localizableWSM_1007_FAILED_MODEL_TRANSLATOR_INSTANTIATION() {
-        return messageFactory.getMessage("WSM_1007_FAILED_MODEL_TRANSLATOR_INSTANTIATION");
-    }
-
-    /**
-     * WSM1007: Failed to create a ModelTranslator instance.
-     *
-     */
-    public static String WSM_1007_FAILED_MODEL_TRANSLATOR_INSTANTIATION() {
-        return localizer.localize(localizableWSM_1007_FAILED_MODEL_TRANSLATOR_INSTANTIATION());
-    }
-
-    public static Localizable localizableWSM_1002_EXPECTED_MANAGEMENT_ASSERTION(Object arg0) {
-        return messageFactory.getMessage("WSM_1002_EXPECTED_MANAGEMENT_ASSERTION", arg0);
-    }
-
-    /**
-     * WSM1002: Expected policy assertion {0} in this namespace.
-     *
-     */
-    public static String WSM_1002_EXPECTED_MANAGEMENT_ASSERTION(Object arg0) {
-        return localizer.localize(localizableWSM_1002_EXPECTED_MANAGEMENT_ASSERTION(arg0));
-    }
-
-    public static Localizable localizableWSM_1006_CLIENT_MANAGEMENT_ENABLED() {
-        return messageFactory.getMessage("WSM_1006_CLIENT_MANAGEMENT_ENABLED");
-    }
-
-    /**
-     * WSM1006: The management property of the ManagedClient policy assertion is set to on. Clients cannot be managed and this setting will be ignored.
-     *
-     */
-    public static String WSM_1006_CLIENT_MANAGEMENT_ENABLED() {
-        return localizer.localize(localizableWSM_1006_CLIENT_MANAGEMENT_ENABLED());
-    }
-
-    public static Localizable localizableWSM_1001_FAILED_ASSERTION(Object arg0) {
-        return messageFactory.getMessage("WSM_1001_FAILED_ASSERTION", arg0);
-    }
-
-    /**
-     * WSM1001: Failed to get policy assertion {0}.
-     *
-     */
-    public static String WSM_1001_FAILED_ASSERTION(Object arg0) {
-        return localizer.localize(localizableWSM_1001_FAILED_ASSERTION(arg0));
-    }
-
-    public static Localizable localizableWSM_1005_EXPECTED_COMMUNICATION_CHILD() {
-        return messageFactory.getMessage("WSM_1005_EXPECTED_COMMUNICATION_CHILD");
-    }
-
-    /**
-     * WSM1005: Expected to find a CommunicationServerImplementation tag as child node of CommunicationServerImplementations.
-     *
-     */
-    public static String WSM_1005_EXPECTED_COMMUNICATION_CHILD() {
-        return localizer.localize(localizableWSM_1005_EXPECTED_COMMUNICATION_CHILD());
+        return LOCALIZER.localize(localizableWSM_1008_EXPECTED_INTEGER_DISPOSE_DELAY_VALUE(arg0));
     }
 
     public static Localizable localizableWSM_1003_MANAGEMENT_ASSERTION_MISSING_ID(Object arg0) {
-        return messageFactory.getMessage("WSM_1003_MANAGEMENT_ASSERTION_MISSING_ID", arg0);
+        return MESSAGE_FACTORY.getMessage("WSM_1003_MANAGEMENT_ASSERTION_MISSING_ID", arg0);
     }
 
     /**
@@ -140,7 +66,90 @@
      *
      */
     public static String WSM_1003_MANAGEMENT_ASSERTION_MISSING_ID(Object arg0) {
-        return localizer.localize(localizableWSM_1003_MANAGEMENT_ASSERTION_MISSING_ID(arg0));
+        return LOCALIZER.localize(localizableWSM_1003_MANAGEMENT_ASSERTION_MISSING_ID(arg0));
+    }
+
+    public static Localizable localizableWSM_1005_EXPECTED_COMMUNICATION_CHILD() {
+        return MESSAGE_FACTORY.getMessage("WSM_1005_EXPECTED_COMMUNICATION_CHILD");
+    }
+
+    /**
+     * WSM1005: Expected to find a CommunicationServerImplementation tag as child node of CommunicationServerImplementations.
+     *
+     */
+    public static String WSM_1005_EXPECTED_COMMUNICATION_CHILD() {
+        return LOCALIZER.localize(localizableWSM_1005_EXPECTED_COMMUNICATION_CHILD());
+    }
+
+    public static Localizable localizableWSM_1006_CLIENT_MANAGEMENT_ENABLED() {
+        return MESSAGE_FACTORY.getMessage("WSM_1006_CLIENT_MANAGEMENT_ENABLED");
+    }
+
+    /**
+     * WSM1006: The management property of the ManagedClient policy assertion is set to on. Clients cannot be managed and this setting will be ignored.
+     *
+     */
+    public static String WSM_1006_CLIENT_MANAGEMENT_ENABLED() {
+        return LOCALIZER.localize(localizableWSM_1006_CLIENT_MANAGEMENT_ENABLED());
+    }
+
+    public static Localizable localizableWSM_1002_EXPECTED_MANAGEMENT_ASSERTION(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("WSM_1002_EXPECTED_MANAGEMENT_ASSERTION", arg0);
+    }
+
+    /**
+     * WSM1002: Expected policy assertion {0} in this namespace.
+     *
+     */
+    public static String WSM_1002_EXPECTED_MANAGEMENT_ASSERTION(Object arg0) {
+        return LOCALIZER.localize(localizableWSM_1002_EXPECTED_MANAGEMENT_ASSERTION(arg0));
+    }
+
+    public static Localizable localizableWSM_1001_FAILED_ASSERTION(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("WSM_1001_FAILED_ASSERTION", arg0);
+    }
+
+    /**
+     * WSM1001: Failed to get policy assertion {0}.
+     *
+     */
+    public static String WSM_1001_FAILED_ASSERTION(Object arg0) {
+        return LOCALIZER.localize(localizableWSM_1001_FAILED_ASSERTION(arg0));
+    }
+
+    public static Localizable localizableWSM_1007_FAILED_MODEL_TRANSLATOR_INSTANTIATION() {
+        return MESSAGE_FACTORY.getMessage("WSM_1007_FAILED_MODEL_TRANSLATOR_INSTANTIATION");
+    }
+
+    /**
+     * WSM1007: Failed to create a ModelTranslator instance.
+     *
+     */
+    public static String WSM_1007_FAILED_MODEL_TRANSLATOR_INSTANTIATION() {
+        return LOCALIZER.localize(localizableWSM_1007_FAILED_MODEL_TRANSLATOR_INSTANTIATION());
+    }
+
+    public static Localizable localizableWSM_1004_EXPECTED_XML_TAG(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("WSM_1004_EXPECTED_XML_TAG", arg0, arg1);
+    }
+
+    /**
+     * WSM1004: Expected tag <{0}> but instead read <{1}>.
+     *
+     */
+    public static String WSM_1004_EXPECTED_XML_TAG(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableWSM_1004_EXPECTED_XML_TAG(arg0, arg1));
+    }
+
+    private static class BundleSupplier
+        implements ResourceBundleSupplier
+    {
+
+
+        public ResourceBundle getResourceBundle(Locale locale) {
+            return ResourceBundle.getBundle(BUNDLE_NAME, locale);
+        }
+
     }
 
 }
diff --git a/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/resources/ModelerMessages.java b/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/resources/ModelerMessages.java
index 30708d3..50b2cbf 100644
--- a/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/resources/ModelerMessages.java
+++ b/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/resources/ModelerMessages.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,330 +25,28 @@
 
 package com.sun.xml.internal.ws.resources;
 
-import com.sun.istack.internal.localization.Localizable;
-import com.sun.istack.internal.localization.LocalizableMessageFactory;
-import com.sun.istack.internal.localization.Localizer;
-
 import java.util.Locale;
 import java.util.ResourceBundle;
+import javax.annotation.Generated;
+import com.sun.istack.internal.localization.Localizable;
+import com.sun.istack.internal.localization.LocalizableMessageFactory;
+import com.sun.istack.internal.localization.LocalizableMessageFactory.ResourceBundleSupplier;
+import com.sun.istack.internal.localization.Localizer;
 
 
 /**
  * Defines string formatting method for each constant in the resource file
  *
  */
+@Generated("com.sun.istack.internal.maven.ResourceGenMojo")
 public final class ModelerMessages {
+
     private final static String BUNDLE_NAME = "com.sun.xml.internal.ws.resources.modeler";
-    private final static LocalizableMessageFactory messageFactory =
-        new LocalizableMessageFactory(BUNDLE_NAME, ModelerMessages::getResourceBundle);
-    private final static Localizer localizer = new Localizer();
-
-    private static ResourceBundle getResourceBundle(Locale locale) {
-        return ResourceBundle.getBundle(BUNDLE_NAME, locale);
-    }
-
-    public static Localizable localizableNESTED_MODELER_ERROR(Object arg0) {
-        return messageFactory.getMessage("nestedModelerError", arg0);
-    }
-
-    /**
-     * runtime modeler error: {0}
-     *
-     */
-    public static String NESTED_MODELER_ERROR(Object arg0) {
-        return localizer.localize(localizableNESTED_MODELER_ERROR(arg0));
-    }
-
-    public static Localizable localizableRUNTIME_MODELER_WSFEATURE_NO_FTRCONSTRUCTOR(Object arg0, Object arg1) {
-        return messageFactory.getMessage("runtime.modeler.wsfeature.no.ftrconstructor", arg0, arg1);
-    }
-
-    /**
-     * Annotation {0} is not recognizable, at least one constructor of {1} should be marked with @FeatureConstructor
-     *
-     */
-    public static String RUNTIME_MODELER_WSFEATURE_NO_FTRCONSTRUCTOR(Object arg0, Object arg1) {
-        return localizer.localize(localizableRUNTIME_MODELER_WSFEATURE_NO_FTRCONSTRUCTOR(arg0, arg1));
-    }
-
-    public static Localizable localizableRUNTIME_MODELER_EXTERNAL_METADATA_UNABLE_TO_READ(Object arg0) {
-        return messageFactory.getMessage("runtime.modeler.external.metadata.unable.to.read", arg0);
-    }
-
-    /**
-     * Unable to read metadata file {0}. Check configuration/deployment.
-     *
-     */
-    public static String RUNTIME_MODELER_EXTERNAL_METADATA_UNABLE_TO_READ(Object arg0) {
-        return localizer.localize(localizableRUNTIME_MODELER_EXTERNAL_METADATA_UNABLE_TO_READ(arg0));
-    }
-
-    public static Localizable localizableRUNTIME_MODELER_WEBMETHOD_MUST_BE_PUBLIC(Object arg0) {
-        return messageFactory.getMessage("runtime.modeler.webmethod.must.be.public", arg0);
-    }
-
-    /**
-     * @WebMethod is not allowed on a non-public method {0}
-     *
-     */
-    public static String RUNTIME_MODELER_WEBMETHOD_MUST_BE_PUBLIC(Object arg0) {
-        return localizer.localize(localizableRUNTIME_MODELER_WEBMETHOD_MUST_BE_PUBLIC(arg0));
-    }
-
-    public static Localizable localizableRUNTIME_MODELER_WRAPPER_NOT_FOUND(Object arg0) {
-        return messageFactory.getMessage("runtime.modeler.wrapper.not.found", arg0);
-    }
-
-    /**
-     * Wrapper class {0} is not found. Have you run annotation processing to generate them?
-     *
-     */
-    public static String RUNTIME_MODELER_WRAPPER_NOT_FOUND(Object arg0) {
-        return localizer.localize(localizableRUNTIME_MODELER_WRAPPER_NOT_FOUND(arg0));
-    }
-
-    public static Localizable localizableRUNTIME_MODELER_MTOM_CONFLICT(Object arg0, Object arg1) {
-        return messageFactory.getMessage("runtime.modeler.mtom.conflict", arg0, arg1);
-    }
-
-    /**
-     * Error in  @BindingType: MTOM Configuration in binding identifier {0} conflicts with feature @MTOM {1}
-     *
-     */
-    public static String RUNTIME_MODELER_MTOM_CONFLICT(Object arg0, Object arg1) {
-        return localizer.localize(localizableRUNTIME_MODELER_MTOM_CONFLICT(arg0, arg1));
-    }
-
-    public static Localizable localizableRUNTIME_MODELER_EXTERNAL_METADATA_GENERIC(Object arg0) {
-        return messageFactory.getMessage("runtime.modeler.external.metadata.generic", arg0);
-    }
-
-    /**
-     * An error occurred while processing external WS metadata; check configuration/deployment. Nested error: {0}.
-     *
-     */
-    public static String RUNTIME_MODELER_EXTERNAL_METADATA_GENERIC(Object arg0) {
-        return localizer.localize(localizableRUNTIME_MODELER_EXTERNAL_METADATA_GENERIC(arg0));
-    }
-
-    public static Localizable localizableRUNTIME_MODELER_FEATURE_CONFLICT(Object arg0, Object arg1) {
-        return messageFactory.getMessage("runtime.modeler.feature.conflict", arg0, arg1);
-    }
-
-    /**
-     * Feature {0} in implementation conflicts with {1} in WSDL configuration
-     *
-     */
-    public static String RUNTIME_MODELER_FEATURE_CONFLICT(Object arg0, Object arg1) {
-        return localizer.localize(localizableRUNTIME_MODELER_FEATURE_CONFLICT(arg0, arg1));
-    }
-
-    public static Localizable localizableRUNTIME_MODELER_INVALID_SOAPBINDING_PARAMETERSTYLE(Object arg0, Object arg1) {
-        return messageFactory.getMessage("runtime.modeler.invalid.soapbinding.parameterstyle", arg0, arg1);
-    }
-
-    /**
-     * Incorrect usage of Annotation {0} on {1}, ParameterStyle can only be WRAPPED with RPC Style Web service.
-     *
-     */
-    public static String RUNTIME_MODELER_INVALID_SOAPBINDING_PARAMETERSTYLE(Object arg0, Object arg1) {
-        return localizer.localize(localizableRUNTIME_MODELER_INVALID_SOAPBINDING_PARAMETERSTYLE(arg0, arg1));
-    }
-
-    public static Localizable localizableRUNTIME_MODELER_WSFEATURE_MORETHANONE_FTRCONSTRUCTOR(Object arg0, Object arg1) {
-        return messageFactory.getMessage("runtime.modeler.wsfeature.morethanone.ftrconstructor", arg0, arg1);
-    }
-
-    /**
-     * Annotation {0} is illegal, Only one constructor of {1} can be marked as @FeatureConstructor
-     *
-     */
-    public static String RUNTIME_MODELER_WSFEATURE_MORETHANONE_FTRCONSTRUCTOR(Object arg0, Object arg1) {
-        return localizer.localize(localizableRUNTIME_MODELER_WSFEATURE_MORETHANONE_FTRCONSTRUCTOR(arg0, arg1));
-    }
-
-    public static Localizable localizableNOT_A_VALID_BARE_METHOD(Object arg0, Object arg1) {
-        return messageFactory.getMessage("not.a.valid.bare.method", arg0, arg1);
-    }
-
-    /**
-     * SEI {0} has method {1} annotated as BARE but it has more than one parameter bound to body. This is invalid. Please annotate the method with annotation: @SOAPBinding(parameterStyle=SOAPBinding.ParameterStyle.WRAPPED)
-     *
-     */
-    public static String NOT_A_VALID_BARE_METHOD(Object arg0, Object arg1) {
-        return localizer.localize(localizableNOT_A_VALID_BARE_METHOD(arg0, arg1));
-    }
-
-    public static Localizable localizableRUNTIME_MODELER_NO_PACKAGE(Object arg0) {
-        return messageFactory.getMessage("runtime.modeler.no.package", arg0);
-    }
-
-    /**
-     * A @WebService.targetNamespace must be specified on classes with no package.  Class: {0}
-     *
-     */
-    public static String RUNTIME_MODELER_NO_PACKAGE(Object arg0) {
-        return localizer.localize(localizableRUNTIME_MODELER_NO_PACKAGE(arg0));
-    }
-
-    public static Localizable localizableRUNTIME_MODELER_NO_WEBSERVICE_ANNOTATION(Object arg0) {
-        return messageFactory.getMessage("runtime.modeler.no.webservice.annotation", arg0);
-    }
-
-    /**
-     * A WebService annotation is not present on class: {0}
-     *
-     */
-    public static String RUNTIME_MODELER_NO_WEBSERVICE_ANNOTATION(Object arg0) {
-        return localizer.localize(localizableRUNTIME_MODELER_NO_WEBSERVICE_ANNOTATION(arg0));
-    }
-
-    public static Localizable localizableRUNTIME_MODELER_ADDRESSING_RESPONSES_NOSUCHMETHOD(Object arg0) {
-        return messageFactory.getMessage("runtime.modeler.addressing.responses.nosuchmethod", arg0);
-    }
-
-    /**
-     * JAX-WS 2.1 API is loaded from {0}, But JAX-WS runtime requires JAX-WS 2.2 API. Use the endorsed standards override mechanism to load JAX-WS 2.2 API
-     *
-     */
-    public static String RUNTIME_MODELER_ADDRESSING_RESPONSES_NOSUCHMETHOD(Object arg0) {
-        return localizer.localize(localizableRUNTIME_MODELER_ADDRESSING_RESPONSES_NOSUCHMETHOD(arg0));
-    }
-
-    public static Localizable localizableRUNTIME_MODELER_EXTERNAL_METADATA_WRONG_FORMAT(Object arg0) {
-        return messageFactory.getMessage("runtime.modeler.external.metadata.wrong.format", arg0);
-    }
-
-    /**
-     * Unable to read metadata from {0}. Is the format correct?
-     *
-     */
-    public static String RUNTIME_MODELER_EXTERNAL_METADATA_WRONG_FORMAT(Object arg0) {
-        return localizer.localize(localizableRUNTIME_MODELER_EXTERNAL_METADATA_WRONG_FORMAT(arg0));
-    }
-
-    public static Localizable localizableRUNTIME_MODELER_ONEWAY_OPERATION_NO_OUT_PARAMETERS(Object arg0, Object arg1) {
-        return messageFactory.getMessage("runtime.modeler.oneway.operation.no.out.parameters", arg0, arg1);
-    }
-
-    /**
-     * oneway operation should not have OUT parameters class: {0} method: {1}
-     *
-     */
-    public static String RUNTIME_MODELER_ONEWAY_OPERATION_NO_OUT_PARAMETERS(Object arg0, Object arg1) {
-        return localizer.localize(localizableRUNTIME_MODELER_ONEWAY_OPERATION_NO_OUT_PARAMETERS(arg0, arg1));
-    }
-
-    public static Localizable localizableUNABLE_TO_CREATE_JAXB_CONTEXT() {
-        return messageFactory.getMessage("unable.to.create.JAXBContext");
-    }
-
-    /**
-     * Unable to create JAXBContext
-     *
-     */
-    public static String UNABLE_TO_CREATE_JAXB_CONTEXT() {
-        return localizer.localize(localizableUNABLE_TO_CREATE_JAXB_CONTEXT());
-    }
-
-    public static Localizable localizableRUNTIME_MODELER_NO_OPERATIONS(Object arg0) {
-        return messageFactory.getMessage("runtime.modeler.no.operations", arg0);
-    }
-
-    /**
-     * The web service defined by the class {0} does not contain any valid WebMethods.
-     *
-     */
-    public static String RUNTIME_MODELER_NO_OPERATIONS(Object arg0) {
-        return localizer.localize(localizableRUNTIME_MODELER_NO_OPERATIONS(arg0));
-    }
-
-    public static Localizable localizableRUNTIME_MODELER_ONEWAY_OPERATION_NO_CHECKED_EXCEPTIONS(Object arg0, Object arg1, Object arg2) {
-        return messageFactory.getMessage("runtime.modeler.oneway.operation.no.checked.exceptions", arg0, arg1, arg2);
-    }
-
-    /**
-     * Oneway operation should not throw any checked exceptions class: {0} method: {1} throws: {2}
-     *
-     */
-    public static String RUNTIME_MODELER_ONEWAY_OPERATION_NO_CHECKED_EXCEPTIONS(Object arg0, Object arg1, Object arg2) {
-        return localizer.localize(localizableRUNTIME_MODELER_ONEWAY_OPERATION_NO_CHECKED_EXCEPTIONS(arg0, arg1, arg2));
-    }
-
-    public static Localizable localizableRUNTIME_MODELER_WEBMETHOD_MUST_BE_NONSTATIC(Object arg0) {
-        return messageFactory.getMessage("runtime.modeler.webmethod.must.be.nonstatic", arg0);
-    }
-
-    /**
-     * @WebMethod is not allowed on a static method {0}
-     *
-     */
-    public static String RUNTIME_MODELER_WEBMETHOD_MUST_BE_NONSTATIC(Object arg0) {
-        return localizer.localize(localizableRUNTIME_MODELER_WEBMETHOD_MUST_BE_NONSTATIC(arg0));
-    }
-
-    public static Localizable localizableRUNTIME_MODELER_METHOD_NOT_FOUND(Object arg0, Object arg1) {
-        return messageFactory.getMessage("runtime.modeler.method.not.found", arg0, arg1);
-    }
-
-    /**
-     * method: {0} could not be found on class: {1}
-     *
-     */
-    public static String RUNTIME_MODELER_METHOD_NOT_FOUND(Object arg0, Object arg1) {
-        return localizer.localize(localizableRUNTIME_MODELER_METHOD_NOT_FOUND(arg0, arg1));
-    }
-
-    public static Localizable localizableRUNTIME_MODELER_CLASS_NOT_FOUND(Object arg0) {
-        return messageFactory.getMessage("runtime.modeler.class.not.found", arg0);
-    }
-
-    /**
-     * class: {0} could not be found
-     *
-     */
-    public static String RUNTIME_MODELER_CLASS_NOT_FOUND(Object arg0) {
-        return localizer.localize(localizableRUNTIME_MODELER_CLASS_NOT_FOUND(arg0));
-    }
-
-    public static Localizable localizableRUNTIME_MODELER_SOAPBINDING_CONFLICT(Object arg0, Object arg1, Object arg2) {
-        return messageFactory.getMessage("runtime.modeler.soapbinding.conflict", arg0, arg1, arg2);
-    }
-
-    /**
-     * SOAPBinding Style {0} for method {1} conflicts with global SOAPBinding Style {2}
-     *
-     */
-    public static String RUNTIME_MODELER_SOAPBINDING_CONFLICT(Object arg0, Object arg1, Object arg2) {
-        return localizer.localize(localizableRUNTIME_MODELER_SOAPBINDING_CONFLICT(arg0, arg1, arg2));
-    }
-
-    public static Localizable localizableRUNTIME_MODELER_CANNOT_GET_SERVICE_NAME_FROM_INTERFACE(Object arg0) {
-        return messageFactory.getMessage("runtime.modeler.cannot.get.serviceName.from.interface", arg0);
-    }
-
-    /**
-     * The serviceName cannot be retrieved from an interface.  class {0}
-     *
-     */
-    public static String RUNTIME_MODELER_CANNOT_GET_SERVICE_NAME_FROM_INTERFACE(Object arg0) {
-        return localizer.localize(localizableRUNTIME_MODELER_CANNOT_GET_SERVICE_NAME_FROM_INTERFACE(arg0));
-    }
-
-    public static Localizable localizableRUNTIME_MODELER_ENDPOINT_INTERFACE_NO_WEBSERVICE(Object arg0) {
-        return messageFactory.getMessage("runtime.modeler.endpoint.interface.no.webservice", arg0);
-    }
-
-    /**
-     * The Endpoint Interface: {0} does not have WebService Annotation
-     *
-     */
-    public static String RUNTIME_MODELER_ENDPOINT_INTERFACE_NO_WEBSERVICE(Object arg0) {
-        return localizer.localize(localizableRUNTIME_MODELER_ENDPOINT_INTERFACE_NO_WEBSERVICE(arg0));
-    }
+    private final static LocalizableMessageFactory MESSAGE_FACTORY = new LocalizableMessageFactory(BUNDLE_NAME, new ModelerMessages.BundleSupplier());
+    private final static Localizer LOCALIZER = new Localizer();
 
     public static Localizable localizableRUNTIME_MODELER_EXTERNAL_METADATA_UNSUPPORTED_SCHEMA(Object arg0, Object arg1) {
-        return messageFactory.getMessage("runtime.modeler.external.metadata.unsupported.schema", arg0, arg1);
+        return MESSAGE_FACTORY.getMessage("runtime.modeler.external.metadata.unsupported.schema", arg0, arg1);
     }
 
     /**
@@ -356,11 +54,59 @@
      *
      */
     public static String RUNTIME_MODELER_EXTERNAL_METADATA_UNSUPPORTED_SCHEMA(Object arg0, Object arg1) {
-        return localizer.localize(localizableRUNTIME_MODELER_EXTERNAL_METADATA_UNSUPPORTED_SCHEMA(arg0, arg1));
+        return LOCALIZER.localize(localizableRUNTIME_MODELER_EXTERNAL_METADATA_UNSUPPORTED_SCHEMA(arg0, arg1));
+    }
+
+    public static Localizable localizableRUNTIME_MODELER_ONEWAY_OPERATION_NO_CHECKED_EXCEPTIONS(Object arg0, Object arg1, Object arg2) {
+        return MESSAGE_FACTORY.getMessage("runtime.modeler.oneway.operation.no.checked.exceptions", arg0, arg1, arg2);
+    }
+
+    /**
+     * Oneway operation should not throw any checked exceptions class: {0} method: {1} throws: {2}
+     *
+     */
+    public static String RUNTIME_MODELER_ONEWAY_OPERATION_NO_CHECKED_EXCEPTIONS(Object arg0, Object arg1, Object arg2) {
+        return LOCALIZER.localize(localizableRUNTIME_MODELER_ONEWAY_OPERATION_NO_CHECKED_EXCEPTIONS(arg0, arg1, arg2));
+    }
+
+    public static Localizable localizableRUNTIME_MODELER_NO_PACKAGE(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("runtime.modeler.no.package", arg0);
+    }
+
+    /**
+     * A @WebService.targetNamespace must be specified on classes with no package.  Class: {0}
+     *
+     */
+    public static String RUNTIME_MODELER_NO_PACKAGE(Object arg0) {
+        return LOCALIZER.localize(localizableRUNTIME_MODELER_NO_PACKAGE(arg0));
+    }
+
+    public static Localizable localizableRUNTIME_MODELER_EXTERNAL_METADATA_UNABLE_TO_READ(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("runtime.modeler.external.metadata.unable.to.read", arg0);
+    }
+
+    /**
+     * Unable to read metadata file {0}. Check configuration/deployment.
+     *
+     */
+    public static String RUNTIME_MODELER_EXTERNAL_METADATA_UNABLE_TO_READ(Object arg0) {
+        return LOCALIZER.localize(localizableRUNTIME_MODELER_EXTERNAL_METADATA_UNABLE_TO_READ(arg0));
+    }
+
+    public static Localizable localizableRUNTIME_MODELER_WEBMETHOD_MUST_BE_NONSTATIC(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("runtime.modeler.webmethod.must.be.nonstatic", arg0);
+    }
+
+    /**
+     * @WebMethod is not allowed on a static method {0}
+     *
+     */
+    public static String RUNTIME_MODELER_WEBMETHOD_MUST_BE_NONSTATIC(Object arg0) {
+        return LOCALIZER.localize(localizableRUNTIME_MODELER_WEBMETHOD_MUST_BE_NONSTATIC(arg0));
     }
 
     public static Localizable localizableRUNTIMEMODELER_INVALID_SOAPBINDING_ON_METHOD(Object arg0, Object arg1, Object arg2) {
-        return messageFactory.getMessage("runtimemodeler.invalid.soapbindingOnMethod", arg0, arg1, arg2);
+        return MESSAGE_FACTORY.getMessage("runtimemodeler.invalid.soapbindingOnMethod", arg0, arg1, arg2);
     }
 
     /**
@@ -368,23 +114,143 @@
      *
      */
     public static String RUNTIMEMODELER_INVALID_SOAPBINDING_ON_METHOD(Object arg0, Object arg1, Object arg2) {
-        return localizer.localize(localizableRUNTIMEMODELER_INVALID_SOAPBINDING_ON_METHOD(arg0, arg1, arg2));
+        return LOCALIZER.localize(localizableRUNTIMEMODELER_INVALID_SOAPBINDING_ON_METHOD(arg0, arg1, arg2));
     }
 
-    public static Localizable localizableRUNTIME_MODELER_PORTNAME_SERVICENAME_NAMESPACE_MISMATCH(Object arg0, Object arg1) {
-        return messageFactory.getMessage("runtime.modeler.portname.servicename.namespace.mismatch", arg0, arg1);
+    public static Localizable localizableRUNTIME_MODELER_EXTERNAL_METADATA_WRONG_FORMAT(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("runtime.modeler.external.metadata.wrong.format", arg0);
     }
 
     /**
-     * The namespace of the serviceName "{0}" and the namespace of the portName "{1}" must match
+     * Unable to read metadata from {0}. Is the format correct?
      *
      */
-    public static String RUNTIME_MODELER_PORTNAME_SERVICENAME_NAMESPACE_MISMATCH(Object arg0, Object arg1) {
-        return localizer.localize(localizableRUNTIME_MODELER_PORTNAME_SERVICENAME_NAMESPACE_MISMATCH(arg0, arg1));
+    public static String RUNTIME_MODELER_EXTERNAL_METADATA_WRONG_FORMAT(Object arg0) {
+        return LOCALIZER.localize(localizableRUNTIME_MODELER_EXTERNAL_METADATA_WRONG_FORMAT(arg0));
+    }
+
+    public static Localizable localizableRUNTIME_MODELER_NO_WEBSERVICE_ANNOTATION(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("runtime.modeler.no.webservice.annotation", arg0);
+    }
+
+    /**
+     * A WebService annotation is not present on class: {0}
+     *
+     */
+    public static String RUNTIME_MODELER_NO_WEBSERVICE_ANNOTATION(Object arg0) {
+        return LOCALIZER.localize(localizableRUNTIME_MODELER_NO_WEBSERVICE_ANNOTATION(arg0));
+    }
+
+    public static Localizable localizableRUNTIME_MODELER_SOAPBINDING_CONFLICT(Object arg0, Object arg1, Object arg2) {
+        return MESSAGE_FACTORY.getMessage("runtime.modeler.soapbinding.conflict", arg0, arg1, arg2);
+    }
+
+    /**
+     * SOAPBinding Style {0} for method {1} conflicts with global SOAPBinding Style {2}
+     *
+     */
+    public static String RUNTIME_MODELER_SOAPBINDING_CONFLICT(Object arg0, Object arg1, Object arg2) {
+        return LOCALIZER.localize(localizableRUNTIME_MODELER_SOAPBINDING_CONFLICT(arg0, arg1, arg2));
+    }
+
+    public static Localizable localizableNESTED_MODELER_ERROR(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("nestedModelerError", arg0);
+    }
+
+    /**
+     * runtime modeler error: {0}
+     *
+     */
+    public static String NESTED_MODELER_ERROR(Object arg0) {
+        return LOCALIZER.localize(localizableNESTED_MODELER_ERROR(arg0));
+    }
+
+    public static Localizable localizableRUNTIME_MODELER_METHOD_NOT_FOUND(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("runtime.modeler.method.not.found", arg0, arg1);
+    }
+
+    /**
+     * method: {0} could not be found on class: {1}
+     *
+     */
+    public static String RUNTIME_MODELER_METHOD_NOT_FOUND(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableRUNTIME_MODELER_METHOD_NOT_FOUND(arg0, arg1));
+    }
+
+    public static Localizable localizableUNABLE_TO_CREATE_JAXB_CONTEXT() {
+        return MESSAGE_FACTORY.getMessage("unable.to.create.JAXBContext");
+    }
+
+    /**
+     * Unable to create JAXBContext
+     *
+     */
+    public static String UNABLE_TO_CREATE_JAXB_CONTEXT() {
+        return LOCALIZER.localize(localizableUNABLE_TO_CREATE_JAXB_CONTEXT());
+    }
+
+    public static Localizable localizableRUNTIME_MODELER_NO_OPERATIONS(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("runtime.modeler.no.operations", arg0);
+    }
+
+    /**
+     * The web service defined by the class {0} does not contain any valid WebMethods.
+     *
+     */
+    public static String RUNTIME_MODELER_NO_OPERATIONS(Object arg0) {
+        return LOCALIZER.localize(localizableRUNTIME_MODELER_NO_OPERATIONS(arg0));
+    }
+
+    public static Localizable localizableRUNTIME_MODELER_WRAPPER_NOT_FOUND(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("runtime.modeler.wrapper.not.found", arg0);
+    }
+
+    /**
+     * Wrapper class {0} is not found. Have you run annotation processing to generate them?
+     *
+     */
+    public static String RUNTIME_MODELER_WRAPPER_NOT_FOUND(Object arg0) {
+        return LOCALIZER.localize(localizableRUNTIME_MODELER_WRAPPER_NOT_FOUND(arg0));
+    }
+
+    public static Localizable localizableRUNTIME_MODELER_INVALID_SOAPBINDING_PARAMETERSTYLE(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("runtime.modeler.invalid.soapbinding.parameterstyle", arg0, arg1);
+    }
+
+    /**
+     * Incorrect usage of Annotation {0} on {1}, ParameterStyle can only be WRAPPED with RPC Style Web service.
+     *
+     */
+    public static String RUNTIME_MODELER_INVALID_SOAPBINDING_PARAMETERSTYLE(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableRUNTIME_MODELER_INVALID_SOAPBINDING_PARAMETERSTYLE(arg0, arg1));
+    }
+
+    public static Localizable localizableRUNTIME_MODELER_EXTERNAL_METADATA_GENERIC(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("runtime.modeler.external.metadata.generic", arg0);
+    }
+
+    /**
+     * An error occurred while processing external WS metadata; check configuration/deployment. Nested error: {0}.
+     *
+     */
+    public static String RUNTIME_MODELER_EXTERNAL_METADATA_GENERIC(Object arg0) {
+        return LOCALIZER.localize(localizableRUNTIME_MODELER_EXTERNAL_METADATA_GENERIC(arg0));
+    }
+
+    public static Localizable localizableRUNTIME_MODELER_ADDRESSING_RESPONSES_NOSUCHMETHOD(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("runtime.modeler.addressing.responses.nosuchmethod", arg0);
+    }
+
+    /**
+     * JAX-WS 2.1 API is loaded from {0}, But JAX-WS runtime requires JAX-WS 2.2 or newer API. Use the standard override mechanism to load JAX-WS 2.2 or newer API.
+     *
+     */
+    public static String RUNTIME_MODELER_ADDRESSING_RESPONSES_NOSUCHMETHOD(Object arg0) {
+        return LOCALIZER.localize(localizableRUNTIME_MODELER_ADDRESSING_RESPONSES_NOSUCHMETHOD(arg0));
     }
 
     public static Localizable localizableRUNTIME_MODELER_WSFEATURE_ILLEGAL_FTRCONSTRUCTOR(Object arg0, Object arg1) {
-        return messageFactory.getMessage("runtime.modeler.wsfeature.illegal.ftrconstructor", arg0, arg1);
+        return MESSAGE_FACTORY.getMessage("runtime.modeler.wsfeature.illegal.ftrconstructor", arg0, arg1);
     }
 
     /**
@@ -392,11 +258,107 @@
      *
      */
     public static String RUNTIME_MODELER_WSFEATURE_ILLEGAL_FTRCONSTRUCTOR(Object arg0, Object arg1) {
-        return localizer.localize(localizableRUNTIME_MODELER_WSFEATURE_ILLEGAL_FTRCONSTRUCTOR(arg0, arg1));
+        return LOCALIZER.localize(localizableRUNTIME_MODELER_WSFEATURE_ILLEGAL_FTRCONSTRUCTOR(arg0, arg1));
+    }
+
+    public static Localizable localizableRUNTIME_MODELER_WEBMETHOD_MUST_BE_PUBLIC(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("runtime.modeler.webmethod.must.be.public", arg0);
+    }
+
+    /**
+     * @WebMethod is not allowed on a non-public method {0}
+     *
+     */
+    public static String RUNTIME_MODELER_WEBMETHOD_MUST_BE_PUBLIC(Object arg0) {
+        return LOCALIZER.localize(localizableRUNTIME_MODELER_WEBMETHOD_MUST_BE_PUBLIC(arg0));
+    }
+
+    public static Localizable localizableRUNTIME_MODELER_ONEWAY_OPERATION_NO_OUT_PARAMETERS(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("runtime.modeler.oneway.operation.no.out.parameters", arg0, arg1);
+    }
+
+    /**
+     * oneway operation should not have OUT parameters class: {0} method: {1}
+     *
+     */
+    public static String RUNTIME_MODELER_ONEWAY_OPERATION_NO_OUT_PARAMETERS(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableRUNTIME_MODELER_ONEWAY_OPERATION_NO_OUT_PARAMETERS(arg0, arg1));
+    }
+
+    public static Localizable localizableRUNTIME_MODELER_ENDPOINT_INTERFACE_NO_WEBSERVICE(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("runtime.modeler.endpoint.interface.no.webservice", arg0);
+    }
+
+    /**
+     * The Endpoint Interface: {0} does not have WebService Annotation
+     *
+     */
+    public static String RUNTIME_MODELER_ENDPOINT_INTERFACE_NO_WEBSERVICE(Object arg0) {
+        return LOCALIZER.localize(localizableRUNTIME_MODELER_ENDPOINT_INTERFACE_NO_WEBSERVICE(arg0));
+    }
+
+    public static Localizable localizableRUNTIME_MODELER_WSFEATURE_NO_FTRCONSTRUCTOR(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("runtime.modeler.wsfeature.no.ftrconstructor", arg0, arg1);
+    }
+
+    /**
+     * Annotation {0} is not recognizable, at least one constructor of {1} should be marked with @FeatureConstructor
+     *
+     */
+    public static String RUNTIME_MODELER_WSFEATURE_NO_FTRCONSTRUCTOR(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableRUNTIME_MODELER_WSFEATURE_NO_FTRCONSTRUCTOR(arg0, arg1));
+    }
+
+    public static Localizable localizableRUNTIME_MODELER_MTOM_CONFLICT(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("runtime.modeler.mtom.conflict", arg0, arg1);
+    }
+
+    /**
+     * Error in  @BindingType: MTOM Configuration in binding identifier {0} conflicts with feature @MTOM {1}
+     *
+     */
+    public static String RUNTIME_MODELER_MTOM_CONFLICT(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableRUNTIME_MODELER_MTOM_CONFLICT(arg0, arg1));
+    }
+
+    public static Localizable localizableRUNTIME_MODELER_CLASS_NOT_FOUND(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("runtime.modeler.class.not.found", arg0);
+    }
+
+    /**
+     * class: {0} could not be found
+     *
+     */
+    public static String RUNTIME_MODELER_CLASS_NOT_FOUND(Object arg0) {
+        return LOCALIZER.localize(localizableRUNTIME_MODELER_CLASS_NOT_FOUND(arg0));
+    }
+
+    public static Localizable localizableRUNTIME_MODELER_WSFEATURE_MORETHANONE_FTRCONSTRUCTOR(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("runtime.modeler.wsfeature.morethanone.ftrconstructor", arg0, arg1);
+    }
+
+    /**
+     * Annotation {0} is illegal, Only one constructor of {1} can be marked as @FeatureConstructor
+     *
+     */
+    public static String RUNTIME_MODELER_WSFEATURE_MORETHANONE_FTRCONSTRUCTOR(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableRUNTIME_MODELER_WSFEATURE_MORETHANONE_FTRCONSTRUCTOR(arg0, arg1));
+    }
+
+    public static Localizable localizableRUNTIME_MODELER_FEATURE_CONFLICT(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("runtime.modeler.feature.conflict", arg0, arg1);
+    }
+
+    /**
+     * Feature {0} in implementation conflicts with {1} in WSDL configuration
+     *
+     */
+    public static String RUNTIME_MODELER_FEATURE_CONFLICT(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableRUNTIME_MODELER_FEATURE_CONFLICT(arg0, arg1));
     }
 
     public static Localizable localizableRUNTIME_MODELER_WEBMETHOD_MUST_BE_NONSTATICFINAL(Object arg0) {
-        return messageFactory.getMessage("runtime.modeler.webmethod.must.be.nonstaticfinal", arg0);
+        return MESSAGE_FACTORY.getMessage("runtime.modeler.webmethod.must.be.nonstaticfinal", arg0);
     }
 
     /**
@@ -404,7 +366,54 @@
      *
      */
     public static String RUNTIME_MODELER_WEBMETHOD_MUST_BE_NONSTATICFINAL(Object arg0) {
-        return localizer.localize(localizableRUNTIME_MODELER_WEBMETHOD_MUST_BE_NONSTATICFINAL(arg0));
+        return LOCALIZER.localize(localizableRUNTIME_MODELER_WEBMETHOD_MUST_BE_NONSTATICFINAL(arg0));
+    }
+
+    public static Localizable localizableRUNTIME_MODELER_CANNOT_GET_SERVICE_NAME_FROM_INTERFACE(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("runtime.modeler.cannot.get.serviceName.from.interface", arg0);
+    }
+
+    /**
+     * The serviceName cannot be retrieved from an interface.  class {0}
+     *
+     */
+    public static String RUNTIME_MODELER_CANNOT_GET_SERVICE_NAME_FROM_INTERFACE(Object arg0) {
+        return LOCALIZER.localize(localizableRUNTIME_MODELER_CANNOT_GET_SERVICE_NAME_FROM_INTERFACE(arg0));
+    }
+
+    public static Localizable localizableNOT_A_VALID_BARE_METHOD(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("not.a.valid.bare.method", arg0, arg1);
+    }
+
+    /**
+     * SEI {0} has method {1} annotated as BARE but it has more than one parameter bound to body. This is invalid. Please annotate the method with annotation: @SOAPBinding(parameterStyle=SOAPBinding.ParameterStyle.WRAPPED)
+     *
+     */
+    public static String NOT_A_VALID_BARE_METHOD(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableNOT_A_VALID_BARE_METHOD(arg0, arg1));
+    }
+
+    public static Localizable localizableRUNTIME_MODELER_PORTNAME_SERVICENAME_NAMESPACE_MISMATCH(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("runtime.modeler.portname.servicename.namespace.mismatch", arg0, arg1);
+    }
+
+    /**
+     * The namespace of the serviceName "{0}" and the namespace of the portName "{1}" must match
+     *
+     */
+    public static String RUNTIME_MODELER_PORTNAME_SERVICENAME_NAMESPACE_MISMATCH(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableRUNTIME_MODELER_PORTNAME_SERVICENAME_NAMESPACE_MISMATCH(arg0, arg1));
+    }
+
+    private static class BundleSupplier
+        implements ResourceBundleSupplier
+    {
+
+
+        public ResourceBundle getResourceBundle(Locale locale) {
+            return ResourceBundle.getBundle(BUNDLE_NAME, locale);
+        }
+
     }
 
 }
diff --git a/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/resources/PolicyMessages.java b/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/resources/PolicyMessages.java
index bde32f2..30e3fac 100644
--- a/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/resources/PolicyMessages.java
+++ b/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/resources/PolicyMessages.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,138 +25,28 @@
 
 package com.sun.xml.internal.ws.resources;
 
-import com.sun.istack.internal.localization.Localizable;
-import com.sun.istack.internal.localization.LocalizableMessageFactory;
-import com.sun.istack.internal.localization.Localizer;
-
 import java.util.Locale;
 import java.util.ResourceBundle;
+import javax.annotation.Generated;
+import com.sun.istack.internal.localization.Localizable;
+import com.sun.istack.internal.localization.LocalizableMessageFactory;
+import com.sun.istack.internal.localization.LocalizableMessageFactory.ResourceBundleSupplier;
+import com.sun.istack.internal.localization.Localizer;
 
 
 /**
  * Defines string formatting method for each constant in the resource file
  *
  */
+@Generated("com.sun.istack.internal.maven.ResourceGenMojo")
 public final class PolicyMessages {
+
     private final static String BUNDLE_NAME = "com.sun.xml.internal.ws.resources.policy";
-    private final static LocalizableMessageFactory messageFactory =
-        new LocalizableMessageFactory(BUNDLE_NAME, PolicyMessages::getResourceBundle);
-    private final static Localizer localizer = new Localizer();
-
-    private static ResourceBundle getResourceBundle(Locale locale) {
-        return ResourceBundle.getBundle(BUNDLE_NAME, locale);
-    }
-
-    public static Localizable localizableWSP_1007_POLICY_EXCEPTION_WHILE_FINISHING_PARSING_WSDL() {
-        return messageFactory.getMessage("WSP_1007_POLICY_EXCEPTION_WHILE_FINISHING_PARSING_WSDL");
-    }
-
-    /**
-     * WSP1007: Policy exception occurred when finishing WSDL parsing.
-     *
-     */
-    public static String WSP_1007_POLICY_EXCEPTION_WHILE_FINISHING_PARSING_WSDL() {
-        return localizer.localize(localizableWSP_1007_POLICY_EXCEPTION_WHILE_FINISHING_PARSING_WSDL());
-    }
-
-    public static Localizable localizableWSP_1002_UNABLE_TO_MARSHALL_POLICY_OR_POLICY_REFERENCE() {
-        return messageFactory.getMessage("WSP_1002_UNABLE_TO_MARSHALL_POLICY_OR_POLICY_REFERENCE");
-    }
-
-    /**
-     * WSP1002: Unable to marshall policy or it's reference. See original exception for more details.
-     *
-     */
-    public static String WSP_1002_UNABLE_TO_MARSHALL_POLICY_OR_POLICY_REFERENCE() {
-        return localizer.localize(localizableWSP_1002_UNABLE_TO_MARSHALL_POLICY_OR_POLICY_REFERENCE());
-    }
-
-    public static Localizable localizableWSP_1015_SERVER_SIDE_ASSERTION_VALIDATION_FAILED(Object arg0, Object arg1) {
-        return messageFactory.getMessage("WSP_1015_SERVER_SIDE_ASSERTION_VALIDATION_FAILED", arg0, arg1);
-    }
-
-    /**
-     * WSP1015: Server side assertion validation failed for "{0}" assertion. Assertion was evaluated as "{1}".
-     *
-     */
-    public static String WSP_1015_SERVER_SIDE_ASSERTION_VALIDATION_FAILED(Object arg0, Object arg1) {
-        return localizer.localize(localizableWSP_1015_SERVER_SIDE_ASSERTION_VALIDATION_FAILED(arg0, arg1));
-    }
-
-    public static Localizable localizableWSP_1017_MAP_UPDATE_FAILED() {
-        return messageFactory.getMessage("WSP_1017_MAP_UPDATE_FAILED");
-    }
-
-    /**
-     * WSP1048: Policy map setup failed - exception occurred while trying to modify policy map content.
-     *
-     */
-    public static String WSP_1017_MAP_UPDATE_FAILED() {
-        return localizer.localize(localizableWSP_1017_MAP_UPDATE_FAILED());
-    }
-
-    public static Localizable localizableWSP_1010_NO_POLICIES_DEFINED() {
-        return messageFactory.getMessage("WSP_1010_NO_POLICIES_DEFINED");
-    }
-
-    /**
-     * WSP1010: No policies defined.
-     *
-     */
-    public static String WSP_1010_NO_POLICIES_DEFINED() {
-        return localizer.localize(localizableWSP_1010_NO_POLICIES_DEFINED());
-    }
-
-    public static Localizable localizableWSP_1008_NOT_MARSHALLING_WSDL_SUBJ_NULL(Object arg0) {
-        return messageFactory.getMessage("WSP_1008_NOT_MARSHALLING_WSDL_SUBJ_NULL", arg0);
-    }
-
-    /**
-     * WSP1008: Not marshalling policy, wsdl subject is null for "{0}".
-     *
-     */
-    public static String WSP_1008_NOT_MARSHALLING_WSDL_SUBJ_NULL(Object arg0) {
-        return localizer.localize(localizableWSP_1008_NOT_MARSHALLING_WSDL_SUBJ_NULL(arg0));
-    }
-
-    public static Localizable localizableWSP_1009_NOT_MARSHALLING_ANY_POLICIES_POLICY_MAP_IS_NULL() {
-        return messageFactory.getMessage("WSP_1009_NOT_MARSHALLING_ANY_POLICIES_POLICY_MAP_IS_NULL");
-    }
-
-    /**
-     * WSP1009: Policy map was null, not marshalling any policies.
-     *
-     */
-    public static String WSP_1009_NOT_MARSHALLING_ANY_POLICIES_POLICY_MAP_IS_NULL() {
-        return localizer.localize(localizableWSP_1009_NOT_MARSHALLING_ANY_POLICIES_POLICY_MAP_IS_NULL());
-    }
-
-    public static Localizable localizableWSP_1020_DUPLICATE_ID(Object arg0) {
-        return messageFactory.getMessage("WSP_1020_DUPLICATE_ID", arg0);
-    }
-
-    /**
-     * WSP1020: Found two policies in one document with the same id: "{0}".
-     *
-     */
-    public static String WSP_1020_DUPLICATE_ID(Object arg0) {
-        return localizer.localize(localizableWSP_1020_DUPLICATE_ID(arg0));
-    }
-
-    public static Localizable localizableWSP_1003_UNABLE_TO_CHECK_ELEMENT_NAME(Object arg0, Object arg1) {
-        return messageFactory.getMessage("WSP_1003_UNABLE_TO_CHECK_ELEMENT_NAME", arg0, arg1);
-    }
-
-    /**
-     * WSP1003: Unable to check element name for class "{0}" and WSDL name "{1}".
-     *
-     */
-    public static String WSP_1003_UNABLE_TO_CHECK_ELEMENT_NAME(Object arg0, Object arg1) {
-        return localizer.localize(localizableWSP_1003_UNABLE_TO_CHECK_ELEMENT_NAME(arg0, arg1));
-    }
+    private final static LocalizableMessageFactory MESSAGE_FACTORY = new LocalizableMessageFactory(BUNDLE_NAME, new PolicyMessages.BundleSupplier());
+    private final static Localizer LOCALIZER = new Localizer();
 
     public static Localizable localizableWSP_1013_EXCEPTION_WHEN_READING_POLICY_ELEMENT(Object arg0) {
-        return messageFactory.getMessage("WSP_1013_EXCEPTION_WHEN_READING_POLICY_ELEMENT", arg0);
+        return MESSAGE_FACTORY.getMessage("WSP_1013_EXCEPTION_WHEN_READING_POLICY_ELEMENT", arg0);
     }
 
     /**
@@ -164,119 +54,11 @@
      *
      */
     public static String WSP_1013_EXCEPTION_WHEN_READING_POLICY_ELEMENT(Object arg0) {
-        return localizer.localize(localizableWSP_1013_EXCEPTION_WHEN_READING_POLICY_ELEMENT(arg0));
-    }
-
-    public static Localizable localizableWSP_1006_POLICY_MAP_EXTENDER_CAN_NOT_BE_NULL() {
-        return messageFactory.getMessage("WSP_1006_POLICY_MAP_EXTENDER_CAN_NOT_BE_NULL");
-    }
-
-    /**
-     * WSP1006: Policy map extender can not be null.
-     *
-     */
-    public static String WSP_1006_POLICY_MAP_EXTENDER_CAN_NOT_BE_NULL() {
-        return localizer.localize(localizableWSP_1006_POLICY_MAP_EXTENDER_CAN_NOT_BE_NULL());
-    }
-
-    public static Localizable localizableWSP_1018_FAILED_TO_MARSHALL_POLICY(Object arg0) {
-        return messageFactory.getMessage("WSP_1018_FAILED_TO_MARSHALL_POLICY", arg0);
-    }
-
-    /**
-     * WSP1018: Failed to marshal policy "{0}".
-     *
-     */
-    public static String WSP_1018_FAILED_TO_MARSHALL_POLICY(Object arg0) {
-        return localizer.localize(localizableWSP_1018_FAILED_TO_MARSHALL_POLICY(arg0));
-    }
-
-    public static Localizable localizableWSP_1005_POLICY_REFERENCE_DOES_NOT_EXIST(Object arg0) {
-        return messageFactory.getMessage("WSP_1005_POLICY_REFERENCE_DOES_NOT_EXIST", arg0);
-    }
-
-    /**
-     * WSP1005: Failed to find policy referenced by URI "{0}".
-     *
-     */
-    public static String WSP_1005_POLICY_REFERENCE_DOES_NOT_EXIST(Object arg0) {
-        return localizer.localize(localizableWSP_1005_POLICY_REFERENCE_DOES_NOT_EXIST(arg0));
-    }
-
-    public static Localizable localizableWSP_1016_POLICY_ID_NULL_OR_DUPLICATE(Object arg0) {
-        return messageFactory.getMessage("WSP_1016_POLICY_ID_NULL_OR_DUPLICATE", arg0);
-    }
-
-    /**
-     * WSP1016: The policy is not added because it has no ID or a policy with the same ID was already added: {0}.
-     *
-     */
-    public static String WSP_1016_POLICY_ID_NULL_OR_DUPLICATE(Object arg0) {
-        return localizer.localize(localizableWSP_1016_POLICY_ID_NULL_OR_DUPLICATE(arg0));
-    }
-
-    public static Localizable localizableWSP_1014_CAN_NOT_FIND_POLICY(Object arg0) {
-        return messageFactory.getMessage("WSP_1014_CAN_NOT_FIND_POLICY", arg0);
-    }
-
-    /**
-     * WSP1014: Can not find policy "{0}" that is referenced in from the WSDL. Please, check your policy references in the WSDL.
-     *
-     */
-    public static String WSP_1014_CAN_NOT_FIND_POLICY(Object arg0) {
-        return localizer.localize(localizableWSP_1014_CAN_NOT_FIND_POLICY(arg0));
-    }
-
-    public static Localizable localizableWSP_1012_FAILED_CONFIGURE_WSDL_MODEL() {
-        return messageFactory.getMessage("WSP_1012_FAILED_CONFIGURE_WSDL_MODEL");
-    }
-
-    /**
-     * WSP1012: Failed to configure wsdl model.
-     *
-     */
-    public static String WSP_1012_FAILED_CONFIGURE_WSDL_MODEL() {
-        return localizer.localize(localizableWSP_1012_FAILED_CONFIGURE_WSDL_MODEL());
-    }
-
-    public static Localizable localizableWSP_1021_FAULT_NOT_BOUND(Object arg0) {
-        return messageFactory.getMessage("WSP_1021_FAULT_NOT_BOUND", arg0);
-    }
-
-    /**
-     * WSP1021: Fault "{0}" not bound. Check names in port and binding definitions.
-     *
-     */
-    public static String WSP_1021_FAULT_NOT_BOUND(Object arg0) {
-        return localizer.localize(localizableWSP_1021_FAULT_NOT_BOUND(arg0));
-    }
-
-    public static Localizable localizableWSP_1011_FAILED_TO_RETRIEVE_EFFECTIVE_POLICY_FOR_SUBJECT(Object arg0) {
-        return messageFactory.getMessage("WSP_1011_FAILED_TO_RETRIEVE_EFFECTIVE_POLICY_FOR_SUBJECT", arg0);
-    }
-
-    /**
-     * WSP1011: Failed to retrieve effective policy for subject: {0}.
-     *
-     */
-    public static String WSP_1011_FAILED_TO_RETRIEVE_EFFECTIVE_POLICY_FOR_SUBJECT(Object arg0) {
-        return localizer.localize(localizableWSP_1011_FAILED_TO_RETRIEVE_EFFECTIVE_POLICY_FOR_SUBJECT(arg0));
-    }
-
-    public static Localizable localizableWSP_1019_CREATE_EMPTY_POLICY_MAP() {
-        return messageFactory.getMessage("WSP_1019_CREATE_EMPTY_POLICY_MAP");
-    }
-
-    /**
-     * WSP1019: Failed to find any configuration file. Creating new empty policy map.
-     *
-     */
-    public static String WSP_1019_CREATE_EMPTY_POLICY_MAP() {
-        return localizer.localize(localizableWSP_1019_CREATE_EMPTY_POLICY_MAP());
+        return LOCALIZER.localize(localizableWSP_1013_EXCEPTION_WHEN_READING_POLICY_ELEMENT(arg0));
     }
 
     public static Localizable localizableWSP_1001_XML_EXCEPTION_WHEN_PROCESSING_POLICY_REFERENCE() {
-        return messageFactory.getMessage("WSP_1001_XML_EXCEPTION_WHEN_PROCESSING_POLICY_REFERENCE");
+        return MESSAGE_FACTORY.getMessage("WSP_1001_XML_EXCEPTION_WHEN_PROCESSING_POLICY_REFERENCE");
     }
 
     /**
@@ -284,11 +66,155 @@
      *
      */
     public static String WSP_1001_XML_EXCEPTION_WHEN_PROCESSING_POLICY_REFERENCE() {
-        return localizer.localize(localizableWSP_1001_XML_EXCEPTION_WHEN_PROCESSING_POLICY_REFERENCE());
+        return LOCALIZER.localize(localizableWSP_1001_XML_EXCEPTION_WHEN_PROCESSING_POLICY_REFERENCE());
+    }
+
+    public static Localizable localizableWSP_1014_CAN_NOT_FIND_POLICY(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("WSP_1014_CAN_NOT_FIND_POLICY", arg0);
+    }
+
+    /**
+     * WSP1014: Can not find policy "{0}" that is referenced in from the WSDL. Please, check your policy references in the WSDL.
+     *
+     */
+    public static String WSP_1014_CAN_NOT_FIND_POLICY(Object arg0) {
+        return LOCALIZER.localize(localizableWSP_1014_CAN_NOT_FIND_POLICY(arg0));
+    }
+
+    public static Localizable localizableWSP_1009_NOT_MARSHALLING_ANY_POLICIES_POLICY_MAP_IS_NULL() {
+        return MESSAGE_FACTORY.getMessage("WSP_1009_NOT_MARSHALLING_ANY_POLICIES_POLICY_MAP_IS_NULL");
+    }
+
+    /**
+     * WSP1009: Policy map was null, not marshalling any policies.
+     *
+     */
+    public static String WSP_1009_NOT_MARSHALLING_ANY_POLICIES_POLICY_MAP_IS_NULL() {
+        return LOCALIZER.localize(localizableWSP_1009_NOT_MARSHALLING_ANY_POLICIES_POLICY_MAP_IS_NULL());
+    }
+
+    public static Localizable localizableWSP_1011_FAILED_TO_RETRIEVE_EFFECTIVE_POLICY_FOR_SUBJECT(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("WSP_1011_FAILED_TO_RETRIEVE_EFFECTIVE_POLICY_FOR_SUBJECT", arg0);
+    }
+
+    /**
+     * WSP1011: Failed to retrieve effective policy for subject: {0}.
+     *
+     */
+    public static String WSP_1011_FAILED_TO_RETRIEVE_EFFECTIVE_POLICY_FOR_SUBJECT(Object arg0) {
+        return LOCALIZER.localize(localizableWSP_1011_FAILED_TO_RETRIEVE_EFFECTIVE_POLICY_FOR_SUBJECT(arg0));
+    }
+
+    public static Localizable localizableWSP_1016_POLICY_ID_NULL_OR_DUPLICATE(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("WSP_1016_POLICY_ID_NULL_OR_DUPLICATE", arg0);
+    }
+
+    /**
+     * WSP1016: The policy is not added because it has no ID or a policy with the same ID was already added: {0}.
+     *
+     */
+    public static String WSP_1016_POLICY_ID_NULL_OR_DUPLICATE(Object arg0) {
+        return LOCALIZER.localize(localizableWSP_1016_POLICY_ID_NULL_OR_DUPLICATE(arg0));
+    }
+
+    public static Localizable localizableWSP_1021_FAULT_NOT_BOUND(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("WSP_1021_FAULT_NOT_BOUND", arg0);
+    }
+
+    /**
+     * WSP1021: Fault "{0}" not bound. Check names in port and binding definitions.
+     *
+     */
+    public static String WSP_1021_FAULT_NOT_BOUND(Object arg0) {
+        return LOCALIZER.localize(localizableWSP_1021_FAULT_NOT_BOUND(arg0));
+    }
+
+    public static Localizable localizableWSP_1003_UNABLE_TO_CHECK_ELEMENT_NAME(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("WSP_1003_UNABLE_TO_CHECK_ELEMENT_NAME", arg0, arg1);
+    }
+
+    /**
+     * WSP1003: Unable to check element name for class "{0}" and WSDL name "{1}".
+     *
+     */
+    public static String WSP_1003_UNABLE_TO_CHECK_ELEMENT_NAME(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableWSP_1003_UNABLE_TO_CHECK_ELEMENT_NAME(arg0, arg1));
+    }
+
+    public static Localizable localizableWSP_1019_CREATE_EMPTY_POLICY_MAP() {
+        return MESSAGE_FACTORY.getMessage("WSP_1019_CREATE_EMPTY_POLICY_MAP");
+    }
+
+    /**
+     * WSP1019: Failed to find any configuration file. Creating new empty policy map.
+     *
+     */
+    public static String WSP_1019_CREATE_EMPTY_POLICY_MAP() {
+        return LOCALIZER.localize(localizableWSP_1019_CREATE_EMPTY_POLICY_MAP());
+    }
+
+    public static Localizable localizableWSP_1020_DUPLICATE_ID(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("WSP_1020_DUPLICATE_ID", arg0);
+    }
+
+    /**
+     * WSP1020: Found two policies in one document with the same id: "{0}".
+     *
+     */
+    public static String WSP_1020_DUPLICATE_ID(Object arg0) {
+        return LOCALIZER.localize(localizableWSP_1020_DUPLICATE_ID(arg0));
+    }
+
+    public static Localizable localizableWSP_1002_UNABLE_TO_MARSHALL_POLICY_OR_POLICY_REFERENCE() {
+        return MESSAGE_FACTORY.getMessage("WSP_1002_UNABLE_TO_MARSHALL_POLICY_OR_POLICY_REFERENCE");
+    }
+
+    /**
+     * WSP1002: Unable to marshall policy or it's reference. See original exception for more details.
+     *
+     */
+    public static String WSP_1002_UNABLE_TO_MARSHALL_POLICY_OR_POLICY_REFERENCE() {
+        return LOCALIZER.localize(localizableWSP_1002_UNABLE_TO_MARSHALL_POLICY_OR_POLICY_REFERENCE());
+    }
+
+    public static Localizable localizableWSP_1008_NOT_MARSHALLING_WSDL_SUBJ_NULL(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("WSP_1008_NOT_MARSHALLING_WSDL_SUBJ_NULL", arg0);
+    }
+
+    /**
+     * WSP1008: Not marshalling policy, wsdl subject is null for "{0}".
+     *
+     */
+    public static String WSP_1008_NOT_MARSHALLING_WSDL_SUBJ_NULL(Object arg0) {
+        return LOCALIZER.localize(localizableWSP_1008_NOT_MARSHALLING_WSDL_SUBJ_NULL(arg0));
+    }
+
+    public static Localizable localizableWSP_1017_MAP_UPDATE_FAILED() {
+        return MESSAGE_FACTORY.getMessage("WSP_1017_MAP_UPDATE_FAILED");
+    }
+
+    /**
+     * WSP1048: Policy map setup failed - exception occurred while trying to modify policy map content.
+     *
+     */
+    public static String WSP_1017_MAP_UPDATE_FAILED() {
+        return LOCALIZER.localize(localizableWSP_1017_MAP_UPDATE_FAILED());
+    }
+
+    public static Localizable localizableWSP_1018_FAILED_TO_MARSHALL_POLICY(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("WSP_1018_FAILED_TO_MARSHALL_POLICY", arg0);
+    }
+
+    /**
+     * WSP1018: Failed to marshal policy "{0}".
+     *
+     */
+    public static String WSP_1018_FAILED_TO_MARSHALL_POLICY(Object arg0) {
+        return LOCALIZER.localize(localizableWSP_1018_FAILED_TO_MARSHALL_POLICY(arg0));
     }
 
     public static Localizable localizableWSP_1004_POLICY_URIS_CAN_NOT_BE_NULL() {
-        return messageFactory.getMessage("WSP_1004_POLICY_URIS_CAN_NOT_BE_NULL");
+        return MESSAGE_FACTORY.getMessage("WSP_1004_POLICY_URIS_CAN_NOT_BE_NULL");
     }
 
     /**
@@ -296,7 +222,90 @@
      *
      */
     public static String WSP_1004_POLICY_URIS_CAN_NOT_BE_NULL() {
-        return localizer.localize(localizableWSP_1004_POLICY_URIS_CAN_NOT_BE_NULL());
+        return LOCALIZER.localize(localizableWSP_1004_POLICY_URIS_CAN_NOT_BE_NULL());
+    }
+
+    public static Localizable localizableWSP_1010_NO_POLICIES_DEFINED() {
+        return MESSAGE_FACTORY.getMessage("WSP_1010_NO_POLICIES_DEFINED");
+    }
+
+    /**
+     * WSP1010: No policies defined.
+     *
+     */
+    public static String WSP_1010_NO_POLICIES_DEFINED() {
+        return LOCALIZER.localize(localizableWSP_1010_NO_POLICIES_DEFINED());
+    }
+
+    public static Localizable localizableWSP_1012_FAILED_CONFIGURE_WSDL_MODEL() {
+        return MESSAGE_FACTORY.getMessage("WSP_1012_FAILED_CONFIGURE_WSDL_MODEL");
+    }
+
+    /**
+     * WSP1012: Failed to configure wsdl model.
+     *
+     */
+    public static String WSP_1012_FAILED_CONFIGURE_WSDL_MODEL() {
+        return LOCALIZER.localize(localizableWSP_1012_FAILED_CONFIGURE_WSDL_MODEL());
+    }
+
+    public static Localizable localizableWSP_1015_SERVER_SIDE_ASSERTION_VALIDATION_FAILED(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("WSP_1015_SERVER_SIDE_ASSERTION_VALIDATION_FAILED", arg0, arg1);
+    }
+
+    /**
+     * WSP1015: Server side assertion validation failed for "{0}" assertion. Assertion was evaluated as "{1}".
+     *
+     */
+    public static String WSP_1015_SERVER_SIDE_ASSERTION_VALIDATION_FAILED(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableWSP_1015_SERVER_SIDE_ASSERTION_VALIDATION_FAILED(arg0, arg1));
+    }
+
+    public static Localizable localizableWSP_1005_POLICY_REFERENCE_DOES_NOT_EXIST(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("WSP_1005_POLICY_REFERENCE_DOES_NOT_EXIST", arg0);
+    }
+
+    /**
+     * WSP1005: Failed to find policy referenced by URI "{0}".
+     *
+     */
+    public static String WSP_1005_POLICY_REFERENCE_DOES_NOT_EXIST(Object arg0) {
+        return LOCALIZER.localize(localizableWSP_1005_POLICY_REFERENCE_DOES_NOT_EXIST(arg0));
+    }
+
+    public static Localizable localizableWSP_1006_POLICY_MAP_EXTENDER_CAN_NOT_BE_NULL() {
+        return MESSAGE_FACTORY.getMessage("WSP_1006_POLICY_MAP_EXTENDER_CAN_NOT_BE_NULL");
+    }
+
+    /**
+     * WSP1006: Policy map extender can not be null.
+     *
+     */
+    public static String WSP_1006_POLICY_MAP_EXTENDER_CAN_NOT_BE_NULL() {
+        return LOCALIZER.localize(localizableWSP_1006_POLICY_MAP_EXTENDER_CAN_NOT_BE_NULL());
+    }
+
+    public static Localizable localizableWSP_1007_POLICY_EXCEPTION_WHILE_FINISHING_PARSING_WSDL() {
+        return MESSAGE_FACTORY.getMessage("WSP_1007_POLICY_EXCEPTION_WHILE_FINISHING_PARSING_WSDL");
+    }
+
+    /**
+     * WSP1007: Policy exception occurred when finishing WSDL parsing.
+     *
+     */
+    public static String WSP_1007_POLICY_EXCEPTION_WHILE_FINISHING_PARSING_WSDL() {
+        return LOCALIZER.localize(localizableWSP_1007_POLICY_EXCEPTION_WHILE_FINISHING_PARSING_WSDL());
+    }
+
+    private static class BundleSupplier
+        implements ResourceBundleSupplier
+    {
+
+
+        public ResourceBundle getResourceBundle(Locale locale) {
+            return ResourceBundle.getBundle(BUNDLE_NAME, locale);
+        }
+
     }
 
 }
diff --git a/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/resources/ProviderApiMessages.java b/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/resources/ProviderApiMessages.java
index 347dc7f..d20d7e2 100644
--- a/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/resources/ProviderApiMessages.java
+++ b/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/resources/ProviderApiMessages.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,54 +25,28 @@
 
 package com.sun.xml.internal.ws.resources;
 
-import com.sun.istack.internal.localization.Localizable;
-import com.sun.istack.internal.localization.LocalizableMessageFactory;
-import com.sun.istack.internal.localization.Localizer;
-
 import java.util.Locale;
 import java.util.ResourceBundle;
+import javax.annotation.Generated;
+import com.sun.istack.internal.localization.Localizable;
+import com.sun.istack.internal.localization.LocalizableMessageFactory;
+import com.sun.istack.internal.localization.LocalizableMessageFactory.ResourceBundleSupplier;
+import com.sun.istack.internal.localization.Localizer;
 
 
 /**
  * Defines string formatting method for each constant in the resource file
  *
  */
+@Generated("com.sun.istack.internal.maven.ResourceGenMojo")
 public final class ProviderApiMessages {
+
     private final static String BUNDLE_NAME = "com.sun.xml.internal.ws.resources.providerApi";
-    private final static LocalizableMessageFactory messageFactory =
-        new LocalizableMessageFactory(BUNDLE_NAME, ProviderApiMessages::getResourceBundle);
-    private final static Localizer localizer = new Localizer();
-
-    private static ResourceBundle getResourceBundle(Locale locale) {
-        return ResourceBundle.getBundle(BUNDLE_NAME, locale);
-    }
-
-    public static Localizable localizableNULL_ADDRESS_SERVICE_ENDPOINT() {
-        return messageFactory.getMessage("null.address.service.endpoint");
-    }
-
-    /**
-     * Address in an EPR cannot be null, when serviceName or portName is null
-     *
-     */
-    public static String NULL_ADDRESS_SERVICE_ENDPOINT() {
-        return localizer.localize(localizableNULL_ADDRESS_SERVICE_ENDPOINT());
-    }
-
-    public static Localizable localizableNO_WSDL_NO_PORT(Object arg0) {
-        return messageFactory.getMessage("no.wsdl.no.port", arg0);
-    }
-
-    /**
-     * WSDL Metadata not available to create the proxy, either Service instance or ServiceEndpointInterface {0} should have WSDL information
-     *
-     */
-    public static String NO_WSDL_NO_PORT(Object arg0) {
-        return localizer.localize(localizableNO_WSDL_NO_PORT(arg0));
-    }
+    private final static LocalizableMessageFactory MESSAGE_FACTORY = new LocalizableMessageFactory(BUNDLE_NAME, new ProviderApiMessages.BundleSupplier());
+    private final static Localizer LOCALIZER = new Localizer();
 
     public static Localizable localizableNULL_SERVICE() {
-        return messageFactory.getMessage("null.service");
+        return MESSAGE_FACTORY.getMessage("null.service");
     }
 
     /**
@@ -80,23 +54,23 @@
      *
      */
     public static String NULL_SERVICE() {
-        return localizer.localize(localizableNULL_SERVICE());
+        return LOCALIZER.localize(localizableNULL_SERVICE());
     }
 
-    public static Localizable localizableNULL_ADDRESS() {
-        return messageFactory.getMessage("null.address");
+    public static Localizable localizableNULL_ADDRESS_SERVICE_ENDPOINT() {
+        return MESSAGE_FACTORY.getMessage("null.address.service.endpoint");
     }
 
     /**
-     * Address in an EPR cannot be null
+     * Address in an EPR cannot be null, when serviceName or portName is null
      *
      */
-    public static String NULL_ADDRESS() {
-        return localizer.localize(localizableNULL_ADDRESS());
+    public static String NULL_ADDRESS_SERVICE_ENDPOINT() {
+        return LOCALIZER.localize(localizableNULL_ADDRESS_SERVICE_ENDPOINT());
     }
 
     public static Localizable localizableNULL_PORTNAME() {
-        return messageFactory.getMessage("null.portname");
+        return MESSAGE_FACTORY.getMessage("null.portname");
     }
 
     /**
@@ -104,35 +78,11 @@
      *
      */
     public static String NULL_PORTNAME() {
-        return localizer.localize(localizableNULL_PORTNAME());
-    }
-
-    public static Localizable localizableNOTFOUND_SERVICE_IN_WSDL(Object arg0, Object arg1) {
-        return messageFactory.getMessage("notfound.service.in.wsdl", arg0, arg1);
-    }
-
-    /**
-     * Service: {0} not found in WSDL: {1}
-     *
-     */
-    public static String NOTFOUND_SERVICE_IN_WSDL(Object arg0, Object arg1) {
-        return localizer.localize(localizableNOTFOUND_SERVICE_IN_WSDL(arg0, arg1));
-    }
-
-    public static Localizable localizableNULL_EPR() {
-        return messageFactory.getMessage("null.epr");
-    }
-
-    /**
-     * EndpointReference is null
-     *
-     */
-    public static String NULL_EPR() {
-        return localizer.localize(localizableNULL_EPR());
+        return LOCALIZER.localize(localizableNULL_PORTNAME());
     }
 
     public static Localizable localizableNULL_WSDL() {
-        return messageFactory.getMessage("null.wsdl");
+        return MESSAGE_FACTORY.getMessage("null.wsdl");
     }
 
     /**
@@ -140,11 +90,23 @@
      *
      */
     public static String NULL_WSDL() {
-        return localizer.localize(localizableNULL_WSDL());
+        return LOCALIZER.localize(localizableNULL_WSDL());
+    }
+
+    public static Localizable localizableNO_WSDL_NO_PORT(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("no.wsdl.no.port", arg0);
+    }
+
+    /**
+     * WSDL Metadata not available to create the proxy, either Service instance or ServiceEndpointInterface {0} should have WSDL information
+     *
+     */
+    public static String NO_WSDL_NO_PORT(Object arg0) {
+        return LOCALIZER.localize(localizableNO_WSDL_NO_PORT(arg0));
     }
 
     public static Localizable localizableNOTFOUND_PORT_IN_WSDL(Object arg0, Object arg1, Object arg2) {
-        return messageFactory.getMessage("notfound.port.in.wsdl", arg0, arg1, arg2);
+        return MESSAGE_FACTORY.getMessage("notfound.port.in.wsdl", arg0, arg1, arg2);
     }
 
     /**
@@ -152,11 +114,47 @@
      *
      */
     public static String NOTFOUND_PORT_IN_WSDL(Object arg0, Object arg1, Object arg2) {
-        return localizer.localize(localizableNOTFOUND_PORT_IN_WSDL(arg0, arg1, arg2));
+        return LOCALIZER.localize(localizableNOTFOUND_PORT_IN_WSDL(arg0, arg1, arg2));
+    }
+
+    public static Localizable localizableNOTFOUND_SERVICE_IN_WSDL(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("notfound.service.in.wsdl", arg0, arg1);
+    }
+
+    /**
+     * Service: {0} not found in WSDL: {1}
+     *
+     */
+    public static String NOTFOUND_SERVICE_IN_WSDL(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableNOTFOUND_SERVICE_IN_WSDL(arg0, arg1));
+    }
+
+    public static Localizable localizableNULL_EPR() {
+        return MESSAGE_FACTORY.getMessage("null.epr");
+    }
+
+    /**
+     * EndpointReference is null
+     *
+     */
+    public static String NULL_EPR() {
+        return LOCALIZER.localize(localizableNULL_EPR());
+    }
+
+    public static Localizable localizableNULL_ADDRESS() {
+        return MESSAGE_FACTORY.getMessage("null.address");
+    }
+
+    /**
+     * Address in an EPR cannot be null
+     *
+     */
+    public static String NULL_ADDRESS() {
+        return LOCALIZER.localize(localizableNULL_ADDRESS());
     }
 
     public static Localizable localizableERROR_WSDL(Object arg0) {
-        return messageFactory.getMessage("error.wsdl", arg0);
+        return MESSAGE_FACTORY.getMessage("error.wsdl", arg0);
     }
 
     /**
@@ -164,7 +162,18 @@
      *
      */
     public static String ERROR_WSDL(Object arg0) {
-        return localizer.localize(localizableERROR_WSDL(arg0));
+        return LOCALIZER.localize(localizableERROR_WSDL(arg0));
+    }
+
+    private static class BundleSupplier
+        implements ResourceBundleSupplier
+    {
+
+
+        public ResourceBundle getResourceBundle(Locale locale) {
+            return ResourceBundle.getBundle(BUNDLE_NAME, locale);
+        }
+
     }
 
 }
diff --git a/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/resources/SenderMessages.java b/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/resources/SenderMessages.java
index c95550e..5e94841 100644
--- a/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/resources/SenderMessages.java
+++ b/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/resources/SenderMessages.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,66 +25,28 @@
 
 package com.sun.xml.internal.ws.resources;
 
-import com.sun.istack.internal.localization.Localizable;
-import com.sun.istack.internal.localization.LocalizableMessageFactory;
-import com.sun.istack.internal.localization.Localizer;
-
 import java.util.Locale;
 import java.util.ResourceBundle;
+import javax.annotation.Generated;
+import com.sun.istack.internal.localization.Localizable;
+import com.sun.istack.internal.localization.LocalizableMessageFactory;
+import com.sun.istack.internal.localization.LocalizableMessageFactory.ResourceBundleSupplier;
+import com.sun.istack.internal.localization.Localizer;
 
 
 /**
  * Defines string formatting method for each constant in the resource file
  *
  */
+@Generated("com.sun.istack.internal.maven.ResourceGenMojo")
 public final class SenderMessages {
+
     private final static String BUNDLE_NAME = "com.sun.xml.internal.ws.resources.sender";
-    private final static LocalizableMessageFactory messageFactory =
-        new LocalizableMessageFactory(BUNDLE_NAME, SenderMessages::getResourceBundle);
-    private final static Localizer localizer = new Localizer();
-
-    private static ResourceBundle getResourceBundle(Locale locale) {
-        return ResourceBundle.getBundle(BUNDLE_NAME, locale);
-    }
-
-    public static Localizable localizableSENDER_REQUEST_ILLEGAL_VALUE_FOR_CONTENT_NEGOTIATION(Object arg0) {
-        return messageFactory.getMessage("sender.request.illegalValueForContentNegotiation", arg0);
-    }
-
-    /**
-     * illegal value for content negotiation property "{0}"
-     *
-     */
-    public static String SENDER_REQUEST_ILLEGAL_VALUE_FOR_CONTENT_NEGOTIATION(Object arg0) {
-        return localizer.localize(localizableSENDER_REQUEST_ILLEGAL_VALUE_FOR_CONTENT_NEGOTIATION(arg0));
-    }
-
-    public static Localizable localizableSENDER_RESPONSE_CANNOT_DECODE_FAULT_DETAIL() {
-        return messageFactory.getMessage("sender.response.cannotDecodeFaultDetail");
-    }
-
-    /**
-     * fault detail cannot be decoded
-     *
-     */
-    public static String SENDER_RESPONSE_CANNOT_DECODE_FAULT_DETAIL() {
-        return localizer.localize(localizableSENDER_RESPONSE_CANNOT_DECODE_FAULT_DETAIL());
-    }
-
-    public static Localizable localizableSENDER_NESTED_ERROR(Object arg0) {
-        return messageFactory.getMessage("sender.nestedError", arg0);
-    }
-
-    /**
-     * sender error: {0}
-     *
-     */
-    public static String SENDER_NESTED_ERROR(Object arg0) {
-        return localizer.localize(localizableSENDER_NESTED_ERROR(arg0));
-    }
+    private final static LocalizableMessageFactory MESSAGE_FACTORY = new LocalizableMessageFactory(BUNDLE_NAME, new SenderMessages.BundleSupplier());
+    private final static Localizer LOCALIZER = new Localizer();
 
     public static Localizable localizableSENDER_REQUEST_MESSAGE_NOT_READY() {
-        return messageFactory.getMessage("sender.request.messageNotReady");
+        return MESSAGE_FACTORY.getMessage("sender.request.messageNotReady");
     }
 
     /**
@@ -92,7 +54,54 @@
      *
      */
     public static String SENDER_REQUEST_MESSAGE_NOT_READY() {
-        return localizer.localize(localizableSENDER_REQUEST_MESSAGE_NOT_READY());
+        return LOCALIZER.localize(localizableSENDER_REQUEST_MESSAGE_NOT_READY());
+    }
+
+    public static Localizable localizableSENDER_RESPONSE_CANNOT_DECODE_FAULT_DETAIL() {
+        return MESSAGE_FACTORY.getMessage("sender.response.cannotDecodeFaultDetail");
+    }
+
+    /**
+     * fault detail cannot be decoded
+     *
+     */
+    public static String SENDER_RESPONSE_CANNOT_DECODE_FAULT_DETAIL() {
+        return LOCALIZER.localize(localizableSENDER_RESPONSE_CANNOT_DECODE_FAULT_DETAIL());
+    }
+
+    public static Localizable localizableSENDER_REQUEST_ILLEGAL_VALUE_FOR_CONTENT_NEGOTIATION(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("sender.request.illegalValueForContentNegotiation", arg0);
+    }
+
+    /**
+     * illegal value for content negotiation property "{0}"
+     *
+     */
+    public static String SENDER_REQUEST_ILLEGAL_VALUE_FOR_CONTENT_NEGOTIATION(Object arg0) {
+        return LOCALIZER.localize(localizableSENDER_REQUEST_ILLEGAL_VALUE_FOR_CONTENT_NEGOTIATION(arg0));
+    }
+
+    public static Localizable localizableSENDER_NESTED_ERROR(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("sender.nestedError", arg0);
+    }
+
+    /**
+     * sender error: {0}
+     *
+     */
+    public static String SENDER_NESTED_ERROR(Object arg0) {
+        return LOCALIZER.localize(localizableSENDER_NESTED_ERROR(arg0));
+    }
+
+    private static class BundleSupplier
+        implements ResourceBundleSupplier
+    {
+
+
+        public ResourceBundle getResourceBundle(Locale locale) {
+            return ResourceBundle.getBundle(BUNDLE_NAME, locale);
+        }
+
     }
 
 }
diff --git a/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/resources/ServerMessages.java b/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/resources/ServerMessages.java
index 9059972..2c7f065 100644
--- a/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/resources/ServerMessages.java
+++ b/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/resources/ServerMessages.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,30 +25,276 @@
 
 package com.sun.xml.internal.ws.resources;
 
-import com.sun.istack.internal.localization.Localizable;
-import com.sun.istack.internal.localization.LocalizableMessageFactory;
-import com.sun.istack.internal.localization.Localizer;
-
 import java.util.Locale;
 import java.util.ResourceBundle;
+import javax.annotation.Generated;
+import com.sun.istack.internal.localization.Localizable;
+import com.sun.istack.internal.localization.LocalizableMessageFactory;
+import com.sun.istack.internal.localization.LocalizableMessageFactory.ResourceBundleSupplier;
+import com.sun.istack.internal.localization.Localizer;
 
 
 /**
  * Defines string formatting method for each constant in the resource file
  *
  */
+@Generated("com.sun.istack.internal.maven.ResourceGenMojo")
 public final class ServerMessages {
-    private final static String BUNDLE_NAME = "com.sun.xml.internal.ws.resources.server";
-    private final static LocalizableMessageFactory messageFactory =
-        new LocalizableMessageFactory(BUNDLE_NAME, ServerMessages::getResourceBundle);
-    private final static Localizer localizer = new Localizer();
 
-    private static ResourceBundle getResourceBundle(Locale locale) {
-        return ResourceBundle.getBundle(BUNDLE_NAME, locale);
+    private final static String BUNDLE_NAME = "com.sun.xml.internal.ws.resources.server";
+    private final static LocalizableMessageFactory MESSAGE_FACTORY = new LocalizableMessageFactory(BUNDLE_NAME, new ServerMessages.BundleSupplier());
+    private final static Localizer LOCALIZER = new Localizer();
+
+    public static Localizable localizableDUPLICATE_ABSTRACT_WSDL(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("duplicate.abstract.wsdl", arg0);
+    }
+
+    /**
+     * Metadata has more than one WSDL that has PortType definition for the endpoint. WSDL={0} is one such WSDL.
+     *
+     */
+    public static String DUPLICATE_ABSTRACT_WSDL(Object arg0) {
+        return LOCALIZER.localize(localizableDUPLICATE_ABSTRACT_WSDL(arg0));
+    }
+
+    public static Localizable localizableNOT_KNOW_HTTP_CONTEXT_TYPE(Object arg0, Object arg1, Object arg2) {
+        return MESSAGE_FACTORY.getMessage("not.know.HttpContext.type", arg0, arg1, arg2);
+    }
+
+    /**
+     * Doesn''t support Endpoint.publish({0}). Known context types are {1}, and {2}
+     *
+     */
+    public static String NOT_KNOW_HTTP_CONTEXT_TYPE(Object arg0, Object arg1, Object arg2) {
+        return LOCALIZER.localize(localizableNOT_KNOW_HTTP_CONTEXT_TYPE(arg0, arg1, arg2));
+    }
+
+    public static Localizable localizableUNSUPPORTED_CONTENT_TYPE(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("unsupported.contentType", arg0, arg1);
+    }
+
+    /**
+     * Unsupported Content-Type: {0} Supported ones are: {1}
+     *
+     */
+    public static String UNSUPPORTED_CONTENT_TYPE(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableUNSUPPORTED_CONTENT_TYPE(arg0, arg1));
+    }
+
+    public static Localizable localizableRUNTIME_PARSER_WSDL_NOT_FOUND(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("runtime.parser.wsdl.not.found", arg0);
+    }
+
+    /**
+     * {0} is not found in the WAR file. Package it in the WAR file or correct it in sun-jaxws.xml.
+     *
+     */
+    public static String RUNTIME_PARSER_WSDL_NOT_FOUND(Object arg0) {
+        return LOCALIZER.localize(localizableRUNTIME_PARSER_WSDL_NOT_FOUND(arg0));
+    }
+
+    public static Localizable localizableSOAPENCODER_ERR() {
+        return MESSAGE_FACTORY.getMessage("soapencoder.err");
+    }
+
+    /**
+     * Error in encoding SOAP Message
+     *
+     */
+    public static String SOAPENCODER_ERR() {
+        return LOCALIZER.localize(localizableSOAPENCODER_ERR());
+    }
+
+    public static Localizable localizableWSDL_REQUIRED() {
+        return MESSAGE_FACTORY.getMessage("wsdl.required");
+    }
+
+    /**
+     * wsdl is required
+     *
+     */
+    public static String WSDL_REQUIRED() {
+        return LOCALIZER.localize(localizableWSDL_REQUIRED());
+    }
+
+    public static Localizable localizableRUNTIME_PARSER_WSDL_NOSERVICE_IN_WSDLMODEL(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("runtime.parser.wsdl.noservice.in.wsdlmodel", arg0);
+    }
+
+    /**
+     * There is an error in processing the WSDL {0} and no valid services are found.
+     *
+     */
+    public static String RUNTIME_PARSER_WSDL_NOSERVICE_IN_WSDLMODEL(Object arg0) {
+        return LOCALIZER.localize(localizableRUNTIME_PARSER_WSDL_NOSERVICE_IN_WSDLMODEL(arg0));
+    }
+
+    public static Localizable localizableNULL_IMPLEMENTOR() {
+        return MESSAGE_FACTORY.getMessage("null.implementor");
+    }
+
+    /**
+     * Implementor cannot be null
+     *
+     */
+    public static String NULL_IMPLEMENTOR() {
+        return LOCALIZER.localize(localizableNULL_IMPLEMENTOR());
+    }
+
+    public static Localizable localizableSERVER_RT_ERR(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("server.rt.err", arg0);
+    }
+
+    /**
+     * Server Runtime Error: {0}
+     *
+     */
+    public static String SERVER_RT_ERR(Object arg0) {
+        return LOCALIZER.localize(localizableSERVER_RT_ERR(arg0));
+    }
+
+    public static Localizable localizableWRONG_PARAMETER_TYPE(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("wrong.parameter.type", arg0);
+    }
+
+    /**
+     * Incorrect argument types for method "{0}"
+     *
+     */
+    public static String WRONG_PARAMETER_TYPE(Object arg0) {
+        return LOCALIZER.localize(localizableWRONG_PARAMETER_TYPE(arg0));
+    }
+
+    public static Localizable localizableRUNTIME_PARSER_WSDL_INCORRECTSERVICEPORT(Object arg0, Object arg1, Object arg2) {
+        return MESSAGE_FACTORY.getMessage("runtime.parser.wsdl.incorrectserviceport", arg0, arg1, arg2);
+    }
+
+    /**
+     * could not get binding from WSDL! service: {0} or port {1} not found in the WSDL {2}.
+     * It could be because service and port names do not match WSDL''s wsdl:service and wsdl:port names:
+     *  1. service and port names are not there in deployment descriptor OR
+     *  2. Either there is a typo in deployment descriptor''s service and port names OR
+     *  3. The computed names from @WebService do not match wsdl:service and wsdl:port names
+     * Suggest doing the following:
+     *  1. Add/Correct entries for service and port names in deployment descriptor OR
+     *  2. Specify targetNamespace, serviceName, portName in @WebService on the endpoint class
+     *
+     */
+    public static String RUNTIME_PARSER_WSDL_INCORRECTSERVICEPORT(Object arg0, Object arg1, Object arg2) {
+        return LOCALIZER.localize(localizableRUNTIME_PARSER_WSDL_INCORRECTSERVICEPORT(arg0, arg1, arg2));
+    }
+
+    public static Localizable localizableRUNTIME_PARSER_XML_READER(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("runtime.parser.xmlReader", arg0);
+    }
+
+    /**
+     * error parsing runtime descriptor: {0}
+     *
+     */
+    public static String RUNTIME_PARSER_XML_READER(Object arg0) {
+        return LOCALIZER.localize(localizableRUNTIME_PARSER_XML_READER(arg0));
+    }
+
+    public static Localizable localizableDD_MTOM_CONFLICT(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("dd.mtom.conflict", arg0, arg1);
+    }
+
+    /**
+     * Error in Deployment Descriptor : MTOM Configuration in binding {0} conflicts with enable-mtom attribute value {1}
+     *
+     */
+    public static String DD_MTOM_CONFLICT(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableDD_MTOM_CONFLICT(arg0, arg1));
+    }
+
+    public static Localizable localizableRUNTIME_PARSER_INVALID_ATTRIBUTE_VALUE(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("runtime.parser.invalid.attribute.value", arg0, arg1);
+    }
+
+    /**
+     * invalid attribute value "{1}" in runtime descriptor (line {0})
+     *
+     */
+    public static String RUNTIME_PARSER_INVALID_ATTRIBUTE_VALUE(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableRUNTIME_PARSER_INVALID_ATTRIBUTE_VALUE(arg0, arg1));
+    }
+
+    public static Localizable localizableRUNTIME_SAXPARSER_EXCEPTION(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("runtime.saxparser.exception", arg0, arg1);
+    }
+
+    /**
+     * {0}
+     * {1}
+     *
+     */
+    public static String RUNTIME_SAXPARSER_EXCEPTION(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableRUNTIME_SAXPARSER_EXCEPTION(arg0, arg1));
+    }
+
+    public static Localizable localizableRUNTIME_PARSER_INVALID_VERSION_NUMBER() {
+        return MESSAGE_FACTORY.getMessage("runtime.parser.invalidVersionNumber");
+    }
+
+    /**
+     * unsupported runtime descriptor version: {2}
+     *
+     */
+    public static String RUNTIME_PARSER_INVALID_VERSION_NUMBER() {
+        return LOCALIZER.localize(localizableRUNTIME_PARSER_INVALID_VERSION_NUMBER());
+    }
+
+    public static Localizable localizableWRONG_TNS_FOR_PORT(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("wrong.tns.for.port", arg0);
+    }
+
+    /**
+     * Port namespace {0} doesn't match Service namespace {1}
+     *
+     */
+    public static String WRONG_TNS_FOR_PORT(Object arg0) {
+        return LOCALIZER.localize(localizableWRONG_TNS_FOR_PORT(arg0));
+    }
+
+    public static Localizable localizableANNOTATION_ONLY_ONCE(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("annotation.only.once", arg0);
+    }
+
+    /**
+     * Only one method should have the annotation "{0}"
+     *
+     */
+    public static String ANNOTATION_ONLY_ONCE(Object arg0) {
+        return LOCALIZER.localize(localizableANNOTATION_ONLY_ONCE(arg0));
+    }
+
+    public static Localizable localizableSTATEFUL_COOKIE_HEADER_INCORRECT(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("stateful.cookie.header.incorrect", arg0, arg1);
+    }
+
+    /**
+     * Invalid/expired {0} header value: {1}
+     *
+     */
+    public static String STATEFUL_COOKIE_HEADER_INCORRECT(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableSTATEFUL_COOKIE_HEADER_INCORRECT(arg0, arg1));
+    }
+
+    public static Localizable localizableSERVICE_NAME_REQUIRED() {
+        return MESSAGE_FACTORY.getMessage("service.name.required");
+    }
+
+    /**
+     * Service QName is not found
+     *
+     */
+    public static String SERVICE_NAME_REQUIRED() {
+        return LOCALIZER.localize(localizableSERVICE_NAME_REQUIRED());
     }
 
     public static Localizable localizableRUNTIME_PARSER_WSDL_INCORRECTSERVICE(Object arg0, Object arg1) {
-        return messageFactory.getMessage("runtime.parser.wsdl.incorrectservice", arg0, arg1);
+        return MESSAGE_FACTORY.getMessage("runtime.parser.wsdl.incorrectservice", arg0, arg1);
     }
 
     /**
@@ -65,559 +311,11 @@
      *
      */
     public static String RUNTIME_PARSER_WSDL_INCORRECTSERVICE(Object arg0, Object arg1) {
-        return localizer.localize(localizableRUNTIME_PARSER_WSDL_INCORRECTSERVICE(arg0, arg1));
-    }
-
-    public static Localizable localizableRUNTIME_PARSER_MISSING_ATTRIBUTE_NO_LINE() {
-        return messageFactory.getMessage("runtime.parser.missing.attribute.no.line");
-    }
-
-    /**
-     * missing attribute "{2}" in element "{1}" of runtime descriptor
-     *
-     */
-    public static String RUNTIME_PARSER_MISSING_ATTRIBUTE_NO_LINE() {
-        return localizer.localize(localizableRUNTIME_PARSER_MISSING_ATTRIBUTE_NO_LINE());
-    }
-
-    public static Localizable localizableSTATEFUL_COOKIE_HEADER_INCORRECT(Object arg0, Object arg1) {
-        return messageFactory.getMessage("stateful.cookie.header.incorrect", arg0, arg1);
-    }
-
-    /**
-     * Invalid/expired {0} header value: {1}
-     *
-     */
-    public static String STATEFUL_COOKIE_HEADER_INCORRECT(Object arg0, Object arg1) {
-        return localizer.localize(localizableSTATEFUL_COOKIE_HEADER_INCORRECT(arg0, arg1));
-    }
-
-    public static Localizable localizableNOT_IMPLEMENT_PROVIDER(Object arg0) {
-        return messageFactory.getMessage("not.implement.provider", arg0);
-    }
-
-    /**
-     * "{0}" doesn't implement Provider
-     *
-     */
-    public static String NOT_IMPLEMENT_PROVIDER(Object arg0) {
-        return localizer.localize(localizableNOT_IMPLEMENT_PROVIDER(arg0));
-    }
-
-    public static Localizable localizableSTATEFUL_REQURES_ADDRESSING(Object arg0) {
-        return messageFactory.getMessage("stateful.requres.addressing", arg0);
-    }
-
-    /**
-     * Stateful web service {0} requires the WS-Addressing support to be enabled. Perhaps you are missing @Addressing
-     *
-     */
-    public static String STATEFUL_REQURES_ADDRESSING(Object arg0) {
-        return localizer.localize(localizableSTATEFUL_REQURES_ADDRESSING(arg0));
-    }
-
-    public static Localizable localizableSOAPDECODER_ERR() {
-        return messageFactory.getMessage("soapdecoder.err");
-    }
-
-    /**
-     * Error in decoding SOAP Message
-     *
-     */
-    public static String SOAPDECODER_ERR() {
-        return localizer.localize(localizableSOAPDECODER_ERR());
-    }
-
-    public static Localizable localizableGENERATE_NON_STANDARD_WSDL() {
-        return messageFactory.getMessage("generate.non.standard.wsdl");
-    }
-
-    /**
-     * Generating non-standard WSDL for the specified binding
-     *
-     */
-    public static String GENERATE_NON_STANDARD_WSDL() {
-        return localizer.localize(localizableGENERATE_NON_STANDARD_WSDL());
-    }
-
-    public static Localizable localizableDISPATCH_CANNOT_FIND_METHOD(Object arg0) {
-        return messageFactory.getMessage("dispatch.cannotFindMethod", arg0);
-    }
-
-    /**
-     * Cannot find dispatch method for {0}
-     *
-     */
-    public static String DISPATCH_CANNOT_FIND_METHOD(Object arg0) {
-        return localizer.localize(localizableDISPATCH_CANNOT_FIND_METHOD(arg0));
-    }
-
-    public static Localizable localizableNO_CONTENT_TYPE() {
-        return messageFactory.getMessage("no.contentType");
-    }
-
-    /**
-     * Request doesn't have a Content-Type
-     *
-     */
-    public static String NO_CONTENT_TYPE() {
-        return localizer.localize(localizableNO_CONTENT_TYPE());
-    }
-
-    public static Localizable localizableRUNTIME_PARSER_INVALID_VERSION_NUMBER() {
-        return messageFactory.getMessage("runtime.parser.invalidVersionNumber");
-    }
-
-    /**
-     * unsupported runtime descriptor version: {2}
-     *
-     */
-    public static String RUNTIME_PARSER_INVALID_VERSION_NUMBER() {
-        return localizer.localize(localizableRUNTIME_PARSER_INVALID_VERSION_NUMBER());
-    }
-
-    public static Localizable localizablePROVIDER_INVALID_PARAMETER_TYPE(Object arg0, Object arg1) {
-        return messageFactory.getMessage("provider.invalid.parameterType", arg0, arg1);
-    }
-
-    /**
-     * "{0}" implements Provider but its type parameter {1} is incorrect
-     *
-     */
-    public static String PROVIDER_INVALID_PARAMETER_TYPE(Object arg0, Object arg1) {
-        return localizer.localize(localizablePROVIDER_INVALID_PARAMETER_TYPE(arg0, arg1));
-    }
-
-    public static Localizable localizableWRONG_NO_PARAMETERS(Object arg0) {
-        return messageFactory.getMessage("wrong.no.parameters", arg0);
-    }
-
-    /**
-     * Incorrect no of arguments for method "{0}"
-     *
-     */
-    public static String WRONG_NO_PARAMETERS(Object arg0) {
-        return localizer.localize(localizableWRONG_NO_PARAMETERS(arg0));
-    }
-
-    public static Localizable localizableANNOTATION_ONLY_ONCE(Object arg0) {
-        return messageFactory.getMessage("annotation.only.once", arg0);
-    }
-
-    /**
-     * Only one method should have the annotation "{0}"
-     *
-     */
-    public static String ANNOTATION_ONLY_ONCE(Object arg0) {
-        return localizer.localize(localizableANNOTATION_ONLY_ONCE(arg0));
-    }
-
-    public static Localizable localizableALREADY_HTTPS_SERVER(Object arg0) {
-        return messageFactory.getMessage("already.https.server", arg0);
-    }
-
-    /**
-     * There is already a HTTPS server at : {0}
-     *
-     */
-    public static String ALREADY_HTTPS_SERVER(Object arg0) {
-        return localizer.localize(localizableALREADY_HTTPS_SERVER(arg0));
-    }
-
-    public static Localizable localizableRUNTIME_PARSER_XML_READER(Object arg0) {
-        return messageFactory.getMessage("runtime.parser.xmlReader", arg0);
-    }
-
-    /**
-     * error parsing runtime descriptor: {0}
-     *
-     */
-    public static String RUNTIME_PARSER_XML_READER(Object arg0) {
-        return localizer.localize(localizableRUNTIME_PARSER_XML_READER(arg0));
-    }
-
-    public static Localizable localizableRUNTIME_PARSER_WSDL_INCORRECTSERVICEPORT(Object arg0, Object arg1, Object arg2) {
-        return messageFactory.getMessage("runtime.parser.wsdl.incorrectserviceport", arg0, arg1, arg2);
-    }
-
-    /**
-     * could not get binding from WSDL! service: {0} or port {1} not found in the WSDL {2}.
-     * It could be because service and port names do not match WSDL''s wsdl:service and wsdl:port names:
-     *  1. service and port names are not there in deployment descriptor OR
-     *  2. Either there is a typo in deployment descriptor''s service and port names OR
-     *  3. The computed names from @WebService do not match wsdl:service and wsdl:port names
-     * Suggest doing the following:
-     *  1. Add/Correct entries for service and port names in deployment descriptor OR
-     *  2. Specify targetNamespace, serviceName, portName in @WebService on the endpoint class
-     *
-     */
-    public static String RUNTIME_PARSER_WSDL_INCORRECTSERVICEPORT(Object arg0, Object arg1, Object arg2) {
-        return localizer.localize(localizableRUNTIME_PARSER_WSDL_INCORRECTSERVICEPORT(arg0, arg1, arg2));
-    }
-
-    public static Localizable localizableSERVER_RT_ERR(Object arg0) {
-        return messageFactory.getMessage("server.rt.err", arg0);
-    }
-
-    /**
-     * Server Runtime Error: {0}
-     *
-     */
-    public static String SERVER_RT_ERR(Object arg0) {
-        return localizer.localize(localizableSERVER_RT_ERR(arg0));
-    }
-
-    public static Localizable localizableRUNTIME_PARSER_INVALID_ATTRIBUTE_VALUE(Object arg0, Object arg1, Object arg2) {
-        return messageFactory.getMessage("runtime.parser.invalidAttributeValue", arg0, arg1, arg2);
-    }
-
-    /**
-     * invalid value for attribute "{2}" of element "{1}" in runtime descriptor (line {0})
-     *
-     */
-    public static String RUNTIME_PARSER_INVALID_ATTRIBUTE_VALUE(Object arg0, Object arg1, Object arg2) {
-        return localizer.localize(localizableRUNTIME_PARSER_INVALID_ATTRIBUTE_VALUE(arg0, arg1, arg2));
-    }
-
-    public static Localizable localizableNO_CURRENT_PACKET() {
-        return messageFactory.getMessage("no.current.packet");
-    }
-
-    /**
-     * This thread is not currently processing any web service request.
-     *
-     */
-    public static String NO_CURRENT_PACKET() {
-        return localizer.localize(localizableNO_CURRENT_PACKET());
-    }
-
-    public static Localizable localizableRUNTIME_PARSER_UNEXPECTED_CONTENT(Object arg0) {
-        return messageFactory.getMessage("runtime.parser.unexpectedContent", arg0);
-    }
-
-    /**
-     * unexpected content in runtime descriptor (line {0})
-     *
-     */
-    public static String RUNTIME_PARSER_UNEXPECTED_CONTENT(Object arg0) {
-        return localizer.localize(localizableRUNTIME_PARSER_UNEXPECTED_CONTENT(arg0));
-    }
-
-    public static Localizable localizableSTATEFUL_COOKIE_HEADER_REQUIRED(Object arg0) {
-        return messageFactory.getMessage("stateful.cookie.header.required", arg0);
-    }
-
-    /**
-     * This is a stateful web service and {0} header is required.
-     *
-     */
-    public static String STATEFUL_COOKIE_HEADER_REQUIRED(Object arg0) {
-        return localizer.localize(localizableSTATEFUL_COOKIE_HEADER_REQUIRED(arg0));
-    }
-
-    public static Localizable localizableNULL_IMPLEMENTOR() {
-        return messageFactory.getMessage("null.implementor");
-    }
-
-    /**
-     * Implementor cannot be null
-     *
-     */
-    public static String NULL_IMPLEMENTOR() {
-        return localizer.localize(localizableNULL_IMPLEMENTOR());
-    }
-
-    public static Localizable localizableRUNTIME_PARSER_WSDL(Object arg0) {
-        return messageFactory.getMessage("runtime.parser.wsdl", arg0);
-    }
-
-    /**
-     * exception during WSDL parsing: {0}
-     *
-     */
-    public static String RUNTIME_PARSER_WSDL(Object arg0) {
-        return localizer.localize(localizableRUNTIME_PARSER_WSDL(arg0));
-    }
-
-    public static Localizable localizableSOAPENCODER_ERR() {
-        return messageFactory.getMessage("soapencoder.err");
-    }
-
-    /**
-     * Error in encoding SOAP Message
-     *
-     */
-    public static String SOAPENCODER_ERR() {
-        return localizer.localize(localizableSOAPENCODER_ERR());
-    }
-
-    public static Localizable localizableWSDL_REQUIRED() {
-        return messageFactory.getMessage("wsdl.required");
-    }
-
-    /**
-     * wsdl is required
-     *
-     */
-    public static String WSDL_REQUIRED() {
-        return localizer.localize(localizableWSDL_REQUIRED());
-    }
-
-    public static Localizable localizableRUNTIME_PARSER_WSDL_NOSERVICE_IN_WSDLMODEL(Object arg0) {
-        return messageFactory.getMessage("runtime.parser.wsdl.noservice.in.wsdlmodel", arg0);
-    }
-
-    /**
-     * There is an error in processing the WSDL {0} and no valid services are found.
-     *
-     */
-    public static String RUNTIME_PARSER_WSDL_NOSERVICE_IN_WSDLMODEL(Object arg0) {
-        return localizer.localize(localizableRUNTIME_PARSER_WSDL_NOSERVICE_IN_WSDLMODEL(arg0));
-    }
-
-    public static Localizable localizablePORT_NAME_REQUIRED() {
-        return messageFactory.getMessage("port.name.required");
-    }
-
-    /**
-     * Port QName is not found
-     *
-     */
-    public static String PORT_NAME_REQUIRED() {
-        return localizer.localize(localizablePORT_NAME_REQUIRED());
-    }
-
-    public static Localizable localizableWRONG_TNS_FOR_PORT(Object arg0) {
-        return messageFactory.getMessage("wrong.tns.for.port", arg0);
-    }
-
-    /**
-     * Port namespace {0} doesn't match Service namespace {1}
-     *
-     */
-    public static String WRONG_TNS_FOR_PORT(Object arg0) {
-        return localizer.localize(localizableWRONG_TNS_FOR_PORT(arg0));
-    }
-
-    public static Localizable localizableRUNTIME_PARSER_WSDL_MULTIPLEBINDING(Object arg0, Object arg1, Object arg2) {
-        return messageFactory.getMessage("runtime.parser.wsdl.multiplebinding", arg0, arg1, arg2);
-    }
-
-    /**
-     * multiple bindings found for binding ID {0} for service {1} in WSDL {2}
-     *
-     */
-    public static String RUNTIME_PARSER_WSDL_MULTIPLEBINDING(Object arg0, Object arg1, Object arg2) {
-        return localizer.localize(localizableRUNTIME_PARSER_WSDL_MULTIPLEBINDING(arg0, arg1, arg2));
-    }
-
-    public static Localizable localizableNOT_KNOW_HTTP_CONTEXT_TYPE(Object arg0, Object arg1, Object arg2) {
-        return messageFactory.getMessage("not.know.HttpContext.type", arg0, arg1, arg2);
-    }
-
-    /**
-     * Doesn''t support Endpoint.publish({0}). Known context types are {1}, and {2}
-     *
-     */
-    public static String NOT_KNOW_HTTP_CONTEXT_TYPE(Object arg0, Object arg1, Object arg2) {
-        return localizer.localize(localizableNOT_KNOW_HTTP_CONTEXT_TYPE(arg0, arg1, arg2));
-    }
-
-    public static Localizable localizableNON_UNIQUE_DISPATCH_QNAME(Object arg0, Object arg1) {
-        return messageFactory.getMessage("non.unique.dispatch.qname", arg0, arg1);
-    }
-
-    /**
-     * Non unique body parts! In a port, as per BP 1.1 R2710 operations must have unique operation signature on the wire for successful dispatch. Methods {0} have the same request body block {1}. Method dispatching may fail, runtime will try to dispatch using SOAPAction. Another option is to enable AddressingFeature to enabled runtime to uniquely identify WSDL operation using wsa:Action header.
-     *
-     */
-    public static String NON_UNIQUE_DISPATCH_QNAME(Object arg0, Object arg1) {
-        return localizer.localize(localizableNON_UNIQUE_DISPATCH_QNAME(arg0, arg1));
-    }
-
-    public static Localizable localizableALREADY_HTTP_SERVER(Object arg0) {
-        return messageFactory.getMessage("already.http.server", arg0);
-    }
-
-    /**
-     * There is already a HTTP server at : {0}# {0} - probably URL/port of a server
-     *
-     */
-    public static String ALREADY_HTTP_SERVER(Object arg0) {
-        return localizer.localize(localizableALREADY_HTTP_SERVER(arg0));
-    }
-
-    public static Localizable localizableCAN_NOT_GENERATE_WSDL(Object arg0) {
-        return messageFactory.getMessage("can.not.generate.wsdl", arg0);
-    }
-
-    /**
-     * Cannot generate WSDL for binding "{0}"
-     *
-     */
-    public static String CAN_NOT_GENERATE_WSDL(Object arg0) {
-        return localizer.localize(localizableCAN_NOT_GENERATE_WSDL(arg0));
-    }
-
-    public static Localizable localizableRUNTIME_PARSER_INVALID_ATTRIBUTE_VALUE(Object arg0, Object arg1) {
-        return messageFactory.getMessage("runtime.parser.invalid.attribute.value", arg0, arg1);
-    }
-
-    /**
-     * invalid attribute value "{1}" in runtime descriptor (line {0})
-     *
-     */
-    public static String RUNTIME_PARSER_INVALID_ATTRIBUTE_VALUE(Object arg0, Object arg1) {
-        return localizer.localize(localizableRUNTIME_PARSER_INVALID_ATTRIBUTE_VALUE(arg0, arg1));
-    }
-
-    public static Localizable localizableRUNTIME_PARSER_WRONG_ELEMENT(Object arg0, Object arg1, Object arg2) {
-        return messageFactory.getMessage("runtime.parser.wrong.element", arg0, arg1, arg2);
-    }
-
-    /**
-     * found element "{1}", expected "{2}" in runtime descriptor (line {0})
-     *
-     */
-    public static String RUNTIME_PARSER_WRONG_ELEMENT(Object arg0, Object arg1, Object arg2) {
-        return localizer.localize(localizableRUNTIME_PARSER_WRONG_ELEMENT(arg0, arg1, arg2));
-    }
-
-    public static Localizable localizableRUNTIMEMODELER_INVALIDANNOTATION_ON_IMPL(Object arg0, Object arg1, Object arg2) {
-        return messageFactory.getMessage("runtimemodeler.invalidannotationOnImpl", arg0, arg1, arg2);
-    }
-
-    /**
-     * Invalid annotation: {0} on endpoint implementation class "{1}" - will be ignored. "{1}" is annotated with @WebService(endpointInterface="{2}"}, it must not be annotated with {0}, to fix it - put this annotation on the SEI {2}.
-     *
-     */
-    public static String RUNTIMEMODELER_INVALIDANNOTATION_ON_IMPL(Object arg0, Object arg1, Object arg2) {
-        return localizer.localize(localizableRUNTIMEMODELER_INVALIDANNOTATION_ON_IMPL(arg0, arg1, arg2));
-    }
-
-    public static Localizable localizableSERVICE_NAME_REQUIRED() {
-        return messageFactory.getMessage("service.name.required");
-    }
-
-    /**
-     * Service QName is not found
-     *
-     */
-    public static String SERVICE_NAME_REQUIRED() {
-        return localizer.localize(localizableSERVICE_NAME_REQUIRED());
-    }
-
-    public static Localizable localizablePROVIDER_NOT_PARAMETERIZED(Object arg0) {
-        return messageFactory.getMessage("provider.not.parameterized", arg0);
-    }
-
-    /**
-     * "{0}" implements Provider but doesn't specify the type parameter
-     *
-     */
-    public static String PROVIDER_NOT_PARAMETERIZED(Object arg0) {
-        return localizer.localize(localizablePROVIDER_NOT_PARAMETERIZED(arg0));
-    }
-
-    public static Localizable localizableRUNTIME_WSDL_PATCHER() {
-        return messageFactory.getMessage("runtime.wsdl.patcher");
-    }
-
-    /**
-     * error while patching WSDL related document
-     *
-     */
-    public static String RUNTIME_WSDL_PATCHER() {
-        return localizer.localize(localizableRUNTIME_WSDL_PATCHER());
-    }
-
-    public static Localizable localizableRUNTIME_SAXPARSER_EXCEPTION(Object arg0, Object arg1) {
-        return messageFactory.getMessage("runtime.saxparser.exception", arg0, arg1);
-    }
-
-    /**
-     * {0}
-     * {1}
-     *
-     */
-    public static String RUNTIME_SAXPARSER_EXCEPTION(Object arg0, Object arg1) {
-        return localizer.localize(localizableRUNTIME_SAXPARSER_EXCEPTION(arg0, arg1));
-    }
-
-    public static Localizable localizableWRONG_PARAMETER_TYPE(Object arg0) {
-        return messageFactory.getMessage("wrong.parameter.type", arg0);
-    }
-
-    /**
-     * Incorrect argument types for method "{0}"
-     *
-     */
-    public static String WRONG_PARAMETER_TYPE(Object arg0) {
-        return localizer.localize(localizableWRONG_PARAMETER_TYPE(arg0));
-    }
-
-    public static Localizable localizableRUNTIME_PARSER_WSDL_NOT_FOUND(Object arg0) {
-        return messageFactory.getMessage("runtime.parser.wsdl.not.found", arg0);
-    }
-
-    /**
-     * {0} is not found in the WAR file. Package it in the WAR file or correct it in sun-jaxws.xml.
-     *
-     */
-    public static String RUNTIME_PARSER_WSDL_NOT_FOUND(Object arg0) {
-        return localizer.localize(localizableRUNTIME_PARSER_WSDL_NOT_FOUND(arg0));
-    }
-
-    public static Localizable localizableRUNTIME_PARSER_CLASS_NOT_FOUND(Object arg0) {
-        return messageFactory.getMessage("runtime.parser.classNotFound", arg0);
-    }
-
-    /**
-     * class not found in runtime descriptor: {0}
-     *
-     */
-    public static String RUNTIME_PARSER_CLASS_NOT_FOUND(Object arg0) {
-        return localizer.localize(localizableRUNTIME_PARSER_CLASS_NOT_FOUND(arg0));
-    }
-
-    public static Localizable localizableUNSUPPORTED_CHARSET(Object arg0) {
-        return messageFactory.getMessage("unsupported.charset", arg0);
-    }
-
-    /**
-     * Unsupported charset "{0}" in the received message''s Content-Type
-     *
-     */
-    public static String UNSUPPORTED_CHARSET(Object arg0) {
-        return localizer.localize(localizableUNSUPPORTED_CHARSET(arg0));
-    }
-
-    public static Localizable localizableSTATIC_RESOURCE_INJECTION_ONLY(Object arg0, Object arg1) {
-        return messageFactory.getMessage("static.resource.injection.only", arg0, arg1);
-    }
-
-    /**
-     * Static resource {0} cannot be injected to non-static "{1}"
-     *
-     */
-    public static String STATIC_RESOURCE_INJECTION_ONLY(Object arg0, Object arg1) {
-        return localizer.localize(localizableSTATIC_RESOURCE_INJECTION_ONLY(arg0, arg1));
-    }
-
-    public static Localizable localizableNOT_ZERO_PARAMETERS(Object arg0) {
-        return messageFactory.getMessage("not.zero.parameters", arg0);
-    }
-
-    /**
-     * Method "{0}" shouldn''t have any arguments
-     *
-     */
-    public static String NOT_ZERO_PARAMETERS(Object arg0) {
-        return localizer.localize(localizableNOT_ZERO_PARAMETERS(arg0));
+        return LOCALIZER.localize(localizableRUNTIME_PARSER_WSDL_INCORRECTSERVICE(arg0, arg1));
     }
 
     public static Localizable localizableDUPLICATE_PRIMARY_WSDL(Object arg0) {
-        return messageFactory.getMessage("duplicate.primary.wsdl", arg0);
+        return MESSAGE_FACTORY.getMessage("duplicate.primary.wsdl", arg0);
     }
 
     /**
@@ -625,59 +323,35 @@
      *
      */
     public static String DUPLICATE_PRIMARY_WSDL(Object arg0) {
-        return localizer.localize(localizableDUPLICATE_PRIMARY_WSDL(arg0));
+        return LOCALIZER.localize(localizableDUPLICATE_PRIMARY_WSDL(arg0));
     }
 
-    public static Localizable localizableDUPLICATE_ABSTRACT_WSDL(Object arg0) {
-        return messageFactory.getMessage("duplicate.abstract.wsdl", arg0);
+    public static Localizable localizableGENERATE_NON_STANDARD_WSDL() {
+        return MESSAGE_FACTORY.getMessage("generate.non.standard.wsdl");
     }
 
     /**
-     * Metadata has more than one WSDL that has PortType definition for the endpoint. WSDL={0} is one such WSDL.
+     * Generating non-standard WSDL for the specified binding
      *
      */
-    public static String DUPLICATE_ABSTRACT_WSDL(Object arg0) {
-        return localizer.localize(localizableDUPLICATE_ABSTRACT_WSDL(arg0));
+    public static String GENERATE_NON_STANDARD_WSDL() {
+        return LOCALIZER.localize(localizableGENERATE_NON_STANDARD_WSDL());
     }
 
-    public static Localizable localizableSTATEFUL_INVALID_WEBSERVICE_CONTEXT(Object arg0) {
-        return messageFactory.getMessage("stateful.invalid.webservice.context", arg0);
+    public static Localizable localizableRUNTIME_PARSER_MISSING_ATTRIBUTE_NO_LINE() {
+        return MESSAGE_FACTORY.getMessage("runtime.parser.missing.attribute.no.line");
     }
 
     /**
-     * Not a WebServiceContext from JAX-WS RI: {0}
+     * missing attribute "{2}" in element "{1}" of runtime descriptor
      *
      */
-    public static String STATEFUL_INVALID_WEBSERVICE_CONTEXT(Object arg0) {
-        return localizer.localize(localizableSTATEFUL_INVALID_WEBSERVICE_CONTEXT(arg0));
-    }
-
-    public static Localizable localizableRUNTIME_PARSER_INVALID_ELEMENT(Object arg0, Object arg1) {
-        return messageFactory.getMessage("runtime.parser.invalidElement", arg0, arg1);
-    }
-
-    /**
-     * invalid element "{1}" in runtime descriptor (line {0})
-     *
-     */
-    public static String RUNTIME_PARSER_INVALID_ELEMENT(Object arg0, Object arg1) {
-        return localizer.localize(localizableRUNTIME_PARSER_INVALID_ELEMENT(arg0, arg1));
-    }
-
-    public static Localizable localizableRUNTIME_PARSER_MISSING_ATTRIBUTE(Object arg0, Object arg1, Object arg2) {
-        return messageFactory.getMessage("runtime.parser.missing.attribute", arg0, arg1, arg2);
-    }
-
-    /**
-     * missing attribute "{2}" in element "{1}" of runtime descriptor (line {0})
-     *
-     */
-    public static String RUNTIME_PARSER_MISSING_ATTRIBUTE(Object arg0, Object arg1, Object arg2) {
-        return localizer.localize(localizableRUNTIME_PARSER_MISSING_ATTRIBUTE(arg0, arg1, arg2));
+    public static String RUNTIME_PARSER_MISSING_ATTRIBUTE_NO_LINE() {
+        return LOCALIZER.localize(localizableRUNTIME_PARSER_MISSING_ATTRIBUTE_NO_LINE());
     }
 
     public static Localizable localizableWRONG_FIELD_TYPE(Object arg0) {
-        return messageFactory.getMessage("wrong.field.type", arg0);
+        return MESSAGE_FACTORY.getMessage("wrong.field.type", arg0);
     }
 
     /**
@@ -685,35 +359,11 @@
      *
      */
     public static String WRONG_FIELD_TYPE(Object arg0) {
-        return localizer.localize(localizableWRONG_FIELD_TYPE(arg0));
-    }
-
-    public static Localizable localizableDUPLICATE_PORT_KNOWN_HEADER(Object arg0) {
-        return messageFactory.getMessage("duplicate.portKnownHeader", arg0);
-    }
-
-    /**
-     * Received SOAP message contains duplicate header: {0} for a bound parameter
-     *
-     */
-    public static String DUPLICATE_PORT_KNOWN_HEADER(Object arg0) {
-        return localizer.localize(localizableDUPLICATE_PORT_KNOWN_HEADER(arg0));
-    }
-
-    public static Localizable localizableUNSUPPORTED_CONTENT_TYPE(Object arg0, Object arg1) {
-        return messageFactory.getMessage("unsupported.contentType", arg0, arg1);
-    }
-
-    /**
-     * Unsupported Content-Type: {0} Supported ones are: {1}
-     *
-     */
-    public static String UNSUPPORTED_CONTENT_TYPE(Object arg0, Object arg1) {
-        return localizer.localize(localizableUNSUPPORTED_CONTENT_TYPE(arg0, arg1));
+        return LOCALIZER.localize(localizableWRONG_FIELD_TYPE(arg0));
     }
 
     public static Localizable localizableFAILED_TO_INSTANTIATE_INSTANCE_RESOLVER(Object arg0, Object arg1, Object arg2) {
-        return messageFactory.getMessage("failed.to.instantiate.instanceResolver", arg0, arg1, arg2);
+        return MESSAGE_FACTORY.getMessage("failed.to.instantiate.instanceResolver", arg0, arg1, arg2);
     }
 
     /**
@@ -721,19 +371,378 @@
      *
      */
     public static String FAILED_TO_INSTANTIATE_INSTANCE_RESOLVER(Object arg0, Object arg1, Object arg2) {
-        return localizer.localize(localizableFAILED_TO_INSTANTIATE_INSTANCE_RESOLVER(arg0, arg1, arg2));
+        return LOCALIZER.localize(localizableFAILED_TO_INSTANTIATE_INSTANCE_RESOLVER(arg0, arg1, arg2));
     }
 
-    public static Localizable localizableDD_MTOM_CONFLICT(Object arg0, Object arg1) {
-        return messageFactory.getMessage("dd.mtom.conflict", arg0, arg1);
+    public static Localizable localizablePROVIDER_NOT_PARAMETERIZED(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("provider.not.parameterized", arg0);
     }
 
     /**
-     * Error in Deployment Descriptor : MTOM Configuration in binding {0} conflicts with enable-mtom attribute value {1}
+     * "{0}" implements Provider but doesn't specify the type parameter
      *
      */
-    public static String DD_MTOM_CONFLICT(Object arg0, Object arg1) {
-        return localizer.localize(localizableDD_MTOM_CONFLICT(arg0, arg1));
+    public static String PROVIDER_NOT_PARAMETERIZED(Object arg0) {
+        return LOCALIZER.localize(localizablePROVIDER_NOT_PARAMETERIZED(arg0));
+    }
+
+    public static Localizable localizableDISPATCH_CANNOT_FIND_METHOD(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("dispatch.cannotFindMethod", arg0);
+    }
+
+    /**
+     * Cannot find dispatch method for {0}
+     *
+     */
+    public static String DISPATCH_CANNOT_FIND_METHOD(Object arg0) {
+        return LOCALIZER.localize(localizableDISPATCH_CANNOT_FIND_METHOD(arg0));
+    }
+
+    public static Localizable localizableRUNTIME_PARSER_WRONG_ELEMENT(Object arg0, Object arg1, Object arg2) {
+        return MESSAGE_FACTORY.getMessage("runtime.parser.wrong.element", arg0, arg1, arg2);
+    }
+
+    /**
+     * found element "{1}", expected "{2}" in runtime descriptor (line {0})
+     *
+     */
+    public static String RUNTIME_PARSER_WRONG_ELEMENT(Object arg0, Object arg1, Object arg2) {
+        return LOCALIZER.localize(localizableRUNTIME_PARSER_WRONG_ELEMENT(arg0, arg1, arg2));
+    }
+
+    public static Localizable localizableUNSUPPORTED_CHARSET(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("unsupported.charset", arg0);
+    }
+
+    /**
+     * Unsupported charset "{0}" in the received message''s Content-Type
+     *
+     */
+    public static String UNSUPPORTED_CHARSET(Object arg0) {
+        return LOCALIZER.localize(localizableUNSUPPORTED_CHARSET(arg0));
+    }
+
+    public static Localizable localizableSTATEFUL_COOKIE_HEADER_REQUIRED(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("stateful.cookie.header.required", arg0);
+    }
+
+    /**
+     * This is a stateful web service and {0} header is required.
+     *
+     */
+    public static String STATEFUL_COOKIE_HEADER_REQUIRED(Object arg0) {
+        return LOCALIZER.localize(localizableSTATEFUL_COOKIE_HEADER_REQUIRED(arg0));
+    }
+
+    public static Localizable localizableRUNTIME_WSDL_PATCHER() {
+        return MESSAGE_FACTORY.getMessage("runtime.wsdl.patcher");
+    }
+
+    /**
+     * error while patching WSDL related document
+     *
+     */
+    public static String RUNTIME_WSDL_PATCHER() {
+        return LOCALIZER.localize(localizableRUNTIME_WSDL_PATCHER());
+    }
+
+    public static Localizable localizableSTATEFUL_REQURES_ADDRESSING(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("stateful.requres.addressing", arg0);
+    }
+
+    /**
+     * Stateful web service {0} requires the WS-Addressing support to be enabled. Perhaps you are missing @Addressing
+     *
+     */
+    public static String STATEFUL_REQURES_ADDRESSING(Object arg0) {
+        return LOCALIZER.localize(localizableSTATEFUL_REQURES_ADDRESSING(arg0));
+    }
+
+    public static Localizable localizableNON_UNIQUE_DISPATCH_QNAME(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("non.unique.dispatch.qname", arg0, arg1);
+    }
+
+    /**
+     * Non unique body parts! In a port, as per BP 1.1 R2710 operations must have unique operation signature on the wire for successful dispatch. Methods {0} have the same request body block {1}. Method dispatching may fail, runtime will try to dispatch using SOAPAction. Another option is to enable AddressingFeature to enabled runtime to uniquely identify WSDL operation using wsa:Action header.
+     *
+     */
+    public static String NON_UNIQUE_DISPATCH_QNAME(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableNON_UNIQUE_DISPATCH_QNAME(arg0, arg1));
+    }
+
+    public static Localizable localizableALREADY_HTTP_SERVER(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("already.http.server", arg0);
+    }
+
+    /**
+     * There is already a HTTP server at : {0}# {0} - probably URL/port of a server
+     *
+     */
+    public static String ALREADY_HTTP_SERVER(Object arg0) {
+        return LOCALIZER.localize(localizableALREADY_HTTP_SERVER(arg0));
+    }
+
+    public static Localizable localizableWRONG_NO_PARAMETERS(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("wrong.no.parameters", arg0);
+    }
+
+    /**
+     * Incorrect no of arguments for method "{0}"
+     *
+     */
+    public static String WRONG_NO_PARAMETERS(Object arg0) {
+        return LOCALIZER.localize(localizableWRONG_NO_PARAMETERS(arg0));
+    }
+
+    public static Localizable localizableNOT_ZERO_PARAMETERS(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("not.zero.parameters", arg0);
+    }
+
+    /**
+     * Method "{0}" shouldn''t have any arguments
+     *
+     */
+    public static String NOT_ZERO_PARAMETERS(Object arg0) {
+        return LOCALIZER.localize(localizableNOT_ZERO_PARAMETERS(arg0));
+    }
+
+    public static Localizable localizableRUNTIME_PARSER_INVALID_ATTRIBUTE_VALUE(Object arg0, Object arg1, Object arg2) {
+        return MESSAGE_FACTORY.getMessage("runtime.parser.invalidAttributeValue", arg0, arg1, arg2);
+    }
+
+    /**
+     * invalid value for attribute "{2}" of element "{1}" in runtime descriptor (line {0})
+     *
+     */
+    public static String RUNTIME_PARSER_INVALID_ATTRIBUTE_VALUE(Object arg0, Object arg1, Object arg2) {
+        return LOCALIZER.localize(localizableRUNTIME_PARSER_INVALID_ATTRIBUTE_VALUE(arg0, arg1, arg2));
+    }
+
+    public static Localizable localizableRUNTIME_PARSER_MISSING_ATTRIBUTE(Object arg0, Object arg1, Object arg2) {
+        return MESSAGE_FACTORY.getMessage("runtime.parser.missing.attribute", arg0, arg1, arg2);
+    }
+
+    /**
+     * missing attribute "{2}" in element "{1}" of runtime descriptor (line {0})
+     *
+     */
+    public static String RUNTIME_PARSER_MISSING_ATTRIBUTE(Object arg0, Object arg1, Object arg2) {
+        return LOCALIZER.localize(localizableRUNTIME_PARSER_MISSING_ATTRIBUTE(arg0, arg1, arg2));
+    }
+
+    public static Localizable localizableRUNTIME_PARSER_UNEXPECTED_CONTENT(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("runtime.parser.unexpectedContent", arg0);
+    }
+
+    /**
+     * unexpected content in runtime descriptor (line {0})
+     *
+     */
+    public static String RUNTIME_PARSER_UNEXPECTED_CONTENT(Object arg0) {
+        return LOCALIZER.localize(localizableRUNTIME_PARSER_UNEXPECTED_CONTENT(arg0));
+    }
+
+    public static Localizable localizableRUNTIME_PARSER_CLASS_NOT_FOUND(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("runtime.parser.classNotFound", arg0);
+    }
+
+    /**
+     * class not found in runtime descriptor: {0}
+     *
+     */
+    public static String RUNTIME_PARSER_CLASS_NOT_FOUND(Object arg0) {
+        return LOCALIZER.localize(localizableRUNTIME_PARSER_CLASS_NOT_FOUND(arg0));
+    }
+
+    public static Localizable localizableSTATEFUL_INVALID_WEBSERVICE_CONTEXT(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("stateful.invalid.webservice.context", arg0);
+    }
+
+    /**
+     * Not a WebServiceContext from JAX-WS RI: {0}
+     *
+     */
+    public static String STATEFUL_INVALID_WEBSERVICE_CONTEXT(Object arg0) {
+        return LOCALIZER.localize(localizableSTATEFUL_INVALID_WEBSERVICE_CONTEXT(arg0));
+    }
+
+    public static Localizable localizableNO_CURRENT_PACKET() {
+        return MESSAGE_FACTORY.getMessage("no.current.packet");
+    }
+
+    /**
+     * This thread is not currently processing any web service request.
+     *
+     */
+    public static String NO_CURRENT_PACKET() {
+        return LOCALIZER.localize(localizableNO_CURRENT_PACKET());
+    }
+
+    public static Localizable localizableDUPLICATE_PORT_KNOWN_HEADER(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("duplicate.portKnownHeader", arg0);
+    }
+
+    /**
+     * Received SOAP message contains duplicate header: {0} for a bound parameter
+     *
+     */
+    public static String DUPLICATE_PORT_KNOWN_HEADER(Object arg0) {
+        return LOCALIZER.localize(localizableDUPLICATE_PORT_KNOWN_HEADER(arg0));
+    }
+
+    public static Localizable localizableSTATIC_RESOURCE_INJECTION_ONLY(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("static.resource.injection.only", arg0, arg1);
+    }
+
+    /**
+     * Static resource {0} cannot be injected to non-static "{1}"
+     *
+     */
+    public static String STATIC_RESOURCE_INJECTION_ONLY(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableSTATIC_RESOURCE_INJECTION_ONLY(arg0, arg1));
+    }
+
+    public static Localizable localizableCAN_NOT_GENERATE_WSDL(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("can.not.generate.wsdl", arg0);
+    }
+
+    /**
+     * Cannot generate WSDL for binding "{0}"
+     *
+     */
+    public static String CAN_NOT_GENERATE_WSDL(Object arg0) {
+        return LOCALIZER.localize(localizableCAN_NOT_GENERATE_WSDL(arg0));
+    }
+
+    public static Localizable localizableALREADY_HTTPS_SERVER(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("already.https.server", arg0);
+    }
+
+    /**
+     * There is already a HTTPS server at : {0}
+     *
+     */
+    public static String ALREADY_HTTPS_SERVER(Object arg0) {
+        return LOCALIZER.localize(localizableALREADY_HTTPS_SERVER(arg0));
+    }
+
+    public static Localizable localizableRUNTIME_PARSER_INVALID_ELEMENT(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("runtime.parser.invalidElement", arg0, arg1);
+    }
+
+    /**
+     * invalid element "{1}" in runtime descriptor (line {0})
+     *
+     */
+    public static String RUNTIME_PARSER_INVALID_ELEMENT(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableRUNTIME_PARSER_INVALID_ELEMENT(arg0, arg1));
+    }
+
+    public static Localizable localizableRUNTIME_PARSER_WSDL_MULTIPLEBINDING(Object arg0, Object arg1, Object arg2) {
+        return MESSAGE_FACTORY.getMessage("runtime.parser.wsdl.multiplebinding", arg0, arg1, arg2);
+    }
+
+    /**
+     * multiple bindings found for binding ID {0} for service {1} in WSDL {2}
+     *
+     */
+    public static String RUNTIME_PARSER_WSDL_MULTIPLEBINDING(Object arg0, Object arg1, Object arg2) {
+        return LOCALIZER.localize(localizableRUNTIME_PARSER_WSDL_MULTIPLEBINDING(arg0, arg1, arg2));
+    }
+
+    public static Localizable localizableRUNTIMEMODELER_INVALIDANNOTATION_ON_IMPL(Object arg0, Object arg1, Object arg2) {
+        return MESSAGE_FACTORY.getMessage("runtimemodeler.invalidannotationOnImpl", arg0, arg1, arg2);
+    }
+
+    /**
+     * Invalid annotation: {0} on endpoint implementation class "{1}" - will be ignored. "{1}" is annotated with @WebService(endpointInterface="{2}"}, it must not be annotated with {0}, to fix it - put this annotation on the SEI {2}.
+     *
+     */
+    public static String RUNTIMEMODELER_INVALIDANNOTATION_ON_IMPL(Object arg0, Object arg1, Object arg2) {
+        return LOCALIZER.localize(localizableRUNTIMEMODELER_INVALIDANNOTATION_ON_IMPL(arg0, arg1, arg2));
+    }
+
+    public static Localizable localizablePROVIDER_INVALID_PARAMETER_TYPE(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("provider.invalid.parameterType", arg0, arg1);
+    }
+
+    /**
+     * "{0}" implements Provider but its type parameter {1} is incorrect
+     *
+     */
+    public static String PROVIDER_INVALID_PARAMETER_TYPE(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizablePROVIDER_INVALID_PARAMETER_TYPE(arg0, arg1));
+    }
+
+    public static Localizable localizableRUNTIME_PARSER_WSDL(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("runtime.parser.wsdl", arg0);
+    }
+
+    /**
+     * exception during WSDL parsing: {0}
+     *
+     */
+    public static String RUNTIME_PARSER_WSDL(Object arg0) {
+        return LOCALIZER.localize(localizableRUNTIME_PARSER_WSDL(arg0));
+    }
+
+    public static Localizable localizableNO_CONTENT_TYPE() {
+        return MESSAGE_FACTORY.getMessage("no.contentType");
+    }
+
+    /**
+     * Request doesn't have a Content-Type
+     *
+     */
+    public static String NO_CONTENT_TYPE() {
+        return LOCALIZER.localize(localizableNO_CONTENT_TYPE());
+    }
+
+    public static Localizable localizableNOT_IMPLEMENT_PROVIDER(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("not.implement.provider", arg0);
+    }
+
+    /**
+     * "{0}" doesn't implement Provider
+     *
+     */
+    public static String NOT_IMPLEMENT_PROVIDER(Object arg0) {
+        return LOCALIZER.localize(localizableNOT_IMPLEMENT_PROVIDER(arg0));
+    }
+
+    public static Localizable localizableSOAPDECODER_ERR() {
+        return MESSAGE_FACTORY.getMessage("soapdecoder.err");
+    }
+
+    /**
+     * Error in decoding SOAP Message
+     *
+     */
+    public static String SOAPDECODER_ERR() {
+        return LOCALIZER.localize(localizableSOAPDECODER_ERR());
+    }
+
+    public static Localizable localizablePORT_NAME_REQUIRED() {
+        return MESSAGE_FACTORY.getMessage("port.name.required");
+    }
+
+    /**
+     * Port QName is not found
+     *
+     */
+    public static String PORT_NAME_REQUIRED() {
+        return LOCALIZER.localize(localizablePORT_NAME_REQUIRED());
+    }
+
+    private static class BundleSupplier
+        implements ResourceBundleSupplier
+    {
+
+
+        public ResourceBundle getResourceBundle(Locale locale) {
+            return ResourceBundle.getBundle(BUNDLE_NAME, locale);
+        }
+
     }
 
 }
diff --git a/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/resources/SoapMessages.java b/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/resources/SoapMessages.java
index 2710db4..961660c 100644
--- a/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/resources/SoapMessages.java
+++ b/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/resources/SoapMessages.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,30 +25,28 @@
 
 package com.sun.xml.internal.ws.resources;
 
-import com.sun.istack.internal.localization.Localizable;
-import com.sun.istack.internal.localization.LocalizableMessageFactory;
-import com.sun.istack.internal.localization.Localizer;
-
 import java.util.Locale;
 import java.util.ResourceBundle;
+import javax.annotation.Generated;
+import com.sun.istack.internal.localization.Localizable;
+import com.sun.istack.internal.localization.LocalizableMessageFactory;
+import com.sun.istack.internal.localization.LocalizableMessageFactory.ResourceBundleSupplier;
+import com.sun.istack.internal.localization.Localizer;
 
 
 /**
  * Defines string formatting method for each constant in the resource file
  *
  */
+@Generated("com.sun.istack.internal.maven.ResourceGenMojo")
 public final class SoapMessages {
-    private final static String BUNDLE_NAME = "com.sun.xml.internal.ws.resources.soap";
-    private final static LocalizableMessageFactory messageFactory =
-        new LocalizableMessageFactory(BUNDLE_NAME, SoapMessages::getResourceBundle);
-    private final static Localizer localizer = new Localizer();
 
-    private static ResourceBundle getResourceBundle(Locale locale) {
-        return ResourceBundle.getBundle(BUNDLE_NAME, locale);
-    }
+    private final static String BUNDLE_NAME = "com.sun.xml.internal.ws.resources.soap";
+    private final static LocalizableMessageFactory MESSAGE_FACTORY = new LocalizableMessageFactory(BUNDLE_NAME, new SoapMessages.BundleSupplier());
+    private final static Localizer LOCALIZER = new Localizer();
 
     public static Localizable localizableSOAP_FAULT_CREATE_ERR(Object arg0) {
-        return messageFactory.getMessage("soap.fault.create.err", arg0);
+        return MESSAGE_FACTORY.getMessage("soap.fault.create.err", arg0);
     }
 
     /**
@@ -56,47 +54,11 @@
      *
      */
     public static String SOAP_FAULT_CREATE_ERR(Object arg0) {
-        return localizer.localize(localizableSOAP_FAULT_CREATE_ERR(arg0));
-    }
-
-    public static Localizable localizableSOAP_MSG_FACTORY_CREATE_ERR(Object arg0) {
-        return messageFactory.getMessage("soap.msg.factory.create.err", arg0);
-    }
-
-    /**
-     * Couldn''t create SOAP message factory due to exception: {0}
-     *
-     */
-    public static String SOAP_MSG_FACTORY_CREATE_ERR(Object arg0) {
-        return localizer.localize(localizableSOAP_MSG_FACTORY_CREATE_ERR(arg0));
-    }
-
-    public static Localizable localizableSOAP_MSG_CREATE_ERR(Object arg0) {
-        return messageFactory.getMessage("soap.msg.create.err", arg0);
-    }
-
-    /**
-     * Couldn''t create SOAP message due to exception: {0}
-     *
-     */
-    public static String SOAP_MSG_CREATE_ERR(Object arg0) {
-        return localizer.localize(localizableSOAP_MSG_CREATE_ERR(arg0));
-    }
-
-    public static Localizable localizableSOAP_FACTORY_CREATE_ERR(Object arg0) {
-        return messageFactory.getMessage("soap.factory.create.err", arg0);
-    }
-
-    /**
-     * Couldn''t create SOAP factory due to exception: {0}
-     *
-     */
-    public static String SOAP_FACTORY_CREATE_ERR(Object arg0) {
-        return localizer.localize(localizableSOAP_FACTORY_CREATE_ERR(arg0));
+        return LOCALIZER.localize(localizableSOAP_FAULT_CREATE_ERR(arg0));
     }
 
     public static Localizable localizableSOAP_PROTOCOL_INVALID_FAULT_CODE(Object arg0) {
-        return messageFactory.getMessage("soap.protocol.invalidFaultCode", arg0);
+        return MESSAGE_FACTORY.getMessage("soap.protocol.invalidFaultCode", arg0);
     }
 
     /**
@@ -104,11 +66,11 @@
      *
      */
     public static String SOAP_PROTOCOL_INVALID_FAULT_CODE(Object arg0) {
-        return localizer.localize(localizableSOAP_PROTOCOL_INVALID_FAULT_CODE(arg0));
+        return LOCALIZER.localize(localizableSOAP_PROTOCOL_INVALID_FAULT_CODE(arg0));
     }
 
     public static Localizable localizableSOAP_VERSION_MISMATCH_ERR(Object arg0, Object arg1) {
-        return messageFactory.getMessage("soap.version.mismatch.err", arg0, arg1);
+        return MESSAGE_FACTORY.getMessage("soap.version.mismatch.err", arg0, arg1);
     }
 
     /**
@@ -116,7 +78,54 @@
      *
      */
     public static String SOAP_VERSION_MISMATCH_ERR(Object arg0, Object arg1) {
-        return localizer.localize(localizableSOAP_VERSION_MISMATCH_ERR(arg0, arg1));
+        return LOCALIZER.localize(localizableSOAP_VERSION_MISMATCH_ERR(arg0, arg1));
+    }
+
+    public static Localizable localizableSOAP_MSG_FACTORY_CREATE_ERR(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("soap.msg.factory.create.err", arg0);
+    }
+
+    /**
+     * Couldn''t create SOAP message factory due to exception: {0}
+     *
+     */
+    public static String SOAP_MSG_FACTORY_CREATE_ERR(Object arg0) {
+        return LOCALIZER.localize(localizableSOAP_MSG_FACTORY_CREATE_ERR(arg0));
+    }
+
+    public static Localizable localizableSOAP_MSG_CREATE_ERR(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("soap.msg.create.err", arg0);
+    }
+
+    /**
+     * Couldn''t create SOAP message due to exception: {0}
+     *
+     */
+    public static String SOAP_MSG_CREATE_ERR(Object arg0) {
+        return LOCALIZER.localize(localizableSOAP_MSG_CREATE_ERR(arg0));
+    }
+
+    public static Localizable localizableSOAP_FACTORY_CREATE_ERR(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("soap.factory.create.err", arg0);
+    }
+
+    /**
+     * Couldn''t create SOAP factory due to exception: {0}
+     *
+     */
+    public static String SOAP_FACTORY_CREATE_ERR(Object arg0) {
+        return LOCALIZER.localize(localizableSOAP_FACTORY_CREATE_ERR(arg0));
+    }
+
+    private static class BundleSupplier
+        implements ResourceBundleSupplier
+    {
+
+
+        public ResourceBundle getResourceBundle(Locale locale) {
+            return ResourceBundle.getBundle(BUNDLE_NAME, locale);
+        }
+
     }
 
 }
diff --git a/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/resources/StreamingMessages.java b/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/resources/StreamingMessages.java
index 65ce3fe..da66bb6 100644
--- a/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/resources/StreamingMessages.java
+++ b/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/resources/StreamingMessages.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,258 +25,28 @@
 
 package com.sun.xml.internal.ws.resources;
 
-import com.sun.istack.internal.localization.Localizable;
-import com.sun.istack.internal.localization.LocalizableMessageFactory;
-import com.sun.istack.internal.localization.Localizer;
-
 import java.util.Locale;
 import java.util.ResourceBundle;
+import javax.annotation.Generated;
+import com.sun.istack.internal.localization.Localizable;
+import com.sun.istack.internal.localization.LocalizableMessageFactory;
+import com.sun.istack.internal.localization.LocalizableMessageFactory.ResourceBundleSupplier;
+import com.sun.istack.internal.localization.Localizer;
 
 
 /**
  * Defines string formatting method for each constant in the resource file
  *
  */
+@Generated("com.sun.istack.internal.maven.ResourceGenMojo")
 public final class StreamingMessages {
+
     private final static String BUNDLE_NAME = "com.sun.xml.internal.ws.resources.streaming";
-    private final static LocalizableMessageFactory messageFactory =
-        new LocalizableMessageFactory(BUNDLE_NAME, StreamingMessages::getResourceBundle);
-    private final static Localizer localizer = new Localizer();
-
-    private static ResourceBundle getResourceBundle(Locale locale) {
-        return ResourceBundle.getBundle(BUNDLE_NAME, locale);
-    }
-
-    public static Localizable localizableFASTINFOSET_DECODING_NOT_ACCEPTED() {
-        return messageFactory.getMessage("fastinfoset.decodingNotAccepted");
-    }
-
-    /**
-     * Fast Infoset decoding is not accepted
-     *
-     */
-    public static String FASTINFOSET_DECODING_NOT_ACCEPTED() {
-        return localizer.localize(localizableFASTINFOSET_DECODING_NOT_ACCEPTED());
-    }
-
-    public static Localizable localizableSTAX_CANT_CREATE() {
-        return messageFactory.getMessage("stax.cantCreate");
-    }
-
-    /**
-     * Unable to create StAX reader or writer
-     *
-     */
-    public static String STAX_CANT_CREATE() {
-        return localizer.localize(localizableSTAX_CANT_CREATE());
-    }
-
-    public static Localizable localizableSTREAMING_IO_EXCEPTION(Object arg0) {
-        return messageFactory.getMessage("streaming.ioException", arg0);
-    }
-
-    /**
-     * XML parsing error: {0}
-     *
-     */
-    public static String STREAMING_IO_EXCEPTION(Object arg0) {
-        return localizer.localize(localizableSTREAMING_IO_EXCEPTION(arg0));
-    }
-
-    public static Localizable localizableSOURCEREADER_INVALID_SOURCE(Object arg0) {
-        return messageFactory.getMessage("sourcereader.invalidSource", arg0);
-    }
-
-    /**
-     * Unable to create reader from source "{0}"
-     *
-     */
-    public static String SOURCEREADER_INVALID_SOURCE(Object arg0) {
-        return localizer.localize(localizableSOURCEREADER_INVALID_SOURCE(arg0));
-    }
-
-    public static Localizable localizableXMLREADER_UNEXPECTED_STATE(Object arg0, Object arg1) {
-        return messageFactory.getMessage("xmlreader.unexpectedState", arg0, arg1);
-    }
-
-    /**
-     * unexpected XML reader state. expected: {0} but found: {1}
-     *
-     */
-    public static String XMLREADER_UNEXPECTED_STATE(Object arg0, Object arg1) {
-        return localizer.localize(localizableXMLREADER_UNEXPECTED_STATE(arg0, arg1));
-    }
-
-    public static Localizable localizableWOODSTOX_CANT_LOAD(Object arg0) {
-        return messageFactory.getMessage("woodstox.cant.load", arg0);
-    }
-
-    /**
-     * Unable to load Woodstox class {0}
-     *
-     */
-    public static String WOODSTOX_CANT_LOAD(Object arg0) {
-        return localizer.localize(localizableWOODSTOX_CANT_LOAD(arg0));
-    }
-
-    public static Localizable localizableXMLREADER_IO_EXCEPTION(Object arg0) {
-        return messageFactory.getMessage("xmlreader.ioException", arg0);
-    }
-
-    /**
-     * XML reader error: {0}
-     *
-     */
-    public static String XMLREADER_IO_EXCEPTION(Object arg0) {
-        return localizer.localize(localizableXMLREADER_IO_EXCEPTION(arg0));
-    }
-
-    public static Localizable localizableFASTINFOSET_NO_IMPLEMENTATION() {
-        return messageFactory.getMessage("fastinfoset.noImplementation");
-    }
-
-    /**
-     * Unable to locate compatible implementation of Fast Infoset in classpath
-     *
-     */
-    public static String FASTINFOSET_NO_IMPLEMENTATION() {
-        return localizer.localize(localizableFASTINFOSET_NO_IMPLEMENTATION());
-    }
-
-    public static Localizable localizableINVALID_PROPERTY_VALUE_INTEGER(Object arg0, Object arg1, Object arg2) {
-        return messageFactory.getMessage("invalid.property.value.integer", arg0, arg1, arg2);
-    }
-
-    /**
-     * Ignoring system property "{0}" as value "{1}" is invalid, property value must be a valid integer. Using default value "{2}".
-     *
-     */
-    public static String INVALID_PROPERTY_VALUE_INTEGER(Object arg0, Object arg1, Object arg2) {
-        return localizer.localize(localizableINVALID_PROPERTY_VALUE_INTEGER(arg0, arg1, arg2));
-    }
-
-    public static Localizable localizableXMLWRITER_IO_EXCEPTION(Object arg0) {
-        return messageFactory.getMessage("xmlwriter.ioException", arg0);
-    }
-
-    /**
-     * XML writer error: {0}
-     *
-     */
-    public static String XMLWRITER_IO_EXCEPTION(Object arg0) {
-        return localizer.localize(localizableXMLWRITER_IO_EXCEPTION(arg0));
-    }
-
-    public static Localizable localizableXMLREADER_UNEXPECTED_CHARACTER_CONTENT(Object arg0) {
-        return messageFactory.getMessage("xmlreader.unexpectedCharacterContent", arg0);
-    }
-
-    /**
-     * XML reader error: unexpected character content: "{0}"
-     *
-     */
-    public static String XMLREADER_UNEXPECTED_CHARACTER_CONTENT(Object arg0) {
-        return localizer.localize(localizableXMLREADER_UNEXPECTED_CHARACTER_CONTENT(arg0));
-    }
-
-    public static Localizable localizableSTREAMING_PARSE_EXCEPTION(Object arg0) {
-        return messageFactory.getMessage("streaming.parseException", arg0);
-    }
-
-    /**
-     * XML parsing error: {0}
-     *
-     */
-    public static String STREAMING_PARSE_EXCEPTION(Object arg0) {
-        return localizer.localize(localizableSTREAMING_PARSE_EXCEPTION(arg0));
-    }
-
-    public static Localizable localizableXMLWRITER_NO_PREFIX_FOR_URI(Object arg0) {
-        return messageFactory.getMessage("xmlwriter.noPrefixForURI", arg0);
-    }
-
-    /**
-     * XML writer error: no prefix for URI: "{0}"
-     *
-     */
-    public static String XMLWRITER_NO_PREFIX_FOR_URI(Object arg0) {
-        return localizer.localize(localizableXMLWRITER_NO_PREFIX_FOR_URI(arg0));
-    }
-
-    public static Localizable localizableXMLREADER_NESTED_ERROR(Object arg0) {
-        return messageFactory.getMessage("xmlreader.nestedError", arg0);
-    }
-
-    /**
-     * XML reader error: {0}
-     *
-     */
-    public static String XMLREADER_NESTED_ERROR(Object arg0) {
-        return localizer.localize(localizableXMLREADER_NESTED_ERROR(arg0));
-    }
-
-    public static Localizable localizableINVALID_PROPERTY_VALUE_LONG(Object arg0, Object arg1, Object arg2) {
-        return messageFactory.getMessage("invalid.property.value.long", arg0, arg1, arg2);
-    }
-
-    /**
-     * Ignoring system property "{0}" as value "{1}" is invalid, property value must be a valid long. Using default value "{2}".
-     *
-     */
-    public static String INVALID_PROPERTY_VALUE_LONG(Object arg0, Object arg1, Object arg2) {
-        return localizer.localize(localizableINVALID_PROPERTY_VALUE_LONG(arg0, arg1, arg2));
-    }
-
-    public static Localizable localizableSTAXREADER_XMLSTREAMEXCEPTION(Object arg0) {
-        return messageFactory.getMessage("staxreader.xmlstreamexception", arg0);
-    }
-
-    /**
-     * XML stream reader exception: {0}
-     *
-     */
-    public static String STAXREADER_XMLSTREAMEXCEPTION(Object arg0) {
-        return localizer.localize(localizableSTAXREADER_XMLSTREAMEXCEPTION(arg0));
-    }
-
-    public static Localizable localizableXMLWRITER_NESTED_ERROR(Object arg0) {
-        return messageFactory.getMessage("xmlwriter.nestedError", arg0);
-    }
-
-    /**
-     * XML writer error: {0}
-     *
-     */
-    public static String XMLWRITER_NESTED_ERROR(Object arg0) {
-        return localizer.localize(localizableXMLWRITER_NESTED_ERROR(arg0));
-    }
-
-    public static Localizable localizableXMLREADER_ILLEGAL_STATE_ENCOUNTERED(Object arg0) {
-        return messageFactory.getMessage("xmlreader.illegalStateEncountered", arg0);
-    }
-
-    /**
-     * XML reader internal error: illegal state ({0})
-     *
-     */
-    public static String XMLREADER_ILLEGAL_STATE_ENCOUNTERED(Object arg0) {
-        return localizer.localize(localizableXMLREADER_ILLEGAL_STATE_ENCOUNTERED(arg0));
-    }
-
-    public static Localizable localizableXMLREADER_UNEXPECTED_STATE_TAG(Object arg0, Object arg1) {
-        return messageFactory.getMessage("xmlreader.unexpectedState.tag", arg0, arg1);
-    }
-
-    /**
-     * unexpected XML tag. expected: {0} but found: {1}
-     *
-     */
-    public static String XMLREADER_UNEXPECTED_STATE_TAG(Object arg0, Object arg1) {
-        return localizer.localize(localizableXMLREADER_UNEXPECTED_STATE_TAG(arg0, arg1));
-    }
+    private final static LocalizableMessageFactory MESSAGE_FACTORY = new LocalizableMessageFactory(BUNDLE_NAME, new StreamingMessages.BundleSupplier());
+    private final static Localizer LOCALIZER = new Localizer();
 
     public static Localizable localizableXMLREADER_UNEXPECTED_STATE_MESSAGE(Object arg0, Object arg1, Object arg2) {
-        return messageFactory.getMessage("xmlreader.unexpectedState.message", arg0, arg1, arg2);
+        return MESSAGE_FACTORY.getMessage("xmlreader.unexpectedState.message", arg0, arg1, arg2);
     }
 
     /**
@@ -284,23 +54,11 @@
      *
      */
     public static String XMLREADER_UNEXPECTED_STATE_MESSAGE(Object arg0, Object arg1, Object arg2) {
-        return localizer.localize(localizableXMLREADER_UNEXPECTED_STATE_MESSAGE(arg0, arg1, arg2));
-    }
-
-    public static Localizable localizableXMLREADER_PARSE_EXCEPTION(Object arg0) {
-        return messageFactory.getMessage("xmlreader.parseException", arg0);
-    }
-
-    /**
-     * XML parsing error: {0}
-     *
-     */
-    public static String XMLREADER_PARSE_EXCEPTION(Object arg0) {
-        return localizer.localize(localizableXMLREADER_PARSE_EXCEPTION(arg0));
+        return LOCALIZER.localize(localizableXMLREADER_UNEXPECTED_STATE_MESSAGE(arg0, arg1, arg2));
     }
 
     public static Localizable localizableXMLRECORDER_RECORDING_ENDED() {
-        return messageFactory.getMessage("xmlrecorder.recording.ended");
+        return MESSAGE_FACTORY.getMessage("xmlrecorder.recording.ended");
     }
 
     /**
@@ -308,7 +66,258 @@
      *
      */
     public static String XMLRECORDER_RECORDING_ENDED() {
-        return localizer.localize(localizableXMLRECORDER_RECORDING_ENDED());
+        return LOCALIZER.localize(localizableXMLRECORDER_RECORDING_ENDED());
+    }
+
+    public static Localizable localizableXMLREADER_UNEXPECTED_STATE_TAG(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("xmlreader.unexpectedState.tag", arg0, arg1);
+    }
+
+    /**
+     * unexpected XML tag. expected: {0} but found: {1}
+     *
+     */
+    public static String XMLREADER_UNEXPECTED_STATE_TAG(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableXMLREADER_UNEXPECTED_STATE_TAG(arg0, arg1));
+    }
+
+    public static Localizable localizableFASTINFOSET_NO_IMPLEMENTATION() {
+        return MESSAGE_FACTORY.getMessage("fastinfoset.noImplementation");
+    }
+
+    /**
+     * Unable to locate compatible implementation of Fast Infoset in classpath
+     *
+     */
+    public static String FASTINFOSET_NO_IMPLEMENTATION() {
+        return LOCALIZER.localize(localizableFASTINFOSET_NO_IMPLEMENTATION());
+    }
+
+    public static Localizable localizableXMLREADER_NESTED_ERROR(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("xmlreader.nestedError", arg0);
+    }
+
+    /**
+     * XML reader error: {0}
+     *
+     */
+    public static String XMLREADER_NESTED_ERROR(Object arg0) {
+        return LOCALIZER.localize(localizableXMLREADER_NESTED_ERROR(arg0));
+    }
+
+    public static Localizable localizableWOODSTOX_CANT_LOAD(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("woodstox.cant.load", arg0);
+    }
+
+    /**
+     * Unable to load Woodstox class {0}
+     *
+     */
+    public static String WOODSTOX_CANT_LOAD(Object arg0) {
+        return LOCALIZER.localize(localizableWOODSTOX_CANT_LOAD(arg0));
+    }
+
+    public static Localizable localizableSOURCEREADER_INVALID_SOURCE(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("sourcereader.invalidSource", arg0);
+    }
+
+    /**
+     * Unable to create reader from source "{0}"
+     *
+     */
+    public static String SOURCEREADER_INVALID_SOURCE(Object arg0) {
+        return LOCALIZER.localize(localizableSOURCEREADER_INVALID_SOURCE(arg0));
+    }
+
+    public static Localizable localizableINVALID_PROPERTY_VALUE_INTEGER(Object arg0, Object arg1, Object arg2) {
+        return MESSAGE_FACTORY.getMessage("invalid.property.value.integer", arg0, arg1, arg2);
+    }
+
+    /**
+     * Ignoring system property "{0}" as value "{1}" is invalid, property value must be a valid integer. Using default value "{2}".
+     *
+     */
+    public static String INVALID_PROPERTY_VALUE_INTEGER(Object arg0, Object arg1, Object arg2) {
+        return LOCALIZER.localize(localizableINVALID_PROPERTY_VALUE_INTEGER(arg0, arg1, arg2));
+    }
+
+    public static Localizable localizableXMLWRITER_NO_PREFIX_FOR_URI(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("xmlwriter.noPrefixForURI", arg0);
+    }
+
+    /**
+     * XML writer error: no prefix for URI: "{0}"
+     *
+     */
+    public static String XMLWRITER_NO_PREFIX_FOR_URI(Object arg0) {
+        return LOCALIZER.localize(localizableXMLWRITER_NO_PREFIX_FOR_URI(arg0));
+    }
+
+    public static Localizable localizableSTREAMING_PARSE_EXCEPTION(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("streaming.parseException", arg0);
+    }
+
+    /**
+     * XML parsing error: {0}
+     *
+     */
+    public static String STREAMING_PARSE_EXCEPTION(Object arg0) {
+        return LOCALIZER.localize(localizableSTREAMING_PARSE_EXCEPTION(arg0));
+    }
+
+    public static Localizable localizableXMLREADER_IO_EXCEPTION(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("xmlreader.ioException", arg0);
+    }
+
+    /**
+     * XML reader error: {0}
+     *
+     */
+    public static String XMLREADER_IO_EXCEPTION(Object arg0) {
+        return LOCALIZER.localize(localizableXMLREADER_IO_EXCEPTION(arg0));
+    }
+
+    public static Localizable localizableFASTINFOSET_DECODING_NOT_ACCEPTED() {
+        return MESSAGE_FACTORY.getMessage("fastinfoset.decodingNotAccepted");
+    }
+
+    /**
+     * Fast Infoset decoding is not accepted
+     *
+     */
+    public static String FASTINFOSET_DECODING_NOT_ACCEPTED() {
+        return LOCALIZER.localize(localizableFASTINFOSET_DECODING_NOT_ACCEPTED());
+    }
+
+    public static Localizable localizableXMLREADER_ILLEGAL_STATE_ENCOUNTERED(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("xmlreader.illegalStateEncountered", arg0);
+    }
+
+    /**
+     * XML reader internal error: illegal state ({0})
+     *
+     */
+    public static String XMLREADER_ILLEGAL_STATE_ENCOUNTERED(Object arg0) {
+        return LOCALIZER.localize(localizableXMLREADER_ILLEGAL_STATE_ENCOUNTERED(arg0));
+    }
+
+    public static Localizable localizableSTAX_CANT_CREATE() {
+        return MESSAGE_FACTORY.getMessage("stax.cantCreate");
+    }
+
+    /**
+     * Unable to create StAX reader or writer
+     *
+     */
+    public static String STAX_CANT_CREATE() {
+        return LOCALIZER.localize(localizableSTAX_CANT_CREATE());
+    }
+
+    public static Localizable localizableSTAXREADER_XMLSTREAMEXCEPTION(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("staxreader.xmlstreamexception", arg0);
+    }
+
+    /**
+     * XML stream reader exception: {0}
+     *
+     */
+    public static String STAXREADER_XMLSTREAMEXCEPTION(Object arg0) {
+        return LOCALIZER.localize(localizableSTAXREADER_XMLSTREAMEXCEPTION(arg0));
+    }
+
+    public static Localizable localizableXMLREADER_UNEXPECTED_STATE(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("xmlreader.unexpectedState", arg0, arg1);
+    }
+
+    /**
+     * unexpected XML reader state. expected: {0} but found: {1}
+     *
+     */
+    public static String XMLREADER_UNEXPECTED_STATE(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableXMLREADER_UNEXPECTED_STATE(arg0, arg1));
+    }
+
+    public static Localizable localizableINVALID_PROPERTY_VALUE_LONG(Object arg0, Object arg1, Object arg2) {
+        return MESSAGE_FACTORY.getMessage("invalid.property.value.long", arg0, arg1, arg2);
+    }
+
+    /**
+     * Ignoring system property "{0}" as value "{1}" is invalid, property value must be a valid long. Using default value "{2}".
+     *
+     */
+    public static String INVALID_PROPERTY_VALUE_LONG(Object arg0, Object arg1, Object arg2) {
+        return LOCALIZER.localize(localizableINVALID_PROPERTY_VALUE_LONG(arg0, arg1, arg2));
+    }
+
+    public static Localizable localizableSTREAMING_IO_EXCEPTION(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("streaming.ioException", arg0);
+    }
+
+    /**
+     * XML parsing error: {0}
+     *
+     */
+    public static String STREAMING_IO_EXCEPTION(Object arg0) {
+        return LOCALIZER.localize(localizableSTREAMING_IO_EXCEPTION(arg0));
+    }
+
+    public static Localizable localizableXMLREADER_UNEXPECTED_CHARACTER_CONTENT(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("xmlreader.unexpectedCharacterContent", arg0);
+    }
+
+    /**
+     * XML reader error: unexpected character content: "{0}"
+     *
+     */
+    public static String XMLREADER_UNEXPECTED_CHARACTER_CONTENT(Object arg0) {
+        return LOCALIZER.localize(localizableXMLREADER_UNEXPECTED_CHARACTER_CONTENT(arg0));
+    }
+
+    public static Localizable localizableXMLWRITER_NESTED_ERROR(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("xmlwriter.nestedError", arg0);
+    }
+
+    /**
+     * XML writer error: {0}
+     *
+     */
+    public static String XMLWRITER_NESTED_ERROR(Object arg0) {
+        return LOCALIZER.localize(localizableXMLWRITER_NESTED_ERROR(arg0));
+    }
+
+    public static Localizable localizableXMLWRITER_IO_EXCEPTION(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("xmlwriter.ioException", arg0);
+    }
+
+    /**
+     * XML writer error: {0}
+     *
+     */
+    public static String XMLWRITER_IO_EXCEPTION(Object arg0) {
+        return LOCALIZER.localize(localizableXMLWRITER_IO_EXCEPTION(arg0));
+    }
+
+    public static Localizable localizableXMLREADER_PARSE_EXCEPTION(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("xmlreader.parseException", arg0);
+    }
+
+    /**
+     * XML parsing error: {0}
+     *
+     */
+    public static String XMLREADER_PARSE_EXCEPTION(Object arg0) {
+        return LOCALIZER.localize(localizableXMLREADER_PARSE_EXCEPTION(arg0));
+    }
+
+    private static class BundleSupplier
+        implements ResourceBundleSupplier
+    {
+
+
+        public ResourceBundle getResourceBundle(Locale locale) {
+            return ResourceBundle.getBundle(BUNDLE_NAME, locale);
+        }
+
     }
 
 }
diff --git a/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/resources/TubelineassemblyMessages.java b/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/resources/TubelineassemblyMessages.java
index e1842a7..ab5786c 100644
--- a/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/resources/TubelineassemblyMessages.java
+++ b/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/resources/TubelineassemblyMessages.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,90 +25,28 @@
 
 package com.sun.xml.internal.ws.resources;
 
-import com.sun.istack.internal.localization.Localizable;
-import com.sun.istack.internal.localization.LocalizableMessageFactory;
-import com.sun.istack.internal.localization.Localizer;
-
 import java.util.Locale;
 import java.util.ResourceBundle;
+import javax.annotation.Generated;
+import com.sun.istack.internal.localization.Localizable;
+import com.sun.istack.internal.localization.LocalizableMessageFactory;
+import com.sun.istack.internal.localization.LocalizableMessageFactory.ResourceBundleSupplier;
+import com.sun.istack.internal.localization.Localizer;
 
 
 /**
  * Defines string formatting method for each constant in the resource file
  *
  */
+@Generated("com.sun.istack.internal.maven.ResourceGenMojo")
 public final class TubelineassemblyMessages {
+
     private final static String BUNDLE_NAME = "com.sun.xml.internal.ws.resources.tubelineassembly";
-    private final static LocalizableMessageFactory messageFactory =
-        new LocalizableMessageFactory(BUNDLE_NAME, TubelineassemblyMessages::getResourceBundle);
-    private final static Localizer localizer = new Localizer();
-
-    private static ResourceBundle getResourceBundle(Locale locale) {
-        return ResourceBundle.getBundle(BUNDLE_NAME, locale);
-    }
-
-    public static Localizable localizableMASM_0019_MSG_LOGGING_SYSTEM_PROPERTY_ILLEGAL_VALUE(Object arg0, Object arg1) {
-        return messageFactory.getMessage("MASM0019_MSG_LOGGING_SYSTEM_PROPERTY_ILLEGAL_VALUE", arg0, arg1);
-    }
-
-    /**
-     * MASM0019: Illegal logging level value "{1}" stored in the {0} message logging system property. Using default logging level.
-     *
-     */
-    public static String MASM_0019_MSG_LOGGING_SYSTEM_PROPERTY_ILLEGAL_VALUE(Object arg0, Object arg1) {
-        return localizer.localize(localizableMASM_0019_MSG_LOGGING_SYSTEM_PROPERTY_ILLEGAL_VALUE(arg0, arg1));
-    }
-
-    public static Localizable localizableMASM_0009_CANNOT_FORM_VALID_URL(Object arg0) {
-        return messageFactory.getMessage("MASM0009_CANNOT_FORM_VALID_URL", arg0);
-    }
-
-    /**
-     * MASM0009: Cannot form a valid URL from the resource name "{0}". For more details see the nested exception.
-     *
-     */
-    public static String MASM_0009_CANNOT_FORM_VALID_URL(Object arg0) {
-        return localizer.localize(localizableMASM_0009_CANNOT_FORM_VALID_URL(arg0));
-    }
-
-    public static Localizable localizableMASM_0005_NO_DEFAULT_TUBELINE_IN_DEFAULT_CFG_FILE(Object arg0) {
-        return messageFactory.getMessage("MASM0005_NO_DEFAULT_TUBELINE_IN_DEFAULT_CFG_FILE", arg0);
-    }
-
-    /**
-     * MASM0005: No default tubeline is defined in the default [ {0} ] configuration file
-     *
-     */
-    public static String MASM_0005_NO_DEFAULT_TUBELINE_IN_DEFAULT_CFG_FILE(Object arg0) {
-        return localizer.localize(localizableMASM_0005_NO_DEFAULT_TUBELINE_IN_DEFAULT_CFG_FILE(arg0));
-    }
-
-    public static Localizable localizableMASM_0003_DEFAULT_CFG_FILE_NOT_LOADED(Object arg0) {
-        return messageFactory.getMessage("MASM0003_DEFAULT_CFG_FILE_NOT_LOADED", arg0);
-    }
-
-    /**
-     * MASM0003: Default [ {0} ] configuration file was not loaded
-     *
-     */
-    public static String MASM_0003_DEFAULT_CFG_FILE_NOT_LOADED(Object arg0) {
-        return localizer.localize(localizableMASM_0003_DEFAULT_CFG_FILE_NOT_LOADED(arg0));
-    }
-
-    public static Localizable localizableMASM_0018_MSG_LOGGING_SYSTEM_PROPERTY_SET_TO_VALUE(Object arg0, Object arg1) {
-        return messageFactory.getMessage("MASM0018_MSG_LOGGING_SYSTEM_PROPERTY_SET_TO_VALUE", arg0, arg1);
-    }
-
-    /**
-     * MASM0018: Message logging {0} system property detected to be set to value {1}
-     *
-     */
-    public static String MASM_0018_MSG_LOGGING_SYSTEM_PROPERTY_SET_TO_VALUE(Object arg0, Object arg1) {
-        return localizer.localize(localizableMASM_0018_MSG_LOGGING_SYSTEM_PROPERTY_SET_TO_VALUE(arg0, arg1));
-    }
+    private final static LocalizableMessageFactory MESSAGE_FACTORY = new LocalizableMessageFactory(BUNDLE_NAME, new TubelineassemblyMessages.BundleSupplier());
+    private final static Localizer LOCALIZER = new Localizer();
 
     public static Localizable localizableMASM_0001_DEFAULT_CFG_FILE_NOT_FOUND(Object arg0) {
-        return messageFactory.getMessage("MASM0001_DEFAULT_CFG_FILE_NOT_FOUND", arg0);
+        return MESSAGE_FACTORY.getMessage("MASM0001_DEFAULT_CFG_FILE_NOT_FOUND", arg0);
     }
 
     /**
@@ -116,155 +54,11 @@
      *
      */
     public static String MASM_0001_DEFAULT_CFG_FILE_NOT_FOUND(Object arg0) {
-        return localizer.localize(localizableMASM_0001_DEFAULT_CFG_FILE_NOT_FOUND(arg0));
-    }
-
-    public static Localizable localizableMASM_0020_ERROR_CREATING_URI_FROM_GENERATED_STRING(Object arg0) {
-        return messageFactory.getMessage("MASM0020_ERROR_CREATING_URI_FROM_GENERATED_STRING", arg0);
-    }
-
-    /**
-     * MASM0020: Unable to create a new URI instance for generated endpoint URI string [ {0} ]
-     *
-     */
-    public static String MASM_0020_ERROR_CREATING_URI_FROM_GENERATED_STRING(Object arg0) {
-        return localizer.localize(localizableMASM_0020_ERROR_CREATING_URI_FROM_GENERATED_STRING(arg0));
-    }
-
-    public static Localizable localizableMASM_0016_UNABLE_TO_INSTANTIATE_TUBE_FACTORY(Object arg0) {
-        return messageFactory.getMessage("MASM0016_UNABLE_TO_INSTANTIATE_TUBE_FACTORY", arg0);
-    }
-
-    /**
-     * MASM0016: Unable to instantiate Tube factory class [ {0} ]
-     *
-     */
-    public static String MASM_0016_UNABLE_TO_INSTANTIATE_TUBE_FACTORY(Object arg0) {
-        return localizer.localize(localizableMASM_0016_UNABLE_TO_INSTANTIATE_TUBE_FACTORY(arg0));
-    }
-
-    public static Localizable localizableMASM_0012_LOADING_VIA_SERVLET_CONTEXT(Object arg0, Object arg1) {
-        return messageFactory.getMessage("MASM0012_LOADING_VIA_SERVLET_CONTEXT", arg0, arg1);
-    }
-
-    /**
-     * MASM0012: Trying to load [ {0} ] via servlet context [ {1} ]
-     *
-     */
-    public static String MASM_0012_LOADING_VIA_SERVLET_CONTEXT(Object arg0, Object arg1) {
-        return localizer.localize(localizableMASM_0012_LOADING_VIA_SERVLET_CONTEXT(arg0, arg1));
-    }
-
-    public static Localizable localizableMASM_0010_ERROR_READING_CFG_FILE_FROM_LOCATION(Object arg0) {
-        return messageFactory.getMessage("MASM0010_ERROR_READING_CFG_FILE_FROM_LOCATION", arg0);
-    }
-
-    /**
-     * MASM0010: Unable to unmarshall metro config file from location [ {0} ]
-     *
-     */
-    public static String MASM_0010_ERROR_READING_CFG_FILE_FROM_LOCATION(Object arg0) {
-        return localizer.localize(localizableMASM_0010_ERROR_READING_CFG_FILE_FROM_LOCATION(arg0));
-    }
-
-    public static Localizable localizableMASM_0004_NO_TUBELINES_SECTION_IN_DEFAULT_CFG_FILE(Object arg0) {
-        return messageFactory.getMessage("MASM0004_NO_TUBELINES_SECTION_IN_DEFAULT_CFG_FILE", arg0);
-    }
-
-    /**
-     * MASM0004: No <tubelines> section found in the default [ {0} ] configuration file
-     *
-     */
-    public static String MASM_0004_NO_TUBELINES_SECTION_IN_DEFAULT_CFG_FILE(Object arg0) {
-        return localizer.localize(localizableMASM_0004_NO_TUBELINES_SECTION_IN_DEFAULT_CFG_FILE(arg0));
-    }
-
-    public static Localizable localizableMASM_0013_ERROR_INVOKING_SERVLET_CONTEXT_METHOD(Object arg0) {
-        return messageFactory.getMessage("MASM0013_ERROR_INVOKING_SERVLET_CONTEXT_METHOD", arg0);
-    }
-
-    /**
-     * MASM0013: Unable to invoke {0} method on servlet context instance
-     *
-     */
-    public static String MASM_0013_ERROR_INVOKING_SERVLET_CONTEXT_METHOD(Object arg0) {
-        return localizer.localize(localizableMASM_0013_ERROR_INVOKING_SERVLET_CONTEXT_METHOD(arg0));
-    }
-
-    public static Localizable localizableMASM_0007_APP_CFG_FILE_NOT_FOUND() {
-        return messageFactory.getMessage("MASM0007_APP_CFG_FILE_NOT_FOUND");
-    }
-
-    /**
-     * MASM0007: No application metro.xml configuration file found.
-     *
-     */
-    public static String MASM_0007_APP_CFG_FILE_NOT_FOUND() {
-        return localizer.localize(localizableMASM_0007_APP_CFG_FILE_NOT_FOUND());
-    }
-
-    public static Localizable localizableMASM_0002_DEFAULT_CFG_FILE_LOCATED(Object arg0, Object arg1) {
-        return messageFactory.getMessage("MASM0002_DEFAULT_CFG_FILE_LOCATED", arg0, arg1);
-    }
-
-    /**
-     * MASM0002: Default [ {0} ] configuration file located at [ {1} ]
-     *
-     */
-    public static String MASM_0002_DEFAULT_CFG_FILE_LOCATED(Object arg0, Object arg1) {
-        return localizer.localize(localizableMASM_0002_DEFAULT_CFG_FILE_LOCATED(arg0, arg1));
-    }
-
-    public static Localizable localizableMASM_0014_UNABLE_TO_LOAD_CLASS(Object arg0) {
-        return messageFactory.getMessage("MASM0014_UNABLE_TO_LOAD_CLASS", arg0);
-    }
-
-    /**
-     * MASM0014: Unable to load [ {0} ] class
-     *
-     */
-    public static String MASM_0014_UNABLE_TO_LOAD_CLASS(Object arg0) {
-        return localizer.localize(localizableMASM_0014_UNABLE_TO_LOAD_CLASS(arg0));
-    }
-
-    public static Localizable localizableMASM_0006_APP_CFG_FILE_LOCATED(Object arg0) {
-        return messageFactory.getMessage("MASM0006_APP_CFG_FILE_LOCATED", arg0);
-    }
-
-    /**
-     * MASM0006: Application metro.xml configuration file located at [ {0} ]
-     *
-     */
-    public static String MASM_0006_APP_CFG_FILE_LOCATED(Object arg0) {
-        return localizer.localize(localizableMASM_0006_APP_CFG_FILE_LOCATED(arg0));
-    }
-
-    public static Localizable localizableMASM_0017_UNABLE_TO_LOAD_TUBE_FACTORY_CLASS(Object arg0) {
-        return messageFactory.getMessage("MASM0017_UNABLE_TO_LOAD_TUBE_FACTORY_CLASS", arg0);
-    }
-
-    /**
-     * MASM0017: Unable to load Tube factory class [ {0} ]
-     *
-     */
-    public static String MASM_0017_UNABLE_TO_LOAD_TUBE_FACTORY_CLASS(Object arg0) {
-        return localizer.localize(localizableMASM_0017_UNABLE_TO_LOAD_TUBE_FACTORY_CLASS(arg0));
-    }
-
-    public static Localizable localizableMASM_0008_INVALID_URI_REFERENCE(Object arg0) {
-        return messageFactory.getMessage("MASM0008_INVALID_URI_REFERENCE", arg0);
-    }
-
-    /**
-     * MASM0008: Invalid URI reference [ {0} ]
-     *
-     */
-    public static String MASM_0008_INVALID_URI_REFERENCE(Object arg0) {
-        return localizer.localize(localizableMASM_0008_INVALID_URI_REFERENCE(arg0));
+        return LOCALIZER.localize(localizableMASM_0001_DEFAULT_CFG_FILE_NOT_FOUND(arg0));
     }
 
     public static Localizable localizableMASM_0011_LOADING_RESOURCE(Object arg0, Object arg1) {
-        return messageFactory.getMessage("MASM0011_LOADING_RESOURCE", arg0, arg1);
+        return MESSAGE_FACTORY.getMessage("MASM0011_LOADING_RESOURCE", arg0, arg1);
     }
 
     /**
@@ -272,11 +66,95 @@
      *
      */
     public static String MASM_0011_LOADING_RESOURCE(Object arg0, Object arg1) {
-        return localizer.localize(localizableMASM_0011_LOADING_RESOURCE(arg0, arg1));
+        return LOCALIZER.localize(localizableMASM_0011_LOADING_RESOURCE(arg0, arg1));
+    }
+
+    public static Localizable localizableMASM_0012_LOADING_VIA_SERVLET_CONTEXT(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("MASM0012_LOADING_VIA_SERVLET_CONTEXT", arg0, arg1);
+    }
+
+    /**
+     * MASM0012: Trying to load [ {0} ] via servlet context [ {1} ]
+     *
+     */
+    public static String MASM_0012_LOADING_VIA_SERVLET_CONTEXT(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableMASM_0012_LOADING_VIA_SERVLET_CONTEXT(arg0, arg1));
+    }
+
+    public static Localizable localizableMASM_0002_DEFAULT_CFG_FILE_LOCATED(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("MASM0002_DEFAULT_CFG_FILE_LOCATED", arg0, arg1);
+    }
+
+    /**
+     * MASM0002: Default [ {0} ] configuration file located at [ {1} ]
+     *
+     */
+    public static String MASM_0002_DEFAULT_CFG_FILE_LOCATED(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableMASM_0002_DEFAULT_CFG_FILE_LOCATED(arg0, arg1));
+    }
+
+    public static Localizable localizableMASM_0007_APP_CFG_FILE_NOT_FOUND() {
+        return MESSAGE_FACTORY.getMessage("MASM0007_APP_CFG_FILE_NOT_FOUND");
+    }
+
+    /**
+     * MASM0007: No application metro.xml configuration file found.
+     *
+     */
+    public static String MASM_0007_APP_CFG_FILE_NOT_FOUND() {
+        return LOCALIZER.localize(localizableMASM_0007_APP_CFG_FILE_NOT_FOUND());
+    }
+
+    public static Localizable localizableMASM_0006_APP_CFG_FILE_LOCATED(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("MASM0006_APP_CFG_FILE_LOCATED", arg0);
+    }
+
+    /**
+     * MASM0006: Application metro.xml configuration file located at [ {0} ]
+     *
+     */
+    public static String MASM_0006_APP_CFG_FILE_LOCATED(Object arg0) {
+        return LOCALIZER.localize(localizableMASM_0006_APP_CFG_FILE_LOCATED(arg0));
+    }
+
+    public static Localizable localizableMASM_0018_MSG_LOGGING_SYSTEM_PROPERTY_SET_TO_VALUE(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("MASM0018_MSG_LOGGING_SYSTEM_PROPERTY_SET_TO_VALUE", arg0, arg1);
+    }
+
+    /**
+     * MASM0018: Message logging {0} system property detected to be set to value {1}
+     *
+     */
+    public static String MASM_0018_MSG_LOGGING_SYSTEM_PROPERTY_SET_TO_VALUE(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableMASM_0018_MSG_LOGGING_SYSTEM_PROPERTY_SET_TO_VALUE(arg0, arg1));
+    }
+
+    public static Localizable localizableMASM_0003_DEFAULT_CFG_FILE_NOT_LOADED(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("MASM0003_DEFAULT_CFG_FILE_NOT_LOADED", arg0);
+    }
+
+    /**
+     * MASM0003: Default [ {0} ] configuration file was not loaded
+     *
+     */
+    public static String MASM_0003_DEFAULT_CFG_FILE_NOT_LOADED(Object arg0) {
+        return LOCALIZER.localize(localizableMASM_0003_DEFAULT_CFG_FILE_NOT_LOADED(arg0));
+    }
+
+    public static Localizable localizableMASM_0004_NO_TUBELINES_SECTION_IN_DEFAULT_CFG_FILE(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("MASM0004_NO_TUBELINES_SECTION_IN_DEFAULT_CFG_FILE", arg0);
+    }
+
+    /**
+     * MASM0004: No <tubelines> section found in the default [ {0} ] configuration file
+     *
+     */
+    public static String MASM_0004_NO_TUBELINES_SECTION_IN_DEFAULT_CFG_FILE(Object arg0) {
+        return LOCALIZER.localize(localizableMASM_0004_NO_TUBELINES_SECTION_IN_DEFAULT_CFG_FILE(arg0));
     }
 
     public static Localizable localizableMASM_0015_CLASS_DOES_NOT_IMPLEMENT_INTERFACE(Object arg0, Object arg1) {
-        return messageFactory.getMessage("MASM0015_CLASS_DOES_NOT_IMPLEMENT_INTERFACE", arg0, arg1);
+        return MESSAGE_FACTORY.getMessage("MASM0015_CLASS_DOES_NOT_IMPLEMENT_INTERFACE", arg0, arg1);
     }
 
     /**
@@ -284,7 +162,138 @@
      *
      */
     public static String MASM_0015_CLASS_DOES_NOT_IMPLEMENT_INTERFACE(Object arg0, Object arg1) {
-        return localizer.localize(localizableMASM_0015_CLASS_DOES_NOT_IMPLEMENT_INTERFACE(arg0, arg1));
+        return LOCALIZER.localize(localizableMASM_0015_CLASS_DOES_NOT_IMPLEMENT_INTERFACE(arg0, arg1));
+    }
+
+    public static Localizable localizableMASM_0020_ERROR_CREATING_URI_FROM_GENERATED_STRING(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("MASM0020_ERROR_CREATING_URI_FROM_GENERATED_STRING", arg0);
+    }
+
+    /**
+     * MASM0020: Unable to create a new URI instance for generated endpoint URI string [ {0} ]
+     *
+     */
+    public static String MASM_0020_ERROR_CREATING_URI_FROM_GENERATED_STRING(Object arg0) {
+        return LOCALIZER.localize(localizableMASM_0020_ERROR_CREATING_URI_FROM_GENERATED_STRING(arg0));
+    }
+
+    public static Localizable localizableMASM_0008_INVALID_URI_REFERENCE(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("MASM0008_INVALID_URI_REFERENCE", arg0);
+    }
+
+    /**
+     * MASM0008: Invalid URI reference [ {0} ]
+     *
+     */
+    public static String MASM_0008_INVALID_URI_REFERENCE(Object arg0) {
+        return LOCALIZER.localize(localizableMASM_0008_INVALID_URI_REFERENCE(arg0));
+    }
+
+    public static Localizable localizableMASM_0016_UNABLE_TO_INSTANTIATE_TUBE_FACTORY(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("MASM0016_UNABLE_TO_INSTANTIATE_TUBE_FACTORY", arg0);
+    }
+
+    /**
+     * MASM0016: Unable to instantiate Tube factory class [ {0} ]
+     *
+     */
+    public static String MASM_0016_UNABLE_TO_INSTANTIATE_TUBE_FACTORY(Object arg0) {
+        return LOCALIZER.localize(localizableMASM_0016_UNABLE_TO_INSTANTIATE_TUBE_FACTORY(arg0));
+    }
+
+    public static Localizable localizableMASM_0010_ERROR_READING_CFG_FILE_FROM_LOCATION(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("MASM0010_ERROR_READING_CFG_FILE_FROM_LOCATION", arg0);
+    }
+
+    /**
+     * MASM0010: Unable to unmarshall metro config file from location [ {0} ]
+     *
+     */
+    public static String MASM_0010_ERROR_READING_CFG_FILE_FROM_LOCATION(Object arg0) {
+        return LOCALIZER.localize(localizableMASM_0010_ERROR_READING_CFG_FILE_FROM_LOCATION(arg0));
+    }
+
+    public static Localizable localizableMASM_0005_NO_DEFAULT_TUBELINE_IN_DEFAULT_CFG_FILE(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("MASM0005_NO_DEFAULT_TUBELINE_IN_DEFAULT_CFG_FILE", arg0);
+    }
+
+    /**
+     * MASM0005: No default tubeline is defined in the default [ {0} ] configuration file
+     *
+     */
+    public static String MASM_0005_NO_DEFAULT_TUBELINE_IN_DEFAULT_CFG_FILE(Object arg0) {
+        return LOCALIZER.localize(localizableMASM_0005_NO_DEFAULT_TUBELINE_IN_DEFAULT_CFG_FILE(arg0));
+    }
+
+    public static Localizable localizableMASM_0014_UNABLE_TO_LOAD_CLASS(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("MASM0014_UNABLE_TO_LOAD_CLASS", arg0);
+    }
+
+    /**
+     * MASM0014: Unable to load [ {0} ] class
+     *
+     */
+    public static String MASM_0014_UNABLE_TO_LOAD_CLASS(Object arg0) {
+        return LOCALIZER.localize(localizableMASM_0014_UNABLE_TO_LOAD_CLASS(arg0));
+    }
+
+    public static Localizable localizableMASM_0013_ERROR_INVOKING_SERVLET_CONTEXT_METHOD(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("MASM0013_ERROR_INVOKING_SERVLET_CONTEXT_METHOD", arg0);
+    }
+
+    /**
+     * MASM0013: Unable to invoke {0} method on servlet context instance
+     *
+     */
+    public static String MASM_0013_ERROR_INVOKING_SERVLET_CONTEXT_METHOD(Object arg0) {
+        return LOCALIZER.localize(localizableMASM_0013_ERROR_INVOKING_SERVLET_CONTEXT_METHOD(arg0));
+    }
+
+    public static Localizable localizableMASM_0019_MSG_LOGGING_SYSTEM_PROPERTY_ILLEGAL_VALUE(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("MASM0019_MSG_LOGGING_SYSTEM_PROPERTY_ILLEGAL_VALUE", arg0, arg1);
+    }
+
+    /**
+     * MASM0019: Illegal logging level value "{1}" stored in the {0} message logging system property. Using default logging level.
+     *
+     */
+    public static String MASM_0019_MSG_LOGGING_SYSTEM_PROPERTY_ILLEGAL_VALUE(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableMASM_0019_MSG_LOGGING_SYSTEM_PROPERTY_ILLEGAL_VALUE(arg0, arg1));
+    }
+
+    public static Localizable localizableMASM_0009_CANNOT_FORM_VALID_URL(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("MASM0009_CANNOT_FORM_VALID_URL", arg0);
+    }
+
+    /**
+     * MASM0009: Cannot form a valid URL from the resource name "{0}". For more details see the nested exception.
+     *
+     */
+    public static String MASM_0009_CANNOT_FORM_VALID_URL(Object arg0) {
+        return LOCALIZER.localize(localizableMASM_0009_CANNOT_FORM_VALID_URL(arg0));
+    }
+
+    public static Localizable localizableMASM_0017_UNABLE_TO_LOAD_TUBE_FACTORY_CLASS(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("MASM0017_UNABLE_TO_LOAD_TUBE_FACTORY_CLASS", arg0);
+    }
+
+    /**
+     * MASM0017: Unable to load Tube factory class [ {0} ]
+     *
+     */
+    public static String MASM_0017_UNABLE_TO_LOAD_TUBE_FACTORY_CLASS(Object arg0) {
+        return LOCALIZER.localize(localizableMASM_0017_UNABLE_TO_LOAD_TUBE_FACTORY_CLASS(arg0));
+    }
+
+    private static class BundleSupplier
+        implements ResourceBundleSupplier
+    {
+
+
+        public ResourceBundle getResourceBundle(Locale locale) {
+            return ResourceBundle.getBundle(BUNDLE_NAME, locale);
+        }
+
     }
 
 }
diff --git a/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/resources/UtilMessages.java b/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/resources/UtilMessages.java
index d62c0d8..574ad6f 100644
--- a/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/resources/UtilMessages.java
+++ b/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/resources/UtilMessages.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,114 +25,28 @@
 
 package com.sun.xml.internal.ws.resources;
 
-import com.sun.istack.internal.localization.Localizable;
-import com.sun.istack.internal.localization.LocalizableMessageFactory;
-import com.sun.istack.internal.localization.Localizer;
-
 import java.util.Locale;
 import java.util.ResourceBundle;
+import javax.annotation.Generated;
+import com.sun.istack.internal.localization.Localizable;
+import com.sun.istack.internal.localization.LocalizableMessageFactory;
+import com.sun.istack.internal.localization.LocalizableMessageFactory.ResourceBundleSupplier;
+import com.sun.istack.internal.localization.Localizer;
 
 
 /**
  * Defines string formatting method for each constant in the resource file
  *
  */
+@Generated("com.sun.istack.internal.maven.ResourceGenMojo")
 public final class UtilMessages {
+
     private final static String BUNDLE_NAME = "com.sun.xml.internal.ws.resources.util";
-    private final static LocalizableMessageFactory messageFactory =
-        new LocalizableMessageFactory(BUNDLE_NAME, UtilMessages::getResourceBundle);
-    private final static Localizer localizer = new Localizer();
-
-    private static ResourceBundle getResourceBundle(Locale locale) {
-        return ResourceBundle.getBundle(BUNDLE_NAME, locale);
-    }
-
-    public static Localizable localizableUTIL_LOCATION(Object arg0, Object arg1) {
-        return messageFactory.getMessage("util.location", arg0, arg1);
-    }
-
-    /**
-     * at line {0} of {1}
-     *
-     */
-    public static String UTIL_LOCATION(Object arg0, Object arg1) {
-        return localizer.localize(localizableUTIL_LOCATION(arg0, arg1));
-    }
-
-    public static Localizable localizableUTIL_FAILED_TO_PARSE_HANDLERCHAIN_FILE(Object arg0, Object arg1) {
-        return messageFactory.getMessage("util.failed.to.parse.handlerchain.file", arg0, arg1);
-    }
-
-    /**
-     * Could not parse handler chain file {1} for class {0}
-     *
-     */
-    public static String UTIL_FAILED_TO_PARSE_HANDLERCHAIN_FILE(Object arg0, Object arg1) {
-        return localizer.localize(localizableUTIL_FAILED_TO_PARSE_HANDLERCHAIN_FILE(arg0, arg1));
-    }
-
-    public static Localizable localizableUTIL_PARSER_WRONG_ELEMENT(Object arg0, Object arg1, Object arg2) {
-        return messageFactory.getMessage("util.parser.wrong.element", arg0, arg1, arg2);
-    }
-
-    /**
-     * found element "{1}", expected "{2}" in handler chain configuration (line {0})
-     *
-     */
-    public static String UTIL_PARSER_WRONG_ELEMENT(Object arg0, Object arg1, Object arg2) {
-        return localizer.localize(localizableUTIL_PARSER_WRONG_ELEMENT(arg0, arg1, arg2));
-    }
-
-    public static Localizable localizableUTIL_HANDLER_CLASS_NOT_FOUND(Object arg0) {
-        return messageFactory.getMessage("util.handler.class.not.found", arg0);
-    }
-
-    /**
-     * "Class: {0} could not be found"
-     *
-     */
-    public static String UTIL_HANDLER_CLASS_NOT_FOUND(Object arg0) {
-        return localizer.localize(localizableUTIL_HANDLER_CLASS_NOT_FOUND(arg0));
-    }
-
-    public static Localizable localizableUTIL_HANDLER_ENDPOINT_INTERFACE_NO_WEBSERVICE(Object arg0) {
-        return messageFactory.getMessage("util.handler.endpoint.interface.no.webservice", arg0);
-    }
-
-    /**
-     * "The Endpoint Interface: {0} does not have WebService Annotation"
-     *
-     */
-    public static String UTIL_HANDLER_ENDPOINT_INTERFACE_NO_WEBSERVICE(Object arg0) {
-        return localizer.localize(localizableUTIL_HANDLER_ENDPOINT_INTERFACE_NO_WEBSERVICE(arg0));
-    }
-
-    public static Localizable localizableUTIL_HANDLER_NO_WEBSERVICE_ANNOTATION(Object arg0) {
-        return messageFactory.getMessage("util.handler.no.webservice.annotation", arg0);
-    }
-
-    /**
-     * "A WebService annotation is not present on class: {0}"
-     *
-     */
-    public static String UTIL_HANDLER_NO_WEBSERVICE_ANNOTATION(Object arg0) {
-        return localizer.localize(localizableUTIL_HANDLER_NO_WEBSERVICE_ANNOTATION(arg0));
-    }
-
-    public static Localizable localizableUTIL_FAILED_TO_FIND_HANDLERCHAIN_FILE(Object arg0, Object arg1) {
-        return messageFactory.getMessage("util.failed.to.find.handlerchain.file", arg0, arg1);
-    }
-
-    /**
-     * Could not find handler chain file {1} for class {0}
-     *
-     */
-    public static String UTIL_FAILED_TO_FIND_HANDLERCHAIN_FILE(Object arg0, Object arg1) {
-        return localizer.localize(localizableUTIL_FAILED_TO_FIND_HANDLERCHAIN_FILE(arg0, arg1));
-    }
+    private final static LocalizableMessageFactory MESSAGE_FACTORY = new LocalizableMessageFactory(BUNDLE_NAME, new UtilMessages.BundleSupplier());
+    private final static Localizer LOCALIZER = new Localizer();
 
     public static Localizable localizableUTIL_HANDLER_CANNOT_COMBINE_SOAPMESSAGEHANDLERS() {
-        return messageFactory.getMessage("util.handler.cannot.combine.soapmessagehandlers");
+        return MESSAGE_FACTORY.getMessage("util.handler.cannot.combine.soapmessagehandlers");
     }
 
     /**
@@ -140,7 +54,102 @@
      *
      */
     public static String UTIL_HANDLER_CANNOT_COMBINE_SOAPMESSAGEHANDLERS() {
-        return localizer.localize(localizableUTIL_HANDLER_CANNOT_COMBINE_SOAPMESSAGEHANDLERS());
+        return LOCALIZER.localize(localizableUTIL_HANDLER_CANNOT_COMBINE_SOAPMESSAGEHANDLERS());
+    }
+
+    public static Localizable localizableUTIL_LOCATION(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("util.location", arg0, arg1);
+    }
+
+    /**
+     * at line {0} of {1}
+     *
+     */
+    public static String UTIL_LOCATION(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableUTIL_LOCATION(arg0, arg1));
+    }
+
+    public static Localizable localizableUTIL_HANDLER_CLASS_NOT_FOUND(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("util.handler.class.not.found", arg0);
+    }
+
+    /**
+     * "Class: {0} could not be found"
+     *
+     */
+    public static String UTIL_HANDLER_CLASS_NOT_FOUND(Object arg0) {
+        return LOCALIZER.localize(localizableUTIL_HANDLER_CLASS_NOT_FOUND(arg0));
+    }
+
+    public static Localizable localizableUTIL_HANDLER_NO_WEBSERVICE_ANNOTATION(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("util.handler.no.webservice.annotation", arg0);
+    }
+
+    /**
+     * "A WebService annotation is not present on class: {0}"
+     *
+     */
+    public static String UTIL_HANDLER_NO_WEBSERVICE_ANNOTATION(Object arg0) {
+        return LOCALIZER.localize(localizableUTIL_HANDLER_NO_WEBSERVICE_ANNOTATION(arg0));
+    }
+
+    public static Localizable localizableUTIL_HANDLER_ENDPOINT_INTERFACE_NO_WEBSERVICE(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("util.handler.endpoint.interface.no.webservice", arg0);
+    }
+
+    /**
+     * "The Endpoint Interface: {0} does not have WebService Annotation"
+     *
+     */
+    public static String UTIL_HANDLER_ENDPOINT_INTERFACE_NO_WEBSERVICE(Object arg0) {
+        return LOCALIZER.localize(localizableUTIL_HANDLER_ENDPOINT_INTERFACE_NO_WEBSERVICE(arg0));
+    }
+
+    public static Localizable localizableUTIL_PARSER_WRONG_ELEMENT(Object arg0, Object arg1, Object arg2) {
+        return MESSAGE_FACTORY.getMessage("util.parser.wrong.element", arg0, arg1, arg2);
+    }
+
+    /**
+     * found element "{1}", expected "{2}" in handler chain configuration (line {0})
+     *
+     */
+    public static String UTIL_PARSER_WRONG_ELEMENT(Object arg0, Object arg1, Object arg2) {
+        return LOCALIZER.localize(localizableUTIL_PARSER_WRONG_ELEMENT(arg0, arg1, arg2));
+    }
+
+    public static Localizable localizableUTIL_FAILED_TO_PARSE_HANDLERCHAIN_FILE(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("util.failed.to.parse.handlerchain.file", arg0, arg1);
+    }
+
+    /**
+     * Could not parse handler chain file {1} for class {0}
+     *
+     */
+    public static String UTIL_FAILED_TO_PARSE_HANDLERCHAIN_FILE(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableUTIL_FAILED_TO_PARSE_HANDLERCHAIN_FILE(arg0, arg1));
+    }
+
+    public static Localizable localizableUTIL_FAILED_TO_FIND_HANDLERCHAIN_FILE(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("util.failed.to.find.handlerchain.file", arg0, arg1);
+    }
+
+    /**
+     * Could not find handler chain file {1} for class {0}
+     *
+     */
+    public static String UTIL_FAILED_TO_FIND_HANDLERCHAIN_FILE(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableUTIL_FAILED_TO_FIND_HANDLERCHAIN_FILE(arg0, arg1));
+    }
+
+    private static class BundleSupplier
+        implements ResourceBundleSupplier
+    {
+
+
+        public ResourceBundle getResourceBundle(Locale locale) {
+            return ResourceBundle.getBundle(BUNDLE_NAME, locale);
+        }
+
     }
 
 }
diff --git a/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/resources/WsdlmodelMessages.java b/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/resources/WsdlmodelMessages.java
index a431885..d6bcbce 100644
--- a/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/resources/WsdlmodelMessages.java
+++ b/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/resources/WsdlmodelMessages.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,30 +25,28 @@
 
 package com.sun.xml.internal.ws.resources;
 
-import com.sun.istack.internal.localization.Localizable;
-import com.sun.istack.internal.localization.LocalizableMessageFactory;
-import com.sun.istack.internal.localization.Localizer;
-
 import java.util.Locale;
 import java.util.ResourceBundle;
+import javax.annotation.Generated;
+import com.sun.istack.internal.localization.Localizable;
+import com.sun.istack.internal.localization.LocalizableMessageFactory;
+import com.sun.istack.internal.localization.LocalizableMessageFactory.ResourceBundleSupplier;
+import com.sun.istack.internal.localization.Localizer;
 
 
 /**
  * Defines string formatting method for each constant in the resource file
  *
  */
+@Generated("com.sun.istack.internal.maven.ResourceGenMojo")
 public final class WsdlmodelMessages {
-    private final static String BUNDLE_NAME = "com.sun.xml.internal.ws.resources.wsdlmodel";
-    private final static LocalizableMessageFactory messageFactory =
-        new LocalizableMessageFactory(BUNDLE_NAME, WsdlmodelMessages::getResourceBundle);
-    private final static Localizer localizer = new Localizer();
 
-    private static ResourceBundle getResourceBundle(Locale locale) {
-        return ResourceBundle.getBundle(BUNDLE_NAME, locale);
-    }
+    private final static String BUNDLE_NAME = "com.sun.xml.internal.ws.resources.wsdlmodel";
+    private final static LocalizableMessageFactory MESSAGE_FACTORY = new LocalizableMessageFactory(BUNDLE_NAME, new WsdlmodelMessages.BundleSupplier());
+    private final static Localizer LOCALIZER = new Localizer();
 
     public static Localizable localizableWSDL_PORTADDRESS_EPRADDRESS_NOT_MATCH(Object arg0, Object arg1, Object arg2) {
-        return messageFactory.getMessage("wsdl.portaddress.epraddress.not.match", arg0, arg1, arg2);
+        return MESSAGE_FACTORY.getMessage("wsdl.portaddress.epraddress.not.match", arg0, arg1, arg2);
     }
 
     /**
@@ -56,11 +54,11 @@
      *
      */
     public static String WSDL_PORTADDRESS_EPRADDRESS_NOT_MATCH(Object arg0, Object arg1, Object arg2) {
-        return localizer.localize(localizableWSDL_PORTADDRESS_EPRADDRESS_NOT_MATCH(arg0, arg1, arg2));
+        return LOCALIZER.localize(localizableWSDL_PORTADDRESS_EPRADDRESS_NOT_MATCH(arg0, arg1, arg2));
     }
 
     public static Localizable localizableWSDL_IMPORT_SHOULD_BE_WSDL(Object arg0) {
-        return messageFactory.getMessage("wsdl.import.should.be.wsdl", arg0);
+        return MESSAGE_FACTORY.getMessage("wsdl.import.should.be.wsdl", arg0);
     }
 
     /**
@@ -69,11 +67,11 @@
      *
      */
     public static String WSDL_IMPORT_SHOULD_BE_WSDL(Object arg0) {
-        return localizer.localize(localizableWSDL_IMPORT_SHOULD_BE_WSDL(arg0));
+        return LOCALIZER.localize(localizableWSDL_IMPORT_SHOULD_BE_WSDL(arg0));
     }
 
     public static Localizable localizableMEX_METADATA_SYSTEMID_NULL() {
-        return messageFactory.getMessage("Mex.metadata.systemid.null");
+        return MESSAGE_FACTORY.getMessage("Mex.metadata.systemid.null");
     }
 
     /**
@@ -81,7 +79,18 @@
      *
      */
     public static String MEX_METADATA_SYSTEMID_NULL() {
-        return localizer.localize(localizableMEX_METADATA_SYSTEMID_NULL());
+        return LOCALIZER.localize(localizableMEX_METADATA_SYSTEMID_NULL());
+    }
+
+    private static class BundleSupplier
+        implements ResourceBundleSupplier
+    {
+
+
+        public ResourceBundle getResourceBundle(Locale locale) {
+            return ResourceBundle.getBundle(BUNDLE_NAME, locale);
+        }
+
     }
 
 }
diff --git a/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/resources/WsservletMessages.java b/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/resources/WsservletMessages.java
index efcdcb7..51b07ab 100644
--- a/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/resources/WsservletMessages.java
+++ b/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/resources/WsservletMessages.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,426 +25,52 @@
 
 package com.sun.xml.internal.ws.resources;
 
-import com.sun.istack.internal.localization.Localizable;
-import com.sun.istack.internal.localization.LocalizableMessageFactory;
-import com.sun.istack.internal.localization.Localizer;
-
 import java.util.Locale;
 import java.util.ResourceBundle;
+import javax.annotation.Generated;
+import com.sun.istack.internal.localization.Localizable;
+import com.sun.istack.internal.localization.LocalizableMessageFactory;
+import com.sun.istack.internal.localization.LocalizableMessageFactory.ResourceBundleSupplier;
+import com.sun.istack.internal.localization.Localizer;
 
 
 /**
  * Defines string formatting method for each constant in the resource file
  *
  */
+@Generated("com.sun.istack.internal.maven.ResourceGenMojo")
 public final class WsservletMessages {
+
     private final static String BUNDLE_NAME = "com.sun.xml.internal.ws.resources.wsservlet";
-    private final static LocalizableMessageFactory messageFactory =
-        new LocalizableMessageFactory(BUNDLE_NAME, WsservletMessages::getResourceBundle);
-    private final static Localizer localizer = new Localizer();
+    private final static LocalizableMessageFactory MESSAGE_FACTORY = new LocalizableMessageFactory(BUNDLE_NAME, new WsservletMessages.BundleSupplier());
+    private final static Localizer LOCALIZER = new Localizer();
 
-    private static ResourceBundle getResourceBundle(Locale locale) {
-        return ResourceBundle.getBundle(BUNDLE_NAME, locale);
-    }
-
-    public static Localizable localizableERROR_WSDL_PUBLISHER_CANNOT_READ_CONFIGURATION() {
-        return messageFactory.getMessage("error.wsdlPublisher.cannotReadConfiguration");
+    public static Localizable localizableWSSERVLET_23_DIAG_CAUSE_1() {
+        return MESSAGE_FACTORY.getMessage("WSSERVLET23.diag.cause.1");
     }
 
     /**
-     * WSSERVLET46: cannot read configuration
+     * The request generated no response from the service
      *
      */
-    public static String ERROR_WSDL_PUBLISHER_CANNOT_READ_CONFIGURATION() {
-        return localizer.localize(localizableERROR_WSDL_PUBLISHER_CANNOT_READ_CONFIGURATION());
+    public static String WSSERVLET_23_DIAG_CAUSE_1() {
+        return LOCALIZER.localize(localizableWSSERVLET_23_DIAG_CAUSE_1());
     }
 
-    public static Localizable localizableWSSERVLET_22_DIAG_CHECK_1() {
-        return messageFactory.getMessage("WSSERVLET22.diag.check.1");
+    public static Localizable localizableWSSERVLET_30_DIAG_CHECK_1() {
+        return MESSAGE_FACTORY.getMessage("WSSERVLET30.diag.check.1");
     }
 
     /**
-     * Set endpoint with stub.setTargetEndpoint property
+     * This could be due to a number of causes. Check the server log file for exceptions.
      *
      */
-    public static String WSSERVLET_22_DIAG_CHECK_1() {
-        return localizer.localize(localizableWSSERVLET_22_DIAG_CHECK_1());
-    }
-
-    public static Localizable localizableWSSERVLET_33_DIAG_CAUSE_2() {
-        return messageFactory.getMessage("WSSERVLET33.diag.cause.2");
-    }
-
-    /**
-     * When publishing the service wsdl, the http location is patched with the deployed location/endpoint using XSLT transformation. The transformer could not be created to do the transformation.
-     *
-     */
-    public static String WSSERVLET_33_DIAG_CAUSE_2() {
-        return localizer.localize(localizableWSSERVLET_33_DIAG_CAUSE_2());
-    }
-
-    public static Localizable localizableWSSERVLET_33_DIAG_CAUSE_1() {
-        return messageFactory.getMessage("WSSERVLET33.diag.cause.1");
-    }
-
-    /**
-     * When publishing the service wsdl, the http location is patched with the deployed location/endpoint using XSLT transformation. The transformer could not be created to do the transformation.
-     *
-     */
-    public static String WSSERVLET_33_DIAG_CAUSE_1() {
-        return localizer.localize(localizableWSSERVLET_33_DIAG_CAUSE_1());
-    }
-
-    public static Localizable localizableERROR_IMPLEMENTOR_REGISTRY_DUPLICATE_NAME(Object arg0) {
-        return messageFactory.getMessage("error.implementorRegistry.duplicateName", arg0);
-    }
-
-    /**
-     * WSSERVLET42: duplicate port name: {0}
-     *
-     */
-    public static String ERROR_IMPLEMENTOR_REGISTRY_DUPLICATE_NAME(Object arg0) {
-        return localizer.localize(localizableERROR_IMPLEMENTOR_REGISTRY_DUPLICATE_NAME(arg0));
-    }
-
-    public static Localizable localizableERROR_IMPLEMENTOR_REGISTRY_FILE_NOT_FOUND(Object arg0) {
-        return messageFactory.getMessage("error.implementorRegistry.fileNotFound", arg0);
-    }
-
-    /**
-     * WSSERVLET45: file not found: {0}
-     *
-     */
-    public static String ERROR_IMPLEMENTOR_REGISTRY_FILE_NOT_FOUND(Object arg0) {
-        return localizer.localize(localizableERROR_IMPLEMENTOR_REGISTRY_FILE_NOT_FOUND(arg0));
-    }
-
-    public static Localizable localizableSERVLET_TRACE_INVOKING_IMPLEMENTOR(Object arg0) {
-        return messageFactory.getMessage("servlet.trace.invokingImplementor", arg0);
-    }
-
-    /**
-     * WSSERVLET21: invoking implementor: {0}
-     *
-     */
-    public static String SERVLET_TRACE_INVOKING_IMPLEMENTOR(Object arg0) {
-        return localizer.localize(localizableSERVLET_TRACE_INVOKING_IMPLEMENTOR(arg0));
-    }
-
-    public static Localizable localizableWSSERVLET_17_DIAG_CAUSE_1() {
-        return messageFactory.getMessage("WSSERVLET17.diag.cause.1");
-    }
-
-    /**
-     * Two or more endpoints with the same name where found in the jaxrpc-ri.xml runtime descriptor
-     *
-     */
-    public static String WSSERVLET_17_DIAG_CAUSE_1() {
-        return localizer.localize(localizableWSSERVLET_17_DIAG_CAUSE_1());
-    }
-
-    public static Localizable localizableHTML_NON_ROOT_PAGE_BODY_2() {
-        return messageFactory.getMessage("html.nonRootPage.body2");
-    }
-
-    /**
-     * <p>Invalid request URI.</p><p>Please check your deployment information.</p>
-     *
-     */
-    public static String HTML_NON_ROOT_PAGE_BODY_2() {
-        return localizer.localize(localizableHTML_NON_ROOT_PAGE_BODY_2());
-    }
-
-    public static Localizable localizableHTML_NON_ROOT_PAGE_BODY_1() {
-        return messageFactory.getMessage("html.nonRootPage.body1");
-    }
-
-    /**
-     * <p>A Web Service is installed at this URL.</p>
-     *
-     */
-    public static String HTML_NON_ROOT_PAGE_BODY_1() {
-        return localizer.localize(localizableHTML_NON_ROOT_PAGE_BODY_1());
-    }
-
-    public static Localizable localizablePUBLISHER_INFO_APPLYING_TRANSFORMATION(Object arg0) {
-        return messageFactory.getMessage("publisher.info.applyingTransformation", arg0);
-    }
-
-    /**
-     * WSSERVLET31: applying transformation with actual address: {0}
-     *
-     */
-    public static String PUBLISHER_INFO_APPLYING_TRANSFORMATION(Object arg0) {
-        return localizer.localize(localizablePUBLISHER_INFO_APPLYING_TRANSFORMATION(arg0));
-    }
-
-    public static Localizable localizableWSSERVLET_29_DIAG_CHECK_1() {
-        return messageFactory.getMessage("WSSERVLET29.diag.check.1");
-    }
-
-    /**
-     * Is the port valid? Unzip the war file and make sure the tie and serializers are present
-     *
-     */
-    public static String WSSERVLET_29_DIAG_CHECK_1() {
-        return localizer.localize(localizableWSSERVLET_29_DIAG_CHECK_1());
-    }
-
-    public static Localizable localizableSERVLET_TRACE_GOT_REQUEST_FOR_ENDPOINT(Object arg0) {
-        return messageFactory.getMessage("servlet.trace.gotRequestForEndpoint", arg0);
-    }
-
-    /**
-     * WSSERVLET19: got request for endpoint: {0}
-     *
-     */
-    public static String SERVLET_TRACE_GOT_REQUEST_FOR_ENDPOINT(Object arg0) {
-        return localizer.localize(localizableSERVLET_TRACE_GOT_REQUEST_FOR_ENDPOINT(arg0));
-    }
-
-    public static Localizable localizableERROR_SERVLET_INIT_CONFIG_PARAMETER_MISSING(Object arg0) {
-        return messageFactory.getMessage("error.servlet.init.config.parameter.missing", arg0);
-    }
-
-    /**
-     * WSSERVLET47: cannot find configuration parameter: "{0}"
-     *
-     */
-    public static String ERROR_SERVLET_INIT_CONFIG_PARAMETER_MISSING(Object arg0) {
-        return localizer.localize(localizableERROR_SERVLET_INIT_CONFIG_PARAMETER_MISSING(arg0));
-    }
-
-    public static Localizable localizableERROR_IMPLEMENTOR_FACTORY_SERVANT_INIT_FAILED(Object arg0) {
-        return messageFactory.getMessage("error.implementorFactory.servantInitFailed", arg0);
-    }
-
-    /**
-     * WSSERVLET44: failed to initialize the service implementor for port "{0}"
-     *
-     */
-    public static String ERROR_IMPLEMENTOR_FACTORY_SERVANT_INIT_FAILED(Object arg0) {
-        return localizer.localize(localizableERROR_IMPLEMENTOR_FACTORY_SERVANT_INIT_FAILED(arg0));
-    }
-
-    public static Localizable localizableWSSERVLET_13_DIAG_CHECK_1() {
-        return messageFactory.getMessage("WSSERVLET13.diag.check.1");
-    }
-
-    /**
-     * Normal web service shutdown
-     *
-     */
-    public static String WSSERVLET_13_DIAG_CHECK_1() {
-        return localizer.localize(localizableWSSERVLET_13_DIAG_CHECK_1());
-    }
-
-    public static Localizable localizableWSSERVLET_31_DIAG_CAUSE_1() {
-        return messageFactory.getMessage("WSSERVLET31.diag.cause.1");
-    }
-
-    /**
-     * Transformation being applied
-     *
-     */
-    public static String WSSERVLET_31_DIAG_CAUSE_1() {
-        return localizer.localize(localizableWSSERVLET_31_DIAG_CAUSE_1());
-    }
-
-    public static Localizable localizableWSSERVLET_50_DIAG_CHECK_3() {
-        return messageFactory.getMessage("WSSERVLET50.diag.check.3");
-    }
-
-    /**
-     * Check the server.xml file in the domain directory for failures
-     *
-     */
-    public static String WSSERVLET_50_DIAG_CHECK_3() {
-        return localizer.localize(localizableWSSERVLET_50_DIAG_CHECK_3());
-    }
-
-    public static Localizable localizableERROR_IMPLEMENTOR_FACTORY_NO_INPUT_STREAM() {
-        return messageFactory.getMessage("error.implementorFactory.noInputStream");
-    }
-
-    /**
-     * WSSERVLET37: no configuration specified
-     *
-     */
-    public static String ERROR_IMPLEMENTOR_FACTORY_NO_INPUT_STREAM() {
-        return localizer.localize(localizableERROR_IMPLEMENTOR_FACTORY_NO_INPUT_STREAM());
-    }
-
-    public static Localizable localizableWSSERVLET_24_DIAG_CAUSE_1() {
-        return messageFactory.getMessage("WSSERVLET24.diag.cause.1");
-    }
-
-    /**
-     * SOAPFault message is being returned to the client.
-     *
-     */
-    public static String WSSERVLET_24_DIAG_CAUSE_1() {
-        return localizer.localize(localizableWSSERVLET_24_DIAG_CAUSE_1());
-    }
-
-    public static Localizable localizableWSSERVLET_50_DIAG_CHECK_2() {
-        return messageFactory.getMessage("WSSERVLET50.diag.check.2");
-    }
-
-    /**
-     * Verify that Application server deployment descriptors are correct in the service war file
-     *
-     */
-    public static String WSSERVLET_50_DIAG_CHECK_2() {
-        return localizer.localize(localizableWSSERVLET_50_DIAG_CHECK_2());
-    }
-
-    public static Localizable localizableWSSERVLET_50_DIAG_CHECK_1() {
-        return messageFactory.getMessage("WSSERVLET50.diag.check.1");
-    }
-
-    /**
-     * Verify that sun-jaxws.xml and web.xml are correct in the service war file
-     *
-     */
-    public static String WSSERVLET_50_DIAG_CHECK_1() {
-        return localizer.localize(localizableWSSERVLET_50_DIAG_CHECK_1());
-    }
-
-    public static Localizable localizableWSSERVLET_43_DIAG_CHECK_1() {
-        return messageFactory.getMessage("WSSERVLET43.diag.check.1");
-    }
-
-    /**
-     * Make sure web service is available and public. Examine exception for more details
-     *
-     */
-    public static String WSSERVLET_43_DIAG_CHECK_1() {
-        return localizer.localize(localizableWSSERVLET_43_DIAG_CHECK_1());
-    }
-
-    public static Localizable localizableWSSERVLET_15_DIAG_CAUSE_1() {
-        return messageFactory.getMessage("WSSERVLET15.diag.cause.1");
-    }
-
-    /**
-     * Web Services servlet shutdown.
-     *
-     */
-    public static String WSSERVLET_15_DIAG_CAUSE_1() {
-        return localizer.localize(localizableWSSERVLET_15_DIAG_CAUSE_1());
-    }
-
-    public static Localizable localizableWSSERVLET_27_DIAG_CHECK_1() {
-        return messageFactory.getMessage("WSSERVLET27.diag.check.1");
-    }
-
-    /**
-     * Remove the implicit URL
-     *
-     */
-    public static String WSSERVLET_27_DIAG_CHECK_1() {
-        return localizer.localize(localizableWSSERVLET_27_DIAG_CHECK_1());
-    }
-
-    public static Localizable localizableERROR_IMPLEMENTOR_REGISTRY_UNKNOWN_NAME(Object arg0) {
-        return messageFactory.getMessage("error.implementorRegistry.unknownName", arg0);
-    }
-
-    /**
-     * WSSERVLET38: unknown port name: {0}
-     *
-     */
-    public static String ERROR_IMPLEMENTOR_REGISTRY_UNKNOWN_NAME(Object arg0) {
-        return localizer.localize(localizableERROR_IMPLEMENTOR_REGISTRY_UNKNOWN_NAME(arg0));
-    }
-
-    public static Localizable localizableSERVLET_HTML_NOT_FOUND(Object arg0) {
-        return messageFactory.getMessage("servlet.html.notFound", arg0);
-    }
-
-    /**
-     * <h1>404 Not Found: {0}</h1>
-     *
-     */
-    public static String SERVLET_HTML_NOT_FOUND(Object arg0) {
-        return localizer.localize(localizableSERVLET_HTML_NOT_FOUND(arg0));
-    }
-
-    public static Localizable localizableHTML_ROOT_PAGE_TITLE() {
-        return messageFactory.getMessage("html.rootPage.title");
-    }
-
-    /**
-     * Web Service
-     *
-     */
-    public static String HTML_ROOT_PAGE_TITLE() {
-        return localizer.localize(localizableHTML_ROOT_PAGE_TITLE());
-    }
-
-    public static Localizable localizableWSSERVLET_20_DIAG_CHECK_1() {
-        return messageFactory.getMessage("WSSERVLET20.diag.check.1");
-    }
-
-    /**
-     * Unzip the war, are the tie and serializer classes found?
-     *
-     */
-    public static String WSSERVLET_20_DIAG_CHECK_1() {
-        return localizer.localize(localizableWSSERVLET_20_DIAG_CHECK_1());
-    }
-
-    public static Localizable localizableJAXRPCSERVLET_11_DIAG_CAUSE_1() {
-        return messageFactory.getMessage("JAXRPCSERVLET11.diag.cause.1");
-    }
-
-    /**
-     * WSRuntimeInfoParser could not parse sun-jaxws.xml runtime descriptor
-     *
-     */
-    public static String JAXRPCSERVLET_11_DIAG_CAUSE_1() {
-        return localizer.localize(localizableJAXRPCSERVLET_11_DIAG_CAUSE_1());
-    }
-
-    public static Localizable localizableWSSERVLET_11_DIAG_CHECK_2() {
-        return messageFactory.getMessage("WSSERVLET11.diag.check.2");
-    }
-
-    /**
-     * Please check the jaxrpc-ri.xml file to make sure it is present in the war file
-     *
-     */
-    public static String WSSERVLET_11_DIAG_CHECK_2() {
-        return localizer.localize(localizableWSSERVLET_11_DIAG_CHECK_2());
-    }
-
-    public static Localizable localizableWSSERVLET_11_DIAG_CHECK_1() {
-        return messageFactory.getMessage("WSSERVLET11.diag.check.1");
-    }
-
-    /**
-     * Please check the sun-jaxws.xml file to make sure it is correct
-     *
-     */
-    public static String WSSERVLET_11_DIAG_CHECK_1() {
-        return localizer.localize(localizableWSSERVLET_11_DIAG_CHECK_1());
-    }
-
-    public static Localizable localizableWSSERVLET_22_DIAG_CAUSE_1() {
-        return messageFactory.getMessage("WSSERVLET22.diag.cause.1");
-    }
-
-    /**
-     * A request was invoked with no endpoint
-     *
-     */
-    public static String WSSERVLET_22_DIAG_CAUSE_1() {
-        return localizer.localize(localizableWSSERVLET_22_DIAG_CAUSE_1());
+    public static String WSSERVLET_30_DIAG_CHECK_1() {
+        return LOCALIZER.localize(localizableWSSERVLET_30_DIAG_CHECK_1());
     }
 
     public static Localizable localizableWSSERVLET_34_DIAG_CHECK_1() {
-        return messageFactory.getMessage("WSSERVLET34.diag.check.1");
+        return MESSAGE_FACTORY.getMessage("WSSERVLET34.diag.check.1");
     }
 
     /**
@@ -452,71 +78,143 @@
      *
      */
     public static String WSSERVLET_34_DIAG_CHECK_1() {
-        return localizer.localize(localizableWSSERVLET_34_DIAG_CHECK_1());
+        return LOCALIZER.localize(localizableWSSERVLET_34_DIAG_CHECK_1());
     }
 
-    public static Localizable localizableERROR_SERVLET_NO_IMPLEMENTOR_FOR_PORT(Object arg0) {
-        return messageFactory.getMessage("error.servlet.noImplementorForPort", arg0);
+    public static Localizable localizableSERVLET_FAULTSTRING_INVALID_CONTENT_TYPE() {
+        return MESSAGE_FACTORY.getMessage("servlet.faultstring.invalidContentType");
     }
 
     /**
-     * WSSERVLET52: no implementor registered for port: {0}
+     * WSSERVLET64: Invalid Content-Type, text/xml required
      *
      */
-    public static String ERROR_SERVLET_NO_IMPLEMENTOR_FOR_PORT(Object arg0) {
-        return localizer.localize(localizableERROR_SERVLET_NO_IMPLEMENTOR_FOR_PORT(arg0));
+    public static String SERVLET_FAULTSTRING_INVALID_CONTENT_TYPE() {
+        return LOCALIZER.localize(localizableSERVLET_FAULTSTRING_INVALID_CONTENT_TYPE());
     }
 
-    public static Localizable localizableWSSERVLET_64_DIAG_CHECK_1() {
-        return messageFactory.getMessage("WSSERVLET64.diag.check.1");
+    public static Localizable localizableWSSERVLET_27_DIAG_CAUSE_1() {
+        return MESSAGE_FACTORY.getMessage("WSSERVLET27.diag.cause.1");
     }
 
     /**
-     * Make sure the client request is using text/xml
+     * Implicit URLS are not supported in this release
      *
      */
-    public static String WSSERVLET_64_DIAG_CHECK_1() {
-        return localizer.localize(localizableWSSERVLET_64_DIAG_CHECK_1());
+    public static String WSSERVLET_27_DIAG_CAUSE_1() {
+        return LOCALIZER.localize(localizableWSSERVLET_27_DIAG_CAUSE_1());
     }
 
-    public static Localizable localizableWSSERVLET_18_DIAG_CHECK_1() {
-        return messageFactory.getMessage("WSSERVLET18.diag.check.1");
+    public static Localizable localizableHTML_WSDL_PAGE_NO_WSDL() {
+        return MESSAGE_FACTORY.getMessage("html.wsdlPage.noWsdl");
     }
 
     /**
-     * This may or may not be intentional. If not examine client program for errors.
+     * <p>No WSDL document available for publishing.</p><p>Please check your deployment information.</p>
      *
      */
-    public static String WSSERVLET_18_DIAG_CHECK_1() {
-        return localizer.localize(localizableWSSERVLET_18_DIAG_CHECK_1());
+    public static String HTML_WSDL_PAGE_NO_WSDL() {
+        return LOCALIZER.localize(localizableHTML_WSDL_PAGE_NO_WSDL());
     }
 
-    public static Localizable localizableWSSERVLET_29_DIAG_CAUSE_1() {
-        return messageFactory.getMessage("WSSERVLET29.diag.cause.1");
+    public static Localizable localizableWSSERVLET_19_DIAG_CHECK_1() {
+        return MESSAGE_FACTORY.getMessage("WSSERVLET19.diag.check.1");
     }
 
     /**
-     * A port is specified, but a corresponding service implementation is not found
+     * Informational message only. Normal operation.
      *
      */
-    public static String WSSERVLET_29_DIAG_CAUSE_1() {
-        return localizer.localize(localizableWSSERVLET_29_DIAG_CAUSE_1());
+    public static String WSSERVLET_19_DIAG_CHECK_1() {
+        return LOCALIZER.localize(localizableWSSERVLET_19_DIAG_CHECK_1());
     }
 
-    public static Localizable localizableSERVLET_ERROR_NO_RESPONSE_MESSAGE() {
-        return messageFactory.getMessage("servlet.error.noResponseMessage");
+    public static Localizable localizableSERVLET_TRACE_WRITING_FAULT_RESPONSE() {
+        return MESSAGE_FACTORY.getMessage("servlet.trace.writingFaultResponse");
     }
 
     /**
-     * WSSERVLET23: no response message
+     * WSSERVLET24: writing fault response
      *
      */
-    public static String SERVLET_ERROR_NO_RESPONSE_MESSAGE() {
-        return localizer.localize(localizableSERVLET_ERROR_NO_RESPONSE_MESSAGE());
+    public static String SERVLET_TRACE_WRITING_FAULT_RESPONSE() {
+        return LOCALIZER.localize(localizableSERVLET_TRACE_WRITING_FAULT_RESPONSE());
+    }
+
+    public static Localizable localizableSERVLET_WARNING_DUPLICATE_ENDPOINT_NAME() {
+        return MESSAGE_FACTORY.getMessage("servlet.warning.duplicateEndpointName");
+    }
+
+    /**
+     * WSSERVLET17: duplicate endpoint name
+     *
+     */
+    public static String SERVLET_WARNING_DUPLICATE_ENDPOINT_NAME() {
+        return LOCALIZER.localize(localizableSERVLET_WARNING_DUPLICATE_ENDPOINT_NAME());
+    }
+
+    public static Localizable localizableTRACE_SERVLET_HANDING_REQUEST_OVER_TO_IMPLEMENTOR(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("trace.servlet.handingRequestOverToImplementor", arg0);
+    }
+
+    /**
+     * WSSERVLET59: handing request over to implementor: {0}
+     *
+     */
+    public static String TRACE_SERVLET_HANDING_REQUEST_OVER_TO_IMPLEMENTOR(Object arg0) {
+        return LOCALIZER.localize(localizableTRACE_SERVLET_HANDING_REQUEST_OVER_TO_IMPLEMENTOR(arg0));
+    }
+
+    public static Localizable localizableWSSERVLET_11_DIAG_CHECK_2() {
+        return MESSAGE_FACTORY.getMessage("WSSERVLET11.diag.check.2");
+    }
+
+    /**
+     * Please check the jaxrpc-ri.xml file to make sure it is present in the war file
+     *
+     */
+    public static String WSSERVLET_11_DIAG_CHECK_2() {
+        return LOCALIZER.localize(localizableWSSERVLET_11_DIAG_CHECK_2());
+    }
+
+    public static Localizable localizableWSSERVLET_65_DIAG_CHECK_1() {
+        return MESSAGE_FACTORY.getMessage("WSSERVLET65.diag.check.1");
+    }
+
+    /**
+     * Add SOAPAction and appropriate value
+     *
+     */
+    public static String WSSERVLET_65_DIAG_CHECK_1() {
+        return LOCALIZER.localize(localizableWSSERVLET_65_DIAG_CHECK_1());
+    }
+
+    public static Localizable localizableWSSERVLET_11_DIAG_CHECK_1() {
+        return MESSAGE_FACTORY.getMessage("WSSERVLET11.diag.check.1");
+    }
+
+    /**
+     * Please check the sun-jaxws.xml file to make sure it is correct
+     *
+     */
+    public static String WSSERVLET_11_DIAG_CHECK_1() {
+        return LOCALIZER.localize(localizableWSSERVLET_11_DIAG_CHECK_1());
+    }
+
+    public static Localizable localizableWSSERVLET_15_DIAG_CHECK_1() {
+        return MESSAGE_FACTORY.getMessage("WSSERVLET15.diag.check.1");
+    }
+
+    /**
+     * Normal Web service undeployment. Undeployment complete.
+     *
+     */
+    public static String WSSERVLET_15_DIAG_CHECK_1() {
+        return LOCALIZER.localize(localizableWSSERVLET_15_DIAG_CHECK_1());
     }
 
     public static Localizable localizableMESSAGE_TOO_LONG(Object arg0) {
-        return messageFactory.getMessage("message.too.long", arg0);
+        return MESSAGE_FACTORY.getMessage("message.too.long", arg0);
     }
 
     /**
@@ -526,1151 +224,11 @@
      *
      */
     public static String MESSAGE_TOO_LONG(Object arg0) {
-        return localizer.localize(localizableMESSAGE_TOO_LONG(arg0));
-    }
-
-    public static Localizable localizableLISTENER_INFO_INITIALIZE() {
-        return messageFactory.getMessage("listener.info.initialize");
-    }
-
-    /**
-     * WSSERVLET12: JAX-WS context listener initializing
-     *
-     */
-    public static String LISTENER_INFO_INITIALIZE() {
-        return localizer.localize(localizableLISTENER_INFO_INITIALIZE());
-    }
-
-    public static Localizable localizableSERVLET_HTML_NO_INFO_AVAILABLE() {
-        return messageFactory.getMessage("servlet.html.noInfoAvailable");
-    }
-
-    /**
-     * <p>No JAX-WS context information available.</p>
-     *
-     */
-    public static String SERVLET_HTML_NO_INFO_AVAILABLE() {
-        return localizer.localize(localizableSERVLET_HTML_NO_INFO_AVAILABLE());
-    }
-
-    public static Localizable localizableSERVLET_HTML_INFORMATION_TABLE(Object arg0, Object arg1) {
-        return messageFactory.getMessage("servlet.html.information.table", arg0, arg1);
-    }
-
-    /**
-     * <table border="0"><tr><td>Address:</td><td>{0}</td></tr><tr><td>WSDL:</td><td><a href="{0}?wsdl">{0}?wsdl</a></td></tr><tr><td>Implementation class:</td><td>{1}</td></tr></table>
-     *
-     */
-    public static String SERVLET_HTML_INFORMATION_TABLE(Object arg0, Object arg1) {
-        return localizer.localize(localizableSERVLET_HTML_INFORMATION_TABLE(arg0, arg1));
-    }
-
-    public static Localizable localizableSERVLET_TRACE_WRITING_FAULT_RESPONSE() {
-        return messageFactory.getMessage("servlet.trace.writingFaultResponse");
-    }
-
-    /**
-     * WSSERVLET24: writing fault response
-     *
-     */
-    public static String SERVLET_TRACE_WRITING_FAULT_RESPONSE() {
-        return localizer.localize(localizableSERVLET_TRACE_WRITING_FAULT_RESPONSE());
-    }
-
-    public static Localizable localizableSERVLET_ERROR_NO_IMPLEMENTOR_FOR_ENDPOINT(Object arg0) {
-        return messageFactory.getMessage("servlet.error.noImplementorForEndpoint", arg0);
-    }
-
-    /**
-     * WSSERVLET20: no implementor for endpoint: {0}
-     *
-     */
-    public static String SERVLET_ERROR_NO_IMPLEMENTOR_FOR_ENDPOINT(Object arg0) {
-        return localizer.localize(localizableSERVLET_ERROR_NO_IMPLEMENTOR_FOR_ENDPOINT(arg0));
-    }
-
-    public static Localizable localizableWSSERVLET_13_DIAG_CAUSE_1() {
-        return messageFactory.getMessage("WSSERVLET13.diag.cause.1");
-    }
-
-    /**
-     * Context listener shutdown
-     *
-     */
-    public static String WSSERVLET_13_DIAG_CAUSE_1() {
-        return localizer.localize(localizableWSSERVLET_13_DIAG_CAUSE_1());
-    }
-
-    public static Localizable localizableWSSERVLET_50_DIAG_CAUSE_3() {
-        return messageFactory.getMessage("WSSERVLET50.diag.cause.3");
-    }
-
-    /**
-     * There may some Application Server initialization problems
-     *
-     */
-    public static String WSSERVLET_50_DIAG_CAUSE_3() {
-        return localizer.localize(localizableWSSERVLET_50_DIAG_CAUSE_3());
-    }
-
-    public static Localizable localizableWSSERVLET_32_DIAG_CHECK_1() {
-        return messageFactory.getMessage("WSSERVLET32.diag.check.1");
-    }
-
-    /**
-     * Normal Operation.
-     *
-     */
-    public static String WSSERVLET_32_DIAG_CHECK_1() {
-        return localizer.localize(localizableWSSERVLET_32_DIAG_CHECK_1());
-    }
-
-    public static Localizable localizableWSSERVLET_50_DIAG_CAUSE_2() {
-        return messageFactory.getMessage("WSSERVLET50.diag.cause.2");
-    }
-
-    /**
-     * Application server deployment descriptors may be incorrect
-     *
-     */
-    public static String WSSERVLET_50_DIAG_CAUSE_2() {
-        return localizer.localize(localizableWSSERVLET_50_DIAG_CAUSE_2());
-    }
-
-    public static Localizable localizableWSSERVLET_50_DIAG_CAUSE_1() {
-        return messageFactory.getMessage("WSSERVLET50.diag.cause.1");
-    }
-
-    /**
-     * WS runtime sun-jaxws.xml or web.xml may be incorrect
-     *
-     */
-    public static String WSSERVLET_50_DIAG_CAUSE_1() {
-        return localizer.localize(localizableWSSERVLET_50_DIAG_CAUSE_1());
-    }
-
-    public static Localizable localizableWSSERVLET_25_DIAG_CHECK_1() {
-        return messageFactory.getMessage("WSSERVLET25.diag.check.1");
-    }
-
-    /**
-     * Tracing message, normal response.
-     *
-     */
-    public static String WSSERVLET_25_DIAG_CHECK_1() {
-        return localizer.localize(localizableWSSERVLET_25_DIAG_CHECK_1());
-    }
-
-    public static Localizable localizableWSSERVLET_43_DIAG_CAUSE_1() {
-        return messageFactory.getMessage("WSSERVLET43.diag.cause.1");
-    }
-
-    /**
-     * Instantiation of the web service failed.
-     *
-     */
-    public static String WSSERVLET_43_DIAG_CAUSE_1() {
-        return localizer.localize(localizableWSSERVLET_43_DIAG_CAUSE_1());
-    }
-
-    public static Localizable localizableWSSERVLET_27_DIAG_CAUSE_1() {
-        return messageFactory.getMessage("WSSERVLET27.diag.cause.1");
-    }
-
-    /**
-     * Implicit URLS are not supported in this release
-     *
-     */
-    public static String WSSERVLET_27_DIAG_CAUSE_1() {
-        return localizer.localize(localizableWSSERVLET_27_DIAG_CAUSE_1());
-    }
-
-    public static Localizable localizableERROR_SERVLET_CAUGHT_THROWABLE_IN_INIT(Object arg0) {
-        return messageFactory.getMessage("error.servlet.caughtThrowableInInit", arg0);
-    }
-
-    /**
-     * WSSERVLET50: caught throwable during servlet initialization: {0}
-     *
-     */
-    public static String ERROR_SERVLET_CAUGHT_THROWABLE_IN_INIT(Object arg0) {
-        return localizer.localize(localizableERROR_SERVLET_CAUGHT_THROWABLE_IN_INIT(arg0));
-    }
-
-    public static Localizable localizableSERVLET_HTML_ENDPOINT_TABLE(Object arg0, Object arg1) {
-        return messageFactory.getMessage("servlet.html.endpoint.table", arg0, arg1);
-    }
-
-    /**
-     * <table border="0"><tr><td>Service Name:</td><td>{0}</td></tr><tr><td>Port Name:</td><td>{1}</td></tr></table>
-     *
-     */
-    public static String SERVLET_HTML_ENDPOINT_TABLE(Object arg0, Object arg1) {
-        return localizer.localize(localizableSERVLET_HTML_ENDPOINT_TABLE(arg0, arg1));
-    }
-
-    public static Localizable localizableERROR_SERVLET_CAUGHT_THROWABLE_WHILE_RECOVERING(Object arg0) {
-        return messageFactory.getMessage("error.servlet.caughtThrowableWhileRecovering", arg0);
-    }
-
-    /**
-     * WSSERVLET51: caught throwable while recovering from a previous exception: {0}
-     *
-     */
-    public static String ERROR_SERVLET_CAUGHT_THROWABLE_WHILE_RECOVERING(Object arg0) {
-        return localizer.localize(localizableERROR_SERVLET_CAUGHT_THROWABLE_WHILE_RECOVERING(arg0));
-    }
-
-    public static Localizable localizableNO_SUNJAXWS_XML(Object arg0) {
-        return messageFactory.getMessage("no.sunjaxws.xml", arg0);
-    }
-
-    /**
-     * Runtime descriptor "{0}" is missing
-     *
-     */
-    public static String NO_SUNJAXWS_XML(Object arg0) {
-        return localizer.localize(localizableNO_SUNJAXWS_XML(arg0));
-    }
-
-    public static Localizable localizableSERVLET_HTML_TITLE_2() {
-        return messageFactory.getMessage("servlet.html.title2");
-    }
-
-    /**
-     * <h1>Web Services</h1>
-     *
-     */
-    public static String SERVLET_HTML_TITLE_2() {
-        return localizer.localize(localizableSERVLET_HTML_TITLE_2());
-    }
-
-    public static Localizable localizableLISTENER_INFO_DESTROY() {
-        return messageFactory.getMessage("listener.info.destroy");
-    }
-
-    /**
-     * WSSERVLET13: JAX-WS context listener destroyed
-     *
-     */
-    public static String LISTENER_INFO_DESTROY() {
-        return localizer.localize(localizableLISTENER_INFO_DESTROY());
-    }
-
-    public static Localizable localizableEXCEPTION_TEMPLATE_CREATION_FAILED() {
-        return messageFactory.getMessage("exception.templateCreationFailed");
-    }
-
-    /**
-     * WSSERVLET35: failed to create a template object
-     *
-     */
-    public static String EXCEPTION_TEMPLATE_CREATION_FAILED() {
-        return localizer.localize(localizableEXCEPTION_TEMPLATE_CREATION_FAILED());
-    }
-
-    public static Localizable localizableWSSERVLET_20_DIAG_CAUSE_1() {
-        return messageFactory.getMessage("WSSERVLET20.diag.cause.1");
-    }
-
-    /**
-     * Implementation for this service can not be found
-     *
-     */
-    public static String WSSERVLET_20_DIAG_CAUSE_1() {
-        return localizer.localize(localizableWSSERVLET_20_DIAG_CAUSE_1());
-    }
-
-    public static Localizable localizableTRACE_SERVLET_WRITING_FAULT_RESPONSE() {
-        return messageFactory.getMessage("trace.servlet.writingFaultResponse");
-    }
-
-    /**
-     * WSSERVLET61: writing fault response
-     *
-     */
-    public static String TRACE_SERVLET_WRITING_FAULT_RESPONSE() {
-        return localizer.localize(localizableTRACE_SERVLET_WRITING_FAULT_RESPONSE());
-    }
-
-    public static Localizable localizableWSSERVLET_23_DIAG_CHECK_2() {
-        return messageFactory.getMessage("WSSERVLET23.diag.check.2");
-    }
-
-    /**
-     * The request may be malformed and be accepted by the service, yet did not generate a response
-     *
-     */
-    public static String WSSERVLET_23_DIAG_CHECK_2() {
-        return localizer.localize(localizableWSSERVLET_23_DIAG_CHECK_2());
-    }
-
-    public static Localizable localizableWSSERVLET_23_DIAG_CHECK_1() {
-        return messageFactory.getMessage("WSSERVLET23.diag.check.1");
-    }
-
-    /**
-     * If a response was expected, check that a request message was actually sent
-     *
-     */
-    public static String WSSERVLET_23_DIAG_CHECK_1() {
-        return localizer.localize(localizableWSSERVLET_23_DIAG_CHECK_1());
-    }
-
-    public static Localizable localizableSERVLET_WARNING_MISSING_CONTEXT_INFORMATION() {
-        return messageFactory.getMessage("servlet.warning.missingContextInformation");
-    }
-
-    /**
-     * WSSERVLET16: missing context information
-     *
-     */
-    public static String SERVLET_WARNING_MISSING_CONTEXT_INFORMATION() {
-        return localizer.localize(localizableSERVLET_WARNING_MISSING_CONTEXT_INFORMATION());
-    }
-
-    public static Localizable localizableWSSERVLET_16_DIAG_CHECK_1() {
-        return messageFactory.getMessage("WSSERVLET16.diag.check.1");
-    }
-
-    /**
-     * Unjar the service war file; check to see that the jaxrpc-ri-runtime.xml file is present
-     *
-     */
-    public static String WSSERVLET_16_DIAG_CHECK_1() {
-        return localizer.localize(localizableWSSERVLET_16_DIAG_CHECK_1());
-    }
-
-    public static Localizable localizableWSSERVLET_34_DIAG_CAUSE_1() {
-        return messageFactory.getMessage("WSSERVLET34.diag.cause.1");
-    }
-
-    /**
-     * The location patching on the wsdl failed when attempting to transform.
-     *
-     */
-    public static String WSSERVLET_34_DIAG_CAUSE_1() {
-        return localizer.localize(localizableWSSERVLET_34_DIAG_CAUSE_1());
-    }
-
-    public static Localizable localizableHTML_NON_ROOT_PAGE_TITLE() {
-        return messageFactory.getMessage("html.nonRootPage.title");
-    }
-
-    /**
-     * Web Service
-     *
-     */
-    public static String HTML_NON_ROOT_PAGE_TITLE() {
-        return localizer.localize(localizableHTML_NON_ROOT_PAGE_TITLE());
-    }
-
-    public static Localizable localizableSERVLET_HTML_COLUMN_HEADER_INFORMATION() {
-        return messageFactory.getMessage("servlet.html.columnHeader.information");
-    }
-
-    /**
-     * Information
-     *
-     */
-    public static String SERVLET_HTML_COLUMN_HEADER_INFORMATION() {
-        return localizer.localize(localizableSERVLET_HTML_COLUMN_HEADER_INFORMATION());
-    }
-
-    public static Localizable localizableWSSERVLET_18_DIAG_CAUSE_1() {
-        return messageFactory.getMessage("WSSERVLET18.diag.cause.1");
-    }
-
-    /**
-     * Message sent by client is empty
-     *
-     */
-    public static String WSSERVLET_18_DIAG_CAUSE_1() {
-        return localizer.localize(localizableWSSERVLET_18_DIAG_CAUSE_1());
-    }
-
-    public static Localizable localizableWSSERVLET_64_DIAG_CAUSE_1() {
-        return messageFactory.getMessage("WSSERVLET64.diag.cause.1");
-    }
-
-    /**
-     * Web service requests must be a content type text/xml: WSI BP 1.0
-     *
-     */
-    public static String WSSERVLET_64_DIAG_CAUSE_1() {
-        return localizer.localize(localizableWSSERVLET_64_DIAG_CAUSE_1());
-    }
-
-    public static Localizable localizableINFO_SERVLET_INITIALIZING() {
-        return messageFactory.getMessage("info.servlet.initializing");
-    }
-
-    /**
-     * WSSERVLET56: JAX-WS servlet: init
-     *
-     */
-    public static String INFO_SERVLET_INITIALIZING() {
-        return localizer.localize(localizableINFO_SERVLET_INITIALIZING());
-    }
-
-    public static Localizable localizableSERVLET_INFO_EMPTY_REQUEST_MESSAGE() {
-        return messageFactory.getMessage("servlet.info.emptyRequestMessage");
-    }
-
-    /**
-     * WSSERVLET18: got empty request message
-     *
-     */
-    public static String SERVLET_INFO_EMPTY_REQUEST_MESSAGE() {
-        return localizer.localize(localizableSERVLET_INFO_EMPTY_REQUEST_MESSAGE());
-    }
-
-    public static Localizable localizableSERVLET_ERROR_NO_ENDPOINT_SPECIFIED() {
-        return messageFactory.getMessage("servlet.error.noEndpointSpecified");
-    }
-
-    /**
-     * WSSERVLET22: no endpoint specified
-     *
-     */
-    public static String SERVLET_ERROR_NO_ENDPOINT_SPECIFIED() {
-        return localizer.localize(localizableSERVLET_ERROR_NO_ENDPOINT_SPECIFIED());
-    }
-
-    public static Localizable localizableWSSERVLET_11_DIAG_CAUSE_2() {
-        return messageFactory.getMessage("WSSERVLET11.diag.cause.2");
-    }
-
-    /**
-     * The sun-jaxws.xml runtime deployment descriptor may be missing
-     *
-     */
-    public static String WSSERVLET_11_DIAG_CAUSE_2() {
-        return localizer.localize(localizableWSSERVLET_11_DIAG_CAUSE_2());
-    }
-
-    public static Localizable localizableWSSERVLET_30_DIAG_CHECK_1() {
-        return messageFactory.getMessage("WSSERVLET30.diag.check.1");
-    }
-
-    /**
-     * This could be due to a number of causes. Check the server log file for exceptions.
-     *
-     */
-    public static String WSSERVLET_30_DIAG_CHECK_1() {
-        return localizer.localize(localizableWSSERVLET_30_DIAG_CHECK_1());
-    }
-
-    public static Localizable localizableEXCEPTION_CANNOT_CREATE_TRANSFORMER() {
-        return messageFactory.getMessage("exception.cannotCreateTransformer");
-    }
-
-    /**
-     * WSSERVLET33: cannot create transformer
-     *
-     */
-    public static String EXCEPTION_CANNOT_CREATE_TRANSFORMER() {
-        return localizer.localize(localizableEXCEPTION_CANNOT_CREATE_TRANSFORMER());
-    }
-
-    public static Localizable localizableSERVLET_FAULTSTRING_INVALID_SOAP_ACTION() {
-        return messageFactory.getMessage("servlet.faultstring.invalidSOAPAction");
-    }
-
-    /**
-     * WSSERVLET65: Invalid Header SOAPAction required
-     *
-     */
-    public static String SERVLET_FAULTSTRING_INVALID_SOAP_ACTION() {
-        return localizer.localize(localizableSERVLET_FAULTSTRING_INVALID_SOAP_ACTION());
-    }
-
-    public static Localizable localizableWSSERVLET_14_DIAG_CHECK_1() {
-        return messageFactory.getMessage("WSSERVLET14.diag.check.1");
-    }
-
-    /**
-     * Normal Web Service deployment. Deployment of service complete.
-     *
-     */
-    public static String WSSERVLET_14_DIAG_CHECK_1() {
-        return localizer.localize(localizableWSSERVLET_14_DIAG_CHECK_1());
-    }
-
-    public static Localizable localizableWSSERVLET_32_DIAG_CAUSE_1() {
-        return messageFactory.getMessage("WSSERVLET32.diag.cause.1");
-    }
-
-    /**
-     * WSDL being generated
-     *
-     */
-    public static String WSSERVLET_32_DIAG_CAUSE_1() {
-        return localizer.localize(localizableWSSERVLET_32_DIAG_CAUSE_1());
-    }
-
-    public static Localizable localizableWSSERVLET_25_DIAG_CAUSE_1() {
-        return messageFactory.getMessage("WSSERVLET25.diag.cause.1");
-    }
-
-    /**
-     * SOAPMessage response is being returned to client
-     *
-     */
-    public static String WSSERVLET_25_DIAG_CAUSE_1() {
-        return localizer.localize(localizableWSSERVLET_25_DIAG_CAUSE_1());
-    }
-
-    public static Localizable localizableWSSERVLET_44_DIAG_CHECK_1() {
-        return messageFactory.getMessage("WSSERVLET44.diag.check.1");
-    }
-
-    /**
-     * Check the exception for more details. Make sure all the configuration files are correct.
-     *
-     */
-    public static String WSSERVLET_44_DIAG_CHECK_1() {
-        return localizer.localize(localizableWSSERVLET_44_DIAG_CHECK_1());
-    }
-
-    public static Localizable localizableWSSERVLET_28_DIAG_CHECK_1() {
-        return messageFactory.getMessage("WSSERVLET28.diag.check.1");
-    }
-
-    /**
-     * Set target endpoint with stub.setTargetEndpoint() property.
-     *
-     */
-    public static String WSSERVLET_28_DIAG_CHECK_1() {
-        return localizer.localize(localizableWSSERVLET_28_DIAG_CHECK_1());
-    }
-
-    public static Localizable localizableSERVLET_INFO_INITIALIZE() {
-        return messageFactory.getMessage("servlet.info.initialize");
-    }
-
-    /**
-     * WSSERVLET14: JAX-WS servlet initializing
-     *
-     */
-    public static String SERVLET_INFO_INITIALIZE() {
-        return localizer.localize(localizableSERVLET_INFO_INITIALIZE());
-    }
-
-    public static Localizable localizableERROR_SERVLET_INIT_CONFIG_FILE_NOT_FOUND(Object arg0) {
-        return messageFactory.getMessage("error.servlet.init.config.fileNotFound", arg0);
-    }
-
-    /**
-     * WSSERVLET48: config file: "{0}" not found
-     *
-     */
-    public static String ERROR_SERVLET_INIT_CONFIG_FILE_NOT_FOUND(Object arg0) {
-        return localizer.localize(localizableERROR_SERVLET_INIT_CONFIG_FILE_NOT_FOUND(arg0));
-    }
-
-    public static Localizable localizableHTML_WSDL_PAGE_TITLE() {
-        return messageFactory.getMessage("html.wsdlPage.title");
-    }
-
-    /**
-     * Web Service
-     *
-     */
-    public static String HTML_WSDL_PAGE_TITLE() {
-        return localizer.localize(localizableHTML_WSDL_PAGE_TITLE());
-    }
-
-    public static Localizable localizableSERVLET_HTML_COLUMN_HEADER_PORT_NAME() {
-        return messageFactory.getMessage("servlet.html.columnHeader.portName");
-    }
-
-    /**
-     * Endpoint
-     *
-     */
-    public static String SERVLET_HTML_COLUMN_HEADER_PORT_NAME() {
-        return localizer.localize(localizableSERVLET_HTML_COLUMN_HEADER_PORT_NAME());
-    }
-
-    public static Localizable localizableHTML_ROOT_PAGE_BODY_2_B() {
-        return messageFactory.getMessage("html.rootPage.body2b");
-    }
-
-    /**
-     * </p>
-     *
-     */
-    public static String HTML_ROOT_PAGE_BODY_2_B() {
-        return localizer.localize(localizableHTML_ROOT_PAGE_BODY_2_B());
-    }
-
-    public static Localizable localizableHTML_ROOT_PAGE_BODY_2_A() {
-        return messageFactory.getMessage("html.rootPage.body2a");
-    }
-
-    /**
-     * <p>It supports the following ports:
-     *
-     */
-    public static String HTML_ROOT_PAGE_BODY_2_A() {
-        return localizer.localize(localizableHTML_ROOT_PAGE_BODY_2_A());
-    }
-
-    public static Localizable localizableWSSERVLET_21_DIAG_CHECK_1() {
-        return messageFactory.getMessage("WSSERVLET21.diag.check.1");
-    }
-
-    /**
-     * Normal web service invocation.
-     *
-     */
-    public static String WSSERVLET_21_DIAG_CHECK_1() {
-        return localizer.localize(localizableWSSERVLET_21_DIAG_CHECK_1());
-    }
-
-    public static Localizable localizableERROR_SERVLET_NO_PORT_SPECIFIED() {
-        return messageFactory.getMessage("error.servlet.noPortSpecified");
-    }
-
-    /**
-     * WSSERVLET53: no port specified in HTTP POST request URL
-     *
-     */
-    public static String ERROR_SERVLET_NO_PORT_SPECIFIED() {
-        return localizer.localize(localizableERROR_SERVLET_NO_PORT_SPECIFIED());
-    }
-
-    public static Localizable localizableINFO_SERVLET_GOT_EMPTY_REQUEST_MESSAGE() {
-        return messageFactory.getMessage("info.servlet.gotEmptyRequestMessage");
-    }
-
-    /**
-     * WSSERVLET55: got empty request message
-     *
-     */
-    public static String INFO_SERVLET_GOT_EMPTY_REQUEST_MESSAGE() {
-        return localizer.localize(localizableINFO_SERVLET_GOT_EMPTY_REQUEST_MESSAGE());
-    }
-
-    public static Localizable localizableWSSERVLET_51_DIAG_CHECK_1() {
-        return messageFactory.getMessage("WSSERVLET51.diag.check.1");
-    }
-
-    /**
-     * Check the server.xml log file for exception information
-     *
-     */
-    public static String WSSERVLET_51_DIAG_CHECK_1() {
-        return localizer.localize(localizableWSSERVLET_51_DIAG_CHECK_1());
-    }
-
-    public static Localizable localizableWSSERVLET_23_DIAG_CAUSE_1() {
-        return messageFactory.getMessage("WSSERVLET23.diag.cause.1");
-    }
-
-    /**
-     * The request generated no response from the service
-     *
-     */
-    public static String WSSERVLET_23_DIAG_CAUSE_1() {
-        return localizer.localize(localizableWSSERVLET_23_DIAG_CAUSE_1());
-    }
-
-    public static Localizable localizableWSSERVLET_16_DIAG_CAUSE_1() {
-        return messageFactory.getMessage("WSSERVLET16.diag.cause.1");
-    }
-
-    /**
-     * The jaxrpc-ri.xml file may be missing from the war file
-     *
-     */
-    public static String WSSERVLET_16_DIAG_CAUSE_1() {
-        return localizer.localize(localizableWSSERVLET_16_DIAG_CAUSE_1());
-    }
-
-    public static Localizable localizableWSSERVLET_35_DIAG_CHECK_1() {
-        return messageFactory.getMessage("WSSERVLET35.diag.check.1");
-    }
-
-    /**
-     * An exception was thrown during creation of the template. View exception and stacktrace for more details.
-     *
-     */
-    public static String WSSERVLET_35_DIAG_CHECK_1() {
-        return localizer.localize(localizableWSSERVLET_35_DIAG_CHECK_1());
-    }
-
-    public static Localizable localizableWSSERVLET_65_DIAG_CHECK_1() {
-        return messageFactory.getMessage("WSSERVLET65.diag.check.1");
-    }
-
-    /**
-     * Add SOAPAction and appropriate value
-     *
-     */
-    public static String WSSERVLET_65_DIAG_CHECK_1() {
-        return localizer.localize(localizableWSSERVLET_65_DIAG_CHECK_1());
-    }
-
-    public static Localizable localizableTRACE_SERVLET_HANDING_REQUEST_OVER_TO_IMPLEMENTOR(Object arg0) {
-        return messageFactory.getMessage("trace.servlet.handingRequestOverToImplementor", arg0);
-    }
-
-    /**
-     * WSSERVLET59: handing request over to implementor: {0}
-     *
-     */
-    public static String TRACE_SERVLET_HANDING_REQUEST_OVER_TO_IMPLEMENTOR(Object arg0) {
-        return localizer.localize(localizableTRACE_SERVLET_HANDING_REQUEST_OVER_TO_IMPLEMENTOR(arg0));
-    }
-
-    public static Localizable localizableWSSERVLET_19_DIAG_CHECK_1() {
-        return messageFactory.getMessage("WSSERVLET19.diag.check.1");
-    }
-
-    /**
-     * Informational message only. Normal operation.
-     *
-     */
-    public static String WSSERVLET_19_DIAG_CHECK_1() {
-        return localizer.localize(localizableWSSERVLET_19_DIAG_CHECK_1());
-    }
-
-    public static Localizable localizablePUBLISHER_INFO_GENERATING_WSDL(Object arg0) {
-        return messageFactory.getMessage("publisher.info.generatingWSDL", arg0);
-    }
-
-    /**
-     * WSSERVLET32: generating WSDL for endpoint: {0}
-     *
-     */
-    public static String PUBLISHER_INFO_GENERATING_WSDL(Object arg0) {
-        return localizer.localize(localizablePUBLISHER_INFO_GENERATING_WSDL(arg0));
-    }
-
-    public static Localizable localizableSERVLET_WARNING_DUPLICATE_ENDPOINT_URL_PATTERN(Object arg0) {
-        return messageFactory.getMessage("servlet.warning.duplicateEndpointUrlPattern", arg0);
-    }
-
-    /**
-     * WSSERVLET26: duplicate URL pattern in endpoint: {0}
-     *
-     */
-    public static String SERVLET_WARNING_DUPLICATE_ENDPOINT_URL_PATTERN(Object arg0) {
-        return localizer.localize(localizableSERVLET_WARNING_DUPLICATE_ENDPOINT_URL_PATTERN(arg0));
-    }
-
-    public static Localizable localizableWSSERVLET_49_DIAG_CHECK_1() {
-        return messageFactory.getMessage("WSSERVLET49.diag.check.1");
-    }
-
-    /**
-     * Check the server.xml log file for exception information
-     *
-     */
-    public static String WSSERVLET_49_DIAG_CHECK_1() {
-        return localizer.localize(localizableWSSERVLET_49_DIAG_CHECK_1());
-    }
-
-    public static Localizable localizableERROR_IMPLEMENTOR_REGISTRY_CANNOT_READ_CONFIGURATION() {
-        return messageFactory.getMessage("error.implementorRegistry.cannotReadConfiguration");
-    }
-
-    /**
-     * WSSERVLET39: cannot read configuration
-     *
-     */
-    public static String ERROR_IMPLEMENTOR_REGISTRY_CANNOT_READ_CONFIGURATION() {
-        return localizer.localize(localizableERROR_IMPLEMENTOR_REGISTRY_CANNOT_READ_CONFIGURATION());
-    }
-
-    public static Localizable localizableTRACE_SERVLET_GOT_RESPONSE_FROM_IMPLEMENTOR(Object arg0) {
-        return messageFactory.getMessage("trace.servlet.gotResponseFromImplementor", arg0);
-    }
-
-    /**
-     * WSSERVLET60: got response from implementor: {0}
-     *
-     */
-    public static String TRACE_SERVLET_GOT_RESPONSE_FROM_IMPLEMENTOR(Object arg0) {
-        return localizer.localize(localizableTRACE_SERVLET_GOT_RESPONSE_FROM_IMPLEMENTOR(arg0));
-    }
-
-    public static Localizable localizableERROR_IMPLEMENTOR_REGISTRY_INCOMPLETE_INFORMATION() {
-        return messageFactory.getMessage("error.implementorRegistry.incompleteInformation");
-    }
-
-    /**
-     * WSSERVLET41: configuration information is incomplete
-     *
-     */
-    public static String ERROR_IMPLEMENTOR_REGISTRY_INCOMPLETE_INFORMATION() {
-        return localizer.localize(localizableERROR_IMPLEMENTOR_REGISTRY_INCOMPLETE_INFORMATION());
-    }
-
-    public static Localizable localizableWSSERVLET_12_DIAG_CHECK_1() {
-        return messageFactory.getMessage("WSSERVLET12.diag.check.1");
-    }
-
-    /**
-     * Normal web service startup
-     *
-     */
-    public static String WSSERVLET_12_DIAG_CHECK_1() {
-        return localizer.localize(localizableWSSERVLET_12_DIAG_CHECK_1());
-    }
-
-    public static Localizable localizableWSSERVLET_30_DIAG_CAUSE_1() {
-        return messageFactory.getMessage("WSSERVLET30.diag.cause.1");
-    }
-
-    /**
-     * There was a server error processing the request
-     *
-     */
-    public static String WSSERVLET_30_DIAG_CAUSE_1() {
-        return localizer.localize(localizableWSSERVLET_30_DIAG_CAUSE_1());
-    }
-
-    public static Localizable localizableHTML_WSDL_PAGE_NO_WSDL() {
-        return messageFactory.getMessage("html.wsdlPage.noWsdl");
-    }
-
-    /**
-     * <p>No WSDL document available for publishing.</p><p>Please check your deployment information.</p>
-     *
-     */
-    public static String HTML_WSDL_PAGE_NO_WSDL() {
-        return localizer.localize(localizableHTML_WSDL_PAGE_NO_WSDL());
-    }
-
-    public static Localizable localizableWSSERVLET_14_DIAG_CAUSE_1() {
-        return messageFactory.getMessage("WSSERVLET14.diag.cause.1");
-    }
-
-    /**
-     * Web Services servlet starting up.
-     *
-     */
-    public static String WSSERVLET_14_DIAG_CAUSE_1() {
-        return localizer.localize(localizableWSSERVLET_14_DIAG_CAUSE_1());
-    }
-
-    public static Localizable localizableINFO_SERVLET_DESTROYING() {
-        return messageFactory.getMessage("info.servlet.destroying");
-    }
-
-    /**
-     * WSSERVLET57: JAX-WS servlet: destroy
-     *
-     */
-    public static String INFO_SERVLET_DESTROYING() {
-        return localizer.localize(localizableINFO_SERVLET_DESTROYING());
-    }
-
-    public static Localizable localizableERROR_SERVLET_NO_RESPONSE_WAS_PRODUCED() {
-        return messageFactory.getMessage("error.servlet.noResponseWasProduced");
-    }
-
-    /**
-     * WSSERVLET54: no response was produced (internal error)
-     *
-     */
-    public static String ERROR_SERVLET_NO_RESPONSE_WAS_PRODUCED() {
-        return localizer.localize(localizableERROR_SERVLET_NO_RESPONSE_WAS_PRODUCED());
-    }
-
-    public static Localizable localizableWSSERVLET_26_DIAG_CHECK_1() {
-        return messageFactory.getMessage("WSSERVLET26.diag.check.1");
-    }
-
-    /**
-     * This may cause a problem, please remove duplicate endpoints
-     *
-     */
-    public static String WSSERVLET_26_DIAG_CHECK_1() {
-        return localizer.localize(localizableWSSERVLET_26_DIAG_CHECK_1());
-    }
-
-    public static Localizable localizableSERVLET_HTML_TITLE() {
-        return messageFactory.getMessage("servlet.html.title");
-    }
-
-    /**
-     * Web Services
-     *
-     */
-    public static String SERVLET_HTML_TITLE() {
-        return localizer.localize(localizableSERVLET_HTML_TITLE());
-    }
-
-    public static Localizable localizableWSSERVLET_44_DIAG_CAUSE_1() {
-        return messageFactory.getMessage("WSSERVLET44.diag.cause.1");
-    }
-
-    /**
-     * The web service was instantiated, however, it could not be initialized
-     *
-     */
-    public static String WSSERVLET_44_DIAG_CAUSE_1() {
-        return localizer.localize(localizableWSSERVLET_44_DIAG_CAUSE_1());
-    }
-
-    public static Localizable localizableWSSERVLET_63_DIAG_CHECK_1() {
-        return messageFactory.getMessage("WSSERVLET63.diag.check.1");
-    }
-
-    /**
-     * Make sure that your HTTP client is using POST requests, not GET requests
-     *
-     */
-    public static String WSSERVLET_63_DIAG_CHECK_1() {
-        return localizer.localize(localizableWSSERVLET_63_DIAG_CHECK_1());
-    }
-
-    public static Localizable localizableWSSERVLET_28_DIAG_CAUSE_1() {
-        return messageFactory.getMessage("WSSERVLET28.diag.cause.1");
-    }
-
-    /**
-     * Target endpoint is null
-     *
-     */
-    public static String WSSERVLET_28_DIAG_CAUSE_1() {
-        return localizer.localize(localizableWSSERVLET_28_DIAG_CAUSE_1());
-    }
-
-    public static Localizable localizableERROR_IMPLEMENTOR_FACTORY_NO_CONFIGURATION() {
-        return messageFactory.getMessage("error.implementorFactory.noConfiguration");
-    }
-
-    /**
-     * WSSERVLET36: no configuration specified
-     *
-     */
-    public static String ERROR_IMPLEMENTOR_FACTORY_NO_CONFIGURATION() {
-        return localizer.localize(localizableERROR_IMPLEMENTOR_FACTORY_NO_CONFIGURATION());
-    }
-
-    public static Localizable localizableHTML_ROOT_PAGE_BODY_4() {
-        return messageFactory.getMessage("html.rootPage.body4");
-    }
-
-    /**
-     * <p>This endpoint is incorrectly configured. Please check the location and contents of the configuration file.</p>
-     *
-     */
-    public static String HTML_ROOT_PAGE_BODY_4() {
-        return localizer.localize(localizableHTML_ROOT_PAGE_BODY_4());
-    }
-
-    public static Localizable localizableHTML_ROOT_PAGE_BODY_1() {
-        return messageFactory.getMessage("html.rootPage.body1");
-    }
-
-    /**
-     * <p>A Web Service is installed at this URL.</p>
-     *
-     */
-    public static String HTML_ROOT_PAGE_BODY_1() {
-        return localizer.localize(localizableHTML_ROOT_PAGE_BODY_1());
-    }
-
-    public static Localizable localizableEXCEPTION_TRANSFORMATION_FAILED(Object arg0) {
-        return messageFactory.getMessage("exception.transformationFailed", arg0);
-    }
-
-    /**
-     * WSSERVLET34: transformation failed : {0}
-     *
-     */
-    public static String EXCEPTION_TRANSFORMATION_FAILED(Object arg0) {
-        return localizer.localize(localizableEXCEPTION_TRANSFORMATION_FAILED(arg0));
-    }
-
-    public static Localizable localizableSERVLET_HTML_METHOD() {
-        return messageFactory.getMessage("servlet.html.method");
-    }
-
-    /**
-     * WSSERVLET63: must use Post for this type of request
-     *
-     */
-    public static String SERVLET_HTML_METHOD() {
-        return localizer.localize(localizableSERVLET_HTML_METHOD());
-    }
-
-    public static Localizable localizableSERVLET_FAULTSTRING_MISSING_PORT() {
-        return messageFactory.getMessage("servlet.faultstring.missingPort");
-    }
-
-    /**
-     * WSSERVLET28: Missing port information
-     *
-     */
-    public static String SERVLET_FAULTSTRING_MISSING_PORT() {
-        return localizer.localize(localizableSERVLET_FAULTSTRING_MISSING_PORT());
-    }
-
-    public static Localizable localizableWSSERVLET_21_DIAG_CAUSE_1() {
-        return messageFactory.getMessage("WSSERVLET21.diag.cause.1");
-    }
-
-    /**
-     * The Web service is being invoked
-     *
-     */
-    public static String WSSERVLET_21_DIAG_CAUSE_1() {
-        return localizer.localize(localizableWSSERVLET_21_DIAG_CAUSE_1());
-    }
-
-    public static Localizable localizableSERVLET_TRACE_WRITING_SUCCESS_RESPONSE() {
-        return messageFactory.getMessage("servlet.trace.writingSuccessResponse");
-    }
-
-    /**
-     * WSSERVLET25: writing success response
-     *
-     */
-    public static String SERVLET_TRACE_WRITING_SUCCESS_RESPONSE() {
-        return localizer.localize(localizableSERVLET_TRACE_WRITING_SUCCESS_RESPONSE());
-    }
-
-    public static Localizable localizableWSSERVLET_33_DIAG_CHECK_2() {
-        return messageFactory.getMessage("WSSERVLET33.diag.check.2");
-    }
-
-    /**
-     * There maybe a transformation engine may not be supported or compatible. Check the server.xml file for exceptions.
-     *
-     */
-    public static String WSSERVLET_33_DIAG_CHECK_2() {
-        return localizer.localize(localizableWSSERVLET_33_DIAG_CHECK_2());
-    }
-
-    public static Localizable localizableWSSERVLET_33_DIAG_CHECK_1() {
-        return messageFactory.getMessage("WSSERVLET33.diag.check.1");
-    }
-
-    /**
-     * There maybe a transformation engine being used that is not compatible. Make sure you are using the correct transformer and version.
-     *
-     */
-    public static String WSSERVLET_33_DIAG_CHECK_1() {
-        return localizer.localize(localizableWSSERVLET_33_DIAG_CHECK_1());
-    }
-
-    public static Localizable localizableWSSERVLET_51_DIAG_CAUSE_1() {
-        return messageFactory.getMessage("WSSERVLET51.diag.cause.1");
-    }
-
-    /**
-     * Service processing of the request generated an exception; while attempting to return a SOAPPFaultMessage a throwable was again generated
-     *
-     */
-    public static String WSSERVLET_51_DIAG_CAUSE_1() {
-        return localizer.localize(localizableWSSERVLET_51_DIAG_CAUSE_1());
-    }
-
-    public static Localizable localizableWSSERVLET_24_DIAG_CHECK_1() {
-        return messageFactory.getMessage("WSSERVLET24.diag.check.1");
-    }
-
-    /**
-     * Tracing message fault recorded.
-     *
-     */
-    public static String WSSERVLET_24_DIAG_CHECK_1() {
-        return localizer.localize(localizableWSSERVLET_24_DIAG_CHECK_1());
-    }
-
-    public static Localizable localizableWSSERVLET_17_DIAG_CHECK_1() {
-        return messageFactory.getMessage("WSSERVLET17.diag.check.1");
-    }
-
-    /**
-     * Note that this may cause problems with service deployment
-     *
-     */
-    public static String WSSERVLET_17_DIAG_CHECK_1() {
-        return localizer.localize(localizableWSSERVLET_17_DIAG_CHECK_1());
-    }
-
-    public static Localizable localizableWSSERVLET_35_DIAG_CAUSE_1() {
-        return messageFactory.getMessage("WSSERVLET35.diag.cause.1");
-    }
-
-    /**
-     * A XSLT stylesheet template is create for the wsdl location patching using transformation. Template create failed.
-     *
-     */
-    public static String WSSERVLET_35_DIAG_CAUSE_1() {
-        return localizer.localize(localizableWSSERVLET_35_DIAG_CAUSE_1());
-    }
-
-    public static Localizable localizableWSSERVLET_19_DIAG_CAUSE_1() {
-        return messageFactory.getMessage("WSSERVLET19.diag.cause.1");
-    }
-
-    /**
-     * Client request for this endpoint arrived
-     *
-     */
-    public static String WSSERVLET_19_DIAG_CAUSE_1() {
-        return localizer.localize(localizableWSSERVLET_19_DIAG_CAUSE_1());
-    }
-
-    public static Localizable localizableWSSERVLET_65_DIAG_CAUSE_1() {
-        return messageFactory.getMessage("WSSERVLET65.diag.cause.1");
-    }
-
-    /**
-     * SOAP Action is required
-     *
-     */
-    public static String WSSERVLET_65_DIAG_CAUSE_1() {
-        return localizer.localize(localizableWSSERVLET_65_DIAG_CAUSE_1());
-    }
-
-    public static Localizable localizableLISTENER_PARSING_FAILED(Object arg0) {
-        return messageFactory.getMessage("listener.parsingFailed", arg0);
-    }
-
-    /**
-     * WSSERVLET11: failed to parse runtime descriptor: {0}
-     *
-     */
-    public static String LISTENER_PARSING_FAILED(Object arg0) {
-        return localizer.localize(localizableLISTENER_PARSING_FAILED(arg0));
-    }
-
-    public static Localizable localizableSERVLET_WARNING_IGNORING_IMPLICIT_URL_PATTERN(Object arg0) {
-        return messageFactory.getMessage("servlet.warning.ignoringImplicitUrlPattern", arg0);
-    }
-
-    /**
-     * WSSERVLET27: unsupported implicit URL pattern in endpoint: {0}
-     *
-     */
-    public static String SERVLET_WARNING_IGNORING_IMPLICIT_URL_PATTERN(Object arg0) {
-        return localizer.localize(localizableSERVLET_WARNING_IGNORING_IMPLICIT_URL_PATTERN(arg0));
-    }
-
-    public static Localizable localizableWSSERVLET_49_DIAG_CAUSE_1() {
-        return messageFactory.getMessage("WSSERVLET49.diag.cause.1");
-    }
-
-    /**
-     * Service processing of the request generated an exception; while attempting to return a SOAPFaultMessage a throwable was again generated
-     *
-     */
-    public static String WSSERVLET_49_DIAG_CAUSE_1() {
-        return localizer.localize(localizableWSSERVLET_49_DIAG_CAUSE_1());
+        return LOCALIZER.localize(localizableMESSAGE_TOO_LONG(arg0));
     }
 
     public static Localizable localizableERROR_IMPLEMENTOR_FACTORY_NEW_INSTANCE_FAILED(Object arg0) {
-        return messageFactory.getMessage("error.implementorFactory.newInstanceFailed", arg0);
+        return MESSAGE_FACTORY.getMessage("error.implementorFactory.newInstanceFailed", arg0);
     }
 
     /**
@@ -1678,191 +236,83 @@
      *
      */
     public static String ERROR_IMPLEMENTOR_FACTORY_NEW_INSTANCE_FAILED(Object arg0) {
-        return localizer.localize(localizableERROR_IMPLEMENTOR_FACTORY_NEW_INSTANCE_FAILED(arg0));
+        return LOCALIZER.localize(localizableERROR_IMPLEMENTOR_FACTORY_NEW_INSTANCE_FAILED(arg0));
     }
 
-    public static Localizable localizableWSSERVLET_12_DIAG_CAUSE_1() {
-        return messageFactory.getMessage("WSSERVLET12.diag.cause.1");
+    public static Localizable localizableERROR_IMPLEMENTOR_REGISTRY_CANNOT_READ_CONFIGURATION() {
+        return MESSAGE_FACTORY.getMessage("error.implementorRegistry.cannotReadConfiguration");
     }
 
     /**
-     * Context listener starting
+     * WSSERVLET39: cannot read configuration
      *
      */
-    public static String WSSERVLET_12_DIAG_CAUSE_1() {
-        return localizer.localize(localizableWSSERVLET_12_DIAG_CAUSE_1());
+    public static String ERROR_IMPLEMENTOR_REGISTRY_CANNOT_READ_CONFIGURATION() {
+        return LOCALIZER.localize(localizableERROR_IMPLEMENTOR_REGISTRY_CANNOT_READ_CONFIGURATION());
     }
 
-    public static Localizable localizableWSSERVLET_31_DIAG_CHECK_1() {
-        return messageFactory.getMessage("WSSERVLET31.diag.check.1");
+    public static Localizable localizableWSSERVLET_35_DIAG_CAUSE_1() {
+        return MESSAGE_FACTORY.getMessage("WSSERVLET35.diag.cause.1");
     }
 
     /**
-     * Normal operation
+     * A XSLT stylesheet template is create for the wsdl location patching using transformation. Template create failed.
      *
      */
-    public static String WSSERVLET_31_DIAG_CHECK_1() {
-        return localizer.localize(localizableWSSERVLET_31_DIAG_CHECK_1());
+    public static String WSSERVLET_35_DIAG_CAUSE_1() {
+        return LOCALIZER.localize(localizableWSSERVLET_35_DIAG_CAUSE_1());
     }
 
-    public static Localizable localizableSERVLET_FAULTSTRING_INVALID_CONTENT_TYPE() {
-        return messageFactory.getMessage("servlet.faultstring.invalidContentType");
+    public static Localizable localizableERROR_SERVLET_INIT_CONFIG_FILE_NOT_FOUND(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("error.servlet.init.config.fileNotFound", arg0);
     }
 
     /**
-     * WSSERVLET64: Invalid Content-Type, text/xml required
+     * WSSERVLET48: config file: "{0}" not found
      *
      */
-    public static String SERVLET_FAULTSTRING_INVALID_CONTENT_TYPE() {
-        return localizer.localize(localizableSERVLET_FAULTSTRING_INVALID_CONTENT_TYPE());
+    public static String ERROR_SERVLET_INIT_CONFIG_FILE_NOT_FOUND(Object arg0) {
+        return LOCALIZER.localize(localizableERROR_SERVLET_INIT_CONFIG_FILE_NOT_FOUND(arg0));
     }
 
-    public static Localizable localizableERROR_SERVLET_CAUGHT_THROWABLE(Object arg0) {
-        return messageFactory.getMessage("error.servlet.caughtThrowable", arg0);
+    public static Localizable localizableWSSERVLET_34_DIAG_CAUSE_1() {
+        return MESSAGE_FACTORY.getMessage("WSSERVLET34.diag.cause.1");
     }
 
     /**
-     * WSSERVLET49: caught throwable: {0}
+     * The location patching on the wsdl failed when attempting to transform.
      *
      */
-    public static String ERROR_SERVLET_CAUGHT_THROWABLE(Object arg0) {
-        return localizer.localize(localizableERROR_SERVLET_CAUGHT_THROWABLE(arg0));
+    public static String WSSERVLET_34_DIAG_CAUSE_1() {
+        return LOCALIZER.localize(localizableWSSERVLET_34_DIAG_CAUSE_1());
     }
 
-    public static Localizable localizableTRACE_SERVLET_WRITING_SUCCESS_RESPONSE() {
-        return messageFactory.getMessage("trace.servlet.writingSuccessResponse");
+    public static Localizable localizableERROR_SERVLET_CAUGHT_THROWABLE_IN_INIT(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("error.servlet.caughtThrowableInInit", arg0);
     }
 
     /**
-     * WSSERVLET62: writing success response
+     * WSSERVLET50: caught throwable during servlet initialization: {0}
      *
      */
-    public static String TRACE_SERVLET_WRITING_SUCCESS_RESPONSE() {
-        return localizer.localize(localizableTRACE_SERVLET_WRITING_SUCCESS_RESPONSE());
+    public static String ERROR_SERVLET_CAUGHT_THROWABLE_IN_INIT(Object arg0) {
+        return LOCALIZER.localize(localizableERROR_SERVLET_CAUGHT_THROWABLE_IN_INIT(arg0));
     }
 
-    public static Localizable localizableERROR_IMPLEMENTOR_REGISTRY_CLASS_NOT_FOUND(Object arg0) {
-        return messageFactory.getMessage("error.implementorRegistry.classNotFound", arg0);
+    public static Localizable localizableSERVLET_ERROR_NO_RESPONSE_MESSAGE() {
+        return MESSAGE_FACTORY.getMessage("servlet.error.noResponseMessage");
     }
 
     /**
-     * WSSERVLET40: class not found: {0}
+     * WSSERVLET23: no response message
      *
      */
-    public static String ERROR_IMPLEMENTOR_REGISTRY_CLASS_NOT_FOUND(Object arg0) {
-        return localizer.localize(localizableERROR_IMPLEMENTOR_REGISTRY_CLASS_NOT_FOUND(arg0));
-    }
-
-    public static Localizable localizableWSSERVLET_15_DIAG_CHECK_1() {
-        return messageFactory.getMessage("WSSERVLET15.diag.check.1");
-    }
-
-    /**
-     * Normal Web service undeployment. Undeployment complete.
-     *
-     */
-    public static String WSSERVLET_15_DIAG_CHECK_1() {
-        return localizer.localize(localizableWSSERVLET_15_DIAG_CHECK_1());
-    }
-
-    public static Localizable localizableSERVLET_FAULTSTRING_PORT_NOT_FOUND(Object arg0) {
-        return messageFactory.getMessage("servlet.faultstring.portNotFound", arg0);
-    }
-
-    /**
-     * WSSERVLET29: Port not found ({0})
-     *
-     */
-    public static String SERVLET_FAULTSTRING_PORT_NOT_FOUND(Object arg0) {
-        return localizer.localize(localizableSERVLET_FAULTSTRING_PORT_NOT_FOUND(arg0));
-    }
-
-    public static Localizable localizableSERVLET_INFO_DESTROY() {
-        return messageFactory.getMessage("servlet.info.destroy");
-    }
-
-    /**
-     * WSSERVLET15: JAX-WS servlet destroyed
-     *
-     */
-    public static String SERVLET_INFO_DESTROY() {
-        return localizer.localize(localizableSERVLET_INFO_DESTROY());
-    }
-
-    public static Localizable localizableSERVLET_FAULTSTRING_INTERNAL_SERVER_ERROR(Object arg0) {
-        return messageFactory.getMessage("servlet.faultstring.internalServerError", arg0);
-    }
-
-    /**
-     * WSSERVLET30: Internal server error ({0})
-     *
-     */
-    public static String SERVLET_FAULTSTRING_INTERNAL_SERVER_ERROR(Object arg0) {
-        return localizer.localize(localizableSERVLET_FAULTSTRING_INTERNAL_SERVER_ERROR(arg0));
-    }
-
-    public static Localizable localizableWSSERVLET_26_DIAG_CAUSE_1() {
-        return messageFactory.getMessage("WSSERVLET26.diag.cause.1");
-    }
-
-    /**
-     * The endpoint URL is a duplicate
-     *
-     */
-    public static String WSSERVLET_26_DIAG_CAUSE_1() {
-        return localizer.localize(localizableWSSERVLET_26_DIAG_CAUSE_1());
-    }
-
-    public static Localizable localizableSERVLET_HTML_COLUMN_HEADER_STATUS() {
-        return messageFactory.getMessage("servlet.html.columnHeader.status");
-    }
-
-    /**
-     * Status
-     *
-     */
-    public static String SERVLET_HTML_COLUMN_HEADER_STATUS() {
-        return localizer.localize(localizableSERVLET_HTML_COLUMN_HEADER_STATUS());
-    }
-
-    public static Localizable localizableWSSERVLET_63_DIAG_CAUSE_1() {
-        return messageFactory.getMessage("WSSERVLET63.diag.cause.1");
-    }
-
-    /**
-     * Web service requests must use HTTP POST method: WSI BP 1.0
-     *
-     */
-    public static String WSSERVLET_63_DIAG_CAUSE_1() {
-        return localizer.localize(localizableWSSERVLET_63_DIAG_CAUSE_1());
-    }
-
-    public static Localizable localizableSERVLET_WARNING_DUPLICATE_ENDPOINT_NAME() {
-        return messageFactory.getMessage("servlet.warning.duplicateEndpointName");
-    }
-
-    /**
-     * WSSERVLET17: duplicate endpoint name
-     *
-     */
-    public static String SERVLET_WARNING_DUPLICATE_ENDPOINT_NAME() {
-        return localizer.localize(localizableSERVLET_WARNING_DUPLICATE_ENDPOINT_NAME());
-    }
-
-    public static Localizable localizableTRACE_SERVLET_REQUEST_FOR_PORT_NAMED(Object arg0) {
-        return messageFactory.getMessage("trace.servlet.requestForPortNamed", arg0);
-    }
-
-    /**
-     * WSSERVLET58: got request for port: {0}
-     *
-     */
-    public static String TRACE_SERVLET_REQUEST_FOR_PORT_NAMED(Object arg0) {
-        return localizer.localize(localizableTRACE_SERVLET_REQUEST_FOR_PORT_NAMED(arg0));
+    public static String SERVLET_ERROR_NO_RESPONSE_MESSAGE() {
+        return LOCALIZER.localize(localizableSERVLET_ERROR_NO_RESPONSE_MESSAGE());
     }
 
     public static Localizable localizableSERVLET_NO_ADDRESS_AVAILABLE(Object arg0) {
-        return messageFactory.getMessage("servlet.no.address.available", arg0);
+        return MESSAGE_FACTORY.getMessage("servlet.no.address.available", arg0);
     }
 
     /**
@@ -1870,7 +320,1566 @@
      *
      */
     public static String SERVLET_NO_ADDRESS_AVAILABLE(Object arg0) {
-        return localizer.localize(localizableSERVLET_NO_ADDRESS_AVAILABLE(arg0));
+        return LOCALIZER.localize(localizableSERVLET_NO_ADDRESS_AVAILABLE(arg0));
+    }
+
+    public static Localizable localizableWSSERVLET_31_DIAG_CAUSE_1() {
+        return MESSAGE_FACTORY.getMessage("WSSERVLET31.diag.cause.1");
+    }
+
+    /**
+     * Transformation being applied
+     *
+     */
+    public static String WSSERVLET_31_DIAG_CAUSE_1() {
+        return LOCALIZER.localize(localizableWSSERVLET_31_DIAG_CAUSE_1());
+    }
+
+    public static Localizable localizableWSSERVLET_30_DIAG_CAUSE_1() {
+        return MESSAGE_FACTORY.getMessage("WSSERVLET30.diag.cause.1");
+    }
+
+    /**
+     * There was a server error processing the request
+     *
+     */
+    public static String WSSERVLET_30_DIAG_CAUSE_1() {
+        return LOCALIZER.localize(localizableWSSERVLET_30_DIAG_CAUSE_1());
+    }
+
+    public static Localizable localizableINFO_SERVLET_DESTROYING() {
+        return MESSAGE_FACTORY.getMessage("info.servlet.destroying");
+    }
+
+    /**
+     * WSSERVLET57: JAX-WS servlet: destroy
+     *
+     */
+    public static String INFO_SERVLET_DESTROYING() {
+        return LOCALIZER.localize(localizableINFO_SERVLET_DESTROYING());
+    }
+
+    public static Localizable localizableWSSERVLET_22_DIAG_CAUSE_1() {
+        return MESSAGE_FACTORY.getMessage("WSSERVLET22.diag.cause.1");
+    }
+
+    /**
+     * A request was invoked with no endpoint
+     *
+     */
+    public static String WSSERVLET_22_DIAG_CAUSE_1() {
+        return LOCALIZER.localize(localizableWSSERVLET_22_DIAG_CAUSE_1());
+    }
+
+    public static Localizable localizableWSSERVLET_26_DIAG_CAUSE_1() {
+        return MESSAGE_FACTORY.getMessage("WSSERVLET26.diag.cause.1");
+    }
+
+    /**
+     * The endpoint URL is a duplicate
+     *
+     */
+    public static String WSSERVLET_26_DIAG_CAUSE_1() {
+        return LOCALIZER.localize(localizableWSSERVLET_26_DIAG_CAUSE_1());
+    }
+
+    public static Localizable localizableSERVLET_HTML_NOT_FOUND(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("servlet.html.notFound", arg0);
+    }
+
+    /**
+     * <h1>404 Not Found: {0}</h1>
+     *
+     */
+    public static String SERVLET_HTML_NOT_FOUND(Object arg0) {
+        return LOCALIZER.localize(localizableSERVLET_HTML_NOT_FOUND(arg0));
+    }
+
+    public static Localizable localizableNO_SUNJAXWS_XML(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("no.sunjaxws.xml", arg0);
+    }
+
+    /**
+     * Runtime descriptor "{0}" is missing
+     *
+     */
+    public static String NO_SUNJAXWS_XML(Object arg0) {
+        return LOCALIZER.localize(localizableNO_SUNJAXWS_XML(arg0));
+    }
+
+    public static Localizable localizableWSSERVLET_18_DIAG_CHECK_1() {
+        return MESSAGE_FACTORY.getMessage("WSSERVLET18.diag.check.1");
+    }
+
+    /**
+     * This may or may not be intentional. If not examine client program for errors.
+     *
+     */
+    public static String WSSERVLET_18_DIAG_CHECK_1() {
+        return LOCALIZER.localize(localizableWSSERVLET_18_DIAG_CHECK_1());
+    }
+
+    public static Localizable localizableWSSERVLET_24_DIAG_CAUSE_1() {
+        return MESSAGE_FACTORY.getMessage("WSSERVLET24.diag.cause.1");
+    }
+
+    /**
+     * SOAPFault message is being returned to the client.
+     *
+     */
+    public static String WSSERVLET_24_DIAG_CAUSE_1() {
+        return LOCALIZER.localize(localizableWSSERVLET_24_DIAG_CAUSE_1());
+    }
+
+    public static Localizable localizableWSSERVLET_51_DIAG_CAUSE_1() {
+        return MESSAGE_FACTORY.getMessage("WSSERVLET51.diag.cause.1");
+    }
+
+    /**
+     * Service processing of the request generated an exception; while attempting to return a SOAPPFaultMessage a throwable was again generated
+     *
+     */
+    public static String WSSERVLET_51_DIAG_CAUSE_1() {
+        return LOCALIZER.localize(localizableWSSERVLET_51_DIAG_CAUSE_1());
+    }
+
+    public static Localizable localizableERROR_SERVLET_NO_PORT_SPECIFIED() {
+        return MESSAGE_FACTORY.getMessage("error.servlet.noPortSpecified");
+    }
+
+    /**
+     * WSSERVLET53: no port specified in HTTP POST request URL
+     *
+     */
+    public static String ERROR_SERVLET_NO_PORT_SPECIFIED() {
+        return LOCALIZER.localize(localizableERROR_SERVLET_NO_PORT_SPECIFIED());
+    }
+
+    public static Localizable localizableWSSERVLET_43_DIAG_CAUSE_1() {
+        return MESSAGE_FACTORY.getMessage("WSSERVLET43.diag.cause.1");
+    }
+
+    /**
+     * Instantiation of the web service failed.
+     *
+     */
+    public static String WSSERVLET_43_DIAG_CAUSE_1() {
+        return LOCALIZER.localize(localizableWSSERVLET_43_DIAG_CAUSE_1());
+    }
+
+    public static Localizable localizableTRACE_SERVLET_WRITING_SUCCESS_RESPONSE() {
+        return MESSAGE_FACTORY.getMessage("trace.servlet.writingSuccessResponse");
+    }
+
+    /**
+     * WSSERVLET62: writing success response
+     *
+     */
+    public static String TRACE_SERVLET_WRITING_SUCCESS_RESPONSE() {
+        return LOCALIZER.localize(localizableTRACE_SERVLET_WRITING_SUCCESS_RESPONSE());
+    }
+
+    public static Localizable localizableINFO_SERVLET_GOT_EMPTY_REQUEST_MESSAGE() {
+        return MESSAGE_FACTORY.getMessage("info.servlet.gotEmptyRequestMessage");
+    }
+
+    /**
+     * WSSERVLET55: got empty request message
+     *
+     */
+    public static String INFO_SERVLET_GOT_EMPTY_REQUEST_MESSAGE() {
+        return LOCALIZER.localize(localizableINFO_SERVLET_GOT_EMPTY_REQUEST_MESSAGE());
+    }
+
+    public static Localizable localizableERROR_SERVLET_CAUGHT_THROWABLE_WHILE_RECOVERING(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("error.servlet.caughtThrowableWhileRecovering", arg0);
+    }
+
+    /**
+     * WSSERVLET51: caught throwable while recovering from a previous exception: {0}
+     *
+     */
+    public static String ERROR_SERVLET_CAUGHT_THROWABLE_WHILE_RECOVERING(Object arg0) {
+        return LOCALIZER.localize(localizableERROR_SERVLET_CAUGHT_THROWABLE_WHILE_RECOVERING(arg0));
+    }
+
+    public static Localizable localizableWSSERVLET_12_DIAG_CHECK_1() {
+        return MESSAGE_FACTORY.getMessage("WSSERVLET12.diag.check.1");
+    }
+
+    /**
+     * Normal web service startup
+     *
+     */
+    public static String WSSERVLET_12_DIAG_CHECK_1() {
+        return LOCALIZER.localize(localizableWSSERVLET_12_DIAG_CHECK_1());
+    }
+
+    public static Localizable localizableWSSERVLET_16_DIAG_CHECK_1() {
+        return MESSAGE_FACTORY.getMessage("WSSERVLET16.diag.check.1");
+    }
+
+    /**
+     * Unjar the service war file; check to see that the jaxrpc-ri-runtime.xml file is present
+     *
+     */
+    public static String WSSERVLET_16_DIAG_CHECK_1() {
+        return LOCALIZER.localize(localizableWSSERVLET_16_DIAG_CHECK_1());
+    }
+
+    public static Localizable localizableSERVLET_INFO_EMPTY_REQUEST_MESSAGE() {
+        return MESSAGE_FACTORY.getMessage("servlet.info.emptyRequestMessage");
+    }
+
+    /**
+     * WSSERVLET18: got empty request message
+     *
+     */
+    public static String SERVLET_INFO_EMPTY_REQUEST_MESSAGE() {
+        return LOCALIZER.localize(localizableSERVLET_INFO_EMPTY_REQUEST_MESSAGE());
+    }
+
+    public static Localizable localizableSERVLET_WARNING_IGNORING_IMPLICIT_URL_PATTERN(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("servlet.warning.ignoringImplicitUrlPattern", arg0);
+    }
+
+    /**
+     * WSSERVLET27: unsupported implicit URL pattern in endpoint: {0}
+     *
+     */
+    public static String SERVLET_WARNING_IGNORING_IMPLICIT_URL_PATTERN(Object arg0) {
+        return LOCALIZER.localize(localizableSERVLET_WARNING_IGNORING_IMPLICIT_URL_PATTERN(arg0));
+    }
+
+    public static Localizable localizableWSSERVLET_14_DIAG_CHECK_1() {
+        return MESSAGE_FACTORY.getMessage("WSSERVLET14.diag.check.1");
+    }
+
+    /**
+     * Normal Web Service deployment. Deployment of service complete.
+     *
+     */
+    public static String WSSERVLET_14_DIAG_CHECK_1() {
+        return LOCALIZER.localize(localizableWSSERVLET_14_DIAG_CHECK_1());
+    }
+
+    public static Localizable localizableWSSERVLET_20_DIAG_CAUSE_1() {
+        return MESSAGE_FACTORY.getMessage("WSSERVLET20.diag.cause.1");
+    }
+
+    /**
+     * Implementation for this service can not be found
+     *
+     */
+    public static String WSSERVLET_20_DIAG_CAUSE_1() {
+        return LOCALIZER.localize(localizableWSSERVLET_20_DIAG_CAUSE_1());
+    }
+
+    public static Localizable localizableWSSERVLET_14_DIAG_CAUSE_1() {
+        return MESSAGE_FACTORY.getMessage("WSSERVLET14.diag.cause.1");
+    }
+
+    /**
+     * Web Services servlet starting up.
+     *
+     */
+    public static String WSSERVLET_14_DIAG_CAUSE_1() {
+        return LOCALIZER.localize(localizableWSSERVLET_14_DIAG_CAUSE_1());
+    }
+
+    public static Localizable localizableWSSERVLET_28_DIAG_CHECK_1() {
+        return MESSAGE_FACTORY.getMessage("WSSERVLET28.diag.check.1");
+    }
+
+    /**
+     * Set target endpoint with stub.setTargetEndpoint() property.
+     *
+     */
+    public static String WSSERVLET_28_DIAG_CHECK_1() {
+        return LOCALIZER.localize(localizableWSSERVLET_28_DIAG_CHECK_1());
+    }
+
+    public static Localizable localizableWSSERVLET_26_DIAG_CHECK_1() {
+        return MESSAGE_FACTORY.getMessage("WSSERVLET26.diag.check.1");
+    }
+
+    /**
+     * This may cause a problem, please remove duplicate endpoints
+     *
+     */
+    public static String WSSERVLET_26_DIAG_CHECK_1() {
+        return LOCALIZER.localize(localizableWSSERVLET_26_DIAG_CHECK_1());
+    }
+
+    public static Localizable localizableHTML_ROOT_PAGE_TITLE() {
+        return MESSAGE_FACTORY.getMessage("html.rootPage.title");
+    }
+
+    /**
+     * Web Service
+     *
+     */
+    public static String HTML_ROOT_PAGE_TITLE() {
+        return LOCALIZER.localize(localizableHTML_ROOT_PAGE_TITLE());
+    }
+
+    public static Localizable localizableWSSERVLET_18_DIAG_CAUSE_1() {
+        return MESSAGE_FACTORY.getMessage("WSSERVLET18.diag.cause.1");
+    }
+
+    /**
+     * Message sent by client is empty
+     *
+     */
+    public static String WSSERVLET_18_DIAG_CAUSE_1() {
+        return LOCALIZER.localize(localizableWSSERVLET_18_DIAG_CAUSE_1());
+    }
+
+    public static Localizable localizableWSSERVLET_63_DIAG_CAUSE_1() {
+        return MESSAGE_FACTORY.getMessage("WSSERVLET63.diag.cause.1");
+    }
+
+    /**
+     * Web service requests must use HTTP POST method: WSI BP 1.0
+     *
+     */
+    public static String WSSERVLET_63_DIAG_CAUSE_1() {
+        return LOCALIZER.localize(localizableWSSERVLET_63_DIAG_CAUSE_1());
+    }
+
+    public static Localizable localizableHTML_NON_ROOT_PAGE_TITLE() {
+        return MESSAGE_FACTORY.getMessage("html.nonRootPage.title");
+    }
+
+    /**
+     * Web Service
+     *
+     */
+    public static String HTML_NON_ROOT_PAGE_TITLE() {
+        return LOCALIZER.localize(localizableHTML_NON_ROOT_PAGE_TITLE());
+    }
+
+    public static Localizable localizableSERVLET_INFO_DESTROY() {
+        return MESSAGE_FACTORY.getMessage("servlet.info.destroy");
+    }
+
+    /**
+     * WSSERVLET15: JAX-WS servlet destroyed
+     *
+     */
+    public static String SERVLET_INFO_DESTROY() {
+        return LOCALIZER.localize(localizableSERVLET_INFO_DESTROY());
+    }
+
+    public static Localizable localizableSERVLET_FAULTSTRING_INVALID_SOAP_ACTION() {
+        return MESSAGE_FACTORY.getMessage("servlet.faultstring.invalidSOAPAction");
+    }
+
+    /**
+     * WSSERVLET65: Invalid Header SOAPAction required
+     *
+     */
+    public static String SERVLET_FAULTSTRING_INVALID_SOAP_ACTION() {
+        return LOCALIZER.localize(localizableSERVLET_FAULTSTRING_INVALID_SOAP_ACTION());
+    }
+
+    public static Localizable localizableWSSERVLET_16_DIAG_CAUSE_1() {
+        return MESSAGE_FACTORY.getMessage("WSSERVLET16.diag.cause.1");
+    }
+
+    /**
+     * The jaxrpc-ri.xml file may be missing from the war file
+     *
+     */
+    public static String WSSERVLET_16_DIAG_CAUSE_1() {
+        return LOCALIZER.localize(localizableWSSERVLET_16_DIAG_CAUSE_1());
+    }
+
+    public static Localizable localizableWSSERVLET_63_DIAG_CHECK_1() {
+        return MESSAGE_FACTORY.getMessage("WSSERVLET63.diag.check.1");
+    }
+
+    /**
+     * Make sure that your HTTP client is using POST requests, not GET requests
+     *
+     */
+    public static String WSSERVLET_63_DIAG_CHECK_1() {
+        return LOCALIZER.localize(localizableWSSERVLET_63_DIAG_CHECK_1());
+    }
+
+    public static Localizable localizableEXCEPTION_TRANSFORMATION_FAILED(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("exception.transformationFailed", arg0);
+    }
+
+    /**
+     * WSSERVLET34: transformation failed : {0}
+     *
+     */
+    public static String EXCEPTION_TRANSFORMATION_FAILED(Object arg0) {
+        return LOCALIZER.localize(localizableEXCEPTION_TRANSFORMATION_FAILED(arg0));
+    }
+
+    public static Localizable localizableWSSERVLET_28_DIAG_CAUSE_1() {
+        return MESSAGE_FACTORY.getMessage("WSSERVLET28.diag.cause.1");
+    }
+
+    /**
+     * Target endpoint is null
+     *
+     */
+    public static String WSSERVLET_28_DIAG_CAUSE_1() {
+        return LOCALIZER.localize(localizableWSSERVLET_28_DIAG_CAUSE_1());
+    }
+
+    public static Localizable localizableWSSERVLET_20_DIAG_CHECK_1() {
+        return MESSAGE_FACTORY.getMessage("WSSERVLET20.diag.check.1");
+    }
+
+    /**
+     * Unzip the war, are the tie and serializer classes found?
+     *
+     */
+    public static String WSSERVLET_20_DIAG_CHECK_1() {
+        return LOCALIZER.localize(localizableWSSERVLET_20_DIAG_CHECK_1());
+    }
+
+    public static Localizable localizableERROR_SERVLET_NO_IMPLEMENTOR_FOR_PORT(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("error.servlet.noImplementorForPort", arg0);
+    }
+
+    /**
+     * WSSERVLET52: no implementor registered for port: {0}
+     *
+     */
+    public static String ERROR_SERVLET_NO_IMPLEMENTOR_FOR_PORT(Object arg0) {
+        return LOCALIZER.localize(localizableERROR_SERVLET_NO_IMPLEMENTOR_FOR_PORT(arg0));
+    }
+
+    public static Localizable localizablePUBLISHER_INFO_GENERATING_WSDL(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("publisher.info.generatingWSDL", arg0);
+    }
+
+    /**
+     * WSSERVLET32: generating WSDL for endpoint: {0}
+     *
+     */
+    public static String PUBLISHER_INFO_GENERATING_WSDL(Object arg0) {
+        return LOCALIZER.localize(localizablePUBLISHER_INFO_GENERATING_WSDL(arg0));
+    }
+
+    public static Localizable localizableWSSERVLET_22_DIAG_CHECK_1() {
+        return MESSAGE_FACTORY.getMessage("WSSERVLET22.diag.check.1");
+    }
+
+    /**
+     * Set endpoint with stub.setTargetEndpoint property
+     *
+     */
+    public static String WSSERVLET_22_DIAG_CHECK_1() {
+        return LOCALIZER.localize(localizableWSSERVLET_22_DIAG_CHECK_1());
+    }
+
+    public static Localizable localizableWSSERVLET_24_DIAG_CHECK_1() {
+        return MESSAGE_FACTORY.getMessage("WSSERVLET24.diag.check.1");
+    }
+
+    /**
+     * Tracing message fault recorded.
+     *
+     */
+    public static String WSSERVLET_24_DIAG_CHECK_1() {
+        return LOCALIZER.localize(localizableWSSERVLET_24_DIAG_CHECK_1());
+    }
+
+    public static Localizable localizableWSSERVLET_12_DIAG_CAUSE_1() {
+        return MESSAGE_FACTORY.getMessage("WSSERVLET12.diag.cause.1");
+    }
+
+    /**
+     * Context listener starting
+     *
+     */
+    public static String WSSERVLET_12_DIAG_CAUSE_1() {
+        return LOCALIZER.localize(localizableWSSERVLET_12_DIAG_CAUSE_1());
+    }
+
+    public static Localizable localizableWSSERVLET_65_DIAG_CAUSE_1() {
+        return MESSAGE_FACTORY.getMessage("WSSERVLET65.diag.cause.1");
+    }
+
+    /**
+     * SOAP Action is required
+     *
+     */
+    public static String WSSERVLET_65_DIAG_CAUSE_1() {
+        return LOCALIZER.localize(localizableWSSERVLET_65_DIAG_CAUSE_1());
+    }
+
+    public static Localizable localizableSERVLET_TRACE_INVOKING_IMPLEMENTOR(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("servlet.trace.invokingImplementor", arg0);
+    }
+
+    /**
+     * WSSERVLET21: invoking implementor: {0}
+     *
+     */
+    public static String SERVLET_TRACE_INVOKING_IMPLEMENTOR(Object arg0) {
+        return LOCALIZER.localize(localizableSERVLET_TRACE_INVOKING_IMPLEMENTOR(arg0));
+    }
+
+    public static Localizable localizableWSSERVLET_21_DIAG_CAUSE_1() {
+        return MESSAGE_FACTORY.getMessage("WSSERVLET21.diag.cause.1");
+    }
+
+    /**
+     * The Web service is being invoked
+     *
+     */
+    public static String WSSERVLET_21_DIAG_CAUSE_1() {
+        return LOCALIZER.localize(localizableWSSERVLET_21_DIAG_CAUSE_1());
+    }
+
+    public static Localizable localizableTRACE_SERVLET_REQUEST_FOR_PORT_NAMED(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("trace.servlet.requestForPortNamed", arg0);
+    }
+
+    /**
+     * WSSERVLET58: got request for port: {0}
+     *
+     */
+    public static String TRACE_SERVLET_REQUEST_FOR_PORT_NAMED(Object arg0) {
+        return LOCALIZER.localize(localizableTRACE_SERVLET_REQUEST_FOR_PORT_NAMED(arg0));
+    }
+
+    public static Localizable localizablePUBLISHER_INFO_APPLYING_TRANSFORMATION(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("publisher.info.applyingTransformation", arg0);
+    }
+
+    /**
+     * WSSERVLET31: applying transformation with actual address: {0}
+     *
+     */
+    public static String PUBLISHER_INFO_APPLYING_TRANSFORMATION(Object arg0) {
+        return LOCALIZER.localize(localizablePUBLISHER_INFO_APPLYING_TRANSFORMATION(arg0));
+    }
+
+    public static Localizable localizableERROR_IMPLEMENTOR_FACTORY_SERVANT_INIT_FAILED(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("error.implementorFactory.servantInitFailed", arg0);
+    }
+
+    /**
+     * WSSERVLET44: failed to initialize the service implementor for port "{0}"
+     *
+     */
+    public static String ERROR_IMPLEMENTOR_FACTORY_SERVANT_INIT_FAILED(Object arg0) {
+        return LOCALIZER.localize(localizableERROR_IMPLEMENTOR_FACTORY_SERVANT_INIT_FAILED(arg0));
+    }
+
+    public static Localizable localizableWSSERVLET_17_DIAG_CHECK_1() {
+        return MESSAGE_FACTORY.getMessage("WSSERVLET17.diag.check.1");
+    }
+
+    /**
+     * Note that this may cause problems with service deployment
+     *
+     */
+    public static String WSSERVLET_17_DIAG_CHECK_1() {
+        return LOCALIZER.localize(localizableWSSERVLET_17_DIAG_CHECK_1());
+    }
+
+    public static Localizable localizableERROR_SERVLET_CAUGHT_THROWABLE(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("error.servlet.caughtThrowable", arg0);
+    }
+
+    /**
+     * WSSERVLET49: caught throwable: {0}
+     *
+     */
+    public static String ERROR_SERVLET_CAUGHT_THROWABLE(Object arg0) {
+        return LOCALIZER.localize(localizableERROR_SERVLET_CAUGHT_THROWABLE(arg0));
+    }
+
+    public static Localizable localizableWSSERVLET_25_DIAG_CAUSE_1() {
+        return MESSAGE_FACTORY.getMessage("WSSERVLET25.diag.cause.1");
+    }
+
+    /**
+     * SOAPMessage response is being returned to client
+     *
+     */
+    public static String WSSERVLET_25_DIAG_CAUSE_1() {
+        return LOCALIZER.localize(localizableWSSERVLET_25_DIAG_CAUSE_1());
+    }
+
+    public static Localizable localizableSERVLET_HTML_METHOD() {
+        return MESSAGE_FACTORY.getMessage("servlet.html.method");
+    }
+
+    /**
+     * WSSERVLET63: must use Post for this type of request
+     *
+     */
+    public static String SERVLET_HTML_METHOD() {
+        return LOCALIZER.localize(localizableSERVLET_HTML_METHOD());
+    }
+
+    public static Localizable localizableERROR_IMPLEMENTOR_FACTORY_NO_INPUT_STREAM() {
+        return MESSAGE_FACTORY.getMessage("error.implementorFactory.noInputStream");
+    }
+
+    /**
+     * WSSERVLET37: no configuration specified
+     *
+     */
+    public static String ERROR_IMPLEMENTOR_FACTORY_NO_INPUT_STREAM() {
+        return LOCALIZER.localize(localizableERROR_IMPLEMENTOR_FACTORY_NO_INPUT_STREAM());
+    }
+
+    public static Localizable localizableWSSERVLET_51_DIAG_CHECK_1() {
+        return MESSAGE_FACTORY.getMessage("WSSERVLET51.diag.check.1");
+    }
+
+    /**
+     * Check the server.xml log file for exception information
+     *
+     */
+    public static String WSSERVLET_51_DIAG_CHECK_1() {
+        return LOCALIZER.localize(localizableWSSERVLET_51_DIAG_CHECK_1());
+    }
+
+    public static Localizable localizableERROR_IMPLEMENTOR_REGISTRY_UNKNOWN_NAME(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("error.implementorRegistry.unknownName", arg0);
+    }
+
+    /**
+     * WSSERVLET38: unknown port name: {0}
+     *
+     */
+    public static String ERROR_IMPLEMENTOR_REGISTRY_UNKNOWN_NAME(Object arg0) {
+        return LOCALIZER.localize(localizableERROR_IMPLEMENTOR_REGISTRY_UNKNOWN_NAME(arg0));
+    }
+
+    public static Localizable localizableERROR_IMPLEMENTOR_REGISTRY_INCOMPLETE_INFORMATION() {
+        return MESSAGE_FACTORY.getMessage("error.implementorRegistry.incompleteInformation");
+    }
+
+    /**
+     * WSSERVLET41: configuration information is incomplete
+     *
+     */
+    public static String ERROR_IMPLEMENTOR_REGISTRY_INCOMPLETE_INFORMATION() {
+        return LOCALIZER.localize(localizableERROR_IMPLEMENTOR_REGISTRY_INCOMPLETE_INFORMATION());
+    }
+
+    public static Localizable localizableWSSERVLET_13_DIAG_CHECK_1() {
+        return MESSAGE_FACTORY.getMessage("WSSERVLET13.diag.check.1");
+    }
+
+    /**
+     * Normal web service shutdown
+     *
+     */
+    public static String WSSERVLET_13_DIAG_CHECK_1() {
+        return LOCALIZER.localize(localizableWSSERVLET_13_DIAG_CHECK_1());
+    }
+
+    public static Localizable localizableWSSERVLET_32_DIAG_CHECK_1() {
+        return MESSAGE_FACTORY.getMessage("WSSERVLET32.diag.check.1");
+    }
+
+    /**
+     * Normal Operation.
+     *
+     */
+    public static String WSSERVLET_32_DIAG_CHECK_1() {
+        return LOCALIZER.localize(localizableWSSERVLET_32_DIAG_CHECK_1());
+    }
+
+    public static Localizable localizableSERVLET_HTML_TITLE_2() {
+        return MESSAGE_FACTORY.getMessage("servlet.html.title2");
+    }
+
+    /**
+     * <h1>Web Services</h1>
+     *
+     */
+    public static String SERVLET_HTML_TITLE_2() {
+        return LOCALIZER.localize(localizableSERVLET_HTML_TITLE_2());
+    }
+
+    public static Localizable localizableSERVLET_HTML_COLUMN_HEADER_PORT_NAME() {
+        return MESSAGE_FACTORY.getMessage("servlet.html.columnHeader.portName");
+    }
+
+    /**
+     * Endpoint
+     *
+     */
+    public static String SERVLET_HTML_COLUMN_HEADER_PORT_NAME() {
+        return LOCALIZER.localize(localizableSERVLET_HTML_COLUMN_HEADER_PORT_NAME());
+    }
+
+    public static Localizable localizableSERVLET_HTML_COLUMN_HEADER_STATUS() {
+        return MESSAGE_FACTORY.getMessage("servlet.html.columnHeader.status");
+    }
+
+    /**
+     * Status
+     *
+     */
+    public static String SERVLET_HTML_COLUMN_HEADER_STATUS() {
+        return LOCALIZER.localize(localizableSERVLET_HTML_COLUMN_HEADER_STATUS());
+    }
+
+    public static Localizable localizableWSSERVLET_43_DIAG_CHECK_1() {
+        return MESSAGE_FACTORY.getMessage("WSSERVLET43.diag.check.1");
+    }
+
+    /**
+     * Make sure web service is available and public. Examine exception for more details
+     *
+     */
+    public static String WSSERVLET_43_DIAG_CHECK_1() {
+        return LOCALIZER.localize(localizableWSSERVLET_43_DIAG_CHECK_1());
+    }
+
+    public static Localizable localizableINFO_SERVLET_INITIALIZING() {
+        return MESSAGE_FACTORY.getMessage("info.servlet.initializing");
+    }
+
+    /**
+     * WSSERVLET56: JAX-WS servlet: init
+     *
+     */
+    public static String INFO_SERVLET_INITIALIZING() {
+        return LOCALIZER.localize(localizableINFO_SERVLET_INITIALIZING());
+    }
+
+    public static Localizable localizableWSSERVLET_32_DIAG_CAUSE_1() {
+        return MESSAGE_FACTORY.getMessage("WSSERVLET32.diag.cause.1");
+    }
+
+    /**
+     * WSDL being generated
+     *
+     */
+    public static String WSSERVLET_32_DIAG_CAUSE_1() {
+        return LOCALIZER.localize(localizableWSSERVLET_32_DIAG_CAUSE_1());
+    }
+
+    public static Localizable localizableJAXRPCSERVLET_11_DIAG_CAUSE_1() {
+        return MESSAGE_FACTORY.getMessage("JAXRPCSERVLET11.diag.cause.1");
+    }
+
+    /**
+     * WSRuntimeInfoParser could not parse sun-jaxws.xml runtime descriptor
+     *
+     */
+    public static String JAXRPCSERVLET_11_DIAG_CAUSE_1() {
+        return LOCALIZER.localize(localizableJAXRPCSERVLET_11_DIAG_CAUSE_1());
+    }
+
+    public static Localizable localizableWSSERVLET_33_DIAG_CAUSE_1() {
+        return MESSAGE_FACTORY.getMessage("WSSERVLET33.diag.cause.1");
+    }
+
+    /**
+     * When publishing the service wsdl, the http location is patched with the deployed location/endpoint using XSLT transformation. The transformer could not be created to do the transformation.
+     *
+     */
+    public static String WSSERVLET_33_DIAG_CAUSE_1() {
+        return LOCALIZER.localize(localizableWSSERVLET_33_DIAG_CAUSE_1());
+    }
+
+    public static Localizable localizableWSSERVLET_44_DIAG_CHECK_1() {
+        return MESSAGE_FACTORY.getMessage("WSSERVLET44.diag.check.1");
+    }
+
+    /**
+     * Check the exception for more details. Make sure all the configuration files are correct.
+     *
+     */
+    public static String WSSERVLET_44_DIAG_CHECK_1() {
+        return LOCALIZER.localize(localizableWSSERVLET_44_DIAG_CHECK_1());
+    }
+
+    public static Localizable localizableWSSERVLET_33_DIAG_CAUSE_2() {
+        return MESSAGE_FACTORY.getMessage("WSSERVLET33.diag.cause.2");
+    }
+
+    /**
+     * When publishing the service wsdl, the http location is patched with the deployed location/endpoint using XSLT transformation. The transformer could not be created to do the transformation.
+     *
+     */
+    public static String WSSERVLET_33_DIAG_CAUSE_2() {
+        return LOCALIZER.localize(localizableWSSERVLET_33_DIAG_CAUSE_2());
+    }
+
+    public static Localizable localizableERROR_IMPLEMENTOR_FACTORY_NO_CONFIGURATION() {
+        return MESSAGE_FACTORY.getMessage("error.implementorFactory.noConfiguration");
+    }
+
+    /**
+     * WSSERVLET36: no configuration specified
+     *
+     */
+    public static String ERROR_IMPLEMENTOR_FACTORY_NO_CONFIGURATION() {
+        return LOCALIZER.localize(localizableERROR_IMPLEMENTOR_FACTORY_NO_CONFIGURATION());
+    }
+
+    public static Localizable localizableWSSERVLET_44_DIAG_CAUSE_1() {
+        return MESSAGE_FACTORY.getMessage("WSSERVLET44.diag.cause.1");
+    }
+
+    /**
+     * The web service was instantiated, however, it could not be initialized
+     *
+     */
+    public static String WSSERVLET_44_DIAG_CAUSE_1() {
+        return LOCALIZER.localize(localizableWSSERVLET_44_DIAG_CAUSE_1());
+    }
+
+    public static Localizable localizableHTML_WSDL_PAGE_TITLE() {
+        return MESSAGE_FACTORY.getMessage("html.wsdlPage.title");
+    }
+
+    /**
+     * Web Service
+     *
+     */
+    public static String HTML_WSDL_PAGE_TITLE() {
+        return LOCALIZER.localize(localizableHTML_WSDL_PAGE_TITLE());
+    }
+
+    public static Localizable localizableERROR_IMPLEMENTOR_REGISTRY_DUPLICATE_NAME(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("error.implementorRegistry.duplicateName", arg0);
+    }
+
+    /**
+     * WSSERVLET42: duplicate port name: {0}
+     *
+     */
+    public static String ERROR_IMPLEMENTOR_REGISTRY_DUPLICATE_NAME(Object arg0) {
+        return LOCALIZER.localize(localizableERROR_IMPLEMENTOR_REGISTRY_DUPLICATE_NAME(arg0));
+    }
+
+    public static Localizable localizableSERVLET_WARNING_DUPLICATE_ENDPOINT_URL_PATTERN(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("servlet.warning.duplicateEndpointUrlPattern", arg0);
+    }
+
+    /**
+     * WSSERVLET26: duplicate URL pattern in endpoint: {0}
+     *
+     */
+    public static String SERVLET_WARNING_DUPLICATE_ENDPOINT_URL_PATTERN(Object arg0) {
+        return LOCALIZER.localize(localizableSERVLET_WARNING_DUPLICATE_ENDPOINT_URL_PATTERN(arg0));
+    }
+
+    public static Localizable localizableSERVLET_HTML_NO_INFO_AVAILABLE() {
+        return MESSAGE_FACTORY.getMessage("servlet.html.noInfoAvailable");
+    }
+
+    /**
+     * <p>No JAX-WS context information available.</p>
+     *
+     */
+    public static String SERVLET_HTML_NO_INFO_AVAILABLE() {
+        return LOCALIZER.localize(localizableSERVLET_HTML_NO_INFO_AVAILABLE());
+    }
+
+    public static Localizable localizableWSSERVLET_49_DIAG_CAUSE_1() {
+        return MESSAGE_FACTORY.getMessage("WSSERVLET49.diag.cause.1");
+    }
+
+    /**
+     * Service processing of the request generated an exception; while attempting to return a SOAPFaultMessage a throwable was again generated
+     *
+     */
+    public static String WSSERVLET_49_DIAG_CAUSE_1() {
+        return LOCALIZER.localize(localizableWSSERVLET_49_DIAG_CAUSE_1());
+    }
+
+    public static Localizable localizableWSSERVLET_33_DIAG_CHECK_1() {
+        return MESSAGE_FACTORY.getMessage("WSSERVLET33.diag.check.1");
+    }
+
+    /**
+     * There maybe a transformation engine being used that is not compatible. Make sure you are using the correct transformer and version.
+     *
+     */
+    public static String WSSERVLET_33_DIAG_CHECK_1() {
+        return LOCALIZER.localize(localizableWSSERVLET_33_DIAG_CHECK_1());
+    }
+
+    public static Localizable localizableWSSERVLET_35_DIAG_CHECK_1() {
+        return MESSAGE_FACTORY.getMessage("WSSERVLET35.diag.check.1");
+    }
+
+    /**
+     * An exception was thrown during creation of the template. View exception and stacktrace for more details.
+     *
+     */
+    public static String WSSERVLET_35_DIAG_CHECK_1() {
+        return LOCALIZER.localize(localizableWSSERVLET_35_DIAG_CHECK_1());
+    }
+
+    public static Localizable localizableWSSERVLET_33_DIAG_CHECK_2() {
+        return MESSAGE_FACTORY.getMessage("WSSERVLET33.diag.check.2");
+    }
+
+    /**
+     * There maybe a transformation engine may not be supported or compatible. Check the server.xml file for exceptions.
+     *
+     */
+    public static String WSSERVLET_33_DIAG_CHECK_2() {
+        return LOCALIZER.localize(localizableWSSERVLET_33_DIAG_CHECK_2());
+    }
+
+    public static Localizable localizableSERVLET_HTML_INFORMATION_TABLE(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("servlet.html.information.table", arg0, arg1);
+    }
+
+    /**
+     * <table border="0"><tr><td>Address:</td><td>{0}</td></tr><tr><td>WSDL:</td><td><a href="{0}?wsdl">{0}?wsdl</a></td></tr><tr><td>Implementation class:</td><td>{1}</td></tr></table>
+     *
+     */
+    public static String SERVLET_HTML_INFORMATION_TABLE(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableSERVLET_HTML_INFORMATION_TABLE(arg0, arg1));
+    }
+
+    public static Localizable localizableERROR_WSDL_PUBLISHER_CANNOT_READ_CONFIGURATION() {
+        return MESSAGE_FACTORY.getMessage("error.wsdlPublisher.cannotReadConfiguration");
+    }
+
+    /**
+     * WSSERVLET46: cannot read configuration
+     *
+     */
+    public static String ERROR_WSDL_PUBLISHER_CANNOT_READ_CONFIGURATION() {
+        return LOCALIZER.localize(localizableERROR_WSDL_PUBLISHER_CANNOT_READ_CONFIGURATION());
+    }
+
+    public static Localizable localizableEXCEPTION_CANNOT_CREATE_TRANSFORMER() {
+        return MESSAGE_FACTORY.getMessage("exception.cannotCreateTransformer");
+    }
+
+    /**
+     * WSSERVLET33: cannot create transformer
+     *
+     */
+    public static String EXCEPTION_CANNOT_CREATE_TRANSFORMER() {
+        return LOCALIZER.localize(localizableEXCEPTION_CANNOT_CREATE_TRANSFORMER());
+    }
+
+    public static Localizable localizableHTML_NON_ROOT_PAGE_BODY_2() {
+        return MESSAGE_FACTORY.getMessage("html.nonRootPage.body2");
+    }
+
+    /**
+     * <p>Invalid request URI.</p><p>Please check your deployment information.</p>
+     *
+     */
+    public static String HTML_NON_ROOT_PAGE_BODY_2() {
+        return LOCALIZER.localize(localizableHTML_NON_ROOT_PAGE_BODY_2());
+    }
+
+    public static Localizable localizableLISTENER_PARSING_FAILED(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("listener.parsingFailed", arg0);
+    }
+
+    /**
+     * WSSERVLET11: failed to parse runtime descriptor: {0}
+     *
+     */
+    public static String LISTENER_PARSING_FAILED(Object arg0) {
+        return LOCALIZER.localize(localizableLISTENER_PARSING_FAILED(arg0));
+    }
+
+    public static Localizable localizableLISTENER_INFO_DESTROY() {
+        return MESSAGE_FACTORY.getMessage("listener.info.destroy");
+    }
+
+    /**
+     * WSSERVLET13: JAX-WS context listener destroyed
+     *
+     */
+    public static String LISTENER_INFO_DESTROY() {
+        return LOCALIZER.localize(localizableLISTENER_INFO_DESTROY());
+    }
+
+    public static Localizable localizableHTML_NON_ROOT_PAGE_BODY_1() {
+        return MESSAGE_FACTORY.getMessage("html.nonRootPage.body1");
+    }
+
+    /**
+     * <p>A Web Service is installed at this URL.</p>
+     *
+     */
+    public static String HTML_NON_ROOT_PAGE_BODY_1() {
+        return LOCALIZER.localize(localizableHTML_NON_ROOT_PAGE_BODY_1());
+    }
+
+    public static Localizable localizableSERVLET_INFO_INITIALIZE() {
+        return MESSAGE_FACTORY.getMessage("servlet.info.initialize");
+    }
+
+    /**
+     * WSSERVLET14: JAX-WS servlet initializing
+     *
+     */
+    public static String SERVLET_INFO_INITIALIZE() {
+        return LOCALIZER.localize(localizableSERVLET_INFO_INITIALIZE());
+    }
+
+    public static Localizable localizableSERVLET_WARNING_MISSING_CONTEXT_INFORMATION() {
+        return MESSAGE_FACTORY.getMessage("servlet.warning.missingContextInformation");
+    }
+
+    /**
+     * WSSERVLET16: missing context information
+     *
+     */
+    public static String SERVLET_WARNING_MISSING_CONTEXT_INFORMATION() {
+        return LOCALIZER.localize(localizableSERVLET_WARNING_MISSING_CONTEXT_INFORMATION());
+    }
+
+    public static Localizable localizableWSSERVLET_64_DIAG_CHECK_1() {
+        return MESSAGE_FACTORY.getMessage("WSSERVLET64.diag.check.1");
+    }
+
+    /**
+     * Make sure the client request is using text/xml
+     *
+     */
+    public static String WSSERVLET_64_DIAG_CHECK_1() {
+        return LOCALIZER.localize(localizableWSSERVLET_64_DIAG_CHECK_1());
+    }
+
+    public static Localizable localizableSERVLET_FAULTSTRING_PORT_NOT_FOUND(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("servlet.faultstring.portNotFound", arg0);
+    }
+
+    /**
+     * WSSERVLET29: Port not found ({0})
+     *
+     */
+    public static String SERVLET_FAULTSTRING_PORT_NOT_FOUND(Object arg0) {
+        return LOCALIZER.localize(localizableSERVLET_FAULTSTRING_PORT_NOT_FOUND(arg0));
+    }
+
+    public static Localizable localizableWSSERVLET_49_DIAG_CHECK_1() {
+        return MESSAGE_FACTORY.getMessage("WSSERVLET49.diag.check.1");
+    }
+
+    /**
+     * Check the server.xml log file for exception information
+     *
+     */
+    public static String WSSERVLET_49_DIAG_CHECK_1() {
+        return LOCALIZER.localize(localizableWSSERVLET_49_DIAG_CHECK_1());
+    }
+
+    public static Localizable localizableSERVLET_TRACE_WRITING_SUCCESS_RESPONSE() {
+        return MESSAGE_FACTORY.getMessage("servlet.trace.writingSuccessResponse");
+    }
+
+    /**
+     * WSSERVLET25: writing success response
+     *
+     */
+    public static String SERVLET_TRACE_WRITING_SUCCESS_RESPONSE() {
+        return LOCALIZER.localize(localizableSERVLET_TRACE_WRITING_SUCCESS_RESPONSE());
+    }
+
+    public static Localizable localizableWSSERVLET_50_DIAG_CHECK_2() {
+        return MESSAGE_FACTORY.getMessage("WSSERVLET50.diag.check.2");
+    }
+
+    /**
+     * Verify that Application server deployment descriptors are correct in the service war file
+     *
+     */
+    public static String WSSERVLET_50_DIAG_CHECK_2() {
+        return LOCALIZER.localize(localizableWSSERVLET_50_DIAG_CHECK_2());
+    }
+
+    public static Localizable localizableSERVLET_FAULTSTRING_INTERNAL_SERVER_ERROR(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("servlet.faultstring.internalServerError", arg0);
+    }
+
+    /**
+     * WSSERVLET30: Internal server error ({0})
+     *
+     */
+    public static String SERVLET_FAULTSTRING_INTERNAL_SERVER_ERROR(Object arg0) {
+        return LOCALIZER.localize(localizableSERVLET_FAULTSTRING_INTERNAL_SERVER_ERROR(arg0));
+    }
+
+    public static Localizable localizableWSSERVLET_50_DIAG_CHECK_1() {
+        return MESSAGE_FACTORY.getMessage("WSSERVLET50.diag.check.1");
+    }
+
+    /**
+     * Verify that sun-jaxws.xml and web.xml are correct in the service war file
+     *
+     */
+    public static String WSSERVLET_50_DIAG_CHECK_1() {
+        return LOCALIZER.localize(localizableWSSERVLET_50_DIAG_CHECK_1());
+    }
+
+    public static Localizable localizableWSSERVLET_31_DIAG_CHECK_1() {
+        return MESSAGE_FACTORY.getMessage("WSSERVLET31.diag.check.1");
+    }
+
+    /**
+     * Normal operation
+     *
+     */
+    public static String WSSERVLET_31_DIAG_CHECK_1() {
+        return LOCALIZER.localize(localizableWSSERVLET_31_DIAG_CHECK_1());
+    }
+
+    public static Localizable localizableEXCEPTION_TEMPLATE_CREATION_FAILED() {
+        return MESSAGE_FACTORY.getMessage("exception.templateCreationFailed");
+    }
+
+    /**
+     * WSSERVLET35: failed to create a template object
+     *
+     */
+    public static String EXCEPTION_TEMPLATE_CREATION_FAILED() {
+        return LOCALIZER.localize(localizableEXCEPTION_TEMPLATE_CREATION_FAILED());
+    }
+
+    public static Localizable localizableSERVLET_ERROR_NO_IMPLEMENTOR_FOR_ENDPOINT(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("servlet.error.noImplementorForEndpoint", arg0);
+    }
+
+    /**
+     * WSSERVLET20: no implementor for endpoint: {0}
+     *
+     */
+    public static String SERVLET_ERROR_NO_IMPLEMENTOR_FOR_ENDPOINT(Object arg0) {
+        return LOCALIZER.localize(localizableSERVLET_ERROR_NO_IMPLEMENTOR_FOR_ENDPOINT(arg0));
+    }
+
+    public static Localizable localizableWSSERVLET_50_DIAG_CHECK_3() {
+        return MESSAGE_FACTORY.getMessage("WSSERVLET50.diag.check.3");
+    }
+
+    /**
+     * Check the server.xml file in the domain directory for failures
+     *
+     */
+    public static String WSSERVLET_50_DIAG_CHECK_3() {
+        return LOCALIZER.localize(localizableWSSERVLET_50_DIAG_CHECK_3());
+    }
+
+    public static Localizable localizableERROR_IMPLEMENTOR_REGISTRY_FILE_NOT_FOUND(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("error.implementorRegistry.fileNotFound", arg0);
+    }
+
+    /**
+     * WSSERVLET45: file not found: {0}
+     *
+     */
+    public static String ERROR_IMPLEMENTOR_REGISTRY_FILE_NOT_FOUND(Object arg0) {
+        return LOCALIZER.localize(localizableERROR_IMPLEMENTOR_REGISTRY_FILE_NOT_FOUND(arg0));
+    }
+
+    public static Localizable localizableWSSERVLET_13_DIAG_CAUSE_1() {
+        return MESSAGE_FACTORY.getMessage("WSSERVLET13.diag.cause.1");
+    }
+
+    /**
+     * Context listener shutdown
+     *
+     */
+    public static String WSSERVLET_13_DIAG_CAUSE_1() {
+        return LOCALIZER.localize(localizableWSSERVLET_13_DIAG_CAUSE_1());
+    }
+
+    public static Localizable localizableWSSERVLET_27_DIAG_CHECK_1() {
+        return MESSAGE_FACTORY.getMessage("WSSERVLET27.diag.check.1");
+    }
+
+    /**
+     * Remove the implicit URL
+     *
+     */
+    public static String WSSERVLET_27_DIAG_CHECK_1() {
+        return LOCALIZER.localize(localizableWSSERVLET_27_DIAG_CHECK_1());
+    }
+
+    public static Localizable localizableHTML_ROOT_PAGE_BODY_2_B() {
+        return MESSAGE_FACTORY.getMessage("html.rootPage.body2b");
+    }
+
+    /**
+     * </p>
+     *
+     */
+    public static String HTML_ROOT_PAGE_BODY_2_B() {
+        return LOCALIZER.localize(localizableHTML_ROOT_PAGE_BODY_2_B());
+    }
+
+    public static Localizable localizableWSSERVLET_15_DIAG_CAUSE_1() {
+        return MESSAGE_FACTORY.getMessage("WSSERVLET15.diag.cause.1");
+    }
+
+    /**
+     * Web Services servlet shutdown.
+     *
+     */
+    public static String WSSERVLET_15_DIAG_CAUSE_1() {
+        return LOCALIZER.localize(localizableWSSERVLET_15_DIAG_CAUSE_1());
+    }
+
+    public static Localizable localizableWSSERVLET_29_DIAG_CHECK_1() {
+        return MESSAGE_FACTORY.getMessage("WSSERVLET29.diag.check.1");
+    }
+
+    /**
+     * Is the port valid? Unzip the war file and make sure the tie and serializers are present
+     *
+     */
+    public static String WSSERVLET_29_DIAG_CHECK_1() {
+        return LOCALIZER.localize(localizableWSSERVLET_29_DIAG_CHECK_1());
+    }
+
+    public static Localizable localizableERROR_SERVLET_INIT_CONFIG_PARAMETER_MISSING(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("error.servlet.init.config.parameter.missing", arg0);
+    }
+
+    /**
+     * WSSERVLET47: cannot find configuration parameter: "{0}"
+     *
+     */
+    public static String ERROR_SERVLET_INIT_CONFIG_PARAMETER_MISSING(Object arg0) {
+        return LOCALIZER.localize(localizableERROR_SERVLET_INIT_CONFIG_PARAMETER_MISSING(arg0));
+    }
+
+    public static Localizable localizableWSSERVLET_25_DIAG_CHECK_1() {
+        return MESSAGE_FACTORY.getMessage("WSSERVLET25.diag.check.1");
+    }
+
+    /**
+     * Tracing message, normal response.
+     *
+     */
+    public static String WSSERVLET_25_DIAG_CHECK_1() {
+        return LOCALIZER.localize(localizableWSSERVLET_25_DIAG_CHECK_1());
+    }
+
+    public static Localizable localizableWSSERVLET_64_DIAG_CAUSE_1() {
+        return MESSAGE_FACTORY.getMessage("WSSERVLET64.diag.cause.1");
+    }
+
+    /**
+     * Web service requests must be a content type text/xml: WSI BP 1.0
+     *
+     */
+    public static String WSSERVLET_64_DIAG_CAUSE_1() {
+        return LOCALIZER.localize(localizableWSSERVLET_64_DIAG_CAUSE_1());
+    }
+
+    public static Localizable localizableHTML_ROOT_PAGE_BODY_2_A() {
+        return MESSAGE_FACTORY.getMessage("html.rootPage.body2a");
+    }
+
+    /**
+     * <p>It supports the following ports:
+     *
+     */
+    public static String HTML_ROOT_PAGE_BODY_2_A() {
+        return LOCALIZER.localize(localizableHTML_ROOT_PAGE_BODY_2_A());
+    }
+
+    public static Localizable localizableWSSERVLET_19_DIAG_CAUSE_1() {
+        return MESSAGE_FACTORY.getMessage("WSSERVLET19.diag.cause.1");
+    }
+
+    /**
+     * Client request for this endpoint arrived
+     *
+     */
+    public static String WSSERVLET_19_DIAG_CAUSE_1() {
+        return LOCALIZER.localize(localizableWSSERVLET_19_DIAG_CAUSE_1());
+    }
+
+    public static Localizable localizableHTML_ROOT_PAGE_BODY_4() {
+        return MESSAGE_FACTORY.getMessage("html.rootPage.body4");
+    }
+
+    /**
+     * <p>This endpoint is incorrectly configured. Please check the location and contents of the configuration file.</p>
+     *
+     */
+    public static String HTML_ROOT_PAGE_BODY_4() {
+        return LOCALIZER.localize(localizableHTML_ROOT_PAGE_BODY_4());
+    }
+
+    public static Localizable localizableSERVLET_FAULTSTRING_MISSING_PORT() {
+        return MESSAGE_FACTORY.getMessage("servlet.faultstring.missingPort");
+    }
+
+    /**
+     * WSSERVLET28: Missing port information
+     *
+     */
+    public static String SERVLET_FAULTSTRING_MISSING_PORT() {
+        return LOCALIZER.localize(localizableSERVLET_FAULTSTRING_MISSING_PORT());
+    }
+
+    public static Localizable localizableHTML_ROOT_PAGE_BODY_1() {
+        return MESSAGE_FACTORY.getMessage("html.rootPage.body1");
+    }
+
+    /**
+     * <p>A Web Service is installed at this URL.</p>
+     *
+     */
+    public static String HTML_ROOT_PAGE_BODY_1() {
+        return LOCALIZER.localize(localizableHTML_ROOT_PAGE_BODY_1());
+    }
+
+    public static Localizable localizableTRACE_SERVLET_WRITING_FAULT_RESPONSE() {
+        return MESSAGE_FACTORY.getMessage("trace.servlet.writingFaultResponse");
+    }
+
+    /**
+     * WSSERVLET61: writing fault response
+     *
+     */
+    public static String TRACE_SERVLET_WRITING_FAULT_RESPONSE() {
+        return LOCALIZER.localize(localizableTRACE_SERVLET_WRITING_FAULT_RESPONSE());
+    }
+
+    public static Localizable localizableTRACE_SERVLET_GOT_RESPONSE_FROM_IMPLEMENTOR(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("trace.servlet.gotResponseFromImplementor", arg0);
+    }
+
+    /**
+     * WSSERVLET60: got response from implementor: {0}
+     *
+     */
+    public static String TRACE_SERVLET_GOT_RESPONSE_FROM_IMPLEMENTOR(Object arg0) {
+        return LOCALIZER.localize(localizableTRACE_SERVLET_GOT_RESPONSE_FROM_IMPLEMENTOR(arg0));
+    }
+
+    public static Localizable localizableWSSERVLET_17_DIAG_CAUSE_1() {
+        return MESSAGE_FACTORY.getMessage("WSSERVLET17.diag.cause.1");
+    }
+
+    /**
+     * Two or more endpoints with the same name where found in the jaxrpc-ri.xml runtime descriptor
+     *
+     */
+    public static String WSSERVLET_17_DIAG_CAUSE_1() {
+        return LOCALIZER.localize(localizableWSSERVLET_17_DIAG_CAUSE_1());
+    }
+
+    public static Localizable localizableWSSERVLET_50_DIAG_CAUSE_1() {
+        return MESSAGE_FACTORY.getMessage("WSSERVLET50.diag.cause.1");
+    }
+
+    /**
+     * WS runtime sun-jaxws.xml or web.xml may be incorrect
+     *
+     */
+    public static String WSSERVLET_50_DIAG_CAUSE_1() {
+        return LOCALIZER.localize(localizableWSSERVLET_50_DIAG_CAUSE_1());
+    }
+
+    public static Localizable localizableSERVLET_HTML_ENDPOINT_TABLE(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("servlet.html.endpoint.table", arg0, arg1);
+    }
+
+    /**
+     * <table border="0"><tr><td>Service Name:</td><td>{0}</td></tr><tr><td>Port Name:</td><td>{1}</td></tr></table>
+     *
+     */
+    public static String SERVLET_HTML_ENDPOINT_TABLE(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableSERVLET_HTML_ENDPOINT_TABLE(arg0, arg1));
+    }
+
+    public static Localizable localizableSERVLET_TRACE_GOT_REQUEST_FOR_ENDPOINT(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("servlet.trace.gotRequestForEndpoint", arg0);
+    }
+
+    /**
+     * WSSERVLET19: got request for endpoint: {0}
+     *
+     */
+    public static String SERVLET_TRACE_GOT_REQUEST_FOR_ENDPOINT(Object arg0) {
+        return LOCALIZER.localize(localizableSERVLET_TRACE_GOT_REQUEST_FOR_ENDPOINT(arg0));
+    }
+
+    public static Localizable localizableSERVLET_HTML_COLUMN_HEADER_INFORMATION() {
+        return MESSAGE_FACTORY.getMessage("servlet.html.columnHeader.information");
+    }
+
+    /**
+     * Information
+     *
+     */
+    public static String SERVLET_HTML_COLUMN_HEADER_INFORMATION() {
+        return LOCALIZER.localize(localizableSERVLET_HTML_COLUMN_HEADER_INFORMATION());
+    }
+
+    public static Localizable localizableLISTENER_INFO_INITIALIZE() {
+        return MESSAGE_FACTORY.getMessage("listener.info.initialize");
+    }
+
+    /**
+     * WSSERVLET12: JAX-WS context listener initializing
+     *
+     */
+    public static String LISTENER_INFO_INITIALIZE() {
+        return LOCALIZER.localize(localizableLISTENER_INFO_INITIALIZE());
+    }
+
+    public static Localizable localizableERROR_SERVLET_NO_RESPONSE_WAS_PRODUCED() {
+        return MESSAGE_FACTORY.getMessage("error.servlet.noResponseWasProduced");
+    }
+
+    /**
+     * WSSERVLET54: no response was produced (internal error)
+     *
+     */
+    public static String ERROR_SERVLET_NO_RESPONSE_WAS_PRODUCED() {
+        return LOCALIZER.localize(localizableERROR_SERVLET_NO_RESPONSE_WAS_PRODUCED());
+    }
+
+    public static Localizable localizableSERVLET_ERROR_NO_ENDPOINT_SPECIFIED() {
+        return MESSAGE_FACTORY.getMessage("servlet.error.noEndpointSpecified");
+    }
+
+    /**
+     * WSSERVLET22: no endpoint specified
+     *
+     */
+    public static String SERVLET_ERROR_NO_ENDPOINT_SPECIFIED() {
+        return LOCALIZER.localize(localizableSERVLET_ERROR_NO_ENDPOINT_SPECIFIED());
+    }
+
+    public static Localizable localizableSERVLET_HTML_TITLE() {
+        return MESSAGE_FACTORY.getMessage("servlet.html.title");
+    }
+
+    /**
+     * Web Services
+     *
+     */
+    public static String SERVLET_HTML_TITLE() {
+        return LOCALIZER.localize(localizableSERVLET_HTML_TITLE());
+    }
+
+    public static Localizable localizableWSSERVLET_50_DIAG_CAUSE_2() {
+        return MESSAGE_FACTORY.getMessage("WSSERVLET50.diag.cause.2");
+    }
+
+    /**
+     * Application server deployment descriptors may be incorrect
+     *
+     */
+    public static String WSSERVLET_50_DIAG_CAUSE_2() {
+        return LOCALIZER.localize(localizableWSSERVLET_50_DIAG_CAUSE_2());
+    }
+
+    public static Localizable localizableWSSERVLET_50_DIAG_CAUSE_3() {
+        return MESSAGE_FACTORY.getMessage("WSSERVLET50.diag.cause.3");
+    }
+
+    /**
+     * There may some Application Server initialization problems
+     *
+     */
+    public static String WSSERVLET_50_DIAG_CAUSE_3() {
+        return LOCALIZER.localize(localizableWSSERVLET_50_DIAG_CAUSE_3());
+    }
+
+    public static Localizable localizableWSSERVLET_21_DIAG_CHECK_1() {
+        return MESSAGE_FACTORY.getMessage("WSSERVLET21.diag.check.1");
+    }
+
+    /**
+     * Normal web service invocation.
+     *
+     */
+    public static String WSSERVLET_21_DIAG_CHECK_1() {
+        return LOCALIZER.localize(localizableWSSERVLET_21_DIAG_CHECK_1());
+    }
+
+    public static Localizable localizableERROR_IMPLEMENTOR_REGISTRY_CLASS_NOT_FOUND(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("error.implementorRegistry.classNotFound", arg0);
+    }
+
+    /**
+     * WSSERVLET40: class not found: {0}
+     *
+     */
+    public static String ERROR_IMPLEMENTOR_REGISTRY_CLASS_NOT_FOUND(Object arg0) {
+        return LOCALIZER.localize(localizableERROR_IMPLEMENTOR_REGISTRY_CLASS_NOT_FOUND(arg0));
+    }
+
+    public static Localizable localizableWSSERVLET_29_DIAG_CAUSE_1() {
+        return MESSAGE_FACTORY.getMessage("WSSERVLET29.diag.cause.1");
+    }
+
+    /**
+     * A port is specified, but a corresponding service implementation is not found
+     *
+     */
+    public static String WSSERVLET_29_DIAG_CAUSE_1() {
+        return LOCALIZER.localize(localizableWSSERVLET_29_DIAG_CAUSE_1());
+    }
+
+    public static Localizable localizableWSSERVLET_11_DIAG_CAUSE_2() {
+        return MESSAGE_FACTORY.getMessage("WSSERVLET11.diag.cause.2");
+    }
+
+    /**
+     * The sun-jaxws.xml runtime deployment descriptor may be missing
+     *
+     */
+    public static String WSSERVLET_11_DIAG_CAUSE_2() {
+        return LOCALIZER.localize(localizableWSSERVLET_11_DIAG_CAUSE_2());
+    }
+
+    public static Localizable localizableWSSERVLET_23_DIAG_CHECK_1() {
+        return MESSAGE_FACTORY.getMessage("WSSERVLET23.diag.check.1");
+    }
+
+    /**
+     * If a response was expected, check that a request message was actually sent
+     *
+     */
+    public static String WSSERVLET_23_DIAG_CHECK_1() {
+        return LOCALIZER.localize(localizableWSSERVLET_23_DIAG_CHECK_1());
+    }
+
+    public static Localizable localizableWSSERVLET_23_DIAG_CHECK_2() {
+        return MESSAGE_FACTORY.getMessage("WSSERVLET23.diag.check.2");
+    }
+
+    /**
+     * The request may be malformed and be accepted by the service, yet did not generate a response
+     *
+     */
+    public static String WSSERVLET_23_DIAG_CHECK_2() {
+        return LOCALIZER.localize(localizableWSSERVLET_23_DIAG_CHECK_2());
+    }
+
+    private static class BundleSupplier
+        implements ResourceBundleSupplier
+    {
+
+
+        public ResourceBundle getResourceBundle(Locale locale) {
+            return ResourceBundle.getBundle(BUNDLE_NAME, locale);
+        }
+
     }
 
 }
diff --git a/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/resources/XmlmessageMessages.java b/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/resources/XmlmessageMessages.java
index 3680416..318387a 100644
--- a/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/resources/XmlmessageMessages.java
+++ b/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/resources/XmlmessageMessages.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,150 +25,28 @@
 
 package com.sun.xml.internal.ws.resources;
 
-import com.sun.istack.internal.localization.Localizable;
-import com.sun.istack.internal.localization.LocalizableMessageFactory;
-import com.sun.istack.internal.localization.Localizer;
-
 import java.util.Locale;
 import java.util.ResourceBundle;
+import javax.annotation.Generated;
+import com.sun.istack.internal.localization.Localizable;
+import com.sun.istack.internal.localization.LocalizableMessageFactory;
+import com.sun.istack.internal.localization.LocalizableMessageFactory.ResourceBundleSupplier;
+import com.sun.istack.internal.localization.Localizer;
 
 
 /**
  * Defines string formatting method for each constant in the resource file
  *
  */
+@Generated("com.sun.istack.internal.maven.ResourceGenMojo")
 public final class XmlmessageMessages {
+
     private final static String BUNDLE_NAME = "com.sun.xml.internal.ws.resources.xmlmessage";
-    private final static LocalizableMessageFactory messageFactory =
-        new LocalizableMessageFactory(BUNDLE_NAME, XmlmessageMessages::getResourceBundle);
-    private final static Localizer localizer = new Localizer();
-
-    private static ResourceBundle getResourceBundle(Locale locale) {
-        return ResourceBundle.getBundle(BUNDLE_NAME, locale);
-    }
-
-    public static Localizable localizableXML_NULL_HEADERS() {
-        return messageFactory.getMessage("xml.null.headers");
-    }
-
-    /**
-     * Invalid argument. MimeHeaders=null
-     *
-     */
-    public static String XML_NULL_HEADERS() {
-        return localizer.localize(localizableXML_NULL_HEADERS());
-    }
-
-    public static Localizable localizableXML_SET_PAYLOAD_ERR() {
-        return messageFactory.getMessage("xml.set.payload.err");
-    }
-
-    /**
-     * Couldn't set Payload in XMLMessage
-     *
-     */
-    public static String XML_SET_PAYLOAD_ERR() {
-        return localizer.localize(localizableXML_SET_PAYLOAD_ERR());
-    }
-
-    public static Localizable localizableXML_CONTENT_TYPE_MUSTBE_MULTIPART() {
-        return messageFactory.getMessage("xml.content-type.mustbe.multipart");
-    }
-
-    /**
-     * Content-Type needs to be Multipart/Related and with type=text/xml
-     *
-     */
-    public static String XML_CONTENT_TYPE_MUSTBE_MULTIPART() {
-        return localizer.localize(localizableXML_CONTENT_TYPE_MUSTBE_MULTIPART());
-    }
-
-    public static Localizable localizableXML_UNKNOWN_CONTENT_TYPE() {
-        return messageFactory.getMessage("xml.unknown.Content-Type");
-    }
-
-    /**
-     * Unrecognized Content-Type
-     *
-     */
-    public static String XML_UNKNOWN_CONTENT_TYPE() {
-        return localizer.localize(localizableXML_UNKNOWN_CONTENT_TYPE());
-    }
-
-    public static Localizable localizableXML_GET_DS_ERR() {
-        return messageFactory.getMessage("xml.get.ds.err");
-    }
-
-    /**
-     * Couldn't get DataSource
-     *
-     */
-    public static String XML_GET_DS_ERR() {
-        return localizer.localize(localizableXML_GET_DS_ERR());
-    }
-
-    public static Localizable localizableXML_CONTENT_TYPE_PARSE_ERR() {
-        return messageFactory.getMessage("xml.Content-Type.parse.err");
-    }
-
-    /**
-     * Error while parsing MimeHeaders for Content-Type
-     *
-     */
-    public static String XML_CONTENT_TYPE_PARSE_ERR() {
-        return localizer.localize(localizableXML_CONTENT_TYPE_PARSE_ERR());
-    }
-
-    public static Localizable localizableXML_GET_SOURCE_ERR() {
-        return messageFactory.getMessage("xml.get.source.err");
-    }
-
-    /**
-     * Couldn't return Source
-     *
-     */
-    public static String XML_GET_SOURCE_ERR() {
-        return localizer.localize(localizableXML_GET_SOURCE_ERR());
-    }
-
-    public static Localizable localizableXML_CANNOT_INTERNALIZE_MESSAGE() {
-        return messageFactory.getMessage("xml.cannot.internalize.message");
-    }
-
-    /**
-     * Cannot create XMLMessage
-     *
-     */
-    public static String XML_CANNOT_INTERNALIZE_MESSAGE() {
-        return localizer.localize(localizableXML_CANNOT_INTERNALIZE_MESSAGE());
-    }
-
-    public static Localizable localizableXML_NO_CONTENT_TYPE() {
-        return messageFactory.getMessage("xml.no.Content-Type");
-    }
-
-    /**
-     * MimeHeaders doesn't contain Content-Type header
-     *
-     */
-    public static String XML_NO_CONTENT_TYPE() {
-        return localizer.localize(localizableXML_NO_CONTENT_TYPE());
-    }
-
-    public static Localizable localizableXML_ROOT_PART_INVALID_CONTENT_TYPE(Object arg0) {
-        return messageFactory.getMessage("xml.root.part.invalid.Content-Type", arg0);
-    }
-
-    /**
-     * Bad Content-Type for Root Part : {0}
-     *
-     */
-    public static String XML_ROOT_PART_INVALID_CONTENT_TYPE(Object arg0) {
-        return localizer.localize(localizableXML_ROOT_PART_INVALID_CONTENT_TYPE(arg0));
-    }
+    private final static LocalizableMessageFactory MESSAGE_FACTORY = new LocalizableMessageFactory(BUNDLE_NAME, new XmlmessageMessages.BundleSupplier());
+    private final static Localizer LOCALIZER = new Localizer();
 
     public static Localizable localizableXML_INVALID_CONTENT_TYPE(Object arg0) {
-        return messageFactory.getMessage("xml.invalid.content-type", arg0);
+        return MESSAGE_FACTORY.getMessage("xml.invalid.content-type", arg0);
     }
 
     /**
@@ -176,7 +54,138 @@
      *
      */
     public static String XML_INVALID_CONTENT_TYPE(Object arg0) {
-        return localizer.localize(localizableXML_INVALID_CONTENT_TYPE(arg0));
+        return LOCALIZER.localize(localizableXML_INVALID_CONTENT_TYPE(arg0));
+    }
+
+    public static Localizable localizableXML_GET_SOURCE_ERR() {
+        return MESSAGE_FACTORY.getMessage("xml.get.source.err");
+    }
+
+    /**
+     * Couldn't return Source
+     *
+     */
+    public static String XML_GET_SOURCE_ERR() {
+        return LOCALIZER.localize(localizableXML_GET_SOURCE_ERR());
+    }
+
+    public static Localizable localizableXML_UNKNOWN_CONTENT_TYPE() {
+        return MESSAGE_FACTORY.getMessage("xml.unknown.Content-Type");
+    }
+
+    /**
+     * Unrecognized Content-Type
+     *
+     */
+    public static String XML_UNKNOWN_CONTENT_TYPE() {
+        return LOCALIZER.localize(localizableXML_UNKNOWN_CONTENT_TYPE());
+    }
+
+    public static Localizable localizableXML_SET_PAYLOAD_ERR() {
+        return MESSAGE_FACTORY.getMessage("xml.set.payload.err");
+    }
+
+    /**
+     * Couldn't set Payload in XMLMessage
+     *
+     */
+    public static String XML_SET_PAYLOAD_ERR() {
+        return LOCALIZER.localize(localizableXML_SET_PAYLOAD_ERR());
+    }
+
+    public static Localizable localizableXML_ROOT_PART_INVALID_CONTENT_TYPE(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("xml.root.part.invalid.Content-Type", arg0);
+    }
+
+    /**
+     * Bad Content-Type for Root Part : {0}
+     *
+     */
+    public static String XML_ROOT_PART_INVALID_CONTENT_TYPE(Object arg0) {
+        return LOCALIZER.localize(localizableXML_ROOT_PART_INVALID_CONTENT_TYPE(arg0));
+    }
+
+    public static Localizable localizableXML_GET_DS_ERR() {
+        return MESSAGE_FACTORY.getMessage("xml.get.ds.err");
+    }
+
+    /**
+     * Couldn't get DataSource
+     *
+     */
+    public static String XML_GET_DS_ERR() {
+        return LOCALIZER.localize(localizableXML_GET_DS_ERR());
+    }
+
+    public static Localizable localizableXML_CANNOT_INTERNALIZE_MESSAGE() {
+        return MESSAGE_FACTORY.getMessage("xml.cannot.internalize.message");
+    }
+
+    /**
+     * Cannot create XMLMessage
+     *
+     */
+    public static String XML_CANNOT_INTERNALIZE_MESSAGE() {
+        return LOCALIZER.localize(localizableXML_CANNOT_INTERNALIZE_MESSAGE());
+    }
+
+    public static Localizable localizableXML_CONTENT_TYPE_PARSE_ERR() {
+        return MESSAGE_FACTORY.getMessage("xml.Content-Type.parse.err");
+    }
+
+    /**
+     * Error while parsing MimeHeaders for Content-Type
+     *
+     */
+    public static String XML_CONTENT_TYPE_PARSE_ERR() {
+        return LOCALIZER.localize(localizableXML_CONTENT_TYPE_PARSE_ERR());
+    }
+
+    public static Localizable localizableXML_NULL_HEADERS() {
+        return MESSAGE_FACTORY.getMessage("xml.null.headers");
+    }
+
+    /**
+     * Invalid argument. MimeHeaders=null
+     *
+     */
+    public static String XML_NULL_HEADERS() {
+        return LOCALIZER.localize(localizableXML_NULL_HEADERS());
+    }
+
+    public static Localizable localizableXML_NO_CONTENT_TYPE() {
+        return MESSAGE_FACTORY.getMessage("xml.no.Content-Type");
+    }
+
+    /**
+     * MimeHeaders doesn't contain Content-Type header
+     *
+     */
+    public static String XML_NO_CONTENT_TYPE() {
+        return LOCALIZER.localize(localizableXML_NO_CONTENT_TYPE());
+    }
+
+    public static Localizable localizableXML_CONTENT_TYPE_MUSTBE_MULTIPART() {
+        return MESSAGE_FACTORY.getMessage("xml.content-type.mustbe.multipart");
+    }
+
+    /**
+     * Content-Type needs to be Multipart/Related and with type=text/xml
+     *
+     */
+    public static String XML_CONTENT_TYPE_MUSTBE_MULTIPART() {
+        return LOCALIZER.localize(localizableXML_CONTENT_TYPE_MUSTBE_MULTIPART());
+    }
+
+    private static class BundleSupplier
+        implements ResourceBundleSupplier
+    {
+
+
+        public ResourceBundle getResourceBundle(Locale locale) {
+            return ResourceBundle.getBundle(BUNDLE_NAME, locale);
+        }
+
     }
 
 }
diff --git a/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/resources/modeler.properties b/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/resources/modeler.properties
index 545570e..fff23f1 100644
--- a/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/resources/modeler.properties
+++ b/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/resources/modeler.properties
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
@@ -51,8 +51,8 @@
 # {0} - feature class name, {1} - feature class name
 runtime.modeler.feature.conflict= Feature {0} in implementation conflicts with {1} in WSDL configuration
 # {0} - absolute class location
-runtime.modeler.addressing.responses.nosuchmethod = JAX-WS 2.1 API is loaded from {0}, But JAX-WS runtime requires JAX-WS 2.2 API. \
-  Use the endorsed standards override mechanism to load JAX-WS 2.2 API
+runtime.modeler.addressing.responses.nosuchmethod = JAX-WS 2.1 API is loaded from {0}, But JAX-WS runtime requires JAX-WS 2.2 or newer API. \
+  Use the standard override mechanism to load JAX-WS 2.2 or newer API.
 runtime.modeler.wsfeature.no.ftrconstructor=Annotation {0} is not recognizable, at least one constructor of {1} should be marked with @FeatureConstructor
 runtime.modeler.wsfeature.morethanone.ftrconstructor=Annotation {0} is illegal, Only one constructor of {1} can be marked as @FeatureConstructor
 runtime.modeler.wsfeature.illegal.ftrconstructor=Annotation {0} is illegal, In {1} @FeatureConstructor value doesn't match the constructor parameters
diff --git a/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/resources/modeler_de.properties b/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/resources/modeler_de.properties
index 52c9c71..c2d5374 100644
--- a/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/resources/modeler_de.properties
+++ b/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/resources/modeler_de.properties
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
@@ -47,7 +47,7 @@
 # {0} - feature class name, {1} - feature class name
 runtime.modeler.feature.conflict= Feature {0} in Implementierung ist nicht mit {1} in WSDL-Konfiguration vereinbar
 # {0} - absolute class location
-runtime.modeler.addressing.responses.nosuchmethod = JAX-WS 2.1 API wird aus {0} geladen, die JAX-WS-Laufzeitumgebung erfordert jedoch JAX-WS 2.2 API. Verwenden Sie das "Endorsed Standards Override Mechanism"-Verfahren, um JAX-WS 2.2 API zu laden
+runtime.modeler.addressing.responses.nosuchmethod = JAX-WS 2.1-API wird aus {0} geladen, die JAX-WS-Laufzeit erfordert jedoch JAX-WS 2.2 oder eine neuere API. Verwenden Sie das Standard-Override-Verfahren, um JAX-WS 2.2 oder eine neuere API zu laden.
 runtime.modeler.wsfeature.no.ftrconstructor=Annotation {0} kann nicht erkannt werden, mindestens ein Konstruktor von {1} muss mit @FeatureConstructor markiert werden
 runtime.modeler.wsfeature.morethanone.ftrconstructor=Annotation {0} ist unzul\u00E4ssig. Nur ein Konstruktor von {1} kann als @FeatureConstructor markiert werden
 runtime.modeler.wsfeature.illegal.ftrconstructor=Annotation {0} ist unzul\u00E4ssig. In {1} stimmt der @FeatureConstructor-Wert nicht mit den Konstruktorparametern \u00FCberein
diff --git a/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/resources/modeler_es.properties b/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/resources/modeler_es.properties
index 0317823..26ee36a 100644
--- a/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/resources/modeler_es.properties
+++ b/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/resources/modeler_es.properties
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
@@ -47,7 +47,7 @@
 # {0} - feature class name, {1} - feature class name
 runtime.modeler.feature.conflict= La funci\u00F3n {0} de la implantaci\u00F3n entra en conflicto con {1} en la configuraci\u00F3n de WSDL
 # {0} - absolute class location
-runtime.modeler.addressing.responses.nosuchmethod = La API de JAX-WS 2.1 se ha cargado desde {0}, pero JAX-WS en tiempo de ejecuci\u00F3n necesita la API JAX-WS 2.2. Utilice el mecanismo de sustituci\u00F3n de est\u00E1ndares aprobado para cargar la API JAX-WS 2.2
+runtime.modeler.addressing.responses.nosuchmethod = La API de JAX-WS 2.1 se ha cargado desde {0}, pero JAX-WS en tiempo de ejecuci\u00F3n necesita la API de JAX-WS 2.2 o una versi\u00F3n posterior. Utilice el mecanismo de sustituci\u00F3n de est\u00E1ndares para cargar la API de JAX-WS 2.2 o una versi\u00F3n posterior.
 runtime.modeler.wsfeature.no.ftrconstructor=La anotaci\u00F3n {0} no es reconocible. Al menos un constructor de {1} se deber\u00EDa marcar con @FeatureConstructor
 runtime.modeler.wsfeature.morethanone.ftrconstructor=La anotaci\u00F3n {0} no es v\u00E1lida. S\u00F3lo un constructor de {1} se puede marcar como @FeatureConstructor
 runtime.modeler.wsfeature.illegal.ftrconstructor=La anotaci\u00F3n {0} no es v\u00E1lida. En {1}, el valor de @FeatureConstructor no coincide con los par\u00E1metros del constructor
diff --git a/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/resources/modeler_fr.properties b/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/resources/modeler_fr.properties
index 980e2db..4487ad8 100644
--- a/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/resources/modeler_fr.properties
+++ b/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/resources/modeler_fr.properties
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
@@ -47,7 +47,7 @@
 # {0} - feature class name, {1} - feature class name
 runtime.modeler.feature.conflict= La fonctionnalit\u00E9 {0} dans l''impl\u00E9mentation est en conflit avec {1} dans la configuration WSDL
 # {0} - absolute class location
-runtime.modeler.addressing.responses.nosuchmethod = L''API JAX-WS 2.1 est charg\u00E9 \u00E0 partir de {0}, mais le runtime JAX-WS exige l''API JAX-WS 2.2. Utilisez le m\u00E9canisme Endorsed Standards Override Mechanism pour charger l''API JAX-WS 2.2
+runtime.modeler.addressing.responses.nosuchmethod = L''API JAX-WS 2.1 est charg\u00E9e \u00E0 partir de {0}, mais le runtime JAX-WS exige l''API JAX-WS 2.2 ou une version plus r\u00E9cente. Utilisez le m\u00E9canisme Standard Override Mechanism pour charger l''API JAX-WS 2.2 ou une version plus r\u00E9cente.
 runtime.modeler.wsfeature.no.ftrconstructor=L''annotation {0} n''est pas reconnaissable, au moins un constructeur de {1} doit \u00EAtre marqu\u00E9 avec @FeatureConstructor
 runtime.modeler.wsfeature.morethanone.ftrconstructor=L''annotation {0} est interdite, seul un constructeur de {1} peut \u00EAtre marqu\u00E9 comme @FeatureConstructor
 runtime.modeler.wsfeature.illegal.ftrconstructor=L''annotation {0} est interdite ; dans {1}, la valeur @FeatureConstructor ne correspond pas aux param\u00E8tres constructeur
diff --git a/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/resources/modeler_it.properties b/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/resources/modeler_it.properties
index c8bc8c4..e1c32e6 100644
--- a/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/resources/modeler_it.properties
+++ b/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/resources/modeler_it.properties
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
@@ -47,7 +47,7 @@
 # {0} - feature class name, {1} - feature class name
 runtime.modeler.feature.conflict= La funzione {0} nell''implementazione \u00E8 in conflitto con {1} nella configurazione WSDL
 # {0} - absolute class location
-runtime.modeler.addressing.responses.nosuchmethod = L''API JAX-WS 2.1 viene caricata da {0} ma il runtime JAX-WS richiede l''API JAX-WS 2.2. Usare il meccanismo Endorsed Standards Override Mechanism per caricare l''API JAX-WS 2.2
+runtime.modeler.addressing.responses.nosuchmethod = L''API JAX-WS 2.1 viene caricata da {0} ma il runtime JAX-WS richiede l''API JAX-WS 2.2 o versione successiva. Usare il meccanismo di sostituzione standard per caricare l''API JAX-WS 2.2 o versione successiva.
 runtime.modeler.wsfeature.no.ftrconstructor=L''annotazione {0} non \u00E8 riconoscibile. Almeno un costruttore di {1} deve essere contrassegnato con @FeatureConstructor
 runtime.modeler.wsfeature.morethanone.ftrconstructor=L''annotazione {0} non \u00E8 valida. Solo un costruttore di {1} pu\u00F2 essere contrassegnato come @FeatureConstructor
 runtime.modeler.wsfeature.illegal.ftrconstructor=L''annotazione {0} non \u00E8 valida. Il valore {1} @FeatureConstructor non corrisponde ai parametri del costruttore
diff --git a/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/resources/modeler_ja.properties b/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/resources/modeler_ja.properties
index 9449590..5e495b6 100644
--- a/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/resources/modeler_ja.properties
+++ b/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/resources/modeler_ja.properties
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
@@ -47,7 +47,7 @@
 # {0} - feature class name, {1} - feature class name
 runtime.modeler.feature.conflict= \u5B9F\u88C5\u306E\u6A5F\u80FD{0}\u304CWSDL\u69CB\u6210\u306E{1}\u3068\u7AF6\u5408\u3057\u3066\u3044\u307E\u3059
 # {0} - absolute class location
-runtime.modeler.addressing.responses.nosuchmethod = JAX-WS 2.1 API\u306F{0}\u304B\u3089\u30ED\u30FC\u30C9\u3055\u308C\u307E\u3059\u304C\u3001JAX-WS\u30E9\u30F3\u30BF\u30A4\u30E0\u306B\u306FJAX-WS 2.2 API\u304C\u5FC5\u8981\u3067\u3059\u3002JAX-WS 2.2 API\u3092\u30ED\u30FC\u30C9\u3059\u308B\u306B\u306F\u3001Endorsed Standards Override Mechanism\u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044
+runtime.modeler.addressing.responses.nosuchmethod = JAX-WS 2.1 API\u306F{0}\u304B\u3089\u30ED\u30FC\u30C9\u3055\u308C\u307E\u3059\u304C\u3001JAX-WS\u30E9\u30F3\u30BF\u30A4\u30E0\u306B\u306FJAX-WS 2.2\u4EE5\u4E0A\u306EAPI\u304C\u5FC5\u8981\u3067\u3059\u3002JAX-WS 2.2\u4EE5\u4E0A\u306EAPI\u3092\u30ED\u30FC\u30C9\u3059\u308B\u306B\u306F\u3001Standards Override Mechanism\u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044\u3002
 runtime.modeler.wsfeature.no.ftrconstructor=\u6CE8\u91C8{0}\u3092\u8A8D\u8B58\u3067\u304D\u307E\u305B\u3093\u3002{1}\u306E\u30B3\u30F3\u30B9\u30C8\u30E9\u30AF\u30BF\u306E\u5C11\u306A\u304F\u3068\u30821\u3064\u304C@FeatureConstructor\u3067\u30DE\u30FC\u30AF\u3055\u308C\u3066\u3044\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059
 runtime.modeler.wsfeature.morethanone.ftrconstructor=\u6CE8\u91C8{0}\u304C\u4E0D\u6B63\u3067\u3059\u3002@FeatureConstructor\u3068\u3057\u3066\u30DE\u30FC\u30AF\u3067\u304D\u308B{1}\u306E\u30B3\u30F3\u30B9\u30C8\u30E9\u30AF\u30BF\u306F\u30011\u3064\u306E\u307F\u3067\u3059
 runtime.modeler.wsfeature.illegal.ftrconstructor=\u6CE8\u91C8{0}\u304C\u4E0D\u6B63\u3067\u3059\u3002{1}\u3067\u3001@FeatureConstructor\u306E\u5024\u304C\u30B3\u30F3\u30B9\u30C8\u30E9\u30AF\u30BF\u30FB\u30D1\u30E9\u30E1\u30FC\u30BF\u3068\u4E00\u81F4\u3057\u307E\u305B\u3093
diff --git a/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/resources/modeler_ko.properties b/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/resources/modeler_ko.properties
index f51d783..0912cd3 100644
--- a/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/resources/modeler_ko.properties
+++ b/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/resources/modeler_ko.properties
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
@@ -47,7 +47,7 @@
 # {0} - feature class name, {1} - feature class name
 runtime.modeler.feature.conflict= \uAD6C\uD604\uC758 {0} \uAE30\uB2A5\uC774 WSDL \uAD6C\uC131\uC758 {1}\uACFC(\uC640) \uCDA9\uB3CC\uD569\uB2C8\uB2E4.
 # {0} - absolute class location
-runtime.modeler.addressing.responses.nosuchmethod = JAX-WS 2.1 API\uAC00 {0}\uC5D0\uC11C \uB85C\uB4DC\uB418\uC5C8\uC9C0\uB9CC JAX-WS \uB7F0\uD0C0\uC784\uC5D0 JAX-WS 2.2 API\uAC00 \uD544\uC694\uD569\uB2C8\uB2E4. \uC778\uC99D\uB41C \uD45C\uC900 \uBB34\uD6A8\uD654 \uBC29\uC2DD\uC744 \uC0AC\uC6A9\uD558\uC5EC AX-WS 2.2 API\uB97C \uB85C\uB4DC\uD558\uC2ED\uC2DC\uC624.
+runtime.modeler.addressing.responses.nosuchmethod = JAX-WS 2.1 API\uAC00 {0}\uC5D0\uC11C \uB85C\uB4DC\uB418\uC5C8\uC9C0\uB9CC JAX-WS \uB7F0\uD0C0\uC784\uC5D0 JAX-WS 2.2 \uC774\uC0C1 API\uAC00 \uD544\uC694\uD569\uB2C8\uB2E4. \uD45C\uC900 \uBB34\uD6A8\uD654 \uBC29\uC2DD\uC744 \uC0AC\uC6A9\uD558\uC5EC JAX-WS 2.2 \uC774\uC0C1 API\uB97C \uB85C\uB4DC\uD558\uC2ED\uC2DC\uC624.
 runtime.modeler.wsfeature.no.ftrconstructor={0} \uC8FC\uC11D\uC744 \uC778\uC2DD\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4. \uD558\uB098 \uC774\uC0C1\uC758 {1} \uC0DD\uC131\uC790\uAC00 @FeatureConstructor\uB85C \uD45C\uC2DC\uB418\uC5B4\uC57C \uD569\uB2C8\uB2E4.
 runtime.modeler.wsfeature.morethanone.ftrconstructor={0} \uC8FC\uC11D\uC774 \uC798\uBABB\uB418\uC5C8\uC2B5\uB2C8\uB2E4. \uD558\uB098\uC758 {1} \uC0DD\uC131\uC790\uB9CC @FeatureConstructor\uB85C \uD45C\uC2DC\uB420 \uC218 \uC788\uC2B5\uB2C8\uB2E4.
 runtime.modeler.wsfeature.illegal.ftrconstructor={0} \uC8FC\uC11D\uC774 \uC798\uBABB\uB418\uC5C8\uC2B5\uB2C8\uB2E4. {1}\uC5D0\uC11C @FeatureConstructor \uAC12\uC774 \uC0DD\uC131\uC790 \uB9E4\uAC1C\uBCC0\uC218\uC640 \uC77C\uCE58\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.
diff --git a/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/resources/modeler_pt_BR.properties b/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/resources/modeler_pt_BR.properties
index d6bfc76..57d9f50 100644
--- a/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/resources/modeler_pt_BR.properties
+++ b/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/resources/modeler_pt_BR.properties
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
@@ -47,7 +47,7 @@
 # {0} - feature class name, {1} - feature class name
 runtime.modeler.feature.conflict= O recurso {0} na implementa\u00E7\u00E3o est\u00E1 em conflito com {1} na configura\u00E7\u00E3o do WSDL
 # {0} - absolute class location
-runtime.modeler.addressing.responses.nosuchmethod = A API de JAX-WS 2.1 foi carregada de {0}, mas o runtime de JAX-WS requer a API JAX-WS 2.2. Use o mecanismo de substitui\u00E7\u00E3o de padr\u00F5es endossados para carregar a API de JAX-WS 2.2
+runtime.modeler.addressing.responses.nosuchmethod = A API de JAX-WS 2.1 foi carregada de {0}, mas o runtime de JAX-WS requer a API JAX-WS 2.2 ou mais recente. Use o mecanismo de substitui\u00E7\u00E3o de padr\u00F5es para carregar a API de JAX-WS 2.2 ou mais recente.
 runtime.modeler.wsfeature.no.ftrconstructor=A anota\u00E7\u00E3o {0} n\u00E3o \u00E9 reconhec\u00EDvel, pelo menos um construtor de {1} deve ser marcado com @FeatureConstructor
 runtime.modeler.wsfeature.morethanone.ftrconstructor=A anota\u00E7\u00E3o {0} \u00E9 inv\u00E1lida. Somente um construtor de {1} pode ser marcado como @FeatureConstructor
 runtime.modeler.wsfeature.illegal.ftrconstructor=A anota\u00E7\u00E3o {0} \u00E9 inv\u00E1lida. No {1} o valor de @FeatureConstructor n\u00E3o corresponde aos par\u00E2metros do construtor
diff --git a/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/resources/modeler_zh_CN.properties b/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/resources/modeler_zh_CN.properties
index be9b1b7..56a8d49 100644
--- a/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/resources/modeler_zh_CN.properties
+++ b/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/resources/modeler_zh_CN.properties
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
@@ -47,7 +47,7 @@
 # {0} - feature class name, {1} - feature class name
 runtime.modeler.feature.conflict= \u5B9E\u73B0\u4E2D\u7684\u529F\u80FD{0}\u4E0E WSDL \u914D\u7F6E\u4E2D\u7684{1}\u53D1\u751F\u51B2\u7A81
 # {0} - absolute class location
-runtime.modeler.addressing.responses.nosuchmethod = JAX-WS 2.1 API \u5DF2\u4ECE{0}\u4E2D\u52A0\u8F7D, \u4F46 JAX-WS \u8FD0\u884C\u65F6\u9700\u8981 JAX-WS 2.2 API\u3002\u8BF7\u4F7F\u7528\u6388\u6743\u6807\u51C6\u8986\u76D6\u673A\u5236\u6765\u52A0\u8F7D JAX-WS 2.2 API
+runtime.modeler.addressing.responses.nosuchmethod = JAX-WS 2.1 API \u5DF2\u4ECE {0} \u4E2D\u52A0\u8F7D, \u4F46 JAX-WS \u8FD0\u884C\u65F6\u9700\u8981 JAX-WS 2.2 \u6216\u66F4\u65B0\u7684 API\u3002\u8BF7\u4F7F\u7528\u6807\u51C6\u8986\u76D6\u673A\u5236\u6765\u52A0\u8F7D JAX-WS 2.2 \u6216\u66F4\u65B0\u7684 API\u3002
 runtime.modeler.wsfeature.no.ftrconstructor=\u65E0\u6CD5\u8BC6\u522B\u6CE8\u91CA{0}, \u5E94\u4F7F\u7528 @FeatureConstructor \u81F3\u5C11\u6807\u8BB0{1}\u7684\u4E00\u4E2A\u6784\u9020\u5668
 runtime.modeler.wsfeature.morethanone.ftrconstructor=\u6CE8\u91CA{0}\u662F\u975E\u6CD5\u7684, \u53EA\u80FD\u5C06{1}\u7684\u4E00\u4E2A\u6784\u9020\u5668\u6807\u8BB0\u4E3A @FeatureConstructor
 runtime.modeler.wsfeature.illegal.ftrconstructor=\u6CE8\u91CA{0}\u662F\u975E\u6CD5\u7684, \u5728{1}\u4E2D, @FeatureConstructor \u503C\u4E0E\u6784\u9020\u5668\u53C2\u6570\u4E0D\u5339\u914D
diff --git a/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/resources/modeler_zh_TW.properties b/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/resources/modeler_zh_TW.properties
index 055d6da..3725126 100644
--- a/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/resources/modeler_zh_TW.properties
+++ b/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/resources/modeler_zh_TW.properties
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
@@ -47,7 +47,7 @@
 # {0} - feature class name, {1} - feature class name
 runtime.modeler.feature.conflict= \u5BE6\u884C\u4E2D\u7684\u529F\u80FD {0} \u8207 WSDL \u7D44\u614B\u4E2D\u7684 {1} \u767C\u751F\u885D\u7A81
 # {0} - absolute class location
-runtime.modeler.addressing.responses.nosuchmethod = JAX-WS 2.1 API \u5DF2\u5F9E {0} \u8F09\u5165, \u4F46 JAX-WS \u7A0B\u5F0F\u5BE6\u969B\u57F7\u884C\u9700\u8981 JAX-WS 2.2 API. \u8ACB\u4F7F\u7528\u8A8D\u53EF\u7684\u6A19\u6E96\u8986\u5BEB\u6A5F\u5236\u4F86\u8F09\u5165 JAX-WS 2.2 API
+runtime.modeler.addressing.responses.nosuchmethod = JAX-WS 2.1 API \u5F9E {0} \u8F09\u5165\uFF0C\u4F46\u662F JAX-WS \u7A0B\u5F0F\u5BE6\u969B\u57F7\u884C\u9700\u8981 JAX-WS 2.2 \u6216\u66F4\u65B0\u7248\u672C\u7684 API\u3002\u8ACB\u4F7F\u7528\u6A19\u6E96\u8986\u5BEB\u6A5F\u5236\u4F86\u8F09\u5165 JAX-WS 2.2 \u6216\u66F4\u65B0\u7248\u672C\u7684 API\u3002
 runtime.modeler.wsfeature.no.ftrconstructor=\u8A3B\u89E3 {0} \u7121\u6CD5\u8FA8\u8B58, \u81F3\u5C11\u4E00\u500B {1} \u7684\u5EFA\u69CB\u5B50\u61C9\u6A19\u793A @FeatureConstructor
 runtime.modeler.wsfeature.morethanone.ftrconstructor=\u8A3B\u89E3 {0} \u7121\u6548, \u53EA\u80FD\u6709\u4E00\u500B {1} \u7684\u5EFA\u69CB\u5B50\u6A19\u793A\u70BA @FeatureConstructor
 runtime.modeler.wsfeature.illegal.ftrconstructor=\u8A3B\u89E3 {0} \u7121\u6548, \u5728 {1} \u4E2D, @FeatureConstructor \u503C\u8207\u5EFA\u69CB\u5B50\u53C3\u6578\u4E0D\u7B26
diff --git a/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/util/HandlerAnnotationProcessor.java b/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/util/HandlerAnnotationProcessor.java
index 53d37f3..df549c0 100644
--- a/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/util/HandlerAnnotationProcessor.java
+++ b/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/util/HandlerAnnotationProcessor.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -45,6 +45,7 @@
 import javax.xml.ws.Service;
 import java.io.IOException;
 import java.io.InputStream;
+import java.lang.reflect.Method;
 import java.net.URL;
 import java.util.logging.Logger;
 
diff --git a/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/util/MrJarUtil.java b/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/util/MrJarUtil.java
new file mode 100644
index 0000000..7b6b5c2
--- /dev/null
+++ b/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/util/MrJarUtil.java
@@ -0,0 +1,55 @@
+/*
+ * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package com.sun.xml.internal.ws.util;
+
+import java.security.AccessController;
+import java.security.PrivilegedAction;
+
+/**
+ * Utility class used as a JEP 238 multi release jar versioned class.
+ *
+ * Version for {@code runtime >= 9}.
+ */
+public class MrJarUtil {
+
+    /**
+     * Get property used for disabling instance pooling of xml readers / writers.
+     *
+     * @param baseName Name of a {@linkplain com.sun.xml.internal.ws.api.streaming.XMLStreamReaderFactory} class or
+     *                 {@linkplain com.sun.xml.internal.ws.api.streaming.XMLStreamWriterFactory} class.
+     *
+     * @return true if *.noPool system property is not set or is set to true.
+     */
+    public static boolean getNoPoolProperty(String baseName) {
+        return AccessController.doPrivileged(new PrivilegedAction<Boolean>() {
+            @Override
+            public Boolean run() {
+                String noPool = System.getProperty(baseName + ".noPool");
+                return noPool == null || Boolean.parseBoolean(noPool);
+            }
+        });
+    }
+}
diff --git a/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/util/Pool.java b/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/util/Pool.java
index 3c6e544..dd426f4 100644
--- a/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/util/Pool.java
+++ b/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/util/Pool.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -30,8 +30,10 @@
 
 import javax.xml.bind.JAXBContext;
 import javax.xml.bind.JAXBException;
+
 import java.util.concurrent.ConcurrentLinkedQueue;
-import java.lang.ref.WeakReference;
+import java.lang.ref.SoftReference;
+
 
 /**
  * General-purpose object pool.
@@ -50,7 +52,7 @@
 public abstract class Pool<T> {
 
     // volatile since multiple threads may access queue reference
-    private volatile WeakReference<ConcurrentLinkedQueue<T>> queue;
+    private volatile SoftReference<ConcurrentLinkedQueue<T>> queue;
 
     /**
      * Gets a new object from the pool.
@@ -69,7 +71,7 @@
     }
 
     private ConcurrentLinkedQueue<T> getQueue() {
-        WeakReference<ConcurrentLinkedQueue<T>> q = queue;
+        SoftReference<ConcurrentLinkedQueue<T>> q = queue;
         if (q != null) {
             ConcurrentLinkedQueue<T> d = q.get();
             if (d != null)
@@ -78,7 +80,7 @@
 
         // overwrite the queue
         ConcurrentLinkedQueue<T> d = new ConcurrentLinkedQueue<T>();
-        queue = new WeakReference<ConcurrentLinkedQueue<T>>(d);
+        queue = new SoftReference<ConcurrentLinkedQueue<T>>(d);
 
         return d;
     }
diff --git a/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/util/exception/JAXWSExceptionBase.java b/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/util/exception/JAXWSExceptionBase.java
index c2ec0fc..e7977c0 100644
--- a/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/util/exception/JAXWSExceptionBase.java
+++ b/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/util/exception/JAXWSExceptionBase.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -45,7 +45,7 @@
  * @author WS Development Team
  */
 public abstract class JAXWSExceptionBase
-    extends WebServiceException implements Localizable {
+    extends WebServiceException implements Localizable, LocalizableMessageFactory.ResourceBundleSupplier {
 
     //Don't worry about previous  serialVersionUID = 4818235090198755494L;, this class was not serializable before.
     private static final long serialVersionUID = 1L;
@@ -53,12 +53,14 @@
     private transient Localizable msg;
 
     /**
-     * @deprecated
-     *      Should use the localizable constructor instead.
+     * @param key
+     * @param args
+     * @deprecated Should use the localizable constructor instead.
      */
+    @Deprecated
     protected JAXWSExceptionBase(String key, Object... args) {
         super(findNestedException(args));
-        this.msg = new LocalizableMessage(getDefaultResourceBundleName(), key, args);
+        this.msg = new LocalizableMessage(getDefaultResourceBundleName(), this, key, args);
     }
 
 
@@ -68,6 +70,7 @@
 
     /**
      * Creates a new exception that wraps the specified exception.
+     * @param throwable
      */
     protected JAXWSExceptionBase(Throwable throwable) {
         this(new NullLocalizable(throwable.toString()),throwable);
@@ -127,8 +130,7 @@
                 args[i] = in.readObject();
             }
         }
-        msg = new LocalizableMessageFactory(resourceBundleName, this::getResourceBundle)
-                        .getMessage(key,args);
+        msg = new LocalizableMessageFactory(resourceBundleName).getMessage(key,args);
     }
 
     private static Throwable findNestedException(Object[] args) {
@@ -141,6 +143,7 @@
         return null;
     }
 
+    @Override
     public String getMessage() {
         Localizer localizer = new Localizer();
         return localizer.localize(this);
@@ -149,31 +152,31 @@
     /**
      * Gets the default resource bundle name for this kind of exception.
      * Used for {@link #JAXWSExceptionBase(String, Object[])}.
+     * @return
      */
     protected abstract String getDefaultResourceBundleName();
 
-    /*
-     * Returns the ResourceBundle in this module.
-     *
-     * Subclasses in a different module has to override this method.
-     */
+//
+// Localizable delegation
+//
+    @Override
+    public final String getKey() {
+        return msg.getKey();
+    }
+
+    @Override
+    public final Object[] getArguments() {
+        return msg.getArguments();
+    }
+
+    @Override
+    public final String getResourceBundleName() {
+        return msg.getResourceBundleName();
+    }
+
     @Override
     public ResourceBundle getResourceBundle(Locale locale) {
         return ResourceBundle.getBundle(getDefaultResourceBundleName(), locale);
     }
 
-//
-// Localizable delegation
-//
-    public final String getKey() {
-        return msg.getKey();
-    }
-
-    public final Object[] getArguments() {
-        return msg.getArguments();
-    }
-
-    public final String getResourceBundleName() {
-        return msg.getResourceBundleName();
-    }
 }
diff --git a/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/util/pipe/AbstractSchemaValidationTube.java b/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/util/pipe/AbstractSchemaValidationTube.java
index 234d05e..783eab5 100644
--- a/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/util/pipe/AbstractSchemaValidationTube.java
+++ b/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/util/pipe/AbstractSchemaValidationTube.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -483,7 +483,7 @@
         assert docs.size() > 1;
 
         final StringBuilder sb = new StringBuilder("<xsd:schema xmlns:xsd='http://www.w3.org/2001/XMLSchema'");
-        if (!"".equals(tns)) {
+        if (tns != null && !("".equals(tns)) && !("null".equals(tns))) {
             sb.append(" targetNamespace='").append(tns).append("'");
         }
         sb.append(">\n");
diff --git a/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/util/version.properties b/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/util/version.properties
index 82452ac..88eace6 100644
--- a/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/util/version.properties
+++ b/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/util/version.properties
@@ -26,4 +26,4 @@
 build-id=2.3.0-SNAPSHOT
 build-version=JAX-WS RI 2.3.0-SNAPSHOT
 major-version=2.3.0
-svn-revision=e8c5e9697d9b27d83ff35d767939b2f55e667621
+svn-revision=3012ef421cf43774943c57736dac2207aeea9f07
diff --git a/src/java.xml.ws/share/classes/javax/xml/soap/AttachmentPart.java b/src/java.xml.ws/share/classes/javax/xml/soap/AttachmentPart.java
index 5b90f85..4770665 100644
--- a/src/java.xml.ws/share/classes/javax/xml/soap/AttachmentPart.java
+++ b/src/java.xml.ws/share/classes/javax/xml/soap/AttachmentPart.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2004, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2004, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -26,7 +26,6 @@
 package javax.xml.soap;
 
 import java.io.InputStream;
-import java.io.Reader;
 import java.util.Iterator;
 
 import javax.activation.DataHandler;
@@ -499,7 +498,7 @@
      * @return  an {@code Iterator} object with all of the Mime
      *          headers for this {@code AttachmentPart} object
      */
-    public abstract Iterator getAllMimeHeaders();
+    public abstract Iterator<MimeHeader> getAllMimeHeaders();
 
     /**
      * Retrieves all {@code MimeHeader} objects that match a name in
@@ -510,7 +509,7 @@
      * @return  all of the MIME headers that match one of the names in the
      *           given array as an {@code Iterator} object
      */
-    public abstract Iterator getMatchingMimeHeaders(String[] names);
+    public abstract Iterator<MimeHeader> getMatchingMimeHeaders(String[] names);
 
     /**
      * Retrieves all {@code MimeHeader} objects whose name does
@@ -523,5 +522,5 @@
      *           given array.  The nonmatching MIME headers are returned as an
      *           {@code Iterator} object.
      */
-    public abstract Iterator getNonMatchingMimeHeaders(String[] names);
+    public abstract Iterator<MimeHeader> getNonMatchingMimeHeaders(String[] names);
 }
diff --git a/src/java.xml.ws/share/classes/javax/xml/soap/Detail.java b/src/java.xml.ws/share/classes/javax/xml/soap/Detail.java
index 78ad9f3..8b823e1 100644
--- a/src/java.xml.ws/share/classes/javax/xml/soap/Detail.java
+++ b/src/java.xml.ws/share/classes/javax/xml/soap/Detail.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2004, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2004, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -68,6 +68,9 @@
      * @param name a {@code Name} object identifying the
      *         new {@code DetailEntry} object
      *
+     * @return the new {@code DetailEntry} object that was
+     *         created
+     *
      * @exception SOAPException thrown when there is a problem in adding a
      * DetailEntry object to this Detail object.
      *
@@ -83,6 +86,9 @@
      * @param qname a {@code QName} object identifying the
      *         new {@code DetailEntry} object
      *
+     * @return the new {@code DetailEntry} object that was
+     *         created
+     *
      * @exception SOAPException thrown when there is a problem in adding a
      * DetailEntry object to this Detail object.
      *
@@ -97,5 +103,5 @@
      * @return an {@code Iterator} object over the {@code DetailEntry}
      *             objects in this {@code Detail} object
      */
-    public Iterator getDetailEntries();
+    public Iterator<DetailEntry> getDetailEntries();
 }
diff --git a/src/java.xml.ws/share/classes/javax/xml/soap/MimeHeaders.java b/src/java.xml.ws/share/classes/javax/xml/soap/MimeHeaders.java
index d84d6b7..85046ca 100644
--- a/src/java.xml.ws/share/classes/javax/xml/soap/MimeHeaders.java
+++ b/src/java.xml.ws/share/classes/javax/xml/soap/MimeHeaders.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2004, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2004, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -42,14 +42,14 @@
  * @since 1.6
  */
 public class MimeHeaders {
-    private Vector headers;
+    private Vector<MimeHeader> headers;
 
    /**
     * Constructs a default {@code MimeHeaders} object initialized with
     * an empty {@code Vector} object.
     */
     public MimeHeaders() {
-        headers = new Vector();
+        headers = new Vector<>();
     }
 
     /**
@@ -62,10 +62,10 @@
      * @see #setHeader
      */
     public String[] getHeader(String name) {
-        Vector values = new Vector();
+        Vector<String> values = new Vector<>();
 
         for(int i = 0; i < headers.size(); i++) {
-            MimeHeader hdr = (MimeHeader) headers.elementAt(i);
+            MimeHeader hdr = headers.elementAt(i);
             if (hdr.getName().equalsIgnoreCase(name)
                 && hdr.getValue() != null)
                 values.addElement(hdr.getValue());
@@ -103,7 +103,7 @@
             throw new IllegalArgumentException("Illegal MimeHeader name");
 
         for(int i = 0; i < headers.size(); i++) {
-            MimeHeader hdr = (MimeHeader) headers.elementAt(i);
+            MimeHeader hdr = headers.elementAt(i);
             if (hdr.getName().equalsIgnoreCase(name)) {
                 if (!found) {
                     headers.setElementAt(new MimeHeader(hdr.getName(),
@@ -141,7 +141,7 @@
         int pos = headers.size();
 
         for(int i = pos - 1 ; i >= 0; i--) {
-            MimeHeader hdr = (MimeHeader) headers.elementAt(i);
+            MimeHeader hdr = headers.elementAt(i);
             if (hdr.getName().equalsIgnoreCase(name)) {
                 headers.insertElementAt(new MimeHeader(name, value),
                                         i+1);
@@ -160,7 +160,7 @@
      */
     public void removeHeader(String name) {
         for(int i = 0; i < headers.size(); i++) {
-            MimeHeader hdr = (MimeHeader) headers.elementAt(i);
+            MimeHeader hdr = headers.elementAt(i);
             if (hdr.getName().equalsIgnoreCase(name))
                 headers.removeElementAt(i--);
         }
@@ -180,26 +180,26 @@
      * @return  an {@code Iterator} object over this {@code MimeHeaders}
      *          object's list of {@code MimeHeader} objects
      */
-    public Iterator getAllHeaders() {
+    public Iterator<MimeHeader> getAllHeaders() {
         return headers.iterator();
     }
 
-    class MatchingIterator implements Iterator {
-        private boolean match;
-        private Iterator iterator;
-        private String[] names;
-        private Object nextHeader;
+    static class MatchingIterator implements Iterator<MimeHeader> {
+        private final boolean match;
+        private final Iterator<MimeHeader> iterator;
+        private final String[] names;
+        private MimeHeader nextHeader;
 
-        MatchingIterator(String[] names, boolean match) {
+        MatchingIterator(String[] names, boolean match, Iterator<MimeHeader> i) {
             this.match = match;
             this.names = names;
-            this.iterator = headers.iterator();
+            this.iterator = i;
         }
 
-        private Object nextMatch() {
+        private MimeHeader nextMatch() {
         next:
             while (iterator.hasNext()) {
-                MimeHeader hdr = (MimeHeader) iterator.next();
+                MimeHeader hdr = iterator.next();
 
                 if (names == null)
                     return match ? null : hdr;
@@ -217,17 +217,19 @@
         }
 
 
+        @Override
         public boolean hasNext() {
             if (nextHeader == null)
                 nextHeader = nextMatch();
             return nextHeader != null;
         }
 
-        public Object next() {
+        @Override
+        public MimeHeader next() {
             // hasNext should've prefetched the header for us,
             // return it.
             if (nextHeader != null) {
-                Object ret = nextHeader;
+                MimeHeader ret = nextHeader;
                 nextHeader = null;
                 return ret;
             }
@@ -236,6 +238,7 @@
             return null;
         }
 
+        @Override
         public void remove() {
             iterator.remove();
         }
@@ -251,8 +254,8 @@
      * @return  an {@code Iterator} object over the {@code MimeHeader}
      *          objects whose name matches one of the names in the given list
      */
-    public Iterator getMatchingHeaders(String[] names) {
-        return new MatchingIterator(names, true);
+    public Iterator<MimeHeader> getMatchingHeaders(String[] names) {
+        return new MatchingIterator(names, true, headers.iterator());
     }
 
     /**
@@ -264,7 +267,7 @@
      * @return  an {@code Iterator} object over the {@code MimeHeader}
      *          objects whose name does not match one of the names in the given list
      */
-    public Iterator getNonMatchingHeaders(String[] names) {
-        return new MatchingIterator(names, false);
+    public Iterator<MimeHeader> getNonMatchingHeaders(String[] names) {
+        return new MatchingIterator(names, false, headers.iterator());
     }
 }
diff --git a/src/java.xml.ws/share/classes/javax/xml/soap/Node.java b/src/java.xml.ws/share/classes/javax/xml/soap/Node.java
index 221255e..164658f 100644
--- a/src/java.xml.ws/share/classes/javax/xml/soap/Node.java
+++ b/src/java.xml.ws/share/classes/javax/xml/soap/Node.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2004, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2004, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -27,7 +27,7 @@
 
 /**
  * A representation of a node (element) in an XML document.
- * This interface extnends the standard DOM Node interface with methods for
+ * This interface extends the standard DOM Node interface with methods for
  * getting and setting the value of a node, for
  * getting and setting the parent of a node, and for removing a node.
  *
@@ -59,6 +59,7 @@
      * there are no children in which case a child {@code Text} node will be
      * created.
      *
+     * @param value {@code value} to set on the {@code Text} node
      * @exception IllegalStateException if the node is not a {@code Text}
      *              node and either has more than one child node or has a child
      *              node that is not a {@code Text} node.
diff --git a/src/java.xml.ws/share/classes/javax/xml/soap/SAAJMetaFactory.java b/src/java.xml.ws/share/classes/javax/xml/soap/SAAJMetaFactory.java
index 4734e56..109bc02 100644
--- a/src/java.xml.ws/share/classes/javax/xml/soap/SAAJMetaFactory.java
+++ b/src/java.xml.ws/share/classes/javax/xml/soap/SAAJMetaFactory.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2004, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2004, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -29,7 +29,7 @@
 * The access point for the implementation classes of the factories defined in the
 * SAAJ API. The {@code newInstance} methods defined on factories {@link SOAPFactory} and
 * {@link MessageFactory} in SAAJ 1.3 defer to instances of this class to do the actual object creation.
-* The implementations of {@code newInstance()} methods (in SOAPFactory and MessageFactory)
+* The implementations of {@code newInstance()} methods (in {@link SOAPFactory} and {@link MessageFactory})
 * that existed in SAAJ 1.2 have been updated to also delegate to the SAAJMetaFactory when the SAAJ 1.2
 * defined lookup fails to locate the Factory implementation class name.
 *
@@ -94,7 +94,7 @@
 
             } catch (Exception e) {
                 throw new SOAPException(
-                    "Unable to create SAAJ meta-factory" + e.getMessage());
+                    "Unable to create SAAJ meta-factory: " + e.getMessage());
             }
     }
 
diff --git a/src/java.xml.ws/share/classes/javax/xml/soap/SOAPElement.java b/src/java.xml.ws/share/classes/javax/xml/soap/SOAPElement.java
index 76ef0fb..c773003 100644
--- a/src/java.xml.ws/share/classes/javax/xml/soap/SOAPElement.java
+++ b/src/java.xml.ws/share/classes/javax/xml/soap/SOAPElement.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2004, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2004, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -277,7 +277,7 @@
      * @see SOAPElement#getAllAttributesAsQNames()
      * @return an iterator over the names of the attributes
      */
-    public Iterator getAllAttributes();
+    public Iterator<Name> getAllAttributes();
 
     /**
      * Returns an {@code Iterator} over all of the attributes
@@ -290,7 +290,7 @@
      * @see SOAPElement#getAllAttributes()
      * @since 1.6, SAAJ 1.3
      */
-    public Iterator getAllAttributesAsQNames();
+    public Iterator<QName> getAllAttributesAsQNames();
 
 
     /**
@@ -312,7 +312,7 @@
      * @return an iterator over the namespace prefixes in this
      *         {@code SOAPElement} object
      */
-    public Iterator getNamespacePrefixes();
+    public Iterator<String> getNamespacePrefixes();
 
     /**
      * Returns an {@code Iterator} over the namespace prefix
@@ -325,7 +325,7 @@
      *
      * @since 1.6, SAAJ 1.2
      */
-    public Iterator getVisibleNamespacePrefixes();
+    public Iterator<String> getVisibleNamespacePrefixes();
 
     /**
      * Creates a {@code QName} whose namespace URI is the one associated
@@ -429,7 +429,7 @@
      * {@link Node}s of this element. This includes {@code javax.xml.soap.Text}
      * objects as well as {@code SOAPElement} objects.
      * <p>
-     * Calling this method may cause child {@code Element},
+     * Calling this method must cause child {@code Element},
      * {@code SOAPElement} and {@code org.w3c.dom.Text} nodes to be
      * replaced by {@code SOAPElement}, {@code SOAPHeaderElement},
      * {@code SOAPBodyElement} or {@code javax.xml.soap.Text} nodes as
@@ -444,14 +444,14 @@
      * @return an iterator with the content of this {@code SOAPElement}
      *         object
      */
-    public Iterator getChildElements();
+    public Iterator<Node> getChildElements();
 
     /**
      * Returns an {@code Iterator} over all the immediate child
      * {@link Node}s of this element with the specified name. All of these
      * children will be {@code SOAPElement} nodes.
      * <p>
-     * Calling this method may cause child {@code Element},
+     * Calling this method must cause child {@code Element},
      * {@code SOAPElement} and {@code org.w3c.dom.Text} nodes to be
      * replaced by {@code SOAPElement}, {@code SOAPHeaderElement},
      * {@code SOAPBodyElement} or {@code javax.xml.soap.Text} nodes as
@@ -471,14 +471,14 @@
      *         specified name
      * @see SOAPElement#getChildElements(javax.xml.namespace.QName)
      */
-    public Iterator getChildElements(Name name);
+    public Iterator<Node> getChildElements(Name name);
 
     /**
      * Returns an {@code Iterator} over all the immediate child
      * {@link Node}s of this element with the specified qname. All of these
      * children will be {@code SOAPElement} nodes.
      * <p>
-     * Calling this method may cause child {@code Element},
+     * Calling this method must cause child {@code Element},
      * {@code SOAPElement} and {@code org.w3c.dom.Text} nodes to be
      * replaced by {@code SOAPElement}, {@code SOAPHeaderElement},
      * {@code SOAPBodyElement} or {@code javax.xml.soap.Text} nodes as
@@ -499,7 +499,7 @@
      * @see SOAPElement#getChildElements(Name)
      * @since 1.6, SAAJ 1.3
      */
-    public Iterator getChildElements(QName qname);
+    public Iterator<Node> getChildElements(QName qname);
 
     /**
      * Sets the encoding style for this {@code SOAPElement} object
diff --git a/src/java.xml.ws/share/classes/javax/xml/soap/SOAPElementFactory.java b/src/java.xml.ws/share/classes/javax/xml/soap/SOAPElementFactory.java
index 40b1b5e..9be7c2c 100644
--- a/src/java.xml.ws/share/classes/javax/xml/soap/SOAPElementFactory.java
+++ b/src/java.xml.ws/share/classes/javax/xml/soap/SOAPElementFactory.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2004, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2004, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -103,6 +103,9 @@
      * @param uri a {@code String} giving the URI of the
      *            namespace to which the new element belongs
      *
+     * @return the new {@code SOAPElement} object that was
+     *         created
+     *
      * @exception SOAPException if there is an error in creating the
      *            {@code SOAPElement} object
      *
diff --git a/src/java.xml.ws/share/classes/javax/xml/soap/SOAPException.java b/src/java.xml.ws/share/classes/javax/xml/soap/SOAPException.java
index 5d76bf0..4e10e63 100644
--- a/src/java.xml.ws/share/classes/javax/xml/soap/SOAPException.java
+++ b/src/java.xml.ws/share/classes/javax/xml/soap/SOAPException.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2004, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2004, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -83,6 +83,9 @@
     /**
      * Constructs a {@code SOAPException} object initialized
      * with the given {@code Throwable} object.
+     *
+     * @param cause a {@code Throwable} object that is to
+     *        be embedded in this {@code SOAPException} object
      */
     public SOAPException(Throwable cause) {
         super(cause.toString());
@@ -103,6 +106,7 @@
      *         message of the embedded {@code Throwable} object,
      *         if there is one
      */
+    @Override
     public String getMessage() {
         String message = super.getMessage();
         if (message == null && cause != null) {
@@ -121,6 +125,7 @@
      *         if there is none
      */
 
+    @Override
     public Throwable getCause() {
         return cause;
     }
@@ -151,6 +156,7 @@
      * @throws IllegalStateException if the cause for this {@code SOAPException} object
      *         has already been initialized
      */
+    @Override
     public synchronized Throwable initCause(Throwable cause) {
         if (this.cause != null) {
             throw new IllegalStateException("Can't override cause");
diff --git a/src/java.xml.ws/share/classes/javax/xml/soap/SOAPFactory.java b/src/java.xml.ws/share/classes/javax/xml/soap/SOAPFactory.java
index 8509bda..14397cf 100644
--- a/src/java.xml.ws/share/classes/javax/xml/soap/SOAPFactory.java
+++ b/src/java.xml.ws/share/classes/javax/xml/soap/SOAPFactory.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2004, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2004, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -150,6 +150,8 @@
      * @param prefix the prefix for this {@code SOAPElement}
      * @param uri a {@code String} giving the URI of the
      *            namespace to which the new element belongs
+     * @return the new {@code SOAPElement} object that was
+     *         created
      *
      * @exception SOAPException if there is an error in creating the
      *            {@code SOAPElement} object
diff --git a/src/java.xml.ws/share/classes/javax/xml/soap/SOAPFault.java b/src/java.xml.ws/share/classes/javax/xml/soap/SOAPFault.java
index dd99c64..6ec2d3e 100644
--- a/src/java.xml.ws/share/classes/javax/xml/soap/SOAPFault.java
+++ b/src/java.xml.ws/share/classes/javax/xml/soap/SOAPFault.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2004, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2004, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -162,7 +162,7 @@
      *
      * @since 1.6, SAAJ 1.3
      */
-    public Iterator getFaultSubcodes();
+    public Iterator<QName> getFaultSubcodes();
 
     /**
      * Removes any Subcodes that may be contained by this
@@ -381,7 +381,7 @@
      *
      * @since 1.6, SAAJ 1.3
      */
-    public Iterator getFaultReasonLocales() throws SOAPException;
+    public Iterator<Locale> getFaultReasonLocales() throws SOAPException;
 
     /**
      * Returns an {@code Iterator} over a sequence of
@@ -397,7 +397,7 @@
      *
      * @since 1.6, SAAJ 1.3
      */
-    public Iterator getFaultReasonTexts() throws SOAPException;
+    public Iterator<String> getFaultReasonTexts() throws SOAPException;
 
     /**
      * Returns the Reason Text associated with the given {@code Locale}.
@@ -468,6 +468,8 @@
      * this {@code SOAPFault} object. The Node element
      * is optional in SOAP 1.2.
      *
+     * @param uri - the URI of the Node
+     *
      * @exception SOAPException  if there was an error in setting the
      *            Node for this  {@code SOAPFault} object.
      * @exception UnsupportedOperationException if this message does not
diff --git a/src/java.xml.ws/share/classes/javax/xml/soap/SOAPHeader.java b/src/java.xml.ws/share/classes/javax/xml/soap/SOAPHeader.java
index e555c3b..494cb21 100644
--- a/src/java.xml.ws/share/classes/javax/xml/soap/SOAPHeader.java
+++ b/src/java.xml.ws/share/classes/javax/xml/soap/SOAPHeader.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2004, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2004, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -118,7 +118,7 @@
      *
      * @since 1.6, SAAJ 1.2
      */
-    public Iterator examineMustUnderstandHeaderElements(String actor);
+    public Iterator<SOAPHeaderElement> examineMustUnderstandHeaderElements(String actor);
 
     /**
      * Returns an {@code Iterator} over all the {@code SOAPHeaderElement} objects
@@ -144,7 +144,7 @@
      * @see #extractHeaderElements
      * @see SOAPConstants#URI_SOAP_ACTOR_NEXT
      */
-    public Iterator examineHeaderElements(String actor);
+    public Iterator<SOAPHeaderElement> examineHeaderElements(String actor);
 
     /**
      * Returns an {@code Iterator} over all the {@code SOAPHeaderElement} objects
@@ -168,7 +168,7 @@
      * @see #examineHeaderElements
      * @see SOAPConstants#URI_SOAP_ACTOR_NEXT
      */
-    public Iterator extractHeaderElements(String actor);
+    public Iterator<SOAPHeaderElement> extractHeaderElements(String actor);
 
     /**
      * Creates a new NotUnderstood {@code SOAPHeaderElement} object initialized
@@ -188,18 +188,18 @@
 
     /**
      * Creates a new Upgrade {@code SOAPHeaderElement} object initialized
-     * with the specified List of supported SOAP URIs and adds it to this
-     * {@code SOAPHeader} object.
+     * with the specified String Iterator of supported SOAP URIs and adds
+     * it to this {@code SOAPHeader} object.
      * This operation is supported on both SOAP 1.1 and SOAP 1.2 header.
      *
-     * @param supportedSOAPURIs an {@code Iterator} object with the URIs of SOAP
+     * @param supportedSOAPURIs an URI Strings {@code Iterator} of SOAP
      *          versions supported.
      * @return the new {@code SOAPHeaderElement} object that was
      *          inserted into this {@code SOAPHeader} object
      * @exception SOAPException if a SOAP error occurs.
      * @since 1.6, SAAJ 1.3
      */
-    public SOAPHeaderElement addUpgradeHeaderElement(Iterator supportedSOAPURIs)
+    public SOAPHeaderElement addUpgradeHeaderElement(Iterator<String> supportedSOAPURIs)
         throws SOAPException;
 
     /**
@@ -243,7 +243,7 @@
      *
      * @since 1.6, SAAJ 1.2
      */
-    public Iterator examineAllHeaderElements();
+    public Iterator<SOAPHeaderElement> examineAllHeaderElements();
 
     /**
      * Returns an {@code Iterator} over all the {@code SOAPHeaderElement} objects
@@ -258,6 +258,6 @@
      *
      * @since 1.6, SAAJ 1.2
      */
-    public Iterator extractAllHeaderElements();
+    public Iterator<SOAPHeaderElement> extractAllHeaderElements();
 
 }
diff --git a/src/java.xml.ws/share/classes/javax/xml/soap/SOAPMessage.java b/src/java.xml.ws/share/classes/javax/xml/soap/SOAPMessage.java
index d0476a6..daa6e5b 100644
--- a/src/java.xml.ws/share/classes/javax/xml/soap/SOAPMessage.java
+++ b/src/java.xml.ws/share/classes/javax/xml/soap/SOAPMessage.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2004, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2004, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -205,7 +205,7 @@
      *
      * @return an iterator over all the attachments in this message
      */
-    public abstract Iterator getAttachments();
+    public abstract Iterator<AttachmentPart> getAttachments();
 
     /**
      * Retrieves all the {@code AttachmentPart} objects that have header
@@ -217,7 +217,7 @@
      * @return an iterator over all attachments that have a header that matches
      * one of the given headers
      */
-    public abstract Iterator getAttachments(MimeHeaders headers);
+    public abstract Iterator<AttachmentPart> getAttachments(MimeHeaders headers);
 
     /**
      * Removes all the {@code AttachmentPart} objects that have header
@@ -266,12 +266,14 @@
      * object. An {@code AttachmentPart} object must be created before
      * it can be added to a message.
      *
-     * @param AttachmentPart
-     *           an {@code AttachmentPart} object that is to become part
+     * @param attachmentPart
+     *           an {@code attachmentPart} object that is to become part
      *           of this {@code SOAPMessage} object
      * @exception IllegalArgumentException
+     *               if there was a problem with the specified {@code attachmentPart}
+     *               object
      */
-    public abstract void addAttachmentPart(AttachmentPart AttachmentPart);
+    public abstract void addAttachmentPart(AttachmentPart attachmentPart);
 
     /**
      * Creates a new empty {@code AttachmentPart} object. Note that the
diff --git a/src/java.xml.ws/share/classes/javax/xml/soap/SOAPPart.java b/src/java.xml.ws/share/classes/javax/xml/soap/SOAPPart.java
index 099a2e9..811a870 100644
--- a/src/java.xml.ws/share/classes/javax/xml/soap/SOAPPart.java
+++ b/src/java.xml.ws/share/classes/javax/xml/soap/SOAPPart.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2004, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2004, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -213,7 +213,7 @@
      * @return  an {@code Iterator} object with all of the Mime
      *          headers for this {@code SOAPPart} object
      */
-    public abstract Iterator getAllMimeHeaders();
+    public abstract Iterator<MimeHeader> getAllMimeHeaders();
 
     /**
      * Retrieves all {@code MimeHeader} objects that match a name in
@@ -224,7 +224,7 @@
      * @return  all of the MIME headers that match one of the names in the
      *           given array, returned as an {@code Iterator} object
      */
-    public abstract Iterator getMatchingMimeHeaders(String[] names);
+    public abstract Iterator<MimeHeader> getMatchingMimeHeaders(String[] names);
 
     /**
      * Retrieves all {@code MimeHeader} objects whose name does
@@ -237,7 +237,7 @@
      *           given array.  The nonmatching MIME headers are returned as an
      *           {@code Iterator} object.
      */
-    public abstract Iterator getNonMatchingMimeHeaders(String[] names);
+    public abstract Iterator<MimeHeader> getNonMatchingMimeHeaders(String[] names);
 
     /**
      * Sets the content of the {@code SOAPEnvelope} object with the data
diff --git a/src/java.xml.ws/share/classes/javax/xml/soap/ServiceLoaderUtil.java b/src/java.xml.ws/share/classes/javax/xml/soap/ServiceLoaderUtil.java
index ebd4bdc..ae78cd8 100644
--- a/src/java.xml.ws/share/classes/javax/xml/soap/ServiceLoaderUtil.java
+++ b/src/java.xml.ws/share/classes/javax/xml/soap/ServiceLoaderUtil.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -46,8 +46,7 @@
             ServiceLoader<P> serviceLoader = ServiceLoader.load(spiClass);
 
             for (P impl : serviceLoader) {
-                logger.fine("ServiceProvider loading Facility used; returning object [" +
-                        impl.getClass().getName() + "]");
+                logger.log(Level.FINE, "ServiceProvider loading Facility used; returning object [{0}]", impl.getClass().getName());
 
                 return impl;
             }
diff --git a/src/java.xml.ws/share/classes/javax/xml/soap/package-info.java b/src/java.xml.ws/share/classes/javax/xml/soap/package-info.java
index 678635a..51d856f 100644
--- a/src/java.xml.ws/share/classes/javax/xml/soap/package-info.java
+++ b/src/java.xml.ws/share/classes/javax/xml/soap/package-info.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,8 +25,7 @@
 
 /**
  * Provides the API for creating and building SOAP messages. This package
- * is defined in the <i>SOAP with Attachments API for Java<sup><font size="-2">TM</font></sup>
- * (SAAJ) 1.4</i> specification.
+ * is defined in the <i>SOAP with Attachments API for Java&trade; (SAAJ) 1.4</i> specification.
  *
  * <p> The API in the <code>javax.xml.soap</code> package allows you to do the following:
  *
diff --git a/src/java.xml.ws/share/classes/javax/xml/ws/Action.java b/src/java.xml.ws/share/classes/javax/xml/ws/Action.java
index 445f651..a54fd50 100644
--- a/src/java.xml.ws/share/classes/javax/xml/ws/Action.java
+++ b/src/java.xml.ws/share/classes/javax/xml/ws/Action.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -129,12 +129,16 @@
     /**
      * Explicit value of the WS-Addressing {@code Action} message addressing property for the {@code input}
      * message of the operation.
+     *
+     * @return {@code Action} message addressing property for the {@code input} message
      */
     String input() default "";
 
     /**
      * Explicit value of the WS-Addressing {@code Action} message addressing property for the {@code output}
      * message of the operation.
+     *
+     * @return {@code Action} message addressing property for the {@code output} message
      */
     String output() default "";
 
@@ -143,6 +147,8 @@
      * message(s) of the operation. Each exception that is mapped to a fault and requires an explicit WS-Addressing
      * {@code Action} message addressing property, needs to be specified as a value in this property
      * using {@link FaultAction} annotation.
+     *
+     * @return {@code Action} message addressing property for the {@code fault} message(s)
      */
     FaultAction[] fault() default { };
 }
diff --git a/src/java.xml.ws/share/classes/javax/xml/ws/AsyncHandler.java b/src/java.xml.ws/share/classes/javax/xml/ws/AsyncHandler.java
index dd9c9a5..7b887cd 100644
--- a/src/java.xml.ws/share/classes/javax/xml/ws/AsyncHandler.java
+++ b/src/java.xml.ws/share/classes/javax/xml/ws/AsyncHandler.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -29,6 +29,7 @@
  * clients that wish to receive callback notification of the completion of
  * service endpoint operations invoked asynchronously.
  *
+ * @param <T> The type of the message or payload
  *  @since 1.6, JAX-WS 2.0
 **/
 public interface AsyncHandler<T> {
diff --git a/src/java.xml.ws/share/classes/javax/xml/ws/BindingProvider.java b/src/java.xml.ws/share/classes/javax/xml/ws/BindingProvider.java
index 2dd9064..607d067 100644
--- a/src/java.xml.ws/share/classes/javax/xml/ws/BindingProvider.java
+++ b/src/java.xml.ws/share/classes/javax/xml/ws/BindingProvider.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -164,6 +164,7 @@
      * this {@code BindingProvider} instance.  The instance
      * returned will be of type {@code clazz}.
      *
+     * @param <T> the type of {@code EndpointReference}
      * @param clazz Specifies the type of {@code EndpointReference}
      * that MUST be returned.
 
diff --git a/src/java.xml.ws/share/classes/javax/xml/ws/BindingType.java b/src/java.xml.ws/share/classes/javax/xml/ws/BindingType.java
index 00e7b69..ff82380 100644
--- a/src/java.xml.ws/share/classes/javax/xml/ws/BindingType.java
+++ b/src/java.xml.ws/share/classes/javax/xml/ws/BindingType.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -30,13 +30,15 @@
 import java.lang.annotation.ElementType;
 import java.lang.annotation.Retention;
 import java.lang.annotation.RetentionPolicy;
+import javax.xml.ws.http.HTTPBinding;
+import javax.xml.ws.soap.SOAPBinding;
 
 /**
  *  The {@code BindingType} annotation is used to
  *  specify the binding to use for a web service
  *  endpoint implementation class.
  *  <p>
- *  This annotation may be overriden programmatically or via
+ *  This annotation may be overridden programmatically or via
  *  deployment descriptors, depending on the platform in use.
  *
  *  @since 1.6, JAX-WS 2.0
@@ -47,12 +49,11 @@
 @Documented
 public @interface BindingType {
      /**
-      * A binding identifier (a URI).
-      * If not specified, the default is the SOAP 1.1 / HTTP binding.
-      * <p>
-      * See the {@code SOAPBinding} and {@code HTTPBinding}
+      * A binding identifier (a URI). If not specified, the default is the SOAP 1.1 / HTTP binding.<br>
+      * See the {@link SOAPBinding} and {@link HTTPBinding}
       * for the definition of the standard binding identifiers.
       *
+      * @return A binding identifier (a URI)
       * @see javax.xml.ws.Binding
       * @see javax.xml.ws.soap.SOAPBinding#SOAP11HTTP_BINDING
       * @see javax.xml.ws.soap.SOAPBinding#SOAP12HTTP_BINDING
diff --git a/src/java.xml.ws/share/classes/javax/xml/ws/Dispatch.java b/src/java.xml.ws/share/classes/javax/xml/ws/Dispatch.java
index 8bef4ee..f15163e 100644
--- a/src/java.xml.ws/share/classes/javax/xml/ws/Dispatch.java
+++ b/src/java.xml.ws/share/classes/javax/xml/ws/Dispatch.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -27,12 +27,14 @@
 
 import java.util.concurrent.Future;
 
+
 /** The {@code Dispatch} interface provides support
  *  for the dynamic invocation of a service endpoint operations. The
  *  {@code javax.xml.ws.Service}
  *  class acts as a factory for the creation of {@code Dispatch}
  *  instances.
  *
+ * @param <T> The type of the message or payload
  *  @since 1.6, JAX-WS 2.0
 **/
 public interface Dispatch<T> extends BindingProvider {
diff --git a/src/java.xml.ws/share/classes/javax/xml/ws/Endpoint.java b/src/java.xml.ws/share/classes/javax/xml/ws/Endpoint.java
index f588409..78b8a72 100644
--- a/src/java.xml.ws/share/classes/javax/xml/ws/Endpoint.java
+++ b/src/java.xml.ws/share/classes/javax/xml/ws/Endpoint.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -81,7 +81,6 @@
      **/
     public static final String WSDL_PORT = "javax.xml.ws.wsdl.port";
 
-
     /**
      * Creates an endpoint with the specified implementor object. If there is
      * a binding specified via a BindingType annotation then it MUST be used else
@@ -272,7 +271,6 @@
         return Provider.provider().createAndPublishEndpoint(address, implementor, features);
     }
 
-
     /**
      * Publishes this endpoint at the provided server context.
      * A server context encapsulates the server infrastructure
@@ -406,7 +404,6 @@
      **/
     public abstract void setExecutor(java.util.concurrent.Executor executor);
 
-
     /**
      * Returns the property bag for this {@code Endpoint} instance.
      *
@@ -450,11 +447,11 @@
      **/
     public abstract EndpointReference getEndpointReference(Element... referenceParameters);
 
-
     /**
      * Returns the {@code EndpointReference} associated with
      * this {@code Endpoint} instance.
      *
+     * @param <T> The type of EndpointReference.
      * @param clazz Specifies the type of EndpointReference  that MUST be returned.
      * @param referenceParameters Reference parameters to be associated with the
      * returned {@code EndpointReference} instance.
@@ -478,7 +475,7 @@
             Element... referenceParameters);
 
     /**
-     * By settng a {@code EndpointContext}, JAX-WS runtime knows about
+     * By setting a {@code EndpointContext}, JAX-WS runtime knows about
      * addresses of other endpoints in an application. If multiple endpoints
      * share different ports of a WSDL, then the multiple port addresses
      * are patched when the WSDL is accessed.
diff --git a/src/java.xml.ws/share/classes/javax/xml/ws/EndpointReference.java b/src/java.xml.ws/share/classes/javax/xml/ws/EndpointReference.java
index 163cfbd..46d2317 100644
--- a/src/java.xml.ws/share/classes/javax/xml/ws/EndpointReference.java
+++ b/src/java.xml.ws/share/classes/javax/xml/ws/EndpointReference.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -88,6 +88,10 @@
     //
     //Default constructor to be only called by derived types.
     //
+
+    /**
+     * Default constructor.
+     */
     protected EndpointReference(){}
 
     /**
@@ -150,6 +154,7 @@
      * method can be used to manually configure handlers for this port.
      *
      *
+     * @param <T> Service endpoint interface
      * @param serviceEndpointInterface Service endpoint interface
      * @param features  An array of {@code WebServiceFeatures} to configure on the
      *                proxy.  Supported features not in the {@code features
@@ -183,7 +188,10 @@
 
     /**
      * Displays EPR infoset for debugging convenience.
+     *
+     * @return a string representation of the object
      */
+    @Override
     public String toString() {
         StringWriter w = new StringWriter();
         writeTo(new StreamResult(w));
diff --git a/src/java.xml.ws/share/classes/javax/xml/ws/FaultAction.java b/src/java.xml.ws/share/classes/javax/xml/ws/FaultAction.java
index 7fd4eff..9b65483 100644
--- a/src/java.xml.ws/share/classes/javax/xml/ws/FaultAction.java
+++ b/src/java.xml.ws/share/classes/javax/xml/ws/FaultAction.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -153,12 +153,16 @@
 @Target(ElementType.METHOD)
 public @interface FaultAction {
     /**
-     * Name of the exception class
+     * Name of the exception class.
+     *
+     * @return the name of the exception class
      */
     Class<? extends Exception> className();
 
     /**
-     * Value of WS-Addressing {@code Action} message addressing property for the exception
+     * Value of WS-Addressing {@code Action} message addressing property for the exception.
+     *
+     * @return WS-Addressing {@code Action} message addressing property for the exception
      */
     String value() default "";
 }
diff --git a/src/java.xml.ws/share/classes/javax/xml/ws/Holder.java b/src/java.xml.ws/share/classes/javax/xml/ws/Holder.java
index 9b48975..f2f77db 100644
--- a/src/java.xml.ws/share/classes/javax/xml/ws/Holder.java
+++ b/src/java.xml.ws/share/classes/javax/xml/ws/Holder.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -30,6 +30,7 @@
 /**
  * Holds a value of type {@code T}.
  *
+ * @param <T> Type of the value in the holder.
  * @since 1.6, JAX-WS 2.0
  */
 public final class Holder<T> implements Serializable {
diff --git a/src/java.xml.ws/share/classes/javax/xml/ws/Provider.java b/src/java.xml.ws/share/classes/javax/xml/ws/Provider.java
index e9772ef..a9b8dc2 100644
--- a/src/java.xml.ws/share/classes/javax/xml/ws/Provider.java
+++ b/src/java.xml.ws/share/classes/javax/xml/ws/Provider.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -38,6 +38,7 @@
  *  the {@code Provider} instance will receive entire protocol messages
  *  or just message payloads.
  *
+ * @param <T> The type of the request
  *  @since 1.6, JAX-WS 2.0
  *
  *  @see javax.xml.transform.Source
@@ -46,7 +47,7 @@
 **/
 public interface Provider<T> {
 
-  /** Invokes an operation occording to the contents of the request
+  /** Invokes an operation according to the contents of the request
    *  message.
    *
    *  @param  request The request message or message payload.
diff --git a/src/java.xml.ws/share/classes/javax/xml/ws/RequestWrapper.java b/src/java.xml.ws/share/classes/javax/xml/ws/RequestWrapper.java
index becf605..9466f5f 100644
--- a/src/java.xml.ws/share/classes/javax/xml/ws/RequestWrapper.java
+++ b/src/java.xml.ws/share/classes/javax/xml/ws/RequestWrapper.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -49,22 +49,26 @@
 public @interface RequestWrapper {
     /**
      * Element's local name.
+     * @return local name
      */
     public String localName() default "";
 
     /**
      * Element's namespace name.
+     * @return target namespace name
      */
     public String targetNamespace() default "";
 
     /**
      * Request wrapper bean name.
+     * @return bean name
      */
     public String className() default "";
 
     /**
      * wsdl:part name for the wrapper part
      *
+     * @return wsdl:part name
      * @since 1.7, JAX-WS 2.2
      */
     public String partName() default "";
diff --git a/src/java.xml.ws/share/classes/javax/xml/ws/RespectBinding.java b/src/java.xml.ws/share/classes/javax/xml/ws/RespectBinding.java
index d50de48..24f38c0 100644
--- a/src/java.xml.ws/share/classes/javax/xml/ws/RespectBinding.java
+++ b/src/java.xml.ws/share/classes/javax/xml/ws/RespectBinding.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -63,6 +63,8 @@
 public @interface RespectBinding {
     /**
      * Specifies if this feature is enabled or disabled.
+     *
+     * @return {@code true} if this feature is enabled, {@code false} otherwise
      */
     boolean enabled() default true;
 }
diff --git a/src/java.xml.ws/share/classes/javax/xml/ws/Response.java b/src/java.xml.ws/share/classes/javax/xml/ws/Response.java
index 2b91ad5..294b555 100644
--- a/src/java.xml.ws/share/classes/javax/xml/ws/Response.java
+++ b/src/java.xml.ws/share/classes/javax/xml/ws/Response.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -36,9 +36,10 @@
  *  to check the status of the request. The {@code get(...)} methods may
  *  throw the standard
  *  set of exceptions and their cause may be a {@code RemoteException} or a
- *  {@link WebServiceException} that represents the error that occured during the
+ *  {@link WebServiceException} that represents the error that occurred during the
  *  asynchronous method invocation.</p>
  *
+ * @param <T> The type of the response
  *  @since 1.6, JAX-WS 2.0
 **/
 public interface Response<T> extends Future<T> {
diff --git a/src/java.xml.ws/share/classes/javax/xml/ws/ResponseWrapper.java b/src/java.xml.ws/share/classes/javax/xml/ws/ResponseWrapper.java
index 77e7fc2..9c139cc 100644
--- a/src/java.xml.ws/share/classes/javax/xml/ws/ResponseWrapper.java
+++ b/src/java.xml.ws/share/classes/javax/xml/ws/ResponseWrapper.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -49,22 +49,26 @@
 
     /**
      * Element's local name.
+     * @return local name
      */
     public String localName() default "";
 
     /**
      * Element's namespace name.
+     * @return target namespace name
      */
     public String targetNamespace() default "";
 
     /**
      * Response wrapper bean name.
+     * @return bean name
      */
     public String className() default "";
 
     /**
      * wsdl:part name for the wrapper part
      *
+     * @return wsdl:part name
      * @since 1.7, JAX-WS 2.2
      */
     public String partName() default "";
diff --git a/src/java.xml.ws/share/classes/javax/xml/ws/Service.java b/src/java.xml.ws/share/classes/javax/xml/ws/Service.java
index 7ce1186..1c12674 100644
--- a/src/java.xml.ws/share/classes/javax/xml/ws/Service.java
+++ b/src/java.xml.ws/share/classes/javax/xml/ws/Service.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -71,14 +71,48 @@
      * access to entire protocol message, {@code PAYLOAD} to protocol message
      * payload only.
      **/
-    public enum Mode { MESSAGE, PAYLOAD }
+    public enum Mode {
 
+        /**
+         * Message mode.
+         */
+        MESSAGE,
+
+        /**
+         * Payload mode.
+         */
+        PAYLOAD }
+
+    /**
+     * Creates a {@code Service}.
+     *
+     * The specified WSDL document location and service qualified name MUST
+     * uniquely identify a {@code wsdl:service} element.
+     *
+     * @param wsdlDocumentLocation {@code URL} for the WSDL document location
+     *                             for the service
+     * @param serviceName {@code QName} for the service
+     */
     protected Service(java.net.URL wsdlDocumentLocation, QName serviceName) {
         delegate = Provider.provider().createServiceDelegate(wsdlDocumentLocation,
                 serviceName,
                 this.getClass());
     }
 
+    /**
+     * Creates a {@code Service}. The created instance is
+     * configured with the web service features.
+     *
+     * The specified WSDL document location and service qualified name MUST
+     * uniquely identify a {@code wsdl:service} element.
+     *
+     * @param wsdlDocumentLocation {@code URL} for the WSDL document location
+     *                             for the service
+     * @param serviceName {@code QName} for the service
+     * @param features Web Service features that must be configured on
+     *        the service. If the provider doesn't understand a feature,
+     *        it must throw a WebServiceException.
+     */
     protected Service(java.net.URL wsdlDocumentLocation, QName serviceName, WebServiceFeature ... features) {
         delegate = Provider.provider().createServiceDelegate(wsdlDocumentLocation,
                 serviceName,
@@ -93,6 +127,7 @@
      * specifies the service endpoint interface that is supported by
      * the created dynamic proxy instance.
      *
+     * @param <T> Service endpoint interface.
      * @param portName  Qualified name of the service endpoint in
      *                  the WSDL service description.
      * @param serviceEndpointInterface Service endpoint interface
@@ -126,6 +161,7 @@
      * specifies the service endpoint interface that is supported by
      * the created dynamic proxy instance.
      *
+     * @param <T> Service endpoint interface.
      * @param portName  Qualified name of the service endpoint in
      *                  the WSDL service description.
      * @param serviceEndpointInterface Service endpoint interface
@@ -170,6 +206,7 @@
      * binding (and a port) and configuring the proxy accordingly.
      * The returned proxy should not be reconfigured by the client.
      *
+     * @param <T> Service endpoint interface.
      * @param serviceEndpointInterface Service endpoint interface.
      * @return Object instance that supports the
      *                  specified service endpoint interface.
@@ -198,6 +235,7 @@
      * binding (and a port) and configuring the proxy accordingly.
      * The returned proxy should not be reconfigured by the client.
      *
+     * @param <T> Service endpoint interface.
      * @param serviceEndpointInterface Service endpoint interface.
      * @param features  A list of WebServiceFeatures to configure on the
      *                proxy.  Supported features not in the {@code features
@@ -267,6 +305,7 @@
      * {@code serviceEndpointInterface} and the WSDL
      * associated with this {@code Service} instance.
      *
+     * @param <T> Service endpoint interface.
      * @param endpointReference  The {@code EndpointReference}
      * for the target service endpoint that will be invoked by the
      * returned proxy.
@@ -328,6 +367,7 @@
      * Creates a {@code Dispatch} instance for use with objects of
      * the client's choosing.
      *
+     * @param <T> The type of the message or payload
      * @param portName  Qualified name for the target service endpoint
      * @param type The class of object used for messages or message
      * payloads. Implementations are required to support
@@ -357,6 +397,7 @@
      * Creates a {@code Dispatch} instance for use with objects of
      * the client's choosing.
      *
+     * @param <T> The type of the message or payload
      * @param portName  Qualified name for the target service endpoint
      * @param type The class of object used for messages or message
      * payloads. Implementations are required to support
@@ -419,6 +460,7 @@
      * where the {@code portName} is retrieved from the
      * WSDL or {@code EndpointReference} metadata.
      *
+     * @param <T> The type of the message or payload
      * @param endpointReference  The {@code EndpointReference}
      * for the target service endpoint that will be invoked by the
      * returned {@code Dispatch} object.
@@ -698,6 +740,7 @@
      * @param wsdlDocumentLocation {@code URL} for the WSDL document location
      *                             for the service
      * @param serviceName {@code QName} for the service
+     * @return Service instance
      * @throws WebServiceException If any error in creation of the
      *                    specified service.
      **/
@@ -720,6 +763,7 @@
      * @param features Web Service features that must be configured on
      *        the service. If the provider doesn't understand a feature,
      *        it must throw a WebServiceException.
+     * @return Service instance configured with requested web service features
      * @throws WebServiceException If any error in creation of the
      *                    specified service.
      * @since 1.7, JAX-WS 2.2
@@ -734,6 +778,7 @@
      * Creates a {@code Service} instance.
      *
      * @param serviceName {@code QName} for the service
+     * @return Service instance
      * @throws WebServiceException If any error in creation of the
      *                    specified service
      */
@@ -749,6 +794,7 @@
      * @param features Web Service features that must be configured on
      *        the service. If the provider doesn't understand a feature,
      *        it must throw a WebServiceException.
+     * @return Service instance configured with requested web service features
      * @throws WebServiceException If any error in creation of the
      *                    specified service
      *
diff --git a/src/java.xml.ws/share/classes/javax/xml/ws/ServiceMode.java b/src/java.xml.ws/share/classes/javax/xml/ws/ServiceMode.java
index 5d0cb13..de20e44 100644
--- a/src/java.xml.ws/share/classes/javax/xml/ws/ServiceMode.java
+++ b/src/java.xml.ws/share/classes/javax/xml/ws/ServiceMode.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -48,6 +48,8 @@
    * wishes to work with protocol message payloads only. {@code MESSAGE} indicates
    * that the {@code Provider} implementation wishes to work with entire protocol
    * messages.
-  **/
+   *
+   * @return Service mode.
+   **/
   public Service.Mode value() default Service.Mode.PAYLOAD;
 }
diff --git a/src/java.xml.ws/share/classes/javax/xml/ws/WebEndpoint.java b/src/java.xml.ws/share/classes/javax/xml/ws/WebEndpoint.java
index f51d570..9978f0b 100644
--- a/src/java.xml.ws/share/classes/javax/xml/ws/WebEndpoint.java
+++ b/src/java.xml.ws/share/classes/javax/xml/ws/WebEndpoint.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -51,6 +51,8 @@
 public @interface WebEndpoint {
   /**
    *  The local name of the endpoint.
+   *
+   * @return ocal name of the endpoint
   **/
   String name() default "";
 }
diff --git a/src/java.xml.ws/share/classes/javax/xml/ws/WebServiceClient.java b/src/java.xml.ws/share/classes/javax/xml/ws/WebServiceClient.java
index a37e4e8..1bbd5d5 100644
--- a/src/java.xml.ws/share/classes/javax/xml/ws/WebServiceClient.java
+++ b/src/java.xml.ws/share/classes/javax/xml/ws/WebServiceClient.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -46,18 +46,24 @@
 @Retention(RetentionPolicy.RUNTIME)
 @Documented
 public @interface WebServiceClient {
-  /**
-   *  The local name of the Web service.
-  **/
-  String name() default "";
+    /**
+     * The local name of the Web service.
+     *
+     * @return local name
+     */
+    String name() default "";
 
-  /**
-   *  The namespace for the Web service.
-  **/
-  String targetNamespace() default "";
+    /**
+     * The namespace for the Web service.
+     *
+     * @return target namespace name
+     */
+    String targetNamespace() default "";
 
-  /**
-   *  The location of the WSDL document for the service (a URL).
-  **/
-  String wsdlLocation() default "";
+    /**
+     * The location of the WSDL document for the service (a URL).
+     *
+     * @return location of the WSDL document (a URL)
+     */
+    String wsdlLocation() default "";
 }
diff --git a/src/java.xml.ws/share/classes/javax/xml/ws/WebServiceContext.java b/src/java.xml.ws/share/classes/javax/xml/ws/WebServiceContext.java
index 0af6372..77c4775 100644
--- a/src/java.xml.ws/share/classes/javax/xml/ws/WebServiceContext.java
+++ b/src/java.xml.ws/share/classes/javax/xml/ws/WebServiceContext.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -128,6 +128,7 @@
      * Returns the {@code EndpointReference} associated with
      * this endpoint.
      *
+     * @param <T> The type of {@code EndpointReference}.
      * @param clazz The type of {@code EndpointReference} that
      * MUST be returned.
      * @param referenceParameters Reference parameters to be associated with the
diff --git a/src/java.xml.ws/share/classes/javax/xml/ws/WebServiceFeature.java b/src/java.xml.ws/share/classes/javax/xml/ws/WebServiceFeature.java
index 8f4c687..745f03f 100644
--- a/src/java.xml.ws/share/classes/javax/xml/ws/WebServiceFeature.java
+++ b/src/java.xml.ws/share/classes/javax/xml/ws/WebServiceFeature.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -66,9 +66,10 @@
     */
    protected boolean enabled = false;
 
-
-   protected WebServiceFeature(){}
-
+    /**
+     * Default constructor.
+     */
+    protected WebServiceFeature() {}
 
    /**
     * Returns {@code true} if this feature is enabled.
diff --git a/src/java.xml.ws/share/classes/javax/xml/ws/WebServiceProvider.java b/src/java.xml.ws/share/classes/javax/xml/ws/WebServiceProvider.java
index c2d48d2..67e39cd 100644
--- a/src/java.xml.ws/share/classes/javax/xml/ws/WebServiceProvider.java
+++ b/src/java.xml.ws/share/classes/javax/xml/ws/WebServiceProvider.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -42,21 +42,29 @@
 public @interface WebServiceProvider {
     /**
      * Location of the WSDL description for the service.
+     *
+     * @return location of the WSDL description
      */
     String wsdlLocation() default "";
 
     /**
      * Service name.
+     *
+     * @return service name
      */
     String serviceName() default "";
 
     /**
      * Target namespace for the service
+     *
+     * @return target namespace
      */
     String targetNamespace() default "";
 
     /**
      * Port name.
+     *
+     * @return port name
      */
     String portName() default "";
 }
diff --git a/src/java.xml.ws/share/classes/javax/xml/ws/WebServiceRef.java b/src/java.xml.ws/share/classes/javax/xml/ws/WebServiceRef.java
index 477133f..3111ce4 100644
--- a/src/java.xml.ws/share/classes/javax/xml/ws/WebServiceRef.java
+++ b/src/java.xml.ws/share/classes/javax/xml/ws/WebServiceRef.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -30,8 +30,10 @@
 import java.lang.annotation.Documented;
 import java.lang.annotation.Target;
 import java.lang.annotation.ElementType;
+import java.lang.annotation.Repeatable;
 import java.lang.annotation.Retention;
 import java.lang.annotation.RetentionPolicy;
+import javax.annotation.Resource;
 
 /**
  * The {@code WebServiceRef} annotation is used to
@@ -72,16 +74,17 @@
  * annotation annotated with the {@code WebServiceFeatureAnnotation}
  * that is specified with {@code WebServiceRef}, an ERROR MUST be given.
  *
- * @see javax.annotation.Resource
+ * @see Resource
  * @see WebServiceFeatureAnnotation
  *
  * @since 1.6, JAX-WS 2.0
  *
-**/
+ **/
 
 @Target({ElementType.TYPE, ElementType.METHOD, ElementType.FIELD})
 @Retention(RetentionPolicy.RUNTIME)
 @Documented
+@Repeatable(WebServiceRefs.class)
 public @interface WebServiceRef {
     /**
      * The JNDI name of the resource.  For field annotations,
@@ -92,6 +95,8 @@
      *
      * The JNDI name can be absolute(with any logical namespace) or relative
      * to JNDI {@code java:comp/env} namespace.
+     *
+     * @return absolute or relative JNDI name
      */
     String name() default "";
 
@@ -101,6 +106,8 @@
      * the default is the type of the JavaBeans property.
      * For class annotations, there is no default and this MUST be
      * specified.
+     *
+     * @return type of the resource
      */
     Class<?> type() default Object.class;
 
@@ -119,6 +126,8 @@
      * form or type of mapped name, nor the ability to use mapped names.
      * The mapped name is product-dependent and often installation-dependent.
      * No use of a mapped name is portable.
+     *
+     * @return product specific resource name
      */
     String mappedName() default "";
 
@@ -126,16 +135,20 @@
      * The service class, always a type extending
      * {@code javax.xml.ws.Service}. This element MUST be specified
      * whenever the type of the reference is a service endpoint interface.
+     *
+     * @return the service class extending {@code javax.xml.ws.Service}
      */
-    // 2.1 has Class value() default Object.class;
-    // Fixing this raw Class type correctly in 2.2 API. This shouldn't cause
-    // any compatibility issues for applications.
+     // 2.1 has Class value() default Object.class;
+     // Fixing this raw Class type correctly in 2.2 API. This shouldn't cause
+     // any compatibility issues for applications.
     Class<? extends Service> value() default Service.class;
 
     /**
      * A URL pointing to the WSDL document for the web service.
      * If not specified, the WSDL location specified by annotations
      * on the resource type is used instead.
+     *
+     * @return a URL pointing to the WSDL document
      */
     String wsdlLocation() default "";
 
@@ -143,6 +156,7 @@
      * A portable JNDI lookup name that resolves to the target
      * web service reference.
      *
+     * @return portable JNDI lookup name
      * @since 1.7, JAX-WS 2.2
      */
     String lookup() default "";
diff --git a/src/java.xml.ws/share/classes/javax/xml/ws/WebServiceRefs.java b/src/java.xml.ws/share/classes/javax/xml/ws/WebServiceRefs.java
index fd29f4f..0cba645 100644
--- a/src/java.xml.ws/share/classes/javax/xml/ws/WebServiceRefs.java
+++ b/src/java.xml.ws/share/classes/javax/xml/ws/WebServiceRefs.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -78,6 +78,8 @@
 public @interface WebServiceRefs {
    /**
     * Array used for multiple web service reference declarations.
+    *
+    * @return multiple web service reference declarations
     */
    WebServiceRef[] value();
 }
diff --git a/src/java.xml.ws/share/classes/javax/xml/ws/handler/Handler.java b/src/java.xml.ws/share/classes/javax/xml/ws/handler/Handler.java
index 045413e..25a7dbe 100644
--- a/src/java.xml.ws/share/classes/javax/xml/ws/handler/Handler.java
+++ b/src/java.xml.ws/share/classes/javax/xml/ws/handler/Handler.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -26,11 +26,11 @@
 package javax.xml.ws.handler;
 
 import javax.xml.ws.ProtocolException;
-import javax.xml.ws.handler.MessageContext;
 
 /** The {@code Handler} interface
  *  is the base interface for JAX-WS handlers.
  *
+ * @param <C> message context
  *  @since 1.6, JAX-WS 2.0
 **/
 public interface Handler<C extends MessageContext> {
diff --git a/src/java.xml.ws/share/classes/javax/xml/ws/handler/LogicalHandler.java b/src/java.xml.ws/share/classes/javax/xml/ws/handler/LogicalHandler.java
index 8c713a8..c13712a 100644
--- a/src/java.xml.ws/share/classes/javax/xml/ws/handler/LogicalHandler.java
+++ b/src/java.xml.ws/share/classes/javax/xml/ws/handler/LogicalHandler.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -28,6 +28,7 @@
 /** The {@code LogicalHandler} extends
  *  Handler to provide typesafety for the message context parameter.
  *
+ * @param <C> message context
  *  @since 1.6, JAX-WS 2.0
 **/
 public interface LogicalHandler<C extends LogicalMessageContext> extends Handler<C> {
diff --git a/src/java.xml.ws/share/classes/javax/xml/ws/handler/MessageContext.java b/src/java.xml.ws/share/classes/javax/xml/ws/handler/MessageContext.java
index aab8550..76c5e5e 100644
--- a/src/java.xml.ws/share/classes/javax/xml/ws/handler/MessageContext.java
+++ b/src/java.xml.ws/share/classes/javax/xml/ws/handler/MessageContext.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -180,7 +180,17 @@
      * {@code HANDLER}
      * are only normally visible to handlers.
      */
-    public enum Scope {APPLICATION, HANDLER};
+    public enum Scope {
+
+        /**
+         * Application visibility.
+         */
+        APPLICATION,
+
+        /**
+         * Handler visibility.
+         */
+        HANDLER};
 
     /**
      * Sets the scope of a property.
diff --git a/src/java.xml.ws/share/classes/javax/xml/ws/handler/package-info.java b/src/java.xml.ws/share/classes/javax/xml/ws/handler/package-info.java
new file mode 100644
index 0000000..08c9db7
--- /dev/null
+++ b/src/java.xml.ws/share/classes/javax/xml/ws/handler/package-info.java
@@ -0,0 +1,29 @@
+/*
+ * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/**
+ * This package defines APIs for message handlers.
+ */
+package javax.xml.ws.handler;
diff --git a/src/java.xml.ws/share/classes/javax/xml/ws/handler/package.html b/src/java.xml.ws/share/classes/javax/xml/ws/handler/package.html
deleted file mode 100644
index 483b45e..0000000
--- a/src/java.xml.ws/share/classes/javax/xml/ws/handler/package.html
+++ /dev/null
@@ -1,30 +0,0 @@
-<!--
- Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved.
- DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-
- This code is free software; you can redistribute it and/or modify it
- under the terms of the GNU General Public License version 2 only, as
- published by the Free Software Foundation.  Oracle designates this
- particular file as subject to the "Classpath" exception as provided
- by Oracle in the LICENSE file that accompanied this code.
-
- This code is distributed in the hope that it will be useful, but WITHOUT
- ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- version 2 for more details (a copy is included in the LICENSE file that
- accompanied this code).
-
- You should have received a copy of the GNU General Public License version
- 2 along with this work; if not, write to the Free Software Foundation,
- Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
-
- Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- or visit www.oracle.com if you need additional information or have any
- questions.
--->
-
-<html>
-<body>
-This package defines APIs for message handlers.
-</body>
-</html>
diff --git a/src/java.xml.ws/share/classes/javax/xml/ws/handler/soap/SOAPHandler.java b/src/java.xml.ws/share/classes/javax/xml/ws/handler/soap/SOAPHandler.java
index 742c533..d76ff9b 100644
--- a/src/java.xml.ws/share/classes/javax/xml/ws/handler/soap/SOAPHandler.java
+++ b/src/java.xml.ws/share/classes/javax/xml/ws/handler/soap/SOAPHandler.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -33,6 +33,7 @@
  *  to provide typesafety for the message context parameter and add a method
  *  to obtain access to the headers that may be processed by the handler.
  *
+ * @param <T> message context
  *  @since 1.6, JAX-WS 2.0
 **/
 public interface SOAPHandler<T extends SOAPMessageContext>
diff --git a/src/java.xml.ws/share/classes/javax/xml/ws/handler/soap/package-info.java b/src/java.xml.ws/share/classes/javax/xml/ws/handler/soap/package-info.java
new file mode 100644
index 0000000..ed79406
--- /dev/null
+++ b/src/java.xml.ws/share/classes/javax/xml/ws/handler/soap/package-info.java
@@ -0,0 +1,29 @@
+/*
+ * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/**
+ * This package defines APIs for SOAP message handlers.
+ */
+package javax.xml.ws.handler.soap;
diff --git a/src/java.xml.ws/share/classes/javax/xml/ws/handler/soap/package.html b/src/java.xml.ws/share/classes/javax/xml/ws/handler/soap/package.html
deleted file mode 100644
index 862b416..0000000
--- a/src/java.xml.ws/share/classes/javax/xml/ws/handler/soap/package.html
+++ /dev/null
@@ -1,30 +0,0 @@
-<!--
- Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved.
- DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-
- This code is free software; you can redistribute it and/or modify it
- under the terms of the GNU General Public License version 2 only, as
- published by the Free Software Foundation.  Oracle designates this
- particular file as subject to the "Classpath" exception as provided
- by Oracle in the LICENSE file that accompanied this code.
-
- This code is distributed in the hope that it will be useful, but WITHOUT
- ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- version 2 for more details (a copy is included in the LICENSE file that
- accompanied this code).
-
- You should have received a copy of the GNU General Public License version
- 2 along with this work; if not, write to the Free Software Foundation,
- Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
-
- Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- or visit www.oracle.com if you need additional information or have any
- questions.
--->
-
-<html>
-<body>
-This package defines APIs for SOAP message handlers.
-</body>
-</html>
diff --git a/src/java.xml.ws/share/classes/javax/xml/ws/http/package-info.java b/src/java.xml.ws/share/classes/javax/xml/ws/http/package-info.java
new file mode 100644
index 0000000..8c0e4b0
--- /dev/null
+++ b/src/java.xml.ws/share/classes/javax/xml/ws/http/package-info.java
@@ -0,0 +1,29 @@
+/*
+ * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/**
+ * This package defines APIs specific to the HTTP binding.
+ */
+package javax.xml.ws.http;
diff --git a/src/java.xml.ws/share/classes/javax/xml/ws/http/package.html b/src/java.xml.ws/share/classes/javax/xml/ws/http/package.html
deleted file mode 100644
index bc9020d..0000000
--- a/src/java.xml.ws/share/classes/javax/xml/ws/http/package.html
+++ /dev/null
@@ -1,30 +0,0 @@
-<!--
- Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved.
- DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-
- This code is free software; you can redistribute it and/or modify it
- under the terms of the GNU General Public License version 2 only, as
- published by the Free Software Foundation.  Oracle designates this
- particular file as subject to the "Classpath" exception as provided
- by Oracle in the LICENSE file that accompanied this code.
-
- This code is distributed in the hope that it will be useful, but WITHOUT
- ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- version 2 for more details (a copy is included in the LICENSE file that
- accompanied this code).
-
- You should have received a copy of the GNU General Public License version
- 2 along with this work; if not, write to the Free Software Foundation,
- Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
-
- Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- or visit www.oracle.com if you need additional information or have any
- questions.
--->
-
-<html>
-<body>
-This package defines APIs specific to the HTTP binding.
-</body>
-</html>
diff --git a/src/java.xml.ws/share/classes/javax/xml/ws/soap/Addressing.java b/src/java.xml.ws/share/classes/javax/xml/ws/soap/Addressing.java
index fd26ba1..0c79833 100644
--- a/src/java.xml.ws/share/classes/javax/xml/ws/soap/Addressing.java
+++ b/src/java.xml.ws/share/classes/javax/xml/ws/soap/Addressing.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -31,9 +31,7 @@
 import java.lang.annotation.Retention;
 import java.lang.annotation.RetentionPolicy;
 
-import javax.xml.ws.BindingProvider;
 import javax.xml.ws.WebServiceRef;
-import javax.xml.ws.WebServiceRefs;
 import javax.xml.ws.WebServiceProvider;
 import javax.xml.ws.soap.AddressingFeature.Responses;
 import javax.xml.ws.spi.WebServiceFeatureAnnotation;
@@ -44,7 +42,7 @@
  * with any other binding is undefined.
  * <p>
  * This annotation MUST only be used in conjunction with the
- * {@link javax.jws.WebService}, {@link WebServiceProvider},
+ * {@code javax.jws.WebService}, {@link WebServiceProvider},
  *  and {@link WebServiceRef} annotations.
  * When used with a {@code javax.jws.WebService} annotation, this
  * annotation MUST only be used on the service endpoint implementation
@@ -70,6 +68,8 @@
      * Corresponding
      * <a href="http://www.w3.org/TR/ws-addr-metadata/#wspolicyaddressing">
      * 3.1.1 Addressing Assertion</a> must be generated in the generated WSDL.
+     *
+     * @return {@code true} if endpoint supports WS-Addressing, {@code false} otherwise
      */
     boolean enabled() default true;
 
@@ -80,6 +80,8 @@
      * be present on incoming messages. A corresponding
      * <a href="http://www.w3.org/TR/ws-addr-metadata/#wspolicyaddressing">
      * 3.1.1 Addressing Assertion</a> must be generated in the WSDL.
+     *
+     * @return {@code true} if endpoint requires WS-Addressing, {@code false} otherwise
      */
     boolean required() default false;
 
@@ -106,6 +108,7 @@
      * <a href="http://www.w3.org/TR/ws-addr-metadata/#wspolicynonanonresponses">
      * 3.1.3 NonAnonymousResponses Assertion</a> in the generated WSDL.
      *
+     * @return supported response types
      * @since 1.7, JAX-WS 2.2
      */
     Responses responses() default Responses.ALL;
diff --git a/src/java.xml.ws/share/classes/javax/xml/ws/soap/MTOM.java b/src/java.xml.ws/share/classes/javax/xml/ws/soap/MTOM.java
index cd59f0f..b3d2f0d 100644
--- a/src/java.xml.ws/share/classes/javax/xml/ws/soap/MTOM.java
+++ b/src/java.xml.ws/share/classes/javax/xml/ws/soap/MTOM.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -63,6 +63,8 @@
 public @interface MTOM {
     /**
      * Specifies if this feature is enabled or disabled.
+     *
+     * @return {@code true} if MTOM is supported, {@code false} otherwise
      */
     boolean enabled() default true;
 
@@ -70,6 +72,8 @@
      * Property for MTOM threshold value. When MTOM is enabled, binary data above this
      * size in bytes will be XOP encoded or sent as attachment. The value of this property
      * MUST always be {@literal >=} 0. Default value is 0.
+     *
+     * @return MTOM threshold in bytes
      */
     int threshold() default 0;
 }
diff --git a/src/java.xml.ws/share/classes/javax/xml/ws/soap/package-info.java b/src/java.xml.ws/share/classes/javax/xml/ws/soap/package-info.java
new file mode 100644
index 0000000..fc7f385
--- /dev/null
+++ b/src/java.xml.ws/share/classes/javax/xml/ws/soap/package-info.java
@@ -0,0 +1,29 @@
+/*
+ * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/**
+ * This package defines APIs specific to the SOAP binding.
+ */
+package javax.xml.ws.soap;
diff --git a/src/java.xml.ws/share/classes/javax/xml/ws/soap/package.html b/src/java.xml.ws/share/classes/javax/xml/ws/soap/package.html
deleted file mode 100644
index abc85e7..0000000
--- a/src/java.xml.ws/share/classes/javax/xml/ws/soap/package.html
+++ /dev/null
@@ -1,30 +0,0 @@
-<!--
- Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved.
- DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-
- This code is free software; you can redistribute it and/or modify it
- under the terms of the GNU General Public License version 2 only, as
- published by the Free Software Foundation.  Oracle designates this
- particular file as subject to the "Classpath" exception as provided
- by Oracle in the LICENSE file that accompanied this code.
-
- This code is distributed in the hope that it will be useful, but WITHOUT
- ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- version 2 for more details (a copy is included in the LICENSE file that
- accompanied this code).
-
- You should have received a copy of the GNU General Public License version
- 2 along with this work; if not, write to the Free Software Foundation,
- Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
-
- Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- or visit www.oracle.com if you need additional information or have any
- questions.
--->
-
-<html>
-<body>
-This package defines APIs specific to the SOAP binding.
-</body>
-</html>
diff --git a/src/java.xml.ws/share/classes/javax/xml/ws/spi/Provider.java b/src/java.xml.ws/share/classes/javax/xml/ws/spi/Provider.java
index 121409f..de8a01f 100644
--- a/src/java.xml.ws/share/classes/javax/xml/ws/spi/Provider.java
+++ b/src/java.xml.ws/share/classes/javax/xml/ws/spi/Provider.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,11 +25,8 @@
 
 package javax.xml.ws.spi;
 
-import java.net.URL;
 import java.util.List;
-import java.util.Iterator;
 import java.util.Map;
-import java.util.ServiceLoader;
 import javax.xml.namespace.QName;
 import javax.xml.ws.*;
 import javax.xml.ws.wsaddressing.W3CEndpointReference;
@@ -77,6 +74,7 @@
      *  <li> Finally, a platform default implementation is used.
      * </ul>
      *
+     * @return provider object
      */
     public static Provider provider() {
         try {
@@ -123,7 +121,6 @@
         throw new UnsupportedOperationException("JAX-WS 2.2 implementation must override this default behaviour.");
     }
 
-
     /**
      *
      * Creates an endpoint object with the provided binding and implementation
@@ -139,7 +136,6 @@
     public abstract Endpoint createEndpoint(String bindingId,
             Object implementor);
 
-
     /**
      * Creates and publishes an endpoint object with the specified
      * address and implementation object.
@@ -199,6 +195,7 @@
      * {@code serviceName} metadata.
      *
      *
+     * @param <T> Service endpoint interface
      * @param endpointReference the EndpointReference that will
      * be invoked by the returned proxy.
      * @param serviceEndpointInterface Service endpoint interface
diff --git a/src/java.xml.ws/share/classes/javax/xml/ws/spi/ServiceDelegate.java b/src/java.xml.ws/share/classes/javax/xml/ws/spi/ServiceDelegate.java
index 49954ba..d3127f3 100644
--- a/src/java.xml.ws/share/classes/javax/xml/ws/spi/ServiceDelegate.java
+++ b/src/java.xml.ws/share/classes/javax/xml/ws/spi/ServiceDelegate.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -51,6 +51,9 @@
  */
 public abstract class ServiceDelegate {
 
+    /**
+     * Default constructor.
+     */
     protected ServiceDelegate() {
     }
 
@@ -61,6 +64,7 @@
      * specifies the service endpoint interface that is supported by
      * the created dynamic proxy instance.
      *
+     * @param <T> Service endpoint interface
      * @param portName  Qualified name of the service endpoint in
      *                  the WSDL service description
      * @param serviceEndpointInterface Service endpoint interface
@@ -92,6 +96,7 @@
      * specifies the service endpoint interface that is supported by
      * the created dynamic proxy instance.
      *
+     * @param <T> Service endpoint interface
      * @param portName  Qualified name of the service endpoint in
      *                  the WSDL service description
      * @param serviceEndpointInterface Service endpoint interface
@@ -164,6 +169,7 @@
      * {@code serviceEndpointInterface} and the WSDL
      * associated with this {@code Service} instance.
      *
+     * @param <T> Service endpoint interface.
      * @param endpointReference  The {@code EndpointReference}
      * for the target service endpoint that will be invoked by the
      * returned proxy.
@@ -209,6 +215,7 @@
      * binding (and a port) and configuring the proxy accordingly.
      * The returned proxy should not be reconfigured by the client.
      *
+     * @param <T> Service endpoint interface
      * @param serviceEndpointInterface Service endpoint interface
      * @return Object instance that supports the
      *                  specified service endpoint interface
@@ -235,6 +242,7 @@
      * binding (and a port) and configuring the proxy accordingly.
      * The returned proxy should not be reconfigured by the client.
      *
+     * @param <T> Service endpoint interface
      * @param serviceEndpointInterface Service endpoint interface
      * @param features  An array of {@code WebServiceFeatures} to configure on the
      *                proxy.  Supported features not in the {@code features
@@ -286,6 +294,8 @@
      * Creates a {@code Dispatch} instance for use with objects of
      * the user's choosing.
      *
+     * @param <T> type used for messages or message payloads. Implementations are required to
+     * support {@code javax.xml.transform.Source} and {@code javax.xml.soap.SOAPMessage}.
      * @param portName  Qualified name for the target service endpoint
      * @param type The class of object used for messages or message
      * payloads. Implementations are required to support
@@ -310,6 +320,8 @@
      * Creates a {@code Dispatch} instance for use with objects of
      * the user's choosing.
      *
+     * @param <T> type used for messages or message payloads. Implementations are required to
+     * support {@code javax.xml.transform.Source} and {@code javax.xml.soap.SOAPMessage}.
      * @param portName  Qualified name for the target service endpoint
      * @param type The class of object used for messages or message
      * payloads. Implementations are required to support
@@ -369,6 +381,9 @@
      * where the {@code portName} is retrieved from the
      * WSDL or {@code EndpointReference} metadata.
      *
+     * @param <T> type of object used to messages or message
+     * payloads. Implementations are required to support
+     * {@code javax.xml.transform.Source} and {@code javax.xml.soap.SOAPMessage}.
      * @param endpointReference  The {@code EndpointReference}
      * for the target service endpoint that will be invoked by the
      * returned {@code Dispatch} object.
diff --git a/src/java.xml.ws/share/classes/javax/xml/ws/spi/WebServiceFeatureAnnotation.java b/src/java.xml.ws/share/classes/javax/xml/ws/spi/WebServiceFeatureAnnotation.java
index 7442367..a60784e 100644
--- a/src/java.xml.ws/share/classes/javax/xml/ws/spi/WebServiceFeatureAnnotation.java
+++ b/src/java.xml.ws/share/classes/javax/xml/ws/spi/WebServiceFeatureAnnotation.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -32,7 +32,6 @@
 import java.lang.annotation.RetentionPolicy;
 import javax.xml.ws.WebServiceFeature;
 import javax.xml.ws.WebServiceRef;
-import javax.xml.ws.WebServiceRefs;
 import javax.xml.ws.RespectBinding;
 import javax.xml.ws.soap.Addressing;
 import javax.xml.ws.soap.MTOM;
@@ -74,12 +73,14 @@
      * Unique identifier for the WebServiceFeature.  This
      * identifier MUST be unique across all implementations
      * of JAX-WS.
+     * @return unique identifier for the WebServiceFeature
      */
     String id();
 
     /**
      * The {@code WebServiceFeature} bean that is associated
      * with the {@code WebServiceFeature} annotation
+     * @return the {@code WebServiceFeature} bean
      */
     Class<? extends WebServiceFeature> bean();
 }
diff --git a/src/java.xml.ws/share/classes/javax/xml/ws/spi/http/HttpContext.java b/src/java.xml.ws/share/classes/javax/xml/ws/spi/http/HttpContext.java
index f624584..211e944 100644
--- a/src/java.xml.ws/share/classes/javax/xml/ws/spi/http/HttpContext.java
+++ b/src/java.xml.ws/share/classes/javax/xml/ws/spi/http/HttpContext.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2009, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2009, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -41,6 +41,9 @@
  */
 public abstract class HttpContext {
 
+    /**
+     * The handler to set for this context.
+     */
     protected HttpHandler handler;
 
     /**
diff --git a/src/java.xml.ws/share/classes/javax/xml/ws/spi/package-info.java b/src/java.xml.ws/share/classes/javax/xml/ws/spi/package-info.java
new file mode 100644
index 0000000..ec642e7
--- /dev/null
+++ b/src/java.xml.ws/share/classes/javax/xml/ws/spi/package-info.java
@@ -0,0 +1,29 @@
+/*
+ * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/**
+ * This package defines SPIs for JAX-WS.
+ */
+package javax.xml.ws.spi;
diff --git a/src/java.xml.ws/share/classes/javax/xml/ws/spi/package.html b/src/java.xml.ws/share/classes/javax/xml/ws/spi/package.html
deleted file mode 100644
index e269ef9..0000000
--- a/src/java.xml.ws/share/classes/javax/xml/ws/spi/package.html
+++ /dev/null
@@ -1,30 +0,0 @@
-<!--
- Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved.
- DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-
- This code is free software; you can redistribute it and/or modify it
- under the terms of the GNU General Public License version 2 only, as
- published by the Free Software Foundation.  Oracle designates this
- particular file as subject to the "Classpath" exception as provided
- by Oracle in the LICENSE file that accompanied this code.
-
- This code is distributed in the hope that it will be useful, but WITHOUT
- ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- version 2 for more details (a copy is included in the LICENSE file that
- accompanied this code).
-
- You should have received a copy of the GNU General Public License version
- 2 along with this work; if not, write to the Free Software Foundation,
- Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
-
- Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- or visit www.oracle.com if you need additional information or have any
- questions.
--->
-
-<html>
-<body>
-This package defines SPIs for JAX-WS.
-</body>
-</html>
diff --git a/src/java.xml.ws/share/classes/javax/xml/ws/wsaddressing/W3CEndpointReference.java b/src/java.xml.ws/share/classes/javax/xml/ws/wsaddressing/W3CEndpointReference.java
index 0a9a0cf..b363884 100644
--- a/src/java.xml.ws/share/classes/javax/xml/ws/wsaddressing/W3CEndpointReference.java
+++ b/src/java.xml.ws/share/classes/javax/xml/ws/wsaddressing/W3CEndpointReference.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -72,10 +72,18 @@
     private final JAXBContext w3cjc = getW3CJaxbContext();
 
     // should be changed to package private, keeping original modifier to keep backwards compatibility
+
+    /**
+     * Addressing namespace.
+     */
     protected static final String NS = "http://www.w3.org/2005/08/addressing";
 
     // default constructor forbidden ...
     // should be private, keeping original modifier to keep backwards compatibility
+
+    /**
+     * Default constructor.
+     */
     protected W3CEndpointReference() {
     }
 
@@ -110,6 +118,7 @@
     /**
      * {@inheritDoc}
      */
+    @Override
     public void writeTo(Result result){
         try {
             Marshaller marshaller = w3cjc.createMarshaller();
diff --git a/src/java.xml.ws/share/classes/module-info.java b/src/java.xml.ws/share/classes/module-info.java
index a9313c3..fa16a92 100644
--- a/src/java.xml.ws/share/classes/module-info.java
+++ b/src/java.xml.ws/share/classes/module-info.java
@@ -122,9 +122,19 @@
     // com.sun.xml.internal.ws.fault.SOAPFaultBuilder uses JAXBContext.newInstance
     opens com.sun.xml.internal.ws.fault to java.xml.bind;
 
-    // classes passed to JAXBContext.newInstance for deep reflection
+    // com.sun.xml.internal.ws.addressing.WsaTubeHelperImpl uses JAXBContext.newInstance
     opens com.sun.xml.internal.ws.addressing to java.xml.bind;
 
+    // com.sun.xml.internal.ws.addressing.v200408.WsaTubeHelperImpl uses JAXBContext.newInstance
+    opens com.sun.xml.internal.ws.addressing.v200408 to java.xml.bind;
+
+    // com.sun.xml.ws.developer.MemberSubmissionEndpointReference uses JAXBContext.newInstance
+    opens com.sun.xml.internal.ws.developer to java.xml.bind;
+
+    // com.sun.xml.ws.model.ExternalMetadataReader uses JAXBContext.newInstance
+    opens com.oracle.xmlns.internal.webservices.jaxws_databinding to java.xml.bind;
+
+
     uses javax.xml.ws.spi.Provider;
     uses javax.xml.soap.MessageFactory;
     uses javax.xml.soap.SAAJMetaFactory;
diff --git a/src/jdk.xml.bind/share/classes/com/sun/codemodel/internal/JModuleDirective.java b/src/jdk.xml.bind/share/classes/com/sun/codemodel/internal/JModuleDirective.java
index af71cbd..5c22491 100644
--- a/src/jdk.xml.bind/share/classes/com/sun/codemodel/internal/JModuleDirective.java
+++ b/src/jdk.xml.bind/share/classes/com/sun/codemodel/internal/JModuleDirective.java
@@ -94,14 +94,17 @@
 
     /**
      * Returns a hash code for this module directive based on directive type and name.
-     * The hash code for a module directive is computed as <blockquote><pre>
-     * 97 * Integer.hashCode(type_ordinal_value + 1) + name.hashCode()
-     * </pre></blockquote> using {@code int} arithmetic.
+     * The hash code for a module directive is computed as
+     * <blockquote><pre>
+     *     {@code 97 * (type_ordinal_value + 1) + name.hashCode()}
+     * </pre></blockquote>
+     * using {@code int} arithmetic.
+     *
      * @return a hash code value for this object.
      */
     @Override
     public int hashCode() {
-        return 97 * (Integer.valueOf(getType().ordinal() + 1)).hashCode() + name.hashCode();
+        return 97 * (getType().ordinal() + 1) + name.hashCode();
     }
 
     /**
diff --git a/src/jdk.xml.bind/share/classes/com/sun/tools/internal/jxc/MessageBundle.properties b/src/jdk.xml.bind/share/classes/com/sun/tools/internal/jxc/MessageBundle.properties
index 0f2b377..aecb277 100644
--- a/src/jdk.xml.bind/share/classes/com/sun/tools/internal/jxc/MessageBundle.properties
+++ b/src/jdk.xml.bind/share/classes/com/sun/tools/internal/jxc/MessageBundle.properties
@@ -30,10 +30,10 @@
     Non-existent directory: {0}
 
 VERSION = \
-        schemagen 2.3.0-b170215.1712
+        schemagen 2.3.0-b170531.0717
 
 FULLVERSION = \
-        schemagen full version "2.3.0-b170215.1712"
+        schemagen full version "2.3.0-b170531.0717"
 
 USAGE = \
 Usage: schemagen [-options ...] <java files> \n\
diff --git a/src/jdk.xml.bind/share/classes/com/sun/tools/internal/jxc/MessageBundle_de.properties b/src/jdk.xml.bind/share/classes/com/sun/tools/internal/jxc/MessageBundle_de.properties
index be77744..f826e62 100644
--- a/src/jdk.xml.bind/share/classes/com/sun/tools/internal/jxc/MessageBundle_de.properties
+++ b/src/jdk.xml.bind/share/classes/com/sun/tools/internal/jxc/MessageBundle_de.properties
@@ -27,8 +27,8 @@
 
 BASEDIR_DOESNT_EXIST = Nicht vorhandenes Verzeichnis: {0}
 
-VERSION = schemagen 2.3.0-b170215.1712
+VERSION = schemagen 2.3.0-b170531.0717
 
-FULLVERSION = schemagen vollst\u00E4ndige Version "2.3.0-b170215.1712"
+FULLVERSION = schemagen vollst\u00E4ndige Version "2.3.0-b170531.0717"
 
 USAGE = Verwendung: schemagen [-options ...] <java files> \nOptionen: \n\\ \\ \\ \\ -d <path>             : Gibt an, wo die von Prozessor und javac generierten Klassendateien gespeichert werden sollen\n\\ \\ \\ \\ -cp <path>            : Gibt an, wo die vom Benutzer angegebenen Dateien gespeichert sind\n\\ \\ \\ \\ -classpath <path>     : Gibt an, wo die vom Benutzer angegebenen Dateien gespeichert sind\n\\ \\ \\ \\ -encoding <encoding>  : Gibt die Codierung f\u00FCr die Annotationsverarbeitung/den javac-Aufruf an \n\\ \\ \\ \\ -episode <file>       : Generiert Episodendatei f\u00FCr separate Kompilierung\n\\ \\ \\ \\ -version              : Zeigt Versionsinformation an\n\\ \\ \\ \\ -fullversion          : Zeigt vollst\u00E4ndige Versionsinformationen an\n\\ \\ \\ \\ -help                 : Zeigt diese Verwendungsmeldung an
diff --git a/src/jdk.xml.bind/share/classes/com/sun/tools/internal/jxc/MessageBundle_es.properties b/src/jdk.xml.bind/share/classes/com/sun/tools/internal/jxc/MessageBundle_es.properties
index 632f594..063d107 100644
--- a/src/jdk.xml.bind/share/classes/com/sun/tools/internal/jxc/MessageBundle_es.properties
+++ b/src/jdk.xml.bind/share/classes/com/sun/tools/internal/jxc/MessageBundle_es.properties
@@ -27,8 +27,8 @@
 
 BASEDIR_DOESNT_EXIST = Directorio no existente: {0}
 
-VERSION = schemagen 2.3.0-b170215.1712
+VERSION = schemagen 2.3.0-b170531.0717
 
-FULLVERSION = versi\u00F3n completa de schemagen "2.3.0-b170215.1712"
+FULLVERSION = versi\u00F3n completa de schemagen "2.3.0-b170531.0717"
 
 USAGE = Sintaxis: schemagen [-options ...] <archivos java> \nOpciones: \n\\ \\ \\ \\ -d <ruta de acceso>             : especifique d\u00F3nde se colocan los archivos de clase generados por javac y el procesador\n\\ \\ \\ \\ -cp <ruta de acceso>            : especifique d\u00F3nde se encuentran los archivos especificados por el usuario\n\\ \\ \\ \\ -encoding <codificaci\u00F3n>  : especifique la codificaci\u00F3n que se va a utilizar para el procesamiento de anotaciones/llamada de javac\n\\ \\ \\ \\ -episode <archivo>       : genera un archivo de episodio para una compilaci\u00F3n diferente\n\\ \\ \\ \\ -version              : muestra la informaci\u00F3n de la versi\u00F3n\n\\ \\ \\ \\ -fullversion          : muestra la informaci\u00F3n completa de la versi\u00F3n\n\\ \\ \\ \\ -help                 : muestra este mensaje de sintaxis
diff --git a/src/jdk.xml.bind/share/classes/com/sun/tools/internal/jxc/MessageBundle_fr.properties b/src/jdk.xml.bind/share/classes/com/sun/tools/internal/jxc/MessageBundle_fr.properties
index 6acdbba..b3f913c 100644
--- a/src/jdk.xml.bind/share/classes/com/sun/tools/internal/jxc/MessageBundle_fr.properties
+++ b/src/jdk.xml.bind/share/classes/com/sun/tools/internal/jxc/MessageBundle_fr.properties
@@ -27,8 +27,8 @@
 
 BASEDIR_DOESNT_EXIST = R\u00E9pertoire {0} inexistant
 
-VERSION = schemagen 2.3.0-b170215.1712
+VERSION = schemagen 2.3.0-b170531.0717
 
-FULLVERSION = version compl\u00E8te de schemagen "2.3.0-b170215.1712"
+FULLVERSION = version compl\u00E8te de schemagen "2.3.0-b170531.0717"
 
 USAGE = Syntaxe : schemagen [-options ...] <java files> \nOptions : \n\ \ \ \ -d <path> : indiquez o\u00F9 placer les fichiers de classe g\u00E9n\u00E9r\u00E9s par le processeur et le compilateur javac\n\ \ \ \ -cp <path> : indiquez o\u00F9 trouver les fichiers sp\u00E9cifi\u00E9s par l'utilisateur\n\ \ \ \ -classpath <path> : indiquez o\u00F9 trouver les fichiers sp\u00E9cifi\u00E9s par l'utilisateur\n\ \ \ \ -encoding <encoding> : indiquez l'encodage \u00E0 utiliser pour l'appel de javac/traitement de l'annotation \n\ \ \ \ -episode <file> : g\u00E9n\u00E9rez un fichier d'\u00E9pisode pour la compilation s\u00E9par\u00E9e\n\ \ \ \ -version : affichez les informations de version\n\ \ \ \ -fullversion : affichez les informations compl\u00E8tes de version\n\ \ \ \ -help : affichez ce message de syntaxe
diff --git a/src/jdk.xml.bind/share/classes/com/sun/tools/internal/jxc/MessageBundle_it.properties b/src/jdk.xml.bind/share/classes/com/sun/tools/internal/jxc/MessageBundle_it.properties
index 00fe597..3736092 100644
--- a/src/jdk.xml.bind/share/classes/com/sun/tools/internal/jxc/MessageBundle_it.properties
+++ b/src/jdk.xml.bind/share/classes/com/sun/tools/internal/jxc/MessageBundle_it.properties
@@ -27,8 +27,8 @@
 
 BASEDIR_DOESNT_EXIST = Directory non esistente: {0}
 
-VERSION = schemagen 2.3.0-b170215.1712
+VERSION = schemagen 2.3.0-b170531.0717
 
-FULLVERSION = versione completa schemagen "2.3.0-b170215.1712"
+FULLVERSION = versione completa schemagen "2.3.0-b170531.0717"
 
 USAGE = Uso: schemagen [-options ...] <java files> \nOpzioni: \n\ \ \ \ -d <path>             : specifica dove posizionare il processore e i file della classe generata javac\n\ \ \ \ -cp <path>            : specifica dove trovare i file specificati dall'utente\n\ \ \ \ -classpath <path>     : specifica dove trovare i file specificati dall'utente\n\ \ \ \ -encoding <encoding>  : specifica la codifica da usare per l'elaborazione dell'annotazione/richiamo javac \n\ \ \ \ -episode <file>       : genera il file di episodio per la compilazione separata\n\ \ \ \ -version              : visualizza le informazioni sulla versione\n\ \ \ \ -fullversion          : visualizza le informazioni sulla versione completa\n\ \ \ \ -help                 : visualizza questo messaggio sull'uso
diff --git a/src/jdk.xml.bind/share/classes/com/sun/tools/internal/jxc/MessageBundle_ja.properties b/src/jdk.xml.bind/share/classes/com/sun/tools/internal/jxc/MessageBundle_ja.properties
index 638e47d..0acac18 100644
--- a/src/jdk.xml.bind/share/classes/com/sun/tools/internal/jxc/MessageBundle_ja.properties
+++ b/src/jdk.xml.bind/share/classes/com/sun/tools/internal/jxc/MessageBundle_ja.properties
@@ -27,8 +27,8 @@
 
 BASEDIR_DOESNT_EXIST = \u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u304C\u5B58\u5728\u3057\u307E\u305B\u3093: {0}
 
-VERSION = schemagen 2.3.0-b170215.1712
+VERSION = schemagen 2.3.0-b170531.0717
 
-FULLVERSION = schemagen\u30D5\u30EB\u30FB\u30D0\u30FC\u30B8\u30E7\u30F3"2.3.0-b170215.1712"
+FULLVERSION = schemagen\u30D5\u30EB\u30FB\u30D0\u30FC\u30B8\u30E7\u30F3"2.3.0-b170531.0717"
 
 USAGE = \u4F7F\u7528\u65B9\u6CD5: schemagen [-options ...] <java files> \n\u30AA\u30D7\u30B7\u30E7\u30F3: \n\ \ \ \ -d <path>             : \u30D7\u30ED\u30BB\u30C3\u30B5\u304A\u3088\u3073javac\u304C\u751F\u6210\u3057\u305F\u30AF\u30E9\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB\u3092\u7F6E\u304F\u4F4D\u7F6E\u3092\u6307\u5B9A\u3057\u307E\u3059\n\ \ \ \ -cp <path>            : \u30E6\u30FC\u30B6\u30FC\u304C\u6307\u5B9A\u3057\u305F\u30D5\u30A1\u30A4\u30EB\u3092\u691C\u7D22\u3059\u308B\u4F4D\u7F6E\u3092\u6307\u5B9A\u3057\u307E\u3059\n\ \ \ \ -classpath <path>     : \u30E6\u30FC\u30B6\u30FC\u304C\u6307\u5B9A\u3057\u305F\u30D5\u30A1\u30A4\u30EB\u3092\u691C\u7D22\u3059\u308B\u4F4D\u7F6E\u3092\u6307\u5B9A\u3057\u307E\u3059\n\ \ \ \ -encoding <encoding>  : \u6CE8\u91C8\u51E6\u7406/javac\u547C\u51FA\u3057\u306B\u4F7F\u7528\u3059\u308B\u30A8\u30F3\u30B3\u30FC\u30C7\u30A3\u30F3\u30B0\u3092\u6307\u5B9A\u3057\u307E\u3059\n\ \ \ \ -episode <file>       : \u30B3\u30F3\u30D1\u30A4\u30EB\u3054\u3068\u306B\u30A8\u30D4\u30BD\u30FC\u30C9\u30FB\u30D5\u30A1\u30A4\u30EB\u3092\u751F\u6210\u3057\u307E\u3059\n\ \ \ \ -version              : \u30D0\u30FC\u30B8\u30E7\u30F3\u60C5\u5831\u3092\u8868\u793A\u3057\u307E\u3059\n\ \ \ \ -fullversion          : \u30D5\u30EB\u30FB\u30D0\u30FC\u30B8\u30E7\u30F3\u60C5\u5831\u3092\u8868\u793A\u3057\u307E\u3059\n\ \ \ \ -help                 : \u3053\u306E\u4F7F\u7528\u4F8B\u30E1\u30C3\u30BB\u30FC\u30B8\u3092\u8868\u793A\u3057\u307E\u3059
diff --git a/src/jdk.xml.bind/share/classes/com/sun/tools/internal/jxc/MessageBundle_ko.properties b/src/jdk.xml.bind/share/classes/com/sun/tools/internal/jxc/MessageBundle_ko.properties
index 4169311..4b585c2 100644
--- a/src/jdk.xml.bind/share/classes/com/sun/tools/internal/jxc/MessageBundle_ko.properties
+++ b/src/jdk.xml.bind/share/classes/com/sun/tools/internal/jxc/MessageBundle_ko.properties
@@ -27,8 +27,8 @@
 
 BASEDIR_DOESNT_EXIST = \uC874\uC7AC\uD558\uC9C0 \uC54A\uB294 \uB514\uB809\uD1A0\uB9AC: {0}
 
-VERSION = schemagen 2.3.0-b170215.1712
+VERSION = schemagen 2.3.0-b170531.0717
 
-FULLVERSION = schemagen \uC815\uC2DD \uBC84\uC804 "2.3.0-b170215.1712"
+FULLVERSION = schemagen \uC815\uC2DD \uBC84\uC804 "2.3.0-b170531.0717"
 
 USAGE = \uC0AC\uC6A9\uBC95: schemagen [-options ...] <java files> \n\uC635\uC158: \n\ \ \ \ -d <path>             : \uD504\uB85C\uC138\uC11C \uBC0F javac\uC5D0\uC11C \uC0DD\uC131\uD55C \uD074\uB798\uC2A4 \uD30C\uC77C\uC744 \uBC30\uCE58\uD560 \uC704\uCE58\uB97C \uC9C0\uC815\uD569\uB2C8\uB2E4.\n\ \ \ \ -cp <path>            : \uC0AC\uC6A9\uC790\uAC00 \uC9C0\uC815\uD55C \uD30C\uC77C\uC744 \uCC3E\uC744 \uC704\uCE58\uB97C \uC9C0\uC815\uD569\uB2C8\uB2E4.\n\ \ \ \ -classpath <path>     : \uC0AC\uC6A9\uC790\uAC00 \uC9C0\uC815\uD55C \uD30C\uC77C\uC744 \uCC3E\uC744 \uC704\uCE58\uB97C \uC9C0\uC815\uD569\uB2C8\uB2E4.\n\ \ \ \ -encoding <encoding>  : \uC8FC\uC11D \uCC98\uB9AC/javac \uD638\uCD9C\uC5D0 \uC0AC\uC6A9\uD560 \uC778\uCF54\uB529\uC744 \uC9C0\uC815\uD569\uB2C8\uB2E4. \n\ \ \ \ -episode <file>       : \uBCC4\uB3C4 \uCEF4\uD30C\uC77C\uC744 \uC704\uD574 episode \uD30C\uC77C\uC744 \uC0DD\uC131\uD569\uB2C8\uB2E4.\n\ \ \ \ -version              : \uBC84\uC804 \uC815\uBCF4\uB97C \uD45C\uC2DC\uD569\uB2C8\uB2E4.\n\ \ \ \ -fullversion          : \uC815\uC2DD \uBC84\uC804 \uC815\uBCF4\uB97C \uD45C\uC2DC\uD569\uB2C8\uB2E4.\n\ \ \ \ -help                 : \uC774 \uC0AC\uC6A9\uBC95 \uBA54\uC2DC\uC9C0\uB97C \uD45C\uC2DC\uD569\uB2C8\uB2E4.
diff --git a/src/jdk.xml.bind/share/classes/com/sun/tools/internal/jxc/MessageBundle_pt_BR.properties b/src/jdk.xml.bind/share/classes/com/sun/tools/internal/jxc/MessageBundle_pt_BR.properties
index 6da2bc9..38d6da2 100644
--- a/src/jdk.xml.bind/share/classes/com/sun/tools/internal/jxc/MessageBundle_pt_BR.properties
+++ b/src/jdk.xml.bind/share/classes/com/sun/tools/internal/jxc/MessageBundle_pt_BR.properties
@@ -27,8 +27,8 @@
 
 BASEDIR_DOESNT_EXIST = Diret\u00F3rio n\u00E3o existente: {0}
 
-VERSION = gera\u00E7\u00E3o do esquema 2.3.0-b170215.1712
+VERSION = gera\u00E7\u00E3o do esquema 2.3.0-b170531.0717
 
-FULLVERSION = vers\u00E3o completa da gera\u00E7\u00E3o do esquema "2.3.0-b170215.1712"
+FULLVERSION = vers\u00E3o completa da gera\u00E7\u00E3o do esquema "2.3.0-b170531.0717"
 
 USAGE = Uso: gera\u00E7\u00E3o do esquema [-options ...] <java files> \nOp\u00E7\u00F5es: \n\\ \\ \\ \\ -d <path>             : especificar onde colocar o processador e os arquivos da classe gerados por javac\n\\ \\ \\ \\ -cp <path>            : especificar onde localizar arquivos especificados pelo usu\u00E1rio\n\\ \\ \\ \\ -classpath <path>     : especificar onde localizar os arquivos especificados pelo usu\u00E1rio\n\\ \\ \\ \\ -encoding <encoding>  : especificar codifica\u00E7\u00E3o a ser usada para processamento de anota\u00E7\u00E3o/chamada javac \n\\ \\ \\ \\ -episode <file>       : gerar arquivo do epis\u00F3dio para compila\u00E7\u00E3o separada\n\\ \\ \\ \\ -version              : exibir informa\u00E7\u00F5es da vers\u00E3o\n\\ \\ \\ \\ -fullversion          : exibir informa\u00E7\u00F5es da vers\u00E3o completa\n\\ \\ \\ \\ -help                 : exibir esta mensagem de uso
diff --git a/src/jdk.xml.bind/share/classes/com/sun/tools/internal/jxc/MessageBundle_zh_CN.properties b/src/jdk.xml.bind/share/classes/com/sun/tools/internal/jxc/MessageBundle_zh_CN.properties
index beed169..896dc2d 100644
--- a/src/jdk.xml.bind/share/classes/com/sun/tools/internal/jxc/MessageBundle_zh_CN.properties
+++ b/src/jdk.xml.bind/share/classes/com/sun/tools/internal/jxc/MessageBundle_zh_CN.properties
@@ -27,8 +27,8 @@
 
 BASEDIR_DOESNT_EXIST = \u4E0D\u5B58\u5728\u7684\u76EE\u5F55: {0}
 
-VERSION = schemagen 2.3.0-b170215.1712
+VERSION = schemagen 2.3.0-b170531.0717
 
-FULLVERSION = schemagen \u5B8C\u6574\u7248\u672C "2.3.0-b170215.1712"
+FULLVERSION = schemagen \u5B8C\u6574\u7248\u672C "2.3.0-b170531.0717"
 
 USAGE = \u7528\u6CD5: schemagen [-options ...] <java files> \n\u9009\u9879: \n\ \ \ \ -d <path>             : \u6307\u5B9A\u653E\u7F6E\u5904\u7406\u7A0B\u5E8F\u548C javac \u751F\u6210\u7684\u7C7B\u6587\u4EF6\u7684\u4F4D\u7F6E\n\ \ \ \ -cp <path>            : \u6307\u5B9A\u67E5\u627E\u7528\u6237\u6307\u5B9A\u6587\u4EF6\u7684\u4F4D\u7F6E\n\ \ \ \ -classpath <path>     : \u6307\u5B9A\u67E5\u627E\u7528\u6237\u6307\u5B9A\u6587\u4EF6\u7684\u4F4D\u7F6E\n\ \ \ \ -encoding <encoding>  : \u6307\u5B9A\u7528\u4E8E\u6CE8\u91CA\u5904\u7406/javac \u8C03\u7528\u7684\u7F16\u7801\n\ \ \ \ -episode <file>       : \u751F\u6210\u7247\u6BB5\u6587\u4EF6\u4EE5\u4F9B\u5355\u72EC\u7F16\u8BD1\n\ \ \ \ -version              : \u663E\u793A\u7248\u672C\u4FE1\u606F\n\ \ \ \ -fullversion          : \u663E\u793A\u5B8C\u6574\u7684\u7248\u672C\u4FE1\u606F\n\ \ \ \ -help                 : \u663E\u793A\u6B64\u7528\u6CD5\u6D88\u606F
diff --git a/src/jdk.xml.bind/share/classes/com/sun/tools/internal/jxc/MessageBundle_zh_TW.properties b/src/jdk.xml.bind/share/classes/com/sun/tools/internal/jxc/MessageBundle_zh_TW.properties
index 0174469..6ffd45d 100644
--- a/src/jdk.xml.bind/share/classes/com/sun/tools/internal/jxc/MessageBundle_zh_TW.properties
+++ b/src/jdk.xml.bind/share/classes/com/sun/tools/internal/jxc/MessageBundle_zh_TW.properties
@@ -27,8 +27,8 @@
 
 BASEDIR_DOESNT_EXIST = \u4E0D\u5B58\u5728\u7684\u76EE\u9304: {0}
 
-VERSION = schemagen 2.3.0-b170215.1712
+VERSION = schemagen 2.3.0-b170531.0717
 
-FULLVERSION = schemagen \u5B8C\u6574\u7248\u672C "2.3.0-b170215.1712"
+FULLVERSION = schemagen \u5B8C\u6574\u7248\u672C "2.3.0-b170531.0717"
 
 USAGE = \u7528\u6CD5: schemagen [-options ...] <java files> \n\u9078\u9805: \n\\ \\ \\ \\ -d <path>             : \u6307\u5B9A\u8655\u7406\u5668\u4EE5\u53CA javac \u7522\u751F\u7684\u985E\u5225\u6A94\u6848\u653E\u7F6E\u4F4D\u7F6E\n\\ \\ \\ \\ -cp <path>            : \u6307\u5B9A\u8981\u5C0B\u627E\u4F7F\u7528\u8005\u6307\u5B9A\u6A94\u6848\u7684\u4F4D\u7F6E\n\\ \\ \\ \\ -classpath <path>     : \u6307\u5B9A\u8981\u5C0B\u627E\u4F7F\u7528\u8005\u6307\u5B9A\u6A94\u6848\u7684\u4F4D\u7F6E\n\\ \\ \\ \\ -encoding <encoding>  : \u6307\u5B9A\u8981\u7528\u65BC\u8A3B\u89E3\u8655\u7406/javac \u547C\u53EB\u7684\u7DE8\u78BC \n\\ \\ \\ \\ -episode <file>       : \u7522\u751F\u7368\u7ACB\u7DE8\u8B6F\u7684\u4E8B\u4EF6 (episode) \u6A94\u6848\n\\ \\ \\ \\ -version              : \u986F\u793A\u7248\u672C\u8CC7\u8A0A\n\\ \\ \\ \\ -fullversion          : \u986F\u793A\u5B8C\u6574\u7248\u672C\u8CC7\u8A0A\n\\ \\ \\ \\ -help                 : \u986F\u793A\u6B64\u7528\u6CD5\u8A0A\u606F
diff --git a/src/jdk.xml.bind/share/classes/com/sun/tools/internal/xjc/MessageBundle.properties b/src/jdk.xml.bind/share/classes/com/sun/tools/internal/xjc/MessageBundle.properties
index fa3f5b2..4231c45 100644
--- a/src/jdk.xml.bind/share/classes/com/sun/tools/internal/xjc/MessageBundle.properties
+++ b/src/jdk.xml.bind/share/classes/com/sun/tools/internal/xjc/MessageBundle.properties
@@ -173,23 +173,23 @@
 Driver.FailedToGenerateCode = \
         Failed to produce code.
 
-# DO NOT localize the 2.3.0-b170215.1712 string - it is a token for an mvn <properties filter>
+# DO NOT localize the 2.3.0-b170531.0717 string - it is a token for an mvn <properties filter>
 Driver.FilePrologComment = \
-        This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.3.0-b170215.1712 \n\
+        This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.3.0-b170531.0717 \n\
         See <a href="https://jaxb.java.net/">https://jaxb.java.net/</a> \n\
         Any modifications to this file will be lost upon recompilation of the source schema. \n\
         Generated on: {0} \n
 
 Driver.Version = \
-        xjc 2.3.0-b170215.1712
+        xjc 2.3.0-b170531.0717
 
 Driver.FullVersion = \
-        xjc full version "2.3.0-b170215.1712"
+        xjc full version "2.3.0-b170531.0717"
 
-Driver.BuildID = 2.3.0-b170215.1712
+Driver.BuildID = 2.3.0-b170531.0717
 
 # for JDK integration - include version in source zip
-jaxb.jdk.version=@@JAXB_JDK_VERSION@@
+jaxb.jdk.version=2.3.0-b170531.0717
 
 # see java.text.SimpleDateFormat for format syntax
 # DO NOT LOCALIZE, Format should not be changed, English locale is used to transform this string into a real date.
diff --git a/src/jdk.xml.bind/share/classes/com/sun/tools/internal/xjc/MessageBundle_de.properties b/src/jdk.xml.bind/share/classes/com/sun/tools/internal/xjc/MessageBundle_de.properties
index 57e1bb3..83a0e11 100644
--- a/src/jdk.xml.bind/share/classes/com/sun/tools/internal/xjc/MessageBundle_de.properties
+++ b/src/jdk.xml.bind/share/classes/com/sun/tools/internal/xjc/MessageBundle_de.properties
@@ -127,17 +127,17 @@
 
 Driver.FailedToGenerateCode = Code konnte nicht erzeugt werden.
 
-# DO NOT localize the 2.3.0-b170215.1712 string - it is a token for an mvn <properties filter>
-Driver.FilePrologComment = Diese Datei wurde mit der JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.3.0-b170215.1712 generiert \nSiehe <a href="https://jaxb.java.net/">https://jaxb.java.net/</a> \n\u00c4nderungen an dieser Datei gehen bei einer Neukompilierung des Quellschemas verloren. \nGeneriert: {0} \n
+# DO NOT localize the 2.3.0-b170531.0717 string - it is a token for an mvn <properties filter>
+Driver.FilePrologComment = Diese Datei wurde mit der JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.3.0-b170531.0717 generiert \nSiehe <a href="https://jaxb.java.net/">https://jaxb.java.net/</a> \n\u00c4nderungen an dieser Datei gehen bei einer Neukompilierung des Quellschemas verloren. \nGeneriert: {0} \n
 
-Driver.Version = xjc 2.3.0-b170215.1712
+Driver.Version = xjc 2.3.0-b170531.0717
 
-Driver.FullVersion = xjc vollst\u00E4ndige Version "2.3.0-b170215.1712"
+Driver.FullVersion = xjc vollst\u00E4ndige Version "2.3.0-b170531.0717"
 
-Driver.BuildID = 2.3.0-b170215.1712
+Driver.BuildID = 2.3.0-b170531.0717
 
 # for JDK integration - include version in source zip
-jaxb.jdk.version=@@JAXB_JDK_VERSION@@
+jaxb.jdk.version=2.3.0-b170531.0717
 
 # see java.text.SimpleDateFormat for format syntax
 # DO NOT LOCALIZE, Format should not be changed, English locale is used to transform this string into a real date.
diff --git a/src/jdk.xml.bind/share/classes/com/sun/tools/internal/xjc/MessageBundle_es.properties b/src/jdk.xml.bind/share/classes/com/sun/tools/internal/xjc/MessageBundle_es.properties
index 63de1fa..178f0ec 100644
--- a/src/jdk.xml.bind/share/classes/com/sun/tools/internal/xjc/MessageBundle_es.properties
+++ b/src/jdk.xml.bind/share/classes/com/sun/tools/internal/xjc/MessageBundle_es.properties
@@ -127,17 +127,17 @@
 
 Driver.FailedToGenerateCode = Fallo al producir c\u00f3digo.
 
-# DO NOT localize the 2.3.0-b170215.1712 string - it is a token for an mvn <properties filter>
-Driver.FilePrologComment = Este archivo ha sido generado por la arquitectura JavaTM para la implantaci\u00f3n de la referencia de enlace (JAXB) XML v2.3.0-b170215.1712 \nVisite <a href="https://jaxb.java.net/">https://jaxb.java.net/</a> \nTodas las modificaciones realizadas en este archivo se perder\u00e1n si se vuelve a compilar el esquema de origen. \nGenerado el: {0} \n
+# DO NOT localize the 2.3.0-b170531.0717 string - it is a token for an mvn <properties filter>
+Driver.FilePrologComment = Este archivo ha sido generado por la arquitectura JavaTM para la implantaci\u00f3n de la referencia de enlace (JAXB) XML v2.3.0-b170531.0717 \nVisite <a href="https://jaxb.java.net/">https://jaxb.java.net/</a> \nTodas las modificaciones realizadas en este archivo se perder\u00e1n si se vuelve a compilar el esquema de origen. \nGenerado el: {0} \n
 
-Driver.Version = xjc 2.3.0-b170215.1712
+Driver.Version = xjc 2.3.0-b170531.0717
 
-Driver.FullVersion = versi\u00F3n completa de xjc "2.3.0-b170215.1712"
+Driver.FullVersion = versi\u00F3n completa de xjc "2.3.0-b170531.0717"
 
-Driver.BuildID = 2.3.0-b170215.1712
+Driver.BuildID = 2.3.0-b170531.0717
 
 # for JDK integration - include version in source zip
-jaxb.jdk.version=@@JAXB_JDK_VERSION@@
+jaxb.jdk.version=2.3.0-b170531.0717
 
 # see java.text.SimpleDateFormat for format syntax
 # DO NOT LOCALIZE, Format should not be changed, English locale is used to transform this string into a real date.
diff --git a/src/jdk.xml.bind/share/classes/com/sun/tools/internal/xjc/MessageBundle_fr.properties b/src/jdk.xml.bind/share/classes/com/sun/tools/internal/xjc/MessageBundle_fr.properties
index 5ad5ff8..5bd1344 100644
--- a/src/jdk.xml.bind/share/classes/com/sun/tools/internal/xjc/MessageBundle_fr.properties
+++ b/src/jdk.xml.bind/share/classes/com/sun/tools/internal/xjc/MessageBundle_fr.properties
@@ -131,17 +131,17 @@
 
 Driver.FailedToGenerateCode = Echec de la production du code.
 
-# DO NOT localize the 2.3.0-b170215.1712 string - it is a token for an mvn <properties filter>
-Driver.FilePrologComment = Ce fichier a \u00e9t\u00e9 g\u00e9n\u00e9r\u00e9 par l''impl\u00e9mentation de r\u00e9f\u00e9rence JavaTM Architecture for XML Binding (JAXB), v2.3.0-b170215.1712 \nVoir <a href="https://jaxb.java.net/">https://jaxb.java.net/</a> \nToute modification apport\u00e9e \u00e0 ce fichier sera perdue lors de la recompilation du sch\u00e9ma source. \nG\u00e9n\u00e9r\u00e9 le : {0} \n
+# DO NOT localize the 2.3.0-b170531.0717 string - it is a token for an mvn <properties filter>
+Driver.FilePrologComment = Ce fichier a \u00e9t\u00e9 g\u00e9n\u00e9r\u00e9 par l''impl\u00e9mentation de r\u00e9f\u00e9rence JavaTM Architecture for XML Binding (JAXB), v2.3.0-b170531.0717 \nVoir <a href="https://jaxb.java.net/">https://jaxb.java.net/</a> \nToute modification apport\u00e9e \u00e0 ce fichier sera perdue lors de la recompilation du sch\u00e9ma source. \nG\u00e9n\u00e9r\u00e9 le : {0} \n
 
-Driver.Version = xjc 2.3.0-b170215.1712
+Driver.Version = xjc 2.3.0-b170531.0717
 
-Driver.FullVersion = version compl\u00E8te xjc "2.3.0-b170215.1712"
+Driver.FullVersion = version compl\u00E8te xjc "2.3.0-b170531.0717"
 
-Driver.BuildID = 2.3.0-b170215.1712
+Driver.BuildID = 2.3.0-b170531.0717
 
 # for JDK integration - include version in source zip
-jaxb.jdk.version=@@JAXB_JDK_VERSION@@
+jaxb.jdk.version=2.3.0-b170531.0717
 
 # see java.text.SimpleDateFormat for format syntax
 # DO NOT LOCALIZE, Format should not be changed, English locale is used to transform this string into a real date.
diff --git a/src/jdk.xml.bind/share/classes/com/sun/tools/internal/xjc/MessageBundle_it.properties b/src/jdk.xml.bind/share/classes/com/sun/tools/internal/xjc/MessageBundle_it.properties
index 9d00dd7..aad9f6b 100644
--- a/src/jdk.xml.bind/share/classes/com/sun/tools/internal/xjc/MessageBundle_it.properties
+++ b/src/jdk.xml.bind/share/classes/com/sun/tools/internal/xjc/MessageBundle_it.properties
@@ -127,17 +127,17 @@
 
 Driver.FailedToGenerateCode = Produzione del codice non riuscita.
 
-# DO NOT localize the 2.3.0-b170215.1712 string - it is a token for an mvn <properties filter>
-Driver.FilePrologComment = Questo file \u00e8 stato generato dall''architettura JavaTM per XML Binding (JAXB) Reference Implementation, v2.3.0-b170215.1712 \nVedere <a href="https://jaxb.java.net/">https://jaxb.java.net/</a> \nQualsiasi modifica a questo file andr\u00e0 persa durante la ricompilazione dello schema di origine. \nGenerato il: {0} \n
+# DO NOT localize the 2.3.0-b170531.0717 string - it is a token for an mvn <properties filter>
+Driver.FilePrologComment = Questo file \u00e8 stato generato dall''architettura JavaTM per XML Binding (JAXB) Reference Implementation, v2.3.0-b170531.0717 \nVedere <a href="https://jaxb.java.net/">https://jaxb.java.net/</a> \nQualsiasi modifica a questo file andr\u00e0 persa durante la ricompilazione dello schema di origine. \nGenerato il: {0} \n
 
-Driver.Version = xjc 2.3.0-b170215.1712
+Driver.Version = xjc 2.3.0-b170531.0717
 
-Driver.FullVersion = versione completa xjc "2.3.0-b170215.1712"
+Driver.FullVersion = versione completa xjc "2.3.0-b170531.0717"
 
-Driver.BuildID = 2.3.0-b170215.1712
+Driver.BuildID = 2.3.0-b170531.0717
 
 # for JDK integration - include version in source zip
-jaxb.jdk.version=@@JAXB_JDK_VERSION@@
+jaxb.jdk.version=2.3.0-b170531.0717
 
 # see java.text.SimpleDateFormat for format syntax
 # DO NOT LOCALIZE, Format should not be changed, English locale is used to transform this string into a real date.
diff --git a/src/jdk.xml.bind/share/classes/com/sun/tools/internal/xjc/MessageBundle_ja.properties b/src/jdk.xml.bind/share/classes/com/sun/tools/internal/xjc/MessageBundle_ja.properties
index c7a60c6..ceb9528 100644
--- a/src/jdk.xml.bind/share/classes/com/sun/tools/internal/xjc/MessageBundle_ja.properties
+++ b/src/jdk.xml.bind/share/classes/com/sun/tools/internal/xjc/MessageBundle_ja.properties
@@ -127,17 +127,17 @@
 
 Driver.FailedToGenerateCode = \u30b3\u30fc\u30c9\u306e\u751f\u6210\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002
 
-# DO NOT localize the 2.3.0-b170215.1712 string - it is a token for an mvn <properties filter>
-Driver.FilePrologComment = \u3053\u306e\u30d5\u30a1\u30a4\u30eb\u306f\u3001JavaTM Architecture for XML Binding(JAXB) Reference Implementation\u3001v2.3.0-b170215.1712\u306b\u3088\u3063\u3066\u751f\u6210\u3055\u308c\u307e\u3057\u305f \n<a href="https://jaxb.java.net/">https://jaxb.java.net/</a>\u3092\u53c2\u7167\u3057\u3066\u304f\u3060\u3055\u3044 \n\u30bd\u30fc\u30b9\u30fb\u30b9\u30ad\u30fc\u30de\u306e\u518d\u30b3\u30f3\u30d1\u30a4\u30eb\u6642\u306b\u3053\u306e\u30d5\u30a1\u30a4\u30eb\u306e\u5909\u66f4\u306f\u5931\u308f\u308c\u307e\u3059\u3002 \n\u751f\u6210\u65e5: {0} \n
+# DO NOT localize the 2.3.0-b170531.0717 string - it is a token for an mvn <properties filter>
+Driver.FilePrologComment = \u3053\u306e\u30d5\u30a1\u30a4\u30eb\u306f\u3001JavaTM Architecture for XML Binding(JAXB) Reference Implementation\u3001v2.3.0-b170531.0717\u306b\u3088\u3063\u3066\u751f\u6210\u3055\u308c\u307e\u3057\u305f \n<a href="https://jaxb.java.net/">https://jaxb.java.net/</a>\u3092\u53c2\u7167\u3057\u3066\u304f\u3060\u3055\u3044 \n\u30bd\u30fc\u30b9\u30fb\u30b9\u30ad\u30fc\u30de\u306e\u518d\u30b3\u30f3\u30d1\u30a4\u30eb\u6642\u306b\u3053\u306e\u30d5\u30a1\u30a4\u30eb\u306e\u5909\u66f4\u306f\u5931\u308f\u308c\u307e\u3059\u3002 \n\u751f\u6210\u65e5: {0} \n
 
-Driver.Version = xjc 2.3.0-b170215.1712
+Driver.Version = xjc 2.3.0-b170531.0717
 
-Driver.FullVersion = xjc\u30D5\u30EB\u30FB\u30D0\u30FC\u30B8\u30E7\u30F3"2.3.0-b170215.1712"
+Driver.FullVersion = xjc\u30D5\u30EB\u30FB\u30D0\u30FC\u30B8\u30E7\u30F3"2.3.0-b170531.0717"
 
-Driver.BuildID = 2.3.0-b170215.1712
+Driver.BuildID = 2.3.0-b170531.0717
 
 # for JDK integration - include version in source zip
-jaxb.jdk.version=@@JAXB_JDK_VERSION@@
+jaxb.jdk.version=2.3.0-b170531.0717
 
 # see java.text.SimpleDateFormat for format syntax
 # DO NOT LOCALIZE, Format should not be changed, English locale is used to transform this string into a real date.
diff --git a/src/jdk.xml.bind/share/classes/com/sun/tools/internal/xjc/MessageBundle_ko.properties b/src/jdk.xml.bind/share/classes/com/sun/tools/internal/xjc/MessageBundle_ko.properties
index 3101802..275be77 100644
--- a/src/jdk.xml.bind/share/classes/com/sun/tools/internal/xjc/MessageBundle_ko.properties
+++ b/src/jdk.xml.bind/share/classes/com/sun/tools/internal/xjc/MessageBundle_ko.properties
@@ -127,17 +127,17 @@
 
 Driver.FailedToGenerateCode = \ucf54\ub4dc \uc0dd\uc131\uc744 \uc2e4\ud328\ud588\uc2b5\ub2c8\ub2e4.
 
-# DO NOT localize the 2.3.0-b170215.1712 string - it is a token for an mvn <properties filter>
-Driver.FilePrologComment = \uc774 \ud30c\uc77c\uc740 JAXB(JavaTM Architecture for XML Binding) \ucc38\uc870 \uad6c\ud604 2.3.0-b170215.1712 \ubc84\uc804\uc744 \ud1b5\ud574 \uc0dd\uc131\ub418\uc5c8\uc2b5\ub2c8\ub2e4. \n<a href="https://jaxb.java.net/">https://jaxb.java.net/</a>\ub97c \ucc38\uc870\ud558\uc2ed\uc2dc\uc624. \n\uc774 \ud30c\uc77c\uc744 \uc218\uc815\ud558\uba74 \uc18c\uc2a4 \uc2a4\ud0a4\ub9c8\ub97c \uc7ac\ucef4\ud30c\uc77c\ud560 \ub54c \uc218\uc815 \uc0ac\ud56d\uc774 \uc190\uc2e4\ub429\ub2c8\ub2e4. \n\uc0dd\uc131 \ub0a0\uc9dc: {0} \n
+# DO NOT localize the 2.3.0-b170531.0717 string - it is a token for an mvn <properties filter>
+Driver.FilePrologComment = \uc774 \ud30c\uc77c\uc740 JAXB(JavaTM Architecture for XML Binding) \ucc38\uc870 \uad6c\ud604 2.3.0-b170531.0717 \ubc84\uc804\uc744 \ud1b5\ud574 \uc0dd\uc131\ub418\uc5c8\uc2b5\ub2c8\ub2e4. \n<a href="https://jaxb.java.net/">https://jaxb.java.net/</a>\ub97c \ucc38\uc870\ud558\uc2ed\uc2dc\uc624. \n\uc774 \ud30c\uc77c\uc744 \uc218\uc815\ud558\uba74 \uc18c\uc2a4 \uc2a4\ud0a4\ub9c8\ub97c \uc7ac\ucef4\ud30c\uc77c\ud560 \ub54c \uc218\uc815 \uc0ac\ud56d\uc774 \uc190\uc2e4\ub429\ub2c8\ub2e4. \n\uc0dd\uc131 \ub0a0\uc9dc: {0} \n
 
-Driver.Version = XJC 2.3.0-b170215.1712
+Driver.Version = XJC 2.3.0-b170531.0717
 
-Driver.FullVersion = XJC \uC815\uC2DD \uBC84\uC804 "2.3.0-b170215.1712"
+Driver.FullVersion = XJC \uC815\uC2DD \uBC84\uC804 "2.3.0-b170531.0717"
 
-Driver.BuildID = 2.3.0-b170215.1712
+Driver.BuildID = 2.3.0-b170531.0717
 
 # for JDK integration - include version in source zip
-jaxb.jdk.version=@@JAXB_JDK_VERSION@@
+jaxb.jdk.version=2.3.0-b170531.0717
 
 # see java.text.SimpleDateFormat for format syntax
 # DO NOT LOCALIZE, Format should not be changed, English locale is used to transform this string into a real date.
diff --git a/src/jdk.xml.bind/share/classes/com/sun/tools/internal/xjc/MessageBundle_pt_BR.properties b/src/jdk.xml.bind/share/classes/com/sun/tools/internal/xjc/MessageBundle_pt_BR.properties
index 71c827a..7926f4d 100644
--- a/src/jdk.xml.bind/share/classes/com/sun/tools/internal/xjc/MessageBundle_pt_BR.properties
+++ b/src/jdk.xml.bind/share/classes/com/sun/tools/internal/xjc/MessageBundle_pt_BR.properties
@@ -127,17 +127,17 @@
 
 Driver.FailedToGenerateCode = Falha ao produzir o c\u00f3digo.
 
-# DO NOT localize the 2.3.0-b170215.1712 string - it is a token for an mvn <properties filter>
-Driver.FilePrologComment = Este arquivo foi gerado pela Arquitetura JavaTM para Implementa\u00e7\u00e3o de Refer\u00eancia (JAXB) de Bind XML, v2.3.0-b170215.1712 \nConsulte <a href="https://jaxb.java.net/">https://jaxb.java.net/</a> \nTodas as modifica\u00e7\u00f5es neste arquivo ser\u00e3o perdidas ap\u00f3s a recompila\u00e7\u00e3o do esquema de origem. \nGerado em: {0} \n
+# DO NOT localize the 2.3.0-b170531.0717 string - it is a token for an mvn <properties filter>
+Driver.FilePrologComment = Este arquivo foi gerado pela Arquitetura JavaTM para Implementa\u00e7\u00e3o de Refer\u00eancia (JAXB) de Bind XML, v2.3.0-b170531.0717 \nConsulte <a href="https://jaxb.java.net/">https://jaxb.java.net/</a> \nTodas as modifica\u00e7\u00f5es neste arquivo ser\u00e3o perdidas ap\u00f3s a recompila\u00e7\u00e3o do esquema de origem. \nGerado em: {0} \n
 
-Driver.Version = xjc 2.3.0-b170215.1712
+Driver.Version = xjc 2.3.0-b170531.0717
 
-Driver.FullVersion = vers\u00E3o completa de xjc "2.3.0-b170215.1712"
+Driver.FullVersion = vers\u00E3o completa de xjc "2.3.0-b170531.0717"
 
-Driver.BuildID = 2.3.0-b170215.1712
+Driver.BuildID = 2.3.0-b170531.0717
 
 # for JDK integration - include version in source zip
-jaxb.jdk.version=@@JAXB_JDK_VERSION@@
+jaxb.jdk.version=2.3.0-b170531.0717
 
 # see java.text.SimpleDateFormat for format syntax
 # DO NOT LOCALIZE, Format should not be changed, English locale is used to transform this string into a real date.
diff --git a/src/jdk.xml.bind/share/classes/com/sun/tools/internal/xjc/MessageBundle_zh_CN.properties b/src/jdk.xml.bind/share/classes/com/sun/tools/internal/xjc/MessageBundle_zh_CN.properties
index efd45c5..daad91f 100644
--- a/src/jdk.xml.bind/share/classes/com/sun/tools/internal/xjc/MessageBundle_zh_CN.properties
+++ b/src/jdk.xml.bind/share/classes/com/sun/tools/internal/xjc/MessageBundle_zh_CN.properties
@@ -131,17 +131,17 @@
 
 Driver.FailedToGenerateCode = \u65e0\u6cd5\u751f\u6210\u4ee3\u7801\u3002
 
-# DO NOT localize the 2.3.0-b170215.1712 string - it is a token for an mvn <properties filter>
-Driver.FilePrologComment = \u6b64\u6587\u4ef6\u662f\u7531 JavaTM Architecture for XML Binding (JAXB) \u5f15\u7528\u5b9e\u73b0 v2.3.0-b170215.1712 \u751f\u6210\u7684\n\u8bf7\u8bbf\u95ee <a href="https://jaxb.java.net/">https://jaxb.java.net/</a> \n\u5728\u91cd\u65b0\u7f16\u8bd1\u6e90\u6a21\u5f0f\u65f6, \u5bf9\u6b64\u6587\u4ef6\u7684\u6240\u6709\u4fee\u6539\u90fd\u5c06\u4e22\u5931\u3002\n\u751f\u6210\u65f6\u95f4: {0} \n
+# DO NOT localize the 2.3.0-b170531.0717 string - it is a token for an mvn <properties filter>
+Driver.FilePrologComment = \u6b64\u6587\u4ef6\u662f\u7531 JavaTM Architecture for XML Binding (JAXB) \u5f15\u7528\u5b9e\u73b0 v2.3.0-b170531.0717 \u751f\u6210\u7684\n\u8bf7\u8bbf\u95ee <a href="https://jaxb.java.net/">https://jaxb.java.net/</a> \n\u5728\u91cd\u65b0\u7f16\u8bd1\u6e90\u6a21\u5f0f\u65f6, \u5bf9\u6b64\u6587\u4ef6\u7684\u6240\u6709\u4fee\u6539\u90fd\u5c06\u4e22\u5931\u3002\n\u751f\u6210\u65f6\u95f4: {0} \n
 
-Driver.Version = xjc 2.3.0-b170215.1712
+Driver.Version = xjc 2.3.0-b170531.0717
 
-Driver.FullVersion = xjc \u5B8C\u6574\u7248\u672C "2.3.0-b170215.1712"
+Driver.FullVersion = xjc \u5B8C\u6574\u7248\u672C "2.3.0-b170531.0717"
 
-Driver.BuildID = 2.3.0-b170215.1712
+Driver.BuildID = 2.3.0-b170531.0717
 
 # for JDK integration - include version in source zip
-jaxb.jdk.version=@@JAXB_JDK_VERSION@@
+jaxb.jdk.version=2.3.0-b170531.0717
 
 # see java.text.SimpleDateFormat for format syntax
 # DO NOT LOCALIZE, Format should not be changed, English locale is used to transform this string into a real date.
diff --git a/src/jdk.xml.bind/share/classes/com/sun/tools/internal/xjc/MessageBundle_zh_TW.properties b/src/jdk.xml.bind/share/classes/com/sun/tools/internal/xjc/MessageBundle_zh_TW.properties
index 4889fc5..d0282b8 100644
--- a/src/jdk.xml.bind/share/classes/com/sun/tools/internal/xjc/MessageBundle_zh_TW.properties
+++ b/src/jdk.xml.bind/share/classes/com/sun/tools/internal/xjc/MessageBundle_zh_TW.properties
@@ -127,17 +127,17 @@
 
 Driver.FailedToGenerateCode = \u7121\u6cd5\u7522\u751f\u7a0b\u5f0f\u78bc.
 
-# DO NOT localize the 2.3.0-b170215.1712 string - it is a token for an mvn <properties filter>
-Driver.FilePrologComment = \u6b64\u6a94\u6848\u662f\u7531 JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.3.0-b170215.1712 \u6240\u7522\u751f \n\u8acb\u53c3\u95b1 <a href="https://jaxb.java.net/">https://jaxb.java.net/</a> \n\u4e00\u65e6\u91cd\u65b0\u7de8\u8b6f\u4f86\u6e90\u7db1\u8981, \u5c0d\u6b64\u6a94\u6848\u6240\u505a\u7684\u4efb\u4f55\u4fee\u6539\u90fd\u5c07\u6703\u907a\u5931. \n\u7522\u751f\u6642\u9593: {0} \n
+# DO NOT localize the 2.3.0-b170531.0717 string - it is a token for an mvn <properties filter>
+Driver.FilePrologComment = \u6b64\u6a94\u6848\u662f\u7531 JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.3.0-b170531.0717 \u6240\u7522\u751f \n\u8acb\u53c3\u95b1 <a href="https://jaxb.java.net/">https://jaxb.java.net/</a> \n\u4e00\u65e6\u91cd\u65b0\u7de8\u8b6f\u4f86\u6e90\u7db1\u8981, \u5c0d\u6b64\u6a94\u6848\u6240\u505a\u7684\u4efb\u4f55\u4fee\u6539\u90fd\u5c07\u6703\u907a\u5931. \n\u7522\u751f\u6642\u9593: {0} \n
 
-Driver.Version = xjc 2.3.0-b170215.1712
+Driver.Version = xjc 2.3.0-b170531.0717
 
-Driver.FullVersion = xjc \u5B8C\u6574\u7248\u672C "2.3.0-b170215.1712"
+Driver.FullVersion = xjc \u5B8C\u6574\u7248\u672C "2.3.0-b170531.0717"
 
-Driver.BuildID = 2.3.0-b170215.1712
+Driver.BuildID = 2.3.0-b170531.0717
 
 # for JDK integration - include version in source zip
-jaxb.jdk.version=@@JAXB_JDK_VERSION@@
+jaxb.jdk.version=2.3.0-b170531.0717
 
 # see java.text.SimpleDateFormat for format syntax
 # DO NOT LOCALIZE, Format should not be changed, English locale is used to transform this string into a real date.
diff --git a/src/jdk.xml.bind/share/classes/com/sun/tools/internal/xjc/Options.java b/src/jdk.xml.bind/share/classes/com/sun/tools/internal/xjc/Options.java
index e1603cb..c1136f4 100644
--- a/src/jdk.xml.bind/share/classes/com/sun/tools/internal/xjc/Options.java
+++ b/src/jdk.xml.bind/share/classes/com/sun/tools/internal/xjc/Options.java
@@ -77,37 +77,53 @@
  * The configuration in this class should be abstract enough so that
  * it could be parsed from both command-line or Ant.
  */
-public class Options
-{
-    /** If "-debug" is specified. */
+public class Options {
+    /**
+     * If "-debug" is specified.
+     */
     public boolean debugMode;
 
-    /** If the "-verbose" option is specified. */
+    /**
+     * If the "-verbose" option is specified.
+     */
     public boolean verbose;
 
-    /** If the "-quiet" option is specified. */
+    /**
+     * If the "-quiet" option is specified.
+     */
     public boolean quiet;
 
-    /** If the -readOnly option is specified. */
+    /**
+     * If the -readOnly option is specified.
+     */
     public boolean readOnly;
 
-    /** No file header comment (to be more friendly with diff.) */
+    /**
+     * No file header comment (to be more friendly with diff.)
+     */
     public boolean noFileHeader;
 
-    /** When on, fixes getter/setter generation to match the Bean Introspection API */
+    /**
+     * When on, fixes getter/setter generation to match the Bean Introspection API
+     */
     public boolean enableIntrospection;
 
-    /** When on, generates content property for types with multiple xs:any derived elements (which is supposed to be correct behaviour) */
+    /**
+     * When on, generates content property for types with multiple xs:any derived elements (which is supposed to be correct behaviour)
+     */
     public boolean contentForWildcard;
 
-    /** Encoding to be used by generated java sources, null for platform default. */
+    /**
+     * Encoding to be used by generated java sources, null for platform default.
+     */
     public String encoding;
 
     /**
      * If true XML security features when parsing XML documents will be disabled.
      * The default value is false.
-     *
+     * <p>
      * Boolean
+     *
      * @since 2.2.6
      */
     public boolean disableXmlSecurity;
@@ -116,7 +132,7 @@
      * Check the source schemas with extra scrutiny.
      * The exact meaning depends on the schema language.
      */
-    public boolean strictCheck =true;
+    public boolean strictCheck = true;
 
     /**
      * If -explicit-annotation option is specified.
@@ -149,7 +165,7 @@
     public int compatibilityMode = STRICT;
 
     public boolean isExtensionMode() {
-        return compatibilityMode==EXTENSION;
+        return compatibilityMode == EXTENSION;
     }
 
     private static final Logger logger = com.sun.xml.internal.bind.Util.getClassLogger();
@@ -277,30 +293,26 @@
 
     /**
      * Sets the {@link FieldRendererFactory}.
-     *
+     * <p>
      * <p>
      * This method is for plugins to call to set a custom {@link FieldRendererFactory}.
      *
-     * @param frf
-     *      The {@link FieldRendererFactory} to be installed. Must not be null.
-     * @param owner
-     *      Identifies the plugin that owns this {@link FieldRendererFactory}.
-     *      When two {@link Plugin}s try to call this method, this allows XJC
-     *      to report it as a user-friendly error message.
-     *
-     * @throws BadCommandLineException
-     *      If a conflit happens, this exception carries a user-friendly error
-     *      message, indicating a conflict.
+     * @param frf   The {@link FieldRendererFactory} to be installed. Must not be null.
+     * @param owner Identifies the plugin that owns this {@link FieldRendererFactory}.
+     *              When two {@link Plugin}s try to call this method, this allows XJC
+     *              to report it as a user-friendly error message.
+     * @throws BadCommandLineException If a conflit happens, this exception carries a user-friendly error
+     *                                 message, indicating a conflict.
      */
     public void setFieldRendererFactory(FieldRendererFactory frf, Plugin owner) throws BadCommandLineException {
         // since this method is for plugins, make it bit more fool-proof than usual
-        if(frf==null)
+        if (frf == null)
             throw new IllegalArgumentException();
-        if(fieldRendererFactoryOwner!=null) {
+        if (fieldRendererFactoryOwner != null) {
             throw new BadCommandLineException(
                 Messages.format(Messages.FIELD_RENDERER_CONFLICT,
                     fieldRendererFactoryOwner.getOptionName(),
-                    owner.getOptionName() ));
+                    owner.getOptionName()));
         }
         this.fieldRendererFactoryOwner = owner;
         this.fieldRendererFactory = frf;
@@ -318,30 +330,26 @@
 
     /**
      * Sets the {@link NameConverter}.
-     *
+     * <p>
      * <p>
      * This method is for plugins to call to set a custom {@link NameConverter}.
      *
-     * @param nc
-     *      The {@link NameConverter} to be installed. Must not be null.
-     * @param owner
-     *      Identifies the plugin that owns this {@link NameConverter}.
-     *      When two {@link Plugin}s try to call this method, this allows XJC
-     *      to report it as a user-friendly error message.
-     *
-     * @throws BadCommandLineException
-     *      If a conflit happens, this exception carries a user-friendly error
-     *      message, indicating a conflict.
+     * @param nc    The {@link NameConverter} to be installed. Must not be null.
+     * @param owner Identifies the plugin that owns this {@link NameConverter}.
+     *              When two {@link Plugin}s try to call this method, this allows XJC
+     *              to report it as a user-friendly error message.
+     * @throws BadCommandLineException If a conflit happens, this exception carries a user-friendly error
+     *                                 message, indicating a conflict.
      */
     public void setNameConverter(NameConverter nc, Plugin owner) throws BadCommandLineException {
         // since this method is for plugins, make it bit more fool-proof than usual
-        if(nc==null)
+        if (nc == null)
             throw new IllegalArgumentException();
-        if(nameConverter!=null) {
+        if (nameConverter != null) {
             throw new BadCommandLineException(
                 Messages.format(Messages.NAME_CONVERTER_CONFLICT,
                     nameConverterOwner.getOptionName(),
-                    owner.getOptionName() ));
+                    owner.getOptionName()));
         }
         this.nameConverterOwner = owner;
         this.nameConverter = nc;
@@ -349,15 +357,16 @@
 
     /**
      * Gets all the {@link Plugin}s discovered so far.
-     *
+     * <p>
      * <p>
      * A plugins are enumerated when this method is called for the first time,
      * by taking {@link #classpaths} into account. That means
      * "-cp plugin.jar" has to come before you specify options to enable it.
+     *
      * @return
      */
     public List<Plugin> getAllPlugins() {
-        if(allPlugins==null) {
+        if (allPlugins == null) {
             allPlugins = findServices(Plugin.class);
         }
 
@@ -365,29 +374,34 @@
     }
 
     public Language getSchemaLanguage() {
-        if( schemaLanguage==null)
+        if (schemaLanguage == null)
             schemaLanguage = guessSchemaLanguage();
         return schemaLanguage;
     }
+
     public void setSchemaLanguage(Language _schemaLanguage) {
         this.schemaLanguage = _schemaLanguage;
     }
 
-    /** Input schema files.
-     * @return  */
+    /**
+     * Input schema files.
+     *
+     * @return
+     */
     public InputSource[] getGrammars() {
         return grammars.toArray(new InputSource[grammars.size()]);
     }
 
     /**
      * Adds a new input schema.
+     *
      * @param is
      */
-    public void addGrammar( InputSource is ) {
+    public void addGrammar(InputSource is) {
         grammars.add(absolutize(is));
     }
 
-    private InputSource fileToInputSource( File source ) {
+    private InputSource fileToInputSource(File source) {
         try {
             String url = source.toURL().toExternalForm();
             return new InputSource(Util.escapeSpace(url));
@@ -396,27 +410,27 @@
         }
     }
 
-    public void addGrammar( File source ) {
+    public void addGrammar(File source) {
         addGrammar(fileToInputSource(source));
     }
 
     /**
      * Recursively scan directories and add all XSD files in it.
+     *
      * @param dir
      */
-    public void addGrammarRecursive( File dir ) {
-        addRecursive(dir,".xsd",grammars);
+    public void addGrammarRecursive(File dir) {
+        addRecursive(dir, ".xsd", grammars);
     }
 
-    private  void addRecursive( File dir, String suffix, List<InputSource> result ) {
+    private void addRecursive(File dir, String suffix, List<InputSource> result) {
         File[] files = dir.listFiles();
-        if(files==null)     return; // work defensively
+        if (files == null) return; // work defensively
 
-        for( File f : files ) {
-            if(f.isDirectory())
-                addRecursive(f,suffix,result);
-            else
-            if(f.getPath().endsWith(suffix))
+        for (File f : files) {
+            if (f.isDirectory())
+                addRecursive(f, suffix, result);
+            else if (f.getPath().endsWith(suffix))
                 result.add(absolutize(fileToInputSource(f)));
         }
     }
@@ -426,59 +440,68 @@
         // absolutize all the system IDs in the input, so that we can map system IDs to DOM trees.
         try {
             URL baseURL = new File(".").getCanonicalFile().toURL();
-            is.setSystemId( new URL(baseURL,is.getSystemId()).toExternalForm() );
-        } catch( IOException e ) {
+            is.setSystemId(new URL(baseURL, is.getSystemId()).toExternalForm());
+        } catch (IOException e) {
             logger.log(Level.FINE, "{0}, {1}", new Object[]{is.getSystemId(), e.getLocalizedMessage()});
         }
         return is;
     }
 
-    /** Input external binding files.
-     * @return  */
+    /**
+     * Input external binding files.
+     *
+     * @return
+     */
     public InputSource[] getBindFiles() {
         return bindFiles.toArray(new InputSource[bindFiles.size()]);
     }
 
     /**
      * Adds a new binding file.
+     *
      * @param is
      */
-    public void addBindFile( InputSource is ) {
+    public void addBindFile(InputSource is) {
         bindFiles.add(absolutize(is));
     }
 
     /**
      * Adds a new binding file.
+     *
      * @param bindFile
      */
-    public void addBindFile( File bindFile ) {
+    public void addBindFile(File bindFile) {
         bindFiles.add(fileToInputSource(bindFile));
     }
 
     /**
      * Recursively scan directories and add all ".xjb" files in it.
+     *
      * @param dir
      */
-    public void addBindFileRecursive( File dir ) {
-        addRecursive(dir,".xjb",bindFiles);
+    public void addBindFileRecursive(File dir) {
+        addRecursive(dir, ".xjb", bindFiles);
     }
 
     public final List<URL> classpaths = new ArrayList<>();
+
     /**
      * Gets a classLoader that can load classes specified via the
      * -classpath option.
+     *
      * @param parent
      * @return
      */
-    public ClassLoader getUserClassLoader( ClassLoader parent ) {
+    public ClassLoader getUserClassLoader(ClassLoader parent) {
         if (classpaths.isEmpty())
             return parent;
         return new URLClassLoader(
-                classpaths.toArray(new URL[classpaths.size()]),parent);
+            classpaths.toArray(new URL[classpaths.size()]), parent);
     }
 
     /**
      * Gets Java module name option.
+     *
      * @return Java module name option or {@code null} if this option was not set.
      */
     public String getModuleName() {
@@ -491,13 +514,11 @@
      *
      * @param args
      * @param i
-     * @return
-     *      0 if the argument is not understood. Returning 0
-     *      will let the caller report an error.
-     * @exception BadCommandLineException
-     *      If the callee wants to provide a custom message for an error.
+     * @return 0 if the argument is not understood. Returning 0
+     * will let the caller report an error.
+     * @throws BadCommandLineException If the callee wants to provide a custom message for an error.
      */
-    public int parseArgument( String[] args, int i ) throws BadCommandLineException {
+    public int parseArgument(String[] args, int i) throws BadCommandLineException {
         if (args[i].equals("-classpath") || args[i].equals("-cp")) {
             String a = requireArgument(args[i], args, ++i);
             for (String p : a.split(File.pathSeparator)) {
@@ -506,16 +527,16 @@
                     classpaths.add(file.toURL());
                 } catch (MalformedURLException e) {
                     throw new BadCommandLineException(
-                        Messages.format(Messages.NOT_A_VALID_FILENAME,file),e);
+                        Messages.format(Messages.NOT_A_VALID_FILENAME, file), e);
                 }
             }
             return 2;
         }
         if (args[i].equals("-d")) {
-            targetDir = new File(requireArgument("-d",args,++i));
-            if( !targetDir.exists() )
+            targetDir = new File(requireArgument("-d", args, ++i));
+            if (!targetDir.exists())
                 throw new BadCommandLineException(
-                    Messages.format(Messages.NON_EXISTENT_DIR,targetDir));
+                    Messages.format(Messages.NON_EXISTENT_DIR, targetDir));
             return 2;
         }
         if (args[i].equals("-readOnly")) {
@@ -523,8 +544,8 @@
             return 1;
         }
         if (args[i].equals("-p")) {
-            defaultPackage = requireArgument("-p",args,++i);
-            if(defaultPackage.length()==0) { // user specified default package
+            defaultPackage = requireArgument("-p", args, ++i);
+            if (defaultPackage.length() == 0) { // user specified default package
                 // there won't be any package to annotate, so disable them
                 // automatically as a usability feature
                 packageLevelAnnotations = false;
@@ -544,11 +565,11 @@
             strictCheck = false;
             return 1;
         }
-        if( args[i].equals("-npa")) {
+        if (args[i].equals("-npa")) {
             packageLevelAnnotations = false;
             return 1;
         }
-        if( args[i].equals("-no-header")) {
+        if (args[i].equals("-no-header")) {
             noFileHeader = true;
             return 1;
         }
@@ -581,7 +602,7 @@
             return 1;
         }
         if (args[i].equals("-b")) {
-            addFile(requireArgument("-b",args,++i),bindFiles,".xjb");
+            addFile(requireArgument("-b", args, ++i), bindFiles, ".xjb");
             return 2;
         }
         if (args[i].equals("-dtd")) {
@@ -601,10 +622,10 @@
             return 1;
         }
         if (args[i].equals("-target")) {
-            String token = requireArgument("-target",args,++i);
+            String token = requireArgument("-target", args, ++i);
             target = SpecVersion.parse(token);
-            if(target==null)
-                throw new BadCommandLineException(Messages.format(Messages.ILLEGAL_TARGET_VERSION,token));
+            if (target == null)
+                throw new BadCommandLineException(Messages.format(Messages.ILLEGAL_TARGET_VERSION, token));
             return 2;
         }
         if (args[i].equals("-httpproxyfile")) {
@@ -614,16 +635,16 @@
             }
 
             File file = new File(args[++i]);
-            if(!file.exists()) {
+            if (!file.exists()) {
                 throw new BadCommandLineException(
-                    Messages.format(Messages.NO_SUCH_FILE,file));
+                    Messages.format(Messages.NO_SUCH_FILE, file));
             }
 
-            try (BufferedReader in = new BufferedReader(new InputStreamReader(new FileInputStream(file),"UTF-8"))) {
+            try (BufferedReader in = new BufferedReader(new InputStreamReader(new FileInputStream(file), "UTF-8"))) {
                 parseProxy(in.readLine());
             } catch (IOException e) {
                 throw new BadCommandLineException(
-                    Messages.format(Messages.FAILED_TO_PARSE,file,e.getMessage()),e);
+                    Messages.format(Messages.FAILED_TO_PARSE, file, e.getMessage()), e);
             }
 
             return 2;
@@ -638,33 +659,33 @@
             return 2;
         }
         if (args[i].equals("-host")) {
-            proxyHost = requireArgument("-host",args,++i);
+            proxyHost = requireArgument("-host", args, ++i);
             return 2;
         }
         if (args[i].equals("-port")) {
-            proxyPort = requireArgument("-port",args,++i);
+            proxyPort = requireArgument("-port", args, ++i);
             return 2;
         }
-        if( args[i].equals("-catalog") ) {
+        if (args[i].equals("-catalog")) {
             // use Sun's "XML Entity and URI Resolvers" by Norman Walsh
             // to resolve external entities.
             // https://xerces.apache.org/xml-commons/components/resolver/resolver-article.html
 
-            File catalogFile = new File(requireArgument("-catalog",args,++i));
+            File catalogFile = new File(requireArgument("-catalog", args, ++i));
             try {
                 addCatalog(catalogFile);
             } catch (IOException e) {
                 throw new BadCommandLineException(
-                    Messages.format(Messages.FAILED_TO_PARSE,catalogFile,e.getMessage()),e);
+                    Messages.format(Messages.FAILED_TO_PARSE, catalogFile, e.getMessage()), e);
             }
             return 2;
         }
-        if( args[i].equals("-Xtest-class-name-allocator") ) {
+        if (args[i].equals("-Xtest-class-name-allocator")) {
             classNameAllocator = new ClassNameAllocator() {
                 @Override
                 public String assignClassName(String packageName, String className) {
-                    System.out.printf("assignClassName(%s,%s)\n",packageName,className);
-                    return className+"_Type";
+                    System.out.printf("assignClassName(%s,%s)\n", packageName, className);
+                    return className + "_Type";
                 }
             };
             return 1;
@@ -685,9 +706,9 @@
         }
 
         // see if this is one of the extensions
-        for( Plugin plugin : getAllPlugins() ) {
+        for (Plugin plugin : getAllPlugins()) {
             try {
-                if( ('-'+plugin.getOptionName()).equals(args[i]) ) {
+                if (('-' + plugin.getOptionName()).equals(args[i])) {
                     activePlugins.add(plugin);
                     plugin.onActivated(this);
                     pluginURIs.addAll(plugin.getCustomizationURIs());
@@ -696,17 +717,17 @@
                     // this is new in 2.1, and due to the backward compatibility reason,
                     // if plugin didn't understand it, we still return 1 to indicate
                     // that this option is consumed.
-                    int r = plugin.parseArgument(this,args,i);
-                    if(r!=0)
+                    int r = plugin.parseArgument(this, args, i);
+                    if (r != 0)
                         return r;
                     else
                         return 1;
                 }
 
-                int r = plugin.parseArgument(this,args,i);
-                if(r!=0)    return r;
+                int r = plugin.parseArgument(this, args, i);
+                if (r != 0) return r;
             } catch (IOException e) {
-                throw new BadCommandLineException(e.getMessage(),e);
+                throw new BadCommandLineException(e.getMessage(), e);
             }
         }
 
@@ -740,12 +761,13 @@
         try {
             Integer.valueOf(proxyPort);
         } catch (NumberFormatException e) {
-            throw new BadCommandLineException(Messages.format(Messages.ILLEGAL_PROXY,text));
+            throw new BadCommandLineException(Messages.format(Messages.ILLEGAL_PROXY, text));
         }
     }
 
     /**
      * Obtains an operand and reports an error if it's not there.
+     *
      * @param optionName
      * @param args
      * @param i
@@ -755,7 +777,7 @@
     public String requireArgument(String optionName, String[] args, int i) throws BadCommandLineException {
         if (i == args.length || args[i].startsWith("-")) {
             throw new BadCommandLineException(
-                Messages.format(Messages.MISSING_OPERAND,optionName));
+                Messages.format(Messages.MISSING_OPERAND, optionName));
         }
         return args[i];
     }
@@ -764,9 +786,8 @@
      * Parses a token to a file (or a set of files)
      * and add them as {@link InputSource} to the specified list.
      *
-     * @param suffix
-     *      If the given token is a directory name, we do a recursive search
-     *      and find all files that have the given suffix.
+     * @param suffix If the given token is a directory name, we do a recursive search
+     *               and find all files that have the given suffix.
      */
     private void addFile(String name, List<InputSource> target, String suffix) throws BadCommandLineException {
         Object src;
@@ -774,14 +795,14 @@
             src = Util.getFileOrURL(name);
         } catch (IOException e) {
             throw new BadCommandLineException(
-                Messages.format(Messages.NOT_A_FILE_NOR_URL,name));
+                Messages.format(Messages.NOT_A_FILE_NOR_URL, name));
         }
-        if(src instanceof URL) {
-            target.add(absolutize(new InputSource(Util.escapeSpace(((URL)src).toExternalForm()))));
+        if (src instanceof URL) {
+            target.add(absolutize(new InputSource(Util.escapeSpace(((URL) src).toExternalForm()))));
         } else {
-            File fsrc = (File)src;
-            if(fsrc.isDirectory()) {
-                addRecursive(fsrc,suffix,target);
+            File fsrc = (File) src;
+            if (fsrc.isDirectory()) {
+                addRecursive(fsrc, suffix, target);
             } else {
                 target.add(absolutize(fileToInputSource(fsrc)));
             }
@@ -794,6 +815,7 @@
 
     /**
      * Adds a new catalog file.Use created or existed resolver to parse new catalog file.
+     *
      * @param catalogFile
      * @throws java.io.IOException
      */
@@ -809,25 +831,24 @@
      * Parses arguments and fill fields of this object.
      *
      * @param args
-     * @exception BadCommandLineException
-     *      thrown when there's a problem in the command-line arguments
+     * @throws BadCommandLineException thrown when there's a problem in the command-line arguments
      */
-    public void parseArguments( String[] args ) throws BadCommandLineException {
+    public void parseArguments(String[] args) throws BadCommandLineException {
 
         for (int i = 0; i < args.length; i++) {
-            if(args[i].length()==0)
+            if (args[i].length() == 0)
                 throw new BadCommandLineException();
             if (args[i].charAt(0) == '-') {
-                int j = parseArgument(args,i);
-                if(j==0)
+                int j = parseArgument(args, i);
+                if (j == 0)
                     throw new BadCommandLineException(
                         Messages.format(Messages.UNRECOGNIZED_PARAMETER, args[i]));
-                i += (j-1);
+                i += (j - 1);
             } else {
-                if(args[i].endsWith(".jar"))
+                if (args[i].endsWith(".jar"))
                     scanEpisodeFile(new File(args[i]));
                 else
-                    addFile(args[i],grammars,".xsd");
+                    addFile(args[i], grammars, ".xsd");
             }
         }
 
@@ -854,7 +875,7 @@
             throw new BadCommandLineException(
                 Messages.format(Messages.MISSING_GRAMMAR));
 
-        if( schemaLanguage==null )
+        if (schemaLanguage == null)
             schemaLanguage = guessSchemaLanguage();
 
 //        if(target==SpecVersion.V2_2 && !isExtensionMode())
@@ -862,13 +883,14 @@
 //                "Currently 2.2 is still not finalized yet, so using it requires the -extension switch." +
 //                "NOTE THAT 2.2 SPEC MAY CHANGE BEFORE IT BECOMES FINAL.");
 
-        if(pluginLoadFailure!=null)
+        if (pluginLoadFailure != null)
             throw new BadCommandLineException(
-                Messages.format(Messages.PLUGIN_LOAD_FAILURE,pluginLoadFailure));
+                Messages.format(Messages.PLUGIN_LOAD_FAILURE, pluginLoadFailure));
     }
 
     /**
      * Finds the {@code META-INF/sun-jaxb.episode} file to add as a binding customization.
+     *
      * @param jar
      * @throws com.sun.tools.internal.xjc.BadCommandLineException
      */
@@ -882,13 +904,14 @@
             }
         } catch (IOException e) {
             throw new BadCommandLineException(
-                    Messages.format(Messages.FAILED_TO_LOAD,jar,e.getMessage()), e);
+                Messages.format(Messages.FAILED_TO_LOAD, jar, e.getMessage()), e);
         }
     }
 
 
     /**
      * Guesses the schema language.
+     *
      * @return
      */
     public Language guessSchemaLanguage() {
@@ -910,27 +933,30 @@
 
     /**
      * Creates a configured CodeWriter that produces files into the specified directory.
+     *
      * @return
      * @throws java.io.IOException
      */
     public CodeWriter createCodeWriter() throws IOException {
-        return createCodeWriter(new FileCodeWriter( targetDir, readOnly, encoding ));
+        return createCodeWriter(new FileCodeWriter(targetDir, readOnly, encoding));
     }
 
     /**
      * Creates a configured CodeWriter that produces files into the specified directory.
+     *
      * @param core
      * @return
      */
-    public CodeWriter createCodeWriter( CodeWriter core ) {
-        if(noFileHeader)
+    public CodeWriter createCodeWriter(CodeWriter core) {
+        if (noFileHeader)
             return core;
 
-        return new PrologCodeWriter( core,getPrologComment() );
+        return new PrologCodeWriter(core, getPrologComment());
     }
 
     /**
      * Gets the string suitable to be used as the prolog comment baked into artifacts.This is the string like "This file was generated by the JAXB RI on YYYY/mm/dd..."
+     *
      * @return
      */
     public String getPrologComment() {
@@ -957,7 +983,7 @@
      * Looks for all "META-INF/services/[className]" files and
      * create one instance for each class name found inside this file.
      */
-    private <T> List<T> findServices( Class<T> clazz) {
+    private <T> List<T> findServices(Class<T> clazz) {
         final List<T> result = new ArrayList<>();
         final boolean debug = getDebugPropertyValue();
         try {
@@ -967,12 +993,12 @@
             final ServiceLoader<T> sl = ServiceLoader.load(clazz, tccl);
             for (T t : sl)
                 result.add(t);
-        } catch( Throwable e ) {
+        } catch (Throwable e) {
             // ignore any error
             StringWriter w = new StringWriter();
             e.printStackTrace(new PrintWriter(w));
             pluginLoadFailure = w.toString();
-            if(debug)
+            if (debug)
                 System.out.println(pluginLoadFailure);
         }
         return result;
diff --git a/src/jdk.xml.bind/share/classes/com/sun/tools/internal/xjc/api/SpecVersion.java b/src/jdk.xml.bind/share/classes/com/sun/tools/internal/xjc/api/SpecVersion.java
index 2bd07fb..03454af 100644
--- a/src/jdk.xml.bind/share/classes/com/sun/tools/internal/xjc/api/SpecVersion.java
+++ b/src/jdk.xml.bind/share/classes/com/sun/tools/internal/xjc/api/SpecVersion.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -55,5 +55,21 @@
         return null;
     }
 
+    /**
+     * Gives the String representation of the {@link SpecVersion}
+     */
+    public String getVersion(){
+        switch(this){
+            case V2_0:
+                return "2.0";
+            case V2_1:
+                return "2.1";
+            case V2_2:
+                return "2.2";
+            default:
+                return null;
+        }
+    }
+
     public static final SpecVersion LATEST = V2_2;
 }
diff --git a/src/jdk.xml.bind/share/classes/com/sun/tools/internal/xjc/reader/internalizer/DOMForest.java b/src/jdk.xml.bind/share/classes/com/sun/tools/internal/xjc/reader/internalizer/DOMForest.java
index 37a0b40..51ac493 100644
--- a/src/jdk.xml.bind/share/classes/com/sun/tools/internal/xjc/reader/internalizer/DOMForest.java
+++ b/src/jdk.xml.bind/share/classes/com/sun/tools/internal/xjc/reader/internalizer/DOMForest.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -85,7 +85,7 @@
  */
 public final class DOMForest {
     /** actual data storage {@code map<SystemId,Document>}. */
-    private final Map<String,Document> core = new HashMap<String,Document>();
+    private final Map<String,Document> core = new LinkedHashMap<>();
 
     /**
      * To correctly feed documents to a schema parser, we need to remember
diff --git a/src/jdk.xml.ws/share/classes/com/sun/tools/internal/ws/processor/ProcessorException.java b/src/jdk.xml.ws/share/classes/com/sun/tools/internal/ws/processor/ProcessorException.java
index eb8fe7b..7710899 100644
--- a/src/jdk.xml.ws/share/classes/com/sun/tools/internal/ws/processor/ProcessorException.java
+++ b/src/jdk.xml.ws/share/classes/com/sun/tools/internal/ws/processor/ProcessorException.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -27,9 +27,6 @@
 
 import com.sun.xml.internal.ws.util.exception.JAXWSExceptionBase;
 
-import java.util.Locale;
-import java.util.ResourceBundle;
-
 /**
  * ProcessorException represents an exception that occurred while processing
  * a web service.
@@ -55,9 +52,4 @@
     public String getDefaultResourceBundleName() {
         return "com.sun.tools.internal.ws.resources.processor";
     }
-
-    @Override
-    public ResourceBundle getResourceBundle(Locale locale) {
-        return ResourceBundle.getBundle(getDefaultResourceBundleName(), locale);
-    }
 }
diff --git a/src/jdk.xml.ws/share/classes/com/sun/tools/internal/ws/resources/ConfigurationMessages.java b/src/jdk.xml.ws/share/classes/com/sun/tools/internal/ws/resources/ConfigurationMessages.java
index d46e6cf..22bf34e 100644
--- a/src/jdk.xml.ws/share/classes/com/sun/tools/internal/ws/resources/ConfigurationMessages.java
+++ b/src/jdk.xml.ws/share/classes/com/sun/tools/internal/ws/resources/ConfigurationMessages.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,12 +25,12 @@
 
 package com.sun.tools.internal.ws.resources;
 
-import com.sun.istack.internal.localization.Localizable;
-import com.sun.istack.internal.localization.LocalizableMessageFactory;
-import com.sun.istack.internal.localization.Localizer;
-
 import java.util.Locale;
 import java.util.ResourceBundle;
+import com.sun.istack.internal.localization.Localizable;
+import com.sun.istack.internal.localization.LocalizableMessageFactory;
+import com.sun.istack.internal.localization.LocalizableMessageFactory.ResourceBundleSupplier;
+import com.sun.istack.internal.localization.Localizer;
 
 
 /**
@@ -38,26 +38,32 @@
  *
  */
 public final class ConfigurationMessages {
-    private final static String BUNDLE_NAME = "com.sun.tools.internal.ws.resources.configuration";
-    private final static LocalizableMessageFactory messageFactory =
-        new LocalizableMessageFactory(BUNDLE_NAME, ConfigurationMessages::getResourceBundle);
-    private final static Localizer localizer = new Localizer();
 
-    private static ResourceBundle getResourceBundle(Locale locale) {
-        return ResourceBundle.getBundle(BUNDLE_NAME, locale);
-    }
+    private final static String BUNDLE_NAME = "com.sun.tools.internal.ws.resources.configuration";
+    private final static LocalizableMessageFactory MESSAGE_FACTORY = new LocalizableMessageFactory(BUNDLE_NAME, new ConfigurationMessages.BundleSupplier());
+    private final static Localizer LOCALIZER = new Localizer();
 
     public static Localizable localizableCONFIGURATION_NOT_BINDING_FILE(Object arg0) {
-        return messageFactory.getMessage("configuration.notBindingFile", arg0);
+        return MESSAGE_FACTORY.getMessage("configuration.notBindingFile", arg0);
     }
 
-
     /**
      * Ignoring: binding file "{0}". It is not a jaxws or a jaxb binding file.
      *
      */
     public static String CONFIGURATION_NOT_BINDING_FILE(Object arg0) {
-        return localizer.localize(localizableCONFIGURATION_NOT_BINDING_FILE(arg0));
+        return LOCALIZER.localize(localizableCONFIGURATION_NOT_BINDING_FILE(arg0));
+    }
+
+    private static class BundleSupplier
+        implements ResourceBundleSupplier
+    {
+
+
+        public ResourceBundle getResourceBundle(Locale locale) {
+            return ResourceBundle.getBundle(BUNDLE_NAME, locale);
+        }
+
     }
 
 }
diff --git a/src/jdk.xml.ws/share/classes/com/sun/tools/internal/ws/resources/GeneratorMessages.java b/src/jdk.xml.ws/share/classes/com/sun/tools/internal/ws/resources/GeneratorMessages.java
index a750a57..5ab2dc8 100644
--- a/src/jdk.xml.ws/share/classes/com/sun/tools/internal/ws/resources/GeneratorMessages.java
+++ b/src/jdk.xml.ws/share/classes/com/sun/tools/internal/ws/resources/GeneratorMessages.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,12 +25,12 @@
 
 package com.sun.tools.internal.ws.resources;
 
-import com.sun.istack.internal.localization.Localizable;
-import com.sun.istack.internal.localization.LocalizableMessageFactory;
-import com.sun.istack.internal.localization.Localizer;
-
 import java.util.Locale;
 import java.util.ResourceBundle;
+import com.sun.istack.internal.localization.Localizable;
+import com.sun.istack.internal.localization.LocalizableMessageFactory;
+import com.sun.istack.internal.localization.LocalizableMessageFactory.ResourceBundleSupplier;
+import com.sun.istack.internal.localization.Localizer;
 
 
 /**
@@ -38,65 +38,13 @@
  *
  */
 public final class GeneratorMessages {
+
     private final static String BUNDLE_NAME = "com.sun.tools.internal.ws.resources.generator";
-    private final static LocalizableMessageFactory messageFactory =
-        new LocalizableMessageFactory(BUNDLE_NAME, GeneratorMessages::getResourceBundle);
-    private final static Localizer localizer = new Localizer();
-
-    private static ResourceBundle getResourceBundle(Locale locale) {
-        return ResourceBundle.getBundle(BUNDLE_NAME, locale);
-    }
-
-    public static Localizable localizableGENERATOR_SERVICE_CLASS_ALREADY_EXIST(Object arg0, Object arg1) {
-        return messageFactory.getMessage("generator.service.classAlreadyExist", arg0, arg1);
-    }
-
-    /**
-     * Could not generate Service, class: {0} already exists. Rename wsdl:Service "{1}" using JAX-WS customization
-     *
-     */
-    public static String GENERATOR_SERVICE_CLASS_ALREADY_EXIST(Object arg0, Object arg1) {
-        return localizer.localize(localizableGENERATOR_SERVICE_CLASS_ALREADY_EXIST(arg0, arg1));
-    }
-
-    public static Localizable localizableGENERATOR_SEI_CLASS_ALREADY_EXIST(Object arg0, Object arg1) {
-        return messageFactory.getMessage("generator.sei.classAlreadyExist", arg0, arg1);
-    }
-
-    /**
-     * Could not generate SEI, class: {0} already exists. Rename wsdl:portType "{1}" using JAX-WS customization
-     *
-     */
-    public static String GENERATOR_SEI_CLASS_ALREADY_EXIST(Object arg0, Object arg1) {
-        return localizer.localize(localizableGENERATOR_SEI_CLASS_ALREADY_EXIST(arg0, arg1));
-    }
-
-    public static Localizable localizableGENERATOR_NESTED_GENERATOR_ERROR(Object arg0) {
-        return messageFactory.getMessage("generator.nestedGeneratorError", arg0);
-    }
-
-    /**
-     * generator error: {0}
-     *
-     */
-    public static String GENERATOR_NESTED_GENERATOR_ERROR(Object arg0) {
-        return localizer.localize(localizableGENERATOR_NESTED_GENERATOR_ERROR(arg0));
-    }
-
-    public static Localizable localizableGENERATOR_INTERNAL_ERROR_SHOULD_NOT_HAPPEN(Object arg0) {
-        return messageFactory.getMessage("generator.internal.error.should.not.happen", arg0);
-    }
-
-    /**
-     * internal error (should not happen): {0}
-     *
-     */
-    public static String GENERATOR_INTERNAL_ERROR_SHOULD_NOT_HAPPEN(Object arg0) {
-        return localizer.localize(localizableGENERATOR_INTERNAL_ERROR_SHOULD_NOT_HAPPEN(arg0));
-    }
+    private final static LocalizableMessageFactory MESSAGE_FACTORY = new LocalizableMessageFactory(BUNDLE_NAME, new GeneratorMessages.BundleSupplier());
+    private final static Localizer LOCALIZER = new Localizer();
 
     public static Localizable localizableGENERATOR_INDENTINGWRITER_CHARSET_CANTENCODE(Object arg0) {
-        return messageFactory.getMessage("generator.indentingwriter.charset.cantencode", arg0);
+        return MESSAGE_FACTORY.getMessage("generator.indentingwriter.charset.cantencode", arg0);
     }
 
     /**
@@ -104,11 +52,11 @@
      *
      */
     public static String GENERATOR_INDENTINGWRITER_CHARSET_CANTENCODE(Object arg0) {
-        return localizer.localize(localizableGENERATOR_INDENTINGWRITER_CHARSET_CANTENCODE(arg0));
+        return LOCALIZER.localize(localizableGENERATOR_INDENTINGWRITER_CHARSET_CANTENCODE(arg0));
     }
 
     public static Localizable localizableGENERATOR_CANNOT_CREATE_DIR(Object arg0) {
-        return messageFactory.getMessage("generator.cannot.create.dir", arg0);
+        return MESSAGE_FACTORY.getMessage("generator.cannot.create.dir", arg0);
     }
 
     /**
@@ -116,7 +64,66 @@
      *
      */
     public static String GENERATOR_CANNOT_CREATE_DIR(Object arg0) {
-        return localizer.localize(localizableGENERATOR_CANNOT_CREATE_DIR(arg0));
+        return LOCALIZER.localize(localizableGENERATOR_CANNOT_CREATE_DIR(arg0));
+    }
+
+    public static Localizable localizableGENERATOR_INTERNAL_ERROR_SHOULD_NOT_HAPPEN(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("generator.internal.error.should.not.happen", arg0);
+    }
+
+    /**
+     * internal error (should not happen): {0}
+     *
+     */
+    public static String GENERATOR_INTERNAL_ERROR_SHOULD_NOT_HAPPEN(Object arg0) {
+        return LOCALIZER.localize(localizableGENERATOR_INTERNAL_ERROR_SHOULD_NOT_HAPPEN(arg0));
+    }
+
+    public static Localizable localizableGENERATOR_NESTED_GENERATOR_ERROR(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("generator.nestedGeneratorError", arg0);
+    }
+
+    /**
+     * generator error: {0}
+     *
+     */
+    public static String GENERATOR_NESTED_GENERATOR_ERROR(Object arg0) {
+        return LOCALIZER.localize(localizableGENERATOR_NESTED_GENERATOR_ERROR(arg0));
+    }
+
+    public static Localizable localizableGENERATOR_SEI_CLASS_ALREADY_EXIST(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("generator.sei.classAlreadyExist", arg0, arg1);
+    }
+
+    /**
+     * Could not generate SEI, class: {0} already exists. Rename wsdl:portType "{1}" using JAX-WS customization
+     *
+     */
+    public static String GENERATOR_SEI_CLASS_ALREADY_EXIST(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableGENERATOR_SEI_CLASS_ALREADY_EXIST(arg0, arg1));
+    }
+
+    public static Localizable localizableGENERATOR_SERVICE_CLASS_ALREADY_EXIST(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("generator.service.classAlreadyExist", arg0, arg1);
+    }
+
+    /**
+     * Could not generate Service, class: {0} already exists. Rename wsdl:Service "{1}" using JAX-WS customization
+     *
+     */
+    public static String GENERATOR_SERVICE_CLASS_ALREADY_EXIST(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableGENERATOR_SERVICE_CLASS_ALREADY_EXIST(arg0, arg1));
+    }
+
+    private static class BundleSupplier
+        implements ResourceBundleSupplier
+    {
+
+
+        public ResourceBundle getResourceBundle(Locale locale) {
+            return ResourceBundle.getBundle(BUNDLE_NAME, locale);
+        }
+
     }
 
 }
diff --git a/src/jdk.xml.ws/share/classes/com/sun/tools/internal/ws/resources/JavacompilerMessages.java b/src/jdk.xml.ws/share/classes/com/sun/tools/internal/ws/resources/JavacompilerMessages.java
index 8c72a46..dda631c 100644
--- a/src/jdk.xml.ws/share/classes/com/sun/tools/internal/ws/resources/JavacompilerMessages.java
+++ b/src/jdk.xml.ws/share/classes/com/sun/tools/internal/ws/resources/JavacompilerMessages.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,12 +25,12 @@
 
 package com.sun.tools.internal.ws.resources;
 
-import com.sun.istack.internal.localization.Localizable;
-import com.sun.istack.internal.localization.LocalizableMessageFactory;
-import com.sun.istack.internal.localization.Localizer;
-
 import java.util.Locale;
 import java.util.ResourceBundle;
+import com.sun.istack.internal.localization.Localizable;
+import com.sun.istack.internal.localization.LocalizableMessageFactory;
+import com.sun.istack.internal.localization.LocalizableMessageFactory.ResourceBundleSupplier;
+import com.sun.istack.internal.localization.Localizer;
 
 
 /**
@@ -38,17 +38,13 @@
  *
  */
 public final class JavacompilerMessages {
-    private final static String BUNDLE_NAME = "com.sun.tools.internal.ws.resources.javacompiler";
-    private final static LocalizableMessageFactory messageFactory =
-        new LocalizableMessageFactory(BUNDLE_NAME, JavacompilerMessages::getResourceBundle);
-    private final static Localizer localizer = new Localizer();
 
-    private static ResourceBundle getResourceBundle(Locale locale) {
-        return ResourceBundle.getBundle(BUNDLE_NAME, locale);
-    }
+    private final static String BUNDLE_NAME = "com.sun.tools.internal.ws.resources.javacompiler";
+    private final static LocalizableMessageFactory MESSAGE_FACTORY = new LocalizableMessageFactory(BUNDLE_NAME, new JavacompilerMessages.BundleSupplier());
+    private final static Localizer LOCALIZER = new Localizer();
 
     public static Localizable localizableNO_JAVACOMPILER_ERROR() {
-        return messageFactory.getMessage("no.javacompiler.error");
+        return MESSAGE_FACTORY.getMessage("no.javacompiler.error");
     }
 
     /**
@@ -56,7 +52,18 @@
      *
      */
     public static String NO_JAVACOMPILER_ERROR() {
-        return localizer.localize(localizableNO_JAVACOMPILER_ERROR());
+        return LOCALIZER.localize(localizableNO_JAVACOMPILER_ERROR());
+    }
+
+    private static class BundleSupplier
+        implements ResourceBundleSupplier
+    {
+
+
+        public ResourceBundle getResourceBundle(Locale locale) {
+            return ResourceBundle.getBundle(BUNDLE_NAME, locale);
+        }
+
     }
 
 }
diff --git a/src/jdk.xml.ws/share/classes/com/sun/tools/internal/ws/resources/ModelMessages.java b/src/jdk.xml.ws/share/classes/com/sun/tools/internal/ws/resources/ModelMessages.java
index 722a0a7..7fc93f8 100644
--- a/src/jdk.xml.ws/share/classes/com/sun/tools/internal/ws/resources/ModelMessages.java
+++ b/src/jdk.xml.ws/share/classes/com/sun/tools/internal/ws/resources/ModelMessages.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,12 +25,12 @@
 
 package com.sun.tools.internal.ws.resources;
 
-import com.sun.istack.internal.localization.Localizable;
-import com.sun.istack.internal.localization.LocalizableMessageFactory;
-import com.sun.istack.internal.localization.Localizer;
-
 import java.util.Locale;
 import java.util.ResourceBundle;
+import com.sun.istack.internal.localization.Localizable;
+import com.sun.istack.internal.localization.LocalizableMessageFactory;
+import com.sun.istack.internal.localization.LocalizableMessageFactory.ResourceBundleSupplier;
+import com.sun.istack.internal.localization.Localizer;
 
 
 /**
@@ -38,161 +38,61 @@
  *
  */
 public final class ModelMessages {
+
     private final static String BUNDLE_NAME = "com.sun.tools.internal.ws.resources.model";
-    private final static LocalizableMessageFactory messageFactory =
-        new LocalizableMessageFactory(BUNDLE_NAME, ModelMessages::getResourceBundle);
-    private final static Localizer localizer = new Localizer();
+    private final static LocalizableMessageFactory MESSAGE_FACTORY = new LocalizableMessageFactory(BUNDLE_NAME, new ModelMessages.BundleSupplier());
+    private final static Localizer LOCALIZER = new Localizer();
 
-    private static ResourceBundle getResourceBundle(Locale locale) {
-        return ResourceBundle.getBundle(BUNDLE_NAME, locale);
-    }
-
-    public static Localizable localizableMODEL_NESTED_MODEL_ERROR(Object arg0) {
-        return messageFactory.getMessage("model.nestedModelError", arg0);
+    public static Localizable localizableMODEL_IMPORTER_INVALID_MINOR_MINOR_OR_PATCH_VERSION(Object arg0, Object arg1, Object arg2) {
+        return MESSAGE_FACTORY.getMessage("model.importer.invalidMinorMinorOrPatchVersion", arg0, arg1, arg2);
     }
 
     /**
-     * model error: {0}
+     * model version "{1}" newer than runtime version "{2}" (line {0}): need to upgrade to a newer runtime
      *
      */
-    public static String MODEL_NESTED_MODEL_ERROR(Object arg0) {
-        return localizer.localize(localizableMODEL_NESTED_MODEL_ERROR(arg0));
+    public static String MODEL_IMPORTER_INVALID_MINOR_MINOR_OR_PATCH_VERSION(Object arg0, Object arg1, Object arg2) {
+        return LOCALIZER.localize(localizableMODEL_IMPORTER_INVALID_MINOR_MINOR_OR_PATCH_VERSION(arg0, arg1, arg2));
     }
 
-    public static Localizable localizableMODEL_EXCEPTION_NOTUNIQUE(Object arg0, Object arg1) {
-        return messageFactory.getMessage("model.exception.notunique", arg0, arg1);
+    public static Localizable localizableMODEL_SCHEMA_UNSUPPORTED_TYPE(Object arg0, Object arg1, Object arg2) {
+        return MESSAGE_FACTORY.getMessage("model.schema.unsupportedType", arg0, arg1, arg2);
     }
 
     /**
-     * Failed to generate Java signature: duplicate exception names {0}. Use JAXWS binding customization to rename the wsdl:part "{1}"
+     * unsupported type ({0}): "{1}" (namespace: {2})
      *
      */
-    public static String MODEL_EXCEPTION_NOTUNIQUE(Object arg0, Object arg1) {
-        return localizer.localize(localizableMODEL_EXCEPTION_NOTUNIQUE(arg0, arg1));
+    public static String MODEL_SCHEMA_UNSUPPORTED_TYPE(Object arg0, Object arg1, Object arg2) {
+        return LOCALIZER.localize(localizableMODEL_SCHEMA_UNSUPPORTED_TYPE(arg0, arg1, arg2));
     }
 
-    public static Localizable localizableMODEL_SCHEMA_INVALID_WILDCARD_ALL_COMPOSITOR(Object arg0) {
-        return messageFactory.getMessage("model.schema.invalidWildcard.allCompositor", arg0);
+    public static Localizable localizableMODEL_IMPORTER_INVALID_CLASS(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("model.importer.invalidClass", arg0, arg1);
     }
 
     /**
-     * xsd:all compositor not supported for the wildcard in schema type: "{0}"
+     * invalid class name "{1}" in model document (line {0})
      *
      */
-    public static String MODEL_SCHEMA_INVALID_WILDCARD_ALL_COMPOSITOR(Object arg0) {
-        return localizer.localize(localizableMODEL_SCHEMA_INVALID_WILDCARD_ALL_COMPOSITOR(arg0));
+    public static String MODEL_IMPORTER_INVALID_CLASS(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableMODEL_IMPORTER_INVALID_CLASS(arg0, arg1));
     }
 
-    public static Localizable localizableMODEL_SCHEMA_SIMPLE_TYPE_WITH_FACETS(Object arg0) {
-        return messageFactory.getMessage("model.schema.simpleTypeWithFacets", arg0);
+    public static Localizable localizableMODEL_ARRAYWRAPPER_NO_SUBTYPES() {
+        return MESSAGE_FACTORY.getMessage("model.arraywrapper.no.subtypes");
     }
 
     /**
-     * facet "{0}" not supported on simple type: "{0}"
+     * LiteralArrayWrapper cannot have subtypes
      *
      */
-    public static String MODEL_SCHEMA_SIMPLE_TYPE_WITH_FACETS(Object arg0) {
-        return localizer.localize(localizableMODEL_SCHEMA_SIMPLE_TYPE_WITH_FACETS(arg0));
-    }
-
-    public static Localizable localizableMODEL_SCHEMA_UNION_NOT_SUPPORTED(Object arg0) {
-        return messageFactory.getMessage("model.schema.unionNotSupported", arg0);
-    }
-
-    /**
-     * simpleType: "{0}" derivation by xsd:union not supported
-     *
-     */
-    public static String MODEL_SCHEMA_UNION_NOT_SUPPORTED(Object arg0) {
-        return localizer.localize(localizableMODEL_SCHEMA_UNION_NOT_SUPPORTED(arg0));
-    }
-
-    public static Localizable localizableMODEL_COMPLEX_TYPE_SIMPLE_CONTENT_RESERVED_NAME(Object arg0) {
-        return messageFactory.getMessage("model.complexType.simpleContent.reservedName", arg0);
-    }
-
-    /**
-     * invalid attribute name: "_value" in complexType: "{0}", _value is JAXWS reserved name, this name is generated in the generated javabean class to hold content value in the generated javabean class for complexType/simpleContent.
-     *
-     */
-    public static String MODEL_COMPLEX_TYPE_SIMPLE_CONTENT_RESERVED_NAME(Object arg0) {
-        return localizer.localize(localizableMODEL_COMPLEX_TYPE_SIMPLE_CONTENT_RESERVED_NAME(arg0));
-    }
-
-    public static Localizable localizableMODEL_IMPORTER_INVALID_ID(Object arg0, Object arg1) {
-        return messageFactory.getMessage("model.importer.invalidId", arg0, arg1);
-    }
-
-    /**
-     * invalid id "{1} in model document (line {0})
-     *
-     */
-    public static String MODEL_IMPORTER_INVALID_ID(Object arg0, Object arg1) {
-        return localizer.localize(localizableMODEL_IMPORTER_INVALID_ID(arg0, arg1));
-    }
-
-    public static Localizable localizableMODEL_SCHEMA_JAXB_EXCEPTION_MESSAGE(Object arg0) {
-        return messageFactory.getMessage("model.schema.jaxbException.message", arg0);
-    }
-
-    /**
-     * "{0}"
-     *
-     */
-    public static String MODEL_SCHEMA_JAXB_EXCEPTION_MESSAGE(Object arg0) {
-        return localizer.localize(localizableMODEL_SCHEMA_JAXB_EXCEPTION_MESSAGE(arg0));
-    }
-
-    public static Localizable localizableMODEL_INVALID_MESSAGE_TYPE(Object arg0) {
-        return messageFactory.getMessage("model.invalid.message.type", arg0);
-    }
-
-    /**
-     * invalid message type: {0}
-     *
-     */
-    public static String MODEL_INVALID_MESSAGE_TYPE(Object arg0) {
-        return localizer.localize(localizableMODEL_INVALID_MESSAGE_TYPE(arg0));
-    }
-
-    public static Localizable localizableCONSOLE_ERROR_REPORTER_UNKNOWN_LOCATION() {
-        return messageFactory.getMessage("ConsoleErrorReporter.UnknownLocation");
-    }
-
-    /**
-     * unknown location
-     *
-     */
-    public static String CONSOLE_ERROR_REPORTER_UNKNOWN_LOCATION() {
-        return localizer.localize(localizableCONSOLE_ERROR_REPORTER_UNKNOWN_LOCATION());
-    }
-
-    public static Localizable localizableMODEL_EXPORTER_UNSUPPORTED_CLASS(Object arg0) {
-        return messageFactory.getMessage("model.exporter.unsupportedClass", arg0);
-    }
-
-    /**
-     * model exporter: unsupported class: {0}
-     *
-     */
-    public static String MODEL_EXPORTER_UNSUPPORTED_CLASS(Object arg0) {
-        return localizer.localize(localizableMODEL_EXPORTER_UNSUPPORTED_CLASS(arg0));
-    }
-
-    public static Localizable localizableMODEL_SCHEMA_ELEMENT_NOT_FOUND(Object arg0) {
-        return messageFactory.getMessage("model.schema.elementNotFound", arg0);
-    }
-
-    /**
-     * Element "{0}" not found.
-     *
-     */
-    public static String MODEL_SCHEMA_ELEMENT_NOT_FOUND(Object arg0) {
-        return localizer.localize(localizableMODEL_SCHEMA_ELEMENT_NOT_FOUND(arg0));
+    public static String MODEL_ARRAYWRAPPER_NO_SUBTYPES() {
+        return LOCALIZER.localize(localizableMODEL_ARRAYWRAPPER_NO_SUBTYPES());
     }
 
     public static Localizable localizableMODEL_UNIQUENESS_JAVASTRUCTURETYPE(Object arg0, Object arg1) {
-        return messageFactory.getMessage("model.uniqueness.javastructuretype", arg0, arg1);
+        return MESSAGE_FACTORY.getMessage("model.uniqueness.javastructuretype", arg0, arg1);
     }
 
     /**
@@ -200,11 +100,83 @@
      *
      */
     public static String MODEL_UNIQUENESS_JAVASTRUCTURETYPE(Object arg0, Object arg1) {
-        return localizer.localize(localizableMODEL_UNIQUENESS_JAVASTRUCTURETYPE(arg0, arg1));
+        return LOCALIZER.localize(localizableMODEL_UNIQUENESS_JAVASTRUCTURETYPE(arg0, arg1));
+    }
+
+    public static Localizable localizableMODEL_SCHEMA_INVALID_SIMPLE_TYPE_INVALID_ITEM_TYPE(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("model.schema.invalidSimpleType.invalidItemType", arg0, arg1);
+    }
+
+    /**
+     * in simpleType: "{0}", itemType "{1}" can not be derived by list
+     *
+     */
+    public static String MODEL_SCHEMA_INVALID_SIMPLE_TYPE_INVALID_ITEM_TYPE(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableMODEL_SCHEMA_INVALID_SIMPLE_TYPE_INVALID_ITEM_TYPE(arg0, arg1));
+    }
+
+    public static Localizable localizableMODEL_IMPORTER_INVALID_VERSION(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("model.importer.invalidVersion", arg0, arg1);
+    }
+
+    /**
+     * invalid version "{1}" in model document (line {0})
+     *
+     */
+    public static String MODEL_IMPORTER_INVALID_VERSION(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableMODEL_IMPORTER_INVALID_VERSION(arg0, arg1));
+    }
+
+    public static Localizable localizableMODEL_EXPORTER_UNSUPPORTED_CLASS(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("model.exporter.unsupportedClass", arg0);
+    }
+
+    /**
+     * model exporter: unsupported class: {0}
+     *
+     */
+    public static String MODEL_EXPORTER_UNSUPPORTED_CLASS(Object arg0) {
+        return LOCALIZER.localize(localizableMODEL_EXPORTER_UNSUPPORTED_CLASS(arg0));
+    }
+
+    public static Localizable localizableMODEL_NESTED_MODEL_ERROR(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("model.nestedModelError", arg0);
+    }
+
+    /**
+     * model error: {0}
+     *
+     */
+    public static String MODEL_NESTED_MODEL_ERROR(Object arg0) {
+        return LOCALIZER.localize(localizableMODEL_NESTED_MODEL_ERROR(arg0));
+    }
+
+    public static Localizable localizableMODEL_EXCEPTION_NOTUNIQUE(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("model.exception.notunique", arg0, arg1);
+    }
+
+    /**
+     * Failed to generate Java signature: duplicate exception names {0}. Use JAXWS binding customization to rename the wsdl:part "{1}"
+     *
+     */
+    public static String MODEL_EXCEPTION_NOTUNIQUE(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableMODEL_EXCEPTION_NOTUNIQUE(arg0, arg1));
+    }
+
+    public static Localizable localizableMODEL_ARRAYWRAPPER_ONLY_ONE_MEMBER() {
+        return MESSAGE_FACTORY.getMessage("model.arraywrapper.only.one.member");
+    }
+
+    /**
+     * LiteralArrayWrapper may only have one element member.
+     *
+     */
+    public static String MODEL_ARRAYWRAPPER_ONLY_ONE_MEMBER() {
+        return LOCALIZER.localize(localizableMODEL_ARRAYWRAPPER_ONLY_ONE_MEMBER());
     }
 
     public static Localizable localizableMODEL_SAXPARSER_EXCEPTION(Object arg0, Object arg1) {
-        return messageFactory.getMessage("model.saxparser.exception", arg0, arg1);
+        return MESSAGE_FACTORY.getMessage("model.saxparser.exception", arg0, arg1);
     }
 
     /**
@@ -213,217 +185,23 @@
      *
      */
     public static String MODEL_SAXPARSER_EXCEPTION(Object arg0, Object arg1) {
-        return localizer.localize(localizableMODEL_SAXPARSER_EXCEPTION(arg0, arg1));
+        return LOCALIZER.localize(localizableMODEL_SAXPARSER_EXCEPTION(arg0, arg1));
     }
 
-    public static Localizable localizableMODEL_SCHEMA_UNSUPPORTED_TYPE(Object arg0, Object arg1, Object arg2) {
-        return messageFactory.getMessage("model.schema.unsupportedType", arg0, arg1, arg2);
+    public static Localizable localizableMODEL_IMPORTER_INVALID_ID(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("model.importer.invalidId", arg0, arg1);
     }
 
     /**
-     * unsupported type ({0}): "{1}" (namespace: {2})
+     * invalid id "{1} in model document (line {0})
      *
      */
-    public static String MODEL_SCHEMA_UNSUPPORTED_TYPE(Object arg0, Object arg1, Object arg2) {
-        return localizer.localize(localizableMODEL_SCHEMA_UNSUPPORTED_TYPE(arg0, arg1, arg2));
-    }
-
-    public static Localizable localizableMODEL_SCHEMA_LIST_NOT_SUPPORTED(Object arg0) {
-        return messageFactory.getMessage("model.schema.listNotSupported", arg0);
-    }
-
-    /**
-     * simpleType: "{0}" derivation by xsd:list not supported
-     *
-     */
-    public static String MODEL_SCHEMA_LIST_NOT_SUPPORTED(Object arg0) {
-        return localizer.localize(localizableMODEL_SCHEMA_LIST_NOT_SUPPORTED(arg0));
-    }
-
-    public static Localizable localizableMODEL_ARRAYWRAPPER_NO_PARENT() {
-        return messageFactory.getMessage("model.arraywrapper.no.parent");
-    }
-
-    /**
-     * LiteralArrayWrapper cannot have a parent type
-     *
-     */
-    public static String MODEL_ARRAYWRAPPER_NO_PARENT() {
-        return localizer.localize(localizableMODEL_ARRAYWRAPPER_NO_PARENT());
-    }
-
-    public static Localizable localizableMODEL_PARENT_TYPE_ALREADY_SET(Object arg0, Object arg1, Object arg2) {
-        return messageFactory.getMessage("model.parent.type.already.set", arg0, arg1, arg2);
-    }
-
-    /**
-     * parent of type "{0}" already set to "{1}", new value = "{2}"
-     *
-     */
-    public static String MODEL_PARENT_TYPE_ALREADY_SET(Object arg0, Object arg1, Object arg2) {
-        return localizer.localize(localizableMODEL_PARENT_TYPE_ALREADY_SET(arg0, arg1, arg2));
-    }
-
-    public static Localizable localizableMODEL_ARRAYWRAPPER_NO_SUBTYPES() {
-        return messageFactory.getMessage("model.arraywrapper.no.subtypes");
-    }
-
-    /**
-     * LiteralArrayWrapper cannot have subtypes
-     *
-     */
-    public static String MODEL_ARRAYWRAPPER_NO_SUBTYPES() {
-        return localizer.localize(localizableMODEL_ARRAYWRAPPER_NO_SUBTYPES());
-    }
-
-    public static Localizable localizableMODEL_IMPORTER_INVALID_MINOR_MINOR_OR_PATCH_VERSION(Object arg0, Object arg1, Object arg2) {
-        return messageFactory.getMessage("model.importer.invalidMinorMinorOrPatchVersion", arg0, arg1, arg2);
-    }
-
-    /**
-     * model version "{1}" newer than runtime version "{2}" (line {0}): need to upgrade to a newer runtime
-     *
-     */
-    public static String MODEL_IMPORTER_INVALID_MINOR_MINOR_OR_PATCH_VERSION(Object arg0, Object arg1, Object arg2) {
-        return localizer.localize(localizableMODEL_IMPORTER_INVALID_MINOR_MINOR_OR_PATCH_VERSION(arg0, arg1, arg2));
-    }
-
-    public static Localizable localizableMODEL_SCHEMA_CIRCULARITY(Object arg0) {
-        return messageFactory.getMessage("model.schema.circularity", arg0);
-    }
-
-    /**
-     * circularity detected in schema: "{0}"
-     *
-     */
-    public static String MODEL_SCHEMA_CIRCULARITY(Object arg0) {
-        return localizer.localize(localizableMODEL_SCHEMA_CIRCULARITY(arg0));
-    }
-
-    public static Localizable localizableMODEL_ARRAYWRAPPER_MEMBER_ALREADY_SET() {
-        return messageFactory.getMessage("model.arraywrapper.member.already.set");
-    }
-
-    /**
-     * LiteralArrayWrapper element member already set.
-     *
-     */
-    public static String MODEL_ARRAYWRAPPER_MEMBER_ALREADY_SET() {
-        return localizer.localize(localizableMODEL_ARRAYWRAPPER_MEMBER_ALREADY_SET());
-    }
-
-    public static Localizable localizableMODEL_IMPORTER_INVALID_CLASS(Object arg0, Object arg1) {
-        return messageFactory.getMessage("model.importer.invalidClass", arg0, arg1);
-    }
-
-    /**
-     * invalid class name "{1}" in model document (line {0})
-     *
-     */
-    public static String MODEL_IMPORTER_INVALID_CLASS(Object arg0, Object arg1) {
-        return localizer.localize(localizableMODEL_IMPORTER_INVALID_CLASS(arg0, arg1));
-    }
-
-    public static Localizable localizableMODEL_IMPORTER_INVALID_VERSION(Object arg0, Object arg1) {
-        return messageFactory.getMessage("model.importer.invalidVersion", arg0, arg1);
-    }
-
-    /**
-     * invalid version "{1}" in model document (line {0})
-     *
-     */
-    public static String MODEL_IMPORTER_INVALID_VERSION(Object arg0, Object arg1) {
-        return localizer.localize(localizableMODEL_IMPORTER_INVALID_VERSION(arg0, arg1));
-    }
-
-    public static Localizable localizableCONSOLE_ERROR_REPORTER_LINE_X_OF_Y(Object arg0, Object arg1) {
-        return messageFactory.getMessage("ConsoleErrorReporter.LineXOfY", arg0, arg1);
-    }
-
-    /**
-     *   line {0} of {1}
-     *
-     */
-    public static String CONSOLE_ERROR_REPORTER_LINE_X_OF_Y(Object arg0, Object arg1) {
-        return localizer.localize(localizableCONSOLE_ERROR_REPORTER_LINE_X_OF_Y(arg0, arg1));
-    }
-
-    public static Localizable localizableMODEL_PARAMETER_NOTUNIQUE(Object arg0, Object arg1) {
-        return messageFactory.getMessage("model.parameter.notunique", arg0, arg1);
-    }
-
-    /**
-     * Failed to generate Java signature: duplicate parameter name "{0}". Try one of these
-     *  1. Use JAXWS binding customization to rename the wsdl:part "{1}"
-     *  2. Run wsimport with -extension switch.
-     *
-     */
-    public static String MODEL_PARAMETER_NOTUNIQUE(Object arg0, Object arg1) {
-        return localizer.localize(localizableMODEL_PARAMETER_NOTUNIQUE(arg0, arg1));
-    }
-
-    public static Localizable localizableMODEL_SCHEMA_INVALID_SIMPLE_TYPE_INVALID_ITEM_TYPE(Object arg0, Object arg1) {
-        return messageFactory.getMessage("model.schema.invalidSimpleType.invalidItemType", arg0, arg1);
-    }
-
-    /**
-     * in simpleType: "{0}", itemType "{1}" can not be derived by list
-     *
-     */
-    public static String MODEL_SCHEMA_INVALID_SIMPLE_TYPE_INVALID_ITEM_TYPE(Object arg0, Object arg1) {
-        return localizer.localize(localizableMODEL_SCHEMA_INVALID_SIMPLE_TYPE_INVALID_ITEM_TYPE(arg0, arg1));
-    }
-
-    public static Localizable localizableMODEL_UNIQUENESS() {
-        return messageFactory.getMessage("model.uniqueness");
-    }
-
-    /**
-     * uniqueness constraint violation
-     *
-     */
-    public static String MODEL_UNIQUENESS() {
-        return localizer.localize(localizableMODEL_UNIQUENESS());
-    }
-
-    public static Localizable localizable_002F_002F_REPLACEMENT() {
-        return messageFactory.getMessage("//replacement");
-    }
-
-    /**
-     * for Uxxx codes
-     *
-     */
-    public static String _002F_002F_REPLACEMENT() {
-        return localizer.localize(localizable_002F_002F_REPLACEMENT());
-    }
-
-    public static Localizable localizableMODEL_SCHEMA_INVALID_SIMPLE_TYPE_NO_ITEM_LITERAL_TYPE(Object arg0, Object arg1) {
-        return messageFactory.getMessage("model.schema.invalidSimpleType.noItemLiteralType", arg0, arg1);
-    }
-
-    /**
-     * in simpleType: "{0}", xsd:list itemType "{1}" is invalid
-     *
-     */
-    public static String MODEL_SCHEMA_INVALID_SIMPLE_TYPE_NO_ITEM_LITERAL_TYPE(Object arg0, Object arg1) {
-        return localizer.localize(localizableMODEL_SCHEMA_INVALID_SIMPLE_TYPE_NO_ITEM_LITERAL_TYPE(arg0, arg1));
-    }
-
-    public static Localizable localizableMODEL_ARRAYWRAPPER_ONLY_ONE_MEMBER() {
-        return messageFactory.getMessage("model.arraywrapper.only.one.member");
-    }
-
-    /**
-     * LiteralArrayWrapper may only have one element member.
-     *
-     */
-    public static String MODEL_ARRAYWRAPPER_ONLY_ONE_MEMBER() {
-        return localizer.localize(localizableMODEL_ARRAYWRAPPER_ONLY_ONE_MEMBER());
+    public static String MODEL_IMPORTER_INVALID_ID(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableMODEL_IMPORTER_INVALID_ID(arg0, arg1));
     }
 
     public static Localizable localizableMODEL_PARAMETER_NOTUNIQUE_WRAPPER(Object arg0, Object arg1) {
-        return messageFactory.getMessage("model.parameter.notunique.wrapper", arg0, arg1);
+        return MESSAGE_FACTORY.getMessage("model.parameter.notunique.wrapper", arg0, arg1);
     }
 
     /**
@@ -434,23 +212,47 @@
      *
      */
     public static String MODEL_PARAMETER_NOTUNIQUE_WRAPPER(Object arg0, Object arg1) {
-        return localizer.localize(localizableMODEL_PARAMETER_NOTUNIQUE_WRAPPER(arg0, arg1));
+        return LOCALIZER.localize(localizableMODEL_PARAMETER_NOTUNIQUE_WRAPPER(arg0, arg1));
     }
 
-    public static Localizable localizableMODEL_SCHEMA_NOT_IMPLEMENTED(Object arg0) {
-        return messageFactory.getMessage("model.schema.notImplemented", arg0);
+    public static Localizable localizableMODEL_SCHEMA_ELEMENT_NOT_FOUND(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("model.schema.elementNotFound", arg0);
     }
 
     /**
-     * unsupported XML Schema feature ({0})
+     * Element "{0}" not found.
      *
      */
-    public static String MODEL_SCHEMA_NOT_IMPLEMENTED(Object arg0) {
-        return localizer.localize(localizableMODEL_SCHEMA_NOT_IMPLEMENTED(arg0));
+    public static String MODEL_SCHEMA_ELEMENT_NOT_FOUND(Object arg0) {
+        return LOCALIZER.localize(localizableMODEL_SCHEMA_ELEMENT_NOT_FOUND(arg0));
+    }
+
+    public static Localizable localizableMODEL_SCHEMA_UNION_NOT_SUPPORTED(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("model.schema.unionNotSupported", arg0);
+    }
+
+    /**
+     * simpleType: "{0}" derivation by xsd:union not supported
+     *
+     */
+    public static String MODEL_SCHEMA_UNION_NOT_SUPPORTED(Object arg0) {
+        return LOCALIZER.localize(localizableMODEL_SCHEMA_UNION_NOT_SUPPORTED(arg0));
+    }
+
+    public static Localizable localizableCONSOLE_ERROR_REPORTER_UNKNOWN_LOCATION() {
+        return MESSAGE_FACTORY.getMessage("ConsoleErrorReporter.UnknownLocation");
+    }
+
+    /**
+     * unknown location
+     *
+     */
+    public static String CONSOLE_ERROR_REPORTER_UNKNOWN_LOCATION() {
+        return LOCALIZER.localize(localizableCONSOLE_ERROR_REPORTER_UNKNOWN_LOCATION());
     }
 
     public static Localizable localizableMODEL_SCHEMA_INVALID_LITERAL_IN_ENUMERATION_ANONYMOUS(Object arg0) {
-        return messageFactory.getMessage("model.schema.invalidLiteralInEnumeration.anonymous", arg0);
+        return MESSAGE_FACTORY.getMessage("model.schema.invalidLiteralInEnumeration.anonymous", arg0);
     }
 
     /**
@@ -458,23 +260,11 @@
      *
      */
     public static String MODEL_SCHEMA_INVALID_LITERAL_IN_ENUMERATION_ANONYMOUS(Object arg0) {
-        return localizer.localize(localizableMODEL_SCHEMA_INVALID_LITERAL_IN_ENUMERATION_ANONYMOUS(arg0));
-    }
-
-    public static Localizable localizableMODEL_PART_NOT_UNIQUE(Object arg0, Object arg1) {
-        return messageFactory.getMessage("model.part.notUnique", arg0, arg1);
-    }
-
-    /**
-     * parts in wsdl:message "{0}", reference "{1}", they must reference unique global elements.
-     *
-     */
-    public static String MODEL_PART_NOT_UNIQUE(Object arg0, Object arg1) {
-        return localizer.localize(localizableMODEL_PART_NOT_UNIQUE(arg0, arg1));
+        return LOCALIZER.localize(localizableMODEL_SCHEMA_INVALID_LITERAL_IN_ENUMERATION_ANONYMOUS(arg0));
     }
 
     public static Localizable localizableMODEL_ARRAYWRAPPER_NO_CONTENT_MEMBER() {
-        return messageFactory.getMessage("model.arraywrapper.no.content.member");
+        return MESSAGE_FACTORY.getMessage("model.arraywrapper.no.content.member");
     }
 
     /**
@@ -482,7 +272,224 @@
      *
      */
     public static String MODEL_ARRAYWRAPPER_NO_CONTENT_MEMBER() {
-        return localizer.localize(localizableMODEL_ARRAYWRAPPER_NO_CONTENT_MEMBER());
+        return LOCALIZER.localize(localizableMODEL_ARRAYWRAPPER_NO_CONTENT_MEMBER());
+    }
+
+    public static Localizable localizableMODEL_ARRAYWRAPPER_MEMBER_ALREADY_SET() {
+        return MESSAGE_FACTORY.getMessage("model.arraywrapper.member.already.set");
+    }
+
+    /**
+     * LiteralArrayWrapper element member already set.
+     *
+     */
+    public static String MODEL_ARRAYWRAPPER_MEMBER_ALREADY_SET() {
+        return LOCALIZER.localize(localizableMODEL_ARRAYWRAPPER_MEMBER_ALREADY_SET());
+    }
+
+    public static Localizable localizableMODEL_INVALID_MESSAGE_TYPE(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("model.invalid.message.type", arg0);
+    }
+
+    /**
+     * invalid message type: {0}
+     *
+     */
+    public static String MODEL_INVALID_MESSAGE_TYPE(Object arg0) {
+        return LOCALIZER.localize(localizableMODEL_INVALID_MESSAGE_TYPE(arg0));
+    }
+
+    public static Localizable localizableMODEL_SCHEMA_CIRCULARITY(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("model.schema.circularity", arg0);
+    }
+
+    /**
+     * circularity detected in schema: "{0}"
+     *
+     */
+    public static String MODEL_SCHEMA_CIRCULARITY(Object arg0) {
+        return LOCALIZER.localize(localizableMODEL_SCHEMA_CIRCULARITY(arg0));
+    }
+
+    public static Localizable localizableMODEL_SCHEMA_INVALID_SIMPLE_TYPE_NO_ITEM_LITERAL_TYPE(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("model.schema.invalidSimpleType.noItemLiteralType", arg0, arg1);
+    }
+
+    /**
+     * in simpleType: "{0}", xsd:list itemType "{1}" is invalid
+     *
+     */
+    public static String MODEL_SCHEMA_INVALID_SIMPLE_TYPE_NO_ITEM_LITERAL_TYPE(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableMODEL_SCHEMA_INVALID_SIMPLE_TYPE_NO_ITEM_LITERAL_TYPE(arg0, arg1));
+    }
+
+    public static Localizable localizableMODEL_SCHEMA_LIST_NOT_SUPPORTED(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("model.schema.listNotSupported", arg0);
+    }
+
+    /**
+     * simpleType: "{0}" derivation by xsd:list not supported
+     *
+     */
+    public static String MODEL_SCHEMA_LIST_NOT_SUPPORTED(Object arg0) {
+        return LOCALIZER.localize(localizableMODEL_SCHEMA_LIST_NOT_SUPPORTED(arg0));
+    }
+
+    public static Localizable localizable_002F_002F_REPLACEMENT() {
+        return MESSAGE_FACTORY.getMessage("//replacement");
+    }
+
+    /**
+     * for Uxxx codes
+     *
+     */
+    public static String _002F_002F_REPLACEMENT() {
+        return LOCALIZER.localize(localizable_002F_002F_REPLACEMENT());
+    }
+
+    public static Localizable localizableMODEL_PART_NOT_UNIQUE(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("model.part.notUnique", arg0, arg1);
+    }
+
+    /**
+     * parts in wsdl:message "{0}", reference "{1}", they must reference unique global elements.
+     *
+     */
+    public static String MODEL_PART_NOT_UNIQUE(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableMODEL_PART_NOT_UNIQUE(arg0, arg1));
+    }
+
+    public static Localizable localizableMODEL_ARRAYWRAPPER_NO_PARENT() {
+        return MESSAGE_FACTORY.getMessage("model.arraywrapper.no.parent");
+    }
+
+    /**
+     * LiteralArrayWrapper cannot have a parent type
+     *
+     */
+    public static String MODEL_ARRAYWRAPPER_NO_PARENT() {
+        return LOCALIZER.localize(localizableMODEL_ARRAYWRAPPER_NO_PARENT());
+    }
+
+    public static Localizable localizableMODEL_COMPLEX_TYPE_SIMPLE_CONTENT_RESERVED_NAME(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("model.complexType.simpleContent.reservedName", arg0);
+    }
+
+    /**
+     * invalid attribute name: "_value" in complexType: "{0}", _value is JAXWS reserved name, this name is generated in the generated javabean class to hold content value in the generated javabean class for complexType/simpleContent.
+     *
+     */
+    public static String MODEL_COMPLEX_TYPE_SIMPLE_CONTENT_RESERVED_NAME(Object arg0) {
+        return LOCALIZER.localize(localizableMODEL_COMPLEX_TYPE_SIMPLE_CONTENT_RESERVED_NAME(arg0));
+    }
+
+    public static Localizable localizableMODEL_SCHEMA_SIMPLE_TYPE_WITH_FACETS(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("model.schema.simpleTypeWithFacets", arg0);
+    }
+
+    /**
+     * facet "{0}" not supported on simple type: "{0}"
+     *
+     */
+    public static String MODEL_SCHEMA_SIMPLE_TYPE_WITH_FACETS(Object arg0) {
+        return LOCALIZER.localize(localizableMODEL_SCHEMA_SIMPLE_TYPE_WITH_FACETS(arg0));
+    }
+
+    public static Localizable localizableMODEL_SCHEMA_NOT_IMPLEMENTED(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("model.schema.notImplemented", arg0);
+    }
+
+    /**
+     * unsupported XML Schema feature ({0})
+     *
+     */
+    public static String MODEL_SCHEMA_NOT_IMPLEMENTED(Object arg0) {
+        return LOCALIZER.localize(localizableMODEL_SCHEMA_NOT_IMPLEMENTED(arg0));
+    }
+
+    public static Localizable localizableMODEL_SCHEMA_JAXB_EXCEPTION_MESSAGE(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("model.schema.jaxbException.message", arg0);
+    }
+
+    /**
+     * "{0}"
+     *
+     */
+    public static String MODEL_SCHEMA_JAXB_EXCEPTION_MESSAGE(Object arg0) {
+        return LOCALIZER.localize(localizableMODEL_SCHEMA_JAXB_EXCEPTION_MESSAGE(arg0));
+    }
+
+    public static Localizable localizableMODEL_UNIQUENESS() {
+        return MESSAGE_FACTORY.getMessage("model.uniqueness");
+    }
+
+    /**
+     * uniqueness constraint violation
+     *
+     */
+    public static String MODEL_UNIQUENESS() {
+        return LOCALIZER.localize(localizableMODEL_UNIQUENESS());
+    }
+
+    public static Localizable localizableMODEL_SCHEMA_INVALID_WILDCARD_ALL_COMPOSITOR(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("model.schema.invalidWildcard.allCompositor", arg0);
+    }
+
+    /**
+     * xsd:all compositor not supported for the wildcard in schema type: "{0}"
+     *
+     */
+    public static String MODEL_SCHEMA_INVALID_WILDCARD_ALL_COMPOSITOR(Object arg0) {
+        return LOCALIZER.localize(localizableMODEL_SCHEMA_INVALID_WILDCARD_ALL_COMPOSITOR(arg0));
+    }
+
+    public static Localizable localizableCONSOLE_ERROR_REPORTER_LINE_X_OF_Y(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("ConsoleErrorReporter.LineXOfY", arg0, arg1);
+    }
+
+    /**
+     *   line {0} of {1}
+     *
+     */
+    public static String CONSOLE_ERROR_REPORTER_LINE_X_OF_Y(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableCONSOLE_ERROR_REPORTER_LINE_X_OF_Y(arg0, arg1));
+    }
+
+    public static Localizable localizableMODEL_PARENT_TYPE_ALREADY_SET(Object arg0, Object arg1, Object arg2) {
+        return MESSAGE_FACTORY.getMessage("model.parent.type.already.set", arg0, arg1, arg2);
+    }
+
+    /**
+     * parent of type "{0}" already set to "{1}", new value = "{2}"
+     *
+     */
+    public static String MODEL_PARENT_TYPE_ALREADY_SET(Object arg0, Object arg1, Object arg2) {
+        return LOCALIZER.localize(localizableMODEL_PARENT_TYPE_ALREADY_SET(arg0, arg1, arg2));
+    }
+
+    public static Localizable localizableMODEL_PARAMETER_NOTUNIQUE(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("model.parameter.notunique", arg0, arg1);
+    }
+
+    /**
+     * Failed to generate Java signature: duplicate parameter name "{0}". Try one of these
+     *  1. Use JAXWS binding customization to rename the wsdl:part "{1}"
+     *  2. Run wsimport with -extension switch.
+     *
+     */
+    public static String MODEL_PARAMETER_NOTUNIQUE(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableMODEL_PARAMETER_NOTUNIQUE(arg0, arg1));
+    }
+
+    private static class BundleSupplier
+        implements ResourceBundleSupplier
+    {
+
+
+        public ResourceBundle getResourceBundle(Locale locale) {
+            return ResourceBundle.getBundle(BUNDLE_NAME, locale);
+        }
+
     }
 
 }
diff --git a/src/jdk.xml.ws/share/classes/com/sun/tools/internal/ws/resources/ModelerMessages.java b/src/jdk.xml.ws/share/classes/com/sun/tools/internal/ws/resources/ModelerMessages.java
index 708ffc3..542aa68 100644
--- a/src/jdk.xml.ws/share/classes/com/sun/tools/internal/ws/resources/ModelerMessages.java
+++ b/src/jdk.xml.ws/share/classes/com/sun/tools/internal/ws/resources/ModelerMessages.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,12 +25,12 @@
 
 package com.sun.tools.internal.ws.resources;
 
-import com.sun.istack.internal.localization.Localizable;
-import com.sun.istack.internal.localization.LocalizableMessageFactory;
-import com.sun.istack.internal.localization.Localizer;
-
 import java.util.Locale;
 import java.util.ResourceBundle;
+import com.sun.istack.internal.localization.Localizable;
+import com.sun.istack.internal.localization.LocalizableMessageFactory;
+import com.sun.istack.internal.localization.LocalizableMessageFactory.ResourceBundleSupplier;
+import com.sun.istack.internal.localization.Localizer;
 
 
 /**
@@ -38,401 +38,13 @@
  *
  */
 public final class ModelerMessages {
+
     private final static String BUNDLE_NAME = "com.sun.tools.internal.ws.resources.modeler";
-    private final static LocalizableMessageFactory messageFactory =
-        new LocalizableMessageFactory(BUNDLE_NAME, ModelerMessages::getResourceBundle);
-    private final static Localizer localizer = new Localizer();
-
-    private static ResourceBundle getResourceBundle(Locale locale) {
-        return ResourceBundle.getBundle(BUNDLE_NAME, locale);
-    }
-
-    public static Localizable localizableMIMEMODELER_INVALID_MIME_CONTENT_INVALID_SCHEMA_TYPE(Object arg0, Object arg1) {
-        return messageFactory.getMessage("mimemodeler.invalidMimeContent.invalidSchemaType", arg0, arg1);
-    }
-
-    /**
-     * Ignoring the mime:part. mime part: {0} can not be mapped to schema type: {1}
-     *
-     */
-    public static String MIMEMODELER_INVALID_MIME_CONTENT_INVALID_SCHEMA_TYPE(Object arg0, Object arg1) {
-        return localizer.localize(localizableMIMEMODELER_INVALID_MIME_CONTENT_INVALID_SCHEMA_TYPE(arg0, arg1));
-    }
-
-    public static Localizable localizableWSDLMODELER_INVALID_PARAMETERORDER_PARAMETER(Object arg0, Object arg1) {
-        return messageFactory.getMessage("wsdlmodeler.invalid.parameterorder.parameter", arg0, arg1);
-    }
-
-    /**
-     * "{0}" specified in the parameterOrder attribute of operation "{1}" is not a valid part of the message.
-     *
-     */
-    public static String WSDLMODELER_INVALID_PARAMETERORDER_PARAMETER(Object arg0, Object arg1) {
-        return localizer.localize(localizableWSDLMODELER_INVALID_PARAMETERORDER_PARAMETER(arg0, arg1));
-    }
-
-    public static Localizable localizableWSDLMODELER_INVALID_BINDING_FAULT_NO_SOAP_FAULT_NAME(Object arg0, Object arg1) {
-        return messageFactory.getMessage("wsdlmodeler.invalid.bindingFault.noSoapFaultName", arg0, arg1);
-    }
-
-    /**
-     * soap:fault name not specified, wsdl:fault "{0}" in operation "{1}"
-     *
-     */
-    public static String WSDLMODELER_INVALID_BINDING_FAULT_NO_SOAP_FAULT_NAME(Object arg0, Object arg1) {
-        return localizer.localize(localizableWSDLMODELER_INVALID_BINDING_FAULT_NO_SOAP_FAULT_NAME(arg0, arg1));
-    }
-
-    public static Localizable localizableWSDLMODELER_WARNING_NONCONFORMING_WSDL_IMPORT() {
-        return messageFactory.getMessage("wsdlmodeler.warning.nonconforming.wsdl.import");
-    }
-
-    /**
-     * Non conforming WS-I WSDL used for wsdl:import
-     *
-     */
-    public static String WSDLMODELER_WARNING_NONCONFORMING_WSDL_IMPORT() {
-        return localizer.localize(localizableWSDLMODELER_WARNING_NONCONFORMING_WSDL_IMPORT());
-    }
-
-    public static Localizable localizableWSDLMODELER_INVALID_BINDING_OPERATION_OUTPUT_SOAP_BODY_MISSING_NAMESPACE(Object arg0) {
-        return messageFactory.getMessage("wsdlmodeler.invalid.bindingOperation.outputSoapBody.missingNamespace", arg0);
-    }
-
-    /**
-     * output message of binding operation "{0}" must specify a value for the "namespace" attribute
-     *
-     */
-    public static String WSDLMODELER_INVALID_BINDING_OPERATION_OUTPUT_SOAP_BODY_MISSING_NAMESPACE(Object arg0) {
-        return localizer.localize(localizableWSDLMODELER_INVALID_BINDING_OPERATION_OUTPUT_SOAP_BODY_MISSING_NAMESPACE(arg0));
-    }
-
-    public static Localizable localizableWSDLMODELER_INVALID_OPERATION_FAULT_NOT_LITERAL(Object arg0, Object arg1) {
-        return messageFactory.getMessage("wsdlmodeler.invalid.operation.fault.notLiteral", arg0, arg1);
-    }
-
-    /**
-     * ignoring encoded fault "{0}" in literal binding operation "{1}"
-     *
-     */
-    public static String WSDLMODELER_INVALID_OPERATION_FAULT_NOT_LITERAL(Object arg0, Object arg1) {
-        return localizer.localize(localizableWSDLMODELER_INVALID_OPERATION_FAULT_NOT_LITERAL(arg0, arg1));
-    }
-
-    public static Localizable localizableWSDLMODELER_INVALID_BINDING_OPERATION_INPUT_MISSING_SOAP_BODY(Object arg0) {
-        return messageFactory.getMessage("wsdlmodeler.invalid.bindingOperation.inputMissingSoapBody", arg0);
-    }
-
-    /**
-     * input message of binding operation "{0}" does not have a SOAP body extension
-     *
-     */
-    public static String WSDLMODELER_INVALID_BINDING_OPERATION_INPUT_MISSING_SOAP_BODY(Object arg0) {
-        return localizer.localize(localizableWSDLMODELER_INVALID_BINDING_OPERATION_INPUT_MISSING_SOAP_BODY(arg0));
-    }
-
-    public static Localizable localizableWSDLMODELER_WARNING_IGNORING_SOAP_BINDING_NON_HTTP_TRANSPORT(Object arg0) {
-        return messageFactory.getMessage("wsdlmodeler.warning.ignoringSOAPBinding.nonHTTPTransport", arg0);
-    }
-
-    /**
-     * ignoring SOAP port "{0}": unrecognized transport. try running wsimport with -extension switch.
-     *
-     */
-    public static String WSDLMODELER_WARNING_IGNORING_SOAP_BINDING_NON_HTTP_TRANSPORT(Object arg0) {
-        return localizer.localize(localizableWSDLMODELER_WARNING_IGNORING_SOAP_BINDING_NON_HTTP_TRANSPORT(arg0));
-    }
-
-    public static Localizable localizableWSDLMODELER_INVALID_BINDING_OPERATION_NOT_FOUND(Object arg0, Object arg1) {
-        return messageFactory.getMessage("wsdlmodeler.invalid.bindingOperation.notFound", arg0, arg1);
-    }
-
-    /**
-     * in binding "{1}", operation "{0}" does not match any operation in the corresponding port type
-     *
-     */
-    public static String WSDLMODELER_INVALID_BINDING_OPERATION_NOT_FOUND(Object arg0, Object arg1) {
-        return localizer.localize(localizableWSDLMODELER_INVALID_BINDING_OPERATION_NOT_FOUND(arg0, arg1));
-    }
-
-    public static Localizable localizableWSDLMODELER_UNSUPPORTED_BINDING_MIME() {
-        return messageFactory.getMessage("wsdlmodeler.unsupportedBinding.mime");
-    }
-
-    /**
-     * WSDL MIME binding is not currently supported!
-     *
-     */
-    public static String WSDLMODELER_UNSUPPORTED_BINDING_MIME() {
-        return localizer.localize(localizableWSDLMODELER_UNSUPPORTED_BINDING_MIME());
-    }
-
-    public static Localizable localizableWSDLMODELER_WARNING_IGNORING_HEADER_FAULT_NO_ELEMENT_ATTRIBUTE(Object arg0, Object arg1, Object arg2) {
-        return messageFactory.getMessage("wsdlmodeler.warning.ignoringHeaderFault.noElementAttribute", arg0, arg1, arg2);
-    }
-
-    /**
-     * ignoring header fault part="{0}" message="{1}" of operation {2}
-     *
-     */
-    public static String WSDLMODELER_WARNING_IGNORING_HEADER_FAULT_NO_ELEMENT_ATTRIBUTE(Object arg0, Object arg1, Object arg2) {
-        return localizer.localize(localizableWSDLMODELER_WARNING_IGNORING_HEADER_FAULT_NO_ELEMENT_ATTRIBUTE(arg0, arg1, arg2));
-    }
-
-    public static Localizable localizableWSDLMODELER_INVALID_OPERATION_JAVA_RESERVED_WORD_NOT_ALLOWED_NON_WRAPPER_STYLE(Object arg0, Object arg1, Object arg2) {
-        return messageFactory.getMessage("wsdlmodeler.invalid.operation.javaReservedWordNotAllowed.nonWrapperStyle", arg0, arg1, arg2);
-    }
-
-    /**
-     * Invalid operation "{0}", can''t generate java method. Parameter: part "{2}" in wsdl:message "{1}", is a java keyword. Use customization to change the parameter name or change the wsdl:part name.
-     *
-     */
-    public static String WSDLMODELER_INVALID_OPERATION_JAVA_RESERVED_WORD_NOT_ALLOWED_NON_WRAPPER_STYLE(Object arg0, Object arg1, Object arg2) {
-        return localizer.localize(localizableWSDLMODELER_INVALID_OPERATION_JAVA_RESERVED_WORD_NOT_ALLOWED_NON_WRAPPER_STYLE(arg0, arg1, arg2));
-    }
-
-    public static Localizable localizableWSDLMODELER_INVALID_HEADERFAULT_NOT_LITERAL(Object arg0, Object arg1) {
-        return messageFactory.getMessage("wsdlmodeler.invalid.headerfault.notLiteral", arg0, arg1);
-    }
-
-    /**
-     * Invalid headerfault "{0}" of binding operation "{1}": not literal
-     *
-     */
-    public static String WSDLMODELER_INVALID_HEADERFAULT_NOT_LITERAL(Object arg0, Object arg1) {
-        return localizer.localize(localizableWSDLMODELER_INVALID_HEADERFAULT_NOT_LITERAL(arg0, arg1));
-    }
-
-    public static Localizable localizableMIMEMODELER_INVALID_MIME_CONTENT_DIFFERENT_PART() {
-        return messageFactory.getMessage("mimemodeler.invalidMimeContent.differentPart");
-    }
-
-    /**
-     * Ignoring the mime:part. Invalid mime:part, the mime:content has different part attribute.
-     *
-     */
-    public static String MIMEMODELER_INVALID_MIME_CONTENT_DIFFERENT_PART() {
-        return localizer.localize(localizableMIMEMODELER_INVALID_MIME_CONTENT_DIFFERENT_PART());
-    }
-
-    public static Localizable localizableWSDLMODELER_ERROR_PART_NOT_FOUND(Object arg0, Object arg1) {
-        return messageFactory.getMessage("wsdlmodeler.error.partNotFound", arg0, arg1);
-    }
-
-    /**
-     * part "{1}" of operation "{0}" could not be resolved!
-     *
-     */
-    public static String WSDLMODELER_ERROR_PART_NOT_FOUND(Object arg0, Object arg1) {
-        return localizer.localize(localizableWSDLMODELER_ERROR_PART_NOT_FOUND(arg0, arg1));
-    }
-
-    public static Localizable localizableWSDLMODELER_INVALID_HEADER_MESSAGE_PART_MUST_HAVE_ELEMENT_DESCRIPTOR(Object arg0, Object arg1) {
-        return messageFactory.getMessage("wsdlmodeler.invalid.header.message.partMustHaveElementDescriptor", arg0, arg1);
-    }
-
-    /**
-     * Invalid header "{0}" in operation {1}: part must specify a "element" attribute
-     *
-     */
-    public static String WSDLMODELER_INVALID_HEADER_MESSAGE_PART_MUST_HAVE_ELEMENT_DESCRIPTOR(Object arg0, Object arg1) {
-        return localizer.localize(localizableWSDLMODELER_INVALID_HEADER_MESSAGE_PART_MUST_HAVE_ELEMENT_DESCRIPTOR(arg0, arg1));
-    }
-
-    public static Localizable localizableWSDLMODELER_INVALID_OPERATION_JAVA_RESERVED_WORD_NOT_ALLOWED_OPERATION_NAME(Object arg0) {
-        return messageFactory.getMessage("wsdlmodeler.invalid.operation.javaReservedWordNotAllowed.operationName", arg0);
-    }
-
-    /**
-     * Invalid operation "{0}", it''s java reserved word, can''t generate java method. Use customization to change the operation name.
-     *
-     */
-    public static String WSDLMODELER_INVALID_OPERATION_JAVA_RESERVED_WORD_NOT_ALLOWED_OPERATION_NAME(Object arg0) {
-        return localizer.localize(localizableWSDLMODELER_INVALID_OPERATION_JAVA_RESERVED_WORD_NOT_ALLOWED_OPERATION_NAME(arg0));
-    }
-
-    public static Localizable localizableWSDLMODELER_INVALID_BINDING_FAULT_OUTPUT_MISSING_SOAP_FAULT(Object arg0, Object arg1) {
-        return messageFactory.getMessage("wsdlmodeler.invalid.bindingFault.outputMissingSoapFault", arg0, arg1);
-    }
-
-    /**
-     * fault "{0}" in operation "{1}" does not have a SOAP fault extension
-     *
-     */
-    public static String WSDLMODELER_INVALID_BINDING_FAULT_OUTPUT_MISSING_SOAP_FAULT(Object arg0, Object arg1) {
-        return localizer.localize(localizableWSDLMODELER_INVALID_BINDING_FAULT_OUTPUT_MISSING_SOAP_FAULT(arg0, arg1));
-    }
-
-    public static Localizable localizableWSDLMODELER_WARNING_IGNORING_OPERATION_CANNOT_HANDLE_ELEMENT_MESSAGE_PART(Object arg0) {
-        return messageFactory.getMessage("wsdlmodeler.warning.ignoringOperation.cannotHandleElementMessagePart", arg0);
-    }
-
-    /**
-     * ignoring operation "{0}": message part does not refer to a schema type declaration
-     *
-     */
-    public static String WSDLMODELER_WARNING_IGNORING_OPERATION_CANNOT_HANDLE_ELEMENT_MESSAGE_PART(Object arg0) {
-        return localizer.localize(localizableWSDLMODELER_WARNING_IGNORING_OPERATION_CANNOT_HANDLE_ELEMENT_MESSAGE_PART(arg0));
-    }
-
-    public static Localizable localizableWSDLMODLER_WARNING_OPERATION_USE() {
-        return messageFactory.getMessage("wsdlmodler.warning.operation.use");
-    }
-
-    /**
-     * The WSDL used has operations with literal and encoded use. -f:searchschema is not supported for this scenario.
-     *
-     */
-    public static String WSDLMODLER_WARNING_OPERATION_USE() {
-        return localizer.localize(localizableWSDLMODLER_WARNING_OPERATION_USE());
-    }
-
-    public static Localizable localizableWSDLMODELER_WARNING_IGNORING_NON_SOAP_PORT(Object arg0) {
-        return messageFactory.getMessage("wsdlmodeler.warning.ignoringNonSOAPPort", arg0);
-    }
-
-    /**
-     * ignoring port "{0}": not a standard SOAP port. try running wsimport with -extension switch.
-     *
-     */
-    public static String WSDLMODELER_WARNING_IGNORING_NON_SOAP_PORT(Object arg0) {
-        return localizer.localize(localizableWSDLMODELER_WARNING_IGNORING_NON_SOAP_PORT(arg0));
-    }
-
-    public static Localizable localizableWSDLMODELER_INVALID_BINDING_FAULT_MESSAGE_HAS_MORE_THAN_ONE_PART(Object arg0, Object arg1) {
-        return messageFactory.getMessage("wsdlmodeler.invalid.bindingFault.messageHasMoreThanOnePart", arg0, arg1);
-    }
-
-    /**
-     * fault "{0}" refers to message "{1}", but the message has more than one parts
-     *
-     */
-    public static String WSDLMODELER_INVALID_BINDING_FAULT_MESSAGE_HAS_MORE_THAN_ONE_PART(Object arg0, Object arg1) {
-        return localizer.localize(localizableWSDLMODELER_INVALID_BINDING_FAULT_MESSAGE_HAS_MORE_THAN_ONE_PART(arg0, arg1));
-    }
-
-    public static Localizable localizableWSDLMODELER_WARNING_NO_SERVICE_DEFINITIONS_FOUND() {
-        return messageFactory.getMessage("wsdlmodeler.warning.noServiceDefinitionsFound");
-    }
-
-    /**
-     * WSDL document does not define any services
-     *
-     */
-    public static String WSDLMODELER_WARNING_NO_SERVICE_DEFINITIONS_FOUND() {
-        return localizer.localize(localizableWSDLMODELER_WARNING_NO_SERVICE_DEFINITIONS_FOUND());
-    }
-
-    public static Localizable localizableWSDLMODELER_WARNING_IGNORING_FAULT_CANT_RESOLVE_MESSAGE(Object arg0, Object arg1) {
-        return messageFactory.getMessage("wsdlmodeler.warning.ignoringFault.cant.resolve.message", arg0, arg1);
-    }
-
-    /**
-     * ignoring fault "{0}" of binding operation "{1}": cannot resolve message
-     *
-     */
-    public static String WSDLMODELER_WARNING_IGNORING_FAULT_CANT_RESOLVE_MESSAGE(Object arg0, Object arg1) {
-        return localizer.localize(localizableWSDLMODELER_WARNING_IGNORING_FAULT_CANT_RESOLVE_MESSAGE(arg0, arg1));
-    }
-
-    public static Localizable localizableWSDLMODELER_JAXB_JAVATYPE_NOTFOUND(Object arg0, Object arg1) {
-        return messageFactory.getMessage("wsdlmodeler.jaxb.javatype.notfound", arg0, arg1);
-    }
-
-    /**
-     * Schema descriptor {0} in message part "{1}" is not defined and could not be bound to Java. Perhaps the schema descriptor {0} is not defined in the schema imported/included in the WSDL. You can either add such imports/includes or run wsimport and provide the schema location using -b switch.
-     *
-     */
-    public static String WSDLMODELER_JAXB_JAVATYPE_NOTFOUND(Object arg0, Object arg1) {
-        return localizer.localize(localizableWSDLMODELER_JAXB_JAVATYPE_NOTFOUND(arg0, arg1));
-    }
-
-    public static Localizable localizableWSDLMODELER_WARNING_PORT_SOAP_BINDING_MIXED_STYLE(Object arg0) {
-        return messageFactory.getMessage("wsdlmodeler.warning.port.SOAPBinding.mixedStyle", arg0);
-    }
-
-    /**
-     * not a WS-I BP1.1 compliant SOAP port "{0}": the WSDL binding has mixed style, it must be rpc-literal or document-literal operation!
-     *
-     */
-    public static String WSDLMODELER_WARNING_PORT_SOAP_BINDING_MIXED_STYLE(Object arg0) {
-        return localizer.localize(localizableWSDLMODELER_WARNING_PORT_SOAP_BINDING_MIXED_STYLE(arg0));
-    }
-
-    public static Localizable localizableWSDLMODELER_INVALID_DOCLITOPERATION(Object arg0) {
-        return messageFactory.getMessage("wsdlmodeler.invalid.doclitoperation", arg0);
-    }
-
-    /**
-     * Invalid wsdl:operation "{0}": its a document-literal operation,  message part must refer to a schema element declaration
-     *
-     */
-    public static String WSDLMODELER_INVALID_DOCLITOPERATION(Object arg0) {
-        return localizer.localize(localizableWSDLMODELER_INVALID_DOCLITOPERATION(arg0));
-    }
-
-    public static Localizable localizableMODELER_NESTED_MODEL_ERROR(Object arg0) {
-        return messageFactory.getMessage("modeler.nestedModelError", arg0);
-    }
-
-    /**
-     * modeler error: {0}
-     *
-     */
-    public static String MODELER_NESTED_MODEL_ERROR(Object arg0) {
-        return localizer.localize(localizableMODELER_NESTED_MODEL_ERROR(arg0));
-    }
-
-    public static Localizable localizableWSDLMODELER_DUPLICATE_FAULT_SOAP_NAME(Object arg0, Object arg1, Object arg2) {
-        return messageFactory.getMessage("wsdlmodeler.duplicate.fault.soap.name", arg0, arg1, arg2);
-    }
-
-    /**
-     * ignoring fault "{0}" of operation "{1}", soap:fault name "{2}" is not unique
-     *
-     */
-    public static String WSDLMODELER_DUPLICATE_FAULT_SOAP_NAME(Object arg0, Object arg1, Object arg2) {
-        return localizer.localize(localizableWSDLMODELER_DUPLICATE_FAULT_SOAP_NAME(arg0, arg1, arg2));
-    }
-
-    public static Localizable localizableWSDLMODELER_INVALID_BINDING_FAULT_WRONG_SOAP_FAULT_NAME(Object arg0, Object arg1, Object arg2) {
-        return messageFactory.getMessage("wsdlmodeler.invalid.bindingFault.wrongSoapFaultName", arg0, arg1, arg2);
-    }
-
-    /**
-     * name of soap:fault "{0}" doesn''t match the name of wsdl:fault "{1}" in operation "{2}"
-     *
-     */
-    public static String WSDLMODELER_INVALID_BINDING_FAULT_WRONG_SOAP_FAULT_NAME(Object arg0, Object arg1, Object arg2) {
-        return localizer.localize(localizableWSDLMODELER_INVALID_BINDING_FAULT_WRONG_SOAP_FAULT_NAME(arg0, arg1, arg2));
-    }
-
-    public static Localizable localizableWSDLMODELER_WARNING_IGNORING_OPERATION_NOT_LITERAL(Object arg0) {
-        return messageFactory.getMessage("wsdlmodeler.warning.ignoringOperation.notLiteral", arg0);
-    }
-
-    /**
-     * ignoring document-style operation "{0}": parameters are not literal
-     *
-     */
-    public static String WSDLMODELER_WARNING_IGNORING_OPERATION_NOT_LITERAL(Object arg0) {
-        return localizer.localize(localizableWSDLMODELER_WARNING_IGNORING_OPERATION_NOT_LITERAL(arg0));
-    }
-
-    public static Localizable localizableWSDLMODELER_WARNING_IGNORING_OPERATION_CANNOT_HANDLE_DOCUMENT_STYLE(Object arg0) {
-        return messageFactory.getMessage("wsdlmodeler.warning.ignoringOperation.cannotHandleDocumentStyle", arg0);
-    }
-
-    /**
-     * ignoring operation "{0}": cannot handle document-style operations
-     *
-     */
-    public static String WSDLMODELER_WARNING_IGNORING_OPERATION_CANNOT_HANDLE_DOCUMENT_STYLE(Object arg0) {
-        return localizer.localize(localizableWSDLMODELER_WARNING_IGNORING_OPERATION_CANNOT_HANDLE_DOCUMENT_STYLE(arg0));
-    }
+    private final static LocalizableMessageFactory MESSAGE_FACTORY = new LocalizableMessageFactory(BUNDLE_NAME, new ModelerMessages.BundleSupplier());
+    private final static Localizer LOCALIZER = new Localizer();
 
     public static Localizable localizableWSDLMODELER_WARNING_IGNORING_FAULT_NOT_LITERAL(Object arg0, Object arg1) {
-        return messageFactory.getMessage("wsdlmodeler.warning.ignoringFault.notLiteral", arg0, arg1);
+        return MESSAGE_FACTORY.getMessage("wsdlmodeler.warning.ignoringFault.notLiteral", arg0, arg1);
     }
 
     /**
@@ -440,359 +52,11 @@
      *
      */
     public static String WSDLMODELER_WARNING_IGNORING_FAULT_NOT_LITERAL(Object arg0, Object arg1) {
-        return localizer.localize(localizableWSDLMODELER_WARNING_IGNORING_FAULT_NOT_LITERAL(arg0, arg1));
-    }
-
-    public static Localizable localizableWSDLMODELER_INVALID_RPCLITOPERATION(Object arg0) {
-        return messageFactory.getMessage("wsdlmodeler.invalid.rpclitoperation", arg0);
-    }
-
-    /**
-     * Invalid wsdl:operation "{0}": its a rpc-literal operation,  message part must refer to a schema type declaration
-     *
-     */
-    public static String WSDLMODELER_INVALID_RPCLITOPERATION(Object arg0) {
-        return localizer.localize(localizableWSDLMODELER_INVALID_RPCLITOPERATION(arg0));
-    }
-
-    public static Localizable localizableWSDLMODELER_INVALID_OPERATION_JAVA_RESERVED_WORD_NOT_ALLOWED_CUSTOM_NAME(Object arg0, Object arg1) {
-        return messageFactory.getMessage("wsdlmodeler.invalid.operation.javaReservedWordNotAllowed.customName", arg0, arg1);
-    }
-
-    /**
-     * Invalid operation "{0}", can''t generate java method. Parameter,customized name "{1}"  is a java keyword.
-     *
-     */
-    public static String WSDLMODELER_INVALID_OPERATION_JAVA_RESERVED_WORD_NOT_ALLOWED_CUSTOM_NAME(Object arg0, Object arg1) {
-        return localizer.localize(localizableWSDLMODELER_INVALID_OPERATION_JAVA_RESERVED_WORD_NOT_ALLOWED_CUSTOM_NAME(arg0, arg1));
-    }
-
-    public static Localizable localizableWSDLMODELER_WARNING_MEMBER_SUBMISSION_ADDRESSING_USED(Object arg0, Object arg1) {
-        return messageFactory.getMessage("wsdlmodeler.warning.memberSubmissionAddressingUsed", arg0, arg1);
-    }
-
-    /**
-     * obsolete addressing version 08-2004:"{0}" used; version "{1}" should be used instead.
-     *
-     */
-    public static String WSDLMODELER_WARNING_MEMBER_SUBMISSION_ADDRESSING_USED(Object arg0, Object arg1) {
-        return localizer.localize(localizableWSDLMODELER_WARNING_MEMBER_SUBMISSION_ADDRESSING_USED(arg0, arg1));
-    }
-
-    public static Localizable localizableWSDLMODELER_WARNING_BINDING_OPERATION_MULTIPLE_PART_BINDING(Object arg0, Object arg1) {
-        return messageFactory.getMessage("wsdlmodeler.warning.bindingOperation.multiplePartBinding", arg0, arg1);
-    }
-
-    /**
-     * Check the abstract operation "{0}" binding, part "{1}" has multiple binding. Will try to generated artifacts anyway...
-     *
-     */
-    public static String WSDLMODELER_WARNING_BINDING_OPERATION_MULTIPLE_PART_BINDING(Object arg0, Object arg1) {
-        return localizer.localize(localizableWSDLMODELER_WARNING_BINDING_OPERATION_MULTIPLE_PART_BINDING(arg0, arg1));
-    }
-
-    public static Localizable localizableWSDLMODELER_WARNING_PORT_SOAP_BINDING_12(Object arg0) {
-        return messageFactory.getMessage("wsdlmodeler.warning.port.SOAPBinding12", arg0);
-    }
-
-    /**
-     * SOAP port "{0}": uses a non-standard SOAP 1.2 binding.
-     *
-     */
-    public static String WSDLMODELER_WARNING_PORT_SOAP_BINDING_12(Object arg0) {
-        return localizer.localize(localizableWSDLMODELER_WARNING_PORT_SOAP_BINDING_12(arg0));
-    }
-
-    public static Localizable localizableWSDLMODELER_INVALID_PORT_TYPE_FAULT_NOT_FOUND(Object arg0, Object arg1) {
-        return messageFactory.getMessage("wsdlmodeler.invalid.portTypeFault.notFound", arg0, arg1);
-    }
-
-    /**
-     * fault "{0}" in portType operation "{1}" does not match any fault in the corresponding binding operation
-     *
-     */
-    public static String WSDLMODELER_INVALID_PORT_TYPE_FAULT_NOT_FOUND(Object arg0, Object arg1) {
-        return localizer.localize(localizableWSDLMODELER_INVALID_PORT_TYPE_FAULT_NOT_FOUND(arg0, arg1));
-    }
-
-    public static Localizable localizableMIMEMODELER_INVALID_MIME_PART_NAME_NOT_ALLOWED(Object arg0) {
-        return messageFactory.getMessage("mimemodeler.invalidMimePart.nameNotAllowed", arg0);
-    }
-
-    /**
-     * name attribute on wsdl:part in Operation "{0}" is ignored. Its not allowed as per WS-I AP 1.0.
-     *
-     */
-    public static String MIMEMODELER_INVALID_MIME_PART_NAME_NOT_ALLOWED(Object arg0) {
-        return localizer.localize(localizableMIMEMODELER_INVALID_MIME_PART_NAME_NOT_ALLOWED(arg0));
-    }
-
-    public static Localizable localizableWSDLMODELER_WARNING_IGNORING_MIME_PART_NOT_FOUND(Object arg0, Object arg1) {
-        return messageFactory.getMessage("wsdlmodeler.warning.ignoringMimePart.notFound", arg0, arg1);
-    }
-
-    /**
-     * ignoring mime:part, cannot find part "{0}" referenced by the mime:content in the wsdl:operation "{1}"
-     *
-     */
-    public static String WSDLMODELER_WARNING_IGNORING_MIME_PART_NOT_FOUND(Object arg0, Object arg1) {
-        return localizer.localize(localizableWSDLMODELER_WARNING_IGNORING_MIME_PART_NOT_FOUND(arg0, arg1));
-    }
-
-    public static Localizable localizableWSDLMODELER_WARNING_OPERATION_MORE_THAN_ONE_PART_IN_MESSAGE(Object arg0) {
-        return messageFactory.getMessage("wsdlmodeler.warning.operation.MoreThanOnePartInMessage", arg0);
-    }
-
-    /**
-     * Ignoring operation "{0}": more than one part bound to body
-     *
-     */
-    public static String WSDLMODELER_WARNING_OPERATION_MORE_THAN_ONE_PART_IN_MESSAGE(Object arg0) {
-        return localizer.localize(localizableWSDLMODELER_WARNING_OPERATION_MORE_THAN_ONE_PART_IN_MESSAGE(arg0));
-    }
-
-    public static Localizable localizableWSDLMODELER_WARNING_IGNORING_OPERATION_JAVA_RESERVED_WORD_NOT_ALLOWED_NON_WRAPPER_STYLE(Object arg0, Object arg1, Object arg2) {
-        return messageFactory.getMessage("wsdlmodeler.warning.ignoringOperation.javaReservedWordNotAllowed.nonWrapperStyle", arg0, arg1, arg2);
-    }
-
-    /**
-     * Ignoring operation "{0}", can''t generate java method. Parameter: part "{2}" in wsdl:message "{1}", is a java keyword. Use customization to change the parameter name or change the wsdl:part name.
-     *
-     */
-    public static String WSDLMODELER_WARNING_IGNORING_OPERATION_JAVA_RESERVED_WORD_NOT_ALLOWED_NON_WRAPPER_STYLE(Object arg0, Object arg1, Object arg2) {
-        return localizer.localize(localizableWSDLMODELER_WARNING_IGNORING_OPERATION_JAVA_RESERVED_WORD_NOT_ALLOWED_NON_WRAPPER_STYLE(arg0, arg1, arg2));
-    }
-
-    public static Localizable localizableWSDLMODELER_INVALID_FAULT_CANT_RESOLVE_MESSAGE(Object arg0, Object arg1) {
-        return messageFactory.getMessage("wsdlmodeler.invalid.fault.cant.resolve.message", arg0, arg1);
-    }
-
-    /**
-     * fault message "{0}" in binding operation "{1}" could not be resolved
-     *
-     */
-    public static String WSDLMODELER_INVALID_FAULT_CANT_RESOLVE_MESSAGE(Object arg0, Object arg1) {
-        return localizer.localize(localizableWSDLMODELER_INVALID_FAULT_CANT_RESOLVE_MESSAGE(arg0, arg1));
-    }
-
-    public static Localizable localizableWSDLMODELER_INVALID_BINDING_FAULT_EMPTY_MESSAGE(Object arg0, Object arg1) {
-        return messageFactory.getMessage("wsdlmodeler.invalid.bindingFault.emptyMessage", arg0, arg1);
-    }
-
-    /**
-     * fault "{0}" refers to message "{1}", but the message has no parts
-     *
-     */
-    public static String WSDLMODELER_INVALID_BINDING_FAULT_EMPTY_MESSAGE(Object arg0, Object arg1) {
-        return localizer.localize(localizableWSDLMODELER_INVALID_BINDING_FAULT_EMPTY_MESSAGE(arg0, arg1));
-    }
-
-    public static Localizable localizableWSDLMODELER_RPCLIT_UNKOWNSCHEMATYPE(Object arg0, Object arg1, Object arg2) {
-        return messageFactory.getMessage("wsdlmodeler.rpclit.unkownschematype", arg0, arg1, arg2);
-    }
-
-    /**
-     * XML type "{0}" could not be resolved, XML to JAVA binding failed! Please check the wsdl:part "{1}" in the wsdl:message "{2}".
-     *
-     */
-    public static String WSDLMODELER_RPCLIT_UNKOWNSCHEMATYPE(Object arg0, Object arg1, Object arg2) {
-        return localizer.localize(localizableWSDLMODELER_RPCLIT_UNKOWNSCHEMATYPE(arg0, arg1, arg2));
-    }
-
-    public static Localizable localizableWSDLMODELER_WARNING_IGNORING_OPERATION_CANNOT_HANDLE_BODY_PARTS_ATTRIBUTE(Object arg0) {
-        return messageFactory.getMessage("wsdlmodeler.warning.ignoringOperation.cannotHandleBodyPartsAttribute", arg0);
-    }
-
-    /**
-     * ignoring operation "{0}": cannot handle "parts" attribute of "soap:body" element
-     *
-     */
-    public static String WSDLMODELER_WARNING_IGNORING_OPERATION_CANNOT_HANDLE_BODY_PARTS_ATTRIBUTE(Object arg0) {
-        return localizer.localize(localizableWSDLMODELER_WARNING_IGNORING_OPERATION_CANNOT_HANDLE_BODY_PARTS_ATTRIBUTE(arg0));
-    }
-
-    public static Localizable localizableWSDLMODELER_NON_UNIQUE_BODY_ERROR(Object arg0, Object arg1, Object arg2, Object arg3) {
-        return messageFactory.getMessage("wsdlmodeler.nonUnique.body.error", arg0, arg1, arg2, arg3);
-    }
-
-    /**
-     * Non unique body parts! In a port, as per BP 1.1 R2710 operations must have unique operation signature on the wire for successful dispatch. In port {0}, Operations "{1}" and "{2}" have the same request body block {3}. Try running wsimport with -extension switch, runtime will try to dispatch using SOAPAction
-     *
-     */
-    public static String WSDLMODELER_NON_UNIQUE_BODY_ERROR(Object arg0, Object arg1, Object arg2, Object arg3) {
-        return localizer.localize(localizableWSDLMODELER_NON_UNIQUE_BODY_ERROR(arg0, arg1, arg2, arg3));
-    }
-
-    public static Localizable localizableWSDLMODELER_WARNING_IGNORING_SOAP_BINDING_MIXED_STYLE(Object arg0) {
-        return messageFactory.getMessage("wsdlmodeler.warning.ignoringSOAPBinding.mixedStyle", arg0);
-    }
-
-    /**
-     * ignoring port "{0}", its not WS-I BP 1.1 compliant: the wsdl binding has mixed style, it must be rpc-literal or document-literal operation. try running wsimport with -extension switch.
-     *
-     */
-    public static String WSDLMODELER_WARNING_IGNORING_SOAP_BINDING_MIXED_STYLE(Object arg0) {
-        return localizer.localize(localizableWSDLMODELER_WARNING_IGNORING_SOAP_BINDING_MIXED_STYLE(arg0));
-    }
-
-    public static Localizable localizableMIMEMODELER_INVALID_MIME_CONTENT_MISSING_TYPE_ATTRIBUTE(Object arg0) {
-        return messageFactory.getMessage("mimemodeler.invalidMimeContent.missingTypeAttribute", arg0);
-    }
-
-    /**
-     * Missing type attribute in mime:content in operation "{0}". part attribute must be present in mime:content declaration.
-     *
-     */
-    public static String MIMEMODELER_INVALID_MIME_CONTENT_MISSING_TYPE_ATTRIBUTE(Object arg0) {
-        return localizer.localize(localizableMIMEMODELER_INVALID_MIME_CONTENT_MISSING_TYPE_ATTRIBUTE(arg0));
-    }
-
-    public static Localizable localizableWSDLMODELER_WARNING_IGNORING_OPERATION_CANNOT_HANDLE_EMPTY_INPUT_MESSAGE(Object arg0) {
-        return messageFactory.getMessage("wsdlmodeler.warning.ignoringOperation.cannotHandleEmptyInputMessage", arg0);
-    }
-
-    /**
-     * ignoring operation "{0}": input message is empty
-     *
-     */
-    public static String WSDLMODELER_WARNING_IGNORING_OPERATION_CANNOT_HANDLE_EMPTY_INPUT_MESSAGE(Object arg0) {
-        return localizer.localize(localizableWSDLMODELER_WARNING_IGNORING_OPERATION_CANNOT_HANDLE_EMPTY_INPUT_MESSAGE(arg0));
-    }
-
-    public static Localizable localizableWSDLMODELER_WARNING_NO_PORTS_IN_SERVICE(Object arg0) {
-        return messageFactory.getMessage("wsdlmodeler.warning.noPortsInService", arg0);
-    }
-
-    /**
-     * Service "{0}" does not contain any usable ports. try running wsimport with -extension switch.
-     *
-     */
-    public static String WSDLMODELER_WARNING_NO_PORTS_IN_SERVICE(Object arg0) {
-        return localizer.localize(localizableWSDLMODELER_WARNING_NO_PORTS_IN_SERVICE(arg0));
-    }
-
-    public static Localizable localizableWSDLMODELER_INVALID_PARAMETER_ORDER_TOO_MANY_UNMENTIONED_PARTS(Object arg0) {
-        return messageFactory.getMessage("wsdlmodeler.invalid.parameterOrder.tooManyUnmentionedParts", arg0);
-    }
-
-    /**
-     * more than one part left out in the parameterOrder attribute of operation "{0}"
-     *
-     */
-    public static String WSDLMODELER_INVALID_PARAMETER_ORDER_TOO_MANY_UNMENTIONED_PARTS(Object arg0) {
-        return localizer.localize(localizableWSDLMODELER_INVALID_PARAMETER_ORDER_TOO_MANY_UNMENTIONED_PARTS(arg0));
-    }
-
-    public static Localizable localizableWSDLMODELER_INVALID_BINDING_OPERATION_INPUT_SOAP_BODY_MISSING_NAMESPACE(Object arg0) {
-        return messageFactory.getMessage("wsdlmodeler.invalid.bindingOperation.inputSoapBody.missingNamespace", arg0);
-    }
-
-    /**
-     * input message of binding operation "{0}" must specify a value for the "namespace" attribute
-     *
-     */
-    public static String WSDLMODELER_INVALID_BINDING_OPERATION_INPUT_SOAP_BODY_MISSING_NAMESPACE(Object arg0) {
-        return localizer.localize(localizableWSDLMODELER_INVALID_BINDING_OPERATION_INPUT_SOAP_BODY_MISSING_NAMESPACE(arg0));
-    }
-
-    public static Localizable localizableWSDLMODELER_WARNING_IGNORING_HEADER(Object arg0, Object arg1) {
-        return messageFactory.getMessage("wsdlmodeler.warning.ignoringHeader", arg0, arg1);
-    }
-
-    /**
-     * ignoring header "{0}" of binding operation "{1}"
-     *
-     */
-    public static String WSDLMODELER_WARNING_IGNORING_HEADER(Object arg0, Object arg1) {
-        return localizer.localize(localizableWSDLMODELER_WARNING_IGNORING_HEADER(arg0, arg1));
-    }
-
-    public static Localizable localizableWSDLMODELER_RESPONSEBEAN_NOTFOUND(Object arg0) {
-        return messageFactory.getMessage("wsdlmodeler.responsebean.notfound", arg0);
-    }
-
-    /**
-     * wsimport failed to generate async response bean for operation: {0}
-     *
-     */
-    public static String WSDLMODELER_RESPONSEBEAN_NOTFOUND(Object arg0) {
-        return localizer.localize(localizableWSDLMODELER_RESPONSEBEAN_NOTFOUND(arg0));
-    }
-
-    public static Localizable localizableWSDLMODELER_20_RPCENC_NOT_SUPPORTED() {
-        return messageFactory.getMessage("wsdlmodeler20.rpcenc.not.supported");
-    }
-
-    /**
-     * rpc/encoded wsdl's are not supported in JAXWS 2.0.
-     *
-     */
-    public static String WSDLMODELER_20_RPCENC_NOT_SUPPORTED() {
-        return localizer.localize(localizableWSDLMODELER_20_RPCENC_NOT_SUPPORTED());
-    }
-
-    public static Localizable localizableWSDLMODELER_WARNING_IGNORING_OPERATION_PART_NOT_FOUND(Object arg0, Object arg1) {
-        return messageFactory.getMessage("wsdlmodeler.warning.ignoringOperation.partNotFound", arg0, arg1);
-    }
-
-    /**
-     * ignoring operation "{0}": part "{1}" not found
-     *
-     */
-    public static String WSDLMODELER_WARNING_IGNORING_OPERATION_PART_NOT_FOUND(Object arg0, Object arg1) {
-        return localizer.localize(localizableWSDLMODELER_WARNING_IGNORING_OPERATION_PART_NOT_FOUND(arg0, arg1));
-    }
-
-    public static Localizable localizableWSDLMODELER_INVALID_MESSAGE_PART_MUST_HAVE_ELEMENT_DESCRIPTOR(Object arg0, Object arg1) {
-        return messageFactory.getMessage("wsdlmodeler.invalid.message.partMustHaveElementDescriptor", arg0, arg1);
-    }
-
-    /**
-     * in message "{0}", part "{1}" must specify a "element" attribute
-     *
-     */
-    public static String WSDLMODELER_INVALID_MESSAGE_PART_MUST_HAVE_ELEMENT_DESCRIPTOR(Object arg0, Object arg1) {
-        return localizer.localize(localizableWSDLMODELER_INVALID_MESSAGE_PART_MUST_HAVE_ELEMENT_DESCRIPTOR(arg0, arg1));
-    }
-
-    public static Localizable localizableWSDLMODELER_ERROR_PARTS_NOT_FOUND(Object arg0, Object arg1) {
-        return messageFactory.getMessage("wsdlmodeler.error.partsNotFound", arg0, arg1);
-    }
-
-    /**
-     * parts "{0}" not found in the message "{1}", wrong WSDL
-     *
-     */
-    public static String WSDLMODELER_ERROR_PARTS_NOT_FOUND(Object arg0, Object arg1) {
-        return localizer.localize(localizableWSDLMODELER_ERROR_PARTS_NOT_FOUND(arg0, arg1));
-    }
-
-    public static Localizable localizableWSDLMODELER_WARNING_IGNORING_FAULT_NOT_ENCODED(Object arg0, Object arg1) {
-        return messageFactory.getMessage("wsdlmodeler.warning.ignoringFault.notEncoded", arg0, arg1);
-    }
-
-    /**
-     * ignoring literal fault "{0}" of binding operation "{1}"
-     *
-     */
-    public static String WSDLMODELER_WARNING_IGNORING_FAULT_NOT_ENCODED(Object arg0, Object arg1) {
-        return localizer.localize(localizableWSDLMODELER_WARNING_IGNORING_FAULT_NOT_ENCODED(arg0, arg1));
-    }
-
-    public static Localizable localizableWSDLMODELER_WARNING_IGNORING_OPERATION_NOT_SUPPORTED_STYLE(Object arg0) {
-        return messageFactory.getMessage("wsdlmodeler.warning.ignoringOperation.notSupportedStyle", arg0);
-    }
-
-    /**
-     * ignoring operation "{0}": not request-response or one-way
-     *
-     */
-    public static String WSDLMODELER_WARNING_IGNORING_OPERATION_NOT_SUPPORTED_STYLE(Object arg0) {
-        return localizer.localize(localizableWSDLMODELER_WARNING_IGNORING_OPERATION_NOT_SUPPORTED_STYLE(arg0));
+        return LOCALIZER.localize(localizableWSDLMODELER_WARNING_IGNORING_FAULT_NOT_LITERAL(arg0, arg1));
     }
 
     public static Localizable localizableWSDLMODELER_INVALID_BINDING_OPERATION_MULTIPLE_PART_BINDING(Object arg0, Object arg1) {
-        return messageFactory.getMessage("wsdlmodeler.invalid.bindingOperation.multiplePartBinding", arg0, arg1);
+        return MESSAGE_FACTORY.getMessage("wsdlmodeler.invalid.bindingOperation.multiplePartBinding", arg0, arg1);
     }
 
     /**
@@ -800,131 +64,23 @@
      *
      */
     public static String WSDLMODELER_INVALID_BINDING_OPERATION_MULTIPLE_PART_BINDING(Object arg0, Object arg1) {
-        return localizer.localize(localizableWSDLMODELER_INVALID_BINDING_OPERATION_MULTIPLE_PART_BINDING(arg0, arg1));
+        return LOCALIZER.localize(localizableWSDLMODELER_INVALID_BINDING_OPERATION_MULTIPLE_PART_BINDING(arg0, arg1));
     }
 
-    public static Localizable localizableWSDLMODELER_INVALID_BINDING_OPERATION_MULTIPLE_MATCHING_OPERATIONS(Object arg0, Object arg1) {
-        return messageFactory.getMessage("wsdlmodeler.invalid.bindingOperation.multipleMatchingOperations", arg0, arg1);
+    public static Localizable localizableWSDLMODELER_WARNING_IGNORING_HEADER_FAULT_NOT_LITERAL(Object arg0, Object arg1, Object arg2) {
+        return MESSAGE_FACTORY.getMessage("wsdlmodeler.warning.ignoringHeaderFault.notLiteral", arg0, arg1, arg2);
     }
 
     /**
-     * in binding "{1}", operation "{0}" does not reference a unique operation in the corresponding port type
+     * ignoring header fault part="{0}" message="{1}" of operation {2}, use attribute must be "literal"
      *
      */
-    public static String WSDLMODELER_INVALID_BINDING_OPERATION_MULTIPLE_MATCHING_OPERATIONS(Object arg0, Object arg1) {
-        return localizer.localize(localizableWSDLMODELER_INVALID_BINDING_OPERATION_MULTIPLE_MATCHING_OPERATIONS(arg0, arg1));
-    }
-
-    public static Localizable localizableWSDLMODELER_WARNING_IGNORING_HEADER_CANT_RESOLVE_MESSAGE(Object arg0, Object arg1) {
-        return messageFactory.getMessage("wsdlmodeler.warning.ignoringHeader.cant.resolve.message", arg0, arg1);
-    }
-
-    /**
-     * ignoring header "{0}" of binding operation "{1}": cannot resolve message
-     *
-     */
-    public static String WSDLMODELER_WARNING_IGNORING_HEADER_CANT_RESOLVE_MESSAGE(Object arg0, Object arg1) {
-        return localizer.localize(localizableWSDLMODELER_WARNING_IGNORING_HEADER_CANT_RESOLVE_MESSAGE(arg0, arg1));
-    }
-
-    public static Localizable localizableWSDLMODELER_WARNING_IGNORING_OPERATION_JAVA_RESERVED_WORD_NOT_ALLOWED_CUSTOMIZED_OPERATION_NAME(Object arg0, Object arg1) {
-        return messageFactory.getMessage("wsdlmodeler.warning.ignoringOperation.javaReservedWordNotAllowed.customizedOperationName", arg0, arg1);
-    }
-
-    /**
-     * Ignoring operation "{0}", can''t generate java method ,customized name "{1}" of the wsdl:operation is a java keyword.
-     *
-     */
-    public static String WSDLMODELER_WARNING_IGNORING_OPERATION_JAVA_RESERVED_WORD_NOT_ALLOWED_CUSTOMIZED_OPERATION_NAME(Object arg0, Object arg1) {
-        return localizer.localize(localizableWSDLMODELER_WARNING_IGNORING_OPERATION_JAVA_RESERVED_WORD_NOT_ALLOWED_CUSTOMIZED_OPERATION_NAME(arg0, arg1));
-    }
-
-    public static Localizable localizableWSDLMODELER_WARNING_IGNORING_HEADER_NOT_LITERAL(Object arg0, Object arg1) {
-        return messageFactory.getMessage("wsdlmodeler.warning.ignoringHeader.notLiteral", arg0, arg1);
-    }
-
-    /**
-     * ignoring header "{0}" of binding operation "{1}": not literal
-     *
-     */
-    public static String WSDLMODELER_WARNING_IGNORING_HEADER_NOT_LITERAL(Object arg0, Object arg1) {
-        return localizer.localize(localizableWSDLMODELER_WARNING_IGNORING_HEADER_NOT_LITERAL(arg0, arg1));
-    }
-
-    public static Localizable localizableWSDLMODELER_INVALID_BINDING_OPERATION_INPUT_HEADER_MISSING_NAMESPACE(Object arg0, Object arg1) {
-        return messageFactory.getMessage("wsdlmodeler.invalid.bindingOperation.inputHeader.missingNamespace", arg0, arg1);
-    }
-
-    /**
-     * input header "{1}" of binding operation "{0}" must specify a value for the "namespace" attribute
-     *
-     */
-    public static String WSDLMODELER_INVALID_BINDING_OPERATION_INPUT_HEADER_MISSING_NAMESPACE(Object arg0, Object arg1) {
-        return localizer.localize(localizableWSDLMODELER_INVALID_BINDING_OPERATION_INPUT_HEADER_MISSING_NAMESPACE(arg0, arg1));
-    }
-
-    public static Localizable localizableWSDLMODELER_INVALID_BINDING_OPERATION_MISSING_INPUT_NAME(Object arg0) {
-        return messageFactory.getMessage("wsdlmodeler.invalid.bindingOperation.missingInputName", arg0);
-    }
-
-    /**
-     * binding operation "{0}" must specify a name for its input message
-     *
-     */
-    public static String WSDLMODELER_INVALID_BINDING_OPERATION_MISSING_INPUT_NAME(Object arg0) {
-        return localizer.localize(localizableWSDLMODELER_INVALID_BINDING_OPERATION_MISSING_INPUT_NAME(arg0));
-    }
-
-    public static Localizable localizableWSDLMODELER_WARNING_IGNORING_NON_SOAP_PORT_NO_ADDRESS(Object arg0) {
-        return messageFactory.getMessage("wsdlmodeler.warning.ignoringNonSOAPPort.noAddress", arg0);
-    }
-
-    /**
-     * ignoring port "{0}": no SOAP address specified. try running wsimport with -extension switch.
-     *
-     */
-    public static String WSDLMODELER_WARNING_IGNORING_NON_SOAP_PORT_NO_ADDRESS(Object arg0) {
-        return localizer.localize(localizableWSDLMODELER_WARNING_IGNORING_NON_SOAP_PORT_NO_ADDRESS(arg0));
-    }
-
-    public static Localizable localizableWSDLMODELER_RESULT_IS_IN_OUT_PARAMETER(Object arg0) {
-        return messageFactory.getMessage("wsdlmodeler.resultIsInOutParameter", arg0);
-    }
-
-    /**
-     * result is "inout" parameter in operation: {0}
-     *
-     */
-    public static String WSDLMODELER_RESULT_IS_IN_OUT_PARAMETER(Object arg0) {
-        return localizer.localize(localizableWSDLMODELER_RESULT_IS_IN_OUT_PARAMETER(arg0));
-    }
-
-    public static Localizable localizableWSDLMODELER_INVALID_HEADER_NOT_FOUND(Object arg0, Object arg1) {
-        return messageFactory.getMessage("wsdlmodeler.invalid.header.notFound", arg0, arg1);
-    }
-
-    /**
-     * header "{0}" of binding operation "{1}": not found
-     *
-     */
-    public static String WSDLMODELER_INVALID_HEADER_NOT_FOUND(Object arg0, Object arg1) {
-        return localizer.localize(localizableWSDLMODELER_INVALID_HEADER_NOT_FOUND(arg0, arg1));
-    }
-
-    public static Localizable localizableMIMEMODELER_ELEMENT_PART_INVALID_ELEMENT_MIME_TYPE(Object arg0, Object arg1) {
-        return messageFactory.getMessage("mimemodeler.elementPart.invalidElementMimeType", arg0, arg1);
-    }
-
-    /**
-     * The mime:content part refers to wsdl:part "{0}", defined using element attribute. Please make sure the mime type: "{1}" is appropriate to serialize XML.
-     *
-     */
-    public static String MIMEMODELER_ELEMENT_PART_INVALID_ELEMENT_MIME_TYPE(Object arg0, Object arg1) {
-        return localizer.localize(localizableMIMEMODELER_ELEMENT_PART_INVALID_ELEMENT_MIME_TYPE(arg0, arg1));
+    public static String WSDLMODELER_WARNING_IGNORING_HEADER_FAULT_NOT_LITERAL(Object arg0, Object arg1, Object arg2) {
+        return LOCALIZER.localize(localizableWSDLMODELER_WARNING_IGNORING_HEADER_FAULT_NOT_LITERAL(arg0, arg1, arg2));
     }
 
     public static Localizable localizableWSDLMODELER_INVALID_HEADER_NOT_LITERAL(Object arg0, Object arg1) {
-        return messageFactory.getMessage("wsdlmodeler.invalid.header.notLiteral", arg0, arg1);
+        return MESSAGE_FACTORY.getMessage("wsdlmodeler.invalid.header.notLiteral", arg0, arg1);
     }
 
     /**
@@ -932,443 +88,47 @@
      *
      */
     public static String WSDLMODELER_INVALID_HEADER_NOT_LITERAL(Object arg0, Object arg1) {
-        return localizer.localize(localizableWSDLMODELER_INVALID_HEADER_NOT_LITERAL(arg0, arg1));
+        return LOCALIZER.localize(localizableWSDLMODELER_INVALID_HEADER_NOT_LITERAL(arg0, arg1));
     }
 
-    public static Localizable localizableMIMEMODELER_INVALID_MIME_CONTENT_MESAGE_PART_ELEMENT_KIND(Object arg0) {
-        return messageFactory.getMessage("mimemodeler.invalidMimeContent.mesagePartElementKind", arg0);
+    public static Localizable localizableWSDLMODELER_WARNING_IGNORING_OPERATION_NOT_SUPPORTED_STYLE(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("wsdlmodeler.warning.ignoringOperation.notSupportedStyle", arg0);
     }
 
     /**
-     * wsdl:part element referenced by mime:content part attribute: {0} must be defined using type attribute!
+     * ignoring operation "{0}": not request-response or one-way
      *
      */
-    public static String MIMEMODELER_INVALID_MIME_CONTENT_MESAGE_PART_ELEMENT_KIND(Object arg0) {
-        return localizer.localize(localizableMIMEMODELER_INVALID_MIME_CONTENT_MESAGE_PART_ELEMENT_KIND(arg0));
+    public static String WSDLMODELER_WARNING_IGNORING_OPERATION_NOT_SUPPORTED_STYLE(Object arg0) {
+        return LOCALIZER.localize(localizableWSDLMODELER_WARNING_IGNORING_OPERATION_NOT_SUPPORTED_STYLE(arg0));
     }
 
-    public static Localizable localizableWSDLMODELER_WARNING_IGNORING_OPERATION_NOT_ENCODED(Object arg0) {
-        return messageFactory.getMessage("wsdlmodeler.warning.ignoringOperation.notEncoded", arg0);
+    public static Localizable localizableWSDLMODELER_INVALID_PARAMETER_ORDER_TOO_MANY_UNMENTIONED_PARTS(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("wsdlmodeler.invalid.parameterOrder.tooManyUnmentionedParts", arg0);
     }
 
     /**
-     * ignoring RPC-style operation "{0}": parameters are not encoded
+     * more than one part left out in the parameterOrder attribute of operation "{0}"
      *
      */
-    public static String WSDLMODELER_WARNING_IGNORING_OPERATION_NOT_ENCODED(Object arg0) {
-        return localizer.localize(localizableWSDLMODELER_WARNING_IGNORING_OPERATION_NOT_ENCODED(arg0));
+    public static String WSDLMODELER_INVALID_PARAMETER_ORDER_TOO_MANY_UNMENTIONED_PARTS(Object arg0) {
+        return LOCALIZER.localize(localizableWSDLMODELER_INVALID_PARAMETER_ORDER_TOO_MANY_UNMENTIONED_PARTS(arg0));
     }
 
-    public static Localizable localizableWSDLMODELER_WARNING_NONCONFORMING_WSDL_TYPES() {
-        return messageFactory.getMessage("wsdlmodeler.warning.nonconforming.wsdl.types");
+    public static Localizable localizableWSDLMODELER_WARNING_IGNORING_OPERATION_JAVA_RESERVED_WORD_NOT_ALLOWED_CUSTOMIZED_OPERATION_NAME(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("wsdlmodeler.warning.ignoringOperation.javaReservedWordNotAllowed.customizedOperationName", arg0, arg1);
     }
 
     /**
-     * Non conforming WS-I WSDL used for wsdl:types
+     * Ignoring operation "{0}", can''t generate java method ,customized name "{1}" of the wsdl:operation is a java keyword.
      *
      */
-    public static String WSDLMODELER_WARNING_NONCONFORMING_WSDL_TYPES() {
-        return localizer.localize(localizableWSDLMODELER_WARNING_NONCONFORMING_WSDL_TYPES());
-    }
-
-    public static Localizable localizableWSDLMODELER_WARNING_IGNORING_OPERATION_CANNOT_HANDLE_MORE_THAN_ONE_PART_IN_INPUT_MESSAGE(Object arg0) {
-        return messageFactory.getMessage("wsdlmodeler.warning.ignoringOperation.cannotHandleMoreThanOnePartInInputMessage", arg0);
-    }
-
-    /**
-     * ignoring operation "{0}": more than one part in input message
-     *
-     */
-    public static String WSDLMODELER_WARNING_IGNORING_OPERATION_CANNOT_HANDLE_MORE_THAN_ONE_PART_IN_INPUT_MESSAGE(Object arg0) {
-        return localizer.localize(localizableWSDLMODELER_WARNING_IGNORING_OPERATION_CANNOT_HANDLE_MORE_THAN_ONE_PART_IN_INPUT_MESSAGE(arg0));
-    }
-
-    public static Localizable localizableWSDLMODELER_WARNING_IGNORING_OPERATION_CANNOT_HANDLE_EMPTY_OUTPUT_MESSAGE(Object arg0) {
-        return messageFactory.getMessage("wsdlmodeler.warning.ignoringOperation.cannotHandleEmptyOutputMessage", arg0);
-    }
-
-    /**
-     * ignoring operation "{0}": output message is empty
-     *
-     */
-    public static String WSDLMODELER_WARNING_IGNORING_OPERATION_CANNOT_HANDLE_EMPTY_OUTPUT_MESSAGE(Object arg0) {
-        return localizer.localize(localizableWSDLMODELER_WARNING_IGNORING_OPERATION_CANNOT_HANDLE_EMPTY_OUTPUT_MESSAGE(arg0));
-    }
-
-    public static Localizable localizableWSDLMODELER_WARNING_R_2716_R_2726(Object arg0, Object arg1) {
-        return messageFactory.getMessage("wsdlmodeler.warning.r2716r2726", arg0, arg1);
-    }
-
-    /**
-     * R2716/R2726 WSI-BasicProfile ver. 1.0, namespace attribute not allowed in doc/lit or rpc/lit for {0}: "{1}"
-     *
-     */
-    public static String WSDLMODELER_WARNING_R_2716_R_2726(Object arg0, Object arg1) {
-        return localizer.localize(localizableWSDLMODELER_WARNING_R_2716_R_2726(arg0, arg1));
-    }
-
-    public static Localizable localizableWSDLMODELER_INVALID_IGNORING_MEMBER_SUBMISSION_ADDRESSING(Object arg0, Object arg1) {
-        return messageFactory.getMessage("wsdlmodeler.invalid.ignoringMemberSubmissionAddressing", arg0, arg1);
-    }
-
-    /**
-     * ignoring wsa:Action attribute since obsolete addressing version 08-2004:"{0}" used; expecting addressing version "{1}". To use version 08-2004 anyway run wsimport with -extension switch.
-     *
-     */
-    public static String WSDLMODELER_INVALID_IGNORING_MEMBER_SUBMISSION_ADDRESSING(Object arg0, Object arg1) {
-        return localizer.localize(localizableWSDLMODELER_INVALID_IGNORING_MEMBER_SUBMISSION_ADDRESSING(arg0, arg1));
-    }
-
-    public static Localizable localizableWSDLMODELER_WARNING_NO_SOAP_ADDRESS(Object arg0) {
-        return messageFactory.getMessage("wsdlmodeler.warning.noSOAPAddress", arg0);
-    }
-
-    /**
-     * Port "{0}" is not a SOAP port, it has no soap:address
-     *
-     */
-    public static String WSDLMODELER_WARNING_NO_SOAP_ADDRESS(Object arg0) {
-        return localizer.localize(localizableWSDLMODELER_WARNING_NO_SOAP_ADDRESS(arg0));
-    }
-
-    public static Localizable localizableWSDLMODELER_WARNING_IGNORING_FAULTS(Object arg0) {
-        return messageFactory.getMessage("wsdlmodeler.warning.ignoringFaults", arg0);
-    }
-
-    /**
-     * ignoring faults declared by operation "{0}"
-     *
-     */
-    public static String WSDLMODELER_WARNING_IGNORING_FAULTS(Object arg0) {
-        return localizer.localize(localizableWSDLMODELER_WARNING_IGNORING_FAULTS(arg0));
-    }
-
-    public static Localizable localizableWSDLMODELER_INVALID_BINDING_FAULT_MISSING_NAME(Object arg0, Object arg1) {
-        return messageFactory.getMessage("wsdlmodeler.invalid.bindingFault.missingName", arg0, arg1);
-    }
-
-    /**
-     * fault "{0}" in operation "{1}" must specify a value for the "name" attribute
-     *
-     */
-    public static String WSDLMODELER_INVALID_BINDING_FAULT_MISSING_NAME(Object arg0, Object arg1) {
-        return localizer.localize(localizableWSDLMODELER_INVALID_BINDING_FAULT_MISSING_NAME(arg0, arg1));
-    }
-
-    public static Localizable localizableMIMEMODELER_WARNING_IGNORINGINVALID_HEADER_PART_NOT_DECLARED_IN_ROOT_PART(Object arg0) {
-        return messageFactory.getMessage("mimemodeler.warning.IgnoringinvalidHeaderPart.notDeclaredInRootPart", arg0);
-    }
-
-    /**
-     * Headers not in root mime:part with soap:body, ignoring headers in operation "{0}"
-     *
-     */
-    public static String MIMEMODELER_WARNING_IGNORINGINVALID_HEADER_PART_NOT_DECLARED_IN_ROOT_PART(Object arg0) {
-        return localizer.localize(localizableMIMEMODELER_WARNING_IGNORINGINVALID_HEADER_PART_NOT_DECLARED_IN_ROOT_PART(arg0));
-    }
-
-    public static Localizable localizableMIMEMODELER_INVALID_MIME_CONTENT_ERROR_LOADING_JAVA_CLASS() {
-        return messageFactory.getMessage("mimemodeler.invalidMimeContent.errorLoadingJavaClass");
-    }
-
-    /**
-     * Couldn't find class "{0}" for mime type "{1}"
-     *
-     */
-    public static String MIMEMODELER_INVALID_MIME_CONTENT_ERROR_LOADING_JAVA_CLASS() {
-        return localizer.localize(localizableMIMEMODELER_INVALID_MIME_CONTENT_ERROR_LOADING_JAVA_CLASS());
-    }
-
-    public static Localizable localizableWSDLMODELER_INVALID_BINDING_OPERATION_NOT_IN_PORT_TYPE(Object arg0, Object arg1) {
-        return messageFactory.getMessage("wsdlmodeler.invalid.bindingOperation.notInPortType", arg0, arg1);
-    }
-
-    /**
-     * in binding "{1}", operation "{0}" does not appear in the corresponding port type
-     *
-     */
-    public static String WSDLMODELER_INVALID_BINDING_OPERATION_NOT_IN_PORT_TYPE(Object arg0, Object arg1) {
-        return localizer.localize(localizableWSDLMODELER_INVALID_BINDING_OPERATION_NOT_IN_PORT_TYPE(arg0, arg1));
-    }
-
-    public static Localizable localizableWSDLMODELER_WARNING_IGNORING_OPERATION_CONFLICT_STYLE_IN_WSI_MODE(Object arg0) {
-        return messageFactory.getMessage("wsdlmodeler.warning.ignoringOperation.conflictStyleInWSIMode", arg0);
-    }
-
-    /**
-     * ignoring operation "{0}": binding style and operation style are conflicting
-     *
-     */
-    public static String WSDLMODELER_WARNING_IGNORING_OPERATION_CONFLICT_STYLE_IN_WSI_MODE(Object arg0) {
-        return localizer.localize(localizableWSDLMODELER_WARNING_IGNORING_OPERATION_CONFLICT_STYLE_IN_WSI_MODE(arg0));
-    }
-
-    public static Localizable localizableMIMEMODELER_INVALID_MIME_CONTENT_MISSING_PART_ATTRIBUTE(Object arg0) {
-        return messageFactory.getMessage("mimemodeler.invalidMimeContent.missingPartAttribute", arg0);
-    }
-
-    /**
-     * Ignoring operation "{0}", missing part attribute in mime:content. part attribute must be present in mime:content declaration.
-     *
-     */
-    public static String MIMEMODELER_INVALID_MIME_CONTENT_MISSING_PART_ATTRIBUTE(Object arg0) {
-        return localizer.localize(localizableMIMEMODELER_INVALID_MIME_CONTENT_MISSING_PART_ATTRIBUTE(arg0));
-    }
-
-    public static Localizable localizableWSDLMODELER_WARNING_SEARCH_SCHEMA_UNRECOGNIZED_TYPES(Object arg0) {
-        return messageFactory.getMessage("wsdlmodeler.warning.searchSchema.unrecognizedTypes", arg0);
-    }
-
-    /**
-     * encountered {0} unrecognized type(s)
-     *
-     */
-    public static String WSDLMODELER_WARNING_SEARCH_SCHEMA_UNRECOGNIZED_TYPES(Object arg0) {
-        return localizer.localize(localizableWSDLMODELER_WARNING_SEARCH_SCHEMA_UNRECOGNIZED_TYPES(arg0));
-    }
-
-    public static Localizable localizableWSDLMODELER_INVALID_OPERATION_JAVA_RESERVED_WORD_NOT_ALLOWED_CUSTOMIZED_OPERATION_NAME(Object arg0, Object arg1) {
-        return messageFactory.getMessage("wsdlmodeler.invalid.operation.javaReservedWordNotAllowed.customizedOperationName", arg0, arg1);
-    }
-
-    /**
-     * Invalid operation "{0}", can''t generate java method ,customized name "{1}" of the wsdl:operation is a java keyword.
-     *
-     */
-    public static String WSDLMODELER_INVALID_OPERATION_JAVA_RESERVED_WORD_NOT_ALLOWED_CUSTOMIZED_OPERATION_NAME(Object arg0, Object arg1) {
-        return localizer.localize(localizableWSDLMODELER_INVALID_OPERATION_JAVA_RESERVED_WORD_NOT_ALLOWED_CUSTOMIZED_OPERATION_NAME(arg0, arg1));
-    }
-
-    public static Localizable localizableWSDLMODELER_INVALID_HEADER_CANT_RESOLVE_MESSAGE(Object arg0, Object arg1) {
-        return messageFactory.getMessage("wsdlmodeler.invalid.header.cant.resolve.message", arg0, arg1);
-    }
-
-    /**
-     * header "{0}" of binding operation "{1}": cannot resolve message
-     *
-     */
-    public static String WSDLMODELER_INVALID_HEADER_CANT_RESOLVE_MESSAGE(Object arg0, Object arg1) {
-        return localizer.localize(localizableWSDLMODELER_INVALID_HEADER_CANT_RESOLVE_MESSAGE(arg0, arg1));
-    }
-
-    public static Localizable localizableWSDLMODELER_INVALID_BINDING_FAULT_MISSING_NAMESPACE(Object arg0, Object arg1) {
-        return messageFactory.getMessage("wsdlmodeler.invalid.bindingFault.missingNamespace", arg0, arg1);
-    }
-
-    /**
-     * fault "{0}" in operation "{1}" must specify a value for the "namespace" attribute
-     *
-     */
-    public static String WSDLMODELER_INVALID_BINDING_FAULT_MISSING_NAMESPACE(Object arg0, Object arg1) {
-        return localizer.localize(localizableWSDLMODELER_INVALID_BINDING_FAULT_MISSING_NAMESPACE(arg0, arg1));
-    }
-
-    public static Localizable localizableMIMEMODELER_INVALID_MIME_PART_MORE_THAN_ONE_SOAP_BODY(Object arg0) {
-        return messageFactory.getMessage("mimemodeler.invalidMimePart.moreThanOneSOAPBody", arg0);
-    }
-
-    /**
-     * Ignoring operation "{0}". The Multipart/Related structure has invalid root part: more than one soap:body parts found
-     *
-     */
-    public static String MIMEMODELER_INVALID_MIME_PART_MORE_THAN_ONE_SOAP_BODY(Object arg0) {
-        return localizer.localize(localizableMIMEMODELER_INVALID_MIME_PART_MORE_THAN_ONE_SOAP_BODY(arg0));
-    }
-
-    public static Localizable localizableWSDLMODELER_WARNING_IGNORING_HEADER_INCONSISTENT_DEFINITION(Object arg0, Object arg1) {
-        return messageFactory.getMessage("wsdlmodeler.warning.ignoringHeader.inconsistentDefinition", arg0, arg1);
-    }
-
-    /**
-     * ignoring header "{0}" of operation "{1}": part not found
-     *
-     */
-    public static String WSDLMODELER_WARNING_IGNORING_HEADER_INCONSISTENT_DEFINITION(Object arg0, Object arg1) {
-        return localizer.localize(localizableWSDLMODELER_WARNING_IGNORING_HEADER_INCONSISTENT_DEFINITION(arg0, arg1));
-    }
-
-    public static Localizable localizableWSDLMODELER_INVALID_BINDING_FAULT_NOT_FOUND(Object arg0, Object arg1) {
-        return messageFactory.getMessage("wsdlmodeler.invalid.bindingFault.notFound", arg0, arg1);
-    }
-
-    /**
-     * fault "{0}" in operation "{1}" does not match any fault in the corresponding port type operation
-     *
-     */
-    public static String WSDLMODELER_INVALID_BINDING_FAULT_NOT_FOUND(Object arg0, Object arg1) {
-        return localizer.localize(localizableWSDLMODELER_INVALID_BINDING_FAULT_NOT_FOUND(arg0, arg1));
-    }
-
-    public static Localizable localizableWSDLMODELER_WARNING_IGNORING_OPERATION_JAVA_RESERVED_WORD_NOT_ALLOWED_CUSTOM_NAME(Object arg0, Object arg1) {
-        return messageFactory.getMessage("wsdlmodeler.warning.ignoringOperation.javaReservedWordNotAllowed.customName", arg0, arg1);
-    }
-
-    /**
-     * Ignoring operation "{0}", can''t generate java method. Parameter,customized name "{1}" is a java keyword.
-     *
-     */
-    public static String WSDLMODELER_WARNING_IGNORING_OPERATION_JAVA_RESERVED_WORD_NOT_ALLOWED_CUSTOM_NAME(Object arg0, Object arg1) {
-        return localizer.localize(localizableWSDLMODELER_WARNING_IGNORING_OPERATION_JAVA_RESERVED_WORD_NOT_ALLOWED_CUSTOM_NAME(arg0, arg1));
-    }
-
-    public static Localizable localizableWSDLMODELER_WARNING_IGNORING_UNRECOGNIZED_SCHEMA_EXTENSION(Object arg0) {
-        return messageFactory.getMessage("wsdlmodeler.warning.ignoringUnrecognizedSchemaExtension", arg0);
-    }
-
-    /**
-     * ignoring schema element (unsupported version): {0}
-     *
-     */
-    public static String WSDLMODELER_WARNING_IGNORING_UNRECOGNIZED_SCHEMA_EXTENSION(Object arg0) {
-        return localizer.localize(localizableWSDLMODELER_WARNING_IGNORING_UNRECOGNIZED_SCHEMA_EXTENSION(arg0));
-    }
-
-    public static Localizable localizableWSDLMODELER_WARNING_IGNORING_HEADER_FAULT_NOT_FOUND(Object arg0, Object arg1, Object arg2) {
-        return messageFactory.getMessage("wsdlmodeler.warning.ignoringHeaderFault.notFound", arg0, arg1, arg2);
-    }
-
-    /**
-     * ignoring header fault "{0}", cannot find part "{1}" in binding "{2}"
-     *
-     */
-    public static String WSDLMODELER_WARNING_IGNORING_HEADER_FAULT_NOT_FOUND(Object arg0, Object arg1, Object arg2) {
-        return localizer.localize(localizableWSDLMODELER_WARNING_IGNORING_HEADER_FAULT_NOT_FOUND(arg0, arg1, arg2));
-    }
-
-    public static Localizable localizableWSDLMODELER_NON_UNIQUE_BODY_WARNING(Object arg0, Object arg1, Object arg2, Object arg3) {
-        return messageFactory.getMessage("wsdlmodeler.nonUnique.body.warning", arg0, arg1, arg2, arg3);
-    }
-
-    /**
-     * Non unique body parts! In a port, as per BP 1.1 R2710 operations must have unique operation signature on the wire for successful dispatch. In port {0}, Operations "{1}" and "{2}" have the same request body block {3}. Method dispatching may fail, runtime will try to dispatch using SOAPAction
-     *
-     */
-    public static String WSDLMODELER_NON_UNIQUE_BODY_WARNING(Object arg0, Object arg1, Object arg2, Object arg3) {
-        return localizer.localize(localizableWSDLMODELER_NON_UNIQUE_BODY_WARNING(arg0, arg1, arg2, arg3));
-    }
-
-    public static Localizable localizableWSDLMODELER_INVALID_OPERATION_JAVA_RESERVED_WORD_NOT_ALLOWED_WRAPPER_STYLE(Object arg0, Object arg1, Object arg2) {
-        return messageFactory.getMessage("wsdlmodeler.invalid.operation.javaReservedWordNotAllowed.wrapperStyle", arg0, arg1, arg2);
-    }
-
-    /**
-     * Invalid operation "{0}", can''t generate java method parameter. Local name of the wrapper child "{1}" in the global element "{2}" is a java keyword. Use customization to change the parameter name.
-     *
-     */
-    public static String WSDLMODELER_INVALID_OPERATION_JAVA_RESERVED_WORD_NOT_ALLOWED_WRAPPER_STYLE(Object arg0, Object arg1, Object arg2) {
-        return localizer.localize(localizableWSDLMODELER_INVALID_OPERATION_JAVA_RESERVED_WORD_NOT_ALLOWED_WRAPPER_STYLE(arg0, arg1, arg2));
-    }
-
-    public static Localizable localizableMIMEMODELER_INVALID_MIME_CONTENT_UNKNOWN_SCHEMA_TYPE(Object arg0, Object arg1) {
-        return messageFactory.getMessage("mimemodeler.invalidMimeContent.unknownSchemaType", arg0, arg1);
-    }
-
-    /**
-     * Unknown schema type: {1} for mime:content part: {0}
-     *
-     */
-    public static String MIMEMODELER_INVALID_MIME_CONTENT_UNKNOWN_SCHEMA_TYPE(Object arg0, Object arg1) {
-        return localizer.localize(localizableMIMEMODELER_INVALID_MIME_CONTENT_UNKNOWN_SCHEMA_TYPE(arg0, arg1));
-    }
-
-    public static Localizable localizableWSDLMODELER_WARNING_R_2716(Object arg0, Object arg1) {
-        return messageFactory.getMessage("wsdlmodeler.warning.r2716", arg0, arg1);
-    }
-
-    /**
-     * R2716 WSI-BasicProfile ver. 1.0, namespace attribute not allowed in doc/lit for {0}: "{1}"
-     *
-     */
-    public static String WSDLMODELER_WARNING_R_2716(Object arg0, Object arg1) {
-        return localizer.localize(localizableWSDLMODELER_WARNING_R_2716(arg0, arg1));
-    }
-
-    public static Localizable localizableWSDLMODELER_WARNING_IGNORING_HEADER_NOT_FOUND(Object arg0, Object arg1) {
-        return messageFactory.getMessage("wsdlmodeler.warning.ignoringHeader.notFound", arg0, arg1);
-    }
-
-    /**
-     * ignoring header "{0}" of binding operation "{1}": not found
-     *
-     */
-    public static String WSDLMODELER_WARNING_IGNORING_HEADER_NOT_FOUND(Object arg0, Object arg1) {
-        return localizer.localize(localizableWSDLMODELER_WARNING_IGNORING_HEADER_NOT_FOUND(arg0, arg1));
-    }
-
-    public static Localizable localizableWSDLMODELER_WARNING_IGNORING_OPERATION_CANNOT_HANDLE_TYPE_MESSAGE_PART(Object arg0) {
-        return messageFactory.getMessage("wsdlmodeler.warning.ignoringOperation.cannotHandleTypeMessagePart", arg0);
-    }
-
-    /**
-     * ignoring operation "{0}": message part does not refer to a schema element declaration
-     *
-     */
-    public static String WSDLMODELER_WARNING_IGNORING_OPERATION_CANNOT_HANDLE_TYPE_MESSAGE_PART(Object arg0) {
-        return localizer.localize(localizableWSDLMODELER_WARNING_IGNORING_OPERATION_CANNOT_HANDLE_TYPE_MESSAGE_PART(arg0));
-    }
-
-    public static Localizable localizableWSDLMODELER_INVALID_PARAMETER_ORDER_INVALID_PARAMETER_ORDER(Object arg0) {
-        return messageFactory.getMessage("wsdlmodeler.invalid.parameterOrder.invalidParameterOrder", arg0);
-    }
-
-    /**
-     * parameterOrder attribute on operation "{0}" is invalid, ignoring parameterOrder hint
-     *
-     */
-    public static String WSDLMODELER_INVALID_PARAMETER_ORDER_INVALID_PARAMETER_ORDER(Object arg0) {
-        return localizer.localize(localizableWSDLMODELER_INVALID_PARAMETER_ORDER_INVALID_PARAMETER_ORDER(arg0));
-    }
-
-    public static Localizable localizableWSDLMODELER_INVALID_BINDING_OPERATION_MISSING_OUTPUT_NAME(Object arg0) {
-        return messageFactory.getMessage("wsdlmodeler.invalid.bindingOperation.missingOutputName", arg0);
-    }
-
-    /**
-     * binding operation "{0}" must specify a name for its output message
-     *
-     */
-    public static String WSDLMODELER_INVALID_BINDING_OPERATION_MISSING_OUTPUT_NAME(Object arg0) {
-        return localizer.localize(localizableWSDLMODELER_INVALID_BINDING_OPERATION_MISSING_OUTPUT_NAME(arg0));
-    }
-
-    public static Localizable localizableWSDLMODELER_INVALID_OPERATION(Object arg0) {
-        return messageFactory.getMessage("wsdlmodeler.invalidOperation", arg0);
-    }
-
-    /**
-     * invalid operation: {0}
-     *
-     */
-    public static String WSDLMODELER_INVALID_OPERATION(Object arg0) {
-        return localizer.localize(localizableWSDLMODELER_INVALID_OPERATION(arg0));
-    }
-
-    public static Localizable localizableWSDLMODELER_INVALID_BINDING_OPERATION_OUTPUT_HEADER_MISSING_NAMESPACE(Object arg0, Object arg1) {
-        return messageFactory.getMessage("wsdlmodeler.invalid.bindingOperation.outputHeader.missingNamespace", arg0, arg1);
-    }
-
-    /**
-     * output header "{1}" of binding operation "{0}" must specify a value for the "namespace" attribute
-     *
-     */
-    public static String WSDLMODELER_INVALID_BINDING_OPERATION_OUTPUT_HEADER_MISSING_NAMESPACE(Object arg0, Object arg1) {
-        return localizer.localize(localizableWSDLMODELER_INVALID_BINDING_OPERATION_OUTPUT_HEADER_MISSING_NAMESPACE(arg0, arg1));
-    }
-
-    public static Localizable localizableWSDLMODELER_WARNING_IGNORING_HEADER_PART_FROM_BODY(Object arg0) {
-        return messageFactory.getMessage("wsdlmodeler.warning.ignoringHeader.partFromBody", arg0);
-    }
-
-    /**
-     * header part: "{0}" already bound by soapbind:body, illegal to bind the part twice
-     *
-     */
-    public static String WSDLMODELER_WARNING_IGNORING_HEADER_PART_FROM_BODY(Object arg0) {
-        return localizer.localize(localizableWSDLMODELER_WARNING_IGNORING_HEADER_PART_FROM_BODY(arg0));
+    public static String WSDLMODELER_WARNING_IGNORING_OPERATION_JAVA_RESERVED_WORD_NOT_ALLOWED_CUSTOMIZED_OPERATION_NAME(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableWSDLMODELER_WARNING_IGNORING_OPERATION_JAVA_RESERVED_WORD_NOT_ALLOWED_CUSTOMIZED_OPERATION_NAME(arg0, arg1));
     }
 
     public static Localizable localizableWSDLMODELER_INVALID_OPERATION_NOT_SUPPORTED_STYLE(Object arg0, Object arg1) {
-        return messageFactory.getMessage("wsdlmodeler.invalid.operation.notSupportedStyle", arg0, arg1);
+        return MESSAGE_FACTORY.getMessage("wsdlmodeler.invalid.operation.notSupportedStyle", arg0, arg1);
     }
 
     /**
@@ -1376,11 +136,167 @@
      *
      */
     public static String WSDLMODELER_INVALID_OPERATION_NOT_SUPPORTED_STYLE(Object arg0, Object arg1) {
-        return localizer.localize(localizableWSDLMODELER_INVALID_OPERATION_NOT_SUPPORTED_STYLE(arg0, arg1));
+        return LOCALIZER.localize(localizableWSDLMODELER_INVALID_OPERATION_NOT_SUPPORTED_STYLE(arg0, arg1));
+    }
+
+    public static Localizable localizableWSDLMODELER_WARNING_NONCONFORMING_WSDL_TYPES() {
+        return MESSAGE_FACTORY.getMessage("wsdlmodeler.warning.nonconforming.wsdl.types");
+    }
+
+    /**
+     * Non conforming WS-I WSDL used for wsdl:types
+     *
+     */
+    public static String WSDLMODELER_WARNING_NONCONFORMING_WSDL_TYPES() {
+        return LOCALIZER.localize(localizableWSDLMODELER_WARNING_NONCONFORMING_WSDL_TYPES());
+    }
+
+    public static Localizable localizableWSDLMODELER_INVALID_HEADER_NOT_FOUND(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("wsdlmodeler.invalid.header.notFound", arg0, arg1);
+    }
+
+    /**
+     * header "{0}" of binding operation "{1}": not found
+     *
+     */
+    public static String WSDLMODELER_INVALID_HEADER_NOT_FOUND(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableWSDLMODELER_INVALID_HEADER_NOT_FOUND(arg0, arg1));
+    }
+
+    public static Localizable localizableMIMEMODELER_WARNING_IGNORINGINVALID_HEADER_PART_NOT_DECLARED_IN_ROOT_PART(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("mimemodeler.warning.IgnoringinvalidHeaderPart.notDeclaredInRootPart", arg0);
+    }
+
+    /**
+     * Headers not in root mime:part with soap:body, ignoring headers in operation "{0}"
+     *
+     */
+    public static String MIMEMODELER_WARNING_IGNORINGINVALID_HEADER_PART_NOT_DECLARED_IN_ROOT_PART(Object arg0) {
+        return LOCALIZER.localize(localizableMIMEMODELER_WARNING_IGNORINGINVALID_HEADER_PART_NOT_DECLARED_IN_ROOT_PART(arg0));
+    }
+
+    public static Localizable localizableWSDLMODELER_UNSUPPORTED_BINDING_MIME() {
+        return MESSAGE_FACTORY.getMessage("wsdlmodeler.unsupportedBinding.mime");
+    }
+
+    /**
+     * WSDL MIME binding is not currently supported!
+     *
+     */
+    public static String WSDLMODELER_UNSUPPORTED_BINDING_MIME() {
+        return LOCALIZER.localize(localizableWSDLMODELER_UNSUPPORTED_BINDING_MIME());
+    }
+
+    public static Localizable localizableWSDLMODELER_NON_UNIQUE_BODY_ERROR(Object arg0, Object arg1, Object arg2, Object arg3) {
+        return MESSAGE_FACTORY.getMessage("wsdlmodeler.nonUnique.body.error", arg0, arg1, arg2, arg3);
+    }
+
+    /**
+     * Non unique body parts! In a port, as per BP 1.1 R2710 operations must have unique operation signature on the wire for successful dispatch. In port {0}, Operations "{1}" and "{2}" have the same request body block {3}. Try running wsimport with -extension switch, runtime will try to dispatch using SOAPAction
+     *
+     */
+    public static String WSDLMODELER_NON_UNIQUE_BODY_ERROR(Object arg0, Object arg1, Object arg2, Object arg3) {
+        return LOCALIZER.localize(localizableWSDLMODELER_NON_UNIQUE_BODY_ERROR(arg0, arg1, arg2, arg3));
+    }
+
+    public static Localizable localizableWSDLMODELER_INVALID_BINDING_FAULT_MISSING_NAMESPACE(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("wsdlmodeler.invalid.bindingFault.missingNamespace", arg0, arg1);
+    }
+
+    /**
+     * fault "{0}" in operation "{1}" must specify a value for the "namespace" attribute
+     *
+     */
+    public static String WSDLMODELER_INVALID_BINDING_FAULT_MISSING_NAMESPACE(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableWSDLMODELER_INVALID_BINDING_FAULT_MISSING_NAMESPACE(arg0, arg1));
+    }
+
+    public static Localizable localizableWSDLMODLER_WARNING_OPERATION_USE() {
+        return MESSAGE_FACTORY.getMessage("wsdlmodler.warning.operation.use");
+    }
+
+    /**
+     * The WSDL used has operations with literal and encoded use. -f:searchschema is not supported for this scenario.
+     *
+     */
+    public static String WSDLMODLER_WARNING_OPERATION_USE() {
+        return LOCALIZER.localize(localizableWSDLMODLER_WARNING_OPERATION_USE());
+    }
+
+    public static Localizable localizableWSDLMODELER_ERROR_PARTS_NOT_FOUND(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("wsdlmodeler.error.partsNotFound", arg0, arg1);
+    }
+
+    /**
+     * parts "{0}" not found in the message "{1}", wrong WSDL
+     *
+     */
+    public static String WSDLMODELER_ERROR_PARTS_NOT_FOUND(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableWSDLMODELER_ERROR_PARTS_NOT_FOUND(arg0, arg1));
+    }
+
+    public static Localizable localizableWSDLMODELER_JAXB_JAVATYPE_NOTFOUND(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("wsdlmodeler.jaxb.javatype.notfound", arg0, arg1);
+    }
+
+    /**
+     * Schema descriptor {0} in message part "{1}" is not defined and could not be bound to Java. Perhaps the schema descriptor {0} is not defined in the schema imported/included in the WSDL. You can either add such imports/includes or run wsimport and provide the schema location using -b switch.
+     *
+     */
+    public static String WSDLMODELER_JAXB_JAVATYPE_NOTFOUND(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableWSDLMODELER_JAXB_JAVATYPE_NOTFOUND(arg0, arg1));
+    }
+
+    public static Localizable localizableWSDLMODELER_INVALID_HEADERFAULT_NOT_LITERAL(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("wsdlmodeler.invalid.headerfault.notLiteral", arg0, arg1);
+    }
+
+    /**
+     * Invalid headerfault "{0}" of binding operation "{1}": not literal
+     *
+     */
+    public static String WSDLMODELER_INVALID_HEADERFAULT_NOT_LITERAL(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableWSDLMODELER_INVALID_HEADERFAULT_NOT_LITERAL(arg0, arg1));
+    }
+
+    public static Localizable localizableWSDLMODELER_20_RPCENC_NOT_SUPPORTED() {
+        return MESSAGE_FACTORY.getMessage("wsdlmodeler20.rpcenc.not.supported");
+    }
+
+    /**
+     * rpc/encoded wsdl's are not supported in JAXWS 2.0.
+     *
+     */
+    public static String WSDLMODELER_20_RPCENC_NOT_SUPPORTED() {
+        return LOCALIZER.localize(localizableWSDLMODELER_20_RPCENC_NOT_SUPPORTED());
+    }
+
+    public static Localizable localizableWSDLMODELER_INVALID_BINDING_FAULT_NOT_FOUND(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("wsdlmodeler.invalid.bindingFault.notFound", arg0, arg1);
+    }
+
+    /**
+     * fault "{0}" in operation "{1}" does not match any fault in the corresponding port type operation
+     *
+     */
+    public static String WSDLMODELER_INVALID_BINDING_FAULT_NOT_FOUND(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableWSDLMODELER_INVALID_BINDING_FAULT_NOT_FOUND(arg0, arg1));
+    }
+
+    public static Localizable localizableWSDLMODELER_INVALID_DOCLITOPERATION(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("wsdlmodeler.invalid.doclitoperation", arg0);
+    }
+
+    /**
+     * Invalid wsdl:operation "{0}": its a document-literal operation,  message part must refer to a schema element declaration
+     *
+     */
+    public static String WSDLMODELER_INVALID_DOCLITOPERATION(Object arg0) {
+        return LOCALIZER.localize(localizableWSDLMODELER_INVALID_DOCLITOPERATION(arg0));
     }
 
     public static Localizable localizableWSDLMODELER_WARNING_IGNORING_OPERATION_NOT_NC_NAME(Object arg0, Object arg1) {
-        return messageFactory.getMessage("wsdlmodeler.warning.ignoringOperation.notNCName", arg0, arg1);
+        return MESSAGE_FACTORY.getMessage("wsdlmodeler.warning.ignoringOperation.notNCName", arg0, arg1);
     }
 
     /**
@@ -1388,23 +304,35 @@
      *
      */
     public static String WSDLMODELER_WARNING_IGNORING_OPERATION_NOT_NC_NAME(Object arg0, Object arg1) {
-        return localizer.localize(localizableWSDLMODELER_WARNING_IGNORING_OPERATION_NOT_NC_NAME(arg0, arg1));
+        return LOCALIZER.localize(localizableWSDLMODELER_WARNING_IGNORING_OPERATION_NOT_NC_NAME(arg0, arg1));
     }
 
-    public static Localizable localizableWSDLMODELER_INVALID_PARAMETER_DIFFERENT_TYPES(Object arg0, Object arg1) {
-        return messageFactory.getMessage("wsdlmodeler.invalid.parameter.differentTypes", arg0, arg1);
+    public static Localizable localizableMIMEMODELER_INVALID_MIME_PART_NAME_NOT_ALLOWED(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("mimemodeler.invalidMimePart.nameNotAllowed", arg0);
     }
 
     /**
-     * parameter "{0}" of operation "{1}" appears with different types in the input and output messages
+     * name attribute on wsdl:part in Operation "{0}" is ignored. Its not allowed as per WS-I AP 1.0.
      *
      */
-    public static String WSDLMODELER_INVALID_PARAMETER_DIFFERENT_TYPES(Object arg0, Object arg1) {
-        return localizer.localize(localizableWSDLMODELER_INVALID_PARAMETER_DIFFERENT_TYPES(arg0, arg1));
+    public static String MIMEMODELER_INVALID_MIME_PART_NAME_NOT_ALLOWED(Object arg0) {
+        return LOCALIZER.localize(localizableMIMEMODELER_INVALID_MIME_PART_NAME_NOT_ALLOWED(arg0));
+    }
+
+    public static Localizable localizableWSDLMODELER_WARNING_IGNORING_OPERATION_NOT_LITERAL(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("wsdlmodeler.warning.ignoringOperation.notLiteral", arg0);
+    }
+
+    /**
+     * ignoring document-style operation "{0}": parameters are not literal
+     *
+     */
+    public static String WSDLMODELER_WARNING_IGNORING_OPERATION_NOT_LITERAL(Object arg0) {
+        return LOCALIZER.localize(localizableWSDLMODELER_WARNING_IGNORING_OPERATION_NOT_LITERAL(arg0));
     }
 
     public static Localizable localizableWSDLMODELER_WARNING_IGNORING_FAULT_DOCUMENT_OPERATION(Object arg0, Object arg1) {
-        return messageFactory.getMessage("wsdlmodeler.warning.ignoringFault.documentOperation", arg0, arg1);
+        return MESSAGE_FACTORY.getMessage("wsdlmodeler.warning.ignoringFault.documentOperation", arg0, arg1);
     }
 
     /**
@@ -1412,107 +340,47 @@
      *
      */
     public static String WSDLMODELER_WARNING_IGNORING_FAULT_DOCUMENT_OPERATION(Object arg0, Object arg1) {
-        return localizer.localize(localizableWSDLMODELER_WARNING_IGNORING_FAULT_DOCUMENT_OPERATION(arg0, arg1));
+        return LOCALIZER.localize(localizableWSDLMODELER_WARNING_IGNORING_FAULT_DOCUMENT_OPERATION(arg0, arg1));
     }
 
-    public static Localizable localizableWSDLMODELER_WARNING_NONCONFORMING_WSDL_USE(Object arg0) {
-        return messageFactory.getMessage("wsdlmodeler.warning.nonconforming.wsdl.use", arg0);
+    public static Localizable localizableWSDLMODELER_INVALID_BINDING_FAULT_NOT_UNIQUE(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("wsdlmodeler.invalid.bindingFault.notUnique", arg0, arg1);
     }
 
     /**
-     * Processing WS-I non conforming operation "{0}" with RPC-Style and SOAP-encoded
+     * fault "{0}" in operation "{1}" matches more than one fault in the corresponding port type operation
      *
      */
-    public static String WSDLMODELER_WARNING_NONCONFORMING_WSDL_USE(Object arg0) {
-        return localizer.localize(localizableWSDLMODELER_WARNING_NONCONFORMING_WSDL_USE(arg0));
+    public static String WSDLMODELER_INVALID_BINDING_FAULT_NOT_UNIQUE(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableWSDLMODELER_INVALID_BINDING_FAULT_NOT_UNIQUE(arg0, arg1));
     }
 
-    public static Localizable localizableWSDLMODELER_WARNING_NON_SOAP_PORT(Object arg0) {
-        return messageFactory.getMessage("wsdlmodeler.warning.nonSOAPPort", arg0);
+    public static Localizable localizableWSDLMODELER_INVALID_BINDING_OPERATION_MISSING_INPUT_NAME(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("wsdlmodeler.invalid.bindingOperation.missingInputName", arg0);
     }
 
     /**
-     * port "{0}": not a standard SOAP port. The generated artifacts may not work with JAX-WS runtime.
+     * binding operation "{0}" must specify a name for its input message
      *
      */
-    public static String WSDLMODELER_WARNING_NON_SOAP_PORT(Object arg0) {
-        return localizer.localize(localizableWSDLMODELER_WARNING_NON_SOAP_PORT(arg0));
+    public static String WSDLMODELER_INVALID_BINDING_OPERATION_MISSING_INPUT_NAME(Object arg0) {
+        return LOCALIZER.localize(localizableWSDLMODELER_INVALID_BINDING_OPERATION_MISSING_INPUT_NAME(arg0));
     }
 
-    public static Localizable localizableWSDLMODELER_INVALID_HEADERFAULT_MESSAGE_PART_MUST_HAVE_ELEMENT_DESCRIPTOR(Object arg0, Object arg1, Object arg2) {
-        return messageFactory.getMessage("wsdlmodeler.invalid.headerfault.message.partMustHaveElementDescriptor", arg0, arg1, arg2);
+    public static Localizable localizableWSDLMODELER_INVALID_OPERATION_JAVA_RESERVED_WORD_NOT_ALLOWED_WRAPPER_STYLE(Object arg0, Object arg1, Object arg2) {
+        return MESSAGE_FACTORY.getMessage("wsdlmodeler.invalid.operation.javaReservedWordNotAllowed.wrapperStyle", arg0, arg1, arg2);
     }
 
     /**
-     * Invalid headerfault "{0}" for header {1} in operation {2}: part must specify an "element" attribute
+     * Invalid operation "{0}", can''t generate java method parameter. Local name of the wrapper child "{1}" in the global element "{2}" is a java keyword. Use customization to change the parameter name.
      *
      */
-    public static String WSDLMODELER_INVALID_HEADERFAULT_MESSAGE_PART_MUST_HAVE_ELEMENT_DESCRIPTOR(Object arg0, Object arg1, Object arg2) {
-        return localizer.localize(localizableWSDLMODELER_INVALID_HEADERFAULT_MESSAGE_PART_MUST_HAVE_ELEMENT_DESCRIPTOR(arg0, arg1, arg2));
-    }
-
-    public static Localizable localizableWSDLMODELER_INVALID_STATE_MODELING_OPERATION(Object arg0) {
-        return messageFactory.getMessage("wsdlmodeler.invalidState.modelingOperation", arg0);
-    }
-
-    /**
-     * invalid state while modeling operation: {0}
-     *
-     */
-    public static String WSDLMODELER_INVALID_STATE_MODELING_OPERATION(Object arg0) {
-        return localizer.localize(localizableWSDLMODELER_INVALID_STATE_MODELING_OPERATION(arg0));
-    }
-
-    public static Localizable localizableWSDLMODELER_WARNING_IGNORING_OPERATION_JAVA_RESERVED_WORD_NOT_ALLOWED_OPERATION_NAME(Object arg0) {
-        return messageFactory.getMessage("wsdlmodeler.warning.ignoringOperation.javaReservedWordNotAllowed.operationName", arg0);
-    }
-
-    /**
-     * Ignoring operation "{0}", it''s java reserved word, can''t generate java method. Use customization to change the operation name.
-     *
-     */
-    public static String WSDLMODELER_WARNING_IGNORING_OPERATION_JAVA_RESERVED_WORD_NOT_ALLOWED_OPERATION_NAME(Object arg0) {
-        return localizer.localize(localizableWSDLMODELER_WARNING_IGNORING_OPERATION_JAVA_RESERVED_WORD_NOT_ALLOWED_OPERATION_NAME(arg0));
-    }
-
-    public static Localizable localizableWSDLMODELER_WARNING_IGNORING_HEADER_NOT_ENCODED(Object arg0, Object arg1) {
-        return messageFactory.getMessage("wsdlmodeler.warning.ignoringHeader.notEncoded", arg0, arg1);
-    }
-
-    /**
-     * ignoring header "{0}" of binding operation "{1}": not SOAP-encoded
-     *
-     */
-    public static String WSDLMODELER_WARNING_IGNORING_HEADER_NOT_ENCODED(Object arg0, Object arg1) {
-        return localizer.localize(localizableWSDLMODELER_WARNING_IGNORING_HEADER_NOT_ENCODED(arg0, arg1));
-    }
-
-    public static Localizable localizableWSDLMODELER_DUPLICATE_FAULT_PART_NAME(Object arg0, Object arg1, Object arg2) {
-        return messageFactory.getMessage("wsdlmodeler.duplicate.fault.part.name", arg0, arg1, arg2);
-    }
-
-    /**
-     * ignoring fault "{0}" of operation "{1}", part name "{2}" is not unique
-     *
-     */
-    public static String WSDLMODELER_DUPLICATE_FAULT_PART_NAME(Object arg0, Object arg1, Object arg2) {
-        return localizer.localize(localizableWSDLMODELER_DUPLICATE_FAULT_PART_NAME(arg0, arg1, arg2));
-    }
-
-    public static Localizable localizableWSDLMODELER_INVALID_OPERATION_MORE_THAN_ONE_PART_IN_MESSAGE(Object arg0) {
-        return messageFactory.getMessage("wsdlmodeler.invalid.operation.MoreThanOnePartInMessage", arg0);
-    }
-
-    /**
-     * operation "{0}": more than one part bound to body
-     *
-     */
-    public static String WSDLMODELER_INVALID_OPERATION_MORE_THAN_ONE_PART_IN_MESSAGE(Object arg0) {
-        return localizer.localize(localizableWSDLMODELER_INVALID_OPERATION_MORE_THAN_ONE_PART_IN_MESSAGE(arg0));
+    public static String WSDLMODELER_INVALID_OPERATION_JAVA_RESERVED_WORD_NOT_ALLOWED_WRAPPER_STYLE(Object arg0, Object arg1, Object arg2) {
+        return LOCALIZER.localize(localizableWSDLMODELER_INVALID_OPERATION_JAVA_RESERVED_WORD_NOT_ALLOWED_WRAPPER_STYLE(arg0, arg1, arg2));
     }
 
     public static Localizable localizableWSDLMODELER_WARNING_IGNORING_SOAP_BINDING_12(Object arg0) {
-        return messageFactory.getMessage("wsdlmodeler.warning.ignoringSOAPBinding12", arg0);
+        return MESSAGE_FACTORY.getMessage("wsdlmodeler.warning.ignoringSOAPBinding12", arg0);
     }
 
     /**
@@ -1521,71 +389,539 @@
      *
      */
     public static String WSDLMODELER_WARNING_IGNORING_SOAP_BINDING_12(Object arg0) {
-        return localizer.localize(localizableWSDLMODELER_WARNING_IGNORING_SOAP_BINDING_12(arg0));
+        return LOCALIZER.localize(localizableWSDLMODELER_WARNING_IGNORING_SOAP_BINDING_12(arg0));
     }
 
-    public static Localizable localizableWSDLMODELER_INVALID_BINDING_FAULT_NOT_UNIQUE(Object arg0, Object arg1) {
-        return messageFactory.getMessage("wsdlmodeler.invalid.bindingFault.notUnique", arg0, arg1);
+    public static Localizable localizableMIMEMODELER_INVALID_MIME_CONTENT_MESAGE_PART_ELEMENT_KIND(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("mimemodeler.invalidMimeContent.mesagePartElementKind", arg0);
     }
 
     /**
-     * fault "{0}" in operation "{1}" matches more than one fault in the corresponding port type operation
+     * wsdl:part element referenced by mime:content part attribute: {0} must be defined using type attribute!
      *
      */
-    public static String WSDLMODELER_INVALID_BINDING_FAULT_NOT_UNIQUE(Object arg0, Object arg1) {
-        return localizer.localize(localizableWSDLMODELER_INVALID_BINDING_FAULT_NOT_UNIQUE(arg0, arg1));
+    public static String MIMEMODELER_INVALID_MIME_CONTENT_MESAGE_PART_ELEMENT_KIND(Object arg0) {
+        return LOCALIZER.localize(localizableMIMEMODELER_INVALID_MIME_CONTENT_MESAGE_PART_ELEMENT_KIND(arg0));
     }
 
-    public static Localizable localizableWSDLMODELER_INVALID_BINDING_OPERATION_OUTPUT_MISSING_SOAP_BODY(Object arg0) {
-        return messageFactory.getMessage("wsdlmodeler.invalid.bindingOperation.outputMissingSoapBody", arg0);
+    public static Localizable localizableWSDLMODELER_WARNING_IGNORING_SOAP_BINDING_NON_HTTP_TRANSPORT(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("wsdlmodeler.warning.ignoringSOAPBinding.nonHTTPTransport", arg0);
     }
 
     /**
-     * output message of binding operation "{0}" does not have a SOAP body extension
+     * ignoring SOAP port "{0}": unrecognized transport. try running wsimport with -extension switch.
      *
      */
-    public static String WSDLMODELER_INVALID_BINDING_OPERATION_OUTPUT_MISSING_SOAP_BODY(Object arg0) {
-        return localizer.localize(localizableWSDLMODELER_INVALID_BINDING_OPERATION_OUTPUT_MISSING_SOAP_BODY(arg0));
+    public static String WSDLMODELER_WARNING_IGNORING_SOAP_BINDING_NON_HTTP_TRANSPORT(Object arg0) {
+        return LOCALIZER.localize(localizableWSDLMODELER_WARNING_IGNORING_SOAP_BINDING_NON_HTTP_TRANSPORT(arg0));
     }
 
-    public static Localizable localizableWSDLMODELER_WARNING_IGNORING_HEADER_FAULT_NOT_LITERAL(Object arg0, Object arg1, Object arg2) {
-        return messageFactory.getMessage("wsdlmodeler.warning.ignoringHeaderFault.notLiteral", arg0, arg1, arg2);
+    public static Localizable localizableWSDLMODELER_DUPLICATE_FAULT_SOAP_NAME(Object arg0, Object arg1, Object arg2) {
+        return MESSAGE_FACTORY.getMessage("wsdlmodeler.duplicate.fault.soap.name", arg0, arg1, arg2);
     }
 
     /**
-     * ignoring header fault part="{0}" message="{1}" of operation {2}, use attribute must be "literal"
+     * ignoring fault "{0}" of operation "{1}", soap:fault name "{2}" is not unique
      *
      */
-    public static String WSDLMODELER_WARNING_IGNORING_HEADER_FAULT_NOT_LITERAL(Object arg0, Object arg1, Object arg2) {
-        return localizer.localize(localizableWSDLMODELER_WARNING_IGNORING_HEADER_FAULT_NOT_LITERAL(arg0, arg1, arg2));
+    public static String WSDLMODELER_DUPLICATE_FAULT_SOAP_NAME(Object arg0, Object arg1, Object arg2) {
+        return LOCALIZER.localize(localizableWSDLMODELER_DUPLICATE_FAULT_SOAP_NAME(arg0, arg1, arg2));
     }
 
-    public static Localizable localizableWSDLMODELER_WARNING_IGNORING_OPERATION_CANNOT_HANDLE_MORE_THAN_ONE_PART_IN_OUTPUT_MESSAGE(Object arg0) {
-        return messageFactory.getMessage("wsdlmodeler.warning.ignoringOperation.cannotHandleMoreThanOnePartInOutputMessage", arg0);
+    public static Localizable localizableWSDLMODELER_WARNING_IGNORING_OPERATION_CANNOT_HANDLE_EMPTY_OUTPUT_MESSAGE(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("wsdlmodeler.warning.ignoringOperation.cannotHandleEmptyOutputMessage", arg0);
     }
 
     /**
-     * ignoring operation "{0}": more than one part in output message
+     * ignoring operation "{0}": output message is empty
      *
      */
-    public static String WSDLMODELER_WARNING_IGNORING_OPERATION_CANNOT_HANDLE_MORE_THAN_ONE_PART_IN_OUTPUT_MESSAGE(Object arg0) {
-        return localizer.localize(localizableWSDLMODELER_WARNING_IGNORING_OPERATION_CANNOT_HANDLE_MORE_THAN_ONE_PART_IN_OUTPUT_MESSAGE(arg0));
+    public static String WSDLMODELER_WARNING_IGNORING_OPERATION_CANNOT_HANDLE_EMPTY_OUTPUT_MESSAGE(Object arg0) {
+        return LOCALIZER.localize(localizableWSDLMODELER_WARNING_IGNORING_OPERATION_CANNOT_HANDLE_EMPTY_OUTPUT_MESSAGE(arg0));
     }
 
-    public static Localizable localizableWSDLMODELER_WARNING_NO_OPERATIONS_IN_PORT(Object arg0) {
-        return messageFactory.getMessage("wsdlmodeler.warning.noOperationsInPort", arg0);
+    public static Localizable localizableMIMEMODELER_INVALID_MIME_PART_MORE_THAN_ONE_SOAP_BODY(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("mimemodeler.invalidMimePart.moreThanOneSOAPBody", arg0);
     }
 
     /**
-     * Port "{0}" does not contain any usable operations
+     * Ignoring operation "{0}". The Multipart/Related structure has invalid root part: more than one soap:body parts found
      *
      */
-    public static String WSDLMODELER_WARNING_NO_OPERATIONS_IN_PORT(Object arg0) {
-        return localizer.localize(localizableWSDLMODELER_WARNING_NO_OPERATIONS_IN_PORT(arg0));
+    public static String MIMEMODELER_INVALID_MIME_PART_MORE_THAN_ONE_SOAP_BODY(Object arg0) {
+        return LOCALIZER.localize(localizableMIMEMODELER_INVALID_MIME_PART_MORE_THAN_ONE_SOAP_BODY(arg0));
+    }
+
+    public static Localizable localizableWSDLMODELER_INVALID_BINDING_FAULT_MESSAGE_HAS_MORE_THAN_ONE_PART(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("wsdlmodeler.invalid.bindingFault.messageHasMoreThanOnePart", arg0, arg1);
+    }
+
+    /**
+     * fault "{0}" refers to message "{1}", but the message has more than one parts
+     *
+     */
+    public static String WSDLMODELER_INVALID_BINDING_FAULT_MESSAGE_HAS_MORE_THAN_ONE_PART(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableWSDLMODELER_INVALID_BINDING_FAULT_MESSAGE_HAS_MORE_THAN_ONE_PART(arg0, arg1));
+    }
+
+    public static Localizable localizableWSDLMODELER_WARNING_IGNORING_OPERATION_CANNOT_HANDLE_TYPE_MESSAGE_PART(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("wsdlmodeler.warning.ignoringOperation.cannotHandleTypeMessagePart", arg0);
+    }
+
+    /**
+     * ignoring operation "{0}": message part does not refer to a schema element declaration
+     *
+     */
+    public static String WSDLMODELER_WARNING_IGNORING_OPERATION_CANNOT_HANDLE_TYPE_MESSAGE_PART(Object arg0) {
+        return LOCALIZER.localize(localizableWSDLMODELER_WARNING_IGNORING_OPERATION_CANNOT_HANDLE_TYPE_MESSAGE_PART(arg0));
+    }
+
+    public static Localizable localizableWSDLMODELER_WARNING_IGNORING_FAULTS(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("wsdlmodeler.warning.ignoringFaults", arg0);
+    }
+
+    /**
+     * ignoring faults declared by operation "{0}"
+     *
+     */
+    public static String WSDLMODELER_WARNING_IGNORING_FAULTS(Object arg0) {
+        return LOCALIZER.localize(localizableWSDLMODELER_WARNING_IGNORING_FAULTS(arg0));
+    }
+
+    public static Localizable localizableWSDLMODELER_INVALID_BINDING_OPERATION_INPUT_SOAP_BODY_MISSING_NAMESPACE(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("wsdlmodeler.invalid.bindingOperation.inputSoapBody.missingNamespace", arg0);
+    }
+
+    /**
+     * input message of binding operation "{0}" must specify a value for the "namespace" attribute
+     *
+     */
+    public static String WSDLMODELER_INVALID_BINDING_OPERATION_INPUT_SOAP_BODY_MISSING_NAMESPACE(Object arg0) {
+        return LOCALIZER.localize(localizableWSDLMODELER_INVALID_BINDING_OPERATION_INPUT_SOAP_BODY_MISSING_NAMESPACE(arg0));
+    }
+
+    public static Localizable localizableWSDLMODELER_WARNING_IGNORING_OPERATION_CANNOT_HANDLE_ELEMENT_MESSAGE_PART(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("wsdlmodeler.warning.ignoringOperation.cannotHandleElementMessagePart", arg0);
+    }
+
+    /**
+     * ignoring operation "{0}": message part does not refer to a schema type declaration
+     *
+     */
+    public static String WSDLMODELER_WARNING_IGNORING_OPERATION_CANNOT_HANDLE_ELEMENT_MESSAGE_PART(Object arg0) {
+        return LOCALIZER.localize(localizableWSDLMODELER_WARNING_IGNORING_OPERATION_CANNOT_HANDLE_ELEMENT_MESSAGE_PART(arg0));
+    }
+
+    public static Localizable localizableMODELER_NESTED_MODEL_ERROR(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("modeler.nestedModelError", arg0);
+    }
+
+    /**
+     * modeler error: {0}
+     *
+     */
+    public static String MODELER_NESTED_MODEL_ERROR(Object arg0) {
+        return LOCALIZER.localize(localizableMODELER_NESTED_MODEL_ERROR(arg0));
+    }
+
+    public static Localizable localizableMIMEMODELER_INVALID_MIME_CONTENT_DIFFERENT_PART() {
+        return MESSAGE_FACTORY.getMessage("mimemodeler.invalidMimeContent.differentPart");
+    }
+
+    /**
+     * Ignoring the mime:part. Invalid mime:part, the mime:content has different part attribute.
+     *
+     */
+    public static String MIMEMODELER_INVALID_MIME_CONTENT_DIFFERENT_PART() {
+        return LOCALIZER.localize(localizableMIMEMODELER_INVALID_MIME_CONTENT_DIFFERENT_PART());
+    }
+
+    public static Localizable localizableWSDLMODELER_INVALID_IGNORING_MEMBER_SUBMISSION_ADDRESSING(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("wsdlmodeler.invalid.ignoringMemberSubmissionAddressing", arg0, arg1);
+    }
+
+    /**
+     * ignoring wsa:Action attribute since obsolete addressing version 08-2004:"{0}" used; expecting addressing version "{1}". To use version 08-2004 anyway run wsimport with -extension switch.
+     *
+     */
+    public static String WSDLMODELER_INVALID_IGNORING_MEMBER_SUBMISSION_ADDRESSING(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableWSDLMODELER_INVALID_IGNORING_MEMBER_SUBMISSION_ADDRESSING(arg0, arg1));
+    }
+
+    public static Localizable localizableWSDLMODELER_WARNING_BINDING_OPERATION_MULTIPLE_PART_BINDING(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("wsdlmodeler.warning.bindingOperation.multiplePartBinding", arg0, arg1);
+    }
+
+    /**
+     * Check the abstract operation "{0}" binding, part "{1}" has multiple binding. Will try to generated artifacts anyway...
+     *
+     */
+    public static String WSDLMODELER_WARNING_BINDING_OPERATION_MULTIPLE_PART_BINDING(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableWSDLMODELER_WARNING_BINDING_OPERATION_MULTIPLE_PART_BINDING(arg0, arg1));
+    }
+
+    public static Localizable localizableWSDLMODELER_WARNING_IGNORING_NON_SOAP_PORT_NO_ADDRESS(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("wsdlmodeler.warning.ignoringNonSOAPPort.noAddress", arg0);
+    }
+
+    /**
+     * ignoring port "{0}": no SOAP address specified. try running wsimport with -extension switch.
+     *
+     */
+    public static String WSDLMODELER_WARNING_IGNORING_NON_SOAP_PORT_NO_ADDRESS(Object arg0) {
+        return LOCALIZER.localize(localizableWSDLMODELER_WARNING_IGNORING_NON_SOAP_PORT_NO_ADDRESS(arg0));
+    }
+
+    public static Localizable localizableWSDLMODELER_WARNING_PORT_SOAP_BINDING_12(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("wsdlmodeler.warning.port.SOAPBinding12", arg0);
+    }
+
+    /**
+     * SOAP port "{0}": uses a non-standard SOAP 1.2 binding.
+     *
+     */
+    public static String WSDLMODELER_WARNING_PORT_SOAP_BINDING_12(Object arg0) {
+        return LOCALIZER.localize(localizableWSDLMODELER_WARNING_PORT_SOAP_BINDING_12(arg0));
+    }
+
+    public static Localizable localizableMIMEMODELER_INVALID_MIME_CONTENT_INVALID_SCHEMA_TYPE(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("mimemodeler.invalidMimeContent.invalidSchemaType", arg0, arg1);
+    }
+
+    /**
+     * Ignoring the mime:part. mime part: {0} can not be mapped to schema type: {1}
+     *
+     */
+    public static String MIMEMODELER_INVALID_MIME_CONTENT_INVALID_SCHEMA_TYPE(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableMIMEMODELER_INVALID_MIME_CONTENT_INVALID_SCHEMA_TYPE(arg0, arg1));
+    }
+
+    public static Localizable localizableWSDLMODELER_WARNING_IGNORING_OPERATION_NOT_ENCODED(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("wsdlmodeler.warning.ignoringOperation.notEncoded", arg0);
+    }
+
+    /**
+     * ignoring RPC-style operation "{0}": parameters are not encoded
+     *
+     */
+    public static String WSDLMODELER_WARNING_IGNORING_OPERATION_NOT_ENCODED(Object arg0) {
+        return LOCALIZER.localize(localizableWSDLMODELER_WARNING_IGNORING_OPERATION_NOT_ENCODED(arg0));
+    }
+
+    public static Localizable localizableWSDLMODELER_INVALID_HEADER_MESSAGE_PART_MUST_HAVE_ELEMENT_DESCRIPTOR(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("wsdlmodeler.invalid.header.message.partMustHaveElementDescriptor", arg0, arg1);
+    }
+
+    /**
+     * Invalid header "{0}" in operation {1}: part must specify a "element" attribute
+     *
+     */
+    public static String WSDLMODELER_INVALID_HEADER_MESSAGE_PART_MUST_HAVE_ELEMENT_DESCRIPTOR(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableWSDLMODELER_INVALID_HEADER_MESSAGE_PART_MUST_HAVE_ELEMENT_DESCRIPTOR(arg0, arg1));
+    }
+
+    public static Localizable localizableWSDLMODELER_INVALID_MESSAGE_PART_MUST_HAVE_ELEMENT_DESCRIPTOR(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("wsdlmodeler.invalid.message.partMustHaveElementDescriptor", arg0, arg1);
+    }
+
+    /**
+     * in message "{0}", part "{1}" must specify a "element" attribute
+     *
+     */
+    public static String WSDLMODELER_INVALID_MESSAGE_PART_MUST_HAVE_ELEMENT_DESCRIPTOR(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableWSDLMODELER_INVALID_MESSAGE_PART_MUST_HAVE_ELEMENT_DESCRIPTOR(arg0, arg1));
+    }
+
+    public static Localizable localizableWSDLMODELER_ERROR_PART_NOT_FOUND(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("wsdlmodeler.error.partNotFound", arg0, arg1);
+    }
+
+    /**
+     * part "{1}" of operation "{0}" could not be resolved!
+     *
+     */
+    public static String WSDLMODELER_ERROR_PART_NOT_FOUND(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableWSDLMODELER_ERROR_PART_NOT_FOUND(arg0, arg1));
+    }
+
+    public static Localizable localizableWSDLMODELER_INVALID_OPERATION_JAVA_RESERVED_WORD_NOT_ALLOWED_OPERATION_NAME(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("wsdlmodeler.invalid.operation.javaReservedWordNotAllowed.operationName", arg0);
+    }
+
+    /**
+     * Invalid operation "{0}", it''s java reserved word, can''t generate java method. Use customization to change the operation name.
+     *
+     */
+    public static String WSDLMODELER_INVALID_OPERATION_JAVA_RESERVED_WORD_NOT_ALLOWED_OPERATION_NAME(Object arg0) {
+        return LOCALIZER.localize(localizableWSDLMODELER_INVALID_OPERATION_JAVA_RESERVED_WORD_NOT_ALLOWED_OPERATION_NAME(arg0));
+    }
+
+    public static Localizable localizableWSDLMODELER_INVALID_BINDING_OPERATION_NOT_IN_PORT_TYPE(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("wsdlmodeler.invalid.bindingOperation.notInPortType", arg0, arg1);
+    }
+
+    /**
+     * in binding "{1}", operation "{0}" does not appear in the corresponding port type
+     *
+     */
+    public static String WSDLMODELER_INVALID_BINDING_OPERATION_NOT_IN_PORT_TYPE(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableWSDLMODELER_INVALID_BINDING_OPERATION_NOT_IN_PORT_TYPE(arg0, arg1));
+    }
+
+    public static Localizable localizableWSDLMODELER_INVALID_OPERATION(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("wsdlmodeler.invalidOperation", arg0);
+    }
+
+    /**
+     * invalid operation: {0}
+     *
+     */
+    public static String WSDLMODELER_INVALID_OPERATION(Object arg0) {
+        return LOCALIZER.localize(localizableWSDLMODELER_INVALID_OPERATION(arg0));
+    }
+
+    public static Localizable localizableWSDLMODELER_INVALID_BINDING_OPERATION_OUTPUT_HEADER_MISSING_NAMESPACE(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("wsdlmodeler.invalid.bindingOperation.outputHeader.missingNamespace", arg0, arg1);
+    }
+
+    /**
+     * output header "{1}" of binding operation "{0}" must specify a value for the "namespace" attribute
+     *
+     */
+    public static String WSDLMODELER_INVALID_BINDING_OPERATION_OUTPUT_HEADER_MISSING_NAMESPACE(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableWSDLMODELER_INVALID_BINDING_OPERATION_OUTPUT_HEADER_MISSING_NAMESPACE(arg0, arg1));
+    }
+
+    public static Localizable localizableWSDLMODELER_WARNING_IGNORING_OPERATION_CANNOT_HANDLE_MORE_THAN_ONE_PART_IN_INPUT_MESSAGE(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("wsdlmodeler.warning.ignoringOperation.cannotHandleMoreThanOnePartInInputMessage", arg0);
+    }
+
+    /**
+     * ignoring operation "{0}": more than one part in input message
+     *
+     */
+    public static String WSDLMODELER_WARNING_IGNORING_OPERATION_CANNOT_HANDLE_MORE_THAN_ONE_PART_IN_INPUT_MESSAGE(Object arg0) {
+        return LOCALIZER.localize(localizableWSDLMODELER_WARNING_IGNORING_OPERATION_CANNOT_HANDLE_MORE_THAN_ONE_PART_IN_INPUT_MESSAGE(arg0));
+    }
+
+    public static Localizable localizableWSDLMODELER_INVALID_BINDING_OPERATION_MISSING_OUTPUT_NAME(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("wsdlmodeler.invalid.bindingOperation.missingOutputName", arg0);
+    }
+
+    /**
+     * binding operation "{0}" must specify a name for its output message
+     *
+     */
+    public static String WSDLMODELER_INVALID_BINDING_OPERATION_MISSING_OUTPUT_NAME(Object arg0) {
+        return LOCALIZER.localize(localizableWSDLMODELER_INVALID_BINDING_OPERATION_MISSING_OUTPUT_NAME(arg0));
+    }
+
+    public static Localizable localizableWSDLMODELER_INVALID_BINDING_FAULT_MISSING_NAME(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("wsdlmodeler.invalid.bindingFault.missingName", arg0, arg1);
+    }
+
+    /**
+     * fault "{0}" in operation "{1}" must specify a value for the "name" attribute
+     *
+     */
+    public static String WSDLMODELER_INVALID_BINDING_FAULT_MISSING_NAME(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableWSDLMODELER_INVALID_BINDING_FAULT_MISSING_NAME(arg0, arg1));
+    }
+
+    public static Localizable localizableWSDLMODELER_INVALID_BINDING_OPERATION_NOT_FOUND(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("wsdlmodeler.invalid.bindingOperation.notFound", arg0, arg1);
+    }
+
+    /**
+     * in binding "{1}", operation "{0}" does not match any operation in the corresponding port type
+     *
+     */
+    public static String WSDLMODELER_INVALID_BINDING_OPERATION_NOT_FOUND(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableWSDLMODELER_INVALID_BINDING_OPERATION_NOT_FOUND(arg0, arg1));
+    }
+
+    public static Localizable localizableWSDLMODELER_WARNING_IGNORING_OPERATION_CANNOT_HANDLE_BODY_PARTS_ATTRIBUTE(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("wsdlmodeler.warning.ignoringOperation.cannotHandleBodyPartsAttribute", arg0);
+    }
+
+    /**
+     * ignoring operation "{0}": cannot handle "parts" attribute of "soap:body" element
+     *
+     */
+    public static String WSDLMODELER_WARNING_IGNORING_OPERATION_CANNOT_HANDLE_BODY_PARTS_ATTRIBUTE(Object arg0) {
+        return LOCALIZER.localize(localizableWSDLMODELER_WARNING_IGNORING_OPERATION_CANNOT_HANDLE_BODY_PARTS_ATTRIBUTE(arg0));
+    }
+
+    public static Localizable localizableWSDLMODELER_WARNING_IGNORING_OPERATION_JAVA_RESERVED_WORD_NOT_ALLOWED_NON_WRAPPER_STYLE(Object arg0, Object arg1, Object arg2) {
+        return MESSAGE_FACTORY.getMessage("wsdlmodeler.warning.ignoringOperation.javaReservedWordNotAllowed.nonWrapperStyle", arg0, arg1, arg2);
+    }
+
+    /**
+     * Ignoring operation "{0}", can''t generate java method. Parameter: part "{2}" in wsdl:message "{1}", is a java keyword. Use customization to change the parameter name or change the wsdl:part name.
+     *
+     */
+    public static String WSDLMODELER_WARNING_IGNORING_OPERATION_JAVA_RESERVED_WORD_NOT_ALLOWED_NON_WRAPPER_STYLE(Object arg0, Object arg1, Object arg2) {
+        return LOCALIZER.localize(localizableWSDLMODELER_WARNING_IGNORING_OPERATION_JAVA_RESERVED_WORD_NOT_ALLOWED_NON_WRAPPER_STYLE(arg0, arg1, arg2));
+    }
+
+    public static Localizable localizableWSDLMODELER_WARNING_IGNORING_OPERATION_CONFLICT_STYLE_IN_WSI_MODE(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("wsdlmodeler.warning.ignoringOperation.conflictStyleInWSIMode", arg0);
+    }
+
+    /**
+     * ignoring operation "{0}": binding style and operation style are conflicting
+     *
+     */
+    public static String WSDLMODELER_WARNING_IGNORING_OPERATION_CONFLICT_STYLE_IN_WSI_MODE(Object arg0) {
+        return LOCALIZER.localize(localizableWSDLMODELER_WARNING_IGNORING_OPERATION_CONFLICT_STYLE_IN_WSI_MODE(arg0));
+    }
+
+    public static Localizable localizableWSDLMODELER_WARNING_IGNORING_HEADER_NOT_FOUND(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("wsdlmodeler.warning.ignoringHeader.notFound", arg0, arg1);
+    }
+
+    /**
+     * ignoring header "{0}" of binding operation "{1}": not found
+     *
+     */
+    public static String WSDLMODELER_WARNING_IGNORING_HEADER_NOT_FOUND(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableWSDLMODELER_WARNING_IGNORING_HEADER_NOT_FOUND(arg0, arg1));
+    }
+
+    public static Localizable localizableWSDLMODELER_WARNING_MEMBER_SUBMISSION_ADDRESSING_USED(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("wsdlmodeler.warning.memberSubmissionAddressingUsed", arg0, arg1);
+    }
+
+    /**
+     * obsolete addressing version 08-2004:"{0}" used; version "{1}" should be used instead.
+     *
+     */
+    public static String WSDLMODELER_WARNING_MEMBER_SUBMISSION_ADDRESSING_USED(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableWSDLMODELER_WARNING_MEMBER_SUBMISSION_ADDRESSING_USED(arg0, arg1));
+    }
+
+    public static Localizable localizableWSDLMODELER_WARNING_NO_SOAP_ADDRESS(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("wsdlmodeler.warning.noSOAPAddress", arg0);
+    }
+
+    /**
+     * Port "{0}" is not a SOAP port, it has no soap:address
+     *
+     */
+    public static String WSDLMODELER_WARNING_NO_SOAP_ADDRESS(Object arg0) {
+        return LOCALIZER.localize(localizableWSDLMODELER_WARNING_NO_SOAP_ADDRESS(arg0));
+    }
+
+    public static Localizable localizableWSDLMODELER_WARNING_IGNORING_OPERATION_JAVA_RESERVED_WORD_NOT_ALLOWED_OPERATION_NAME(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("wsdlmodeler.warning.ignoringOperation.javaReservedWordNotAllowed.operationName", arg0);
+    }
+
+    /**
+     * Ignoring operation "{0}", it''s java reserved word, can''t generate java method. Use customization to change the operation name.
+     *
+     */
+    public static String WSDLMODELER_WARNING_IGNORING_OPERATION_JAVA_RESERVED_WORD_NOT_ALLOWED_OPERATION_NAME(Object arg0) {
+        return LOCALIZER.localize(localizableWSDLMODELER_WARNING_IGNORING_OPERATION_JAVA_RESERVED_WORD_NOT_ALLOWED_OPERATION_NAME(arg0));
+    }
+
+    public static Localizable localizableWSDLMODELER_WARNING_IGNORING_HEADER_NOT_LITERAL(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("wsdlmodeler.warning.ignoringHeader.notLiteral", arg0, arg1);
+    }
+
+    /**
+     * ignoring header "{0}" of binding operation "{1}": not literal
+     *
+     */
+    public static String WSDLMODELER_WARNING_IGNORING_HEADER_NOT_LITERAL(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableWSDLMODELER_WARNING_IGNORING_HEADER_NOT_LITERAL(arg0, arg1));
+    }
+
+    public static Localizable localizableWSDLMODELER_INVALID_BINDING_FAULT_OUTPUT_MISSING_SOAP_FAULT(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("wsdlmodeler.invalid.bindingFault.outputMissingSoapFault", arg0, arg1);
+    }
+
+    /**
+     * fault "{0}" in operation "{1}" does not have a SOAP fault extension
+     *
+     */
+    public static String WSDLMODELER_INVALID_BINDING_FAULT_OUTPUT_MISSING_SOAP_FAULT(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableWSDLMODELER_INVALID_BINDING_FAULT_OUTPUT_MISSING_SOAP_FAULT(arg0, arg1));
+    }
+
+    public static Localizable localizableWSDLMODELER_NON_UNIQUE_BODY_WARNING(Object arg0, Object arg1, Object arg2, Object arg3) {
+        return MESSAGE_FACTORY.getMessage("wsdlmodeler.nonUnique.body.warning", arg0, arg1, arg2, arg3);
+    }
+
+    /**
+     * Non unique body parts! In a port, as per BP 1.1 R2710 operations must have unique operation signature on the wire for successful dispatch. In port {0}, Operations "{1}" and "{2}" have the same request body block {3}. Method dispatching may fail, runtime will try to dispatch using SOAPAction
+     *
+     */
+    public static String WSDLMODELER_NON_UNIQUE_BODY_WARNING(Object arg0, Object arg1, Object arg2, Object arg3) {
+        return LOCALIZER.localize(localizableWSDLMODELER_NON_UNIQUE_BODY_WARNING(arg0, arg1, arg2, arg3));
+    }
+
+    public static Localizable localizableWSDLMODELER_WARNING_PORT_SOAP_BINDING_MIXED_STYLE(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("wsdlmodeler.warning.port.SOAPBinding.mixedStyle", arg0);
+    }
+
+    /**
+     * not a WS-I BP1.1 compliant SOAP port "{0}": the WSDL binding has mixed style, it must be rpc-literal or document-literal operation!
+     *
+     */
+    public static String WSDLMODELER_WARNING_PORT_SOAP_BINDING_MIXED_STYLE(Object arg0) {
+        return LOCALIZER.localize(localizableWSDLMODELER_WARNING_PORT_SOAP_BINDING_MIXED_STYLE(arg0));
+    }
+
+    public static Localizable localizableWSDLMODELER_INVALID_BINDING_FAULT_NO_SOAP_FAULT_NAME(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("wsdlmodeler.invalid.bindingFault.noSoapFaultName", arg0, arg1);
+    }
+
+    /**
+     * soap:fault name not specified, wsdl:fault "{0}" in operation "{1}"
+     *
+     */
+    public static String WSDLMODELER_INVALID_BINDING_FAULT_NO_SOAP_FAULT_NAME(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableWSDLMODELER_INVALID_BINDING_FAULT_NO_SOAP_FAULT_NAME(arg0, arg1));
+    }
+
+    public static Localizable localizableWSDLMODELER_INVALID_HEADERFAULT_MESSAGE_PART_MUST_HAVE_ELEMENT_DESCRIPTOR(Object arg0, Object arg1, Object arg2) {
+        return MESSAGE_FACTORY.getMessage("wsdlmodeler.invalid.headerfault.message.partMustHaveElementDescriptor", arg0, arg1, arg2);
+    }
+
+    /**
+     * Invalid headerfault "{0}" for header {1} in operation {2}: part must specify an "element" attribute
+     *
+     */
+    public static String WSDLMODELER_INVALID_HEADERFAULT_MESSAGE_PART_MUST_HAVE_ELEMENT_DESCRIPTOR(Object arg0, Object arg1, Object arg2) {
+        return LOCALIZER.localize(localizableWSDLMODELER_INVALID_HEADERFAULT_MESSAGE_PART_MUST_HAVE_ELEMENT_DESCRIPTOR(arg0, arg1, arg2));
+    }
+
+    public static Localizable localizableWSDLMODELER_RPCLIT_UNKOWNSCHEMATYPE(Object arg0, Object arg1, Object arg2) {
+        return MESSAGE_FACTORY.getMessage("wsdlmodeler.rpclit.unkownschematype", arg0, arg1, arg2);
+    }
+
+    /**
+     * XML type "{0}" could not be resolved, XML to JAVA binding failed! Please check the wsdl:part "{1}" in the wsdl:message "{2}".
+     *
+     */
+    public static String WSDLMODELER_RPCLIT_UNKOWNSCHEMATYPE(Object arg0, Object arg1, Object arg2) {
+        return LOCALIZER.localize(localizableWSDLMODELER_RPCLIT_UNKOWNSCHEMATYPE(arg0, arg1, arg2));
+    }
+
+    public static Localizable localizableWSDLMODELER_WARNING_R_2716(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("wsdlmodeler.warning.r2716", arg0, arg1);
+    }
+
+    /**
+     * R2716 WSI-BasicProfile ver. 1.0, namespace attribute not allowed in doc/lit for {0}: "{1}"
+     *
+     */
+    public static String WSDLMODELER_WARNING_R_2716(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableWSDLMODELER_WARNING_R_2716(arg0, arg1));
     }
 
     public static Localizable localizableWSDLMODELER_WARNING_IGNORING_OPERATION_JAVA_RESERVED_WORD_NOT_ALLOWED_WRAPPER_STYLE(Object arg0, Object arg1, Object arg2) {
-        return messageFactory.getMessage("wsdlmodeler.warning.ignoringOperation.javaReservedWordNotAllowed.wrapperStyle", arg0, arg1, arg2);
+        return MESSAGE_FACTORY.getMessage("wsdlmodeler.warning.ignoringOperation.javaReservedWordNotAllowed.wrapperStyle", arg0, arg1, arg2);
     }
 
     /**
@@ -1593,11 +929,71 @@
      *
      */
     public static String WSDLMODELER_WARNING_IGNORING_OPERATION_JAVA_RESERVED_WORD_NOT_ALLOWED_WRAPPER_STYLE(Object arg0, Object arg1, Object arg2) {
-        return localizer.localize(localizableWSDLMODELER_WARNING_IGNORING_OPERATION_JAVA_RESERVED_WORD_NOT_ALLOWED_WRAPPER_STYLE(arg0, arg1, arg2));
+        return LOCALIZER.localize(localizableWSDLMODELER_WARNING_IGNORING_OPERATION_JAVA_RESERVED_WORD_NOT_ALLOWED_WRAPPER_STYLE(arg0, arg1, arg2));
+    }
+
+    public static Localizable localizableWSDLMODELER_INVALID_OPERATION_FAULT_NOT_LITERAL(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("wsdlmodeler.invalid.operation.fault.notLiteral", arg0, arg1);
+    }
+
+    /**
+     * ignoring encoded fault "{0}" in literal binding operation "{1}"
+     *
+     */
+    public static String WSDLMODELER_INVALID_OPERATION_FAULT_NOT_LITERAL(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableWSDLMODELER_INVALID_OPERATION_FAULT_NOT_LITERAL(arg0, arg1));
+    }
+
+    public static Localizable localizableWSDLMODELER_INVALID_BINDING_OPERATION_OUTPUT_SOAP_BODY_MISSING_NAMESPACE(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("wsdlmodeler.invalid.bindingOperation.outputSoapBody.missingNamespace", arg0);
+    }
+
+    /**
+     * output message of binding operation "{0}" must specify a value for the "namespace" attribute
+     *
+     */
+    public static String WSDLMODELER_INVALID_BINDING_OPERATION_OUTPUT_SOAP_BODY_MISSING_NAMESPACE(Object arg0) {
+        return LOCALIZER.localize(localizableWSDLMODELER_INVALID_BINDING_OPERATION_OUTPUT_SOAP_BODY_MISSING_NAMESPACE(arg0));
+    }
+
+    public static Localizable localizableWSDLMODELER_INVALID_HEADER_CANT_RESOLVE_MESSAGE(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("wsdlmodeler.invalid.header.cant.resolve.message", arg0, arg1);
+    }
+
+    /**
+     * header "{0}" of binding operation "{1}": cannot resolve message
+     *
+     */
+    public static String WSDLMODELER_INVALID_HEADER_CANT_RESOLVE_MESSAGE(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableWSDLMODELER_INVALID_HEADER_CANT_RESOLVE_MESSAGE(arg0, arg1));
+    }
+
+    public static Localizable localizableWSDLMODELER_WARNING_SEARCH_SCHEMA_UNRECOGNIZED_TYPES(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("wsdlmodeler.warning.searchSchema.unrecognizedTypes", arg0);
+    }
+
+    /**
+     * encountered {0} unrecognized type(s)
+     *
+     */
+    public static String WSDLMODELER_WARNING_SEARCH_SCHEMA_UNRECOGNIZED_TYPES(Object arg0) {
+        return LOCALIZER.localize(localizableWSDLMODELER_WARNING_SEARCH_SCHEMA_UNRECOGNIZED_TYPES(arg0));
+    }
+
+    public static Localizable localizableWSDLMODELER_RESPONSEBEAN_NOTFOUND(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("wsdlmodeler.responsebean.notfound", arg0);
+    }
+
+    /**
+     * wsimport failed to generate async response bean for operation: {0}
+     *
+     */
+    public static String WSDLMODELER_RESPONSEBEAN_NOTFOUND(Object arg0) {
+        return LOCALIZER.localize(localizableWSDLMODELER_RESPONSEBEAN_NOTFOUND(arg0));
     }
 
     public static Localizable localizableWSDLMODELER_UNSOLVABLE_NAMING_CONFLICTS(Object arg0) {
-        return messageFactory.getMessage("wsdlmodeler.unsolvableNamingConflicts", arg0);
+        return MESSAGE_FACTORY.getMessage("wsdlmodeler.unsolvableNamingConflicts", arg0);
     }
 
     /**
@@ -1605,7 +1001,618 @@
      *
      */
     public static String WSDLMODELER_UNSOLVABLE_NAMING_CONFLICTS(Object arg0) {
-        return localizer.localize(localizableWSDLMODELER_UNSOLVABLE_NAMING_CONFLICTS(arg0));
+        return LOCALIZER.localize(localizableWSDLMODELER_UNSOLVABLE_NAMING_CONFLICTS(arg0));
+    }
+
+    public static Localizable localizableWSDLMODELER_WARNING_NO_PORTS_IN_SERVICE(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("wsdlmodeler.warning.noPortsInService", arg0);
+    }
+
+    /**
+     * Service "{0}" does not contain any usable ports. try running wsimport with -extension switch.
+     *
+     */
+    public static String WSDLMODELER_WARNING_NO_PORTS_IN_SERVICE(Object arg0) {
+        return LOCALIZER.localize(localizableWSDLMODELER_WARNING_NO_PORTS_IN_SERVICE(arg0));
+    }
+
+    public static Localizable localizableWSDLMODELER_WARNING_IGNORING_FAULT_CANT_RESOLVE_MESSAGE(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("wsdlmodeler.warning.ignoringFault.cant.resolve.message", arg0, arg1);
+    }
+
+    /**
+     * ignoring fault "{0}" of binding operation "{1}": cannot resolve message
+     *
+     */
+    public static String WSDLMODELER_WARNING_IGNORING_FAULT_CANT_RESOLVE_MESSAGE(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableWSDLMODELER_WARNING_IGNORING_FAULT_CANT_RESOLVE_MESSAGE(arg0, arg1));
+    }
+
+    public static Localizable localizableWSDLMODELER_WARNING_IGNORING_OPERATION_PART_NOT_FOUND(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("wsdlmodeler.warning.ignoringOperation.partNotFound", arg0, arg1);
+    }
+
+    /**
+     * ignoring operation "{0}": part "{1}" not found
+     *
+     */
+    public static String WSDLMODELER_WARNING_IGNORING_OPERATION_PART_NOT_FOUND(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableWSDLMODELER_WARNING_IGNORING_OPERATION_PART_NOT_FOUND(arg0, arg1));
+    }
+
+    public static Localizable localizableWSDLMODELER_WARNING_IGNORING_HEADER_FAULT_NO_ELEMENT_ATTRIBUTE(Object arg0, Object arg1, Object arg2) {
+        return MESSAGE_FACTORY.getMessage("wsdlmodeler.warning.ignoringHeaderFault.noElementAttribute", arg0, arg1, arg2);
+    }
+
+    /**
+     * ignoring header fault part="{0}" message="{1}" of operation {2}
+     *
+     */
+    public static String WSDLMODELER_WARNING_IGNORING_HEADER_FAULT_NO_ELEMENT_ATTRIBUTE(Object arg0, Object arg1, Object arg2) {
+        return LOCALIZER.localize(localizableWSDLMODELER_WARNING_IGNORING_HEADER_FAULT_NO_ELEMENT_ATTRIBUTE(arg0, arg1, arg2));
+    }
+
+    public static Localizable localizableWSDLMODELER_WARNING_R_2716_R_2726(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("wsdlmodeler.warning.r2716r2726", arg0, arg1);
+    }
+
+    /**
+     * R2716/R2726 WSI-BasicProfile ver. 1.0, namespace attribute not allowed in doc/lit or rpc/lit for {0}: "{1}"
+     *
+     */
+    public static String WSDLMODELER_WARNING_R_2716_R_2726(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableWSDLMODELER_WARNING_R_2716_R_2726(arg0, arg1));
+    }
+
+    public static Localizable localizableWSDLMODELER_INVALID_BINDING_OPERATION_MULTIPLE_MATCHING_OPERATIONS(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("wsdlmodeler.invalid.bindingOperation.multipleMatchingOperations", arg0, arg1);
+    }
+
+    /**
+     * in binding "{1}", operation "{0}" does not reference a unique operation in the corresponding port type
+     *
+     */
+    public static String WSDLMODELER_INVALID_BINDING_OPERATION_MULTIPLE_MATCHING_OPERATIONS(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableWSDLMODELER_INVALID_BINDING_OPERATION_MULTIPLE_MATCHING_OPERATIONS(arg0, arg1));
+    }
+
+    public static Localizable localizableWSDLMODELER_WARNING_IGNORING_HEADER_NOT_ENCODED(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("wsdlmodeler.warning.ignoringHeader.notEncoded", arg0, arg1);
+    }
+
+    /**
+     * ignoring header "{0}" of binding operation "{1}": not SOAP-encoded
+     *
+     */
+    public static String WSDLMODELER_WARNING_IGNORING_HEADER_NOT_ENCODED(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableWSDLMODELER_WARNING_IGNORING_HEADER_NOT_ENCODED(arg0, arg1));
+    }
+
+    public static Localizable localizableMIMEMODELER_ELEMENT_PART_INVALID_ELEMENT_MIME_TYPE(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("mimemodeler.elementPart.invalidElementMimeType", arg0, arg1);
+    }
+
+    /**
+     * The mime:content part refers to wsdl:part "{0}", defined using element attribute. Please make sure the mime type: "{1}" is appropriate to serialize XML.
+     *
+     */
+    public static String MIMEMODELER_ELEMENT_PART_INVALID_ELEMENT_MIME_TYPE(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableMIMEMODELER_ELEMENT_PART_INVALID_ELEMENT_MIME_TYPE(arg0, arg1));
+    }
+
+    public static Localizable localizableWSDLMODELER_INVALID_PORT_TYPE_FAULT_NOT_FOUND(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("wsdlmodeler.invalid.portTypeFault.notFound", arg0, arg1);
+    }
+
+    /**
+     * fault "{0}" in portType operation "{1}" does not match any fault in the corresponding binding operation
+     *
+     */
+    public static String WSDLMODELER_INVALID_PORT_TYPE_FAULT_NOT_FOUND(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableWSDLMODELER_INVALID_PORT_TYPE_FAULT_NOT_FOUND(arg0, arg1));
+    }
+
+    public static Localizable localizableWSDLMODELER_RESULT_IS_IN_OUT_PARAMETER(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("wsdlmodeler.resultIsInOutParameter", arg0);
+    }
+
+    /**
+     * result is "inout" parameter in operation: {0}
+     *
+     */
+    public static String WSDLMODELER_RESULT_IS_IN_OUT_PARAMETER(Object arg0) {
+        return LOCALIZER.localize(localizableWSDLMODELER_RESULT_IS_IN_OUT_PARAMETER(arg0));
+    }
+
+    public static Localizable localizableWSDLMODELER_WARNING_OPERATION_MORE_THAN_ONE_PART_IN_MESSAGE(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("wsdlmodeler.warning.operation.MoreThanOnePartInMessage", arg0);
+    }
+
+    /**
+     * Ignoring operation "{0}": more than one part bound to body
+     *
+     */
+    public static String WSDLMODELER_WARNING_OPERATION_MORE_THAN_ONE_PART_IN_MESSAGE(Object arg0) {
+        return LOCALIZER.localize(localizableWSDLMODELER_WARNING_OPERATION_MORE_THAN_ONE_PART_IN_MESSAGE(arg0));
+    }
+
+    public static Localizable localizableMIMEMODELER_INVALID_MIME_CONTENT_ERROR_LOADING_JAVA_CLASS() {
+        return MESSAGE_FACTORY.getMessage("mimemodeler.invalidMimeContent.errorLoadingJavaClass");
+    }
+
+    /**
+     * Couldn't find class "{0}" for mime type "{1}"
+     *
+     */
+    public static String MIMEMODELER_INVALID_MIME_CONTENT_ERROR_LOADING_JAVA_CLASS() {
+        return LOCALIZER.localize(localizableMIMEMODELER_INVALID_MIME_CONTENT_ERROR_LOADING_JAVA_CLASS());
+    }
+
+    public static Localizable localizableWSDLMODELER_INVALID_RPCLITOPERATION(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("wsdlmodeler.invalid.rpclitoperation", arg0);
+    }
+
+    /**
+     * Invalid wsdl:operation "{0}": its a rpc-literal operation,  message part must refer to a schema type declaration
+     *
+     */
+    public static String WSDLMODELER_INVALID_RPCLITOPERATION(Object arg0) {
+        return LOCALIZER.localize(localizableWSDLMODELER_INVALID_RPCLITOPERATION(arg0));
+    }
+
+    public static Localizable localizableWSDLMODELER_WARNING_IGNORING_HEADER_PART_FROM_BODY(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("wsdlmodeler.warning.ignoringHeader.partFromBody", arg0);
+    }
+
+    /**
+     * header part: "{0}" already bound by soapbind:body, illegal to bind the part twice
+     *
+     */
+    public static String WSDLMODELER_WARNING_IGNORING_HEADER_PART_FROM_BODY(Object arg0) {
+        return LOCALIZER.localize(localizableWSDLMODELER_WARNING_IGNORING_HEADER_PART_FROM_BODY(arg0));
+    }
+
+    public static Localizable localizableWSDLMODELER_WARNING_NO_SERVICE_DEFINITIONS_FOUND() {
+        return MESSAGE_FACTORY.getMessage("wsdlmodeler.warning.noServiceDefinitionsFound");
+    }
+
+    /**
+     * WSDL document does not define any services
+     *
+     */
+    public static String WSDLMODELER_WARNING_NO_SERVICE_DEFINITIONS_FOUND() {
+        return LOCALIZER.localize(localizableWSDLMODELER_WARNING_NO_SERVICE_DEFINITIONS_FOUND());
+    }
+
+    public static Localizable localizableWSDLMODELER_INVALID_BINDING_FAULT_EMPTY_MESSAGE(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("wsdlmodeler.invalid.bindingFault.emptyMessage", arg0, arg1);
+    }
+
+    /**
+     * fault "{0}" refers to message "{1}", but the message has no parts
+     *
+     */
+    public static String WSDLMODELER_INVALID_BINDING_FAULT_EMPTY_MESSAGE(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableWSDLMODELER_INVALID_BINDING_FAULT_EMPTY_MESSAGE(arg0, arg1));
+    }
+
+    public static Localizable localizableWSDLMODELER_INVALID_PARAMETERORDER_PARAMETER(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("wsdlmodeler.invalid.parameterorder.parameter", arg0, arg1);
+    }
+
+    /**
+     * "{0}" specified in the parameterOrder attribute of operation "{1}" is not a valid part of the message.
+     *
+     */
+    public static String WSDLMODELER_INVALID_PARAMETERORDER_PARAMETER(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableWSDLMODELER_INVALID_PARAMETERORDER_PARAMETER(arg0, arg1));
+    }
+
+    public static Localizable localizableWSDLMODELER_DUPLICATE_FAULT_PART_NAME(Object arg0, Object arg1, Object arg2) {
+        return MESSAGE_FACTORY.getMessage("wsdlmodeler.duplicate.fault.part.name", arg0, arg1, arg2);
+    }
+
+    /**
+     * ignoring fault "{0}" of operation "{1}", part name "{2}" is not unique
+     *
+     */
+    public static String WSDLMODELER_DUPLICATE_FAULT_PART_NAME(Object arg0, Object arg1, Object arg2) {
+        return LOCALIZER.localize(localizableWSDLMODELER_DUPLICATE_FAULT_PART_NAME(arg0, arg1, arg2));
+    }
+
+    public static Localizable localizableWSDLMODELER_WARNING_IGNORING_NON_SOAP_PORT(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("wsdlmodeler.warning.ignoringNonSOAPPort", arg0);
+    }
+
+    /**
+     * ignoring port "{0}": not a standard SOAP port. try running wsimport with -extension switch.
+     *
+     */
+    public static String WSDLMODELER_WARNING_IGNORING_NON_SOAP_PORT(Object arg0) {
+        return LOCALIZER.localize(localizableWSDLMODELER_WARNING_IGNORING_NON_SOAP_PORT(arg0));
+    }
+
+    public static Localizable localizableWSDLMODELER_INVALID_OPERATION_JAVA_RESERVED_WORD_NOT_ALLOWED_CUSTOMIZED_OPERATION_NAME(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("wsdlmodeler.invalid.operation.javaReservedWordNotAllowed.customizedOperationName", arg0, arg1);
+    }
+
+    /**
+     * Invalid operation "{0}", can''t generate java method ,customized name "{1}" of the wsdl:operation is a java keyword.
+     *
+     */
+    public static String WSDLMODELER_INVALID_OPERATION_JAVA_RESERVED_WORD_NOT_ALLOWED_CUSTOMIZED_OPERATION_NAME(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableWSDLMODELER_INVALID_OPERATION_JAVA_RESERVED_WORD_NOT_ALLOWED_CUSTOMIZED_OPERATION_NAME(arg0, arg1));
+    }
+
+    public static Localizable localizableWSDLMODELER_INVALID_OPERATION_JAVA_RESERVED_WORD_NOT_ALLOWED_NON_WRAPPER_STYLE(Object arg0, Object arg1, Object arg2) {
+        return MESSAGE_FACTORY.getMessage("wsdlmodeler.invalid.operation.javaReservedWordNotAllowed.nonWrapperStyle", arg0, arg1, arg2);
+    }
+
+    /**
+     * Invalid operation "{0}", can''t generate java method. Parameter: part "{2}" in wsdl:message "{1}", is a java keyword. Use customization to change the parameter name or change the wsdl:part name.
+     *
+     */
+    public static String WSDLMODELER_INVALID_OPERATION_JAVA_RESERVED_WORD_NOT_ALLOWED_NON_WRAPPER_STYLE(Object arg0, Object arg1, Object arg2) {
+        return LOCALIZER.localize(localizableWSDLMODELER_INVALID_OPERATION_JAVA_RESERVED_WORD_NOT_ALLOWED_NON_WRAPPER_STYLE(arg0, arg1, arg2));
+    }
+
+    public static Localizable localizableWSDLMODELER_WARNING_IGNORING_HEADER_CANT_RESOLVE_MESSAGE(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("wsdlmodeler.warning.ignoringHeader.cant.resolve.message", arg0, arg1);
+    }
+
+    /**
+     * ignoring header "{0}" of binding operation "{1}": cannot resolve message
+     *
+     */
+    public static String WSDLMODELER_WARNING_IGNORING_HEADER_CANT_RESOLVE_MESSAGE(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableWSDLMODELER_WARNING_IGNORING_HEADER_CANT_RESOLVE_MESSAGE(arg0, arg1));
+    }
+
+    public static Localizable localizableWSDLMODELER_INVALID_BINDING_OPERATION_INPUT_MISSING_SOAP_BODY(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("wsdlmodeler.invalid.bindingOperation.inputMissingSoapBody", arg0);
+    }
+
+    /**
+     * input message of binding operation "{0}" does not have a SOAP body extension
+     *
+     */
+    public static String WSDLMODELER_INVALID_BINDING_OPERATION_INPUT_MISSING_SOAP_BODY(Object arg0) {
+        return LOCALIZER.localize(localizableWSDLMODELER_INVALID_BINDING_OPERATION_INPUT_MISSING_SOAP_BODY(arg0));
+    }
+
+    public static Localizable localizableWSDLMODELER_INVALID_PARAMETER_ORDER_INVALID_PARAMETER_ORDER(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("wsdlmodeler.invalid.parameterOrder.invalidParameterOrder", arg0);
+    }
+
+    /**
+     * parameterOrder attribute on operation "{0}" is invalid, ignoring parameterOrder hint
+     *
+     */
+    public static String WSDLMODELER_INVALID_PARAMETER_ORDER_INVALID_PARAMETER_ORDER(Object arg0) {
+        return LOCALIZER.localize(localizableWSDLMODELER_INVALID_PARAMETER_ORDER_INVALID_PARAMETER_ORDER(arg0));
+    }
+
+    public static Localizable localizableWSDLMODELER_WARNING_NO_OPERATIONS_IN_PORT(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("wsdlmodeler.warning.noOperationsInPort", arg0);
+    }
+
+    /**
+     * Port "{0}" does not contain any usable operations
+     *
+     */
+    public static String WSDLMODELER_WARNING_NO_OPERATIONS_IN_PORT(Object arg0) {
+        return LOCALIZER.localize(localizableWSDLMODELER_WARNING_NO_OPERATIONS_IN_PORT(arg0));
+    }
+
+    public static Localizable localizableWSDLMODELER_WARNING_NONCONFORMING_WSDL_IMPORT() {
+        return MESSAGE_FACTORY.getMessage("wsdlmodeler.warning.nonconforming.wsdl.import");
+    }
+
+    /**
+     * Non conforming WS-I WSDL used for wsdl:import
+     *
+     */
+    public static String WSDLMODELER_WARNING_NONCONFORMING_WSDL_IMPORT() {
+        return LOCALIZER.localize(localizableWSDLMODELER_WARNING_NONCONFORMING_WSDL_IMPORT());
+    }
+
+    public static Localizable localizableMIMEMODELER_INVALID_MIME_CONTENT_MISSING_TYPE_ATTRIBUTE(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("mimemodeler.invalidMimeContent.missingTypeAttribute", arg0);
+    }
+
+    /**
+     * Missing type attribute in mime:content in operation "{0}". part attribute must be present in mime:content declaration.
+     *
+     */
+    public static String MIMEMODELER_INVALID_MIME_CONTENT_MISSING_TYPE_ATTRIBUTE(Object arg0) {
+        return LOCALIZER.localize(localizableMIMEMODELER_INVALID_MIME_CONTENT_MISSING_TYPE_ATTRIBUTE(arg0));
+    }
+
+    public static Localizable localizableWSDLMODELER_INVALID_BINDING_OPERATION_INPUT_HEADER_MISSING_NAMESPACE(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("wsdlmodeler.invalid.bindingOperation.inputHeader.missingNamespace", arg0, arg1);
+    }
+
+    /**
+     * input header "{1}" of binding operation "{0}" must specify a value for the "namespace" attribute
+     *
+     */
+    public static String WSDLMODELER_INVALID_BINDING_OPERATION_INPUT_HEADER_MISSING_NAMESPACE(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableWSDLMODELER_INVALID_BINDING_OPERATION_INPUT_HEADER_MISSING_NAMESPACE(arg0, arg1));
+    }
+
+    public static Localizable localizableWSDLMODELER_INVALID_PARAMETER_DIFFERENT_TYPES(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("wsdlmodeler.invalid.parameter.differentTypes", arg0, arg1);
+    }
+
+    /**
+     * parameter "{0}" of operation "{1}" appears with different types in the input and output messages
+     *
+     */
+    public static String WSDLMODELER_INVALID_PARAMETER_DIFFERENT_TYPES(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableWSDLMODELER_INVALID_PARAMETER_DIFFERENT_TYPES(arg0, arg1));
+    }
+
+    public static Localizable localizableWSDLMODELER_WARNING_IGNORING_OPERATION_CANNOT_HANDLE_MORE_THAN_ONE_PART_IN_OUTPUT_MESSAGE(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("wsdlmodeler.warning.ignoringOperation.cannotHandleMoreThanOnePartInOutputMessage", arg0);
+    }
+
+    /**
+     * ignoring operation "{0}": more than one part in output message
+     *
+     */
+    public static String WSDLMODELER_WARNING_IGNORING_OPERATION_CANNOT_HANDLE_MORE_THAN_ONE_PART_IN_OUTPUT_MESSAGE(Object arg0) {
+        return LOCALIZER.localize(localizableWSDLMODELER_WARNING_IGNORING_OPERATION_CANNOT_HANDLE_MORE_THAN_ONE_PART_IN_OUTPUT_MESSAGE(arg0));
+    }
+
+    public static Localizable localizableWSDLMODELER_WARNING_NONCONFORMING_WSDL_USE(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("wsdlmodeler.warning.nonconforming.wsdl.use", arg0);
+    }
+
+    /**
+     * Processing WS-I non conforming operation "{0}" with RPC-Style and SOAP-encoded
+     *
+     */
+    public static String WSDLMODELER_WARNING_NONCONFORMING_WSDL_USE(Object arg0) {
+        return LOCALIZER.localize(localizableWSDLMODELER_WARNING_NONCONFORMING_WSDL_USE(arg0));
+    }
+
+    public static Localizable localizableWSDLMODELER_WARNING_IGNORING_OPERATION_CANNOT_HANDLE_DOCUMENT_STYLE(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("wsdlmodeler.warning.ignoringOperation.cannotHandleDocumentStyle", arg0);
+    }
+
+    /**
+     * ignoring operation "{0}": cannot handle document-style operations
+     *
+     */
+    public static String WSDLMODELER_WARNING_IGNORING_OPERATION_CANNOT_HANDLE_DOCUMENT_STYLE(Object arg0) {
+        return LOCALIZER.localize(localizableWSDLMODELER_WARNING_IGNORING_OPERATION_CANNOT_HANDLE_DOCUMENT_STYLE(arg0));
+    }
+
+    public static Localizable localizableWSDLMODELER_INVALID_BINDING_FAULT_WRONG_SOAP_FAULT_NAME(Object arg0, Object arg1, Object arg2) {
+        return MESSAGE_FACTORY.getMessage("wsdlmodeler.invalid.bindingFault.wrongSoapFaultName", arg0, arg1, arg2);
+    }
+
+    /**
+     * name of soap:fault "{0}" doesn''t match the name of wsdl:fault "{1}" in operation "{2}"
+     *
+     */
+    public static String WSDLMODELER_INVALID_BINDING_FAULT_WRONG_SOAP_FAULT_NAME(Object arg0, Object arg1, Object arg2) {
+        return LOCALIZER.localize(localizableWSDLMODELER_INVALID_BINDING_FAULT_WRONG_SOAP_FAULT_NAME(arg0, arg1, arg2));
+    }
+
+    public static Localizable localizableWSDLMODELER_INVALID_OPERATION_MORE_THAN_ONE_PART_IN_MESSAGE(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("wsdlmodeler.invalid.operation.MoreThanOnePartInMessage", arg0);
+    }
+
+    /**
+     * operation "{0}": more than one part bound to body
+     *
+     */
+    public static String WSDLMODELER_INVALID_OPERATION_MORE_THAN_ONE_PART_IN_MESSAGE(Object arg0) {
+        return LOCALIZER.localize(localizableWSDLMODELER_INVALID_OPERATION_MORE_THAN_ONE_PART_IN_MESSAGE(arg0));
+    }
+
+    public static Localizable localizableWSDLMODELER_WARNING_NON_SOAP_PORT(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("wsdlmodeler.warning.nonSOAPPort", arg0);
+    }
+
+    /**
+     * port "{0}": not a standard SOAP port. The generated artifacts may not work with JAX-WS runtime.
+     *
+     */
+    public static String WSDLMODELER_WARNING_NON_SOAP_PORT(Object arg0) {
+        return LOCALIZER.localize(localizableWSDLMODELER_WARNING_NON_SOAP_PORT(arg0));
+    }
+
+    public static Localizable localizableWSDLMODELER_INVALID_STATE_MODELING_OPERATION(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("wsdlmodeler.invalidState.modelingOperation", arg0);
+    }
+
+    /**
+     * invalid state while modeling operation: {0}
+     *
+     */
+    public static String WSDLMODELER_INVALID_STATE_MODELING_OPERATION(Object arg0) {
+        return LOCALIZER.localize(localizableWSDLMODELER_INVALID_STATE_MODELING_OPERATION(arg0));
+    }
+
+    public static Localizable localizableWSDLMODELER_WARNING_IGNORING_OPERATION_CANNOT_HANDLE_EMPTY_INPUT_MESSAGE(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("wsdlmodeler.warning.ignoringOperation.cannotHandleEmptyInputMessage", arg0);
+    }
+
+    /**
+     * ignoring operation "{0}": input message is empty
+     *
+     */
+    public static String WSDLMODELER_WARNING_IGNORING_OPERATION_CANNOT_HANDLE_EMPTY_INPUT_MESSAGE(Object arg0) {
+        return LOCALIZER.localize(localizableWSDLMODELER_WARNING_IGNORING_OPERATION_CANNOT_HANDLE_EMPTY_INPUT_MESSAGE(arg0));
+    }
+
+    public static Localizable localizableWSDLMODELER_INVALID_BINDING_OPERATION_OUTPUT_MISSING_SOAP_BODY(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("wsdlmodeler.invalid.bindingOperation.outputMissingSoapBody", arg0);
+    }
+
+    /**
+     * output message of binding operation "{0}" does not have a SOAP body extension
+     *
+     */
+    public static String WSDLMODELER_INVALID_BINDING_OPERATION_OUTPUT_MISSING_SOAP_BODY(Object arg0) {
+        return LOCALIZER.localize(localizableWSDLMODELER_INVALID_BINDING_OPERATION_OUTPUT_MISSING_SOAP_BODY(arg0));
+    }
+
+    public static Localizable localizableWSDLMODELER_WARNING_IGNORING_HEADER_FAULT_NOT_FOUND(Object arg0, Object arg1, Object arg2) {
+        return MESSAGE_FACTORY.getMessage("wsdlmodeler.warning.ignoringHeaderFault.notFound", arg0, arg1, arg2);
+    }
+
+    /**
+     * ignoring header fault "{0}", cannot find part "{1}" in binding "{2}"
+     *
+     */
+    public static String WSDLMODELER_WARNING_IGNORING_HEADER_FAULT_NOT_FOUND(Object arg0, Object arg1, Object arg2) {
+        return LOCALIZER.localize(localizableWSDLMODELER_WARNING_IGNORING_HEADER_FAULT_NOT_FOUND(arg0, arg1, arg2));
+    }
+
+    public static Localizable localizableWSDLMODELER_WARNING_IGNORING_HEADER(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("wsdlmodeler.warning.ignoringHeader", arg0, arg1);
+    }
+
+    /**
+     * ignoring header "{0}" of binding operation "{1}"
+     *
+     */
+    public static String WSDLMODELER_WARNING_IGNORING_HEADER(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableWSDLMODELER_WARNING_IGNORING_HEADER(arg0, arg1));
+    }
+
+    public static Localizable localizableWSDLMODELER_INVALID_FAULT_CANT_RESOLVE_MESSAGE(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("wsdlmodeler.invalid.fault.cant.resolve.message", arg0, arg1);
+    }
+
+    /**
+     * fault message "{0}" in binding operation "{1}" could not be resolved
+     *
+     */
+    public static String WSDLMODELER_INVALID_FAULT_CANT_RESOLVE_MESSAGE(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableWSDLMODELER_INVALID_FAULT_CANT_RESOLVE_MESSAGE(arg0, arg1));
+    }
+
+    public static Localizable localizableWSDLMODELER_WARNING_IGNORING_MIME_PART_NOT_FOUND(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("wsdlmodeler.warning.ignoringMimePart.notFound", arg0, arg1);
+    }
+
+    /**
+     * ignoring mime:part, cannot find part "{0}" referenced by the mime:content in the wsdl:operation "{1}"
+     *
+     */
+    public static String WSDLMODELER_WARNING_IGNORING_MIME_PART_NOT_FOUND(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableWSDLMODELER_WARNING_IGNORING_MIME_PART_NOT_FOUND(arg0, arg1));
+    }
+
+    public static Localizable localizableWSDLMODELER_WARNING_IGNORING_UNRECOGNIZED_SCHEMA_EXTENSION(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("wsdlmodeler.warning.ignoringUnrecognizedSchemaExtension", arg0);
+    }
+
+    /**
+     * ignoring schema element (unsupported version): {0}
+     *
+     */
+    public static String WSDLMODELER_WARNING_IGNORING_UNRECOGNIZED_SCHEMA_EXTENSION(Object arg0) {
+        return LOCALIZER.localize(localizableWSDLMODELER_WARNING_IGNORING_UNRECOGNIZED_SCHEMA_EXTENSION(arg0));
+    }
+
+    public static Localizable localizableWSDLMODELER_WARNING_IGNORING_SOAP_BINDING_MIXED_STYLE(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("wsdlmodeler.warning.ignoringSOAPBinding.mixedStyle", arg0);
+    }
+
+    /**
+     * ignoring port "{0}", its not WS-I BP 1.1 compliant: the wsdl binding has mixed style, it must be rpc-literal or document-literal operation. try running wsimport with -extension switch.
+     *
+     */
+    public static String WSDLMODELER_WARNING_IGNORING_SOAP_BINDING_MIXED_STYLE(Object arg0) {
+        return LOCALIZER.localize(localizableWSDLMODELER_WARNING_IGNORING_SOAP_BINDING_MIXED_STYLE(arg0));
+    }
+
+    public static Localizable localizableMIMEMODELER_INVALID_MIME_CONTENT_UNKNOWN_SCHEMA_TYPE(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("mimemodeler.invalidMimeContent.unknownSchemaType", arg0, arg1);
+    }
+
+    /**
+     * Unknown schema type: {1} for mime:content part: {0}
+     *
+     */
+    public static String MIMEMODELER_INVALID_MIME_CONTENT_UNKNOWN_SCHEMA_TYPE(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableMIMEMODELER_INVALID_MIME_CONTENT_UNKNOWN_SCHEMA_TYPE(arg0, arg1));
+    }
+
+    public static Localizable localizableWSDLMODELER_WARNING_IGNORING_FAULT_NOT_ENCODED(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("wsdlmodeler.warning.ignoringFault.notEncoded", arg0, arg1);
+    }
+
+    /**
+     * ignoring literal fault "{0}" of binding operation "{1}"
+     *
+     */
+    public static String WSDLMODELER_WARNING_IGNORING_FAULT_NOT_ENCODED(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableWSDLMODELER_WARNING_IGNORING_FAULT_NOT_ENCODED(arg0, arg1));
+    }
+
+    public static Localizable localizableWSDLMODELER_WARNING_IGNORING_OPERATION_JAVA_RESERVED_WORD_NOT_ALLOWED_CUSTOM_NAME(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("wsdlmodeler.warning.ignoringOperation.javaReservedWordNotAllowed.customName", arg0, arg1);
+    }
+
+    /**
+     * Ignoring operation "{0}", can''t generate java method. Parameter,customized name "{1}" is a java keyword.
+     *
+     */
+    public static String WSDLMODELER_WARNING_IGNORING_OPERATION_JAVA_RESERVED_WORD_NOT_ALLOWED_CUSTOM_NAME(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableWSDLMODELER_WARNING_IGNORING_OPERATION_JAVA_RESERVED_WORD_NOT_ALLOWED_CUSTOM_NAME(arg0, arg1));
+    }
+
+    public static Localizable localizableMIMEMODELER_INVALID_MIME_CONTENT_MISSING_PART_ATTRIBUTE(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("mimemodeler.invalidMimeContent.missingPartAttribute", arg0);
+    }
+
+    /**
+     * Ignoring operation "{0}", missing part attribute in mime:content. part attribute must be present in mime:content declaration.
+     *
+     */
+    public static String MIMEMODELER_INVALID_MIME_CONTENT_MISSING_PART_ATTRIBUTE(Object arg0) {
+        return LOCALIZER.localize(localizableMIMEMODELER_INVALID_MIME_CONTENT_MISSING_PART_ATTRIBUTE(arg0));
+    }
+
+    public static Localizable localizableWSDLMODELER_WARNING_IGNORING_HEADER_INCONSISTENT_DEFINITION(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("wsdlmodeler.warning.ignoringHeader.inconsistentDefinition", arg0, arg1);
+    }
+
+    /**
+     * ignoring header "{0}" of operation "{1}": part not found
+     *
+     */
+    public static String WSDLMODELER_WARNING_IGNORING_HEADER_INCONSISTENT_DEFINITION(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableWSDLMODELER_WARNING_IGNORING_HEADER_INCONSISTENT_DEFINITION(arg0, arg1));
+    }
+
+    public static Localizable localizableWSDLMODELER_INVALID_OPERATION_JAVA_RESERVED_WORD_NOT_ALLOWED_CUSTOM_NAME(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("wsdlmodeler.invalid.operation.javaReservedWordNotAllowed.customName", arg0, arg1);
+    }
+
+    /**
+     * Invalid operation "{0}", can''t generate java method. Parameter,customized name "{1}"  is a java keyword.
+     *
+     */
+    public static String WSDLMODELER_INVALID_OPERATION_JAVA_RESERVED_WORD_NOT_ALLOWED_CUSTOM_NAME(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableWSDLMODELER_INVALID_OPERATION_JAVA_RESERVED_WORD_NOT_ALLOWED_CUSTOM_NAME(arg0, arg1));
+    }
+
+    private static class BundleSupplier
+        implements ResourceBundleSupplier
+    {
+
+
+        public ResourceBundle getResourceBundle(Locale locale) {
+            return ResourceBundle.getBundle(BUNDLE_NAME, locale);
+        }
+
     }
 
 }
diff --git a/src/jdk.xml.ws/share/classes/com/sun/tools/internal/ws/resources/ProcessorMessages.java b/src/jdk.xml.ws/share/classes/com/sun/tools/internal/ws/resources/ProcessorMessages.java
index e929645..58c15b5 100644
--- a/src/jdk.xml.ws/share/classes/com/sun/tools/internal/ws/resources/ProcessorMessages.java
+++ b/src/jdk.xml.ws/share/classes/com/sun/tools/internal/ws/resources/ProcessorMessages.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,11 +25,11 @@
 
 package com.sun.tools.internal.ws.resources;
 
-import com.sun.istack.internal.localization.LocalizableMessageFactory;
-import com.sun.istack.internal.localization.Localizer;
-
 import java.util.Locale;
 import java.util.ResourceBundle;
+import com.sun.istack.internal.localization.LocalizableMessageFactory;
+import com.sun.istack.internal.localization.LocalizableMessageFactory.ResourceBundleSupplier;
+import com.sun.istack.internal.localization.Localizer;
 
 
 /**
@@ -37,12 +37,20 @@
  *
  */
 public final class ProcessorMessages {
-    private final static String BUNDLE_NAME = "com.sun.tools.internal.ws.resources.processor";
-    private final static LocalizableMessageFactory messageFactory =
-        new LocalizableMessageFactory(BUNDLE_NAME, ProcessorMessages::getResourceBundle);
-    private final static Localizer localizer = new Localizer();
 
-    private static ResourceBundle getResourceBundle(Locale locale) {
-        return ResourceBundle.getBundle(BUNDLE_NAME, locale);
+    private final static String BUNDLE_NAME = "com.sun.tools.internal.ws.resources.processor";
+    private final static LocalizableMessageFactory MESSAGE_FACTORY = new LocalizableMessageFactory(BUNDLE_NAME, new ProcessorMessages.BundleSupplier());
+    private final static Localizer LOCALIZER = new Localizer();
+
+    private static class BundleSupplier
+        implements ResourceBundleSupplier
+    {
+
+
+        public ResourceBundle getResourceBundle(Locale locale) {
+            return ResourceBundle.getBundle(BUNDLE_NAME, locale);
+        }
+
     }
+
 }
diff --git a/src/jdk.xml.ws/share/classes/com/sun/tools/internal/ws/resources/UtilMessages.java b/src/jdk.xml.ws/share/classes/com/sun/tools/internal/ws/resources/UtilMessages.java
index c90a9ab..eb97905 100644
--- a/src/jdk.xml.ws/share/classes/com/sun/tools/internal/ws/resources/UtilMessages.java
+++ b/src/jdk.xml.ws/share/classes/com/sun/tools/internal/ws/resources/UtilMessages.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,12 +25,12 @@
 
 package com.sun.tools.internal.ws.resources;
 
-import com.sun.istack.internal.localization.Localizable;
-import com.sun.istack.internal.localization.LocalizableMessageFactory;
-import com.sun.istack.internal.localization.Localizer;
-
 import java.util.Locale;
 import java.util.ResourceBundle;
+import com.sun.istack.internal.localization.Localizable;
+import com.sun.istack.internal.localization.LocalizableMessageFactory;
+import com.sun.istack.internal.localization.LocalizableMessageFactory.ResourceBundleSupplier;
+import com.sun.istack.internal.localization.Localizer;
 
 
 /**
@@ -38,29 +38,13 @@
  *
  */
 public final class UtilMessages {
+
     private final static String BUNDLE_NAME = "com.sun.tools.internal.ws.resources.util";
-    private final static LocalizableMessageFactory messageFactory =
-        new LocalizableMessageFactory(BUNDLE_NAME, UtilMessages::getResourceBundle);
-    private final static Localizer localizer = new Localizer();
-
-    private static ResourceBundle getResourceBundle(Locale locale) {
-        return ResourceBundle.getBundle(BUNDLE_NAME, locale);
-    }
-
-    public static Localizable localizableSAX_2_DOM_NOTSUPPORTED_CREATEELEMENT(Object arg0) {
-        return messageFactory.getMessage("sax2dom.notsupported.createelement", arg0);
-    }
-
-    /**
-     * SAX2DOMEx.DomImplDoesntSupportCreateElementNs: {0}
-     *
-     */
-    public static String SAX_2_DOM_NOTSUPPORTED_CREATEELEMENT(Object arg0) {
-        return localizer.localize(localizableSAX_2_DOM_NOTSUPPORTED_CREATEELEMENT(arg0));
-    }
+    private final static LocalizableMessageFactory MESSAGE_FACTORY = new LocalizableMessageFactory(BUNDLE_NAME, new UtilMessages.BundleSupplier());
+    private final static Localizer LOCALIZER = new Localizer();
 
     public static Localizable localizableNULL_NAMESPACE_FOUND(Object arg0) {
-        return messageFactory.getMessage("null.namespace.found", arg0);
+        return MESSAGE_FACTORY.getMessage("null.namespace.found", arg0);
     }
 
     /**
@@ -68,11 +52,11 @@
      *
      */
     public static String NULL_NAMESPACE_FOUND(Object arg0) {
-        return localizer.localize(localizableNULL_NAMESPACE_FOUND(arg0));
+        return LOCALIZER.localize(localizableNULL_NAMESPACE_FOUND(arg0));
     }
 
     public static Localizable localizableHOLDER_VALUEFIELD_NOT_FOUND(Object arg0) {
-        return messageFactory.getMessage("holder.valuefield.not.found", arg0);
+        return MESSAGE_FACTORY.getMessage("holder.valuefield.not.found", arg0);
     }
 
     /**
@@ -80,7 +64,30 @@
      *
      */
     public static String HOLDER_VALUEFIELD_NOT_FOUND(Object arg0) {
-        return localizer.localize(localizableHOLDER_VALUEFIELD_NOT_FOUND(arg0));
+        return LOCALIZER.localize(localizableHOLDER_VALUEFIELD_NOT_FOUND(arg0));
+    }
+
+    public static Localizable localizableSAX_2_DOM_NOTSUPPORTED_CREATEELEMENT(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("sax2dom.notsupported.createelement", arg0);
+    }
+
+    /**
+     * SAX2DOMEx.DomImplDoesntSupportCreateElementNs: {0}
+     *
+     */
+    public static String SAX_2_DOM_NOTSUPPORTED_CREATEELEMENT(Object arg0) {
+        return LOCALIZER.localize(localizableSAX_2_DOM_NOTSUPPORTED_CREATEELEMENT(arg0));
+    }
+
+    private static class BundleSupplier
+        implements ResourceBundleSupplier
+    {
+
+
+        public ResourceBundle getResourceBundle(Locale locale) {
+            return ResourceBundle.getBundle(BUNDLE_NAME, locale);
+        }
+
     }
 
 }
diff --git a/src/jdk.xml.ws/share/classes/com/sun/tools/internal/ws/resources/WebserviceapMessages.java b/src/jdk.xml.ws/share/classes/com/sun/tools/internal/ws/resources/WebserviceapMessages.java
index b4918e4..edb724e 100644
--- a/src/jdk.xml.ws/share/classes/com/sun/tools/internal/ws/resources/WebserviceapMessages.java
+++ b/src/jdk.xml.ws/share/classes/com/sun/tools/internal/ws/resources/WebserviceapMessages.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,12 +25,12 @@
 
 package com.sun.tools.internal.ws.resources;
 
-import com.sun.istack.internal.localization.Localizable;
-import com.sun.istack.internal.localization.LocalizableMessageFactory;
-import com.sun.istack.internal.localization.Localizer;
-
 import java.util.Locale;
 import java.util.ResourceBundle;
+import com.sun.istack.internal.localization.Localizable;
+import com.sun.istack.internal.localization.LocalizableMessageFactory;
+import com.sun.istack.internal.localization.LocalizableMessageFactory.ResourceBundleSupplier;
+import com.sun.istack.internal.localization.Localizer;
 
 
 /**
@@ -38,353 +38,13 @@
  *
  */
 public final class WebserviceapMessages {
+
     private final static String BUNDLE_NAME = "com.sun.tools.internal.ws.resources.webserviceap";
-    private final static LocalizableMessageFactory messageFactory =
-        new LocalizableMessageFactory(BUNDLE_NAME, WebserviceapMessages::getResourceBundle);
-    private final static Localizer localizer = new Localizer();
-
-    private static ResourceBundle getResourceBundle(Locale locale) {
-        return ResourceBundle.getBundle(BUNDLE_NAME, locale);
-    }
-
-    public static Localizable localizableWEBSERVICEAP_ENDPOINTINTERFACES_DO_NOT_MATCH(Object arg0, Object arg1) {
-        return messageFactory.getMessage("webserviceap.endpointinterfaces.do.not.match", arg0, arg1);
-    }
-
-    /**
-     * The endpoint interface {0} does not match the interface {1}.
-     *
-     */
-    public static String WEBSERVICEAP_ENDPOINTINTERFACES_DO_NOT_MATCH(Object arg0, Object arg1) {
-        return localizer.localize(localizableWEBSERVICEAP_ENDPOINTINTERFACES_DO_NOT_MATCH(arg0, arg1));
-    }
-
-    public static Localizable localizableWEBSERVICEAP_INVALID_WEBMETHOD_ELEMENT_WITH_EXCLUDE(Object arg0, Object arg1, Object arg2) {
-        return messageFactory.getMessage("webserviceap.invalid.webmethod.element.with.exclude", arg0, arg1, arg2);
-    }
-
-    /**
-     * The @javax.jws.WebMethod.{0} element cannot be specified with the @javax.jws.WebMethod.exclude element. Class: {1} method: {2}
-     *
-     */
-    public static String WEBSERVICEAP_INVALID_WEBMETHOD_ELEMENT_WITH_EXCLUDE(Object arg0, Object arg1, Object arg2) {
-        return localizer.localize(localizableWEBSERVICEAP_INVALID_WEBMETHOD_ELEMENT_WITH_EXCLUDE(arg0, arg1, arg2));
-    }
-
-    public static Localizable localizableWEBSERVICEAP_SEI_CANNOT_CONTAIN_CONSTANT_VALUES(Object arg0, Object arg1) {
-        return messageFactory.getMessage("webserviceap.sei.cannot.contain.constant.values", arg0, arg1);
-    }
-
-    /**
-     * A service endpoint interface cannot contain constant declaration: Interface: {0} field: {1}.
-     *
-     */
-    public static String WEBSERVICEAP_SEI_CANNOT_CONTAIN_CONSTANT_VALUES(Object arg0, Object arg1) {
-        return localizer.localize(localizableWEBSERVICEAP_SEI_CANNOT_CONTAIN_CONSTANT_VALUES(arg0, arg1));
-    }
-
-    public static Localizable localizableWEBSERVICEAP_INVALID_SOAPBINDING_PARAMETERSTYLE(Object arg0, Object arg1) {
-        return messageFactory.getMessage("webserviceap.invalid.soapbinding.parameterstyle", arg0, arg1);
-    }
-
-    /**
-     * Incorrect usage of Annotation {0} on {1}, ParameterStyle can only be WRAPPED with RPC Style Web service.
-     *
-     */
-    public static String WEBSERVICEAP_INVALID_SOAPBINDING_PARAMETERSTYLE(Object arg0, Object arg1) {
-        return localizer.localize(localizableWEBSERVICEAP_INVALID_SOAPBINDING_PARAMETERSTYLE(arg0, arg1));
-    }
-
-    public static Localizable localizableWEBSERVICEAP_RPC_LITERAL_PARAMETERS_MUST_HAVE_WEBPARAM(Object arg0, Object arg1, Object arg2) {
-        return messageFactory.getMessage("webserviceap.rpc.literal.parameters.must.have.webparam", arg0, arg1, arg2);
-    }
-
-    /**
-     * All RPC literal parameters must have a WebParam annotation.  Class: {0} method: {1} parameter {2}
-     *
-     */
-    public static String WEBSERVICEAP_RPC_LITERAL_PARAMETERS_MUST_HAVE_WEBPARAM(Object arg0, Object arg1, Object arg2) {
-        return localizer.localize(localizableWEBSERVICEAP_RPC_LITERAL_PARAMETERS_MUST_HAVE_WEBPARAM(arg0, arg1, arg2));
-    }
-
-    public static Localizable localizableWEBSERVICEAP_METHOD_EXCEPTION_BEAN_NAME_NOT_UNIQUE(Object arg0, Object arg1) {
-        return messageFactory.getMessage("webserviceap.method.exception.bean.name.not.unique", arg0, arg1);
-    }
-
-    /**
-     * Exception bean names must be unique and must not clash with other generated classes.  Class: {0} exception {1}
-     *
-     */
-    public static String WEBSERVICEAP_METHOD_EXCEPTION_BEAN_NAME_NOT_UNIQUE(Object arg0, Object arg1) {
-        return localizer.localize(localizableWEBSERVICEAP_METHOD_EXCEPTION_BEAN_NAME_NOT_UNIQUE(arg0, arg1));
-    }
-
-    public static Localizable localizableWEBSERVICEAP_WEBSERVICE_AND_WEBSERVICEPROVIDER(Object arg0) {
-        return messageFactory.getMessage("webserviceap.webservice.and.webserviceprovider", arg0);
-    }
-
-    /**
-     * Classes cannot be annotated with both @javax.jws.WebService and @javax.xml.ws.WebServiceProvider.  Class: {0}
-     *
-     */
-    public static String WEBSERVICEAP_WEBSERVICE_AND_WEBSERVICEPROVIDER(Object arg0) {
-        return localizer.localize(localizableWEBSERVICEAP_WEBSERVICE_AND_WEBSERVICEPROVIDER(arg0));
-    }
-
-    public static Localizable localizableWEBSERVICEAP_WEBSERVICE_NO_DEFAULT_CONSTRUCTOR(Object arg0) {
-        return messageFactory.getMessage("webserviceap.webservice.no.default.constructor", arg0);
-    }
-
-    /**
-     * Classes annotated with @javax.jws.WebService must have a public default constructor. Class: {0}
-     *
-     */
-    public static String WEBSERVICEAP_WEBSERVICE_NO_DEFAULT_CONSTRUCTOR(Object arg0) {
-        return localizer.localize(localizableWEBSERVICEAP_WEBSERVICE_NO_DEFAULT_CONSTRUCTOR(arg0));
-    }
-
-    public static Localizable localizableWEBSERVICEAP_DOC_BARE_NO_OUT(Object arg0, Object arg1) {
-        return messageFactory.getMessage("webserviceap.doc.bare.no.out", arg0, arg1);
-    }
-
-    /**
-     * Document/literal bare methods with no return type or OUT/INOUT parameters must be annotated as @Oneway. Class: {0}, method: {1}
-     *
-     */
-    public static String WEBSERVICEAP_DOC_BARE_NO_OUT(Object arg0, Object arg1) {
-        return localizer.localize(localizableWEBSERVICEAP_DOC_BARE_NO_OUT(arg0, arg1));
-    }
-
-    public static Localizable localizableWEBSERVICEAP_FAILED_TO_PARSE_HANDLERCHAIN_FILE(Object arg0, Object arg1) {
-        return messageFactory.getMessage("webserviceap.failed.to.parse.handlerchain.file", arg0, arg1);
-    }
-
-    /**
-     * Failed to parse HandlerChain file. Class: {0}, file: {1}
-     *
-     */
-    public static String WEBSERVICEAP_FAILED_TO_PARSE_HANDLERCHAIN_FILE(Object arg0, Object arg1) {
-        return localizer.localize(localizableWEBSERVICEAP_FAILED_TO_PARSE_HANDLERCHAIN_FILE(arg0, arg1));
-    }
-
-    public static Localizable localizableWEBSERVICEAP_JAVA_TYPE_NOT_FOUND(Object arg0) {
-        return messageFactory.getMessage("webserviceap.java.typeNotFound", arg0);
-    }
-
-    /**
-     * The type: {0} was not found in the mapping
-     *
-     */
-    public static String WEBSERVICEAP_JAVA_TYPE_NOT_FOUND(Object arg0) {
-        return localizer.localize(localizableWEBSERVICEAP_JAVA_TYPE_NOT_FOUND(arg0));
-    }
-
-    public static Localizable localizableWEBSERVICEAP_ONEWAY_OPERATION_CANNOT_DECLARE_EXCEPTIONS(Object arg0, Object arg1, Object arg2) {
-        return messageFactory.getMessage("webserviceap.oneway.operation.cannot.declare.exceptions", arg0, arg1, arg2);
-    }
-
-    /**
-     * The method {1} of class {0} is annotated @Oneway but declares the exception {2}
-     *
-     */
-    public static String WEBSERVICEAP_ONEWAY_OPERATION_CANNOT_DECLARE_EXCEPTIONS(Object arg0, Object arg1, Object arg2) {
-        return localizer.localize(localizableWEBSERVICEAP_ONEWAY_OPERATION_CANNOT_DECLARE_EXCEPTIONS(arg0, arg1, arg2));
-    }
-
-    public static Localizable localizableWEBSERVICEAP_WEBSERVICE_METHOD_IS_STATIC_OR_FINAL(Object arg0, Object arg1) {
-        return messageFactory.getMessage("webserviceap.webservice.method.is.static.or.final", arg0, arg1);
-    }
-
-    /**
-     * Method annotated with @javax.jws.WebMethod must not be static or final. Class: {0} Method: {1}
-     *
-     */
-    public static String WEBSERVICEAP_WEBSERVICE_METHOD_IS_STATIC_OR_FINAL(Object arg0, Object arg1) {
-        return localizer.localize(localizableWEBSERVICEAP_WEBSERVICE_METHOD_IS_STATIC_OR_FINAL(arg0, arg1));
-    }
-
-    public static Localizable localizableWEBSERVICEAP_ONEWAY_OPERATION_CANNOT_HAVE_RETURN_TYPE(Object arg0, Object arg1) {
-        return messageFactory.getMessage("webserviceap.oneway.operation.cannot.have.return.type", arg0, arg1);
-    }
-
-    /**
-     * The method {1} of class {0} is annotated @Oneway but has a return type.
-     *
-     */
-    public static String WEBSERVICEAP_ONEWAY_OPERATION_CANNOT_HAVE_RETURN_TYPE(Object arg0, Object arg1) {
-        return localizer.localize(localizableWEBSERVICEAP_ONEWAY_OPERATION_CANNOT_HAVE_RETURN_TYPE(arg0, arg1));
-    }
-
-    public static Localizable localizableWEBSERVICEAP_WARNING(Object arg0) {
-        return messageFactory.getMessage("webserviceap.warning", arg0);
-    }
-
-    /**
-     * warning: {0}
-     *
-     */
-    public static String WEBSERVICEAP_WARNING(Object arg0) {
-        return localizer.localize(localizableWEBSERVICEAP_WARNING(arg0));
-    }
-
-    public static Localizable localizableWEBSERVICEAP_METHOD_RESPONSE_WRAPPER_BEAN_NAME_NOT_UNIQUE(Object arg0, Object arg1) {
-        return messageFactory.getMessage("webserviceap.method.response.wrapper.bean.name.not.unique", arg0, arg1);
-    }
-
-    /**
-     * Response wrapper bean names must be unique and must not clash with other generated classes.  Class: {0} method {1}
-     *
-     */
-    public static String WEBSERVICEAP_METHOD_RESPONSE_WRAPPER_BEAN_NAME_NOT_UNIQUE(Object arg0, Object arg1) {
-        return localizer.localize(localizableWEBSERVICEAP_METHOD_RESPONSE_WRAPPER_BEAN_NAME_NOT_UNIQUE(arg0, arg1));
-    }
-
-    public static Localizable localizableWEBSERVICEAP_ENDPOINTINTERFACE_ON_INTERFACE(Object arg0, Object arg1) {
-        return messageFactory.getMessage("webserviceap.endpointinterface.on.interface", arg0, arg1);
-    }
-
-    /**
-     * Service endpoint interface: {0} cannot have a WebService.endpointInterface annotation: {1}
-     *
-     */
-    public static String WEBSERVICEAP_ENDPOINTINTERFACE_ON_INTERFACE(Object arg0, Object arg1) {
-        return localizer.localize(localizableWEBSERVICEAP_ENDPOINTINTERFACE_ON_INTERFACE(arg0, arg1));
-    }
-
-    public static Localizable localizableWEBSERVICEAP_ONEWAY_AND_OUT(Object arg0, Object arg1) {
-        return messageFactory.getMessage("webserviceap.oneway.and.out", arg0, arg1);
-    }
-
-    /**
-     * @Oneway methods cannot have out parameters. Class: {0} method {1}
-     *
-     */
-    public static String WEBSERVICEAP_ONEWAY_AND_OUT(Object arg0, Object arg1) {
-        return localizer.localize(localizableWEBSERVICEAP_ONEWAY_AND_OUT(arg0, arg1));
-    }
-
-    public static Localizable localizableWEBSERVICEAP_RPC_LITERAL_WEBPARAMS_MUST_SPECIFY_NAME(Object arg0, Object arg1, Object arg2) {
-        return messageFactory.getMessage("webserviceap.rpc.literal.webparams.must.specify.name", arg0, arg1, arg2);
-    }
-
-    /**
-     * All RPC literal WebParams must specify a name.  Class: {0} method {1} parameter {2}
-     *
-     */
-    public static String WEBSERVICEAP_RPC_LITERAL_WEBPARAMS_MUST_SPECIFY_NAME(Object arg0, Object arg1, Object arg2) {
-        return localizer.localize(localizableWEBSERVICEAP_RPC_LITERAL_WEBPARAMS_MUST_SPECIFY_NAME(arg0, arg1, arg2));
-    }
-
-    public static Localizable localizableWEBSERVICEAP_INVALID_SEI_ANNOTATION_ELEMENT_EXCLUDE(Object arg0, Object arg1, Object arg2) {
-        return messageFactory.getMessage("webserviceap.invalid.sei.annotation.element.exclude", arg0, arg1, arg2);
-    }
-
-    /**
-     * The @javax.jws.WebMethod({0}) cannot be used on a service endpoint interface. Class: {1} method: {2}
-     *
-     */
-    public static String WEBSERVICEAP_INVALID_SEI_ANNOTATION_ELEMENT_EXCLUDE(Object arg0, Object arg1, Object arg2) {
-        return localizer.localize(localizableWEBSERVICEAP_INVALID_SEI_ANNOTATION_ELEMENT_EXCLUDE(arg0, arg1, arg2));
-    }
-
-    public static Localizable localizableWEBSERVICEAP_CLASS_NOT_FOUND(Object arg0) {
-        return messageFactory.getMessage("webserviceap.class.not.found", arg0);
-    }
-
-    /**
-     * Class Not Found: {0}
-     *
-     */
-    public static String WEBSERVICEAP_CLASS_NOT_FOUND(Object arg0) {
-        return localizer.localize(localizableWEBSERVICEAP_CLASS_NOT_FOUND(arg0));
-    }
-
-    public static Localizable localizableWEBSERVICEAP_ENDPOINTINTEFACE_PLUS_ELEMENT(Object arg0) {
-        return messageFactory.getMessage("webserviceap.endpointinteface.plus.element", arg0);
-    }
-
-    /**
-     * The @javax.jws.WebService.{0} element cannot be used in with @javax.jws.WebService.endpointInterface element.
-     *
-     */
-    public static String WEBSERVICEAP_ENDPOINTINTEFACE_PLUS_ELEMENT(Object arg0) {
-        return localizer.localize(localizableWEBSERVICEAP_ENDPOINTINTEFACE_PLUS_ELEMENT(arg0));
-    }
-
-    public static Localizable localizableWEBSERVICEAP_CANNOT_COMBINE_HANDLERCHAIN_SOAPMESSAGEHANDLERS() {
-        return messageFactory.getMessage("webserviceap.cannot.combine.handlerchain.soapmessagehandlers");
-    }
-
-    /**
-     * You cannot specify both HanlderChain and SOAPMessageHandlers annotations
-     *
-     */
-    public static String WEBSERVICEAP_CANNOT_COMBINE_HANDLERCHAIN_SOAPMESSAGEHANDLERS() {
-        return localizer.localize(localizableWEBSERVICEAP_CANNOT_COMBINE_HANDLERCHAIN_SOAPMESSAGEHANDLERS());
-    }
-
-    public static Localizable localizableWEBSERVICEAP_WEBSERVICE_CLASS_IS_INNERCLASS_NOT_STATIC(Object arg0) {
-        return messageFactory.getMessage("webserviceap.webservice.class.is.innerclass.not.static", arg0);
-    }
-
-    /**
-     * Inner classes annotated with @javax.jws.WebService must be static. Class: {0}
-     *
-     */
-    public static String WEBSERVICEAP_WEBSERVICE_CLASS_IS_INNERCLASS_NOT_STATIC(Object arg0) {
-        return localizer.localize(localizableWEBSERVICEAP_WEBSERVICE_CLASS_IS_INNERCLASS_NOT_STATIC(arg0));
-    }
-
-    public static Localizable localizableWEBSERVICEAP_NON_IN_PARAMETERS_MUST_BE_HOLDER(Object arg0, Object arg1, Object arg2) {
-        return messageFactory.getMessage("webserviceap.non.in.parameters.must.be.holder", arg0, arg1, arg2);
-    }
-
-    /**
-     * Class: {0}, method: {1}, parameter: {2} is not WebParam.Mode.IN and is not of type javax.xml.ws.Holder.
-     *
-     */
-    public static String WEBSERVICEAP_NON_IN_PARAMETERS_MUST_BE_HOLDER(Object arg0, Object arg1, Object arg2) {
-        return localizer.localize(localizableWEBSERVICEAP_NON_IN_PARAMETERS_MUST_BE_HOLDER(arg0, arg1, arg2));
-    }
-
-    public static Localizable localizableWEBSERVICEAP_INVALID_SEI_ANNOTATION_ELEMENT(Object arg0, Object arg1) {
-        return messageFactory.getMessage("webserviceap.invalid.sei.annotation.element", arg0, arg1);
-    }
-
-    /**
-     * The @javax.jws.WebService.{0} element cannot be specified on a service endpoint interface. Class: {1}
-     *
-     */
-    public static String WEBSERVICEAP_INVALID_SEI_ANNOTATION_ELEMENT(Object arg0, Object arg1) {
-        return localizer.localize(localizableWEBSERVICEAP_INVALID_SEI_ANNOTATION_ELEMENT(arg0, arg1));
-    }
-
-    public static Localizable localizableWEBSERVICEAP_SUCCEEDED() {
-        return messageFactory.getMessage("webserviceap.succeeded");
-    }
-
-    /**
-     * Success
-     *
-     */
-    public static String WEBSERVICEAP_SUCCEEDED() {
-        return localizer.localize(localizableWEBSERVICEAP_SUCCEEDED());
-    }
-
-    public static Localizable localizableWEBSERVICEAP_DOC_BARE_AND_NO_ONE_IN(Object arg0, Object arg1) {
-        return messageFactory.getMessage("webserviceap.doc.bare.and.no.one.in", arg0, arg1);
-    }
-
-    /**
-     * Document literal bare methods must have one non-header, IN/INOUT parameter.  Class: {0} Method: {1}
-     *
-     */
-    public static String WEBSERVICEAP_DOC_BARE_AND_NO_ONE_IN(Object arg0, Object arg1) {
-        return localizer.localize(localizableWEBSERVICEAP_DOC_BARE_AND_NO_ONE_IN(arg0, arg1));
-    }
+    private final static LocalizableMessageFactory MESSAGE_FACTORY = new LocalizableMessageFactory(BUNDLE_NAME, new WebserviceapMessages.BundleSupplier());
+    private final static Localizer LOCALIZER = new Localizer();
 
     public static Localizable localizableWEBSERVICEAP_WEBSERVICE_METHOD_IS_ABSTRACT(Object arg0, Object arg1) {
-        return messageFactory.getMessage("webserviceap.webservice.method.is.abstract", arg0, arg1);
+        return MESSAGE_FACTORY.getMessage("webserviceap.webservice.method.is.abstract", arg0, arg1);
     }
 
     /**
@@ -392,107 +52,35 @@
      *
      */
     public static String WEBSERVICEAP_WEBSERVICE_METHOD_IS_ABSTRACT(Object arg0, Object arg1) {
-        return localizer.localize(localizableWEBSERVICEAP_WEBSERVICE_METHOD_IS_ABSTRACT(arg0, arg1));
+        return LOCALIZER.localize(localizableWEBSERVICEAP_WEBSERVICE_METHOD_IS_ABSTRACT(arg0, arg1));
     }
 
-    public static Localizable localizableWEBSERVICEAP_DOCUMENT_LITERAL_BARE_METHOD_RETURN_NOT_UNIQUE(Object arg0, Object arg1, Object arg2, Object arg3) {
-        return messageFactory.getMessage("webserviceap.document.literal.bare.method.return.not.unique", arg0, arg1, arg2, arg3);
+    public static Localizable localizableWEBSERVICEAP_WEBSERVICE_AND_WEBSERVICEPROVIDER(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("webserviceap.webservice.and.webserviceprovider", arg0);
     }
 
     /**
-     * Document literal bare methods must have a unique result name return type combination.  Class {0} method: {1}, result name: {2} return type: {3}
+     * Classes cannot be annotated with both @javax.jws.WebService and @javax.xml.ws.WebServiceProvider.  Class: {0}
      *
      */
-    public static String WEBSERVICEAP_DOCUMENT_LITERAL_BARE_METHOD_RETURN_NOT_UNIQUE(Object arg0, Object arg1, Object arg2, Object arg3) {
-        return localizer.localize(localizableWEBSERVICEAP_DOCUMENT_LITERAL_BARE_METHOD_RETURN_NOT_UNIQUE(arg0, arg1, arg2, arg3));
+    public static String WEBSERVICEAP_WEBSERVICE_AND_WEBSERVICEPROVIDER(Object arg0) {
+        return LOCALIZER.localize(localizableWEBSERVICEAP_WEBSERVICE_AND_WEBSERVICEPROVIDER(arg0));
     }
 
-    public static Localizable localizableWEBSERVICEAP_NO_WEBSERVICE_ENDPOINT_FOUND() {
-        return messageFactory.getMessage("webserviceap.no.webservice.endpoint.found");
+    public static Localizable localizableWEBSERVICEAP_DOC_BARE_AND_NO_ONE_IN(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("webserviceap.doc.bare.and.no.one.in", arg0, arg1);
     }
 
     /**
-     * A web service endpoint could not be found
+     * Document literal bare methods must have one non-header, IN/INOUT parameter.  Class: {0} Method: {1}
      *
      */
-    public static String WEBSERVICEAP_NO_WEBSERVICE_ENDPOINT_FOUND() {
-        return localizer.localize(localizableWEBSERVICEAP_NO_WEBSERVICE_ENDPOINT_FOUND());
-    }
-
-    public static Localizable localizableWEBSERVICEAP_FILE_NOT_FOUND(Object arg0) {
-        return messageFactory.getMessage("webserviceap.fileNotFound", arg0);
-    }
-
-    /**
-     * error: file not found: {0}
-     *
-     */
-    public static String WEBSERVICEAP_FILE_NOT_FOUND(Object arg0) {
-        return localizer.localize(localizableWEBSERVICEAP_FILE_NOT_FOUND(arg0));
-    }
-
-    public static Localizable localizableWEBSERVICEAP_INVALID_HANDLERCHAIN_FILE_NOHANDLER_CONFIG(Object arg0) {
-        return messageFactory.getMessage("webserviceap.invalid.handlerchain.file.nohandler-config", arg0);
-    }
-
-    /**
-     * The handlerchain file {0} is invalid, it does not contain a handler-config element
-     *
-     */
-    public static String WEBSERVICEAP_INVALID_HANDLERCHAIN_FILE_NOHANDLER_CONFIG(Object arg0) {
-        return localizer.localize(localizableWEBSERVICEAP_INVALID_HANDLERCHAIN_FILE_NOHANDLER_CONFIG(arg0));
-    }
-
-    public static Localizable localizableWEBSERVICEAP_HEADER_PARAMETERS_MUST_HAVE_WEBPARAM_NAME(Object arg0, Object arg1, Object arg2) {
-        return messageFactory.getMessage("webserviceap.header.parameters.must.have.webparam.name", arg0, arg1, arg2);
-    }
-
-    /**
-     * All WebParam annotations on header parameters must specify a name.  Class: {0} method {1} parameter {2}
-     *
-     */
-    public static String WEBSERVICEAP_HEADER_PARAMETERS_MUST_HAVE_WEBPARAM_NAME(Object arg0, Object arg1, Object arg2) {
-        return localizer.localize(localizableWEBSERVICEAP_HEADER_PARAMETERS_MUST_HAVE_WEBPARAM_NAME(arg0, arg1, arg2));
-    }
-
-    public static Localizable localizableWEBSERVICEAP_METHOD_RETURN_TYPE_CANNOT_IMPLEMENT_REMOTE(Object arg0, Object arg1, Object arg2) {
-        return messageFactory.getMessage("webserviceap.method.return.type.cannot.implement.remote", arg0, arg1, arg2);
-    }
-
-    /**
-     * Method return types cannot implement java.rmi.Remote.  Class: {0} method: {1} return type: {2}
-     *
-     */
-    public static String WEBSERVICEAP_METHOD_RETURN_TYPE_CANNOT_IMPLEMENT_REMOTE(Object arg0, Object arg1, Object arg2) {
-        return localizer.localize(localizableWEBSERVICEAP_METHOD_RETURN_TYPE_CANNOT_IMPLEMENT_REMOTE(arg0, arg1, arg2));
-    }
-
-    public static Localizable localizableWEBSERVICEAP_ENDPOINTINTEFACE_PLUS_ANNOTATION(Object arg0) {
-        return messageFactory.getMessage("webserviceap.endpointinteface.plus.annotation", arg0);
-    }
-
-    /**
-     * The @{0} annotation cannot be used in with @javax.jws.WebService.endpointInterface element.
-     *
-     */
-    public static String WEBSERVICEAP_ENDPOINTINTEFACE_PLUS_ANNOTATION(Object arg0) {
-        return localizer.localize(localizableWEBSERVICEAP_ENDPOINTINTEFACE_PLUS_ANNOTATION(arg0));
-    }
-
-    public static Localizable localizableWEBSERVICEAP_HOLDER_PARAMETERS_MUST_NOT_BE_IN_ONLY(Object arg0, Object arg1, Object arg2) {
-        return messageFactory.getMessage("webserviceap.holder.parameters.must.not.be.in.only", arg0, arg1, arg2);
-    }
-
-    /**
-     * javax.xml.ws.Holder parameters must not be annotated with the WebParam.Mode.IN property.  Class: {0} method: {1} parameter: {2}
-     *
-     */
-    public static String WEBSERVICEAP_HOLDER_PARAMETERS_MUST_NOT_BE_IN_ONLY(Object arg0, Object arg1, Object arg2) {
-        return localizer.localize(localizableWEBSERVICEAP_HOLDER_PARAMETERS_MUST_NOT_BE_IN_ONLY(arg0, arg1, arg2));
+    public static String WEBSERVICEAP_DOC_BARE_AND_NO_ONE_IN(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableWEBSERVICEAP_DOC_BARE_AND_NO_ONE_IN(arg0, arg1));
     }
 
     public static Localizable localizableWEBSERVICEAP_DOCUMENT_LITERAL_BARE_MUST_HAVE_ONLY_ONE_IN_PARAMETER(Object arg0, Object arg1, Object arg2) {
-        return messageFactory.getMessage("webserviceap.document.literal.bare.must.have.only.one.in.parameter", arg0, arg1, arg2);
+        return MESSAGE_FACTORY.getMessage("webserviceap.document.literal.bare.must.have.only.one.in.parameter", arg0, arg1, arg2);
     }
 
     /**
@@ -500,407 +88,11 @@
      *
      */
     public static String WEBSERVICEAP_DOCUMENT_LITERAL_BARE_MUST_HAVE_ONLY_ONE_IN_PARAMETER(Object arg0, Object arg1, Object arg2) {
-        return localizer.localize(localizableWEBSERVICEAP_DOCUMENT_LITERAL_BARE_MUST_HAVE_ONLY_ONE_IN_PARAMETER(arg0, arg1, arg2));
-    }
-
-    public static Localizable localizableWEBSERVICEAP_DOC_BARE_RETURN_AND_OUT(Object arg0, Object arg1) {
-        return messageFactory.getMessage("webserviceap.doc.bare.return.and.out", arg0, arg1);
-    }
-
-    /**
-     * Document/literal bare methods cannot have a return type and out parameters. Class: {0}, method: {1}
-     *
-     */
-    public static String WEBSERVICEAP_DOC_BARE_RETURN_AND_OUT(Object arg0, Object arg1) {
-        return localizer.localize(localizableWEBSERVICEAP_DOC_BARE_RETURN_AND_OUT(arg0, arg1));
-    }
-
-    public static Localizable localizableWEBSERVICEAP_METHOD_PARAMETER_TYPES_CANNOT_IMPLEMENT_REMOTE(Object arg0, Object arg1, Object arg2, Object arg3) {
-        return messageFactory.getMessage("webserviceap.method.parameter.types.cannot.implement.remote", arg0, arg1, arg2, arg3);
-    }
-
-    /**
-     * Method parameter types cannot implement java.rmi.Remote.  Class: {0} method: {1} parameter: {2} type: {3}
-     *
-     */
-    public static String WEBSERVICEAP_METHOD_PARAMETER_TYPES_CANNOT_IMPLEMENT_REMOTE(Object arg0, Object arg1, Object arg2, Object arg3) {
-        return localizer.localize(localizableWEBSERVICEAP_METHOD_PARAMETER_TYPES_CANNOT_IMPLEMENT_REMOTE(arg0, arg1, arg2, arg3));
-    }
-
-    public static Localizable localizableWEBSERVICEAP_COMPILATION_FAILED() {
-        return messageFactory.getMessage("webserviceap.compilationFailed");
-    }
-
-    /**
-     * compilation failed, errors should have been reported
-     *
-     */
-    public static String WEBSERVICEAP_COMPILATION_FAILED() {
-        return localizer.localize(localizableWEBSERVICEAP_COMPILATION_FAILED());
-    }
-
-    public static Localizable localizableWEBSERVICEAP_MODEL_ALREADY_EXISTS() {
-        return messageFactory.getMessage("webserviceap.model.already.exists");
-    }
-
-    /**
-     * model already exists
-     *
-     */
-    public static String WEBSERVICEAP_MODEL_ALREADY_EXISTS() {
-        return localizer.localize(localizableWEBSERVICEAP_MODEL_ALREADY_EXISTS());
-    }
-
-    public static Localizable localizableWEBSERVICEAP_COULD_NOT_FIND_TYPEDECL(Object arg0, Object arg1) {
-        return messageFactory.getMessage("webserviceap.could.not.find.typedecl", arg0, arg1);
-    }
-
-    /**
-     * Could not get TypeElement for: {0} in annotation processing round: {1}
-     *
-     */
-    public static String WEBSERVICEAP_COULD_NOT_FIND_TYPEDECL(Object arg0, Object arg1) {
-        return localizer.localize(localizableWEBSERVICEAP_COULD_NOT_FIND_TYPEDECL(arg0, arg1));
-    }
-
-    public static Localizable localizableWEBSERVICEAP_WEBSERVICE_CLASS_NOT_PUBLIC(Object arg0) {
-        return messageFactory.getMessage("webserviceap.webservice.class.not.public", arg0);
-    }
-
-    /**
-     * Classes annotated with @javax.jws.WebService must be public. Class: {0}
-     *
-     */
-    public static String WEBSERVICEAP_WEBSERVICE_CLASS_NOT_PUBLIC(Object arg0) {
-        return localizer.localize(localizableWEBSERVICEAP_WEBSERVICE_CLASS_NOT_PUBLIC(arg0));
-    }
-
-    public static Localizable localizableWEBSERVICEAP_DOCUMENT_LITERAL_BARE_METHOD_NOT_UNIQUE(Object arg0, Object arg1, Object arg2) {
-        return messageFactory.getMessage("webserviceap.document.literal.bare.method.not.unique", arg0, arg1, arg2);
-    }
-
-    /**
-     * Document literal bare methods must have unique parameter names.  Class: {0} method: {1} parameter name: {2}
-     *
-     */
-    public static String WEBSERVICEAP_DOCUMENT_LITERAL_BARE_METHOD_NOT_UNIQUE(Object arg0, Object arg1, Object arg2) {
-        return localizer.localize(localizableWEBSERVICEAP_DOCUMENT_LITERAL_BARE_METHOD_NOT_UNIQUE(arg0, arg1, arg2));
-    }
-
-    public static Localizable localizableWEBSERVICEAP_RPC_SOAPBINDING_NOT_ALLOWED_ON_METHOD(Object arg0, Object arg1) {
-        return messageFactory.getMessage("webserviceap.rpc.soapbinding.not.allowed.on.method", arg0, arg1);
-    }
-
-    /**
-     * SOAPBinding.Style.RPC binding annotations are not allowed on methods.  Class: {0} Method: {1}
-     *
-     */
-    public static String WEBSERVICEAP_RPC_SOAPBINDING_NOT_ALLOWED_ON_METHOD(Object arg0, Object arg1) {
-        return localizer.localize(localizableWEBSERVICEAP_RPC_SOAPBINDING_NOT_ALLOWED_ON_METHOD(arg0, arg1));
-    }
-
-    public static Localizable localizableWEBSERVICEAP_NO_PACKAGE_CLASS_MUST_HAVE_TARGETNAMESPACE(Object arg0) {
-        return messageFactory.getMessage("webserviceap.no.package.class.must.have.targetnamespace", arg0);
-    }
-
-    /**
-     * @javax.jws.Webservice annotated classes that do not belong to a package must have the @javax.jws.Webservice.targetNamespace element.  Class: {0}
-     *
-     */
-    public static String WEBSERVICEAP_NO_PACKAGE_CLASS_MUST_HAVE_TARGETNAMESPACE(Object arg0) {
-        return localizer.localize(localizableWEBSERVICEAP_NO_PACKAGE_CLASS_MUST_HAVE_TARGETNAMESPACE(arg0));
-    }
-
-    public static Localizable localizableWEBSERVICEAP_ENDPOINTINTERFACE_HAS_NO_WEBSERVICE_ANNOTATION(Object arg0) {
-        return messageFactory.getMessage("webserviceap.endpointinterface.has.no.webservice.annotation", arg0);
-    }
-
-    /**
-     * The endpoint interface {0} must have a WebService annotation
-     *
-     */
-    public static String WEBSERVICEAP_ENDPOINTINTERFACE_HAS_NO_WEBSERVICE_ANNOTATION(Object arg0) {
-        return localizer.localize(localizableWEBSERVICEAP_ENDPOINTINTERFACE_HAS_NO_WEBSERVICE_ANNOTATION(arg0));
-    }
-
-    public static Localizable localizableWEBSERVICEAP_INFO(Object arg0) {
-        return messageFactory.getMessage("webserviceap.info", arg0);
-    }
-
-    /**
-     * info: {0}
-     *
-     */
-    public static String WEBSERVICEAP_INFO(Object arg0) {
-        return localizer.localize(localizableWEBSERVICEAP_INFO(arg0));
-    }
-
-    public static Localizable localizableWEBSERVICEAP_RPC_LITERAL_MUST_NOT_BE_BARE(Object arg0) {
-        return messageFactory.getMessage("webserviceap.rpc.literal.must.not.be.bare", arg0);
-    }
-
-    /**
-     * RPC literal SOAPBindings must have parameterStyle WRAPPED. Class: {0}.
-     *
-     */
-    public static String WEBSERVICEAP_RPC_LITERAL_MUST_NOT_BE_BARE(Object arg0) {
-        return localizer.localize(localizableWEBSERVICEAP_RPC_LITERAL_MUST_NOT_BE_BARE(arg0));
-    }
-
-    public static Localizable localizableWEBSERVICEAP_COULD_NOT_FIND_HANDLERCHAIN(Object arg0, Object arg1) {
-        return messageFactory.getMessage("webserviceap.could.not.find.handlerchain", arg0, arg1);
-    }
-
-    /**
-     * Could not find the handlerchain {0} in the handler file {1}
-     *
-     */
-    public static String WEBSERVICEAP_COULD_NOT_FIND_HANDLERCHAIN(Object arg0, Object arg1) {
-        return localizer.localize(localizableWEBSERVICEAP_COULD_NOT_FIND_HANDLERCHAIN(arg0, arg1));
-    }
-
-    public static Localizable localizableWEBSERVICEAP_RPC_ENCODED_NOT_SUPPORTED(Object arg0) {
-        return messageFactory.getMessage("webserviceap.rpc.encoded.not.supported", arg0);
-    }
-
-    /**
-     * The class {0} has a rpc/encoded SOAPBinding.  Rpc/encoded SOAPBindings are not supported in JAXWS 2.0.
-     *
-     */
-    public static String WEBSERVICEAP_RPC_ENCODED_NOT_SUPPORTED(Object arg0) {
-        return localizer.localize(localizableWEBSERVICEAP_RPC_ENCODED_NOT_SUPPORTED(arg0));
-    }
-
-    public static Localizable localizableWEBSERVICEAP_ERROR(Object arg0) {
-        return messageFactory.getMessage("webserviceap.error", arg0);
-    }
-
-    /**
-     * error: {0}
-     *
-     */
-    public static String WEBSERVICEAP_ERROR(Object arg0) {
-        return localizer.localize(localizableWEBSERVICEAP_ERROR(arg0));
-    }
-
-    public static Localizable localizableWEBSERVICEAP_ENDPOINTINTERFACE_CLASS_NOT_FOUND(Object arg0) {
-        return messageFactory.getMessage("webserviceap.endpointinterface.class.not.found", arg0);
-    }
-
-    /**
-     * The endpointInterface class {0} could not be found
-     *
-     */
-    public static String WEBSERVICEAP_ENDPOINTINTERFACE_CLASS_NOT_FOUND(Object arg0) {
-        return localizer.localize(localizableWEBSERVICEAP_ENDPOINTINTERFACE_CLASS_NOT_FOUND(arg0));
-    }
-
-    public static Localizable localizableWEBSERVICEAP_METHOD_NOT_IMPLEMENTED(Object arg0, Object arg1, Object arg2) {
-        return messageFactory.getMessage("webserviceap.method.not.implemented", arg0, arg1, arg2);
-    }
-
-    /**
-     * Methods in an endpointInterface must be implemented in the implementation class.  Interface Class:{0} Implementation Class:{1} Method: {2}
-     *
-     */
-    public static String WEBSERVICEAP_METHOD_NOT_IMPLEMENTED(Object arg0, Object arg1, Object arg2) {
-        return localizer.localize(localizableWEBSERVICEAP_METHOD_NOT_IMPLEMENTED(arg0, arg1, arg2));
-    }
-
-    public static Localizable localizableWEBSERVICEAP_PARSING_JAVAC_OPTIONS_ERROR() {
-        return messageFactory.getMessage("webserviceap.parsing.javac.options.error");
-    }
-
-    /**
-     * Can't get javac options from processingEnv.
-     *
-     */
-    public static String WEBSERVICEAP_PARSING_JAVAC_OPTIONS_ERROR() {
-        return localizer.localize(localizableWEBSERVICEAP_PARSING_JAVAC_OPTIONS_ERROR());
-    }
-
-    public static Localizable localizableWEBSERVICE_ENCODED_NOT_SUPPORTED(Object arg0, Object arg1) {
-        return messageFactory.getMessage("webservice.encoded.not.supported", arg0, arg1);
-    }
-
-    /**
-     * The {0} class has invalid SOAPBinding annotation. {1}/encoded SOAPBinding is not supported
-     *
-     */
-    public static String WEBSERVICE_ENCODED_NOT_SUPPORTED(Object arg0, Object arg1) {
-        return localizer.localize(localizableWEBSERVICE_ENCODED_NOT_SUPPORTED(arg0, arg1));
-    }
-
-    public static Localizable localizableWEBSERVICEAP_HANDLERCLASS_NOTSPECIFIED(Object arg0) {
-        return messageFactory.getMessage("webserviceap.handlerclass.notspecified", arg0);
-    }
-
-    /**
-     * A handler in the HandlerChain file: {0} does not specify a handler-class
-     *
-     */
-    public static String WEBSERVICEAP_HANDLERCLASS_NOTSPECIFIED(Object arg0) {
-        return localizer.localize(localizableWEBSERVICEAP_HANDLERCLASS_NOTSPECIFIED(arg0));
-    }
-
-    public static Localizable localizableWEBSERVICEAP_FAILED_TO_FIND_HANDLERCHAIN_FILE(Object arg0, Object arg1) {
-        return messageFactory.getMessage("webserviceap.failed.to.find.handlerchain.file", arg0, arg1);
-    }
-
-    /**
-     * Cannot find HandlerChain file. class: {0}, file: {1}
-     *
-     */
-    public static String WEBSERVICEAP_FAILED_TO_FIND_HANDLERCHAIN_FILE(Object arg0, Object arg1) {
-        return localizer.localize(localizableWEBSERVICEAP_FAILED_TO_FIND_HANDLERCHAIN_FILE(arg0, arg1));
-    }
-
-    public static Localizable localizableWEBSERVICEAP_DOC_BARE_NO_RETURN_AND_NO_OUT(Object arg0, Object arg1) {
-        return messageFactory.getMessage("webserviceap.doc.bare.no.return.and.no.out", arg0, arg1);
-    }
-
-    /**
-     * Document literal bare methods that do not have a return value must have a single OUT/INOUT parameter.  Class: {0} Method: {1}
-     *
-     */
-    public static String WEBSERVICEAP_DOC_BARE_NO_RETURN_AND_NO_OUT(Object arg0, Object arg1) {
-        return localizer.localize(localizableWEBSERVICEAP_DOC_BARE_NO_RETURN_AND_NO_OUT(arg0, arg1));
-    }
-
-    public static Localizable localizableWEBSERVICEAP_WEBSERVICE_CLASS_IS_ABSTRACT(Object arg0) {
-        return messageFactory.getMessage("webserviceap.webservice.class.is.abstract", arg0);
-    }
-
-    /**
-     * Classes annotated with @javax.jws.WebService must not be abstract. Class: {0}
-     *
-     */
-    public static String WEBSERVICEAP_WEBSERVICE_CLASS_IS_ABSTRACT(Object arg0) {
-        return localizer.localize(localizableWEBSERVICEAP_WEBSERVICE_CLASS_IS_ABSTRACT(arg0));
-    }
-
-    public static Localizable localizableWEBSERVICEAP_INIT_PARAM_FORMAT_ERROR() {
-        return messageFactory.getMessage("webserviceap.init_param.format.error");
-    }
-
-    /**
-     * a <init-param> element must have exactly 1 <param-name> and 1 <param-value>
-     *
-     */
-    public static String WEBSERVICEAP_INIT_PARAM_FORMAT_ERROR() {
-        return localizer.localize(localizableWEBSERVICEAP_INIT_PARAM_FORMAT_ERROR());
-    }
-
-    public static Localizable localizableWEBSERVICEAP_MIXED_BINDING_STYLE(Object arg0) {
-        return messageFactory.getMessage("webserviceap.mixed.binding.style", arg0);
-    }
-
-    /**
-     * Class: {0} contains mixed bindings.  SOAPBinding.Style.RPC and SOAPBinding.Style.DOCUMENT cannot be mixed.
-     *
-     */
-    public static String WEBSERVICEAP_MIXED_BINDING_STYLE(Object arg0) {
-        return localizer.localize(localizableWEBSERVICEAP_MIXED_BINDING_STYLE(arg0));
-    }
-
-    public static Localizable localizableWEBSERVICEAP_METHOD_NOT_ANNOTATED(Object arg0, Object arg1) {
-        return messageFactory.getMessage("webserviceap.method.not.annotated", arg0, arg1);
-    }
-
-    /**
-     * The method {0} on class {1} is not annotated.
-     *
-     */
-    public static String WEBSERVICEAP_METHOD_NOT_ANNOTATED(Object arg0, Object arg1) {
-        return localizer.localize(localizableWEBSERVICEAP_METHOD_NOT_ANNOTATED(arg0, arg1));
-    }
-
-    public static Localizable localizableWEBSERVICEAP_ONEWAY_OPERATION_CANNOT_HAVE_HOLDERS(Object arg0, Object arg1) {
-        return messageFactory.getMessage("webserviceap.oneway.operation.cannot.have.holders", arg0, arg1);
-    }
-
-    /**
-     * The method {1} of class {0} is annotated @Oneway but contains INOUT or OUT parameters (javax.xml.ws.Holder)
-     *
-     */
-    public static String WEBSERVICEAP_ONEWAY_OPERATION_CANNOT_HAVE_HOLDERS(Object arg0, Object arg1) {
-        return localizer.localize(localizableWEBSERVICEAP_ONEWAY_OPERATION_CANNOT_HAVE_HOLDERS(arg0, arg1));
-    }
-
-    public static Localizable localizableWEBSERVICEAP_DOCUMENT_LITERAL_BARE_CANNOT_HAVE_MORE_THAN_ONE_OUT(Object arg0, Object arg1) {
-        return messageFactory.getMessage("webserviceap.document.literal.bare.cannot.have.more.than.one.out", arg0, arg1);
-    }
-
-    /**
-     * Document literal bare methods must have a return value or one out parameter.  Class: {0} Method: {1}
-     *
-     */
-    public static String WEBSERVICEAP_DOCUMENT_LITERAL_BARE_CANNOT_HAVE_MORE_THAN_ONE_OUT(Object arg0, Object arg1) {
-        return localizer.localize(localizableWEBSERVICEAP_DOCUMENT_LITERAL_BARE_CANNOT_HAVE_MORE_THAN_ONE_OUT(arg0, arg1));
-    }
-
-    public static Localizable localizableWEBSERVICEAP_INVALID_SEI_ANNOTATION(Object arg0, Object arg1) {
-        return messageFactory.getMessage("webserviceap.invalid.sei.annotation", arg0, arg1);
-    }
-
-    /**
-     * The @{0} annotation cannot be used on a service endpoint interface. Class: {1}
-     *
-     */
-    public static String WEBSERVICEAP_INVALID_SEI_ANNOTATION(Object arg0, Object arg1) {
-        return localizer.localize(localizableWEBSERVICEAP_INVALID_SEI_ANNOTATION(arg0, arg1));
-    }
-
-    public static Localizable localizableWEBSERVICEAP_OPERATION_NAME_NOT_UNIQUE(Object arg0, Object arg1, Object arg2) {
-        return messageFactory.getMessage("webserviceap.operation.name.not.unique", arg0, arg1, arg2);
-    }
-
-    /**
-     * Operation names must be unique.  Class: {0} method: {1} operation name: {2}
-     *
-     */
-    public static String WEBSERVICEAP_OPERATION_NAME_NOT_UNIQUE(Object arg0, Object arg1, Object arg2) {
-        return localizer.localize(localizableWEBSERVICEAP_OPERATION_NAME_NOT_UNIQUE(arg0, arg1, arg2));
-    }
-
-    public static Localizable localizableWEBSERVICEAP_WEBSERVICE_CLASS_IS_FINAL(Object arg0) {
-        return messageFactory.getMessage("webserviceap.webservice.class.is.final", arg0);
-    }
-
-    /**
-     * Classes annotated with @javax.jws.WebService must not be final. Class: {0}
-     *
-     */
-    public static String WEBSERVICEAP_WEBSERVICE_CLASS_IS_FINAL(Object arg0) {
-        return localizer.localize(localizableWEBSERVICEAP_WEBSERVICE_CLASS_IS_FINAL(arg0));
-    }
-
-    public static Localizable localizableWEBSERVICEAP_DOCUMENT_LITERAL_BARE_MUST_HAVE_ONE_IN_OR_OUT(Object arg0, Object arg1) {
-        return messageFactory.getMessage("webserviceap.document.literal.bare.must.have.one.in.or.out", arg0, arg1);
-    }
-
-    /**
-     * Document literal bare methods must have at least one of: a return, an in parameter or an out parameter.  Class: {0} Method: {1}
-     *
-     */
-    public static String WEBSERVICEAP_DOCUMENT_LITERAL_BARE_MUST_HAVE_ONE_IN_OR_OUT(Object arg0, Object arg1) {
-        return localizer.localize(localizableWEBSERVICEAP_DOCUMENT_LITERAL_BARE_MUST_HAVE_ONE_IN_OR_OUT(arg0, arg1));
-    }
-
-    public static Localizable localizableWEBSERVICEAP_METHOD_REQUEST_WRAPPER_BEAN_NAME_NOT_UNIQUE(Object arg0, Object arg1) {
-        return messageFactory.getMessage("webserviceap.method.request.wrapper.bean.name.not.unique", arg0, arg1);
-    }
-
-    /**
-     * Request wrapper bean names must be unique and must not clash with other generated classes.  Class: {0} method {1}
-     *
-     */
-    public static String WEBSERVICEAP_METHOD_REQUEST_WRAPPER_BEAN_NAME_NOT_UNIQUE(Object arg0, Object arg1) {
-        return localizer.localize(localizableWEBSERVICEAP_METHOD_REQUEST_WRAPPER_BEAN_NAME_NOT_UNIQUE(arg0, arg1));
+        return LOCALIZER.localize(localizableWEBSERVICEAP_DOCUMENT_LITERAL_BARE_MUST_HAVE_ONLY_ONE_IN_PARAMETER(arg0, arg1, arg2));
     }
 
     public static Localizable localizableWEBSERVICEAP_DOCUMENT_BARE_HOLDER_PARAMETERS_MUST_NOT_BE_INOUT(Object arg0, Object arg1, Object arg2) {
-        return messageFactory.getMessage("webserviceap.document.bare.holder.parameters.must.not.be.inout", arg0, arg1, arg2);
+        return MESSAGE_FACTORY.getMessage("webserviceap.document.bare.holder.parameters.must.not.be.inout", arg0, arg1, arg2);
     }
 
     /**
@@ -908,11 +100,215 @@
      *
      */
     public static String WEBSERVICEAP_DOCUMENT_BARE_HOLDER_PARAMETERS_MUST_NOT_BE_INOUT(Object arg0, Object arg1, Object arg2) {
-        return localizer.localize(localizableWEBSERVICEAP_DOCUMENT_BARE_HOLDER_PARAMETERS_MUST_NOT_BE_INOUT(arg0, arg1, arg2));
+        return LOCALIZER.localize(localizableWEBSERVICEAP_DOCUMENT_BARE_HOLDER_PARAMETERS_MUST_NOT_BE_INOUT(arg0, arg1, arg2));
+    }
+
+    public static Localizable localizableWEBSERVICEAP_DOC_BARE_RETURN_AND_OUT(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("webserviceap.doc.bare.return.and.out", arg0, arg1);
+    }
+
+    /**
+     * Document/literal bare methods cannot have a return type and out parameters. Class: {0}, method: {1}
+     *
+     */
+    public static String WEBSERVICEAP_DOC_BARE_RETURN_AND_OUT(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableWEBSERVICEAP_DOC_BARE_RETURN_AND_OUT(arg0, arg1));
+    }
+
+    public static Localizable localizableWEBSERVICEAP_COMPILATION_FAILED() {
+        return MESSAGE_FACTORY.getMessage("webserviceap.compilationFailed");
+    }
+
+    /**
+     * compilation failed, errors should have been reported
+     *
+     */
+    public static String WEBSERVICEAP_COMPILATION_FAILED() {
+        return LOCALIZER.localize(localizableWEBSERVICEAP_COMPILATION_FAILED());
+    }
+
+    public static Localizable localizableWEBSERVICEAP_MIXED_BINDING_STYLE(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("webserviceap.mixed.binding.style", arg0);
+    }
+
+    /**
+     * Class: {0} contains mixed bindings.  SOAPBinding.Style.RPC and SOAPBinding.Style.DOCUMENT cannot be mixed.
+     *
+     */
+    public static String WEBSERVICEAP_MIXED_BINDING_STYLE(Object arg0) {
+        return LOCALIZER.localize(localizableWEBSERVICEAP_MIXED_BINDING_STYLE(arg0));
+    }
+
+    public static Localizable localizableWEBSERVICEAP_ENDPOINTINTERFACE_ON_INTERFACE(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("webserviceap.endpointinterface.on.interface", arg0, arg1);
+    }
+
+    /**
+     * Service endpoint interface: {0} cannot have a WebService.endpointInterface annotation: {1}
+     *
+     */
+    public static String WEBSERVICEAP_ENDPOINTINTERFACE_ON_INTERFACE(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableWEBSERVICEAP_ENDPOINTINTERFACE_ON_INTERFACE(arg0, arg1));
+    }
+
+    public static Localizable localizableWEBSERVICEAP_NO_PACKAGE_CLASS_MUST_HAVE_TARGETNAMESPACE(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("webserviceap.no.package.class.must.have.targetnamespace", arg0);
+    }
+
+    /**
+     * @javax.jws.Webservice annotated classes that do not belong to a package must have the @javax.jws.Webservice.targetNamespace element.  Class: {0}
+     *
+     */
+    public static String WEBSERVICEAP_NO_PACKAGE_CLASS_MUST_HAVE_TARGETNAMESPACE(Object arg0) {
+        return LOCALIZER.localize(localizableWEBSERVICEAP_NO_PACKAGE_CLASS_MUST_HAVE_TARGETNAMESPACE(arg0));
+    }
+
+    public static Localizable localizableWEBSERVICEAP_SUCCEEDED() {
+        return MESSAGE_FACTORY.getMessage("webserviceap.succeeded");
+    }
+
+    /**
+     * Success
+     *
+     */
+    public static String WEBSERVICEAP_SUCCEEDED() {
+        return LOCALIZER.localize(localizableWEBSERVICEAP_SUCCEEDED());
+    }
+
+    public static Localizable localizableWEBSERVICEAP_ERROR(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("webserviceap.error", arg0);
+    }
+
+    /**
+     * error: {0}
+     *
+     */
+    public static String WEBSERVICEAP_ERROR(Object arg0) {
+        return LOCALIZER.localize(localizableWEBSERVICEAP_ERROR(arg0));
+    }
+
+    public static Localizable localizableWEBSERVICEAP_COULD_NOT_FIND_HANDLERCHAIN(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("webserviceap.could.not.find.handlerchain", arg0, arg1);
+    }
+
+    /**
+     * Could not find the handlerchain {0} in the handler file {1}
+     *
+     */
+    public static String WEBSERVICEAP_COULD_NOT_FIND_HANDLERCHAIN(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableWEBSERVICEAP_COULD_NOT_FIND_HANDLERCHAIN(arg0, arg1));
+    }
+
+    public static Localizable localizableWEBSERVICEAP_ENDPOINTINTERFACE_CLASS_NOT_FOUND(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("webserviceap.endpointinterface.class.not.found", arg0);
+    }
+
+    /**
+     * The endpointInterface class {0} could not be found
+     *
+     */
+    public static String WEBSERVICEAP_ENDPOINTINTERFACE_CLASS_NOT_FOUND(Object arg0) {
+        return LOCALIZER.localize(localizableWEBSERVICEAP_ENDPOINTINTERFACE_CLASS_NOT_FOUND(arg0));
+    }
+
+    public static Localizable localizableWEBSERVICEAP_METHOD_RETURN_TYPE_CANNOT_IMPLEMENT_REMOTE(Object arg0, Object arg1, Object arg2) {
+        return MESSAGE_FACTORY.getMessage("webserviceap.method.return.type.cannot.implement.remote", arg0, arg1, arg2);
+    }
+
+    /**
+     * Method return types cannot implement java.rmi.Remote.  Class: {0} method: {1} return type: {2}
+     *
+     */
+    public static String WEBSERVICEAP_METHOD_RETURN_TYPE_CANNOT_IMPLEMENT_REMOTE(Object arg0, Object arg1, Object arg2) {
+        return LOCALIZER.localize(localizableWEBSERVICEAP_METHOD_RETURN_TYPE_CANNOT_IMPLEMENT_REMOTE(arg0, arg1, arg2));
+    }
+
+    public static Localizable localizableWEBSERVICEAP_WEBSERVICE_METHOD_IS_STATIC_OR_FINAL(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("webserviceap.webservice.method.is.static.or.final", arg0, arg1);
+    }
+
+    /**
+     * Method annotated with @javax.jws.WebMethod must not be static or final. Class: {0} Method: {1}
+     *
+     */
+    public static String WEBSERVICEAP_WEBSERVICE_METHOD_IS_STATIC_OR_FINAL(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableWEBSERVICEAP_WEBSERVICE_METHOD_IS_STATIC_OR_FINAL(arg0, arg1));
+    }
+
+    public static Localizable localizableWEBSERVICEAP_INVALID_SEI_ANNOTATION(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("webserviceap.invalid.sei.annotation", arg0, arg1);
+    }
+
+    /**
+     * The @{0} annotation cannot be used on a service endpoint interface. Class: {1}
+     *
+     */
+    public static String WEBSERVICEAP_INVALID_SEI_ANNOTATION(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableWEBSERVICEAP_INVALID_SEI_ANNOTATION(arg0, arg1));
+    }
+
+    public static Localizable localizableWEBSERVICEAP_WEBSERVICE_NO_DEFAULT_CONSTRUCTOR(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("webserviceap.webservice.no.default.constructor", arg0);
+    }
+
+    /**
+     * Classes annotated with @javax.jws.WebService must have a public default constructor. Class: {0}
+     *
+     */
+    public static String WEBSERVICEAP_WEBSERVICE_NO_DEFAULT_CONSTRUCTOR(Object arg0) {
+        return LOCALIZER.localize(localizableWEBSERVICEAP_WEBSERVICE_NO_DEFAULT_CONSTRUCTOR(arg0));
+    }
+
+    public static Localizable localizableWEBSERVICEAP_DOC_BARE_NO_RETURN_AND_NO_OUT(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("webserviceap.doc.bare.no.return.and.no.out", arg0, arg1);
+    }
+
+    /**
+     * Document literal bare methods that do not have a return value must have a single OUT/INOUT parameter.  Class: {0} Method: {1}
+     *
+     */
+    public static String WEBSERVICEAP_DOC_BARE_NO_RETURN_AND_NO_OUT(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableWEBSERVICEAP_DOC_BARE_NO_RETURN_AND_NO_OUT(arg0, arg1));
+    }
+
+    public static Localizable localizableWEBSERVICEAP_METHOD_EXCEPTION_BEAN_NAME_NOT_UNIQUE(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("webserviceap.method.exception.bean.name.not.unique", arg0, arg1);
+    }
+
+    /**
+     * Exception bean names must be unique and must not clash with other generated classes.  Class: {0} exception {1}
+     *
+     */
+    public static String WEBSERVICEAP_METHOD_EXCEPTION_BEAN_NAME_NOT_UNIQUE(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableWEBSERVICEAP_METHOD_EXCEPTION_BEAN_NAME_NOT_UNIQUE(arg0, arg1));
+    }
+
+    public static Localizable localizableWEBSERVICEAP_DOC_BARE_NO_OUT(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("webserviceap.doc.bare.no.out", arg0, arg1);
+    }
+
+    /**
+     * Document/literal bare methods with no return type or OUT/INOUT parameters must be annotated as @Oneway. Class: {0}, method: {1}
+     *
+     */
+    public static String WEBSERVICEAP_DOC_BARE_NO_OUT(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableWEBSERVICEAP_DOC_BARE_NO_OUT(arg0, arg1));
+    }
+
+    public static Localizable localizableWEBSERVICEAP_FAILED_TO_FIND_HANDLERCHAIN_FILE(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("webserviceap.failed.to.find.handlerchain.file", arg0, arg1);
+    }
+
+    /**
+     * Cannot find HandlerChain file. class: {0}, file: {1}
+     *
+     */
+    public static String WEBSERVICEAP_FAILED_TO_FIND_HANDLERCHAIN_FILE(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableWEBSERVICEAP_FAILED_TO_FIND_HANDLERCHAIN_FILE(arg0, arg1));
     }
 
     public static Localizable localizableWEBSERVICEAP_ONEWAY_AND_NOT_ONE_IN(Object arg0, Object arg1) {
-        return messageFactory.getMessage("webserviceap.oneway.and.not.one.in", arg0, arg1);
+        return MESSAGE_FACTORY.getMessage("webserviceap.oneway.and.not.one.in", arg0, arg1);
     }
 
     /**
@@ -920,7 +316,618 @@
      *
      */
     public static String WEBSERVICEAP_ONEWAY_AND_NOT_ONE_IN(Object arg0, Object arg1) {
-        return localizer.localize(localizableWEBSERVICEAP_ONEWAY_AND_NOT_ONE_IN(arg0, arg1));
+        return LOCALIZER.localize(localizableWEBSERVICEAP_ONEWAY_AND_NOT_ONE_IN(arg0, arg1));
+    }
+
+    public static Localizable localizableWEBSERVICEAP_CLASS_NOT_FOUND(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("webserviceap.class.not.found", arg0);
+    }
+
+    /**
+     * Class Not Found: {0}
+     *
+     */
+    public static String WEBSERVICEAP_CLASS_NOT_FOUND(Object arg0) {
+        return LOCALIZER.localize(localizableWEBSERVICEAP_CLASS_NOT_FOUND(arg0));
+    }
+
+    public static Localizable localizableWEBSERVICEAP_METHOD_PARAMETER_TYPES_CANNOT_IMPLEMENT_REMOTE(Object arg0, Object arg1, Object arg2, Object arg3) {
+        return MESSAGE_FACTORY.getMessage("webserviceap.method.parameter.types.cannot.implement.remote", arg0, arg1, arg2, arg3);
+    }
+
+    /**
+     * Method parameter types cannot implement java.rmi.Remote.  Class: {0} method: {1} parameter: {2} type: {3}
+     *
+     */
+    public static String WEBSERVICEAP_METHOD_PARAMETER_TYPES_CANNOT_IMPLEMENT_REMOTE(Object arg0, Object arg1, Object arg2, Object arg3) {
+        return LOCALIZER.localize(localizableWEBSERVICEAP_METHOD_PARAMETER_TYPES_CANNOT_IMPLEMENT_REMOTE(arg0, arg1, arg2, arg3));
+    }
+
+    public static Localizable localizableWEBSERVICEAP_NON_IN_PARAMETERS_MUST_BE_HOLDER(Object arg0, Object arg1, Object arg2) {
+        return MESSAGE_FACTORY.getMessage("webserviceap.non.in.parameters.must.be.holder", arg0, arg1, arg2);
+    }
+
+    /**
+     * Class: {0}, method: {1}, parameter: {2} is not WebParam.Mode.IN and is not of type javax.xml.ws.Holder.
+     *
+     */
+    public static String WEBSERVICEAP_NON_IN_PARAMETERS_MUST_BE_HOLDER(Object arg0, Object arg1, Object arg2) {
+        return LOCALIZER.localize(localizableWEBSERVICEAP_NON_IN_PARAMETERS_MUST_BE_HOLDER(arg0, arg1, arg2));
+    }
+
+    public static Localizable localizableWEBSERVICEAP_INIT_PARAM_FORMAT_ERROR() {
+        return MESSAGE_FACTORY.getMessage("webserviceap.init_param.format.error");
+    }
+
+    /**
+     * a <init-param> element must have exactly 1 <param-name> and 1 <param-value>
+     *
+     */
+    public static String WEBSERVICEAP_INIT_PARAM_FORMAT_ERROR() {
+        return LOCALIZER.localize(localizableWEBSERVICEAP_INIT_PARAM_FORMAT_ERROR());
+    }
+
+    public static Localizable localizableWEBSERVICEAP_DOCUMENT_LITERAL_BARE_MUST_HAVE_ONE_IN_OR_OUT(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("webserviceap.document.literal.bare.must.have.one.in.or.out", arg0, arg1);
+    }
+
+    /**
+     * Document literal bare methods must have at least one of: a return, an in parameter or an out parameter.  Class: {0} Method: {1}
+     *
+     */
+    public static String WEBSERVICEAP_DOCUMENT_LITERAL_BARE_MUST_HAVE_ONE_IN_OR_OUT(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableWEBSERVICEAP_DOCUMENT_LITERAL_BARE_MUST_HAVE_ONE_IN_OR_OUT(arg0, arg1));
+    }
+
+    public static Localizable localizableWEBSERVICEAP_ONEWAY_OPERATION_CANNOT_HAVE_HOLDERS(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("webserviceap.oneway.operation.cannot.have.holders", arg0, arg1);
+    }
+
+    /**
+     * The method {1} of class {0} is annotated @Oneway but contains INOUT or OUT parameters (javax.xml.ws.Holder)
+     *
+     */
+    public static String WEBSERVICEAP_ONEWAY_OPERATION_CANNOT_HAVE_HOLDERS(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableWEBSERVICEAP_ONEWAY_OPERATION_CANNOT_HAVE_HOLDERS(arg0, arg1));
+    }
+
+    public static Localizable localizableWEBSERVICEAP_ENDPOINTINTEFACE_PLUS_ELEMENT(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("webserviceap.endpointinteface.plus.element", arg0);
+    }
+
+    /**
+     * The @javax.jws.WebService.{0} element cannot be used in with @javax.jws.WebService.endpointInterface element.
+     *
+     */
+    public static String WEBSERVICEAP_ENDPOINTINTEFACE_PLUS_ELEMENT(Object arg0) {
+        return LOCALIZER.localize(localizableWEBSERVICEAP_ENDPOINTINTEFACE_PLUS_ELEMENT(arg0));
+    }
+
+    public static Localizable localizableWEBSERVICEAP_INVALID_SEI_ANNOTATION_ELEMENT(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("webserviceap.invalid.sei.annotation.element", arg0, arg1);
+    }
+
+    /**
+     * The @javax.jws.WebService.{0} element cannot be specified on a service endpoint interface. Class: {1}
+     *
+     */
+    public static String WEBSERVICEAP_INVALID_SEI_ANNOTATION_ELEMENT(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableWEBSERVICEAP_INVALID_SEI_ANNOTATION_ELEMENT(arg0, arg1));
+    }
+
+    public static Localizable localizableWEBSERVICEAP_HEADER_PARAMETERS_MUST_HAVE_WEBPARAM_NAME(Object arg0, Object arg1, Object arg2) {
+        return MESSAGE_FACTORY.getMessage("webserviceap.header.parameters.must.have.webparam.name", arg0, arg1, arg2);
+    }
+
+    /**
+     * All WebParam annotations on header parameters must specify a name.  Class: {0} method {1} parameter {2}
+     *
+     */
+    public static String WEBSERVICEAP_HEADER_PARAMETERS_MUST_HAVE_WEBPARAM_NAME(Object arg0, Object arg1, Object arg2) {
+        return LOCALIZER.localize(localizableWEBSERVICEAP_HEADER_PARAMETERS_MUST_HAVE_WEBPARAM_NAME(arg0, arg1, arg2));
+    }
+
+    public static Localizable localizableWEBSERVICEAP_FILE_NOT_FOUND(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("webserviceap.fileNotFound", arg0);
+    }
+
+    /**
+     * error: file not found: {0}
+     *
+     */
+    public static String WEBSERVICEAP_FILE_NOT_FOUND(Object arg0) {
+        return LOCALIZER.localize(localizableWEBSERVICEAP_FILE_NOT_FOUND(arg0));
+    }
+
+    public static Localizable localizableWEBSERVICEAP_METHOD_NOT_ANNOTATED(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("webserviceap.method.not.annotated", arg0, arg1);
+    }
+
+    /**
+     * The method {0} on class {1} is not annotated.
+     *
+     */
+    public static String WEBSERVICEAP_METHOD_NOT_ANNOTATED(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableWEBSERVICEAP_METHOD_NOT_ANNOTATED(arg0, arg1));
+    }
+
+    public static Localizable localizableWEBSERVICEAP_ENDPOINTINTERFACE_HAS_NO_WEBSERVICE_ANNOTATION(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("webserviceap.endpointinterface.has.no.webservice.annotation", arg0);
+    }
+
+    /**
+     * The endpoint interface {0} must have a WebService annotation
+     *
+     */
+    public static String WEBSERVICEAP_ENDPOINTINTERFACE_HAS_NO_WEBSERVICE_ANNOTATION(Object arg0) {
+        return LOCALIZER.localize(localizableWEBSERVICEAP_ENDPOINTINTERFACE_HAS_NO_WEBSERVICE_ANNOTATION(arg0));
+    }
+
+    public static Localizable localizableWEBSERVICEAP_RPC_LITERAL_WEBPARAMS_MUST_SPECIFY_NAME(Object arg0, Object arg1, Object arg2) {
+        return MESSAGE_FACTORY.getMessage("webserviceap.rpc.literal.webparams.must.specify.name", arg0, arg1, arg2);
+    }
+
+    /**
+     * All RPC literal WebParams must specify a name.  Class: {0} method {1} parameter {2}
+     *
+     */
+    public static String WEBSERVICEAP_RPC_LITERAL_WEBPARAMS_MUST_SPECIFY_NAME(Object arg0, Object arg1, Object arg2) {
+        return LOCALIZER.localize(localizableWEBSERVICEAP_RPC_LITERAL_WEBPARAMS_MUST_SPECIFY_NAME(arg0, arg1, arg2));
+    }
+
+    public static Localizable localizableWEBSERVICEAP_DOCUMENT_LITERAL_BARE_METHOD_NOT_UNIQUE(Object arg0, Object arg1, Object arg2) {
+        return MESSAGE_FACTORY.getMessage("webserviceap.document.literal.bare.method.not.unique", arg0, arg1, arg2);
+    }
+
+    /**
+     * Document literal bare methods must have unique parameter names.  Class: {0} method: {1} parameter name: {2}
+     *
+     */
+    public static String WEBSERVICEAP_DOCUMENT_LITERAL_BARE_METHOD_NOT_UNIQUE(Object arg0, Object arg1, Object arg2) {
+        return LOCALIZER.localize(localizableWEBSERVICEAP_DOCUMENT_LITERAL_BARE_METHOD_NOT_UNIQUE(arg0, arg1, arg2));
+    }
+
+    public static Localizable localizableWEBSERVICEAP_RPC_LITERAL_MUST_NOT_BE_BARE(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("webserviceap.rpc.literal.must.not.be.bare", arg0);
+    }
+
+    /**
+     * RPC literal SOAPBindings must have parameterStyle WRAPPED. Class: {0}.
+     *
+     */
+    public static String WEBSERVICEAP_RPC_LITERAL_MUST_NOT_BE_BARE(Object arg0) {
+        return LOCALIZER.localize(localizableWEBSERVICEAP_RPC_LITERAL_MUST_NOT_BE_BARE(arg0));
+    }
+
+    public static Localizable localizableWEBSERVICEAP_ONEWAY_OPERATION_CANNOT_DECLARE_EXCEPTIONS(Object arg0, Object arg1, Object arg2) {
+        return MESSAGE_FACTORY.getMessage("webserviceap.oneway.operation.cannot.declare.exceptions", arg0, arg1, arg2);
+    }
+
+    /**
+     * The method {1} of class {0} is annotated @Oneway but declares the exception {2}
+     *
+     */
+    public static String WEBSERVICEAP_ONEWAY_OPERATION_CANNOT_DECLARE_EXCEPTIONS(Object arg0, Object arg1, Object arg2) {
+        return LOCALIZER.localize(localizableWEBSERVICEAP_ONEWAY_OPERATION_CANNOT_DECLARE_EXCEPTIONS(arg0, arg1, arg2));
+    }
+
+    public static Localizable localizableWEBSERVICEAP_DOCUMENT_LITERAL_BARE_METHOD_RETURN_NOT_UNIQUE(Object arg0, Object arg1, Object arg2, Object arg3) {
+        return MESSAGE_FACTORY.getMessage("webserviceap.document.literal.bare.method.return.not.unique", arg0, arg1, arg2, arg3);
+    }
+
+    /**
+     * Document literal bare methods must have a unique result name return type combination.  Class {0} method: {1}, result name: {2} return type: {3}
+     *
+     */
+    public static String WEBSERVICEAP_DOCUMENT_LITERAL_BARE_METHOD_RETURN_NOT_UNIQUE(Object arg0, Object arg1, Object arg2, Object arg3) {
+        return LOCALIZER.localize(localizableWEBSERVICEAP_DOCUMENT_LITERAL_BARE_METHOD_RETURN_NOT_UNIQUE(arg0, arg1, arg2, arg3));
+    }
+
+    public static Localizable localizableWEBSERVICEAP_ONEWAY_OPERATION_CANNOT_HAVE_RETURN_TYPE(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("webserviceap.oneway.operation.cannot.have.return.type", arg0, arg1);
+    }
+
+    /**
+     * The method {1} of class {0} is annotated @Oneway but has a return type.
+     *
+     */
+    public static String WEBSERVICEAP_ONEWAY_OPERATION_CANNOT_HAVE_RETURN_TYPE(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableWEBSERVICEAP_ONEWAY_OPERATION_CANNOT_HAVE_RETURN_TYPE(arg0, arg1));
+    }
+
+    public static Localizable localizableWEBSERVICEAP_NO_WEBSERVICE_ENDPOINT_FOUND() {
+        return MESSAGE_FACTORY.getMessage("webserviceap.no.webservice.endpoint.found");
+    }
+
+    /**
+     * A web service endpoint could not be found
+     *
+     */
+    public static String WEBSERVICEAP_NO_WEBSERVICE_ENDPOINT_FOUND() {
+        return LOCALIZER.localize(localizableWEBSERVICEAP_NO_WEBSERVICE_ENDPOINT_FOUND());
+    }
+
+    public static Localizable localizableWEBSERVICEAP_ONEWAY_AND_OUT(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("webserviceap.oneway.and.out", arg0, arg1);
+    }
+
+    /**
+     * @Oneway methods cannot have out parameters. Class: {0} method {1}
+     *
+     */
+    public static String WEBSERVICEAP_ONEWAY_AND_OUT(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableWEBSERVICEAP_ONEWAY_AND_OUT(arg0, arg1));
+    }
+
+    public static Localizable localizableWEBSERVICEAP_CANNOT_COMBINE_HANDLERCHAIN_SOAPMESSAGEHANDLERS() {
+        return MESSAGE_FACTORY.getMessage("webserviceap.cannot.combine.handlerchain.soapmessagehandlers");
+    }
+
+    /**
+     * You cannot specify both HanlderChain and SOAPMessageHandlers annotations
+     *
+     */
+    public static String WEBSERVICEAP_CANNOT_COMBINE_HANDLERCHAIN_SOAPMESSAGEHANDLERS() {
+        return LOCALIZER.localize(localizableWEBSERVICEAP_CANNOT_COMBINE_HANDLERCHAIN_SOAPMESSAGEHANDLERS());
+    }
+
+    public static Localizable localizableWEBSERVICEAP_WEBSERVICE_CLASS_IS_INNERCLASS_NOT_STATIC(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("webserviceap.webservice.class.is.innerclass.not.static", arg0);
+    }
+
+    /**
+     * Inner classes annotated with @javax.jws.WebService must be static. Class: {0}
+     *
+     */
+    public static String WEBSERVICEAP_WEBSERVICE_CLASS_IS_INNERCLASS_NOT_STATIC(Object arg0) {
+        return LOCALIZER.localize(localizableWEBSERVICEAP_WEBSERVICE_CLASS_IS_INNERCLASS_NOT_STATIC(arg0));
+    }
+
+    public static Localizable localizableWEBSERVICEAP_INFO(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("webserviceap.info", arg0);
+    }
+
+    /**
+     * info: {0}
+     *
+     */
+    public static String WEBSERVICEAP_INFO(Object arg0) {
+        return LOCALIZER.localize(localizableWEBSERVICEAP_INFO(arg0));
+    }
+
+    public static Localizable localizableWEBSERVICEAP_JAVA_TYPE_NOT_FOUND(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("webserviceap.java.typeNotFound", arg0);
+    }
+
+    /**
+     * The type: {0} was not found in the mapping
+     *
+     */
+    public static String WEBSERVICEAP_JAVA_TYPE_NOT_FOUND(Object arg0) {
+        return LOCALIZER.localize(localizableWEBSERVICEAP_JAVA_TYPE_NOT_FOUND(arg0));
+    }
+
+    public static Localizable localizableWEBSERVICEAP_RPC_SOAPBINDING_NOT_ALLOWED_ON_METHOD(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("webserviceap.rpc.soapbinding.not.allowed.on.method", arg0, arg1);
+    }
+
+    /**
+     * SOAPBinding.Style.RPC binding annotations are not allowed on methods.  Class: {0} Method: {1}
+     *
+     */
+    public static String WEBSERVICEAP_RPC_SOAPBINDING_NOT_ALLOWED_ON_METHOD(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableWEBSERVICEAP_RPC_SOAPBINDING_NOT_ALLOWED_ON_METHOD(arg0, arg1));
+    }
+
+    public static Localizable localizableWEBSERVICEAP_COULD_NOT_FIND_TYPEDECL(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("webserviceap.could.not.find.typedecl", arg0, arg1);
+    }
+
+    /**
+     * Could not get TypeElement for: {0} in annotation processing round: {1}
+     *
+     */
+    public static String WEBSERVICEAP_COULD_NOT_FIND_TYPEDECL(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableWEBSERVICEAP_COULD_NOT_FIND_TYPEDECL(arg0, arg1));
+    }
+
+    public static Localizable localizableWEBSERVICEAP_ENDPOINTINTERFACES_DO_NOT_MATCH(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("webserviceap.endpointinterfaces.do.not.match", arg0, arg1);
+    }
+
+    /**
+     * The endpoint interface {0} does not match the interface {1}.
+     *
+     */
+    public static String WEBSERVICEAP_ENDPOINTINTERFACES_DO_NOT_MATCH(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableWEBSERVICEAP_ENDPOINTINTERFACES_DO_NOT_MATCH(arg0, arg1));
+    }
+
+    public static Localizable localizableWEBSERVICEAP_METHOD_RESPONSE_WRAPPER_BEAN_NAME_NOT_UNIQUE(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("webserviceap.method.response.wrapper.bean.name.not.unique", arg0, arg1);
+    }
+
+    /**
+     * Response wrapper bean names must be unique and must not clash with other generated classes.  Class: {0} method {1}
+     *
+     */
+    public static String WEBSERVICEAP_METHOD_RESPONSE_WRAPPER_BEAN_NAME_NOT_UNIQUE(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableWEBSERVICEAP_METHOD_RESPONSE_WRAPPER_BEAN_NAME_NOT_UNIQUE(arg0, arg1));
+    }
+
+    public static Localizable localizableWEBSERVICEAP_DOCUMENT_LITERAL_BARE_CANNOT_HAVE_MORE_THAN_ONE_OUT(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("webserviceap.document.literal.bare.cannot.have.more.than.one.out", arg0, arg1);
+    }
+
+    /**
+     * Document literal bare methods must have a return value or one out parameter.  Class: {0} Method: {1}
+     *
+     */
+    public static String WEBSERVICEAP_DOCUMENT_LITERAL_BARE_CANNOT_HAVE_MORE_THAN_ONE_OUT(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableWEBSERVICEAP_DOCUMENT_LITERAL_BARE_CANNOT_HAVE_MORE_THAN_ONE_OUT(arg0, arg1));
+    }
+
+    public static Localizable localizableWEBSERVICE_ENCODED_NOT_SUPPORTED(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("webservice.encoded.not.supported", arg0, arg1);
+    }
+
+    /**
+     * The {0} class has invalid SOAPBinding annotation. {1}/encoded SOAPBinding is not supported
+     *
+     */
+    public static String WEBSERVICE_ENCODED_NOT_SUPPORTED(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableWEBSERVICE_ENCODED_NOT_SUPPORTED(arg0, arg1));
+    }
+
+    public static Localizable localizableWEBSERVICEAP_OPERATION_NAME_NOT_UNIQUE(Object arg0, Object arg1, Object arg2) {
+        return MESSAGE_FACTORY.getMessage("webserviceap.operation.name.not.unique", arg0, arg1, arg2);
+    }
+
+    /**
+     * Operation names must be unique.  Class: {0} method: {1} operation name: {2}
+     *
+     */
+    public static String WEBSERVICEAP_OPERATION_NAME_NOT_UNIQUE(Object arg0, Object arg1, Object arg2) {
+        return LOCALIZER.localize(localizableWEBSERVICEAP_OPERATION_NAME_NOT_UNIQUE(arg0, arg1, arg2));
+    }
+
+    public static Localizable localizableWEBSERVICEAP_INVALID_HANDLERCHAIN_FILE_NOHANDLER_CONFIG(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("webserviceap.invalid.handlerchain.file.nohandler-config", arg0);
+    }
+
+    /**
+     * The handlerchain file {0} is invalid, it does not contain a handler-config element
+     *
+     */
+    public static String WEBSERVICEAP_INVALID_HANDLERCHAIN_FILE_NOHANDLER_CONFIG(Object arg0) {
+        return LOCALIZER.localize(localizableWEBSERVICEAP_INVALID_HANDLERCHAIN_FILE_NOHANDLER_CONFIG(arg0));
+    }
+
+    public static Localizable localizableWEBSERVICEAP_METHOD_REQUEST_WRAPPER_BEAN_NAME_NOT_UNIQUE(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("webserviceap.method.request.wrapper.bean.name.not.unique", arg0, arg1);
+    }
+
+    /**
+     * Request wrapper bean names must be unique and must not clash with other generated classes.  Class: {0} method {1}
+     *
+     */
+    public static String WEBSERVICEAP_METHOD_REQUEST_WRAPPER_BEAN_NAME_NOT_UNIQUE(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableWEBSERVICEAP_METHOD_REQUEST_WRAPPER_BEAN_NAME_NOT_UNIQUE(arg0, arg1));
+    }
+
+    public static Localizable localizableWEBSERVICEAP_MODEL_ALREADY_EXISTS() {
+        return MESSAGE_FACTORY.getMessage("webserviceap.model.already.exists");
+    }
+
+    /**
+     * model already exists
+     *
+     */
+    public static String WEBSERVICEAP_MODEL_ALREADY_EXISTS() {
+        return LOCALIZER.localize(localizableWEBSERVICEAP_MODEL_ALREADY_EXISTS());
+    }
+
+    public static Localizable localizableWEBSERVICEAP_INVALID_SOAPBINDING_PARAMETERSTYLE(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("webserviceap.invalid.soapbinding.parameterstyle", arg0, arg1);
+    }
+
+    /**
+     * Incorrect usage of Annotation {0} on {1}, ParameterStyle can only be WRAPPED with RPC Style Web service.
+     *
+     */
+    public static String WEBSERVICEAP_INVALID_SOAPBINDING_PARAMETERSTYLE(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableWEBSERVICEAP_INVALID_SOAPBINDING_PARAMETERSTYLE(arg0, arg1));
+    }
+
+    public static Localizable localizableWEBSERVICEAP_RPC_LITERAL_PARAMETERS_MUST_HAVE_WEBPARAM(Object arg0, Object arg1, Object arg2) {
+        return MESSAGE_FACTORY.getMessage("webserviceap.rpc.literal.parameters.must.have.webparam", arg0, arg1, arg2);
+    }
+
+    /**
+     * All RPC literal parameters must have a WebParam annotation.  Class: {0} method: {1} parameter {2}
+     *
+     */
+    public static String WEBSERVICEAP_RPC_LITERAL_PARAMETERS_MUST_HAVE_WEBPARAM(Object arg0, Object arg1, Object arg2) {
+        return LOCALIZER.localize(localizableWEBSERVICEAP_RPC_LITERAL_PARAMETERS_MUST_HAVE_WEBPARAM(arg0, arg1, arg2));
+    }
+
+    public static Localizable localizableWEBSERVICEAP_PARSING_JAVAC_OPTIONS_ERROR() {
+        return MESSAGE_FACTORY.getMessage("webserviceap.parsing.javac.options.error");
+    }
+
+    /**
+     * Can't get javac options from processingEnv.
+     *
+     */
+    public static String WEBSERVICEAP_PARSING_JAVAC_OPTIONS_ERROR() {
+        return LOCALIZER.localize(localizableWEBSERVICEAP_PARSING_JAVAC_OPTIONS_ERROR());
+    }
+
+    public static Localizable localizableWEBSERVICEAP_WEBSERVICE_CLASS_IS_ABSTRACT(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("webserviceap.webservice.class.is.abstract", arg0);
+    }
+
+    /**
+     * Classes annotated with @javax.jws.WebService must not be abstract. Class: {0}
+     *
+     */
+    public static String WEBSERVICEAP_WEBSERVICE_CLASS_IS_ABSTRACT(Object arg0) {
+        return LOCALIZER.localize(localizableWEBSERVICEAP_WEBSERVICE_CLASS_IS_ABSTRACT(arg0));
+    }
+
+    public static Localizable localizableWEBSERVICEAP_METHOD_NOT_IMPLEMENTED(Object arg0, Object arg1, Object arg2) {
+        return MESSAGE_FACTORY.getMessage("webserviceap.method.not.implemented", arg0, arg1, arg2);
+    }
+
+    /**
+     * Methods in an endpointInterface must be implemented in the implementation class.  Interface Class:{0} Implementation Class:{1} Method: {2}
+     *
+     */
+    public static String WEBSERVICEAP_METHOD_NOT_IMPLEMENTED(Object arg0, Object arg1, Object arg2) {
+        return LOCALIZER.localize(localizableWEBSERVICEAP_METHOD_NOT_IMPLEMENTED(arg0, arg1, arg2));
+    }
+
+    public static Localizable localizableWEBSERVICEAP_ENDPOINTINTEFACE_PLUS_ANNOTATION(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("webserviceap.endpointinteface.plus.annotation", arg0);
+    }
+
+    /**
+     * The @{0} annotation cannot be used in with @javax.jws.WebService.endpointInterface element.
+     *
+     */
+    public static String WEBSERVICEAP_ENDPOINTINTEFACE_PLUS_ANNOTATION(Object arg0) {
+        return LOCALIZER.localize(localizableWEBSERVICEAP_ENDPOINTINTEFACE_PLUS_ANNOTATION(arg0));
+    }
+
+    public static Localizable localizableWEBSERVICEAP_RPC_ENCODED_NOT_SUPPORTED(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("webserviceap.rpc.encoded.not.supported", arg0);
+    }
+
+    /**
+     * The class {0} has a rpc/encoded SOAPBinding.  Rpc/encoded SOAPBindings are not supported in JAXWS 2.0.
+     *
+     */
+    public static String WEBSERVICEAP_RPC_ENCODED_NOT_SUPPORTED(Object arg0) {
+        return LOCALIZER.localize(localizableWEBSERVICEAP_RPC_ENCODED_NOT_SUPPORTED(arg0));
+    }
+
+    public static Localizable localizableWEBSERVICEAP_SEI_CANNOT_CONTAIN_CONSTANT_VALUES(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("webserviceap.sei.cannot.contain.constant.values", arg0, arg1);
+    }
+
+    /**
+     * A service endpoint interface cannot contain constant declaration: Interface: {0} field: {1}.
+     *
+     */
+    public static String WEBSERVICEAP_SEI_CANNOT_CONTAIN_CONSTANT_VALUES(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableWEBSERVICEAP_SEI_CANNOT_CONTAIN_CONSTANT_VALUES(arg0, arg1));
+    }
+
+    public static Localizable localizableWEBSERVICEAP_HOLDER_PARAMETERS_MUST_NOT_BE_IN_ONLY(Object arg0, Object arg1, Object arg2) {
+        return MESSAGE_FACTORY.getMessage("webserviceap.holder.parameters.must.not.be.in.only", arg0, arg1, arg2);
+    }
+
+    /**
+     * javax.xml.ws.Holder parameters must not be annotated with the WebParam.Mode.IN property.  Class: {0} method: {1} parameter: {2}
+     *
+     */
+    public static String WEBSERVICEAP_HOLDER_PARAMETERS_MUST_NOT_BE_IN_ONLY(Object arg0, Object arg1, Object arg2) {
+        return LOCALIZER.localize(localizableWEBSERVICEAP_HOLDER_PARAMETERS_MUST_NOT_BE_IN_ONLY(arg0, arg1, arg2));
+    }
+
+    public static Localizable localizableWEBSERVICEAP_INVALID_SEI_ANNOTATION_ELEMENT_EXCLUDE(Object arg0, Object arg1, Object arg2) {
+        return MESSAGE_FACTORY.getMessage("webserviceap.invalid.sei.annotation.element.exclude", arg0, arg1, arg2);
+    }
+
+    /**
+     * The @javax.jws.WebMethod({0}) cannot be used on a service endpoint interface. Class: {1} method: {2}
+     *
+     */
+    public static String WEBSERVICEAP_INVALID_SEI_ANNOTATION_ELEMENT_EXCLUDE(Object arg0, Object arg1, Object arg2) {
+        return LOCALIZER.localize(localizableWEBSERVICEAP_INVALID_SEI_ANNOTATION_ELEMENT_EXCLUDE(arg0, arg1, arg2));
+    }
+
+    public static Localizable localizableWEBSERVICEAP_WEBSERVICE_CLASS_NOT_PUBLIC(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("webserviceap.webservice.class.not.public", arg0);
+    }
+
+    /**
+     * Classes annotated with @javax.jws.WebService must be public. Class: {0}
+     *
+     */
+    public static String WEBSERVICEAP_WEBSERVICE_CLASS_NOT_PUBLIC(Object arg0) {
+        return LOCALIZER.localize(localizableWEBSERVICEAP_WEBSERVICE_CLASS_NOT_PUBLIC(arg0));
+    }
+
+    public static Localizable localizableWEBSERVICEAP_WEBSERVICE_CLASS_IS_FINAL(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("webserviceap.webservice.class.is.final", arg0);
+    }
+
+    /**
+     * Classes annotated with @javax.jws.WebService must not be final. Class: {0}
+     *
+     */
+    public static String WEBSERVICEAP_WEBSERVICE_CLASS_IS_FINAL(Object arg0) {
+        return LOCALIZER.localize(localizableWEBSERVICEAP_WEBSERVICE_CLASS_IS_FINAL(arg0));
+    }
+
+    public static Localizable localizableWEBSERVICEAP_INVALID_WEBMETHOD_ELEMENT_WITH_EXCLUDE(Object arg0, Object arg1, Object arg2) {
+        return MESSAGE_FACTORY.getMessage("webserviceap.invalid.webmethod.element.with.exclude", arg0, arg1, arg2);
+    }
+
+    /**
+     * The @javax.jws.WebMethod.{0} element cannot be specified with the @javax.jws.WebMethod.exclude element. Class: {1} method: {2}
+     *
+     */
+    public static String WEBSERVICEAP_INVALID_WEBMETHOD_ELEMENT_WITH_EXCLUDE(Object arg0, Object arg1, Object arg2) {
+        return LOCALIZER.localize(localizableWEBSERVICEAP_INVALID_WEBMETHOD_ELEMENT_WITH_EXCLUDE(arg0, arg1, arg2));
+    }
+
+    public static Localizable localizableWEBSERVICEAP_WARNING(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("webserviceap.warning", arg0);
+    }
+
+    /**
+     * warning: {0}
+     *
+     */
+    public static String WEBSERVICEAP_WARNING(Object arg0) {
+        return LOCALIZER.localize(localizableWEBSERVICEAP_WARNING(arg0));
+    }
+
+    public static Localizable localizableWEBSERVICEAP_FAILED_TO_PARSE_HANDLERCHAIN_FILE(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("webserviceap.failed.to.parse.handlerchain.file", arg0, arg1);
+    }
+
+    /**
+     * Failed to parse HandlerChain file. Class: {0}, file: {1}
+     *
+     */
+    public static String WEBSERVICEAP_FAILED_TO_PARSE_HANDLERCHAIN_FILE(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableWEBSERVICEAP_FAILED_TO_PARSE_HANDLERCHAIN_FILE(arg0, arg1));
+    }
+
+    public static Localizable localizableWEBSERVICEAP_HANDLERCLASS_NOTSPECIFIED(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("webserviceap.handlerclass.notspecified", arg0);
+    }
+
+    /**
+     * A handler in the HandlerChain file: {0} does not specify a handler-class
+     *
+     */
+    public static String WEBSERVICEAP_HANDLERCLASS_NOTSPECIFIED(Object arg0) {
+        return LOCALIZER.localize(localizableWEBSERVICEAP_HANDLERCLASS_NOTSPECIFIED(arg0));
+    }
+
+    private static class BundleSupplier
+        implements ResourceBundleSupplier
+    {
+
+
+        public ResourceBundle getResourceBundle(Locale locale) {
+            return ResourceBundle.getBundle(BUNDLE_NAME, locale);
+        }
+
     }
 
 }
diff --git a/src/jdk.xml.ws/share/classes/com/sun/tools/internal/ws/resources/WscompileMessages.java b/src/jdk.xml.ws/share/classes/com/sun/tools/internal/ws/resources/WscompileMessages.java
index f186c7b..35845d5 100644
--- a/src/jdk.xml.ws/share/classes/com/sun/tools/internal/ws/resources/WscompileMessages.java
+++ b/src/jdk.xml.ws/share/classes/com/sun/tools/internal/ws/resources/WscompileMessages.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,12 +25,12 @@
 
 package com.sun.tools.internal.ws.resources;
 
-import com.sun.istack.internal.localization.Localizable;
-import com.sun.istack.internal.localization.LocalizableMessageFactory;
-import com.sun.istack.internal.localization.Localizer;
-
 import java.util.Locale;
 import java.util.ResourceBundle;
+import com.sun.istack.internal.localization.Localizable;
+import com.sun.istack.internal.localization.LocalizableMessageFactory;
+import com.sun.istack.internal.localization.LocalizableMessageFactory.ResourceBundleSupplier;
+import com.sun.istack.internal.localization.Localizer;
 
 
 /**
@@ -38,247 +38,25 @@
  *
  */
 public final class WscompileMessages {
+
     private final static String BUNDLE_NAME = "com.sun.tools.internal.ws.resources.wscompile";
-    private final static LocalizableMessageFactory messageFactory =
-        new LocalizableMessageFactory(BUNDLE_NAME, WscompileMessages::getResourceBundle);
-    private final static Localizer localizer = new Localizer();
+    private final static LocalizableMessageFactory MESSAGE_FACTORY = new LocalizableMessageFactory(BUNDLE_NAME, new WscompileMessages.BundleSupplier());
+    private final static Localizer LOCALIZER = new Localizer();
 
-    private static ResourceBundle getResourceBundle(Locale locale) {
-        return ResourceBundle.getBundle(BUNDLE_NAME, locale);
-    }
-
-    public static Localizable localizableWSIMPORT_ARCHIVING_ARTIFACTS(Object arg0) {
-        return messageFactory.getMessage("wsimport.archivingArtifacts", arg0);
+    public static Localizable localizableWSIMPORT_NOT_A_FILE_NOR_URL(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("wsimport.NotAFileNorURL", arg0);
     }
 
     /**
-     *
-     * Archiving the generated artifacts into {0}.
-     *
+     * "{0}" is neither a file name nor an URL
      *
      */
-    public static String WSIMPORT_ARCHIVING_ARTIFACTS(Object arg0) {
-        return localizer.localize(localizableWSIMPORT_ARCHIVING_ARTIFACTS(arg0));
-    }
-
-    public static Localizable localizableWSGEN_CLASS_MUST_BE_IMPLEMENTATION_CLASS(Object arg0) {
-        return messageFactory.getMessage("wsgen.class.must.be.implementation.class", arg0);
-    }
-
-    /**
-     * The class "{0}" is not an endpoint implementation class.
-     *
-     */
-    public static String WSGEN_CLASS_MUST_BE_IMPLEMENTATION_CLASS(Object arg0) {
-        return localizer.localize(localizableWSGEN_CLASS_MUST_BE_IMPLEMENTATION_CLASS(arg0));
-    }
-
-    public static Localizable localizableWSGEN_FULLVERSION(Object arg0) {
-        return messageFactory.getMessage("wsgen.fullversion", arg0);
-    }
-
-    /**
-     * wsgen full version "{0}"
-     *
-     */
-    public static String WSGEN_FULLVERSION(Object arg0) {
-        return localizer.localize(localizableWSGEN_FULLVERSION(arg0));
-    }
-
-    public static Localizable localizableWRAPPER_TASK_LOADING_INCORRECT_API(Object arg0, Object arg1, Object arg2) {
-        return messageFactory.getMessage("wrapperTask.loadingIncorrectApi", arg0, arg1, arg2);
-    }
-
-    /**
-     * You are loading JAX-WS {0} API from {1} but this tool requires JAX-WS {2} API.
-     *
-     */
-    public static String WRAPPER_TASK_LOADING_INCORRECT_API(Object arg0, Object arg1, Object arg2) {
-        return localizer.localize(localizableWRAPPER_TASK_LOADING_INCORRECT_API(arg0, arg1, arg2));
-    }
-
-    public static Localizable localizableWSIMPORT_WSDLLOCATION_CLIENTJAR() {
-        return messageFactory.getMessage("wsimport.wsdllocation.clientjar");
-    }
-
-    /**
-     * wsdlLocation cannot be specified when using clientJar option
-     *
-     */
-    public static String WSIMPORT_WSDLLOCATION_CLIENTJAR() {
-        return localizer.localize(localizableWSIMPORT_WSDLLOCATION_CLIENTJAR());
-    }
-
-    public static Localizable localizableWSIMPORT_VERSION(Object arg0) {
-        return messageFactory.getMessage("wsimport.version", arg0);
-    }
-
-    /**
-     * wsimport version "{0}"
-     *
-     */
-    public static String WSIMPORT_VERSION(Object arg0) {
-        return localizer.localize(localizableWSIMPORT_VERSION(arg0));
-    }
-
-    public static Localizable localizableWSGEN_CLASS_NOT_FOUND(Object arg0) {
-        return messageFactory.getMessage("wsgen.class.not.found", arg0);
-    }
-
-    /**
-     * Class not found: "{0}"
-     *
-     */
-    public static String WSGEN_CLASS_NOT_FOUND(Object arg0) {
-        return localizer.localize(localizableWSGEN_CLASS_NOT_FOUND(arg0));
-    }
-
-    public static Localizable localizableWSIMPORT_HTTP_REDIRECT(Object arg0, Object arg1) {
-        return messageFactory.getMessage("wsimport.httpRedirect", arg0, arg1);
-    }
-
-    /**
-     * Server returned HTTP Status code: "{0}", retrying with "{1}"
-     *
-     */
-    public static String WSIMPORT_HTTP_REDIRECT(Object arg0, Object arg1) {
-        return localizer.localize(localizableWSIMPORT_HTTP_REDIRECT(arg0, arg1));
-    }
-
-    public static Localizable localizableWSIMPORT_AUTH_INFO_NEEDED(Object arg0, Object arg1, Object arg2) {
-        return messageFactory.getMessage("wsimport.authInfoNeeded", arg0, arg1, arg2);
-    }
-
-    /**
-     * {0},  "{1}" needs authorization, please provide authorization file with read access at {2} or use -Xauthfile to give the authorization file and on each line provide authorization information using this format : http[s]://user:password@host:port//<url-path>
-     *
-     */
-    public static String WSIMPORT_AUTH_INFO_NEEDED(Object arg0, Object arg1, Object arg2) {
-        return localizer.localize(localizableWSIMPORT_AUTH_INFO_NEEDED(arg0, arg1, arg2));
-    }
-
-    public static Localizable localizableWSGEN_USAGE_EXAMPLES() {
-        return messageFactory.getMessage("wsgen.usage.examples");
-    }
-
-    /**
-     *
-     * Examples:
-     *   wsgen -cp . example.Stock
-     *   wsgen -cp . example.Stock -wsdl -servicename '{http://mynamespace}MyService'
-     *
-     *
-     */
-    public static String WSGEN_USAGE_EXAMPLES() {
-        return localizer.localize(localizableWSGEN_USAGE_EXAMPLES());
-    }
-
-    public static Localizable localizableWSIMPORT_FETCHING_METADATA() {
-        return messageFactory.getMessage("wsimport.fetchingMetadata");
-    }
-
-    /**
-     *
-     * Downloading the WSDL and associated metadata
-     *
-     *
-     */
-    public static String WSIMPORT_FETCHING_METADATA() {
-        return localizer.localize(localizableWSIMPORT_FETCHING_METADATA());
-    }
-
-    public static Localizable localizableWSGEN_INVALID_PROTOCOL(Object arg0, Object arg1) {
-        return messageFactory.getMessage("wsgen.invalid.protocol", arg0, arg1);
-    }
-
-    /**
-     * "{0}" is not a supported protocol.  Supported protocols include: {1}.
-     *
-     */
-    public static String WSGEN_INVALID_PROTOCOL(Object arg0, Object arg1) {
-        return localizer.localize(localizableWSGEN_INVALID_PROTOCOL(arg0, arg1));
-    }
-
-    public static Localizable localizableWSIMPORT_USAGE_EXAMPLES() {
-        return messageFactory.getMessage("wsimport.usage.examples");
-    }
-
-    /**
-     *
-     * Examples:
-     *   wsimport stock.wsdl -b stock.xml -b stock.xjb
-     *   wsimport -d generated http://example.org/stock?wsdl
-     *
-     *
-     */
-    public static String WSIMPORT_USAGE_EXAMPLES() {
-        return localizer.localize(localizableWSIMPORT_USAGE_EXAMPLES());
-    }
-
-    public static Localizable localizableINVOKER_NEED_ENDORSED(Object arg0, Object arg1) {
-        return messageFactory.getMessage("invoker.needEndorsed", arg0, arg1);
-    }
-
-    /**
-     * You are running on JDK6 which comes with JAX-WS {0} API, but this tool requires JAX-WS {1} API. Use the endorsed standards override mechanism (http://docs.oracle.com/javase/6/docs/technotes/guides/standards/), or use -Xendorsed option.
-     *
-     */
-    public static String INVOKER_NEED_ENDORSED(Object arg0, Object arg1) {
-        return localizer.localize(localizableINVOKER_NEED_ENDORSED(arg0, arg1));
-    }
-
-    public static Localizable localizableWSIMPORT_MISSING_FILE() {
-        return messageFactory.getMessage("wsimport.missingFile");
-    }
-
-    /**
-     * Missing WSDL_URI
-     *
-     */
-    public static String WSIMPORT_MISSING_FILE() {
-        return localizer.localize(localizableWSIMPORT_MISSING_FILE());
-    }
-
-    public static Localizable localizableWSIMPORT_USAGE_EXTENSIONS() {
-        return messageFactory.getMessage("wsimport.usage.extensions");
-    }
-
-    /**
-     *
-     * Extensions:
-     *   -XadditionalHeaders              map headers not bound to request or response message to
-     *                                    Java method parameters
-     *   -Xauthfile                       file to carry authorization information in the format
-     *                                    http://username:password@example.org/stock?wsdl
-     *   -Xdebug                          print debug information
-     *   -Xno-addressing-databinding      enable binding of W3C EndpointReferenceType to Java
-     *   -Xnocompile                      do not compile generated Java files
-     *   -XdisableAuthenticator           disable Authenticator used by JAX-WS RI,
-     *                                    -Xauthfile option will be ignored if set
-     *   -XdisableSSLHostnameVerification disable the SSL Hostname verification while fetching
-     *                                    wsdls
-     *
-     */
-    public static String WSIMPORT_USAGE_EXTENSIONS() {
-        return localizer.localize(localizableWSIMPORT_USAGE_EXTENSIONS());
-    }
-
-    public static Localizable localizableWSIMPORT_USAGE(Object arg0) {
-        return messageFactory.getMessage("wsimport.usage", arg0);
-    }
-
-    /**
-     * Usage: {0} [options] <WSDL_URI>
-     *
-     * Use "wsimport -help" for a detailed description of options.
-     *
-     */
-    public static String WSIMPORT_USAGE(Object arg0) {
-        return localizer.localize(localizableWSIMPORT_USAGE(arg0));
+    public static String WSIMPORT_NOT_A_FILE_NOR_URL(Object arg0) {
+        return LOCALIZER.localize(localizableWSIMPORT_NOT_A_FILE_NOR_URL(arg0));
     }
 
     public static Localizable localizableWSGEN_USAGE_EXTENSIONS() {
-        return messageFactory.getMessage("wsgen.usage.extensions");
+        return MESSAGE_FACTORY.getMessage("wsgen.usage.extensions");
     }
 
     /**
@@ -288,50 +66,11 @@
      *
      */
     public static String WSGEN_USAGE_EXTENSIONS() {
-        return localizer.localize(localizableWSGEN_USAGE_EXTENSIONS());
-    }
-
-    public static Localizable localizableWSCOMPILE_EXISTING_OPTION(Object arg0) {
-        return messageFactory.getMessage("wscompile.existingOption", arg0);
-    }
-
-    /**
-     * Ignoring already defined option {0}
-     *
-     *
-     */
-    public static String WSCOMPILE_EXISTING_OPTION(Object arg0) {
-        return localizer.localize(localizableWSCOMPILE_EXISTING_OPTION(arg0));
-    }
-
-    public static Localizable localizableWSIMPORT_PARSING_WSDL() {
-        return messageFactory.getMessage("wsimport.ParsingWSDL");
-    }
-
-    /**
-     * parsing WSDL...
-     *
-     *
-     *
-     */
-    public static String WSIMPORT_PARSING_WSDL() {
-        return localizer.localize(localizableWSIMPORT_PARSING_WSDL());
-    }
-
-    public static Localizable localizableWSGEN_MISSING_FILE() {
-        return messageFactory.getMessage("wsgen.missingFile");
-    }
-
-    /**
-     * Missing SEI
-     *
-     */
-    public static String WSGEN_MISSING_FILE() {
-        return localizer.localize(localizableWSGEN_MISSING_FILE());
+        return LOCALIZER.localize(localizableWSGEN_USAGE_EXTENSIONS());
     }
 
     public static Localizable localizableWSIMPORT_HELP(Object arg0) {
-        return messageFactory.getMessage("wsimport.help", arg0);
+        return MESSAGE_FACTORY.getMessage("wsimport.help", arg0);
     }
 
     /**
@@ -358,6 +97,7 @@
      *   -J<javacOption>           pass this option to javac
      *   -keep                     keep generated files
      *   -p <pkg>                  specifies the target package
+     *   -m <name>                 generate module-info.java with given Java module name
      *   -quiet                    suppress wsimport output
      *   -s <directory>            specify where to place generated source files
      *   -target <version>         generate code as per the given JAXWS spec version
@@ -376,48 +116,258 @@
      *
      */
     public static String WSIMPORT_HELP(Object arg0) {
-        return localizer.localize(localizableWSIMPORT_HELP(arg0));
+        return LOCALIZER.localize(localizableWSIMPORT_HELP(arg0));
     }
 
-    public static Localizable localizableWSCOMPILE_CANT_GET_COMPILER(Object arg0, Object arg1, Object arg2) {
-        return messageFactory.getMessage("wscompile.cant.get.compiler", arg0, arg1, arg2);
+    public static Localizable localizableWSIMPORT_ILLEGAL_TARGET_VERSION(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("wsimport.ILLEGAL_TARGET_VERSION", arg0);
     }
 
     /**
-     * No Java compiler found. Perhaps environment/JDK problem?
-     *  Used JVM: {0}, {1}/{2}
+     * "{0}" is not a valid target version. "2.0" and "2.1" are supported.
      *
      */
-    public static String WSCOMPILE_CANT_GET_COMPILER(Object arg0, Object arg1, Object arg2) {
-        return localizer.localize(localizableWSCOMPILE_CANT_GET_COMPILER(arg0, arg1, arg2));
+    public static String WSIMPORT_ILLEGAL_TARGET_VERSION(Object arg0) {
+        return LOCALIZER.localize(localizableWSIMPORT_ILLEGAL_TARGET_VERSION(arg0));
     }
 
-    public static Localizable localizableWSCOMPILE_ERROR(Object arg0) {
-        return messageFactory.getMessage("wscompile.error", arg0);
+    public static Localizable localizableWSIMPORT_USAGE_EXAMPLES() {
+        return MESSAGE_FACTORY.getMessage("wsimport.usage.examples");
     }
 
     /**
-     * error: {0}
+     *
+     * Examples:
+     *   wsimport stock.wsdl -b stock.xml -b stock.xjb
+     *   wsimport -d generated http://example.org/stock?wsdl
+     *
      *
      */
-    public static String WSCOMPILE_ERROR(Object arg0) {
-        return localizer.localize(localizableWSCOMPILE_ERROR(arg0));
+    public static String WSIMPORT_USAGE_EXAMPLES() {
+        return LOCALIZER.localize(localizableWSIMPORT_USAGE_EXAMPLES());
     }
 
-    public static Localizable localizableWSGEN_PROTOCOL_WITHOUT_EXTENSION(Object arg0) {
-        return messageFactory.getMessage("wsgen.protocol.without.extension", arg0);
+    public static Localizable localizableWSIMPORT_DEBUG_MESSAGE(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("wsimport.DebugMessage", arg0);
     }
 
     /**
-     * The optional protocol "{0}" must be used in conjunction with the "-extension" option.
+     * [DEBUG] {0}
      *
      */
-    public static String WSGEN_PROTOCOL_WITHOUT_EXTENSION(Object arg0) {
-        return localizer.localize(localizableWSGEN_PROTOCOL_WITHOUT_EXTENSION(arg0));
+    public static String WSIMPORT_DEBUG_MESSAGE(Object arg0) {
+        return LOCALIZER.localize(localizableWSIMPORT_DEBUG_MESSAGE(arg0));
+    }
+
+    public static Localizable localizableWSIMPORT_FULLVERSION(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("wsimport.fullversion", arg0);
+    }
+
+    /**
+     * wsimport full version "{0}"
+     *
+     */
+    public static String WSIMPORT_FULLVERSION(Object arg0) {
+        return LOCALIZER.localize(localizableWSIMPORT_FULLVERSION(arg0));
+    }
+
+    public static Localizable localizableWSIMPORT_NO_SUCH_JAXB_OPTION(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("wsimport.noSuchJaxbOption", arg0);
+    }
+
+    /**
+     * no such JAXB option: {0}
+     *
+     */
+    public static String WSIMPORT_NO_SUCH_JAXB_OPTION(Object arg0) {
+        return LOCALIZER.localize(localizableWSIMPORT_NO_SUCH_JAXB_OPTION(arg0));
+    }
+
+    public static Localizable localizableWSIMPORT_ILLEGAL_PROXY(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("wsimport.ILLEGAL_PROXY", arg0);
+    }
+
+    /**
+     * "{0}" is not a valid proxy format. The format is [user[:password]@]proxyHost:proxyPort
+     *
+     */
+    public static String WSIMPORT_ILLEGAL_PROXY(Object arg0) {
+        return LOCALIZER.localize(localizableWSIMPORT_ILLEGAL_PROXY(arg0));
+    }
+
+    public static Localizable localizableINVOKER_NEED_ENDORSED(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("invoker.needEndorsed", arg0, arg1);
+    }
+
+    /**
+     * You are running on JDK6 or newer which comes with JAX-WS {0} API, but this tool requires JAX-WS {1} or newer API. Use the standard override mechanism.
+     *
+     */
+    public static String INVOKER_NEED_ENDORSED(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableINVOKER_NEED_ENDORSED(arg0, arg1));
+    }
+
+    public static Localizable localizableWSIMPORT_AUTH_INFO_NEEDED(Object arg0, Object arg1, Object arg2) {
+        return MESSAGE_FACTORY.getMessage("wsimport.authInfoNeeded", arg0, arg1, arg2);
+    }
+
+    /**
+     * {0},  "{1}" needs authorization, please provide authorization file with read access at {2} or use -Xauthfile to give the authorization file and on each line provide authorization information using this format : http[s]://user:password@host:port//<url-path>
+     *
+     */
+    public static String WSIMPORT_AUTH_INFO_NEEDED(Object arg0, Object arg1, Object arg2) {
+        return LOCALIZER.localize(localizableWSIMPORT_AUTH_INFO_NEEDED(arg0, arg1, arg2));
+    }
+
+    public static Localizable localizableWSIMPORT_AUTH_INFO_LINENO(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("wsimport.AUTH_INFO_LINENO", arg0, arg1);
+    }
+
+    /**
+     * line {0} of {1}
+     *
+     */
+    public static String WSIMPORT_AUTH_INFO_LINENO(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableWSIMPORT_AUTH_INFO_LINENO(arg0, arg1));
+    }
+
+    public static Localizable localizableWSCOMPILE_MISSING_OPTION_ARGUMENT(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("wscompile.missingOptionArgument", arg0);
+    }
+
+    /**
+     * option "{0}" requires an argument
+     *
+     */
+    public static String WSCOMPILE_MISSING_OPTION_ARGUMENT(Object arg0) {
+        return LOCALIZER.localize(localizableWSCOMPILE_MISSING_OPTION_ARGUMENT(arg0));
+    }
+
+    public static Localizable localizableWSIMPORT_ARCHIVE_ARTIFACT(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("wsimport.archiveArtifact", arg0, arg1);
+    }
+
+    /**
+     * Adding {0} to the archive {1}
+     *
+     */
+    public static String WSIMPORT_ARCHIVE_ARTIFACT(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableWSIMPORT_ARCHIVE_ARTIFACT(arg0, arg1));
+    }
+
+    public static Localizable localizableWSGEN_USAGE(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("wsgen.usage", arg0);
+    }
+
+    /**
+     * Usage: {0} [options] <SEI>
+     *
+     * Use "wsgen -help" for a detailed description of options.
+     *
+     */
+    public static String WSGEN_USAGE(Object arg0) {
+        return LOCALIZER.localize(localizableWSGEN_USAGE(arg0));
+    }
+
+    public static Localizable localizableWSIMPORT_USAGE_EXTENSIONS() {
+        return MESSAGE_FACTORY.getMessage("wsimport.usage.extensions");
+    }
+
+    /**
+     *
+     * Extensions:
+     *   -XadditionalHeaders              map headers not bound to request or response message to
+     *                                    Java method parameters
+     *   -Xauthfile                       file to carry authorization information in the format
+     *                                    http://username:password@example.org/stock?wsdl
+     *   -Xdebug                          print debug information
+     *   -Xno-addressing-databinding      enable binding of W3C EndpointReferenceType to Java
+     *   -Xnocompile                      do not compile generated Java files
+     *   -XdisableAuthenticator           disable Authenticator used by JAX-WS RI,
+     *                                    -Xauthfile option will be ignored if set
+     *   -XdisableSSLHostnameVerification disable the SSL Hostname verification while fetching
+     *                                    wsdls
+     *
+     */
+    public static String WSIMPORT_USAGE_EXTENSIONS() {
+        return LOCALIZER.localize(localizableWSIMPORT_USAGE_EXTENSIONS());
+    }
+
+    public static Localizable localizableWSIMPORT_WARNING_MESSAGE(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("wsimport.WarningMessage", arg0);
+    }
+
+    /**
+     * [WARNING] {0}
+     *
+     */
+    public static String WSIMPORT_WARNING_MESSAGE(Object arg0) {
+        return LOCALIZER.localize(localizableWSIMPORT_WARNING_MESSAGE(arg0));
+    }
+
+    public static Localizable localizableWSGEN_INVALID_TRANSPORT(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("wsgen.invalid.transport", arg0, arg1);
+    }
+
+    /**
+     * "{0}" is not a supported transport.  Supported transport includes: {1}.
+     *
+     */
+    public static String WSGEN_INVALID_TRANSPORT(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableWSGEN_INVALID_TRANSPORT(arg0, arg1));
+    }
+
+    public static Localizable localizableWSIMPORT_DOCUMENT_DOWNLOAD(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("wsimport.document.download", arg0, arg1);
+    }
+
+    /**
+     *
+     * Downloading metadata document from {0} to {1}
+     *
+     */
+    public static String WSIMPORT_DOCUMENT_DOWNLOAD(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableWSIMPORT_DOCUMENT_DOWNLOAD(arg0, arg1));
+    }
+
+    public static Localizable localizableWSGEN_CLASS_NOT_FOUND(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("wsgen.class.not.found", arg0);
+    }
+
+    /**
+     * Class not found: "{0}"
+     *
+     */
+    public static String WSGEN_CLASS_NOT_FOUND(Object arg0) {
+        return LOCALIZER.localize(localizableWSGEN_CLASS_NOT_FOUND(arg0));
+    }
+
+    public static Localizable localizableWSCOMPILE_DUPLICATE_OPTION(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("wscompile.duplicateOption", arg0);
+    }
+
+    /**
+     * duplicate option: {0}
+     *
+     */
+    public static String WSCOMPILE_DUPLICATE_OPTION(Object arg0) {
+        return LOCALIZER.localize(localizableWSCOMPILE_DUPLICATE_OPTION(arg0));
+    }
+
+    public static Localizable localizableWSCOMPILE_UNSUPPORTED_ENCODING(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("wscompile.unsupportedEncoding", arg0);
+    }
+
+    /**
+     * unsupported encoding: {0}
+     *
+     */
+    public static String WSCOMPILE_UNSUPPORTED_ENCODING(Object arg0) {
+        return LOCALIZER.localize(localizableWSCOMPILE_UNSUPPORTED_ENCODING(arg0));
     }
 
     public static Localizable localizableWSIMPORT_COMPILING_CODE() {
-        return messageFactory.getMessage("wsimport.CompilingCode");
+        return MESSAGE_FACTORY.getMessage("wsimport.CompilingCode");
     }
 
     /**
@@ -427,83 +377,23 @@
      *
      */
     public static String WSIMPORT_COMPILING_CODE() {
-        return localizer.localize(localizableWSIMPORT_COMPILING_CODE());
+        return LOCALIZER.localize(localizableWSIMPORT_COMPILING_CODE());
     }
 
-    public static Localizable localizableWSIMPORT_READING_AUTH_FILE(Object arg0) {
-        return messageFactory.getMessage("wsimport.readingAuthFile", arg0);
+    public static Localizable localizableWSGEN_SERVICENAME_MISSING_NAMESPACE(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("wsgen.servicename.missing.namespace", arg0);
     }
 
     /**
-     * Trying to read authorization file : "{0}"...
+     * The service name "{0}" is missing a namespace.
      *
      */
-    public static String WSIMPORT_READING_AUTH_FILE(Object arg0) {
-        return localizer.localize(localizableWSIMPORT_READING_AUTH_FILE(arg0));
-    }
-
-    public static Localizable localizableWSCOMPILE_UNSUPPORTED_ENCODING(Object arg0) {
-        return messageFactory.getMessage("wscompile.unsupportedEncoding", arg0);
-    }
-
-    /**
-     * unsupported encoding: {0}
-     *
-     */
-    public static String WSCOMPILE_UNSUPPORTED_ENCODING(Object arg0) {
-        return localizer.localize(localizableWSCOMPILE_UNSUPPORTED_ENCODING(arg0));
-    }
-
-    public static Localizable localizableWSGEN_NO_WEBSERVICES_CLASS(Object arg0) {
-        return messageFactory.getMessage("wsgen.no.webservices.class", arg0);
-    }
-
-    /**
-     * wsgen did not find any class with @WebService annotation. Please specify @WebService annotation on {0}.
-     *
-     */
-    public static String WSGEN_NO_WEBSERVICES_CLASS(Object arg0) {
-        return localizer.localize(localizableWSGEN_NO_WEBSERVICES_CLASS(arg0));
-    }
-
-    public static Localizable localizableWSIMPORT_ARCHIVE_ARTIFACT(Object arg0, Object arg1) {
-        return messageFactory.getMessage("wsimport.archiveArtifact", arg0, arg1);
-    }
-
-    /**
-     * Adding {0} to the archive {1}
-     *
-     */
-    public static String WSIMPORT_ARCHIVE_ARTIFACT(Object arg0, Object arg1) {
-        return localizer.localize(localizableWSIMPORT_ARCHIVE_ARTIFACT(arg0, arg1));
-    }
-
-    public static Localizable localizableWSCOMPILE_NO_SUCH_DIRECTORY(Object arg0) {
-        return messageFactory.getMessage("wscompile.noSuchDirectory", arg0);
-    }
-
-    /**
-     * directory not found: {0}
-     *
-     */
-    public static String WSCOMPILE_NO_SUCH_DIRECTORY(Object arg0) {
-        return localizer.localize(localizableWSCOMPILE_NO_SUCH_DIRECTORY(arg0));
-    }
-
-    public static Localizable localizableWSCOMPILE_INFO(Object arg0) {
-        return messageFactory.getMessage("wscompile.info", arg0);
-    }
-
-    /**
-     * info: {0}
-     *
-     */
-    public static String WSCOMPILE_INFO(Object arg0) {
-        return localizer.localize(localizableWSCOMPILE_INFO(arg0));
+    public static String WSGEN_SERVICENAME_MISSING_NAMESPACE(Object arg0) {
+        return LOCALIZER.localize(localizableWSGEN_SERVICENAME_MISSING_NAMESPACE(arg0));
     }
 
     public static Localizable localizableWSIMPORT_MAX_REDIRECT_ATTEMPT() {
-        return messageFactory.getMessage("wsimport.maxRedirectAttempt");
+        return MESSAGE_FACTORY.getMessage("wsimport.maxRedirectAttempt");
     }
 
     /**
@@ -511,47 +401,72 @@
      *
      */
     public static String WSIMPORT_MAX_REDIRECT_ATTEMPT() {
-        return localizer.localize(localizableWSIMPORT_MAX_REDIRECT_ATTEMPT());
+        return LOCALIZER.localize(localizableWSIMPORT_MAX_REDIRECT_ATTEMPT());
     }
 
-    public static Localizable localizableWSIMPORT_WARNING_MESSAGE(Object arg0) {
-        return messageFactory.getMessage("wsimport.WarningMessage", arg0);
+    public static Localizable localizableWSIMPORT_READING_AUTH_FILE(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("wsimport.readingAuthFile", arg0);
     }
 
     /**
-     * [WARNING] {0}
+     * Trying to read authorization file : "{0}"...
      *
      */
-    public static String WSIMPORT_WARNING_MESSAGE(Object arg0) {
-        return localizer.localize(localizableWSIMPORT_WARNING_MESSAGE(arg0));
+    public static String WSIMPORT_READING_AUTH_FILE(Object arg0) {
+        return LOCALIZER.localize(localizableWSIMPORT_READING_AUTH_FILE(arg0));
     }
 
-    public static Localizable localizableWSCOMPILE_INVALID_OPTION(Object arg0) {
-        return messageFactory.getMessage("wscompile.invalidOption", arg0);
+    public static Localizable localizableWSGEN_CANNOT_GEN_WSDL_FOR_SOAP_12_BINDING(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("wsgen.cannot.gen.wsdl.for.soap12.binding", arg0, arg1);
     }
 
     /**
-     * unrecognized parameter {0}
+     * wsgen can not generate WSDL for SOAP 1.2 binding: {0} on class: {1}.Please specify "-extension" and "-wsdl:protocol XSoap1.2" switches. For example:wsgen -wsdl:protocol XSoap1.2 -extenson {1}
      *
      */
-    public static String WSCOMPILE_INVALID_OPTION(Object arg0) {
-        return localizer.localize(localizableWSCOMPILE_INVALID_OPTION(arg0));
+    public static String WSGEN_CANNOT_GEN_WSDL_FOR_SOAP_12_BINDING(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableWSGEN_CANNOT_GEN_WSDL_FOR_SOAP_12_BINDING(arg0, arg1));
     }
 
-    public static Localizable localizableWSIMPORT_ERROR_MESSAGE(Object arg0) {
-        return messageFactory.getMessage("wsimport.ErrorMessage", arg0);
+    public static Localizable localizableWSIMPORT_INFO_MESSAGE(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("wsimport.InfoMessage", arg0);
     }
 
     /**
-     * [ERROR] {0}
+     * [INFO] {0}
      *
      */
-    public static String WSIMPORT_ERROR_MESSAGE(Object arg0) {
-        return localizer.localize(localizableWSIMPORT_ERROR_MESSAGE(arg0));
+    public static String WSIMPORT_INFO_MESSAGE(Object arg0) {
+        return LOCALIZER.localize(localizableWSIMPORT_INFO_MESSAGE(arg0));
+    }
+
+    public static Localizable localizableWSCOMPILE_EXISTING_OPTION(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("wscompile.existingOption", arg0);
+    }
+
+    /**
+     * Ignoring already defined option {0}
+     *
+     *
+     */
+    public static String WSCOMPILE_EXISTING_OPTION(Object arg0) {
+        return LOCALIZER.localize(localizableWSCOMPILE_EXISTING_OPTION(arg0));
+    }
+
+    public static Localizable localizableWSGEN_PORTNAME_MISSING_NAMESPACE(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("wsgen.portname.missing.namespace", arg0);
+    }
+
+    /**
+     * The port name "{0}" is missing a namespace.
+     *
+     */
+    public static String WSGEN_PORTNAME_MISSING_NAMESPACE(Object arg0) {
+        return LOCALIZER.localize(localizableWSGEN_PORTNAME_MISSING_NAMESPACE(arg0));
     }
 
     public static Localizable localizableWSIMPORT_GENERATING_CODE() {
-        return messageFactory.getMessage("wsimport.GeneratingCode");
+        return MESSAGE_FACTORY.getMessage("wsimport.GeneratingCode");
     }
 
     /**
@@ -561,71 +476,11 @@
      *
      */
     public static String WSIMPORT_GENERATING_CODE() {
-        return localizer.localize(localizableWSIMPORT_GENERATING_CODE());
-    }
-
-    public static Localizable localizableWSIMPORT_NOT_A_FILE_NOR_URL(Object arg0) {
-        return messageFactory.getMessage("wsimport.NotAFileNorURL", arg0);
-    }
-
-    /**
-     * "{0}" is neither a file name nor an URL
-     *
-     */
-    public static String WSIMPORT_NOT_A_FILE_NOR_URL(Object arg0) {
-        return localizer.localize(localizableWSIMPORT_NOT_A_FILE_NOR_URL(arg0));
-    }
-
-    public static Localizable localizableWSCOMPILE_WARNING(Object arg0) {
-        return messageFactory.getMessage("wscompile.warning", arg0);
-    }
-
-    /**
-     * warning: {0}
-     *
-     */
-    public static String WSCOMPILE_WARNING(Object arg0) {
-        return localizer.localize(localizableWSCOMPILE_WARNING(arg0));
-    }
-
-    public static Localizable localizableWRAPPER_TASK_NEED_ENDORSED(Object arg0, Object arg1, Object arg2) {
-        return messageFactory.getMessage("wrapperTask.needEndorsed", arg0, arg1, arg2);
-    }
-
-    /**
-     * You are running on JDK6 which comes with JAX-WS {0} API, but this tool requires JAX-WS {1} API. Use the endorsed standards override mechanism (http://docs.oracle.com/javase/6/docs/technotes/guides/standards/), or set xendorsed="true" on <{2}>.
-     *
-     */
-    public static String WRAPPER_TASK_NEED_ENDORSED(Object arg0, Object arg1, Object arg2) {
-        return localizer.localize(localizableWRAPPER_TASK_NEED_ENDORSED(arg0, arg1, arg2));
-    }
-
-    public static Localizable localizableWSIMPORT_NO_SUCH_JAXB_OPTION(Object arg0) {
-        return messageFactory.getMessage("wsimport.noSuchJaxbOption", arg0);
-    }
-
-    /**
-     * no such JAXB option: {0}
-     *
-     */
-    public static String WSIMPORT_NO_SUCH_JAXB_OPTION(Object arg0) {
-        return localizer.localize(localizableWSIMPORT_NO_SUCH_JAXB_OPTION(arg0));
-    }
-
-    public static Localizable localizableWSGEN_VERSION(Object arg0) {
-        return messageFactory.getMessage("wsgen.version", arg0);
-    }
-
-    /**
-     * wsgen version "{0}"
-     *
-     */
-    public static String WSGEN_VERSION(Object arg0) {
-        return localizer.localize(localizableWSGEN_VERSION(arg0));
+        return LOCALIZER.localize(localizableWSIMPORT_GENERATING_CODE());
     }
 
     public static Localizable localizableWSIMPORT_AUTH_FILE_NOT_FOUND(Object arg0, Object arg1) {
-        return messageFactory.getMessage("wsimport.authFileNotFound", arg0, arg1);
+        return MESSAGE_FACTORY.getMessage("wsimport.authFileNotFound", arg0, arg1);
     }
 
     /**
@@ -633,47 +488,59 @@
      *
      */
     public static String WSIMPORT_AUTH_FILE_NOT_FOUND(Object arg0, Object arg1) {
-        return localizer.localize(localizableWSIMPORT_AUTH_FILE_NOT_FOUND(arg0, arg1));
+        return LOCALIZER.localize(localizableWSIMPORT_AUTH_FILE_NOT_FOUND(arg0, arg1));
     }
 
-    public static Localizable localizableWSIMPORT_DEBUG_MESSAGE(Object arg0) {
-        return messageFactory.getMessage("wsimport.DebugMessage", arg0);
+    public static Localizable localizableWSIMPORT_WSDLLOCATION_CLIENTJAR() {
+        return MESSAGE_FACTORY.getMessage("wsimport.wsdllocation.clientjar");
     }
 
     /**
-     * [DEBUG] {0}
+     * wsdlLocation cannot be specified when using clientJar option
      *
      */
-    public static String WSIMPORT_DEBUG_MESSAGE(Object arg0) {
-        return localizer.localize(localizableWSIMPORT_DEBUG_MESSAGE(arg0));
+    public static String WSIMPORT_WSDLLOCATION_CLIENTJAR() {
+        return LOCALIZER.localize(localizableWSIMPORT_WSDLLOCATION_CLIENTJAR());
     }
 
-    public static Localizable localizableWSGEN_COULD_NOT_CREATE_FILE(Object arg0) {
-        return messageFactory.getMessage("wsgen.could.not.create.file", arg0);
+    public static Localizable localizableWSIMPORT_FAILED_TO_PARSE(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("wsimport.FailedToParse", arg0, arg1);
     }
 
     /**
-     * Could not create file: "{0}"
+     * Failed to parse "{0}": {1}
      *
      */
-    public static String WSGEN_COULD_NOT_CREATE_FILE(Object arg0) {
-        return localizer.localize(localizableWSGEN_COULD_NOT_CREATE_FILE(arg0));
+    public static String WSIMPORT_FAILED_TO_PARSE(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableWSIMPORT_FAILED_TO_PARSE(arg0, arg1));
     }
 
-    public static Localizable localizableWSGEN_WSDL_ARG_NO_GENWSDL(Object arg0) {
-        return messageFactory.getMessage("wsgen.wsdl.arg.no.genwsdl", arg0);
+    public static Localizable localizableWSIMPORT_NO_WSDL(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("wsimport.no.wsdl", arg0);
     }
 
     /**
-     * The "{0}" option can only be in conjunction with the "-wsdl" option.
+     * Failed to read the WSDL document: {0}, because 1) could not find the document; 2) the document could not be read; 3) the root element of the document is not <wsdl:definitions>.
      *
      */
-    public static String WSGEN_WSDL_ARG_NO_GENWSDL(Object arg0) {
-        return localizer.localize(localizableWSGEN_WSDL_ARG_NO_GENWSDL(arg0));
+    public static String WSIMPORT_NO_WSDL(Object arg0) {
+        return LOCALIZER.localize(localizableWSIMPORT_NO_WSDL(arg0));
+    }
+
+    public static Localizable localizableWSGEN_INVALID_PROTOCOL(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("wsgen.invalid.protocol", arg0, arg1);
+    }
+
+    /**
+     * "{0}" is not a supported protocol.  Supported protocols include: {1}.
+     *
+     */
+    public static String WSGEN_INVALID_PROTOCOL(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableWSGEN_INVALID_PROTOCOL(arg0, arg1));
     }
 
     public static Localizable localizableWSGEN_HELP(Object arg0, Object arg1, Object arg2) {
-        return messageFactory.getMessage("wsgen.help", arg0, arg1, arg2);
+        return MESSAGE_FACTORY.getMessage("wsgen.help", arg0, arg1, arg2);
     }
 
     /**
@@ -714,59 +581,97 @@
      *
      */
     public static String WSGEN_HELP(Object arg0, Object arg1, Object arg2) {
-        return localizer.localize(localizableWSGEN_HELP(arg0, arg1, arg2));
+        return LOCALIZER.localize(localizableWSGEN_HELP(arg0, arg1, arg2));
     }
 
-    public static Localizable localizableWSIMPORT_INFO_MESSAGE(Object arg0) {
-        return messageFactory.getMessage("wsimport.InfoMessage", arg0);
+    public static Localizable localizableWSIMPORT_USAGE(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("wsimport.usage", arg0);
     }
 
     /**
-     * [INFO] {0}
+     * Usage: {0} [options] <WSDL_URI>
+     *
+     * Use "wsimport -help" for a detailed description of options.
      *
      */
-    public static String WSIMPORT_INFO_MESSAGE(Object arg0) {
-        return localizer.localize(localizableWSIMPORT_INFO_MESSAGE(arg0));
+    public static String WSIMPORT_USAGE(Object arg0) {
+        return LOCALIZER.localize(localizableWSIMPORT_USAGE(arg0));
     }
 
-    public static Localizable localizableWSGEN_INLINE_SCHEMAS_ONLY_WITH_WSDL() {
-        return messageFactory.getMessage("wsgen.inlineSchemas.only.with.wsdl");
+    public static Localizable localizableWSCOMPILE_ERROR(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("wscompile.error", arg0);
     }
 
     /**
-     * "-inlineSchemas" must be used in conjunction with the "-wsdl" option
+     * error: {0}
      *
      */
-    public static String WSGEN_INLINE_SCHEMAS_ONLY_WITH_WSDL() {
-        return localizer.localize(localizableWSGEN_INLINE_SCHEMAS_ONLY_WITH_WSDL());
+    public static String WSCOMPILE_ERROR(Object arg0) {
+        return LOCALIZER.localize(localizableWSCOMPILE_ERROR(arg0));
     }
 
-    public static Localizable localizableWSGEN_SOAP_12_WITHOUT_EXTENSION() {
-        return messageFactory.getMessage("wsgen.soap12.without.extension");
+    public static Localizable localizableWSCOMPILE_WARNING(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("wscompile.warning", arg0);
     }
 
     /**
-     * The optional protocol "Xsoap1.2" must be used in conjunction with the "-extension" option.
+     * warning: {0}
      *
      */
-    public static String WSGEN_SOAP_12_WITHOUT_EXTENSION() {
-        return localizer.localize(localizableWSGEN_SOAP_12_WITHOUT_EXTENSION());
+    public static String WSCOMPILE_WARNING(Object arg0) {
+        return LOCALIZER.localize(localizableWSCOMPILE_WARNING(arg0));
     }
 
-    public static Localizable localizableWSIMPORT_ILLEGAL_AUTH_INFO(Object arg0) {
-        return messageFactory.getMessage("wsimport.ILLEGAL_AUTH_INFO", arg0);
+    public static Localizable localizableWRAPPER_TASK_NEED_ENDORSED(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("wrapperTask.needEndorsed", arg0, arg1);
     }
 
     /**
-     * "{0}" is not a valid authorization information format. The format is http[s]://user:password@host:port//<url-path>.
+     * You are running on JDK6 or newer which comes with JAX-WS {0} API, but this tool requires JAX-WS {1} or newer API. Use the standard override mechanism.
      *
      */
-    public static String WSIMPORT_ILLEGAL_AUTH_INFO(Object arg0) {
-        return localizer.localize(localizableWSIMPORT_ILLEGAL_AUTH_INFO(arg0));
+    public static String WRAPPER_TASK_NEED_ENDORSED(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableWRAPPER_TASK_NEED_ENDORSED(arg0, arg1));
+    }
+
+    public static Localizable localizableWSIMPORT_VERSION(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("wsimport.version", arg0);
+    }
+
+    /**
+     * wsimport version "{0}"
+     *
+     */
+    public static String WSIMPORT_VERSION(Object arg0) {
+        return LOCALIZER.localize(localizableWSIMPORT_VERSION(arg0));
+    }
+
+    public static Localizable localizableWSCOMPILE_NO_SUCH_DIRECTORY(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("wscompile.noSuchDirectory", arg0);
+    }
+
+    /**
+     * directory not found: {0}
+     *
+     */
+    public static String WSCOMPILE_NO_SUCH_DIRECTORY(Object arg0) {
+        return LOCALIZER.localize(localizableWSCOMPILE_NO_SUCH_DIRECTORY(arg0));
+    }
+
+    public static Localizable localizableWSIMPORT_MISSING_FILE() {
+        return MESSAGE_FACTORY.getMessage("wsimport.missingFile");
+    }
+
+    /**
+     * Missing WSDL_URI
+     *
+     */
+    public static String WSIMPORT_MISSING_FILE() {
+        return LOCALIZER.localize(localizableWSIMPORT_MISSING_FILE());
     }
 
     public static Localizable localizableWSCOMPILE_COMPILATION_FAILED() {
-        return messageFactory.getMessage("wscompile.compilationFailed");
+        return MESSAGE_FACTORY.getMessage("wscompile.compilationFailed");
     }
 
     /**
@@ -774,96 +679,164 @@
      *
      */
     public static String WSCOMPILE_COMPILATION_FAILED() {
-        return localizer.localize(localizableWSCOMPILE_COMPILATION_FAILED());
+        return LOCALIZER.localize(localizableWSCOMPILE_COMPILATION_FAILED());
     }
 
-    public static Localizable localizableWSCOMPILE_MISSING_OPTION_ARGUMENT(Object arg0) {
-        return messageFactory.getMessage("wscompile.missingOptionArgument", arg0);
+    public static Localizable localizableWSIMPORT_PARSING_WSDL() {
+        return MESSAGE_FACTORY.getMessage("wsimport.ParsingWSDL");
     }
 
     /**
-     * option "{0}" requires an argument
+     * parsing WSDL...
+     *
+     *
      *
      */
-    public static String WSCOMPILE_MISSING_OPTION_ARGUMENT(Object arg0) {
-        return localizer.localize(localizableWSCOMPILE_MISSING_OPTION_ARGUMENT(arg0));
+    public static String WSIMPORT_PARSING_WSDL() {
+        return LOCALIZER.localize(localizableWSIMPORT_PARSING_WSDL());
     }
 
-    public static Localizable localizableWSIMPORT_DOCUMENT_DOWNLOAD(Object arg0, Object arg1) {
-        return messageFactory.getMessage("wsimport.document.download", arg0, arg1);
+    public static Localizable localizableWSGEN_USAGE_EXAMPLES() {
+        return MESSAGE_FACTORY.getMessage("wsgen.usage.examples");
     }
 
     /**
      *
-     * Downloading metadata document from {0} to {1}
+     * Examples:
+     *   wsgen -cp . example.Stock
+     *   wsgen -cp . example.Stock -wsdl -servicename '{http://mynamespace}MyService'
+     *
      *
      */
-    public static String WSIMPORT_DOCUMENT_DOWNLOAD(Object arg0, Object arg1) {
-        return localizer.localize(localizableWSIMPORT_DOCUMENT_DOWNLOAD(arg0, arg1));
+    public static String WSGEN_USAGE_EXAMPLES() {
+        return LOCALIZER.localize(localizableWSGEN_USAGE_EXAMPLES());
     }
 
-    public static Localizable localizableWSGEN_CANNOT_GEN_WSDL_FOR_NON_SOAP_BINDING(Object arg0, Object arg1) {
-        return messageFactory.getMessage("wsgen.cannot.gen.wsdl.for.non.soap.binding", arg0, arg1);
+    public static Localizable localizableWSIMPORT_ARCHIVING_ARTIFACTS(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("wsimport.archivingArtifacts", arg0);
     }
 
     /**
-     * wsgen can not generate WSDL for non-SOAP binding: {0} on Class {1}
+     *
+     * Archiving the generated artifacts into {0}.
+     *
      *
      */
-    public static String WSGEN_CANNOT_GEN_WSDL_FOR_NON_SOAP_BINDING(Object arg0, Object arg1) {
-        return localizer.localize(localizableWSGEN_CANNOT_GEN_WSDL_FOR_NON_SOAP_BINDING(arg0, arg1));
+    public static String WSIMPORT_ARCHIVING_ARTIFACTS(Object arg0) {
+        return LOCALIZER.localize(localizableWSIMPORT_ARCHIVING_ARTIFACTS(arg0));
     }
 
-    public static Localizable localizableWSCOMPILE_DUPLICATE_OPTION(Object arg0) {
-        return messageFactory.getMessage("wscompile.duplicateOption", arg0);
+    public static Localizable localizableWSGEN_PROTOCOL_WITHOUT_EXTENSION(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("wsgen.protocol.without.extension", arg0);
     }
 
     /**
-     * duplicate option: {0}
+     * The optional protocol "{0}" must be used in conjunction with the "-extension" option.
      *
      */
-    public static String WSCOMPILE_DUPLICATE_OPTION(Object arg0) {
-        return localizer.localize(localizableWSCOMPILE_DUPLICATE_OPTION(arg0));
+    public static String WSGEN_PROTOCOL_WITHOUT_EXTENSION(Object arg0) {
+        return LOCALIZER.localize(localizableWSGEN_PROTOCOL_WITHOUT_EXTENSION(arg0));
     }
 
-    public static Localizable localizableWSIMPORT_FAILED_TO_PARSE(Object arg0, Object arg1) {
-        return messageFactory.getMessage("wsimport.FailedToParse", arg0, arg1);
+    public static Localizable localizableWSGEN_MISSING_FILE() {
+        return MESSAGE_FACTORY.getMessage("wsgen.missingFile");
     }
 
     /**
-     * Failed to parse "{0}": {1}
+     * Missing SEI
      *
      */
-    public static String WSIMPORT_FAILED_TO_PARSE(Object arg0, Object arg1) {
-        return localizer.localize(localizableWSIMPORT_FAILED_TO_PARSE(arg0, arg1));
+    public static String WSGEN_MISSING_FILE() {
+        return LOCALIZER.localize(localizableWSGEN_MISSING_FILE());
     }
 
-    public static Localizable localizableWSIMPORT_NO_WSDL(Object arg0) {
-        return messageFactory.getMessage("wsimport.no.wsdl", arg0);
+    public static Localizable localizableWSGEN_VERSION(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("wsgen.version", arg0);
     }
 
     /**
-     * Failed to read the WSDL document: {0}, because 1) could not find the document; 2) the document could not be read; 3) the root element of the document is not <wsdl:definitions>.
+     * wsgen version "{0}"
      *
      */
-    public static String WSIMPORT_NO_WSDL(Object arg0) {
-        return localizer.localize(localizableWSIMPORT_NO_WSDL(arg0));
+    public static String WSGEN_VERSION(Object arg0) {
+        return LOCALIZER.localize(localizableWSGEN_VERSION(arg0));
     }
 
-    public static Localizable localizableWSIMPORT_AUTH_INFO_LINENO(Object arg0, Object arg1) {
-        return messageFactory.getMessage("wsimport.AUTH_INFO_LINENO", arg0, arg1);
+    public static Localizable localizableWSGEN_NO_WEBSERVICES_CLASS(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("wsgen.no.webservices.class", arg0);
     }
 
     /**
-     * line {0} of {1}
+     * wsgen did not find any class with @WebService annotation. Please specify @WebService annotation on {0}.
      *
      */
-    public static String WSIMPORT_AUTH_INFO_LINENO(Object arg0, Object arg1) {
-        return localizer.localize(localizableWSIMPORT_AUTH_INFO_LINENO(arg0, arg1));
+    public static String WSGEN_NO_WEBSERVICES_CLASS(Object arg0) {
+        return LOCALIZER.localize(localizableWSGEN_NO_WEBSERVICES_CLASS(arg0));
+    }
+
+    public static Localizable localizableWSGEN_SOAP_12_WITHOUT_EXTENSION() {
+        return MESSAGE_FACTORY.getMessage("wsgen.soap12.without.extension");
+    }
+
+    /**
+     * The optional protocol "Xsoap1.2" must be used in conjunction with the "-extension" option.
+     *
+     */
+    public static String WSGEN_SOAP_12_WITHOUT_EXTENSION() {
+        return LOCALIZER.localize(localizableWSGEN_SOAP_12_WITHOUT_EXTENSION());
+    }
+
+    public static Localizable localizableWSGEN_CLASS_MUST_BE_IMPLEMENTATION_CLASS(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("wsgen.class.must.be.implementation.class", arg0);
+    }
+
+    /**
+     * The class "{0}" is not an endpoint implementation class.
+     *
+     */
+    public static String WSGEN_CLASS_MUST_BE_IMPLEMENTATION_CLASS(Object arg0) {
+        return LOCALIZER.localize(localizableWSGEN_CLASS_MUST_BE_IMPLEMENTATION_CLASS(arg0));
+    }
+
+    public static Localizable localizableWSGEN_INLINE_SCHEMAS_ONLY_WITH_WSDL() {
+        return MESSAGE_FACTORY.getMessage("wsgen.inlineSchemas.only.with.wsdl");
+    }
+
+    /**
+     * "-inlineSchemas" must be used in conjunction with the "-wsdl" option
+     *
+     */
+    public static String WSGEN_INLINE_SCHEMAS_ONLY_WITH_WSDL() {
+        return LOCALIZER.localize(localizableWSGEN_INLINE_SCHEMAS_ONLY_WITH_WSDL());
+    }
+
+    public static Localizable localizableWRAPPER_TASK_LOADING_INCORRECT_API(Object arg0, Object arg1, Object arg2) {
+        return MESSAGE_FACTORY.getMessage("wrapperTask.loadingIncorrectApi", arg0, arg1, arg2);
+    }
+
+    /**
+     * You are loading JAX-WS {0} API from {1} but this tool requires JAX-WS {2} API.
+     *
+     */
+    public static String WRAPPER_TASK_LOADING_INCORRECT_API(Object arg0, Object arg1, Object arg2) {
+        return LOCALIZER.localize(localizableWRAPPER_TASK_LOADING_INCORRECT_API(arg0, arg1, arg2));
+    }
+
+    public static Localizable localizableWSCOMPILE_CANT_GET_COMPILER(Object arg0, Object arg1, Object arg2) {
+        return MESSAGE_FACTORY.getMessage("wscompile.cant.get.compiler", arg0, arg1, arg2);
+    }
+
+    /**
+     * No Java compiler found. Perhaps environment/JDK problem?
+     *  Used JVM: {0}, {1}/{2}
+     *
+     */
+    public static String WSCOMPILE_CANT_GET_COMPILER(Object arg0, Object arg1, Object arg2) {
+        return LOCALIZER.localize(localizableWSCOMPILE_CANT_GET_COMPILER(arg0, arg1, arg2));
     }
 
     public static Localizable localizableWSGEN_SERVICENAME_MISSING_LOCALNAME(Object arg0) {
-        return messageFactory.getMessage("wsgen.servicename.missing.localname", arg0);
+        return MESSAGE_FACTORY.getMessage("wsgen.servicename.missing.localname", arg0);
     }
 
     /**
@@ -871,85 +844,35 @@
      *
      */
     public static String WSGEN_SERVICENAME_MISSING_LOCALNAME(Object arg0) {
-        return localizer.localize(localizableWSGEN_SERVICENAME_MISSING_LOCALNAME(arg0));
+        return LOCALIZER.localize(localizableWSGEN_SERVICENAME_MISSING_LOCALNAME(arg0));
     }
 
-    public static Localizable localizableWSGEN_USAGE(Object arg0) {
-        return messageFactory.getMessage("wsgen.usage", arg0);
+    public static Localizable localizableWSCOMPILE_INVALID_OPTION(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("wscompile.invalidOption", arg0);
     }
 
     /**
-     * Usage: {0} [options] <SEI>
-     *
-     * Use "wsgen -help" for a detailed description of options.
+     * unrecognized parameter {0}
      *
      */
-    public static String WSGEN_USAGE(Object arg0) {
-        return localizer.localize(localizableWSGEN_USAGE(arg0));
+    public static String WSCOMPILE_INVALID_OPTION(Object arg0) {
+        return LOCALIZER.localize(localizableWSCOMPILE_INVALID_OPTION(arg0));
     }
 
-    public static Localizable localizableWSGEN_SERVICENAME_MISSING_NAMESPACE(Object arg0) {
-        return messageFactory.getMessage("wsgen.servicename.missing.namespace", arg0);
+    public static Localizable localizableWSIMPORT_HTTP_REDIRECT(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("wsimport.httpRedirect", arg0, arg1);
     }
 
     /**
-     * The service name "{0}" is missing a namespace.
+     * Server returned HTTP Status code: "{0}", retrying with "{1}"
      *
      */
-    public static String WSGEN_SERVICENAME_MISSING_NAMESPACE(Object arg0) {
-        return localizer.localize(localizableWSGEN_SERVICENAME_MISSING_NAMESPACE(arg0));
-    }
-
-    public static Localizable localizableWSGEN_INVALID_TRANSPORT(Object arg0, Object arg1) {
-        return messageFactory.getMessage("wsgen.invalid.transport", arg0, arg1);
-    }
-
-    /**
-     * "{0}" is not a supported transport.  Supported transport includes: {1}.
-     *
-     */
-    public static String WSGEN_INVALID_TRANSPORT(Object arg0, Object arg1) {
-        return localizer.localize(localizableWSGEN_INVALID_TRANSPORT(arg0, arg1));
-    }
-
-    public static Localizable localizableWSGEN_CANNOT_GEN_WSDL_FOR_SOAP_12_BINDING(Object arg0, Object arg1) {
-        return messageFactory.getMessage("wsgen.cannot.gen.wsdl.for.soap12.binding", arg0, arg1);
-    }
-
-    /**
-     * wsgen can not generate WSDL for SOAP 1.2 binding: {0} on class: {1}.Please specify "-extension" and "-wsdl:protocol XSoap1.2" switches. For example:wsgen -wsdl:protocol XSoap1.2 -extenson {1}
-     *
-     */
-    public static String WSGEN_CANNOT_GEN_WSDL_FOR_SOAP_12_BINDING(Object arg0, Object arg1) {
-        return localizer.localize(localizableWSGEN_CANNOT_GEN_WSDL_FOR_SOAP_12_BINDING(arg0, arg1));
-    }
-
-    public static Localizable localizableWSIMPORT_ILLEGAL_TARGET_VERSION(Object arg0) {
-        return messageFactory.getMessage("wsimport.ILLEGAL_TARGET_VERSION", arg0);
-    }
-
-    /**
-     * "{0}" is not a valid target version. "2.0" and "2.1" are supported.
-     *
-     */
-    public static String WSIMPORT_ILLEGAL_TARGET_VERSION(Object arg0) {
-        return localizer.localize(localizableWSIMPORT_ILLEGAL_TARGET_VERSION(arg0));
-    }
-
-    public static Localizable localizableWSIMPORT_ILLEGAL_PROXY(Object arg0) {
-        return messageFactory.getMessage("wsimport.ILLEGAL_PROXY", arg0);
-    }
-
-    /**
-     * "{0}" is not a valid proxy format. The format is [user[:password]@]proxyHost:proxyPort
-     *
-     */
-    public static String WSIMPORT_ILLEGAL_PROXY(Object arg0) {
-        return localizer.localize(localizableWSIMPORT_ILLEGAL_PROXY(arg0));
+    public static String WSIMPORT_HTTP_REDIRECT(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableWSIMPORT_HTTP_REDIRECT(arg0, arg1));
     }
 
     public static Localizable localizableWSGEN_PORTNAME_MISSING_LOCALNAME(Object arg0) {
-        return messageFactory.getMessage("wsgen.portname.missing.localname", arg0);
+        return MESSAGE_FACTORY.getMessage("wsgen.portname.missing.localname", arg0);
     }
 
     /**
@@ -957,31 +880,116 @@
      *
      */
     public static String WSGEN_PORTNAME_MISSING_LOCALNAME(Object arg0) {
-        return localizer.localize(localizableWSGEN_PORTNAME_MISSING_LOCALNAME(arg0));
+        return LOCALIZER.localize(localizableWSGEN_PORTNAME_MISSING_LOCALNAME(arg0));
     }
 
-    public static Localizable localizableWSGEN_PORTNAME_MISSING_NAMESPACE(Object arg0) {
-        return messageFactory.getMessage("wsgen.portname.missing.namespace", arg0);
+    public static Localizable localizableWSIMPORT_ERROR_MESSAGE(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("wsimport.ErrorMessage", arg0);
     }
 
     /**
-     * The port name "{0}" is missing a namespace.
+     * [ERROR] {0}
      *
      */
-    public static String WSGEN_PORTNAME_MISSING_NAMESPACE(Object arg0) {
-        return localizer.localize(localizableWSGEN_PORTNAME_MISSING_NAMESPACE(arg0));
+    public static String WSIMPORT_ERROR_MESSAGE(Object arg0) {
+        return LOCALIZER.localize(localizableWSIMPORT_ERROR_MESSAGE(arg0));
     }
 
-    public static Localizable localizableWSIMPORT_FULLVERSION(Object arg0) {
-        return messageFactory.getMessage("wsimport.fullversion", arg0);
+    public static Localizable localizableWSGEN_FULLVERSION(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("wsgen.fullversion", arg0);
     }
 
     /**
-     * wsimport full version "{0}"
+     * wsgen full version "{0}"
      *
      */
-    public static String WSIMPORT_FULLVERSION(Object arg0) {
-        return localizer.localize(localizableWSIMPORT_FULLVERSION(arg0));
+    public static String WSGEN_FULLVERSION(Object arg0) {
+        return LOCALIZER.localize(localizableWSGEN_FULLVERSION(arg0));
+    }
+
+    public static Localizable localizableWSGEN_WSDL_ARG_NO_GENWSDL(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("wsgen.wsdl.arg.no.genwsdl", arg0);
+    }
+
+    /**
+     * The "{0}" option can only be in conjunction with the "-wsdl" option.
+     *
+     */
+    public static String WSGEN_WSDL_ARG_NO_GENWSDL(Object arg0) {
+        return LOCALIZER.localize(localizableWSGEN_WSDL_ARG_NO_GENWSDL(arg0));
+    }
+
+    public static Localizable localizableWSCOMPILE_INFO(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("wscompile.info", arg0);
+    }
+
+    /**
+     * info: {0}
+     *
+     */
+    public static String WSCOMPILE_INFO(Object arg0) {
+        return LOCALIZER.localize(localizableWSCOMPILE_INFO(arg0));
+    }
+
+    public static Localizable localizableWSGEN_COULD_NOT_CREATE_FILE(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("wsgen.could.not.create.file", arg0);
+    }
+
+    /**
+     * Could not create file: "{0}"
+     *
+     */
+    public static String WSGEN_COULD_NOT_CREATE_FILE(Object arg0) {
+        return LOCALIZER.localize(localizableWSGEN_COULD_NOT_CREATE_FILE(arg0));
+    }
+
+    public static Localizable localizableWSIMPORT_ILLEGAL_AUTH_INFO(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("wsimport.ILLEGAL_AUTH_INFO", arg0);
+    }
+
+    /**
+     * "{0}" is not a valid authorization information format. The format is http[s]://user:password@host:port//<url-path>.
+     *
+     */
+    public static String WSIMPORT_ILLEGAL_AUTH_INFO(Object arg0) {
+        return LOCALIZER.localize(localizableWSIMPORT_ILLEGAL_AUTH_INFO(arg0));
+    }
+
+    public static Localizable localizableWSGEN_CANNOT_GEN_WSDL_FOR_NON_SOAP_BINDING(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("wsgen.cannot.gen.wsdl.for.non.soap.binding", arg0, arg1);
+    }
+
+    /**
+     * wsgen can not generate WSDL for non-SOAP binding: {0} on Class {1}
+     *
+     */
+    public static String WSGEN_CANNOT_GEN_WSDL_FOR_NON_SOAP_BINDING(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableWSGEN_CANNOT_GEN_WSDL_FOR_NON_SOAP_BINDING(arg0, arg1));
+    }
+
+    public static Localizable localizableWSIMPORT_FETCHING_METADATA() {
+        return MESSAGE_FACTORY.getMessage("wsimport.fetchingMetadata");
+    }
+
+    /**
+     *
+     * Downloading the WSDL and associated metadata
+     *
+     *
+     */
+    public static String WSIMPORT_FETCHING_METADATA() {
+        return LOCALIZER.localize(localizableWSIMPORT_FETCHING_METADATA());
+    }
+
+    private static class BundleSupplier
+        implements ResourceBundleSupplier
+    {
+
+
+        public ResourceBundle getResourceBundle(Locale locale) {
+            return ResourceBundle.getBundle(BUNDLE_NAME, locale);
+        }
+
     }
 
 }
diff --git a/src/jdk.xml.ws/share/classes/com/sun/tools/internal/ws/resources/WsdlMessages.java b/src/jdk.xml.ws/share/classes/com/sun/tools/internal/ws/resources/WsdlMessages.java
index a4ac6af..056ece9 100644
--- a/src/jdk.xml.ws/share/classes/com/sun/tools/internal/ws/resources/WsdlMessages.java
+++ b/src/jdk.xml.ws/share/classes/com/sun/tools/internal/ws/resources/WsdlMessages.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,12 +25,12 @@
 
 package com.sun.tools.internal.ws.resources;
 
-import com.sun.istack.internal.localization.Localizable;
-import com.sun.istack.internal.localization.LocalizableMessageFactory;
-import com.sun.istack.internal.localization.Localizer;
-
 import java.util.Locale;
 import java.util.ResourceBundle;
+import com.sun.istack.internal.localization.Localizable;
+import com.sun.istack.internal.localization.LocalizableMessageFactory;
+import com.sun.istack.internal.localization.LocalizableMessageFactory.ResourceBundleSupplier;
+import com.sun.istack.internal.localization.Localizer;
 
 
 /**
@@ -38,41 +38,49 @@
  *
  */
 public final class WsdlMessages {
+
     private final static String BUNDLE_NAME = "com.sun.tools.internal.ws.resources.wsdl";
-    private final static LocalizableMessageFactory messageFactory =
-        new LocalizableMessageFactory(BUNDLE_NAME, WsdlMessages::getResourceBundle);
-    private final static Localizer localizer = new Localizer();
+    private final static LocalizableMessageFactory MESSAGE_FACTORY = new LocalizableMessageFactory(BUNDLE_NAME, new WsdlMessages.BundleSupplier());
+    private final static Localizer LOCALIZER = new Localizer();
 
-    private static ResourceBundle getResourceBundle(Locale locale) {
-        return ResourceBundle.getBundle(BUNDLE_NAME, locale);
-    }
-
-    public static Localizable localizablePARSING_ELEMENT_EXPECTED() {
-        return messageFactory.getMessage("parsing.elementExpected");
+    public static Localizable localizablePARSING_NOT_AWSDL(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("Parsing.NotAWSDL", arg0);
     }
 
     /**
-     * unexpected non-element found
+     * Failed to get WSDL components, probably {0} is not a valid WSDL file.
      *
      */
-    public static String PARSING_ELEMENT_EXPECTED() {
-        return localizer.localize(localizablePARSING_ELEMENT_EXPECTED());
+    public static String PARSING_NOT_AWSDL(Object arg0) {
+        return LOCALIZER.localize(localizablePARSING_NOT_AWSDL(arg0));
     }
 
-    public static Localizable localizableENTITY_NOT_FOUND_BINDING(Object arg0, Object arg1) {
-        return messageFactory.getMessage("entity.notFound.binding", arg0, arg1);
+    public static Localizable localizablePARSER_NOT_A_BINDING_FILE(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("Parser.NotABindingFile", arg0, arg1);
     }
 
     /**
-     * wsdl:binding "{0}" referenced by wsdl:port "{1}", but it's not found in the wsdl
+     *  not an external binding file. The root element must be '{'http://java.sun.com/xml/ns/jaxws'}'bindings but it is '{'{0}'}'{1}
      *
      */
-    public static String ENTITY_NOT_FOUND_BINDING(Object arg0, Object arg1) {
-        return localizer.localize(localizableENTITY_NOT_FOUND_BINDING(arg0, arg1));
+    public static String PARSER_NOT_A_BINDING_FILE(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizablePARSER_NOT_A_BINDING_FILE(arg0, arg1));
+    }
+
+    public static Localizable localizablePARSING_UNKNOWN_EXTENSIBILITY_ELEMENT_OR_ATTRIBUTE(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("parsing.unknownExtensibilityElementOrAttribute", arg0, arg1);
+    }
+
+    /**
+     * unknown extensibility element or attribute "{0}" (in namespace "{1}")
+     *
+     */
+    public static String PARSING_UNKNOWN_EXTENSIBILITY_ELEMENT_OR_ATTRIBUTE(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizablePARSING_UNKNOWN_EXTENSIBILITY_ELEMENT_OR_ATTRIBUTE(arg0, arg1));
     }
 
     public static Localizable localizablePARSING_UNABLE_TO_GET_METADATA(Object arg0, Object arg1) {
-        return messageFactory.getMessage("parsing.unableToGetMetadata", arg0, arg1);
+        return MESSAGE_FACTORY.getMessage("parsing.unableToGetMetadata", arg0, arg1);
     }
 
     /**
@@ -82,555 +90,11 @@
      *
      */
     public static String PARSING_UNABLE_TO_GET_METADATA(Object arg0, Object arg1) {
-        return localizer.localize(localizablePARSING_UNABLE_TO_GET_METADATA(arg0, arg1));
-    }
-
-    public static Localizable localizablePARSING_PARSE_FAILED() {
-        return messageFactory.getMessage("Parsing.ParseFailed");
-    }
-
-    /**
-     *  Failed to parse the WSDL.
-     *
-     */
-    public static String PARSING_PARSE_FAILED() {
-        return localizer.localize(localizablePARSING_PARSE_FAILED());
-    }
-
-    public static Localizable localizablePARSING_INVALID_ATTRIBUTE_VALUE(Object arg0, Object arg1) {
-        return messageFactory.getMessage("parsing.invalidAttributeValue", arg0, arg1);
-    }
-
-    /**
-     * invalid value "{1}" for attribute "{0}"
-     *
-     */
-    public static String PARSING_INVALID_ATTRIBUTE_VALUE(Object arg0, Object arg1) {
-        return localizer.localize(localizablePARSING_INVALID_ATTRIBUTE_VALUE(arg0, arg1));
-    }
-
-    public static Localizable localizableVALIDATION_INVALID_ATTRIBUTE_VALUE(Object arg0, Object arg1) {
-        return messageFactory.getMessage("validation.invalidAttributeValue", arg0, arg1);
-    }
-
-    /**
-     * invalid value "{1}" for attribute "{0}"
-     *
-     */
-    public static String VALIDATION_INVALID_ATTRIBUTE_VALUE(Object arg0, Object arg1) {
-        return localizer.localize(localizableVALIDATION_INVALID_ATTRIBUTE_VALUE(arg0, arg1));
-    }
-
-    public static Localizable localizablePARSING_INVALID_TAG(Object arg0, Object arg1) {
-        return messageFactory.getMessage("parsing.invalidTag", arg0, arg1);
-    }
-
-    /**
-     * expected element "{1}", found "{0}"
-     *
-     */
-    public static String PARSING_INVALID_TAG(Object arg0, Object arg1) {
-        return localizer.localize(localizablePARSING_INVALID_TAG(arg0, arg1));
-    }
-
-    public static Localizable localizableENTITY_NOT_FOUND_PORT_TYPE(Object arg0, Object arg1) {
-        return messageFactory.getMessage("entity.notFound.portType", arg0, arg1);
-    }
-
-    /**
-     * wsdl:portType "{0}" referenced by wsdl:binding "{1}", but it's not found in the wsdl
-     *
-     */
-    public static String ENTITY_NOT_FOUND_PORT_TYPE(Object arg0, Object arg1) {
-        return localizer.localize(localizableENTITY_NOT_FOUND_PORT_TYPE(arg0, arg1));
-    }
-
-    public static Localizable localizablePARSING_MISSING_REQUIRED_ATTRIBUTE(Object arg0, Object arg1) {
-        return messageFactory.getMessage("parsing.missingRequiredAttribute", arg0, arg1);
-    }
-
-    /**
-     * missing required attribute "{1}" of element "{0}"
-     *
-     */
-    public static String PARSING_MISSING_REQUIRED_ATTRIBUTE(Object arg0, Object arg1) {
-        return localizer.localize(localizablePARSING_MISSING_REQUIRED_ATTRIBUTE(arg0, arg1));
-    }
-
-    public static Localizable localizablePARSING_INVALID_ELEMENT(Object arg0, Object arg1) {
-        return messageFactory.getMessage("parsing.invalidElement", arg0, arg1);
-    }
-
-    /**
-     * invalid element: "{0}" (in namespace "{1}")
-     *
-     */
-    public static String PARSING_INVALID_ELEMENT(Object arg0, Object arg1) {
-        return localizer.localize(localizablePARSING_INVALID_ELEMENT(arg0, arg1));
-    }
-
-    public static Localizable localizableVALIDATION_INVALID_ELEMENT(Object arg0) {
-        return messageFactory.getMessage("validation.invalidElement", arg0);
-    }
-
-    /**
-     * invalid element: "{0}"
-     *
-     */
-    public static String VALIDATION_INVALID_ELEMENT(Object arg0) {
-        return localizer.localize(localizableVALIDATION_INVALID_ELEMENT(arg0));
-    }
-
-    public static Localizable localizableINTERNALIZER_TWO_VERSION_ATTRIBUTES() {
-        return messageFactory.getMessage("Internalizer.TwoVersionAttributes");
-    }
-
-    /**
-     *  Both jaxws:version and version are present
-     *
-     */
-    public static String INTERNALIZER_TWO_VERSION_ATTRIBUTES() {
-        return localizer.localize(localizableINTERNALIZER_TWO_VERSION_ATTRIBUTES());
-    }
-
-    public static Localizable localizableVALIDATION_DUPLICATE_PART_NAME(Object arg0, Object arg1) {
-        return messageFactory.getMessage("validation.duplicatePartName", arg0, arg1);
-    }
-
-    /**
-     * Invalid WSDL, duplicate parts in a wsdl:message is not allowed.
-     * wsdl:message {0} has a duplicated part name: "{1}"
-     *
-     */
-    public static String VALIDATION_DUPLICATE_PART_NAME(Object arg0, Object arg1) {
-        return localizer.localize(localizableVALIDATION_DUPLICATE_PART_NAME(arg0, arg1));
-    }
-
-    public static Localizable localizablePARSING_INVALID_WSDL_ELEMENT(Object arg0) {
-        return messageFactory.getMessage("parsing.invalidWsdlElement", arg0);
-    }
-
-    /**
-     * invalid WSDL element: "{0}"
-     *
-     */
-    public static String PARSING_INVALID_WSDL_ELEMENT(Object arg0) {
-        return localizer.localize(localizablePARSING_INVALID_WSDL_ELEMENT(arg0));
-    }
-
-    public static Localizable localizablePARSING_NON_WHITESPACE_TEXT_FOUND(Object arg0) {
-        return messageFactory.getMessage("parsing.nonWhitespaceTextFound", arg0);
-    }
-
-    /**
-     * found unexpected non-whitespace text: "{0}"
-     *
-     */
-    public static String PARSING_NON_WHITESPACE_TEXT_FOUND(Object arg0) {
-        return localizer.localize(localizablePARSING_NON_WHITESPACE_TEXT_FOUND(arg0));
-    }
-
-    public static Localizable localizableINTERNALIZER_TARGET_NOT_FOUND(Object arg0) {
-        return messageFactory.getMessage("internalizer.targetNotFound", arg0);
-    }
-
-    /**
-     *  No target found for the wsdlLocation: {0}
-     *
-     */
-    public static String INTERNALIZER_TARGET_NOT_FOUND(Object arg0) {
-        return localizer.localize(localizableINTERNALIZER_TARGET_NOT_FOUND(arg0));
-    }
-
-    public static Localizable localizablePARSING_SAX_EXCEPTION_WITH_SYSTEM_ID(Object arg0) {
-        return messageFactory.getMessage("parsing.saxExceptionWithSystemId", arg0);
-    }
-
-    /**
-     * invalid WSDL file! failed to parse document at "{0}"
-     *
-     */
-    public static String PARSING_SAX_EXCEPTION_WITH_SYSTEM_ID(Object arg0) {
-        return localizer.localize(localizablePARSING_SAX_EXCEPTION_WITH_SYSTEM_ID(arg0));
-    }
-
-    public static Localizable localizablePARSING_REQUIRED_EXTENSIBILITY_ELEMENT(Object arg0, Object arg1) {
-        return messageFactory.getMessage("parsing.requiredExtensibilityElement", arg0, arg1);
-    }
-
-    /**
-     * unknown required extensibility element "{0}" (in namespace "{1}")
-     *
-     */
-    public static String PARSING_REQUIRED_EXTENSIBILITY_ELEMENT(Object arg0, Object arg1) {
-        return localizer.localize(localizablePARSING_REQUIRED_EXTENSIBILITY_ELEMENT(arg0, arg1));
-    }
-
-    public static Localizable localizableENTITY_NOT_FOUND_BY_ID(Object arg0) {
-        return messageFactory.getMessage("entity.notFoundByID", arg0);
-    }
-
-    /**
-     * invalid entity id: "{0}"
-     *
-     */
-    public static String ENTITY_NOT_FOUND_BY_ID(Object arg0) {
-        return localizer.localize(localizableENTITY_NOT_FOUND_BY_ID(arg0));
-    }
-
-    public static Localizable localizableVALIDATION_EXCLUSIVE_ATTRIBUTES(Object arg0, Object arg1) {
-        return messageFactory.getMessage("validation.exclusiveAttributes", arg0, arg1);
-    }
-
-    /**
-     * exclusive attributes: "{0}", "{1}"
-     *
-     */
-    public static String VALIDATION_EXCLUSIVE_ATTRIBUTES(Object arg0, Object arg1) {
-        return localizer.localize(localizableVALIDATION_EXCLUSIVE_ATTRIBUTES(arg0, arg1));
-    }
-
-    public static Localizable localizableVALIDATION_MISSING_REQUIRED_SUB_ENTITY(Object arg0, Object arg1) {
-        return messageFactory.getMessage("validation.missingRequiredSubEntity", arg0, arg1);
-    }
-
-    /**
-     * missing required sub-entity "{0}" of element "{1}"
-     *
-     */
-    public static String VALIDATION_MISSING_REQUIRED_SUB_ENTITY(Object arg0, Object arg1) {
-        return localizer.localize(localizableVALIDATION_MISSING_REQUIRED_SUB_ENTITY(arg0, arg1));
-    }
-
-    public static Localizable localizableINTERNALIZER_INCORRECT_VERSION() {
-        return messageFactory.getMessage("Internalizer.IncorrectVersion");
-    }
-
-    /**
-     *  JAXWS version attribute must be "2.0"
-     *
-     */
-    public static String INTERNALIZER_INCORRECT_VERSION() {
-        return localizer.localize(localizableINTERNALIZER_INCORRECT_VERSION());
-    }
-
-    public static Localizable localizableLOCALIZED_ERROR(Object arg0) {
-        return messageFactory.getMessage("localized.error", arg0);
-    }
-
-    /**
-     * {0}
-     *
-     */
-    public static String LOCALIZED_ERROR(Object arg0) {
-        return localizer.localize(localizableLOCALIZED_ERROR(arg0));
-    }
-
-    public static Localizable localizableENTITY_DUPLICATE_WITH_TYPE(Object arg0, Object arg1) {
-        return messageFactory.getMessage("entity.duplicateWithType", arg0, arg1);
-    }
-
-    /**
-     * duplicate "{0}" entity: "{1}"
-     *
-     */
-    public static String ENTITY_DUPLICATE_WITH_TYPE(Object arg0, Object arg1) {
-        return localizer.localize(localizableENTITY_DUPLICATE_WITH_TYPE(arg0, arg1));
-    }
-
-    public static Localizable localizablePARSING_ONLY_ONE_OF_ELEMENT_OR_TYPE_REQUIRED(Object arg0) {
-        return messageFactory.getMessage("parsing.onlyOneOfElementOrTypeRequired", arg0);
-    }
-
-    /**
-     * only one of the "element" or "type" attributes is allowed in part "{0}"
-     *
-     */
-    public static String PARSING_ONLY_ONE_OF_ELEMENT_OR_TYPE_REQUIRED(Object arg0) {
-        return localizer.localize(localizablePARSING_ONLY_ONE_OF_ELEMENT_OR_TYPE_REQUIRED(arg0));
-    }
-
-    public static Localizable localizableVALIDATION_UNSUPPORTED_USE_ENCODED(Object arg0, Object arg1) {
-        return messageFactory.getMessage("validation.unsupportedUse.encoded", arg0, arg1);
-    }
-
-    /**
-     * "Use of SOAP Encoding is not supported.
-     * SOAP extension element on line {0} in {1} has use="encoded" "
-     *
-     */
-    public static String VALIDATION_UNSUPPORTED_USE_ENCODED(Object arg0, Object arg1) {
-        return localizer.localize(localizableVALIDATION_UNSUPPORTED_USE_ENCODED(arg0, arg1));
-    }
-
-    public static Localizable localizablePARSING_INCORRECT_ROOT_ELEMENT(Object arg0, Object arg1, Object arg2, Object arg3) {
-        return messageFactory.getMessage("parsing.incorrectRootElement", arg0, arg1, arg2, arg3);
-    }
-
-    /**
-     * expected root element "{2}" (in namespace "{3}"), found element "{0}" (in namespace "{1}")
-     *
-     */
-    public static String PARSING_INCORRECT_ROOT_ELEMENT(Object arg0, Object arg1, Object arg2, Object arg3) {
-        return localizer.localize(localizablePARSING_INCORRECT_ROOT_ELEMENT(arg0, arg1, arg2, arg3));
-    }
-
-    public static Localizable localizableTRY_WITH_MEX(Object arg0) {
-        return messageFactory.getMessage("try.with.mex", arg0);
-    }
-
-    /**
-     * {0}
-     *
-     * retrying with MEX...
-     *
-     */
-    public static String TRY_WITH_MEX(Object arg0) {
-        return localizer.localize(localizableTRY_WITH_MEX(arg0));
-    }
-
-    public static Localizable localizableVALIDATION_MISSING_REQUIRED_ATTRIBUTE(Object arg0, Object arg1) {
-        return messageFactory.getMessage("validation.missingRequiredAttribute", arg0, arg1);
-    }
-
-    /**
-     * missing required attribute "{0}" of element "{1}"
-     *
-     */
-    public static String VALIDATION_MISSING_REQUIRED_ATTRIBUTE(Object arg0, Object arg1) {
-        return localizer.localize(localizableVALIDATION_MISSING_REQUIRED_ATTRIBUTE(arg0, arg1));
-    }
-
-    public static Localizable localizablePARSING_IO_EXCEPTION(Object arg0) {
-        return messageFactory.getMessage("parsing.ioException", arg0);
-    }
-
-    /**
-     * parsing failed: {0}
-     *
-     */
-    public static String PARSING_IO_EXCEPTION(Object arg0) {
-        return localizer.localize(localizablePARSING_IO_EXCEPTION(arg0));
-    }
-
-    public static Localizable localizableINTERNALIZER_X_PATH_EVAULATES_TO_TOO_MANY_TARGETS(Object arg0, Object arg1) {
-        return messageFactory.getMessage("internalizer.XPathEvaulatesToTooManyTargets", arg0, arg1);
-    }
-
-    /**
-     * XPath evaluation of "{0}" results in too many ({1}) target nodes
-     *
-     */
-    public static String INTERNALIZER_X_PATH_EVAULATES_TO_TOO_MANY_TARGETS(Object arg0, Object arg1) {
-        return localizer.localize(localizableINTERNALIZER_X_PATH_EVAULATES_TO_TOO_MANY_TARGETS(arg0, arg1));
-    }
-
-    public static Localizable localizablePARSER_NOT_A_BINDING_FILE(Object arg0, Object arg1) {
-        return messageFactory.getMessage("Parser.NotABindingFile", arg0, arg1);
-    }
-
-    /**
-     *  not an external binding file. The root element must be '{'http://java.sun.com/xml/ns/jaxws'}'bindings but it is '{'{0}'}'{1}
-     *
-     */
-    public static String PARSER_NOT_A_BINDING_FILE(Object arg0, Object arg1) {
-        return localizer.localize(localizablePARSER_NOT_A_BINDING_FILE(arg0, arg1));
-    }
-
-    public static Localizable localizablePARSING_UNKNOWN_NAMESPACE_PREFIX(Object arg0) {
-        return messageFactory.getMessage("parsing.unknownNamespacePrefix", arg0);
-    }
-
-    /**
-     * undeclared namespace prefix: "{0}"
-     *
-     */
-    public static String PARSING_UNKNOWN_NAMESPACE_PREFIX(Object arg0) {
-        return localizer.localize(localizablePARSING_UNKNOWN_NAMESPACE_PREFIX(arg0));
-    }
-
-    public static Localizable localizablePARSING_FACTORY_CONFIG_EXCEPTION(Object arg0) {
-        return messageFactory.getMessage("parsing.factoryConfigException", arg0);
-    }
-
-    /**
-     * invalid WSDL file! parsing failed: {0}
-     *
-     */
-    public static String PARSING_FACTORY_CONFIG_EXCEPTION(Object arg0) {
-        return localizer.localize(localizablePARSING_FACTORY_CONFIG_EXCEPTION(arg0));
-    }
-
-    public static Localizable localizableVALIDATION_MISSING_REQUIRED_PROPERTY(Object arg0, Object arg1) {
-        return messageFactory.getMessage("validation.missingRequiredProperty", arg0, arg1);
-    }
-
-    /**
-     * missing required property "{0}" of element "{1}"
-     *
-     */
-    public static String VALIDATION_MISSING_REQUIRED_PROPERTY(Object arg0, Object arg1) {
-        return localizer.localize(localizableVALIDATION_MISSING_REQUIRED_PROPERTY(arg0, arg1));
-    }
-
-    public static Localizable localizablePARSING_INVALID_OPERATION_STYLE(Object arg0) {
-        return messageFactory.getMessage("parsing.invalidOperationStyle", arg0);
-    }
-
-    /**
-     * operation "{0}" has an invalid style
-     *
-     */
-    public static String PARSING_INVALID_OPERATION_STYLE(Object arg0) {
-        return localizer.localize(localizablePARSING_INVALID_OPERATION_STYLE(arg0));
-    }
-
-    public static Localizable localizableINTERNALIZER_X_PATH_EVALUATION_ERROR(Object arg0) {
-        return messageFactory.getMessage("internalizer.XPathEvaluationError", arg0);
-    }
-
-    /**
-     * XPath error: {0}
-     *
-     */
-    public static String INTERNALIZER_X_PATH_EVALUATION_ERROR(Object arg0) {
-        return localizer.localize(localizableINTERNALIZER_X_PATH_EVALUATION_ERROR(arg0));
-    }
-
-    public static Localizable localizableVALIDATION_INVALID_SUB_ENTITY(Object arg0, Object arg1) {
-        return messageFactory.getMessage("validation.invalidSubEntity", arg0, arg1);
-    }
-
-    /**
-     * invalid sub-element "{0}" of element "{1}"
-     *
-     */
-    public static String VALIDATION_INVALID_SUB_ENTITY(Object arg0, Object arg1) {
-        return localizer.localize(localizableVALIDATION_INVALID_SUB_ENTITY(arg0, arg1));
-    }
-
-    public static Localizable localizableVALIDATION_SHOULD_NOT_HAPPEN(Object arg0) {
-        return messageFactory.getMessage("validation.shouldNotHappen", arg0);
-    }
-
-    /**
-     * internal error ("{0}")
-     *
-     */
-    public static String VALIDATION_SHOULD_NOT_HAPPEN(Object arg0) {
-        return localizer.localize(localizableVALIDATION_SHOULD_NOT_HAPPEN(arg0));
-    }
-
-    public static Localizable localizableABSTRACT_REFERENCE_FINDER_IMPL_UNABLE_TO_PARSE(Object arg0, Object arg1) {
-        return messageFactory.getMessage("AbstractReferenceFinderImpl.UnableToParse", arg0, arg1);
-    }
-
-    /**
-     *  Unable to parse "{0}" : {1}
-     *
-     */
-    public static String ABSTRACT_REFERENCE_FINDER_IMPL_UNABLE_TO_PARSE(Object arg0, Object arg1) {
-        return localizer.localize(localizableABSTRACT_REFERENCE_FINDER_IMPL_UNABLE_TO_PARSE(arg0, arg1));
-    }
-
-    public static Localizable localizableWARNING_FAULT_EMPTY_ACTION(Object arg0, Object arg1, Object arg2) {
-        return messageFactory.getMessage("warning.faultEmptyAction", arg0, arg1, arg2);
-    }
-
-    /**
-     * ignoring empty Action in "{0}" {1} element of "{2}" operation, using default instead
-     *
-     */
-    public static String WARNING_FAULT_EMPTY_ACTION(Object arg0, Object arg1, Object arg2) {
-        return localizer.localize(localizableWARNING_FAULT_EMPTY_ACTION(arg0, arg1, arg2));
-    }
-
-    public static Localizable localizablePARSING_INVALID_EXTENSION_ELEMENT(Object arg0, Object arg1) {
-        return messageFactory.getMessage("parsing.invalidExtensionElement", arg0, arg1);
-    }
-
-    /**
-     * invalid extension element: "{0}" (in namespace "{1}")
-     *
-     */
-    public static String PARSING_INVALID_EXTENSION_ELEMENT(Object arg0, Object arg1) {
-        return localizer.localize(localizablePARSING_INVALID_EXTENSION_ELEMENT(arg0, arg1));
-    }
-
-    public static Localizable localizableINTERNALIZER_X_PATH_EVALUATES_TO_NON_ELEMENT(Object arg0) {
-        return messageFactory.getMessage("internalizer.XPathEvaluatesToNonElement", arg0);
-    }
-
-    /**
-     * XPath evaluation of "{0}" needs to result in an element.
-     *
-     */
-    public static String INTERNALIZER_X_PATH_EVALUATES_TO_NON_ELEMENT(Object arg0) {
-        return localizer.localize(localizableINTERNALIZER_X_PATH_EVALUATES_TO_NON_ELEMENT(arg0));
-    }
-
-    public static Localizable localizableINTERNALIZER_X_PATH_EVALUATES_TO_NO_TARGET(Object arg0) {
-        return messageFactory.getMessage("internalizer.XPathEvaluatesToNoTarget", arg0);
-    }
-
-    /**
-     * XPath evaluation of "{0}" results in an empty target node
-     *
-     */
-    public static String INTERNALIZER_X_PATH_EVALUATES_TO_NO_TARGET(Object arg0) {
-        return localizer.localize(localizableINTERNALIZER_X_PATH_EVALUATES_TO_NO_TARGET(arg0));
-    }
-
-    public static Localizable localizablePARSING_SAX_EXCEPTION(Object arg0) {
-        return messageFactory.getMessage("parsing.saxException", arg0);
-    }
-
-    /**
-     * invalid WSDL file! parsing failed: {0}
-     *
-     */
-    public static String PARSING_SAX_EXCEPTION(Object arg0) {
-        return localizer.localize(localizablePARSING_SAX_EXCEPTION(arg0));
-    }
-
-    public static Localizable localizableINVALID_CUSTOMIZATION_NAMESPACE(Object arg0) {
-        return messageFactory.getMessage("invalid.customization.namespace", arg0);
-    }
-
-    /**
-     * Ignoring customization: "{0}", because it has no namespace. It must belong to the customization namespace.
-     *
-     */
-    public static String INVALID_CUSTOMIZATION_NAMESPACE(Object arg0) {
-        return localizer.localize(localizableINVALID_CUSTOMIZATION_NAMESPACE(arg0));
-    }
-
-    public static Localizable localizableVALIDATION_INVALID_ATTRIBUTE(Object arg0, Object arg1) {
-        return messageFactory.getMessage("validation.invalidAttribute", arg0, arg1);
-    }
-
-    /**
-     * invalid attribute "{0}" of element "{1}"
-     *
-     */
-    public static String VALIDATION_INVALID_ATTRIBUTE(Object arg0, Object arg1) {
-        return localizer.localize(localizableVALIDATION_INVALID_ATTRIBUTE(arg0, arg1));
-    }
-
-    public static Localizable localizablePARSING_PARSER_CONFIG_EXCEPTION(Object arg0) {
-        return messageFactory.getMessage("parsing.parserConfigException", arg0);
-    }
-
-    /**
-     * invalid WSDL file! parsing failed: {0}
-     *
-     */
-    public static String PARSING_PARSER_CONFIG_EXCEPTION(Object arg0) {
-        return localizer.localize(localizablePARSING_PARSER_CONFIG_EXCEPTION(arg0));
+        return LOCALIZER.localize(localizablePARSING_UNABLE_TO_GET_METADATA(arg0, arg1));
     }
 
     public static Localizable localizablePARSING_ONLY_ONE_TYPES_ALLOWED(Object arg0) {
-        return messageFactory.getMessage("parsing.onlyOneTypesAllowed", arg0);
+        return MESSAGE_FACTORY.getMessage("parsing.onlyOneTypesAllowed", arg0);
     }
 
     /**
@@ -638,215 +102,23 @@
      *
      */
     public static String PARSING_ONLY_ONE_TYPES_ALLOWED(Object arg0) {
-        return localizer.localize(localizablePARSING_ONLY_ONE_TYPES_ALLOWED(arg0));
+        return LOCALIZER.localize(localizablePARSING_ONLY_ONE_TYPES_ALLOWED(arg0));
     }
 
-    public static Localizable localizablePARSING_INVALID_URI(Object arg0) {
-        return messageFactory.getMessage("parsing.invalidURI", arg0);
+    public static Localizable localizableVALIDATION_SHOULD_NOT_HAPPEN(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("validation.shouldNotHappen", arg0);
     }
 
     /**
-     * invalid URI: {0}
+     * internal error ("{0}")
      *
      */
-    public static String PARSING_INVALID_URI(Object arg0) {
-        return localizer.localize(localizablePARSING_INVALID_URI(arg0));
-    }
-
-    public static Localizable localizableVALIDATION_INCORRECT_TARGET_NAMESPACE(Object arg0, Object arg1) {
-        return messageFactory.getMessage("validation.incorrectTargetNamespace", arg0, arg1);
-    }
-
-    /**
-     * target namespace is incorrect (expected: {1}, found: {0})
-     *
-     */
-    public static String VALIDATION_INCORRECT_TARGET_NAMESPACE(Object arg0, Object arg1) {
-        return localizer.localize(localizableVALIDATION_INCORRECT_TARGET_NAMESPACE(arg0, arg1));
-    }
-
-    public static Localizable localizableENTITY_NOT_FOUND_BY_Q_NAME(Object arg0, Object arg1, Object arg2) {
-        return messageFactory.getMessage("entity.notFoundByQName", arg0, arg1, arg2);
-    }
-
-    /**
-     * {0} "{1}" not found in the wsdl: {2}
-     *
-     */
-    public static String ENTITY_NOT_FOUND_BY_Q_NAME(Object arg0, Object arg1, Object arg2) {
-        return localizer.localize(localizableENTITY_NOT_FOUND_BY_Q_NAME(arg0, arg1, arg2));
-    }
-
-    public static Localizable localizableINVALID_WSDL(Object arg0, Object arg1, Object arg2, Object arg3) {
-        return messageFactory.getMessage("invalid.wsdl", arg0, arg1, arg2, arg3);
-    }
-
-    /**
-     * Invalid WSDL {0}, expected {1} found {2} at (line {3})
-     *
-     */
-    public static String INVALID_WSDL(Object arg0, Object arg1, Object arg2, Object arg3) {
-        return localizer.localize(localizableINVALID_WSDL(arg0, arg1, arg2, arg3));
-    }
-
-    public static Localizable localizablePARSING_UNKNOWN_IMPORTED_DOCUMENT_TYPE(Object arg0) {
-        return messageFactory.getMessage("parsing.unknownImportedDocumentType", arg0);
-    }
-
-    /**
-     * imported document is of unknown type: {0}
-     *
-     */
-    public static String PARSING_UNKNOWN_IMPORTED_DOCUMENT_TYPE(Object arg0) {
-        return localizer.localize(localizablePARSING_UNKNOWN_IMPORTED_DOCUMENT_TYPE(arg0));
-    }
-
-    public static Localizable localizablePARSING_IO_EXCEPTION_WITH_SYSTEM_ID(Object arg0) {
-        return messageFactory.getMessage("parsing.ioExceptionWithSystemId", arg0);
-    }
-
-    /**
-     * failed to parse document at "{0}"
-     *
-     */
-    public static String PARSING_IO_EXCEPTION_WITH_SYSTEM_ID(Object arg0) {
-        return localizer.localize(localizablePARSING_IO_EXCEPTION_WITH_SYSTEM_ID(arg0));
-    }
-
-    public static Localizable localizableVALIDATION_AMBIGUOUS_NAME(Object arg0) {
-        return messageFactory.getMessage("validation.ambiguousName", arg0);
-    }
-
-    /**
-     * ambiguous operation name: "{0}"
-     *
-     */
-    public static String VALIDATION_AMBIGUOUS_NAME(Object arg0) {
-        return localizer.localize(localizableVALIDATION_AMBIGUOUS_NAME(arg0));
-    }
-
-    public static Localizable localizablePARSING_WSDL_NOT_DEFAULT_NAMESPACE(Object arg0) {
-        return messageFactory.getMessage("parsing.wsdlNotDefaultNamespace", arg0);
-    }
-
-    /**
-     * default namespace must be "{0}"
-     *
-     */
-    public static String PARSING_WSDL_NOT_DEFAULT_NAMESPACE(Object arg0) {
-        return localizer.localize(localizablePARSING_WSDL_NOT_DEFAULT_NAMESPACE(arg0));
-    }
-
-    public static Localizable localizablePARSING_UNKNOWN_EXTENSIBILITY_ELEMENT_OR_ATTRIBUTE(Object arg0, Object arg1) {
-        return messageFactory.getMessage("parsing.unknownExtensibilityElementOrAttribute", arg0, arg1);
-    }
-
-    /**
-     * unknown extensibility element or attribute "{0}" (in namespace "{1}")
-     *
-     */
-    public static String PARSING_UNKNOWN_EXTENSIBILITY_ELEMENT_OR_ATTRIBUTE(Object arg0, Object arg1) {
-        return localizer.localize(localizablePARSING_UNKNOWN_EXTENSIBILITY_ELEMENT_OR_ATTRIBUTE(arg0, arg1));
-    }
-
-    public static Localizable localizableVALIDATION_DUPLICATED_ELEMENT(Object arg0) {
-        return messageFactory.getMessage("validation.duplicatedElement", arg0);
-    }
-
-    /**
-     * duplicated element: "{0}"
-     *
-     */
-    public static String VALIDATION_DUPLICATED_ELEMENT(Object arg0) {
-        return localizer.localize(localizableVALIDATION_DUPLICATED_ELEMENT(arg0));
-    }
-
-    public static Localizable localizableINTERNALIZER_TARGET_NOT_AN_ELEMENT() {
-        return messageFactory.getMessage("internalizer.targetNotAnElement");
-    }
-
-    /**
-     *  Target node is not an element
-     *
-     */
-    public static String INTERNALIZER_TARGET_NOT_AN_ELEMENT() {
-        return localizer.localize(localizableINTERNALIZER_TARGET_NOT_AN_ELEMENT());
-    }
-
-    public static Localizable localizableWARNING_INPUT_OUTPUT_EMPTY_ACTION(Object arg0, Object arg1) {
-        return messageFactory.getMessage("warning.inputOutputEmptyAction", arg0, arg1);
-    }
-
-    /**
-     * ignoring empty Action in {0} element of "{1}" operation, using default instead
-     *
-     */
-    public static String WARNING_INPUT_OUTPUT_EMPTY_ACTION(Object arg0, Object arg1) {
-        return localizer.localize(localizableWARNING_INPUT_OUTPUT_EMPTY_ACTION(arg0, arg1));
-    }
-
-    public static Localizable localizablePARSING_INVALID_TAG_NS(Object arg0, Object arg1, Object arg2, Object arg3, Object arg4) {
-        return messageFactory.getMessage("parsing.invalidTagNS", arg0, arg1, arg2, arg3, arg4);
-    }
-
-    /**
-     * Invalid WSDL at {4}: expected element "{2}" (in namespace "{3}"), found element "{0}" (in namespace "{1}")
-     *
-     */
-    public static String PARSING_INVALID_TAG_NS(Object arg0, Object arg1, Object arg2, Object arg3, Object arg4) {
-        return localizer.localize(localizablePARSING_INVALID_TAG_NS(arg0, arg1, arg2, arg3, arg4));
-    }
-
-    public static Localizable localizableINVALID_WSDL_WITH_DOOC(Object arg0, Object arg1) {
-        return messageFactory.getMessage("invalid.wsdl.with.dooc", arg0, arg1);
-    }
-
-    /**
-     * "Not a WSDL document: {0}, it gives "{1}", retrying with MEX..."
-     *
-     */
-    public static String INVALID_WSDL_WITH_DOOC(Object arg0, Object arg1) {
-        return localizer.localize(localizableINVALID_WSDL_WITH_DOOC(arg0, arg1));
-    }
-
-    public static Localizable localizablePARSING_NOT_AWSDL(Object arg0) {
-        return messageFactory.getMessage("Parsing.NotAWSDL", arg0);
-    }
-
-    /**
-     * Failed to get WSDL components, probably {0} is not a valid WSDL file.
-     *
-     */
-    public static String PARSING_NOT_AWSDL(Object arg0) {
-        return localizer.localize(localizablePARSING_NOT_AWSDL(arg0));
-    }
-
-    public static Localizable localizableENTITY_DUPLICATE(Object arg0) {
-        return messageFactory.getMessage("entity.duplicate", arg0);
-    }
-
-    /**
-     * duplicate entity: "{0}"
-     *
-     */
-    public static String ENTITY_DUPLICATE(Object arg0) {
-        return localizer.localize(localizableENTITY_DUPLICATE(arg0));
-    }
-
-    public static Localizable localizableWARNING_WSI_R_2004() {
-        return messageFactory.getMessage("warning.wsi.r2004");
-    }
-
-    /**
-     * Not a WSI-BP compliant WSDL (R2001, R2004). xsd:import must not import XML Schema definitions embedded inline within the WSDL document.
-     *
-     */
-    public static String WARNING_WSI_R_2004() {
-        return localizer.localize(localizableWARNING_WSI_R_2004());
+    public static String VALIDATION_SHOULD_NOT_HAPPEN(Object arg0) {
+        return LOCALIZER.localize(localizableVALIDATION_SHOULD_NOT_HAPPEN(arg0));
     }
 
     public static Localizable localizableWARNING_WSI_R_2003() {
-        return messageFactory.getMessage("warning.wsi.r2003");
+        return MESSAGE_FACTORY.getMessage("warning.wsi.r2003");
     }
 
     /**
@@ -854,95 +126,71 @@
      *
      */
     public static String WARNING_WSI_R_2003() {
-        return localizer.localize(localizableWARNING_WSI_R_2003());
+        return LOCALIZER.localize(localizableWARNING_WSI_R_2003());
     }
 
-    public static Localizable localizableWARNING_WSI_R_2002(Object arg0, Object arg1) {
-        return messageFactory.getMessage("warning.wsi.r2002", arg0, arg1);
+    public static Localizable localizableWARNING_WSI_R_2004() {
+        return MESSAGE_FACTORY.getMessage("warning.wsi.r2004");
     }
 
     /**
-     * Not a WSI-BP compliant WSDL (R2002). wsdl:import must not be used to import XML Schema embedded in the WSDL document. Expected WSDL namespace: {0}, found: {1}
+     * Not a WSI-BP compliant WSDL (R2001, R2004). xsd:import must not import XML Schema definitions embedded inline within the WSDL document.
      *
      */
-    public static String WARNING_WSI_R_2002(Object arg0, Object arg1) {
-        return localizer.localize(localizableWARNING_WSI_R_2002(arg0, arg1));
+    public static String WARNING_WSI_R_2004() {
+        return LOCALIZER.localize(localizableWARNING_WSI_R_2004());
     }
 
-    public static Localizable localizablePARSING_ELEMENT_OR_TYPE_REQUIRED(Object arg0) {
-        return messageFactory.getMessage("parsing.elementOrTypeRequired", arg0);
+    public static Localizable localizableVALIDATION_INVALID_ATTRIBUTE(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("validation.invalidAttribute", arg0, arg1);
     }
 
     /**
-     * warning: part {0} is ignored, either the "element" or the "type" attribute is required in part "{0}"
+     * invalid attribute "{0}" of element "{1}"
      *
      */
-    public static String PARSING_ELEMENT_OR_TYPE_REQUIRED(Object arg0) {
-        return localizer.localize(localizablePARSING_ELEMENT_OR_TYPE_REQUIRED(arg0));
+    public static String VALIDATION_INVALID_ATTRIBUTE(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableVALIDATION_INVALID_ATTRIBUTE(arg0, arg1));
     }
 
-    public static Localizable localizableWARNING_WSI_R_2001() {
-        return messageFactory.getMessage("warning.wsi.r2001");
+    public static Localizable localizableVALIDATION_INVALID_ATTRIBUTE_VALUE(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("validation.invalidAttributeValue", arg0, arg1);
     }
 
     /**
-     * Not a WSI-BP compliant WSDL (R2001, R2002). wsdl:import must import only WSDL documents. It's trying to import: "{0}"
+     * invalid value "{1}" for attribute "{0}"
      *
      */
-    public static String WARNING_WSI_R_2001() {
-        return localizer.localize(localizableWARNING_WSI_R_2001());
+    public static String VALIDATION_INVALID_ATTRIBUTE_VALUE(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableVALIDATION_INVALID_ATTRIBUTE_VALUE(arg0, arg1));
     }
 
-    public static Localizable localizableFILE_NOT_FOUND(Object arg0) {
-        return messageFactory.getMessage("file.not.found", arg0);
+    public static Localizable localizablePARSING_IO_EXCEPTION_WITH_SYSTEM_ID(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("parsing.ioExceptionWithSystemId", arg0);
     }
 
     /**
-     * {0} is unreachable
+     * failed to parse document at "{0}"
      *
      */
-    public static String FILE_NOT_FOUND(Object arg0) {
-        return localizer.localize(localizableFILE_NOT_FOUND(arg0));
+    public static String PARSING_IO_EXCEPTION_WITH_SYSTEM_ID(Object arg0) {
+        return LOCALIZER.localize(localizablePARSING_IO_EXCEPTION_WITH_SYSTEM_ID(arg0));
     }
 
-    public static Localizable localizableVALIDATION_INVALID_SIMPLE_TYPE_IN_ELEMENT(Object arg0, Object arg1) {
-        return messageFactory.getMessage("validation.invalidSimpleTypeInElement", arg0, arg1);
+    public static Localizable localizablePARSING_PARSE_FAILED() {
+        return MESSAGE_FACTORY.getMessage("Parsing.ParseFailed");
     }
 
     /**
-     * invalid element: "{1}", has named simpleType: "{0}"
+     *  Failed to parse the WSDL.
      *
      */
-    public static String VALIDATION_INVALID_SIMPLE_TYPE_IN_ELEMENT(Object arg0, Object arg1) {
-        return localizer.localize(localizableVALIDATION_INVALID_SIMPLE_TYPE_IN_ELEMENT(arg0, arg1));
-    }
-
-    public static Localizable localizablePARSING_ONLY_ONE_DOCUMENTATION_ALLOWED(Object arg0) {
-        return messageFactory.getMessage("parsing.onlyOneDocumentationAllowed", arg0);
-    }
-
-    /**
-     * only one "documentation" element allowed in "{0}"
-     *
-     */
-    public static String PARSING_ONLY_ONE_DOCUMENTATION_ALLOWED(Object arg0) {
-        return localizer.localize(localizablePARSING_ONLY_ONE_DOCUMENTATION_ALLOWED(arg0));
-    }
-
-    public static Localizable localizableINTERNALIZER_VERSION_NOT_PRESENT() {
-        return messageFactory.getMessage("Internalizer.VersionNotPresent");
-    }
-
-    /**
-     *  JAXWS version attribute must be present
-     *
-     */
-    public static String INTERNALIZER_VERSION_NOT_PRESENT() {
-        return localizer.localize(localizableINTERNALIZER_VERSION_NOT_PRESENT());
+    public static String PARSING_PARSE_FAILED() {
+        return LOCALIZER.localize(localizablePARSING_PARSE_FAILED());
     }
 
     public static Localizable localizableFAILED_NOSERVICE(Object arg0) {
-        return messageFactory.getMessage("failed.noservice", arg0);
+        return MESSAGE_FACTORY.getMessage("failed.noservice", arg0);
     }
 
     /**
@@ -952,11 +200,120 @@
      *
      */
     public static String FAILED_NOSERVICE(Object arg0) {
-        return localizer.localize(localizableFAILED_NOSERVICE(arg0));
+        return LOCALIZER.localize(localizableFAILED_NOSERVICE(arg0));
+    }
+
+    public static Localizable localizableENTITY_DUPLICATE_WITH_TYPE(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("entity.duplicateWithType", arg0, arg1);
+    }
+
+    /**
+     * duplicate "{0}" entity: "{1}"
+     *
+     */
+    public static String ENTITY_DUPLICATE_WITH_TYPE(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableENTITY_DUPLICATE_WITH_TYPE(arg0, arg1));
+    }
+
+    public static Localizable localizableVALIDATION_DUPLICATE_PART_NAME(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("validation.duplicatePartName", arg0, arg1);
+    }
+
+    /**
+     * Invalid WSDL, duplicate parts in a wsdl:message is not allowed.
+     * wsdl:message {0} has a duplicated part name: "{1}"
+     *
+     */
+    public static String VALIDATION_DUPLICATE_PART_NAME(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableVALIDATION_DUPLICATE_PART_NAME(arg0, arg1));
+    }
+
+    public static Localizable localizablePARSING_ONLY_ONE_OF_ELEMENT_OR_TYPE_REQUIRED(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("parsing.onlyOneOfElementOrTypeRequired", arg0);
+    }
+
+    /**
+     * only one of the "element" or "type" attributes is allowed in part "{0}"
+     *
+     */
+    public static String PARSING_ONLY_ONE_OF_ELEMENT_OR_TYPE_REQUIRED(Object arg0) {
+        return LOCALIZER.localize(localizablePARSING_ONLY_ONE_OF_ELEMENT_OR_TYPE_REQUIRED(arg0));
+    }
+
+    public static Localizable localizablePARSING_INCORRECT_ROOT_ELEMENT(Object arg0, Object arg1, Object arg2, Object arg3) {
+        return MESSAGE_FACTORY.getMessage("parsing.incorrectRootElement", arg0, arg1, arg2, arg3);
+    }
+
+    /**
+     * expected root element "{2}" (in namespace "{3}"), found element "{0}" (in namespace "{1}")
+     *
+     */
+    public static String PARSING_INCORRECT_ROOT_ELEMENT(Object arg0, Object arg1, Object arg2, Object arg3) {
+        return LOCALIZER.localize(localizablePARSING_INCORRECT_ROOT_ELEMENT(arg0, arg1, arg2, arg3));
+    }
+
+    public static Localizable localizableINVALID_WSDL_WITH_DOOC(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("invalid.wsdl.with.dooc", arg0, arg1);
+    }
+
+    /**
+     * "Not a WSDL document: {0}, it gives "{1}", retrying with MEX..."
+     *
+     */
+    public static String INVALID_WSDL_WITH_DOOC(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableINVALID_WSDL_WITH_DOOC(arg0, arg1));
+    }
+
+    public static Localizable localizableINTERNALIZER_X_PATH_EVAULATES_TO_TOO_MANY_TARGETS(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("internalizer.XPathEvaulatesToTooManyTargets", arg0, arg1);
+    }
+
+    /**
+     * XPath evaluation of "{0}" results in too many ({1}) target nodes
+     *
+     */
+    public static String INTERNALIZER_X_PATH_EVAULATES_TO_TOO_MANY_TARGETS(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableINTERNALIZER_X_PATH_EVAULATES_TO_TOO_MANY_TARGETS(arg0, arg1));
+    }
+
+    public static Localizable localizablePARSING_ELEMENT_EXPECTED() {
+        return MESSAGE_FACTORY.getMessage("parsing.elementExpected");
+    }
+
+    /**
+     * unexpected non-element found
+     *
+     */
+    public static String PARSING_ELEMENT_EXPECTED() {
+        return LOCALIZER.localize(localizablePARSING_ELEMENT_EXPECTED());
+    }
+
+    public static Localizable localizableFILE_NOT_FOUND(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("file.not.found", arg0);
+    }
+
+    /**
+     * {0} is unreachable
+     *
+     */
+    public static String FILE_NOT_FOUND(Object arg0) {
+        return LOCALIZER.localize(localizableFILE_NOT_FOUND(arg0));
+    }
+
+    public static Localizable localizableVALIDATION_INVALID_SIMPLE_TYPE_IN_ELEMENT(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("validation.invalidSimpleTypeInElement", arg0, arg1);
+    }
+
+    /**
+     * invalid element: "{1}", has named simpleType: "{0}"
+     *
+     */
+    public static String VALIDATION_INVALID_SIMPLE_TYPE_IN_ELEMENT(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableVALIDATION_INVALID_SIMPLE_TYPE_IN_ELEMENT(arg0, arg1));
     }
 
     public static Localizable localizablePARSING_TOO_MANY_ELEMENTS(Object arg0, Object arg1, Object arg2) {
-        return messageFactory.getMessage("parsing.tooManyElements", arg0, arg1, arg2);
+        return MESSAGE_FACTORY.getMessage("parsing.tooManyElements", arg0, arg1, arg2);
     }
 
     /**
@@ -964,11 +321,241 @@
      *
      */
     public static String PARSING_TOO_MANY_ELEMENTS(Object arg0, Object arg1, Object arg2) {
-        return localizer.localize(localizablePARSING_TOO_MANY_ELEMENTS(arg0, arg1, arg2));
+        return LOCALIZER.localize(localizablePARSING_TOO_MANY_ELEMENTS(arg0, arg1, arg2));
+    }
+
+    public static Localizable localizableLOCALIZED_ERROR(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("localized.error", arg0);
+    }
+
+    /**
+     * {0}
+     *
+     */
+    public static String LOCALIZED_ERROR(Object arg0) {
+        return LOCALIZER.localize(localizableLOCALIZED_ERROR(arg0));
+    }
+
+    public static Localizable localizablePARSING_FACTORY_CONFIG_EXCEPTION(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("parsing.factoryConfigException", arg0);
+    }
+
+    /**
+     * invalid WSDL file! parsing failed: {0}
+     *
+     */
+    public static String PARSING_FACTORY_CONFIG_EXCEPTION(Object arg0) {
+        return LOCALIZER.localize(localizablePARSING_FACTORY_CONFIG_EXCEPTION(arg0));
+    }
+
+    public static Localizable localizablePARSING_UNKNOWN_IMPORTED_DOCUMENT_TYPE(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("parsing.unknownImportedDocumentType", arg0);
+    }
+
+    /**
+     * imported document is of unknown type: {0}
+     *
+     */
+    public static String PARSING_UNKNOWN_IMPORTED_DOCUMENT_TYPE(Object arg0) {
+        return LOCALIZER.localize(localizablePARSING_UNKNOWN_IMPORTED_DOCUMENT_TYPE(arg0));
+    }
+
+    public static Localizable localizableVALIDATION_DUPLICATED_ELEMENT(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("validation.duplicatedElement", arg0);
+    }
+
+    /**
+     * duplicated element: "{0}"
+     *
+     */
+    public static String VALIDATION_DUPLICATED_ELEMENT(Object arg0) {
+        return LOCALIZER.localize(localizableVALIDATION_DUPLICATED_ELEMENT(arg0));
+    }
+
+    public static Localizable localizablePARSING_INVALID_URI(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("parsing.invalidURI", arg0);
+    }
+
+    /**
+     * invalid URI: {0}
+     *
+     */
+    public static String PARSING_INVALID_URI(Object arg0) {
+        return LOCALIZER.localize(localizablePARSING_INVALID_URI(arg0));
+    }
+
+    public static Localizable localizablePARSING_SAX_EXCEPTION(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("parsing.saxException", arg0);
+    }
+
+    /**
+     * invalid WSDL file! parsing failed: {0}
+     *
+     */
+    public static String PARSING_SAX_EXCEPTION(Object arg0) {
+        return LOCALIZER.localize(localizablePARSING_SAX_EXCEPTION(arg0));
+    }
+
+    public static Localizable localizableINTERNALIZER_INCORRECT_VERSION() {
+        return MESSAGE_FACTORY.getMessage("Internalizer.IncorrectVersion");
+    }
+
+    /**
+     *  JAXWS version attribute must be "2.0"
+     *
+     */
+    public static String INTERNALIZER_INCORRECT_VERSION() {
+        return LOCALIZER.localize(localizableINTERNALIZER_INCORRECT_VERSION());
+    }
+
+    public static Localizable localizablePARSING_NON_WHITESPACE_TEXT_FOUND(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("parsing.nonWhitespaceTextFound", arg0);
+    }
+
+    /**
+     * found unexpected non-whitespace text: "{0}"
+     *
+     */
+    public static String PARSING_NON_WHITESPACE_TEXT_FOUND(Object arg0) {
+        return LOCALIZER.localize(localizablePARSING_NON_WHITESPACE_TEXT_FOUND(arg0));
+    }
+
+    public static Localizable localizableENTITY_NOT_FOUND_BY_Q_NAME(Object arg0, Object arg1, Object arg2) {
+        return MESSAGE_FACTORY.getMessage("entity.notFoundByQName", arg0, arg1, arg2);
+    }
+
+    /**
+     * {0} "{1}" not found in the wsdl: {2}
+     *
+     */
+    public static String ENTITY_NOT_FOUND_BY_Q_NAME(Object arg0, Object arg1, Object arg2) {
+        return LOCALIZER.localize(localizableENTITY_NOT_FOUND_BY_Q_NAME(arg0, arg1, arg2));
+    }
+
+    public static Localizable localizableVALIDATION_MISSING_REQUIRED_ATTRIBUTE(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("validation.missingRequiredAttribute", arg0, arg1);
+    }
+
+    /**
+     * missing required attribute "{0}" of element "{1}"
+     *
+     */
+    public static String VALIDATION_MISSING_REQUIRED_ATTRIBUTE(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableVALIDATION_MISSING_REQUIRED_ATTRIBUTE(arg0, arg1));
+    }
+
+    public static Localizable localizableWARNING_FAULT_EMPTY_ACTION(Object arg0, Object arg1, Object arg2) {
+        return MESSAGE_FACTORY.getMessage("warning.faultEmptyAction", arg0, arg1, arg2);
+    }
+
+    /**
+     * ignoring empty Action in "{0}" {1} element of "{2}" operation, using default instead
+     *
+     */
+    public static String WARNING_FAULT_EMPTY_ACTION(Object arg0, Object arg1, Object arg2) {
+        return LOCALIZER.localize(localizableWARNING_FAULT_EMPTY_ACTION(arg0, arg1, arg2));
+    }
+
+    public static Localizable localizablePARSING_INVALID_ATTRIBUTE_VALUE(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("parsing.invalidAttributeValue", arg0, arg1);
+    }
+
+    /**
+     * invalid value "{1}" for attribute "{0}"
+     *
+     */
+    public static String PARSING_INVALID_ATTRIBUTE_VALUE(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizablePARSING_INVALID_ATTRIBUTE_VALUE(arg0, arg1));
+    }
+
+    public static Localizable localizableABSTRACT_REFERENCE_FINDER_IMPL_UNABLE_TO_PARSE(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("AbstractReferenceFinderImpl.UnableToParse", arg0, arg1);
+    }
+
+    /**
+     *  Unable to parse "{0}" : {1}
+     *
+     */
+    public static String ABSTRACT_REFERENCE_FINDER_IMPL_UNABLE_TO_PARSE(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableABSTRACT_REFERENCE_FINDER_IMPL_UNABLE_TO_PARSE(arg0, arg1));
+    }
+
+    public static Localizable localizableENTITY_DUPLICATE(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("entity.duplicate", arg0);
+    }
+
+    /**
+     * duplicate entity: "{0}"
+     *
+     */
+    public static String ENTITY_DUPLICATE(Object arg0) {
+        return LOCALIZER.localize(localizableENTITY_DUPLICATE(arg0));
+    }
+
+    public static Localizable localizableVALIDATION_MISSING_REQUIRED_PROPERTY(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("validation.missingRequiredProperty", arg0, arg1);
+    }
+
+    /**
+     * missing required property "{0}" of element "{1}"
+     *
+     */
+    public static String VALIDATION_MISSING_REQUIRED_PROPERTY(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableVALIDATION_MISSING_REQUIRED_PROPERTY(arg0, arg1));
+    }
+
+    public static Localizable localizableINVALID_CUSTOMIZATION_NAMESPACE(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("invalid.customization.namespace", arg0);
+    }
+
+    /**
+     * Ignoring customization: "{0}", because it has no namespace. It must belong to the customization namespace.
+     *
+     */
+    public static String INVALID_CUSTOMIZATION_NAMESPACE(Object arg0) {
+        return LOCALIZER.localize(localizableINVALID_CUSTOMIZATION_NAMESPACE(arg0));
+    }
+
+    public static Localizable localizableTRY_WITH_MEX(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("try.with.mex", arg0);
+    }
+
+    /**
+     * {0}
+     *
+     * retrying with MEX...
+     *
+     */
+    public static String TRY_WITH_MEX(Object arg0) {
+        return LOCALIZER.localize(localizableTRY_WITH_MEX(arg0));
+    }
+
+    public static Localizable localizableINVALID_WSDL(Object arg0, Object arg1, Object arg2, Object arg3) {
+        return MESSAGE_FACTORY.getMessage("invalid.wsdl", arg0, arg1, arg2, arg3);
+    }
+
+    /**
+     * Invalid WSDL {0}, expected {1} found {2} at (line {3})
+     *
+     */
+    public static String INVALID_WSDL(Object arg0, Object arg1, Object arg2, Object arg3) {
+        return LOCALIZER.localize(localizableINVALID_WSDL(arg0, arg1, arg2, arg3));
+    }
+
+    public static Localizable localizableENTITY_NOT_FOUND_BY_ID(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("entity.notFoundByID", arg0);
+    }
+
+    /**
+     * invalid entity id: "{0}"
+     *
+     */
+    public static String ENTITY_NOT_FOUND_BY_ID(Object arg0) {
+        return LOCALIZER.localize(localizableENTITY_NOT_FOUND_BY_ID(arg0));
     }
 
     public static Localizable localizableINTERNALIZER_INCORRECT_SCHEMA_REFERENCE(Object arg0, Object arg1) {
-        return messageFactory.getMessage("Internalizer.IncorrectSchemaReference", arg0, arg1);
+        return MESSAGE_FACTORY.getMessage("Internalizer.IncorrectSchemaReference", arg0, arg1);
     }
 
     /**
@@ -976,7 +563,427 @@
      *
      */
     public static String INTERNALIZER_INCORRECT_SCHEMA_REFERENCE(Object arg0, Object arg1) {
-        return localizer.localize(localizableINTERNALIZER_INCORRECT_SCHEMA_REFERENCE(arg0, arg1));
+        return LOCALIZER.localize(localizableINTERNALIZER_INCORRECT_SCHEMA_REFERENCE(arg0, arg1));
+    }
+
+    public static Localizable localizablePARSING_INVALID_EXTENSION_ELEMENT(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("parsing.invalidExtensionElement", arg0, arg1);
+    }
+
+    /**
+     * invalid extension element: "{0}" (in namespace "{1}")
+     *
+     */
+    public static String PARSING_INVALID_EXTENSION_ELEMENT(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizablePARSING_INVALID_EXTENSION_ELEMENT(arg0, arg1));
+    }
+
+    public static Localizable localizableVALIDATION_EXCLUSIVE_ATTRIBUTES(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("validation.exclusiveAttributes", arg0, arg1);
+    }
+
+    /**
+     * exclusive attributes: "{0}", "{1}"
+     *
+     */
+    public static String VALIDATION_EXCLUSIVE_ATTRIBUTES(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableVALIDATION_EXCLUSIVE_ATTRIBUTES(arg0, arg1));
+    }
+
+    public static Localizable localizableVALIDATION_INCORRECT_TARGET_NAMESPACE(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("validation.incorrectTargetNamespace", arg0, arg1);
+    }
+
+    /**
+     * target namespace is incorrect (expected: {1}, found: {0})
+     *
+     */
+    public static String VALIDATION_INCORRECT_TARGET_NAMESPACE(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableVALIDATION_INCORRECT_TARGET_NAMESPACE(arg0, arg1));
+    }
+
+    public static Localizable localizableINTERNALIZER_TWO_VERSION_ATTRIBUTES() {
+        return MESSAGE_FACTORY.getMessage("Internalizer.TwoVersionAttributes");
+    }
+
+    /**
+     *  Both jaxws:version and version are present
+     *
+     */
+    public static String INTERNALIZER_TWO_VERSION_ATTRIBUTES() {
+        return LOCALIZER.localize(localizableINTERNALIZER_TWO_VERSION_ATTRIBUTES());
+    }
+
+    public static Localizable localizableENTITY_NOT_FOUND_BINDING(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("entity.notFound.binding", arg0, arg1);
+    }
+
+    /**
+     * wsdl:binding "{0}" referenced by wsdl:port "{1}", but it's not found in the wsdl
+     *
+     */
+    public static String ENTITY_NOT_FOUND_BINDING(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableENTITY_NOT_FOUND_BINDING(arg0, arg1));
+    }
+
+    public static Localizable localizableVALIDATION_INVALID_SUB_ENTITY(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("validation.invalidSubEntity", arg0, arg1);
+    }
+
+    /**
+     * invalid sub-element "{0}" of element "{1}"
+     *
+     */
+    public static String VALIDATION_INVALID_SUB_ENTITY(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableVALIDATION_INVALID_SUB_ENTITY(arg0, arg1));
+    }
+
+    public static Localizable localizablePARSING_REQUIRED_EXTENSIBILITY_ELEMENT(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("parsing.requiredExtensibilityElement", arg0, arg1);
+    }
+
+    /**
+     * unknown required extensibility element "{0}" (in namespace "{1}")
+     *
+     */
+    public static String PARSING_REQUIRED_EXTENSIBILITY_ELEMENT(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizablePARSING_REQUIRED_EXTENSIBILITY_ELEMENT(arg0, arg1));
+    }
+
+    public static Localizable localizablePARSING_IO_EXCEPTION(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("parsing.ioException", arg0);
+    }
+
+    /**
+     * parsing failed: {0}
+     *
+     */
+    public static String PARSING_IO_EXCEPTION(Object arg0) {
+        return LOCALIZER.localize(localizablePARSING_IO_EXCEPTION(arg0));
+    }
+
+    public static Localizable localizableINTERNALIZER_VERSION_NOT_PRESENT() {
+        return MESSAGE_FACTORY.getMessage("Internalizer.VersionNotPresent");
+    }
+
+    /**
+     *  JAXWS version attribute must be present
+     *
+     */
+    public static String INTERNALIZER_VERSION_NOT_PRESENT() {
+        return LOCALIZER.localize(localizableINTERNALIZER_VERSION_NOT_PRESENT());
+    }
+
+    public static Localizable localizableINTERNALIZER_X_PATH_EVALUATION_ERROR(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("internalizer.XPathEvaluationError", arg0);
+    }
+
+    /**
+     * XPath error: {0}
+     *
+     */
+    public static String INTERNALIZER_X_PATH_EVALUATION_ERROR(Object arg0) {
+        return LOCALIZER.localize(localizableINTERNALIZER_X_PATH_EVALUATION_ERROR(arg0));
+    }
+
+    public static Localizable localizablePARSING_INVALID_WSDL_ELEMENT(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("parsing.invalidWsdlElement", arg0);
+    }
+
+    /**
+     * invalid WSDL element: "{0}"
+     *
+     */
+    public static String PARSING_INVALID_WSDL_ELEMENT(Object arg0) {
+        return LOCALIZER.localize(localizablePARSING_INVALID_WSDL_ELEMENT(arg0));
+    }
+
+    public static Localizable localizableINTERNALIZER_TARGET_NOT_AN_ELEMENT() {
+        return MESSAGE_FACTORY.getMessage("internalizer.targetNotAnElement");
+    }
+
+    /**
+     *  Target node is not an element
+     *
+     */
+    public static String INTERNALIZER_TARGET_NOT_AN_ELEMENT() {
+        return LOCALIZER.localize(localizableINTERNALIZER_TARGET_NOT_AN_ELEMENT());
+    }
+
+    public static Localizable localizableWARNING_INPUT_OUTPUT_EMPTY_ACTION(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("warning.inputOutputEmptyAction", arg0, arg1);
+    }
+
+    /**
+     * ignoring empty Action in {0} element of "{1}" operation, using default instead
+     *
+     */
+    public static String WARNING_INPUT_OUTPUT_EMPTY_ACTION(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableWARNING_INPUT_OUTPUT_EMPTY_ACTION(arg0, arg1));
+    }
+
+    public static Localizable localizableINTERNALIZER_X_PATH_EVALUATES_TO_NO_TARGET(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("internalizer.XPathEvaluatesToNoTarget", arg0);
+    }
+
+    /**
+     * XPath evaluation of "{0}" results in an empty target node
+     *
+     */
+    public static String INTERNALIZER_X_PATH_EVALUATES_TO_NO_TARGET(Object arg0) {
+        return LOCALIZER.localize(localizableINTERNALIZER_X_PATH_EVALUATES_TO_NO_TARGET(arg0));
+    }
+
+    public static Localizable localizablePARSING_INVALID_TAG_NS(Object arg0, Object arg1, Object arg2, Object arg3, Object arg4) {
+        return MESSAGE_FACTORY.getMessage("parsing.invalidTagNS", arg0, arg1, arg2, arg3, arg4);
+    }
+
+    /**
+     * Invalid WSDL at {4}: expected element "{2}" (in namespace "{3}"), found element "{0}" (in namespace "{1}")
+     *
+     */
+    public static String PARSING_INVALID_TAG_NS(Object arg0, Object arg1, Object arg2, Object arg3, Object arg4) {
+        return LOCALIZER.localize(localizablePARSING_INVALID_TAG_NS(arg0, arg1, arg2, arg3, arg4));
+    }
+
+    public static Localizable localizablePARSING_UNKNOWN_NAMESPACE_PREFIX(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("parsing.unknownNamespacePrefix", arg0);
+    }
+
+    /**
+     * undeclared namespace prefix: "{0}"
+     *
+     */
+    public static String PARSING_UNKNOWN_NAMESPACE_PREFIX(Object arg0) {
+        return LOCALIZER.localize(localizablePARSING_UNKNOWN_NAMESPACE_PREFIX(arg0));
+    }
+
+    public static Localizable localizablePARSING_INVALID_ELEMENT(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("parsing.invalidElement", arg0, arg1);
+    }
+
+    /**
+     * invalid element: "{0}" (in namespace "{1}")
+     *
+     */
+    public static String PARSING_INVALID_ELEMENT(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizablePARSING_INVALID_ELEMENT(arg0, arg1));
+    }
+
+    public static Localizable localizablePARSING_ONLY_ONE_DOCUMENTATION_ALLOWED(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("parsing.onlyOneDocumentationAllowed", arg0);
+    }
+
+    /**
+     * only one "documentation" element allowed in "{0}"
+     *
+     */
+    public static String PARSING_ONLY_ONE_DOCUMENTATION_ALLOWED(Object arg0) {
+        return LOCALIZER.localize(localizablePARSING_ONLY_ONE_DOCUMENTATION_ALLOWED(arg0));
+    }
+
+    public static Localizable localizablePARSING_PARSER_CONFIG_EXCEPTION(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("parsing.parserConfigException", arg0);
+    }
+
+    /**
+     * invalid WSDL file! parsing failed: {0}
+     *
+     */
+    public static String PARSING_PARSER_CONFIG_EXCEPTION(Object arg0) {
+        return LOCALIZER.localize(localizablePARSING_PARSER_CONFIG_EXCEPTION(arg0));
+    }
+
+    public static Localizable localizablePARSING_MISSING_REQUIRED_ATTRIBUTE(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("parsing.missingRequiredAttribute", arg0, arg1);
+    }
+
+    /**
+     * missing required attribute "{1}" of element "{0}"
+     *
+     */
+    public static String PARSING_MISSING_REQUIRED_ATTRIBUTE(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizablePARSING_MISSING_REQUIRED_ATTRIBUTE(arg0, arg1));
+    }
+
+    public static Localizable localizableVALIDATION_MISSING_REQUIRED_SUB_ENTITY(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("validation.missingRequiredSubEntity", arg0, arg1);
+    }
+
+    /**
+     * missing required sub-entity "{0}" of element "{1}"
+     *
+     */
+    public static String VALIDATION_MISSING_REQUIRED_SUB_ENTITY(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableVALIDATION_MISSING_REQUIRED_SUB_ENTITY(arg0, arg1));
+    }
+
+    public static Localizable localizableVALIDATION_INVALID_ELEMENT(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("validation.invalidElement", arg0);
+    }
+
+    /**
+     * invalid element: "{0}"
+     *
+     */
+    public static String VALIDATION_INVALID_ELEMENT(Object arg0) {
+        return LOCALIZER.localize(localizableVALIDATION_INVALID_ELEMENT(arg0));
+    }
+
+    public static Localizable localizableVALIDATION_AMBIGUOUS_NAME(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("validation.ambiguousName", arg0);
+    }
+
+    /**
+     * ambiguous operation name: "{0}"
+     *
+     */
+    public static String VALIDATION_AMBIGUOUS_NAME(Object arg0) {
+        return LOCALIZER.localize(localizableVALIDATION_AMBIGUOUS_NAME(arg0));
+    }
+
+    public static Localizable localizablePARSING_SAX_EXCEPTION_WITH_SYSTEM_ID(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("parsing.saxExceptionWithSystemId", arg0);
+    }
+
+    /**
+     * invalid WSDL file! failed to parse document at "{0}"
+     *
+     */
+    public static String PARSING_SAX_EXCEPTION_WITH_SYSTEM_ID(Object arg0) {
+        return LOCALIZER.localize(localizablePARSING_SAX_EXCEPTION_WITH_SYSTEM_ID(arg0));
+    }
+
+    public static Localizable localizablePARSING_WSDL_NOT_DEFAULT_NAMESPACE(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("parsing.wsdlNotDefaultNamespace", arg0);
+    }
+
+    /**
+     * default namespace must be "{0}"
+     *
+     */
+    public static String PARSING_WSDL_NOT_DEFAULT_NAMESPACE(Object arg0) {
+        return LOCALIZER.localize(localizablePARSING_WSDL_NOT_DEFAULT_NAMESPACE(arg0));
+    }
+
+    public static Localizable localizablePARSING_INVALID_OPERATION_STYLE(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("parsing.invalidOperationStyle", arg0);
+    }
+
+    /**
+     * operation "{0}" has an invalid style
+     *
+     */
+    public static String PARSING_INVALID_OPERATION_STYLE(Object arg0) {
+        return LOCALIZER.localize(localizablePARSING_INVALID_OPERATION_STYLE(arg0));
+    }
+
+    public static Localizable localizableWARNING_WSI_R_2001() {
+        return MESSAGE_FACTORY.getMessage("warning.wsi.r2001");
+    }
+
+    /**
+     * Not a WSI-BP compliant WSDL (R2001, R2002). wsdl:import must import only WSDL documents. It's trying to import: "{0}"
+     *
+     */
+    public static String WARNING_WSI_R_2001() {
+        return LOCALIZER.localize(localizableWARNING_WSI_R_2001());
+    }
+
+    public static Localizable localizableWARNING_WSI_R_2002(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("warning.wsi.r2002", arg0, arg1);
+    }
+
+    /**
+     * Not a WSI-BP compliant WSDL (R2002). wsdl:import must not be used to import XML Schema embedded in the WSDL document. Expected WSDL namespace: {0}, found: {1}
+     *
+     */
+    public static String WARNING_WSI_R_2002(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableWARNING_WSI_R_2002(arg0, arg1));
+    }
+
+    public static Localizable localizablePARSING_INVALID_TAG(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("parsing.invalidTag", arg0, arg1);
+    }
+
+    /**
+     * expected element "{1}", found "{0}"
+     *
+     */
+    public static String PARSING_INVALID_TAG(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizablePARSING_INVALID_TAG(arg0, arg1));
+    }
+
+    public static Localizable localizableINTERNALIZER_TARGET_NOT_FOUND(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("internalizer.targetNotFound", arg0);
+    }
+
+    /**
+     *  No target found for the wsdlLocation: {0}
+     *
+     */
+    public static String INTERNALIZER_TARGET_NOT_FOUND(Object arg0) {
+        return LOCALIZER.localize(localizableINTERNALIZER_TARGET_NOT_FOUND(arg0));
+    }
+
+    public static Localizable localizableINTERNALIZER_X_PATH_EVALUATES_TO_NON_ELEMENT(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("internalizer.XPathEvaluatesToNonElement", arg0);
+    }
+
+    /**
+     * XPath evaluation of "{0}" needs to result in an element.
+     *
+     */
+    public static String INTERNALIZER_X_PATH_EVALUATES_TO_NON_ELEMENT(Object arg0) {
+        return LOCALIZER.localize(localizableINTERNALIZER_X_PATH_EVALUATES_TO_NON_ELEMENT(arg0));
+    }
+
+    public static Localizable localizableVALIDATION_UNSUPPORTED_USE_ENCODED(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("validation.unsupportedUse.encoded", arg0, arg1);
+    }
+
+    /**
+     * "Use of SOAP Encoding is not supported.
+     * SOAP extension element on line {0} in {1} has use="encoded" "
+     *
+     */
+    public static String VALIDATION_UNSUPPORTED_USE_ENCODED(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableVALIDATION_UNSUPPORTED_USE_ENCODED(arg0, arg1));
+    }
+
+    public static Localizable localizablePARSING_ELEMENT_OR_TYPE_REQUIRED(Object arg0) {
+        return MESSAGE_FACTORY.getMessage("parsing.elementOrTypeRequired", arg0);
+    }
+
+    /**
+     * warning: part {0} is ignored, either the "element" or the "type" attribute is required in part "{0}"
+     *
+     */
+    public static String PARSING_ELEMENT_OR_TYPE_REQUIRED(Object arg0) {
+        return LOCALIZER.localize(localizablePARSING_ELEMENT_OR_TYPE_REQUIRED(arg0));
+    }
+
+    public static Localizable localizableENTITY_NOT_FOUND_PORT_TYPE(Object arg0, Object arg1) {
+        return MESSAGE_FACTORY.getMessage("entity.notFound.portType", arg0, arg1);
+    }
+
+    /**
+     * wsdl:portType "{0}" referenced by wsdl:binding "{1}", but it's not found in the wsdl
+     *
+     */
+    public static String ENTITY_NOT_FOUND_PORT_TYPE(Object arg0, Object arg1) {
+        return LOCALIZER.localize(localizableENTITY_NOT_FOUND_PORT_TYPE(arg0, arg1));
+    }
+
+    private static class BundleSupplier
+        implements ResourceBundleSupplier
+    {
+
+
+        public ResourceBundle getResourceBundle(Locale locale) {
+            return ResourceBundle.getBundle(BUNDLE_NAME, locale);
+        }
+
     }
 
 }
diff --git a/src/jdk.xml.ws/share/classes/com/sun/tools/internal/ws/resources/newmessages.properties b/src/jdk.xml.ws/share/classes/com/sun/tools/internal/ws/resources/newmessages.properties
deleted file mode 100644
index bd358f2..0000000
--- a/src/jdk.xml.ws/share/classes/com/sun/tools/internal/ws/resources/newmessages.properties
+++ /dev/null
@@ -1,6 +0,0 @@
-wrapperTask.needEndorsed=\

-You are running on JDK6 or newer which comes with JAX-WS {0} API, but this tool requires JAX-WS {1} or newer API. Use \

-the standard override mechanism. 

-

-runtime.modeler.addressing.responses.nosuchmethod = JAX-WS 2.1 API is loaded from {0}, But JAX-WS runtime requires JAX-WS 2.2 or newer API. \

-  Use the standard override mechanism to load JAX-WS 2.2 or newer API.
\ No newline at end of file
diff --git a/src/jdk.xml.ws/share/classes/com/sun/tools/internal/ws/resources/wscompile.properties b/src/jdk.xml.ws/share/classes/com/sun/tools/internal/ws/resources/wscompile.properties
index 94c7c57..43a863f 100644
--- a/src/jdk.xml.ws/share/classes/com/sun/tools/internal/ws/resources/wscompile.properties
+++ b/src/jdk.xml.ws/share/classes/com/sun/tools/internal/ws/resources/wscompile.properties
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2005, 2016, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2005, 2017, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
@@ -142,18 +142,16 @@
 wsgen.fullversion=wsgen full version \"{0}\"
 
 wrapperTask.needEndorsed=\
-You are running on JDK6 which comes with JAX-WS {0} API, but this tool requires JAX-WS {1} API. \
-Use the endorsed standards override mechanism (http://docs.oracle.com/javase/6/docs/technotes/guides/standards/), \
-or set xendorsed="true" on <{2}>.
+You are running on JDK6 or newer which comes with JAX-WS {0} API, but this tool requires JAX-WS {1} or newer API. Use \
+the standard override mechanism.
 
 # {0}, {2} - version (e.g. 2.1), {1} - absolute class location
 wrapperTask.loadingIncorrectApi=\
 You are loading JAX-WS {0} API from {1} but this tool requires JAX-WS {2} API.
 
 invoker.needEndorsed=\
-You are running on JDK6 which comes with JAX-WS {0} API, but this tool requires JAX-WS {1} API. \
-Use the endorsed standards override mechanism (http://docs.oracle.com/javase/6/docs/technotes/guides/standards/), \
-or use -Xendorsed option.
+You are running on JDK6 or newer which comes with JAX-WS {0} API, but this tool requires JAX-WS {1} or newer API. Use \
+the standard override mechanism.
 
 
 #
diff --git a/src/jdk.xml.ws/share/classes/com/sun/tools/internal/ws/resources/wscompile_de.properties b/src/jdk.xml.ws/share/classes/com/sun/tools/internal/ws/resources/wscompile_de.properties
index b325ad5..d51973d 100644
--- a/src/jdk.xml.ws/share/classes/com/sun/tools/internal/ws/resources/wscompile_de.properties
+++ b/src/jdk.xml.ws/share/classes/com/sun/tools/internal/ws/resources/wscompile_de.properties
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2005, 2014, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2005, 2017, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
@@ -38,12 +38,12 @@
 
 
 wsgen.usage.examples=\n\\Beispiele:\n\\  wsgen -cp . example.Stock\n\\  wsgen -cp . example.Stock -wsdl -servicename '{http://mynamespace}MyService'\n
-wrapperTask.needEndorsed=Sie arbeiten mit JDK6, das mit JAX-WS {0}-API geliefert wird, dieses Tool erfordert jedoch JAX-WS {1}-API. Verwenden Sie das "Endorsed Standards Override Mechanism"-Verfahren (http://docs.oracle.com/javase/6/docs/technotes/guides/standards/), oder setzen Sie xendorsed="true" in <{2}>.
+wrapperTask.needEndorsed=Sie arbeiten mit JDK6 oder h\u00F6her, das mit der JAX-WS {0}-API geliefert wird. Dieses Tool erfordert jedoch JAX-WS {1} oder eine neuere API. Verwenden Sie das Standard-Override-Verfahren.
 
 # {0}, {2} - version (e.g. 2.1), {1} - absolute class location
 wrapperTask.loadingIncorrectApi=Sie laden JAX-WS {0}-API aus {1}, dieses Tool erfordert jedoch JAX-WS {2}-API.
 
-invoker.needEndorsed=Sie arbeiten mit JDK6, das mit JAX-WS {0}-API geliefert wird, dieses Tool erfordert jedoch JAX-WS {1}-API. Verwenden Sie das "Endorsed Standards Override Mechanism"-Verfahren (http://docs.oracle.com/javase/6/docs/technotes/guides/standards/), oder verwenden Sie die Option "-Xendorsed".
+invoker.needEndorsed=Sie arbeiten mit JDK6 oder h\u00F6her, das mit der JAX-WS {0}-API geliefert wird. Dieses Tool erfordert jedoch JAX-WS {1} oder eine neuere API. Verwenden Sie das Standard-Override-Verfahren.
 
 
 #
diff --git a/src/jdk.xml.ws/share/classes/com/sun/tools/internal/ws/resources/wscompile_es.properties b/src/jdk.xml.ws/share/classes/com/sun/tools/internal/ws/resources/wscompile_es.properties
index 5c3906c..57ffdc5 100644
--- a/src/jdk.xml.ws/share/classes/com/sun/tools/internal/ws/resources/wscompile_es.properties
+++ b/src/jdk.xml.ws/share/classes/com/sun/tools/internal/ws/resources/wscompile_es.properties
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2005, 2014, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2005, 2017, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
@@ -38,12 +38,12 @@
 
 
 wsgen.usage.examples=\n\\Ejemplos:\n\\ wsgen -cp . example.Stock\n\\ wsgen -cp . example.Stock -wsdl -servicename '{http://mynamespace}MyService'\n
-wrapperTask.needEndorsed=Est\u00e1 utilizando JDK6, que incluye la API JAX-WS {0}, pero esta herramienta necesita la API JAX-WS {1}. Utilice el mecanismo de sustituci\u00f3n de los est\u00e1ndares aprobados (http://docs.oracle.com/javase/6/docs/technotes/guides/standards/), o defina xendorsed="true" en <{2}>.
+wrapperTask.needEndorsed=Est\u00E1 ejecutando JDK6 o una versi\u00F3n posterior que incluye la API JAX-WS {0}, pero esta herramienta necesita la API JAX-WS {1} o una versi\u00F3n posterior. Utilice el mecanismo de sustituci\u00F3n de est\u00E1ndares.
 
 # {0}, {2} - version (e.g. 2.1), {1} - absolute class location
 wrapperTask.loadingIncorrectApi=Est\u00e1 cargando la API JAX-WS {0} desde {1}, pero esta herramienta necesita la API JAX-WS {2}.
 
-invoker.needEndorsed=Est\u00e1 utilizando JDK6, que incluye la API JAX-WS {0}, pero esta herramienta necesita la API JAX-WS {1}. Utilice el mecanismo de sustituci\u00f3n de los est\u00e1ndares aprobados (http://docs.oracle.com/javase/6/docs/technotes/guides/standards/), o utilice la opci\u00f3n -Xendorsed.
+invoker.needEndorsed=Est\u00E1 ejecutando JDK6 o una versi\u00F3n posterior que incluye la API JAX-WS {0}, pero esta herramienta necesita la API JAX-WS {1} o una versi\u00F3n posterior. Utilice el mecanismo de sustituci\u00F3n de est\u00E1ndares.
 
 
 #
diff --git a/src/jdk.xml.ws/share/classes/com/sun/tools/internal/ws/resources/wscompile_fr.properties b/src/jdk.xml.ws/share/classes/com/sun/tools/internal/ws/resources/wscompile_fr.properties
index c26d69e..6931093 100644
--- a/src/jdk.xml.ws/share/classes/com/sun/tools/internal/ws/resources/wscompile_fr.properties
+++ b/src/jdk.xml.ws/share/classes/com/sun/tools/internal/ws/resources/wscompile_fr.properties
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2005, 2014, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2005, 2017, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
@@ -38,12 +38,12 @@
 
 
 wsgen.usage.examples=\n\\Exemples :\n\  wsgen -cp . example.Stock\n\  wsgen -cp . example.Stock -wsdl -servicename '{http://mynamespace}MyService'\n
-wrapperTask.needEndorsed=Vous ex\u00e9cutez JDK6, qui comporte l''API JAX-WS {0}, mais cet outil exige l''API JAX-WS {1}. Utilisez le m\u00e9canisme Endorsed Standards Override Mechanism (http://docs.oracle.com/javase/6/docs/technotes/guides/standards/), ou d\u00e9finissez xendorsed="True" sur <{2}>.
+wrapperTask.needEndorsed=Vous ex\u00E9cutez JDK6 ou une version ult\u00E9rieure, qui est fournie avec l''API JAX-WS {0}, mais cet outil exige l''API JAX-WS {1} ou une version plus r\u00E9cente. Utilisez le m\u00E9canisme Standard Override Mechanism.
 
 # {0}, {2} - version (e.g. 2.1), {1} - absolute class location
 wrapperTask.loadingIncorrectApi=Vous \u00eates en train de charger l''API JAX-WS {0} \u00e0 partir de {1}, mais cet outil exige l''API JAX-WS {2}.
 
-invoker.needEndorsed=Vous ex\u00e9cutez JDK6, qui comporte l''API JAX-WS {0}, mais cet outil exige l''API JAX-WS {1}. Utilisez le m\u00e9canisme Endorsed Standards Override Mechanism (http://docs.oracle.com/javase/6/docs/technotes/guides/standards/), ou utilisez l''option -Xendorsed.
+invoker.needEndorsed=Vous ex\u00E9cutez JDK6 ou une version ult\u00E9rieure, qui est fournie avec l''API JAX-WS {0}, mais cet outil exige l''API JAX-WS {1} ou une version plus r\u00E9cente. Utilisez le m\u00E9canisme Standard Override Mechanism.
 
 
 #
diff --git a/src/jdk.xml.ws/share/classes/com/sun/tools/internal/ws/resources/wscompile_it.properties b/src/jdk.xml.ws/share/classes/com/sun/tools/internal/ws/resources/wscompile_it.properties
index 92a0c8c..f0d8244 100644
--- a/src/jdk.xml.ws/share/classes/com/sun/tools/internal/ws/resources/wscompile_it.properties
+++ b/src/jdk.xml.ws/share/classes/com/sun/tools/internal/ws/resources/wscompile_it.properties
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2005, 2014, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2005, 2017, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
@@ -38,12 +38,12 @@
 
 
 wsgen.usage.examples=\n\\Esempi:\n\  wsgen -cp . example.Stock\n\  wsgen -cp . example.Stock -wsdl -servicename '{http://mynamespace}MyService'\n
-wrapperTask.needEndorsed=\u00c8 in corso l''esecuzione su JDK6, fornito con l''API JAX-WS {0} ma questo strumento richiede l''API JAX-WS {1}. Usare il meccanismo Endorsed Standards Override Mechanism (http://docs.oracle.com/javase/6/docs/technotes/guides/standards/) o impostare xendorsed="true" su <{2}>.
+wrapperTask.needEndorsed=\u00C8 in corso l''esecuzione su JDK6 o versione successiva, fornito con l''API JAX-WS {0}, ma questo strumento richiede l''API JAX-WS {1} o versione successiva. Usare il meccanismo di sostituzione standard.
 
 # {0}, {2} - version (e.g. 2.1), {1} - absolute class location
 wrapperTask.loadingIncorrectApi=\u00c8 in corso il caricamento dell''API JAX-WS {0} da {1} ma questo strumento richiede l''API JAX-WS {2}.
 
-invoker.needEndorsed=\u00c8 in corso l''esecuzione su JDK6, fornito con l''API JAX-WS {0} ma questo strumento richiede l''API JAX-WS {1}. Usare il meccanismo Endorsed Standards Override Mechanism (http://docs.oracle.com/javase/6/docs/technotes/guides/standards/) o usare l''opzione -Xendorsed.
+invoker.needEndorsed=\u00C8 in corso l''esecuzione su JDK6 o versione successiva, fornito con l''API JAX-WS {0}, ma questo strumento richiede l''API JAX-WS {1} o versione successiva. Usare il meccanismo di sostituzione standard.
 
 
 #
diff --git a/src/jdk.xml.ws/share/classes/com/sun/tools/internal/ws/resources/wscompile_ja.properties b/src/jdk.xml.ws/share/classes/com/sun/tools/internal/ws/resources/wscompile_ja.properties
index 65561cc..ed0276a 100644
--- a/src/jdk.xml.ws/share/classes/com/sun/tools/internal/ws/resources/wscompile_ja.properties
+++ b/src/jdk.xml.ws/share/classes/com/sun/tools/internal/ws/resources/wscompile_ja.properties
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2005, 2014, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2005, 2017, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
@@ -38,12 +38,12 @@
 
 
 wsgen.usage.examples=\n\\\u4f8b:\n\  wsgen -cp . example.Stock\n\  wsgen -cp . example.Stock -wsdl -servicename '{http://mynamespace}MyService'\n
-wrapperTask.needEndorsed=JAX-WS {0} API\u306b\u4ed8\u5c5e\u3057\u305fJDK6\u3067\u5b9f\u884c\u3057\u3066\u3044\u307e\u3059\u304c\u3001\u3053\u306e\u30c4\u30fc\u30eb\u306b\u306fJAX-WS {1} API\u304c\u5fc5\u8981\u3067\u3059\u3002Endorsed Standards Override Mechanism (http://docs.oracle.com/javase/6/docs/technotes/guides/standards/)\u3092\u4f7f\u7528\u3059\u308b\u304b\u3001<{2}>\u3067xendorsed="true"\u3092\u8a2d\u5b9a\u3057\u3066\u304f\u3060\u3055\u3044\u3002
+wrapperTask.needEndorsed=JAX-WS {0} API\u306B\u4ED8\u5C5E\u3057\u305FJDK6\u4EE5\u4E0A\u3067\u5B9F\u884C\u3057\u3066\u3044\u307E\u3059\u304C\u3001\u3053\u306E\u30C4\u30FC\u30EB\u306B\u306FJAX-WS {1}\u4EE5\u4E0A\u306EAPI\u304C\u5FC5\u8981\u3067\u3059\u3002Standards Override Mechanism\u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044\u3002
 
 # {0}, {2} - version (e.g. 2.1), {1} - absolute class location
 wrapperTask.loadingIncorrectApi={1}\u304b\u3089JAX-WS {0} API\u3092\u30ed\u30fc\u30c9\u3057\u3066\u3044\u307e\u3059\u304c\u3001\u3053\u306e\u30c4\u30fc\u30eb\u306b\u306fJAX-WS {2} API\u304c\u5fc5\u8981\u3067\u3059\u3002
 
-invoker.needEndorsed=JAX-WS {0} API\u306b\u4ed8\u5c5e\u3057\u305fJDK6\u3067\u5b9f\u884c\u3057\u3066\u3044\u307e\u3059\u304c\u3001\u3053\u306e\u30c4\u30fc\u30eb\u306b\u306fJAX-WS {1} API\u304c\u5fc5\u8981\u3067\u3059\u3002Endorsed Standards Override Mechanism (http://docs.oracle.com/javase/6/docs/technotes/guides/standards/)\u3092\u4f7f\u7528\u3059\u308b\u304b\u3001-Xendorsed\u30aa\u30d7\u30b7\u30e7\u30f3\u3092\u4f7f\u7528\u3057\u3066\u304f\u3060\u3055\u3044\u3002
+invoker.needEndorsed=JAX-WS {0} API\u306B\u4ED8\u5C5E\u3057\u305FJDK6\u4EE5\u4E0A\u3067\u5B9F\u884C\u3057\u3066\u3044\u307E\u3059\u304C\u3001\u3053\u306E\u30C4\u30FC\u30EB\u306B\u306FJAX-WS {1}\u4EE5\u4E0A\u306EAPI\u304C\u5FC5\u8981\u3067\u3059\u3002Standards Override Mechanism\u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044\u3002
 
 
 #
diff --git a/src/jdk.xml.ws/share/classes/com/sun/tools/internal/ws/resources/wscompile_ko.properties b/src/jdk.xml.ws/share/classes/com/sun/tools/internal/ws/resources/wscompile_ko.properties
index c657118..6ea2065 100644
--- a/src/jdk.xml.ws/share/classes/com/sun/tools/internal/ws/resources/wscompile_ko.properties
+++ b/src/jdk.xml.ws/share/classes/com/sun/tools/internal/ws/resources/wscompile_ko.properties
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2005, 2014, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2005, 2017, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
@@ -38,12 +38,12 @@
 
 
 wsgen.usage.examples=\n\\\uc608:\n\  wsgen -cp . example.Stock\n\  wsgen -cp . example.Stock -wsdl -servicename '{http://mynamespace}MyService'\n
-wrapperTask.needEndorsed=JAX-WS {0} API\uc640 \ud568\uaed8 \uc81c\uacf5\ub418\ub294 JDK6\uc5d0\uc11c \uc2e4\ud589\ud558\uace0 \uc788\uc9c0\ub9cc \uc774 \ud234\uc744 \uc0ac\uc6a9\ud558\ub824\uba74 JAX-WS {1} API\uac00 \ud544\uc694\ud569\ub2c8\ub2e4. \uc778\uc99d\ub41c \ud45c\uc900 \ubb34\ud6a8\ud654 \ubc29\uc2dd(http://docs.oracle.com/javase/6/docs/technotes/guides/standards/)\uc744 \uc0ac\uc6a9\ud558\uac70\ub098 <{2}>\uc5d0 \ub300\ud574 xendorsed="true"\ub97c \uc124\uc815\ud558\uc2ed\uc2dc\uc624.
+wrapperTask.needEndorsed=JAX-WS {0} API\uC640 \uD568\uAED8 \uC81C\uACF5\uB418\uB294 JDK6 \uC774\uC0C1\uC5D0\uC11C \uC2E4\uD589\uD558\uACE0 \uC788\uC9C0\uB9CC \uC774 \uD234\uC744 \uC0AC\uC6A9\uD558\uB824\uBA74 JAX-WS {1} \uC774\uC0C1 API\uAC00 \uD544\uC694\uD569\uB2C8\uB2E4. \uD45C\uC900 \uBB34\uD6A8\uD654 \uBC29\uC2DD\uC744 \uC0AC\uC6A9\uD558\uC2ED\uC2DC\uC624.
 
 # {0}, {2} - version (e.g. 2.1), {1} - absolute class location
 wrapperTask.loadingIncorrectApi={1}\uc5d0\uc11c JAX-WS {0} API\ub97c \ub85c\ub4dc\ud558\uace0 \uc788\uc9c0\ub9cc \uc774 \ud234\uc744 \uc0ac\uc6a9\ud558\ub824\uba74 JAX-WS {2} API\uac00 \ud544\uc694\ud569\ub2c8\ub2e4.
 
-invoker.needEndorsed=JAX-WS {0} API\uc640 \ud568\uaed8 \uc81c\uacf5\ub418\ub294 JDK6\uc5d0\uc11c \uc2e4\ud589\ud558\uace0 \uc788\uc9c0\ub9cc \uc774 \ud234\uc744 \uc0ac\uc6a9\ud558\ub824\uba74 JAX-WS {1} API\uac00 \ud544\uc694\ud569\ub2c8\ub2e4. \uc778\uc99d\ub41c \ud45c\uc900 \ubb34\ud6a8\ud654 \ubc29\uc2dd(http://docs.oracle.com/javase/6/docs/technotes/guides/standards/)\uc744 \uc0ac\uc6a9\ud558\uac70\ub098 -Xendorsed \uc635\uc158\uc744 \uc0ac\uc6a9\ud558\uc2ed\uc2dc\uc624.
+invoker.needEndorsed=JAX-WS {0} API\uC640 \uD568\uAED8 \uC81C\uACF5\uB418\uB294 JDK6 \uC774\uC0C1\uC5D0\uC11C \uC2E4\uD589\uD558\uACE0 \uC788\uC9C0\uB9CC \uC774 \uD234\uC744 \uC0AC\uC6A9\uD558\uB824\uBA74 JAX-WS {1} \uC774\uC0C1 API\uAC00 \uD544\uC694\uD569\uB2C8\uB2E4. \uD45C\uC900 \uBB34\uD6A8\uD654 \uBC29\uC2DD\uC744 \uC0AC\uC6A9\uD558\uC2ED\uC2DC\uC624.
 
 
 #
diff --git a/src/jdk.xml.ws/share/classes/com/sun/tools/internal/ws/resources/wscompile_pt_BR.properties b/src/jdk.xml.ws/share/classes/com/sun/tools/internal/ws/resources/wscompile_pt_BR.properties
index 3806bf2..d479d19 100644
--- a/src/jdk.xml.ws/share/classes/com/sun/tools/internal/ws/resources/wscompile_pt_BR.properties
+++ b/src/jdk.xml.ws/share/classes/com/sun/tools/internal/ws/resources/wscompile_pt_BR.properties
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2005, 2014, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2005, 2017, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
@@ -38,12 +38,12 @@
 
 
 wsgen.usage.examples=\n\\Exemplos:\n\  wsgen -cp . example.Stock\n\  wsgen -cp . example.Stock -wsdl -servicename '{http://mynamespace}MyService'\n
-wrapperTask.needEndorsed=Voc\u00ea est\u00e1 executando no JDK6 que vem com a API de JAX-WS {0}, mas esta ferramenta exige a API de JAX-WS {1}. Use o mecanismo de substitui\u00e7\u00e3o de padr\u00f5es endossados (http://docs.oracle.com/javase/6/docs/technotes/guides/standards/) ou defina xendorsed="true" em <{2}>.
+wrapperTask.needEndorsed=Voc\u00EA est\u00E1 executando no JDK6 ou mais recente que vem com a API de JAX-WS {0}, mas esta ferramenta exige a API de JAX-WS {1} ou mais recente. Use o mecanismo de substitui\u00E7\u00E3o de padr\u00F5es.
 
 # {0}, {2} - version (e.g. 2.1), {1} - absolute class location
 wrapperTask.loadingIncorrectApi=Voc\u00ea est\u00e1 carregando a API de JAX-WS {0} de {1}, mas esta ferramenta requer a API de JAX-WS {2}.
 
-invoker.needEndorsed=Voc\u00ea est\u00e1 executando no JDK6 que vem com a API de JAX-WS {0}, mas esta ferramenta exige a API de JAX-WS {1}. Use o mecanismo de substitui\u00e7\u00e3o de padr\u00f5es endossados (http://docs.oracle.com/javase/6/docs/technotes/guides/standards/), ou use a op\u00e7\u00e3o -Xendorsed.
+invoker.needEndorsed=Voc\u00EA est\u00E1 executando no JDK6 ou mais recente que vem com a API de JAX-WS {0}, mas esta ferramenta exige a API de JAX-WS {1} ou mais recente. Use o mecanismo de substitui\u00E7\u00E3o de padr\u00F5es.
 
 
 #
diff --git a/src/jdk.xml.ws/share/classes/com/sun/tools/internal/ws/resources/wscompile_zh_CN.properties b/src/jdk.xml.ws/share/classes/com/sun/tools/internal/ws/resources/wscompile_zh_CN.properties
index 1eabe9a..32f92fd 100644
--- a/src/jdk.xml.ws/share/classes/com/sun/tools/internal/ws/resources/wscompile_zh_CN.properties
+++ b/src/jdk.xml.ws/share/classes/com/sun/tools/internal/ws/resources/wscompile_zh_CN.properties
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2005, 2014, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2005, 2017, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
@@ -38,12 +38,12 @@
 
 
 wsgen.usage.examples=\n\\\u793a\u4f8b:\n\  wsgen -cp . example.Stock\n\  wsgen -cp . example.Stock -wsdl -servicename '{http://mynamespace}MyService'\n
-wrapperTask.needEndorsed=\u60a8\u6b63\u5728\u9644\u5e26 JAX-WS {0} API \u7684 JDK6 \u4e0a\u8fd0\u884c, \u4f46\u6b64\u5de5\u5177\u9700\u8981 JAX-WS {1} API\u3002\u8bf7\u4f7f\u7528\u6388\u6743\u6807\u51c6\u8986\u76d6\u673a\u5236 (http://docs.oracle.com/javase/6/docs/technotes/guides/standards/), \u6216\u8005\u5728 <{2}> \u4e0a\u8bbe\u7f6e xendorsed="true"\u3002
+wrapperTask.needEndorsed=\u60A8\u6B63\u5728\u9644\u5E26 JAX-WS {0} API \u7684 JDK6 \u6216\u66F4\u65B0\u7248\u672C\u4E0A\u8FD0\u884C, \u4F46\u6B64\u5DE5\u5177\u9700\u8981 JAX-WS {1} \u6216\u66F4\u65B0\u7684 API\u3002\u8BF7\u4F7F\u7528\u6807\u51C6\u8986\u76D6\u673A\u5236\u3002
 
 # {0}, {2} - version (e.g. 2.1), {1} - absolute class location
 wrapperTask.loadingIncorrectApi=\u60a8\u6b63\u5728\u4ece{1}\u52a0\u8f7d JAX-WS {0} API, \u4f46\u6b64\u5de5\u5177\u9700\u8981 JAX-WS {2} API\u3002
 
-invoker.needEndorsed=\u60a8\u6b63\u5728\u9644\u5e26 JAX-WS {0} API \u7684 JDK6 \u4e0a\u8fd0\u884c, \u4f46\u6b64\u5de5\u5177\u9700\u8981 JAX-WS {1} API\u3002\u8bf7\u4f7f\u7528\u6388\u6743\u6807\u51c6\u8986\u76d6\u673a\u5236 (http://docs.oracle.com/javase/6/docs/technotes/guides/standards/), \u6216\u8005\u4f7f\u7528 -Xendorsed \u9009\u9879\u3002
+invoker.needEndorsed=\u60A8\u6B63\u5728\u9644\u5E26 JAX-WS {0} API \u7684 JDK6 \u6216\u66F4\u65B0\u7248\u672C\u4E0A\u8FD0\u884C, \u4F46\u6B64\u5DE5\u5177\u9700\u8981 JAX-WS {1} \u6216\u66F4\u65B0\u7684 API\u3002\u8BF7\u4F7F\u7528\u6807\u51C6\u8986\u76D6\u673A\u5236\u3002
 
 
 #
diff --git a/src/jdk.xml.ws/share/classes/com/sun/tools/internal/ws/resources/wscompile_zh_TW.properties b/src/jdk.xml.ws/share/classes/com/sun/tools/internal/ws/resources/wscompile_zh_TW.properties
index 6c33886..40b2297 100644
--- a/src/jdk.xml.ws/share/classes/com/sun/tools/internal/ws/resources/wscompile_zh_TW.properties
+++ b/src/jdk.xml.ws/share/classes/com/sun/tools/internal/ws/resources/wscompile_zh_TW.properties
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2005, 2014, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2005, 2017, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
@@ -38,12 +38,12 @@
 
 
 wsgen.usage.examples=\n\\\u7bc4\u4f8b:\n\  wsgen -cp . example.Stock\n\  wsgen -cp . example.Stock -wsdl -servicename '{http://mynamespace}MyService'\n
-wrapperTask.needEndorsed=\u60a8\u76ee\u524d\u57f7\u884c\u96a8\u9644\u65bc JAX-WS {0} API \u7684 JDK6, \u4f46\u662f\u6b64\u5de5\u5177\u9700\u8981\u4f7f\u7528 JAX-WS {1} API. \u8acb\u4f7f\u7528\u8a8d\u53ef\u7684\u6a19\u6e96\u8986\u5beb\u6a5f\u5236 (http://docs.oracle.com/javase/6/docs/technotes/guides/standards/), \u6216\u8005\u5728 <{2}> \u8a2d\u5b9a xendorsed="true".
+wrapperTask.needEndorsed=\u60A8\u76EE\u524D\u57F7\u884C\u96A8\u9644\u65BC JAX-WS {0} API \u7684 JDK6 \u6216\u66F4\u65B0\u7248\u672C\uFF0C\u4F46\u662F\u6B64\u5DE5\u5177\u9700\u8981\u642D\u914D JAX-WS {1} \u6216\u66F4\u65B0\u7248\u672C\u7684 API\u3002\u8ACB\u4F7F\u7528\u6A19\u6E96\u8986\u5BEB\u6A5F\u5236\u3002
 
 # {0}, {2} - version (e.g. 2.1), {1} - absolute class location
 wrapperTask.loadingIncorrectApi=\u60a8\u6b63\u5728\u5f9e {1} \u8f09\u5165 JAX-WS {0} API, \u4f46\u662f\u6b64\u5de5\u5177\u9700\u8981\u4f7f\u7528 JAX-WS {2} API.
 
-invoker.needEndorsed=\u60a8\u76ee\u524d\u57f7\u884c\u96a8\u9644\u65bc JAX-WS {0} API \u7684 JDK6, \u4f46\u662f\u6b64\u5de5\u5177\u9700\u8981\u4f7f\u7528 JAX-WS {1} API. \u8acb\u4f7f\u7528\u8a8d\u53ef\u7684\u6a19\u6e96\u8986\u5beb\u6a5f\u5236 (http://docs.oracle.com/javase/6/docs/technotes/guides/standards/), \u6216\u8005\u4f7f\u7528 -Xendorsed \u9078\u9805.
+invoker.needEndorsed=\u60A8\u76EE\u524D\u57F7\u884C\u96A8\u9644\u65BC JAX-WS {0} API \u7684 JDK6 \u6216\u66F4\u65B0\u7248\u672C\uFF0C\u4F46\u662F\u6B64\u5DE5\u5177\u9700\u8981\u642D\u914D JAX-WS {1} \u6216\u66F4\u65B0\u7248\u672C\u7684 API\u3002\u8ACB\u4F7F\u7528\u6A19\u6E96\u8986\u5BEB\u6A5F\u5236\u3002
 
 
 #
diff --git a/src/jdk.xml.ws/share/classes/com/sun/tools/internal/ws/util/WSDLParseException.java b/src/jdk.xml.ws/share/classes/com/sun/tools/internal/ws/util/WSDLParseException.java
index b9ceb98..1ea2ae0 100644
--- a/src/jdk.xml.ws/share/classes/com/sun/tools/internal/ws/util/WSDLParseException.java
+++ b/src/jdk.xml.ws/share/classes/com/sun/tools/internal/ws/util/WSDLParseException.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -27,9 +27,6 @@
 
 import com.sun.xml.internal.ws.util.exception.JAXWSExceptionBase;
 
-import java.util.Locale;
-import java.util.ResourceBundle;
-
 /**
   * @author WS Development Team
   */
@@ -46,9 +43,4 @@
     public String getDefaultResourceBundleName() {
         return "com.sun.tools.internal.ws.resources.util";
     }
-
-    @Override
-    public ResourceBundle getResourceBundle(Locale locale) {
-        return ResourceBundle.getBundle(getDefaultResourceBundleName(), locale);
-    }
 }
diff --git a/src/jdk.xml.ws/share/classes/com/sun/tools/internal/ws/version.properties b/src/jdk.xml.ws/share/classes/com/sun/tools/internal/ws/version.properties
index 82452ac..88eace6 100644
--- a/src/jdk.xml.ws/share/classes/com/sun/tools/internal/ws/version.properties
+++ b/src/jdk.xml.ws/share/classes/com/sun/tools/internal/ws/version.properties
@@ -26,4 +26,4 @@
 build-id=2.3.0-SNAPSHOT
 build-version=JAX-WS RI 2.3.0-SNAPSHOT
 major-version=2.3.0
-svn-revision=e8c5e9697d9b27d83ff35d767939b2f55e667621
+svn-revision=3012ef421cf43774943c57736dac2207aeea9f07
diff --git a/src/jdk.xml.ws/share/classes/com/sun/tools/internal/ws/wsdl/framework/ParseException.java b/src/jdk.xml.ws/share/classes/com/sun/tools/internal/ws/wsdl/framework/ParseException.java
index f98dfcf..7306169 100644
--- a/src/jdk.xml.ws/share/classes/com/sun/tools/internal/ws/wsdl/framework/ParseException.java
+++ b/src/jdk.xml.ws/share/classes/com/sun/tools/internal/ws/wsdl/framework/ParseException.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -28,9 +28,6 @@
 import com.sun.istack.internal.localization.Localizable;
 import com.sun.xml.internal.ws.util.exception.JAXWSExceptionBase;
 
-import java.util.Locale;
-import java.util.ResourceBundle;
-
 /**
  * An exception signalling a parsing error.
  *
@@ -53,9 +50,4 @@
     public String getDefaultResourceBundleName() {
         return "com.sun.tools.internal.ws.resources.wsdl";
     }
-
-    @Override
-    public ResourceBundle getResourceBundle(Locale locale) {
-        return ResourceBundle.getBundle(getDefaultResourceBundleName(), locale);
-    }
 }
diff --git a/src/jdk.xml.ws/share/classes/com/sun/tools/internal/ws/wsdl/framework/ValidationException.java b/src/jdk.xml.ws/share/classes/com/sun/tools/internal/ws/wsdl/framework/ValidationException.java
index 708d8b1..d73b5fb 100644
--- a/src/jdk.xml.ws/share/classes/com/sun/tools/internal/ws/wsdl/framework/ValidationException.java
+++ b/src/jdk.xml.ws/share/classes/com/sun/tools/internal/ws/wsdl/framework/ValidationException.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -27,9 +27,6 @@
 
 import com.sun.xml.internal.ws.util.exception.JAXWSExceptionBase;
 
-import java.util.Locale;
-import java.util.ResourceBundle;
-
 /**
  * An exception signalling that validation of an entity failed.
  *
@@ -48,9 +45,4 @@
     public String getDefaultResourceBundleName() {
         return "com.sun.tools.internal.ws.resources.wsdl";
     }
-
-    @Override
-    public ResourceBundle getResourceBundle(Locale locale) {
-        return ResourceBundle.getBundle(getDefaultResourceBundleName(), locale);
-    }
 }
diff --git a/src/jdk.xml.ws/share/classes/com/sun/tools/internal/ws/wsdl/parser/DOMForest.java b/src/jdk.xml.ws/share/classes/com/sun/tools/internal/ws/wsdl/parser/DOMForest.java
index aed48ab..e105d2f 100644
--- a/src/jdk.xml.ws/share/classes/com/sun/tools/internal/ws/wsdl/parser/DOMForest.java
+++ b/src/jdk.xml.ws/share/classes/com/sun/tools/internal/ws/wsdl/parser/DOMForest.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -115,12 +115,26 @@
         try {
             // secure xml processing can be switched off if input requires it
             boolean secureProcessingEnabled = options == null || !options.disableXmlSecurity;
-            DocumentBuilderFactory dbf = XmlUtil.newDocumentBuilderFactory(secureProcessingEnabled);
+            DocumentBuilderFactory dbf = XmlUtil.newDocumentBuilderFactory(!secureProcessingEnabled);
             dbf.setNamespaceAware(true);
             this.documentBuilder = dbf.newDocumentBuilder();
 
             this.parserFactory = XmlUtil.newSAXParserFactory(secureProcessingEnabled);
             this.parserFactory.setNamespaceAware(true);
+
+            if(secureProcessingEnabled){
+                dbf.setExpandEntityReferences(false);
+                try {
+                parserFactory.setFeature("http://apache.org/xml/features/disallow-doctype-decl", true);
+                parserFactory.setFeature("http://xml.org/sax/features/external-general-entities", false);
+                parserFactory.setFeature("http://xml.org/sax/features/external-parameter-entities", false);
+              } catch (SAXNotRecognizedException e){
+                throw new ParserConfigurationException(e.getMessage());
+              } catch (SAXNotSupportedException e) {
+                throw new ParserConfigurationException(e.getMessage());
+              }
+            }
+
         } catch (ParserConfigurationException e) {
             throw new AssertionError(e);
         }