changeset 100:8aff952c4a39

. Merge from main OpenJDK repository.
author glewis@misty.eyesbeyond.com
date Mon, 07 Sep 2009 10:56:42 -0700
parents d2b6b2d2581d 4c990aa99bc0
children 812963284048
files src/share/classes/com/sun/codemodel/internal/fmt/package.html src/share/classes/com/sun/tools/internal/xjc/api/impl/j2s/Messages.java src/share/classes/com/sun/tools/internal/xjc/api/impl/j2s/Messages.properties src/share/classes/com/sun/xml/internal/fastinfoset/stax/events/StAXEventAllocator.java src/share/classes/com/sun/xml/internal/ws/addressing/model/InvalidMapException.java src/share/classes/com/sun/xml/internal/ws/addressing/model/MapRequiredException.java src/share/classes/com/sun/xml/internal/ws/client/ResponseImpl.java src/share/classes/com/sun/xml/internal/ws/client/sei/AsyncBuilder.java src/share/classes/com/sun/xml/internal/ws/client/sei/package-info.java src/share/classes/com/sun/xml/internal/ws/encoding/AbstractXMLStreamWriterExImpl.java src/share/classes/com/sun/xml/internal/ws/streaming/XMLReader.java
diffstat 1406 files changed, 40709 insertions(+), 12728 deletions(-) [+]
line wrap: on
line diff
--- a/.hgtags	Sat Jul 25 20:55:11 2009 -0700
+++ b/.hgtags	Mon Sep 07 10:56:42 2009 -0700
@@ -41,3 +41,8 @@
 aaa25dfd3de68c6f1a1d3ef8c45fd99f76bca6dd jdk7-b64
 aa22a1be5866a6608ba17a7a443945559409ae0f jdk7-b65
 fa8712c099edd5c9a6b3ed9729353738004d388f jdk7-b66
+faa13cd4d6cdcfb155da5ed23b0da6e0ed0f9ea8 jdk7-b67
+845fa487f0f72a9f232ead8315c0087a477a5a31 jdk7-b68
+3e64fdfb92910e164d1f4b21b147719d5c674254 jdk7-b69
+dd3c5f3ec28d5d5e5c0dc3229fdd52d85d04274d jdk7-b70
+03314cf56a7212bbb6c186dbc9f15aca988a48ec jdk7-b71
--- a/THIRD_PARTY_README	Sat Jul 25 20:55:11 2009 -0700
+++ b/THIRD_PARTY_README	Mon Sep 07 10:56:42 2009 -0700
@@ -32,7 +32,7 @@
 
 --- end of LICENSE file ---
 %% This notice is provided with respect to ASM, which may be included with this software: 
-Copyright (c) 2000-2005 INRIA, France Telecom
+Copyright (c) 2000-2007 INRIA, France Telecom
 All rights reserved.
 
 Redistribution and use in source and binary forms, with or without
--- a/make/Makefile	Sat Jul 25 20:55:11 2009 -0700
+++ b/make/Makefile	Mon Sep 07 10:56:42 2009 -0700
@@ -1,5 +1,5 @@
 #
-# Copyright 2007 Sun Microsystems, Inc.  All Rights Reserved.
+# Copyright 2007-2009 Sun Microsystems, Inc.  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
--- a/make/build.properties	Sat Jul 25 20:55:11 2009 -0700
+++ b/make/build.properties	Mon Sep 07 10:56:42 2009 -0700
@@ -1,5 +1,5 @@
 #
-# Copyright 2007 Sun Microsystems, Inc.  All Rights Reserved.
+# Copyright 2007-2009 Sun Microsystems, Inc.  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,8 @@
 # one of the standard user build.properties files (see build.xml)
 
 # options for the <javac> tasks used to compile the tools
-javac.source = 5
-javac.target = 5
+javac.source = 7
+javac.target = 7
 javac.debug = true
 javac.no.jdk.warnings = -XDignore.symbol.file=true
 # set the following to -version to verify the versions of javac being used
--- a/make/build.xml	Sat Jul 25 20:55:11 2009 -0700
+++ b/make/build.xml	Mon Sep 07 10:56:42 2009 -0700
@@ -1,6 +1,6 @@
 <?xml version="1.0"?>
 <!--
- Copyright 2007 Sun Microsystems, Inc.  All Rights Reserved.
+ Copyright 2007-2009 Sun Microsystems, Inc.  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
--- a/src/share/classes/com/sun/codemodel/internal/JAnnotatable.java	Sat Jul 25 20:55:11 2009 -0700
+++ b/src/share/classes/com/sun/codemodel/internal/JAnnotatable.java	Mon Sep 07 10:56:42 2009 -0700
@@ -22,6 +22,7 @@
  * CA 95054 USA or visit www.sun.com if you need additional information or
  * have any questions.
  */
+
 package com.sun.codemodel.internal;
 
 import java.lang.annotation.Annotation;
--- a/src/share/classes/com/sun/codemodel/internal/JAnnotationUse.java	Sat Jul 25 20:55:11 2009 -0700
+++ b/src/share/classes/com/sun/codemodel/internal/JAnnotationUse.java	Mon Sep 07 10:56:42 2009 -0700
@@ -199,8 +199,7 @@
       *
       */
      public JAnnotationUse param(String name, Class value){
-         addValue(name, new JAnnotationStringValue(JExpr.lit(value.getName())));
-         return this;
+         return param(name,clazz.owner().ref(value));
     }
 
     /**
--- a/src/share/classes/com/sun/codemodel/internal/JAnnotationWriter.java	Sat Jul 25 20:55:11 2009 -0700
+++ b/src/share/classes/com/sun/codemodel/internal/JAnnotationWriter.java	Mon Sep 07 10:56:42 2009 -0700
@@ -22,6 +22,7 @@
  * CA 95054 USA or visit www.sun.com if you need additional information or
  * have any questions.
  */
+
 package com.sun.codemodel.internal;
 
 import java.lang.annotation.Annotation;
--- a/src/share/classes/com/sun/codemodel/internal/JBlock.java	Sat Jul 25 20:55:11 2009 -0700
+++ b/src/share/classes/com/sun/codemodel/internal/JBlock.java	Mon Sep 07 10:56:42 2009 -0700
@@ -111,6 +111,14 @@
         return r;
     }
 
+    /**
+     * Returns true if this block is empty and does not contain
+     * any statement.
+     */
+    public boolean isEmpty() {
+        return content.isEmpty();
+    }
+
 
     /**
      * Adds a local variable declaration to this block
--- a/src/share/classes/com/sun/codemodel/internal/JCommentPart.java	Sat Jul 25 20:55:11 2009 -0700
+++ b/src/share/classes/com/sun/codemodel/internal/JCommentPart.java	Mon Sep 07 10:56:42 2009 -0700
@@ -22,6 +22,7 @@
  * CA 95054 USA or visit www.sun.com if you need additional information or
  * have any questions.
  */
+
 package com.sun.codemodel.internal;
 
 import java.util.ArrayList;
@@ -77,7 +78,8 @@
      */
     protected void format( JFormatter f, String indent ) {
         if(!f.isPrinting()) {
-            // quickly pass the types to JFormatter
+            // quickly pass the types to JFormatter, as that's all we care.
+            // we don't need to worry about the exact formatting of text.
             for( Object o : this )
                 if(o instanceof JClass)
                     f.g((JClass)o);
@@ -97,12 +99,12 @@
                 while( (idx=s.indexOf('\n'))!=-1 ) {
                     String line = s.substring(0,idx);
                     if(line.length()>0)
-                        f.p(line);
+                        f.p(escape(line));
                     s = s.substring(idx+1);
                     f.nl().p(indent);
                 }
                 if(s.length()!=0)
-                    f.p(s);
+                    f.p(escape(s));
             } else
             if(o instanceof JClass) {
                 // TODO: this doesn't print the parameterized type properly
@@ -117,4 +119,16 @@
         if(!isEmpty())
             f.nl();
     }
+
+    /**
+     * Escapes the appearance of the comment terminator.
+     */
+    private String escape(String s) {
+        while(true) {
+            int idx = s.indexOf("*/");
+            if(idx <0)   return s;
+
+            s = s.substring(0,idx+1)+"<!---->"+s.substring(idx+1);
+        }
+    }
 }
--- a/src/share/classes/com/sun/codemodel/internal/JDirectClass.java	Sat Jul 25 20:55:11 2009 -0700
+++ b/src/share/classes/com/sun/codemodel/internal/JDirectClass.java	Mon Sep 07 10:56:42 2009 -0700
@@ -22,6 +22,7 @@
  * CA 95054 USA or visit www.sun.com if you need additional information or
  * have any questions.
  */
+
 package com.sun.codemodel.internal;
 
 import java.util.Iterator;
--- a/src/share/classes/com/sun/codemodel/internal/JExpr.java	Sat Jul 25 20:55:11 2009 -0700
+++ b/src/share/classes/com/sun/codemodel/internal/JExpr.java	Mon Sep 07 10:56:42 2009 -0700
@@ -198,8 +198,12 @@
             char c = s.charAt(i);
             int j = charEscape.indexOf(c);
             if(j>=0) {
-                sb.append('\\');
-                sb.append(charMacro.charAt(j));
+                if((quote=='"' && c=='\'') || (quote=='\'' && c=='"')) {
+                    sb.append(c);
+                } else {
+                    sb.append('\\');
+                    sb.append(charMacro.charAt(j));
+                }
             } else {
                 // technically Unicode escape shouldn't be done here,
                 // for it's a lexical level handling.
--- a/src/share/classes/com/sun/codemodel/internal/JJavaName.java	Sat Jul 25 20:55:11 2009 -0700
+++ b/src/share/classes/com/sun/codemodel/internal/JJavaName.java	Mon Sep 07 10:56:42 2009 -0700
@@ -231,6 +231,7 @@
               "(.*)basis","$1bases",
                "(.*)axis","$1axes",
                  "(.+)is","$1ises",
+                 "(.+)ss","$1sses",
                  "(.+)us","$1uses",
                   "(.+)s","$1s",
                "(.*)foot","$1feet",
--- a/src/share/classes/com/sun/codemodel/internal/JMethod.java	Sat Jul 25 20:55:11 2009 -0700
+++ b/src/share/classes/com/sun/codemodel/internal/JMethod.java	Mon Sep 07 10:56:42 2009 -0700
@@ -388,10 +388,11 @@
                 f.g(a).nl();
         }
 
-                // declare the generics parameters
+        f.g(mods);
+
+        // declare the generics parameters
                 super.declare(f);
 
-                f.g(mods);
                 if (!isConstructor())
                         f.g(type);
                 f.id(name).p('(').i();
--- a/src/share/classes/com/sun/codemodel/internal/JPackage.java	Sat Jul 25 20:55:11 2009 -0700
+++ b/src/share/classes/com/sun/codemodel/internal/JPackage.java	Mon Sep 07 10:56:42 2009 -0700
@@ -98,32 +98,7 @@
     JPackage(String name, JCodeModel cw) {
         this.owner = cw;
         if (name.equals(".")) {
-            String msg = "JPackage name . is not allowed";
-            throw new IllegalArgumentException(msg);
-        }
-
-        int dots = 1;
-        for (int i = 0; i < name.length(); i++) {
-            char c = name.charAt(i);
-            if (c == '.') {
-                dots++;
-                continue;
-            }
-            if (dots > 1) {
-                String msg = "JPackage name " + name + " missing identifier";
-                throw new IllegalArgumentException(msg);
-            } else if (dots == 1 && !Character.isJavaIdentifierStart(c)) {
-                String msg =
-                    "JPackage name " + name + " contains illegal " + "character for beginning of identifier: " + c;
-                throw new IllegalArgumentException(msg);
-            } else if (!Character.isJavaIdentifierPart(c)) {
-                String msg = "JPackage name " + name + "contains illegal " + "character: " + c;
-                throw new IllegalArgumentException(msg);
-            }
-            dots = 0;
-        }
-        if (!name.trim().equals("") && dots != 0) {
-            String msg = "JPackage name not allowed to end with .";
+            String msg = "Package name . is not allowed";
             throw new IllegalArgumentException(msg);
         }
 
--- a/src/share/classes/com/sun/codemodel/internal/JTypeWildcard.java	Sat Jul 25 20:55:11 2009 -0700
+++ b/src/share/classes/com/sun/codemodel/internal/JTypeWildcard.java	Mon Sep 07 10:56:42 2009 -0700
@@ -22,6 +22,7 @@
  * CA 95054 USA or visit www.sun.com if you need additional information or
  * have any questions.
  */
+
 package com.sun.codemodel.internal;
 
 import java.util.Iterator;
--- a/src/share/classes/com/sun/codemodel/internal/TypedAnnotationWriter.java	Sat Jul 25 20:55:11 2009 -0700
+++ b/src/share/classes/com/sun/codemodel/internal/TypedAnnotationWriter.java	Mon Sep 07 10:56:42 2009 -0700
@@ -22,6 +22,7 @@
  * CA 95054 USA or visit www.sun.com if you need additional information or
  * have any questions.
  */
+
 package com.sun.codemodel.internal;
 
 import java.lang.reflect.InvocationHandler;
--- a/src/share/classes/com/sun/codemodel/internal/fmt/package.html	Sat Jul 25 20:55:11 2009 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,29 +0,0 @@
-<!--
- Copyright 2005-2006 Sun Microsystems, Inc.  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.  Sun designates this
- particular file as subject to the "Classpath" exception as provided
- by Sun 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
- CA 95054 USA or visit www.sun.com if you need additional information or
- have any questions.
--->
-<HTML>
-<BODY>
-Various resource file formats (classes that implement <code>JResourceFile</code>).
-</BODY>
-</HTML>
--- a/src/share/classes/com/sun/codemodel/internal/package-info.java	Sat Jul 25 20:55:11 2009 -0700
+++ b/src/share/classes/com/sun/codemodel/internal/package-info.java	Mon Sep 07 10:56:42 2009 -0700
@@ -22,6 +22,7 @@
  * CA 95054 USA or visit www.sun.com if you need additional information or
  * have any questions.
  */
+
 /**
  * <h1>Library for generating Java source code</h1>.
  *
--- a/src/share/classes/com/sun/codemodel/internal/util/EncoderFactory.java	Sat Jul 25 20:55:11 2009 -0700
+++ b/src/share/classes/com/sun/codemodel/internal/util/EncoderFactory.java	Mon Sep 07 10:56:42 2009 -0700
@@ -22,11 +22,10 @@
  * CA 95054 USA or visit www.sun.com if you need additional information or
  * have any questions.
  */
+
 /*
  * @(#)$Id: EncoderFactory.java,v 1.3 2005/09/10 19:07:33 kohsuke Exp $
  */
-
-
 package com.sun.codemodel.internal.util;
 
 import java.lang.reflect.Constructor;
--- a/src/share/classes/com/sun/codemodel/internal/util/MS1252Encoder.java	Sat Jul 25 20:55:11 2009 -0700
+++ b/src/share/classes/com/sun/codemodel/internal/util/MS1252Encoder.java	Mon Sep 07 10:56:42 2009 -0700
@@ -22,11 +22,10 @@
  * CA 95054 USA or visit www.sun.com if you need additional information or
  * have any questions.
  */
+
 /*
  * @(#)$Id: MS1252Encoder.java,v 1.2 2005/09/10 19:07:33 kohsuke Exp $
  */
-
-
 package com.sun.codemodel.internal.util;
 
 import java.nio.charset.Charset;
--- a/src/share/classes/com/sun/codemodel/internal/writer/FilterCodeWriter.java	Sat Jul 25 20:55:11 2009 -0700
+++ b/src/share/classes/com/sun/codemodel/internal/writer/FilterCodeWriter.java	Mon Sep 07 10:56:42 2009 -0700
@@ -22,6 +22,7 @@
  * CA 95054 USA or visit www.sun.com if you need additional information or
  * have any questions.
  */
+
 package com.sun.codemodel.internal.writer;
 
 import java.io.OutputStream;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/share/classes/com/sun/istack/internal/Builder.java	Mon Sep 07 10:56:42 2009 -0700
@@ -0,0 +1,33 @@
+/*
+ * Copyright 2005-2006 Sun Microsystems, Inc.  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.  Sun designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Sun 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+package com.sun.istack.internal;
+
+/**
+ *
+ * @author Martin Grebac
+ */
+public interface Builder<T> {
+    T build();
+}
--- a/src/share/classes/com/sun/istack/internal/Pool.java	Sat Jul 25 20:55:11 2009 -0700
+++ b/src/share/classes/com/sun/istack/internal/Pool.java	Mon Sep 07 10:56:42 2009 -0700
@@ -25,6 +25,7 @@
 package com.sun.istack.internal;
 
 import java.util.concurrent.ConcurrentLinkedQueue;
+import java.lang.ref.WeakReference;
 
 /**
  * Pool of reusable objects that are indistinguishable from each other,
@@ -33,6 +34,7 @@
  * @author Kohsuke Kawaguchi
  */
 public interface Pool<T> {
+
     /**
      * Gets a new object from the pool.
      *
@@ -46,7 +48,6 @@
      */
     void recycle(@NotNull T t);
 
-
     /**
      * Default implementation that uses {@link ConcurrentLinkedQueue}
      * as the data store.
@@ -55,7 +56,10 @@
      * <p>
      * Don't rely on the fact that this class extends from {@link ConcurrentLinkedQueue}.
      */
-    public abstract class Impl<T> extends ConcurrentLinkedQueue<T> implements Pool<T> {
+    public abstract class Impl<T> implements Pool<T> {
+
+        private volatile WeakReference<ConcurrentLinkedQueue<T>> queue;
+
         /**
          * Gets a new object from the pool.
          *
@@ -66,9 +70,10 @@
          *      always non-null.
          */
         public final @NotNull T take() {
-            T t = super.poll();
-            if(t==null)
+            T t = getQueue().poll();
+            if(t==null) {
                 return create();
+            }
             return t;
         }
 
@@ -76,7 +81,22 @@
          * Returns an object back to the pool.
          */
         public final void recycle(T t) {
-            super.offer(t);
+            getQueue().offer(t);
+        }
+
+        private ConcurrentLinkedQueue<T> getQueue() {
+            WeakReference<ConcurrentLinkedQueue<T>> q = queue;
+            if (q != null) {
+                ConcurrentLinkedQueue<T> d = q.get();
+                if (d != null) {
+                    return d;
+                }
+            }
+            // overwrite the queue
+            ConcurrentLinkedQueue<T> d = new ConcurrentLinkedQueue<T>();
+            queue = new WeakReference<ConcurrentLinkedQueue<T>>(d);
+
+            return d;
         }
 
         /**
--- a/src/share/classes/com/sun/istack/internal/XMLStreamReaderToContentHandler.java	Sat Jul 25 20:55:11 2009 -0700
+++ b/src/share/classes/com/sun/istack/internal/XMLStreamReaderToContentHandler.java	Mon Sep 07 10:56:42 2009 -0700
@@ -54,12 +54,22 @@
 
     // if true, when the conversion is completed, leave the cursor to the last
     // event that was fired (such as end element)
-    private boolean eagerQuit;
+    private final boolean eagerQuit;
 
     /**
      * If true, not start/endDocument event.
      */
-    private boolean fragment;
+    private final boolean fragment;
+
+    // array of the even length of the form { prefix0, uri0, prefix1, uri1, ... }
+    private final String[] inscopeNamespaces;
+
+    /**
+     * @see #XMLStreamReaderToContentHandler(XMLStreamReader, ContentHandler, boolean, boolean, String[])
+     */
+    public XMLStreamReaderToContentHandler(XMLStreamReader staxCore, ContentHandler saxCore, boolean eagerQuit, boolean fragment) {
+        this(staxCore, saxCore, eagerQuit, fragment, new String[0]);
+    }
 
     /**
      * Construct a new StAX to SAX adapter that will convert a StAX event
@@ -69,14 +79,22 @@
      *                StAX event source
      * @param saxCore
      *                SAXevent sink
+     * @param eagerQuit
+     * @param fragment
+     * @param inscopeNamespaces
+     *                array of the even length of the form { prefix0, uri0, prefix1, uri1, ... }
      */
-    public XMLStreamReaderToContentHandler(XMLStreamReader staxCore, ContentHandler saxCore, boolean eagerQuit, boolean fragment) {
+    public XMLStreamReaderToContentHandler(XMLStreamReader staxCore, ContentHandler saxCore,
+            boolean eagerQuit, boolean fragment, String[] inscopeNamespaces) {
         this.staxStreamReader = staxCore;
         this.saxHandler = saxCore;
         this.eagerQuit = eagerQuit;
         this.fragment = fragment;
+        this.inscopeNamespaces = inscopeNamespaces;
+        assert inscopeNamespaces.length%2 == 0;
     }
 
+
     /*
      * @see StAXReaderToContentHandler#bridge()
      */
@@ -100,6 +118,10 @@
 
             handleStartDocument();
 
+            for(int i=0; i < inscopeNamespaces.length; i+=2) {
+                saxHandler.startPrefixMapping(inscopeNamespaces[i], inscopeNamespaces[i+1]);
+            }
+
             OUTER:
             do {
                 // These are all of the events listed in the javadoc for
@@ -156,6 +178,10 @@
                 event=staxStreamReader.next();
             } while (depth!=0);
 
+            for(int i=0; i < inscopeNamespaces.length; i+=2) {
+                saxHandler.endPrefixMapping(inscopeNamespaces[i]);
+            }
+
             handleEndDocument();
         } catch (SAXException e) {
             throw new XMLStreamException2(e);
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/share/classes/com/sun/istack/internal/localization/Localizable.java	Mon Sep 07 10:56:42 2009 -0700
@@ -0,0 +1,63 @@
+/*
+ * Copyright 2005-2006 Sun Microsystems, Inc.  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.  Sun designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Sun 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+package com.sun.istack.internal.localization;
+
+/**
+ * Localizable message.
+ *
+ * @author WS Development Team
+ */
+public interface Localizable {
+    /**
+     * Gets the key in the resource bundle.
+     *
+     * @return
+     *      if this method returns {@link #NOT_LOCALIZABLE},
+     *      that means the message is not localizable, and
+     *      the first item of {@link #getArguments()} array
+     *      holds a String.
+     */
+    public String getKey();
+
+    /**
+     * Returns the arguments for message formatting.
+     *
+     * @return
+     *      can be an array of length 0 but never be null.
+     */
+    public Object[] getArguments();
+    public String getResourceBundleName();
+
+
+    /**
+     * Special constant that represents a message that
+     * is not localizable.
+     *
+     * <p>
+     * Use of "new" is to create an unique instance.
+     */
+    public static final String NOT_LOCALIZABLE = new String("\u0000");
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/share/classes/com/sun/istack/internal/localization/LocalizableMessage.java	Mon Sep 07 10:56:42 2009 -0700
@@ -0,0 +1,56 @@
+/*
+ * Copyright 2005-2006 Sun Microsystems, Inc.  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.  Sun designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Sun 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+package com.sun.istack.internal.localization;
+
+/**
+ * @author WS Development Team
+ */
+public final class LocalizableMessage implements Localizable {
+
+    private final String _bundlename;
+    private final String _key;
+    private final Object[] _args;
+
+    public LocalizableMessage(String bundlename, String key, Object... args) {
+        _bundlename = bundlename;
+        _key = key;
+        if(args==null)
+            args = new Object[0];
+        _args = args;
+    }
+
+    public String getKey() {
+        return _key;
+    }
+
+    public Object[] getArguments() {
+        return _args;
+    }
+
+    public String getResourceBundleName() {
+        return _bundlename;
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/share/classes/com/sun/istack/internal/localization/LocalizableMessageFactory.java	Mon Sep 07 10:56:42 2009 -0700
@@ -0,0 +1,43 @@
+/*
+ * Copyright 2005-2006 Sun Microsystems, Inc.  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.  Sun designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Sun 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+package com.sun.istack.internal.localization;
+
+/**
+ * @author WS Development Team
+ */
+public class LocalizableMessageFactory {
+
+    private final String _bundlename;
+
+    public LocalizableMessageFactory(String bundlename) {
+        _bundlename = bundlename;
+    }
+
+    public Localizable getMessage(String key, Object... args) {
+        return new LocalizableMessage(_bundlename, key, args);
+    }
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/share/classes/com/sun/istack/internal/localization/Localizer.java	Mon Sep 07 10:56:42 2009 -0700
@@ -0,0 +1,149 @@
+/*
+ * Copyright 2005-2006 Sun Microsystems, Inc.  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.  Sun designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Sun 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+package com.sun.istack.internal.localization;
+
+import java.text.MessageFormat;
+import java.util.HashMap;
+import java.util.Locale;
+import java.util.MissingResourceException;
+import java.util.ResourceBundle;
+
+/**
+ * Localizes the {@link Localizable} into a message
+ * by using a configured {@link Locale}.
+ *
+ * @author WS Development Team
+ */
+public class Localizer {
+
+    private final Locale _locale;
+    private final HashMap _resourceBundles;
+
+    public Localizer() {
+        this(Locale.getDefault());
+    }
+
+    public Localizer(Locale l) {
+        _locale = l;
+        _resourceBundles = new HashMap();
+    }
+
+    public Locale getLocale() {
+        return _locale;
+    }
+
+    public String localize(Localizable l) {
+        String key = l.getKey();
+        if (key == Localizable.NOT_LOCALIZABLE) {
+            // this message is not localizable
+            return (String) l.getArguments()[0];
+        }
+        String bundlename = l.getResourceBundleName();
+
+        try {
+            ResourceBundle bundle =
+                (ResourceBundle) _resourceBundles.get(bundlename);
+
+            if (bundle == null) {
+                try {
+                    bundle = ResourceBundle.getBundle(bundlename, _locale);
+                } catch (MissingResourceException e) {
+                    // work around a bug in the com.sun.enterprise.deployment.WebBundleArchivist:
+                    //   all files with an extension different from .class (hence all the .properties files)
+                    //   get copied to the top level directory instead of being in the package where they
+                    //   are defined
+                    // so, since we can't find the bundle under its proper name, we look for it under
+                    //   the top-level package
+
+                    int i = bundlename.lastIndexOf('.');
+                    if (i != -1) {
+                        String alternateBundleName =
+                            bundlename.substring(i + 1);
+                        try {
+                            bundle =
+                                ResourceBundle.getBundle(
+                                    alternateBundleName,
+                                    _locale);
+                        } catch (MissingResourceException e2) {
+                            // give up
+                            return getDefaultMessage(l);
+                        }
+                    }
+                }
+
+                _resourceBundles.put(bundlename, bundle);
+            }
+
+            if (bundle == null) {
+                return getDefaultMessage(l);
+            }
+
+            if (key == null)
+                key = "undefined";
+
+            String msg;
+            try {
+                msg = bundle.getString(key);
+            } catch (MissingResourceException e) {
+                // notice that this may throw a MissingResourceException of its own (caught below)
+                msg = bundle.getString("undefined");
+            }
+
+            // localize all arguments to the given localizable object
+            Object[] args = l.getArguments();
+            for (int i = 0; i < args.length; ++i) {
+                if (args[i] instanceof Localizable)
+                    args[i] = localize((Localizable) args[i]);
+            }
+
+            String message = MessageFormat.format(msg, args);
+            return message;
+
+        } catch (MissingResourceException e) {
+            return getDefaultMessage(l);
+        }
+
+    }
+
+    private String getDefaultMessage(Localizable l) {
+        String key = l.getKey();
+        Object[] args = l.getArguments();
+        StringBuilder sb = new StringBuilder();
+        sb.append("[failed to localize] ");
+        sb.append(key);
+        if (args != null) {
+            sb.append('(');
+            for (int i = 0; i < args.length; ++i) {
+                if (i != 0)
+                    sb.append(", ");
+                sb.append(String.valueOf(args[i]));
+            }
+            sb.append(')');
+        }
+        return sb.toString();
+    }
+
+}
--- a/src/share/classes/com/sun/istack/internal/ws/AnnotationProcessorFactoryImpl.java	Sat Jul 25 20:55:11 2009 -0700
+++ b/src/share/classes/com/sun/istack/internal/ws/AnnotationProcessorFactoryImpl.java	Mon Sep 07 10:56:42 2009 -0700
@@ -66,10 +66,7 @@
         types.add("javax.jws.soap.SOAPBinding");
         types.add("javax.jws.soap.SOAPMessageHandler");
         types.add("javax.jws.soap.SOAPMessageHandlers");
-        types.add("javax.xml.ws.BeginService");
-        types.add("javax.xml.ws.EndService");
         types.add("javax.xml.ws.BindingType");
-        types.add("javax.xml.ws.ParameterIndex");
         types.add("javax.xml.ws.RequestWrapper");
         types.add("javax.xml.ws.ResponseWrapper");
         types.add("javax.xml.ws.ServiceMode");
@@ -78,8 +75,6 @@
         types.add("javax.xml.ws.WebServiceClient");
         types.add("javax.xml.ws.WebServiceProvider");
         types.add("javax.xml.ws.WebServiceRef");
-
-        types.add("javax.xml.ws.security.MessageSecurity");
         supportedAnnotations = Collections.unmodifiableCollection(types);
     }
 
--- a/src/share/classes/com/sun/tools/internal/jxc/ConfigReader.java	Sat Jul 25 20:55:11 2009 -0700
+++ b/src/share/classes/com/sun/tools/internal/jxc/ConfigReader.java	Mon Sep 07 10:56:42 2009 -0700
@@ -22,6 +22,7 @@
  * CA 95054 USA or visit www.sun.com if you need additional information or
  * have any questions.
  */
+
 package com.sun.tools.internal.jxc;
 
 import java.io.File;
--- a/src/share/classes/com/sun/tools/internal/jxc/MessageBundle.properties	Sat Jul 25 20:55:11 2009 -0700
+++ b/src/share/classes/com/sun/tools/internal/jxc/MessageBundle.properties	Mon Sep 07 10:56:42 2009 -0700
@@ -30,8 +30,8 @@
     Non-existent directory: {0}
 
 VERSION = \
-	schemagen version "JAXB 2.1.3" \n\
-	JavaTM Architecture for XML Binding(JAXB) Reference Implementation, (build JAXB 2.1.3 in JDK)	
+        schemagen version "JAXB 2.1.10 in JDK 6" \n\
+        JavaTM Architecture for XML Binding(JAXB) Reference Implementation, (build JAXB 2.1.10 in JDK 6)
 
 USAGE = \
 Usage: schemagen [-options ...] <java files> \n\
@@ -42,4 +42,3 @@
 \ \ \ \ -episode <file>   :  generate episode file for separate compilation\n\
 \ \ \ \ -version          :  display version information\n\
 \ \ \ \ -help             :  display this usage message
- 
--- a/src/share/classes/com/sun/tools/internal/jxc/Messages.java	Sat Jul 25 20:55:11 2009 -0700
+++ b/src/share/classes/com/sun/tools/internal/jxc/Messages.java	Mon Sep 07 10:56:42 2009 -0700
@@ -22,6 +22,7 @@
  * CA 95054 USA or visit www.sun.com if you need additional information or
  * have any questions.
  */
+
 package com.sun.tools.internal.jxc;
 
 import java.text.MessageFormat;
--- a/src/share/classes/com/sun/tools/internal/jxc/SchemaGenerator.java	Sat Jul 25 20:55:11 2009 -0700
+++ b/src/share/classes/com/sun/tools/internal/jxc/SchemaGenerator.java	Mon Sep 07 10:56:42 2009 -0700
@@ -22,6 +22,7 @@
  * CA 95054 USA or visit www.sun.com if you need additional information or
  * have any questions.
  */
+
 package com.sun.tools.internal.jxc;
 
 import java.io.File;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/share/classes/com/sun/tools/internal/jxc/SchemaGeneratorFacade.java	Mon Sep 07 10:56:42 2009 -0700
@@ -0,0 +1,56 @@
+/*
+ * Copyright 2005-2006 Sun Microsystems, Inc.  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.  Sun designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Sun 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+package com.sun.tools.internal.jxc;
+
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+
+/**
+ * CLI entry point to schemagen that checks for JDK 5.0
+ * @author Kohsuke Kawaguchi
+ */
+public class SchemaGeneratorFacade {
+
+    public static void main(String[] args) throws Throwable {
+        try {
+            ClassLoader cl = SchemaGeneratorFacade.class.getClassLoader();
+            if(cl==null)    cl = ClassLoader.getSystemClassLoader();
+
+            Class driver = cl.loadClass("com.sun.tools.internal.jxc.SchemaGenerator");
+            Method mainMethod = driver.getDeclaredMethod("main", new Class[]{String[].class});
+            try {
+                mainMethod.invoke(null,new Object[]{args});
+            } catch (IllegalAccessException e) {
+                throw e;
+            } catch (InvocationTargetException e) {
+                if(e.getTargetException()!=null)
+                    throw e.getTargetException();
+            }
+        } catch (UnsupportedClassVersionError e) {
+            System.err.println("schemagen requires JDK 5.0 or later. Please download it from http://java.sun.com/j2se/1.5/");
+        }
+    }
+}
--- a/src/share/classes/com/sun/tools/internal/jxc/apt/AnnotationParser.java	Sat Jul 25 20:55:11 2009 -0700
+++ b/src/share/classes/com/sun/tools/internal/jxc/apt/AnnotationParser.java	Mon Sep 07 10:56:42 2009 -0700
@@ -22,6 +22,7 @@
  * CA 95054 USA or visit www.sun.com if you need additional information or
  * have any questions.
  */
+
 package com.sun.tools.internal.jxc.apt;
 
 import java.io.File;
--- a/src/share/classes/com/sun/tools/internal/jxc/apt/AnnotationProcessorFactoryImpl.java	Sat Jul 25 20:55:11 2009 -0700
+++ b/src/share/classes/com/sun/tools/internal/jxc/apt/AnnotationProcessorFactoryImpl.java	Mon Sep 07 10:56:42 2009 -0700
@@ -22,6 +22,7 @@
  * CA 95054 USA or visit www.sun.com if you need additional information or
  * have any questions.
  */
+
 package com.sun.tools.internal.jxc.apt;
 
 import java.util.Arrays;
--- a/src/share/classes/com/sun/tools/internal/jxc/apt/Const.java	Sat Jul 25 20:55:11 2009 -0700
+++ b/src/share/classes/com/sun/tools/internal/jxc/apt/Const.java	Mon Sep 07 10:56:42 2009 -0700
@@ -22,6 +22,7 @@
  * CA 95054 USA or visit www.sun.com if you need additional information or
  * have any questions.
  */
+
 package com.sun.tools.internal.jxc.apt;
 
 import java.io.File;
--- a/src/share/classes/com/sun/tools/internal/jxc/apt/ErrorReceiverImpl.java	Sat Jul 25 20:55:11 2009 -0700
+++ b/src/share/classes/com/sun/tools/internal/jxc/apt/ErrorReceiverImpl.java	Mon Sep 07 10:56:42 2009 -0700
@@ -22,6 +22,7 @@
  * CA 95054 USA or visit www.sun.com if you need additional information or
  * have any questions.
  */
+
 package com.sun.tools.internal.jxc.apt;
 
 import com.sun.mirror.apt.AnnotationProcessorEnvironment;
--- a/src/share/classes/com/sun/tools/internal/jxc/apt/InlineAnnotationReaderImpl.java	Sat Jul 25 20:55:11 2009 -0700
+++ b/src/share/classes/com/sun/tools/internal/jxc/apt/InlineAnnotationReaderImpl.java	Mon Sep 07 10:56:42 2009 -0700
@@ -22,6 +22,7 @@
  * CA 95054 USA or visit www.sun.com if you need additional information or
  * have any questions.
  */
+
 package com.sun.tools.internal.jxc.apt;
 
 import java.lang.annotation.Annotation;
--- a/src/share/classes/com/sun/tools/internal/jxc/apt/MessageBundle.properties	Sat Jul 25 20:55:11 2009 -0700
+++ b/src/share/classes/com/sun/tools/internal/jxc/apt/MessageBundle.properties	Mon Sep 07 10:56:42 2009 -0700
@@ -31,4 +31,3 @@
 
 OPERAND_MISSING = \
     Option "{0}" is missing an operand.
- 
--- a/src/share/classes/com/sun/tools/internal/jxc/apt/Messages.java	Sat Jul 25 20:55:11 2009 -0700
+++ b/src/share/classes/com/sun/tools/internal/jxc/apt/Messages.java	Mon Sep 07 10:56:42 2009 -0700
@@ -22,6 +22,7 @@
  * CA 95054 USA or visit www.sun.com if you need additional information or
  * have any questions.
  */
+
 package com.sun.tools.internal.jxc.apt;
 
 import java.text.MessageFormat;
--- a/src/share/classes/com/sun/tools/internal/jxc/apt/Options.java	Sat Jul 25 20:55:11 2009 -0700
+++ b/src/share/classes/com/sun/tools/internal/jxc/apt/Options.java	Mon Sep 07 10:56:42 2009 -0700
@@ -22,6 +22,7 @@
  * CA 95054 USA or visit www.sun.com if you need additional information or
  * have any questions.
  */
+
 package com.sun.tools.internal.jxc.apt;
 
 import java.io.File;
--- a/src/share/classes/com/sun/tools/internal/jxc/apt/SchemaGenerator.java	Sat Jul 25 20:55:11 2009 -0700
+++ b/src/share/classes/com/sun/tools/internal/jxc/apt/SchemaGenerator.java	Mon Sep 07 10:56:42 2009 -0700
@@ -22,6 +22,7 @@
  * CA 95054 USA or visit www.sun.com if you need additional information or
  * have any questions.
  */
+
 package com.sun.tools.internal.jxc.apt;
 
 import java.io.File;
--- a/src/share/classes/com/sun/tools/internal/jxc/gen/config/Classes.java	Sat Jul 25 20:55:11 2009 -0700
+++ b/src/share/classes/com/sun/tools/internal/jxc/gen/config/Classes.java	Mon Sep 07 10:56:42 2009 -0700
@@ -75,6 +75,11 @@
         $localName = $__local;
         $qname = $__qname;
         switch($_ngcc_current_state) {
+        case 0:
+            {
+                revertToParentFromEnterElement(this, super._cookie, $__uri, $__local, $__qname, $attrs);
+            }
+            break;
         case 12:
             {
                 if(($__uri == "" && $__local == "classes")) {
@@ -92,18 +97,6 @@
                 $runtime.sendEnterElement(super._cookie, $__uri, $__local, $__qname, $attrs);
             }
             break;
-        case 2:
-            {
-                if(($__uri == "" && $__local == "excludes")) {
-                    $runtime.onEnterElementConsumed($__uri, $__local, $__qname, $attrs);
-                    $_ngcc_current_state = 6;
-                }
-                else {
-                    $_ngcc_current_state = 1;
-                    $runtime.sendEnterElement(super._cookie, $__uri, $__local, $__qname, $attrs);
-                }
-            }
-            break;
         case 11:
             {
                 if(($__uri == "" && $__local == "includes")) {
@@ -115,9 +108,16 @@
                 }
             }
             break;
-        case 0:
+        case 2:
             {
-                revertToParentFromEnterElement(this, super._cookie, $__uri, $__local, $__qname, $attrs);
+                if(($__uri == "" && $__local == "excludes")) {
+                    $runtime.onEnterElementConsumed($__uri, $__local, $__qname, $attrs);
+                    $_ngcc_current_state = 6;
+                }
+                else {
+                    $_ngcc_current_state = 1;
+                    $runtime.sendEnterElement(super._cookie, $__uri, $__local, $__qname, $attrs);
+                }
             }
             break;
         default:
@@ -133,6 +133,17 @@
         $localName = $__local;
         $qname = $__qname;
         switch($_ngcc_current_state) {
+        case 0:
+            {
+                revertToParentFromLeaveElement(this, super._cookie, $__uri, $__local, $__qname);
+            }
+            break;
+        case 4:
+            {
+                $_ngcc_current_state = 3;
+                $runtime.sendLeaveElement(super._cookie, $__uri, $__local, $__qname);
+            }
+            break;
         case 3:
             {
                 if(($__uri == "" && $__local == "excludes")) {
@@ -144,29 +155,12 @@
                 }
             }
             break;
-        case 4:
-            {
-                $_ngcc_current_state = 3;
-                $runtime.sendLeaveElement(super._cookie, $__uri, $__local, $__qname);
-            }
-            break;
         case 2:
             {
                 $_ngcc_current_state = 1;
                 $runtime.sendLeaveElement(super._cookie, $__uri, $__local, $__qname);
             }
             break;
-        case 1:
-            {
-                if(($__uri == "" && $__local == "classes")) {
-                    $runtime.onLeaveElementConsumed($__uri, $__local, $__qname);
-                    $_ngcc_current_state = 0;
-                }
-                else {
-                    unexpectedLeaveElement($__qname);
-                }
-            }
-            break;
         case 8:
             {
                 if(($__uri == "" && $__local == "includes")) {
@@ -178,9 +172,15 @@
                 }
             }
             break;
-        case 0:
+        case 1:
             {
-                revertToParentFromLeaveElement(this, super._cookie, $__uri, $__local, $__qname);
+                if(($__uri == "" && $__local == "classes")) {
+                    $runtime.onLeaveElementConsumed($__uri, $__local, $__qname);
+                    $_ngcc_current_state = 0;
+                }
+                else {
+                    unexpectedLeaveElement($__qname);
+                }
             }
             break;
         default:
@@ -196,6 +196,11 @@
         $localName = $__local;
         $qname = $__qname;
         switch($_ngcc_current_state) {
+        case 0:
+            {
+                revertToParentFromEnterAttribute(this, super._cookie, $__uri, $__local, $__qname);
+            }
+            break;
         case 4:
             {
                 $_ngcc_current_state = 3;
@@ -208,11 +213,6 @@
                 $runtime.sendEnterAttribute(super._cookie, $__uri, $__local, $__qname);
             }
             break;
-        case 0:
-            {
-                revertToParentFromEnterAttribute(this, super._cookie, $__uri, $__local, $__qname);
-            }
-            break;
         default:
             {
                 unexpectedEnterAttribute($__qname);
@@ -226,6 +226,11 @@
         $localName = $__local;
         $qname = $__qname;
         switch($_ngcc_current_state) {
+        case 0:
+            {
+                revertToParentFromLeaveAttribute(this, super._cookie, $__uri, $__local, $__qname);
+            }
+            break;
         case 4:
             {
                 $_ngcc_current_state = 3;
@@ -238,11 +243,6 @@
                 $runtime.sendLeaveAttribute(super._cookie, $__uri, $__local, $__qname);
             }
             break;
-        case 0:
-            {
-                revertToParentFromLeaveAttribute(this, super._cookie, $__uri, $__local, $__qname);
-            }
-            break;
         default:
             {
                 unexpectedLeaveAttribute($__qname);
@@ -253,6 +253,11 @@
 
     public void text(String $value) throws SAXException {
         switch($_ngcc_current_state) {
+        case 0:
+            {
+                revertToParentFromText(this, super._cookie, $value);
+            }
+            break;
         case 9:
             {
                 include_content = $value;
@@ -260,14 +265,14 @@
                 action2();
             }
             break;
-        case 3:
+        case 4:
             {
                 exclude_content = $value;
                 $_ngcc_current_state = 3;
                 action0();
             }
             break;
-        case 4:
+        case 3:
             {
                 exclude_content = $value;
                 $_ngcc_current_state = 3;
@@ -301,11 +306,6 @@
                 action1();
             }
             break;
-        case 0:
-            {
-                revertToParentFromText(this, super._cookie, $value);
-            }
-            break;
         }
     }
 
--- a/src/share/classes/com/sun/tools/internal/jxc/gen/config/Config.java	Sat Jul 25 20:55:11 2009 -0700
+++ b/src/share/classes/com/sun/tools/internal/jxc/gen/config/Config.java	Mon Sep 07 10:56:42 2009 -0700
@@ -70,15 +70,10 @@
         $localName = $__local;
         $qname = $__qname;
         switch($_ngcc_current_state) {
-        case 0:
+        case 4:
             {
-                revertToParentFromEnterElement(this, super._cookie, $__uri, $__local, $__qname, $attrs);
-            }
-            break;
-        case 1:
-            {
-                if(($__uri == "" && $__local == "schema")) {
-                    NGCCHandler h = new Schema(this, super._source, $runtime, 3, baseDir);
+                if(($__uri == "" && $__local == "classes")) {
+                    NGCCHandler h = new Classes(this, super._source, $runtime, 34);
                     spawnChildFromEnterElement(h, $__uri, $__local, $__qname, $attrs);
                 }
                 else {
@@ -97,10 +92,26 @@
                 }
             }
             break;
+        case 1:
+            {
+                if(($__uri == "" && $__local == "schema")) {
+                    NGCCHandler h = new Schema(this, super._source, $runtime, 31, baseDir);
+                    spawnChildFromEnterElement(h, $__uri, $__local, $__qname, $attrs);
+                }
+                else {
+                    unexpectedEnterElement($__qname);
+                }
+            }
+            break;
+        case 0:
+            {
+                revertToParentFromEnterElement(this, super._cookie, $__uri, $__local, $__qname, $attrs);
+            }
+            break;
         case 2:
             {
                 if(($__uri == "" && $__local == "schema")) {
-                    NGCCHandler h = new Schema(this, super._source, $runtime, 4, baseDir);
+                    NGCCHandler h = new Schema(this, super._source, $runtime, 32, baseDir);
                     spawnChildFromEnterElement(h, $__uri, $__local, $__qname, $attrs);
                 }
                 else {
@@ -120,17 +131,6 @@
                 }
             }
             break;
-        case 4:
-            {
-                if(($__uri == "" && $__local == "classes")) {
-                    NGCCHandler h = new Classes(this, super._source, $runtime, 6);
-                    spawnChildFromEnterElement(h, $__uri, $__local, $__qname, $attrs);
-                }
-                else {
-                    unexpectedEnterElement($__qname);
-                }
-            }
-            break;
         default:
             {
                 unexpectedEnterElement($__qname);
@@ -145,11 +145,6 @@
         $localName = $__local;
         $qname = $__qname;
         switch($_ngcc_current_state) {
-        case 0:
-            {
-                revertToParentFromLeaveElement(this, super._cookie, $__uri, $__local, $__qname);
-            }
-            break;
         case 1:
             {
                 if(($__uri == "" && $__local == "config")) {
@@ -161,6 +156,11 @@
                 }
             }
             break;
+        case 0:
+            {
+                revertToParentFromLeaveElement(this, super._cookie, $__uri, $__local, $__qname);
+            }
+            break;
         case 2:
             {
                 $_ngcc_current_state = 1;
@@ -257,13 +257,6 @@
     public void text(String $value) throws SAXException {
         int $ai;
         switch($_ngcc_current_state) {
-        case 6:
-            {
-                bd = $value;
-                $_ngcc_current_state = 5;
-                action1();
-            }
-            break;
         case 0:
             {
                 revertToParentFromText(this, super._cookie, $value);
@@ -283,31 +276,38 @@
                 }
             }
             break;
+        case 6:
+            {
+                bd = $value;
+                $_ngcc_current_state = 5;
+                action1();
+            }
+            break;
         }
     }
 
     public void onChildCompleted(Object $__result__, int $__cookie__, boolean $__needAttCheck__)throws SAXException {
         switch($__cookie__) {
-        case 3:
+        case 34:
+            {
+                classes = ((Classes)$__result__);
+                $_ngcc_current_state = 2;
+            }
+            break;
+        case 31:
             {
                 _schema = ((Schema)$__result__);
                 action0();
                 $_ngcc_current_state = 1;
             }
             break;
-        case 4:
+        case 32:
             {
                 _schema = ((Schema)$__result__);
                 action0();
                 $_ngcc_current_state = 1;
             }
             break;
-        case 6:
-            {
-                classes = ((Classes)$__result__);
-                $_ngcc_current_state = 2;
-            }
-            break;
         }
     }
 
--- a/src/share/classes/com/sun/tools/internal/jxc/gen/config/Schema.java	Sat Jul 25 20:55:11 2009 -0700
+++ b/src/share/classes/com/sun/tools/internal/jxc/gen/config/Schema.java	Mon Sep 07 10:56:42 2009 -0700
@@ -65,6 +65,23 @@
         $localName = $__local;
         $qname = $__qname;
         switch($_ngcc_current_state) {
+        case 0:
+            {
+                revertToParentFromEnterElement(this, super._cookie, $__uri, $__local, $__qname, $attrs);
+            }
+            break;
+        case 2:
+            {
+                if(($ai = $runtime.getAttributeIndex("","location"))>=0) {
+                    $runtime.consumeAttribute($ai);
+                    $runtime.sendEnterElement(super._cookie, $__uri, $__local, $__qname, $attrs);
+                }
+                else {
+                    $_ngcc_current_state = 1;
+                    $runtime.sendEnterElement(super._cookie, $__uri, $__local, $__qname, $attrs);
+                }
+            }
+            break;
         case 6:
             {
                 if(($ai = $runtime.getAttributeIndex("","namespace"))>=0) {
@@ -88,23 +105,6 @@
                 }
             }
             break;
-        case 0:
-            {
-                revertToParentFromEnterElement(this, super._cookie, $__uri, $__local, $__qname, $attrs);
-            }
-            break;
-        case 2:
-            {
-                if(($ai = $runtime.getAttributeIndex("","location"))>=0) {
-                    $runtime.consumeAttribute($ai);
-                    $runtime.sendEnterElement(super._cookie, $__uri, $__local, $__qname, $attrs);
-                }
-                else {
-                    $_ngcc_current_state = 1;
-                    $runtime.sendEnterElement(super._cookie, $__uri, $__local, $__qname, $attrs);
-                }
-            }
-            break;
         default:
             {
                 unexpectedEnterElement($__qname);
@@ -119,23 +119,23 @@
         $localName = $__local;
         $qname = $__qname;
         switch($_ngcc_current_state) {
-        case 6:
+        case 0:
             {
-                if(($ai = $runtime.getAttributeIndex("","namespace"))>=0) {
+                revertToParentFromLeaveElement(this, super._cookie, $__uri, $__local, $__qname);
+            }
+            break;
+        case 2:
+            {
+                if(($ai = $runtime.getAttributeIndex("","location"))>=0) {
                     $runtime.consumeAttribute($ai);
                     $runtime.sendLeaveElement(super._cookie, $__uri, $__local, $__qname);
                 }
                 else {
-                    $_ngcc_current_state = 2;
+                    $_ngcc_current_state = 1;
                     $runtime.sendLeaveElement(super._cookie, $__uri, $__local, $__qname);
                 }
             }
             break;
-        case 0:
-            {
-                revertToParentFromLeaveElement(this, super._cookie, $__uri, $__local, $__qname);
-            }
-            break;
         case 1:
             {
                 if(($__uri == "" && $__local == "schema")) {
@@ -147,14 +147,14 @@
                 }
             }
             break;
-        case 2:
+        case 6:
             {
-                if(($ai = $runtime.getAttributeIndex("","location"))>=0) {
+                if(($ai = $runtime.getAttributeIndex("","namespace"))>=0) {
                     $runtime.consumeAttribute($ai);
                     $runtime.sendLeaveElement(super._cookie, $__uri, $__local, $__qname);
                 }
                 else {
-                    $_ngcc_current_state = 1;
+                    $_ngcc_current_state = 2;
                     $runtime.sendLeaveElement(super._cookie, $__uri, $__local, $__qname);
                 }
             }
@@ -172,17 +172,6 @@
         $localName = $__local;
         $qname = $__qname;
         switch($_ngcc_current_state) {
-        case 6:
-            {
-                if(($__uri == "" && $__local == "namespace")) {
-                    $_ngcc_current_state = 8;
-                }
-                else {
-                    $_ngcc_current_state = 2;
-                    $runtime.sendEnterAttribute(super._cookie, $__uri, $__local, $__qname);
-                }
-            }
-            break;
         case 0:
             {
                 revertToParentFromEnterAttribute(this, super._cookie, $__uri, $__local, $__qname);
@@ -199,6 +188,17 @@
                 }
             }
             break;
+        case 6:
+            {
+                if(($__uri == "" && $__local == "namespace")) {
+                    $_ngcc_current_state = 8;
+                }
+                else {
+                    $_ngcc_current_state = 2;
+                    $runtime.sendEnterAttribute(super._cookie, $__uri, $__local, $__qname);
+                }
+            }
+            break;
         default:
             {
                 unexpectedEnterAttribute($__qname);
@@ -212,17 +212,17 @@
         $localName = $__local;
         $qname = $__qname;
         switch($_ngcc_current_state) {
-        case 6:
-            {
-                $_ngcc_current_state = 2;
-                $runtime.sendLeaveAttribute(super._cookie, $__uri, $__local, $__qname);
-            }
-            break;
         case 0:
             {
                 revertToParentFromLeaveAttribute(this, super._cookie, $__uri, $__local, $__qname);
             }
             break;
+        case 2:
+            {
+                $_ngcc_current_state = 1;
+                $runtime.sendLeaveAttribute(super._cookie, $__uri, $__local, $__qname);
+            }
+            break;
         case 7:
             {
                 if(($__uri == "" && $__local == "namespace")) {
@@ -233,6 +233,12 @@
                 }
             }
             break;
+        case 6:
+            {
+                $_ngcc_current_state = 2;
+                $runtime.sendLeaveAttribute(super._cookie, $__uri, $__local, $__qname);
+            }
+            break;
         case 3:
             {
                 if(($__uri == "" && $__local == "location")) {
@@ -243,12 +249,6 @@
                 }
             }
             break;
-        case 2:
-            {
-                $_ngcc_current_state = 1;
-                $runtime.sendLeaveAttribute(super._cookie, $__uri, $__local, $__qname);
-            }
-            break;
         default:
             {
                 unexpectedLeaveAttribute($__qname);
@@ -260,24 +260,6 @@
     public void text(String $value) throws SAXException {
         int $ai;
         switch($_ngcc_current_state) {
-        case 8:
-            {
-                namespace = $value;
-                $_ngcc_current_state = 7;
-            }
-            break;
-        case 6:
-            {
-                if(($ai = $runtime.getAttributeIndex("","namespace"))>=0) {
-                    $runtime.consumeAttribute($ai);
-                    $runtime.sendText(super._cookie, $value);
-                }
-                else {
-                    $_ngcc_current_state = 2;
-                    $runtime.sendText(super._cookie, $value);
-                }
-            }
-            break;
         case 0:
             {
                 revertToParentFromText(this, super._cookie, $value);
@@ -295,6 +277,12 @@
                 }
             }
             break;
+        case 8:
+            {
+                namespace = $value;
+                $_ngcc_current_state = 7;
+            }
+            break;
         case 4:
             {
                 loc = $value;
@@ -302,6 +290,18 @@
                 action0();
             }
             break;
+        case 6:
+            {
+                if(($ai = $runtime.getAttributeIndex("","namespace"))>=0) {
+                    $runtime.consumeAttribute($ai);
+                    $runtime.sendText(super._cookie, $value);
+                }
+                else {
+                    $_ngcc_current_state = 2;
+                    $runtime.sendText(super._cookie, $value);
+                }
+            }
+            break;
         }
     }
 
--- a/src/share/classes/com/sun/tools/internal/jxc/gen/config/config.xsd	Sat Jul 25 20:55:11 2009 -0700
+++ b/src/share/classes/com/sun/tools/internal/jxc/gen/config/config.xsd	Mon Sep 07 10:56:42 2009 -0700
@@ -23,6 +23,8 @@
  CA 95054 USA or visit www.sun.com if you need additional information or
  have any questions.
 -->
+
+
 <!-- THIS IS A GENERATED FILE. DO NOT MODIFY. -->
 <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
   <xs:element name="config">
--- a/src/share/classes/com/sun/tools/internal/jxc/model/nav/APTNavigator.java	Sat Jul 25 20:55:11 2009 -0700
+++ b/src/share/classes/com/sun/tools/internal/jxc/model/nav/APTNavigator.java	Mon Sep 07 10:56:42 2009 -0700
@@ -22,6 +22,7 @@
  * CA 95054 USA or visit www.sun.com if you need additional information or
  * have any questions.
  */
+
 package com.sun.tools.internal.jxc.model.nav;
 
 import java.util.ArrayList;
@@ -306,7 +307,7 @@
     }
 
     public boolean isInnerClass(TypeDeclaration clazz) {
-        return clazz.getDeclaringType()!=null;
+        return clazz.getDeclaringType()!=null && !clazz.getModifiers().contains(Modifier.STATIC);
     }
 
     public boolean isArray(TypeMirror t) {
--- a/src/share/classes/com/sun/tools/internal/ws/Invoker.java	Sat Jul 25 20:55:11 2009 -0700
+++ b/src/share/classes/com/sun/tools/internal/ws/Invoker.java	Mon Sep 07 10:56:42 2009 -0700
@@ -55,10 +55,12 @@
     static int invoke(String mainClass, String[] args) throws Throwable {
         // use the platform default proxy if available.
         // see sun.net.spi.DefaultProxySelector for details.
-        try {
-            System.setProperty("java.net.useSystemProxies","true");
-        } catch (SecurityException e) {
-            // failing to set this property isn't fatal
+        if(!noSystemProxies) {
+            try {
+                System.setProperty("java.net.useSystemProxies","true");
+            } catch (SecurityException e) {
+                // failing to set this property isn't fatal
+            }
         }
 
         ClassLoader oldcc = Thread.currentThread().getContextClassLoader();
@@ -220,4 +222,18 @@
         "com.sun.xml.internal.bind.",
         "com.sun.xml.internal.ws."
     };
+
+    /**
+     * Escape hatch to work around IBM JDK problem.
+     * See http://www-128.ibm.com/developerworks/forums/dw_thread.jsp?nav=false&forum=367&thread=164718&cat=10
+     */
+    public static boolean noSystemProxies = false;
+
+    static {
+        try {
+            noSystemProxies = Boolean.getBoolean(Invoker.class.getName()+".noSystemProxies");
+        } catch(SecurityException e) {
+            // ignore
+        }
+    }
 }
--- a/src/share/classes/com/sun/tools/internal/ws/api/TJavaGeneratorExtension.java	Sat Jul 25 20:55:11 2009 -0700
+++ b/src/share/classes/com/sun/tools/internal/ws/api/TJavaGeneratorExtension.java	Mon Sep 07 10:56:42 2009 -0700
@@ -34,6 +34,7 @@
  *
  * @see JavaGeneratorExtensionFacade
  * @author Vivek Pandey
+ * @deprecated This class is deprecated, will be removed in JAX-WS 2.2 RI.
  */
 public abstract class TJavaGeneratorExtension {
     /**
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/share/classes/com/sun/tools/internal/ws/api/WsgenExtension.java	Mon Sep 07 10:56:42 2009 -0700
@@ -0,0 +1,43 @@
+/*
+ * Copyright 2005-2006 Sun Microsystems, Inc.  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.  Sun designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Sun 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+package com.sun.tools.internal.ws.api;
+
+/**
+ * Allows to customize wsgen behaviour using this extension.
+ * The extension implementations are found using service
+ * discovery mechanism i.e. JAX-WS tooltime locates
+ * {@link WsgenExtension}s through the
+ * <tt>META-INF/services/com.sun.tools.internal.ws.api.WsgenExtension</tt>
+ * files.
+ *
+ * {@link WsgenProtocol} annotation can be specified on the
+ * extensions to extend -wsdl[:protocol] behaviour.
+ *
+ * @author Jitendra Kotamraju
+ * @since JAX-WS RI 2.1.6
+ * @see WsgenProtocol
+ */
+public abstract class WsgenExtension {
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/share/classes/com/sun/tools/internal/ws/api/WsgenProtocol.java	Mon Sep 07 10:56:42 2009 -0700
@@ -0,0 +1,52 @@
+/*
+ * Copyright 2005-2006 Sun Microsystems, Inc.  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.  Sun designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Sun 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+package com.sun.tools.internal.ws.api;
+
+import java.lang.annotation.*;
+
+/**
+ * Allows to extend protocol for wsgen's wsdl[:protocol] switch.
+ * This annotation must be specified on {@link WsgenExtension}
+ * implementations.
+ *
+ * @author Jitendra Kotamraju
+ * @since JAX-WS RI 2.1.6
+ */
+@Target(ElementType.TYPE)
+@Retention(RetentionPolicy.RUNTIME)
+@Documented
+public @interface WsgenProtocol {
+    /**
+     * Token for wsgen -wsdl[:protocol]
+     * @return
+     */
+    String token();
+
+    /**
+     * The corresponding lexical string used to create BindingID
+     * @return
+     */
+    String lexical();
+}
--- a/src/share/classes/com/sun/tools/internal/ws/api/wsdl/TWSDLExtensible.java	Sat Jul 25 20:55:11 2009 -0700
+++ b/src/share/classes/com/sun/tools/internal/ws/api/wsdl/TWSDLExtensible.java	Mon Sep 07 10:56:42 2009 -0700
@@ -32,6 +32,8 @@
  * A WSDL element or attribute that can be extended.
  *
  * @author Vivek Pandey
+ * @deprecated This interface is deprecated, will be removed in JAX-WS 2.2 RI.
+ *
  */
 public interface TWSDLExtensible {
     /**
--- a/src/share/classes/com/sun/tools/internal/ws/api/wsdl/TWSDLExtension.java	Sat Jul 25 20:55:11 2009 -0700
+++ b/src/share/classes/com/sun/tools/internal/ws/api/wsdl/TWSDLExtension.java	Mon Sep 07 10:56:42 2009 -0700
@@ -29,6 +29,7 @@
  * A WSDL extension
  *
  * @author Vivek Pandey
+ * @deprecated This interface is deprecated, will be removed in JAX-WS 2.2 RI.
  */
 public interface TWSDLExtension {
     /**
--- a/src/share/classes/com/sun/tools/internal/ws/api/wsdl/TWSDLExtensionHandler.java	Sat Jul 25 20:55:11 2009 -0700
+++ b/src/share/classes/com/sun/tools/internal/ws/api/wsdl/TWSDLExtensionHandler.java	Mon Sep 07 10:56:42 2009 -0700
@@ -33,6 +33,7 @@
  * with it for the WSDL extensibility elements thats not already defined in the WSDL 1.1 spec, such as SOAP or MIME.
  *
  * @author Vivek Pandey
+ * @deprecated This class is deprecated, will be removed in JAX-WS 2.2 RI.
  */
 public abstract class TWSDLExtensionHandler {
     /**
--- a/src/share/classes/com/sun/tools/internal/ws/api/wsdl/TWSDLOperation.java	Sat Jul 25 20:55:11 2009 -0700
+++ b/src/share/classes/com/sun/tools/internal/ws/api/wsdl/TWSDLOperation.java	Mon Sep 07 10:56:42 2009 -0700
@@ -33,6 +33,7 @@
  * Abstracts wsdl:portType/wsdl:operation
  *
  * @author Vivek Pandey
+ * @deprecated This interface is deprecated, will be removed in JAX-WS 2.2 RI.
  */
 public interface TWSDLOperation extends TWSDLExtensible{
     /**
--- a/src/share/classes/com/sun/tools/internal/ws/api/wsdl/TWSDLParserContext.java	Sat Jul 25 20:55:11 2009 -0700
+++ b/src/share/classes/com/sun/tools/internal/ws/api/wsdl/TWSDLParserContext.java	Mon Sep 07 10:56:42 2009 -0700
@@ -33,6 +33,7 @@
  * it can be latter used by other extensions to resolve the namespaces.
  *
  * @author Vivek Pandey
+ * @deprecated This interface is deprecated, will be removed in JAX-WS 2.2 RI.
  */
 public interface TWSDLParserContext {
 
--- a/src/share/classes/com/sun/tools/internal/ws/package-info.java	Sat Jul 25 20:55:11 2009 -0700
+++ b/src/share/classes/com/sun/tools/internal/ws/package-info.java	Mon Sep 07 10:56:42 2009 -0700
@@ -24,7 +24,7 @@
  */
 
 /**
- * <h1>JAX-WS 2.0.1 Tools</h1>
+ * <h1>JAX-WS 2.1 Tools</h1>
  * This document describes the tools included with JAX-WS 2.0.1.
  *
  * {@DotDiagram
@@ -42,22 +42,24 @@
 
        // libraries
       node [style=filled,color=lightblue];
-      CompileTool; "WSAP"; WebServiceAP; Processor; Modeler; ProcessorActions;
+      WsimportTool; WsgenTool;"WSAP"; WebServiceAP; WSDLModeler;WSDLParser;SeiGenerator;ServiceGenerator;ExceptionGenerator;"JAXB XJC APIs";CodeModel;
 
        // aps
 #       node [style=filled,color=lightpink];
 #       "JAX-WS"; tools; runtime; SPI; "Annotation Processor";
 
        "Apt ANT Task" -> APT;
-       "WsGen ANT Task" -> wsgen -> CompileTool;
-       "WsImport ANT Task" -> wsimport -> CompileTool;
+       "WsGen ANT Task" -> wsgen -> WsgenTool;
+       "WsImport ANT Task" -> wsimport -> WsimportTool;
 
-       CompileTool -> APT -> WSAP -> WebServiceAP;
-       CompileTool -> Processor -> Modeler;
-       Processor -> ProcessorActions;
-       CompileTool -> WebServiceAP;
-
-       Modeler -> WSDLModeler;
+       WsgenTool -> APT -> WSAP -> WebServiceAP;
+       WsimportTool -> WSDLModeler;
+       WSDLModeler->WSDLParser;
+       WSDLModeler->"JAXB XJC APIs"
+       WsimportTool->SeiGenerator->CodeModel;
+       WsimportTool->ServiceGenerator->CodeModel;
+       WsimportTool->ExceptionGenerator->CodeModel;
+       WebServiceAP->CodeModel
      }
  * }
  * <div align=right>
--- a/src/share/classes/com/sun/tools/internal/ws/processor/generator/GeneratorBase.java	Sat Jul 25 20:55:11 2009 -0700
+++ b/src/share/classes/com/sun/tools/internal/ws/processor/generator/GeneratorBase.java	Mon Sep 07 10:56:42 2009 -0700
@@ -156,12 +156,14 @@
         return comments;
     }
 
-    protected JDefinedClass getClass(String className, ClassType type) {
+    protected JDefinedClass getClass(String className, ClassType type) throws JClassAlreadyExistsException {
         JDefinedClass cls;
         try {
             cls = cm._class(className, type);
         } catch (JClassAlreadyExistsException e){
             cls = cm._getClass(className);
+            if(cls == null)
+                throw e;
         }
         return cls;
     }
--- a/src/share/classes/com/sun/tools/internal/ws/processor/generator/SeiGenerator.java	Sat Jul 25 20:55:11 2009 -0700
+++ b/src/share/classes/com/sun/tools/internal/ws/processor/generator/SeiGenerator.java	Mon Sep 07 10:56:42 2009 -0700
@@ -36,7 +36,11 @@
 import com.sun.tools.internal.ws.wscompile.ErrorReceiver;
 import com.sun.tools.internal.ws.wscompile.Options;
 import com.sun.tools.internal.ws.wscompile.WsimportOptions;
+import com.sun.tools.internal.ws.wscompile.AbortException;
 import com.sun.tools.internal.ws.wsdl.document.soap.SOAPStyle;
+import com.sun.tools.internal.ws.wsdl.document.PortType;
+import com.sun.tools.internal.ws.wsdl.document.Kinds;
+import com.sun.tools.internal.ws.resources.GeneratorMessages;
 
 import javax.jws.WebMethod;
 import javax.jws.WebParam;
@@ -48,6 +52,8 @@
 import java.util.ArrayList;
 import java.util.List;
 
+import org.xml.sax.Locator;
+
 public class SeiGenerator extends GeneratorBase{
     private String serviceNS;
     private TJavaGeneratorExtension extension;
@@ -83,10 +89,22 @@
         }
 
 
-        JDefinedClass cls = getClass(className, ClassType.INTERFACE);
-        if (cls == null)
+        JDefinedClass cls = null;
+        try {
+            cls = getClass(className, ClassType.INTERFACE);
+        } catch (JClassAlreadyExistsException e) {
+            QName portTypeName =
+                (QName) port.getProperty(
+                        ModelProperties.PROPERTY_WSDL_PORT_TYPE_NAME);
+            Locator loc = null;
+            if(portTypeName != null){
+                PortType pt = port.portTypes.get(portTypeName);
+                if(pt!=null)
+                    loc = pt.getLocator();
+            }
+            receiver.error(loc, GeneratorMessages.GENERATOR_SEI_CLASS_ALREADY_EXIST(intf.getName(), portTypeName));
             return;
-
+        }
         // If the class has methods it has already been defined
         // so skip it.
         if (!cls.methods().isEmpty())
@@ -441,15 +459,7 @@
         if (port.isProvider()) {
             return;                // Not generating for Provider based endpoint
         }
-
-
-        try {
-            write(port);
-        } catch (Exception e) {
-            throw new GeneratorException(
-                "generator.nestedGeneratorError",
-                e);
-        }
+        write(port);
     }
 
     private void register(TJavaGeneratorExtension h) {
--- a/src/share/classes/com/sun/tools/internal/ws/processor/generator/ServiceGenerator.java	Sat Jul 25 20:55:11 2009 -0700
+++ b/src/share/classes/com/sun/tools/internal/ws/processor/generator/ServiceGenerator.java	Mon Sep 07 10:56:42 2009 -0700
@@ -29,11 +29,13 @@
 import com.sun.tools.internal.ws.processor.model.Model;
 import com.sun.tools.internal.ws.processor.model.Port;
 import com.sun.tools.internal.ws.processor.model.Service;
+import com.sun.tools.internal.ws.processor.model.ModelProperties;
 import com.sun.tools.internal.ws.processor.model.java.JavaInterface;
 import com.sun.tools.internal.ws.wscompile.ErrorReceiver;
 import com.sun.tools.internal.ws.wscompile.Options;
 import com.sun.tools.internal.ws.wscompile.WsimportOptions;
 import com.sun.tools.internal.ws.resources.GeneratorMessages;
+import com.sun.tools.internal.ws.wsdl.document.PortType;
 import com.sun.xml.internal.bind.api.JAXBRIContext;
 import com.sun.xml.internal.ws.util.JAXWSUtils;
 
@@ -42,161 +44,174 @@
 import javax.xml.ws.WebServiceClient;
 import javax.xml.ws.WebServiceFeature;
 import java.io.IOException;
+import java.io.File;
 import java.net.MalformedURLException;
 import java.net.URL;
+import java.util.logging.Logger;
+
+import org.xml.sax.Locator;
 
 
 /**
- *
  * @author WS Development Team
  */
-public class ServiceGenerator extends GeneratorBase{
+public class ServiceGenerator extends GeneratorBase {
 
-    public static void generate(Model model, WsimportOptions options, ErrorReceiver receiver){
+    public static void generate(Model model, WsimportOptions options, ErrorReceiver receiver) {
         ServiceGenerator serviceGenerator = new ServiceGenerator(model, options, receiver);
         serviceGenerator.doGeneration();
     }
+
     private ServiceGenerator(Model model, WsimportOptions options, ErrorReceiver receiver) {
         super(model, options, receiver);
     }
 
-    private JInvocation createURL(URL url) {
-        return JExpr._new(cm.ref(URL.class)).arg(url.toExternalForm());
-    }
-
     @Override
     public void visit(Service service) {
+        JavaInterface intf = service.getJavaInterface();
+        String className = Names.customJavaTypeClassName(intf);
+        if (donotOverride && GeneratorUtil.classExists(options, className)) {
+            log("Class " + className + " exists. Not overriding.");
+            return;
+        }
+
+        JDefinedClass cls;
         try {
-            JavaInterface intf = service.getJavaInterface();
-            String className = Names.customJavaTypeClassName(intf);
-            if (donotOverride && GeneratorUtil.classExists(options, className)) {
-                log("Class " + className + " exists. Not overriding.");
+            cls = getClass(className, ClassType.CLASS);
+        } catch (JClassAlreadyExistsException e) {
+            receiver.error(service.getLocator(), GeneratorMessages.GENERATOR_SERVICE_CLASS_ALREADY_EXIST(className, service.getName()));
+            return;
+        }
+
+        cls._extends(javax.xml.ws.Service.class);
+        String serviceFieldName = JAXBRIContext.mangleNameToClassName(service.getName().getLocalPart()).toUpperCase();
+        String wsdlLocationName = serviceFieldName + "_WSDL_LOCATION";
+        JFieldVar urlField = cls.field(JMod.PRIVATE | JMod.STATIC | JMod.FINAL, URL.class, wsdlLocationName);
+
+
+        cls.field(JMod.PRIVATE | JMod.STATIC | JMod.FINAL, Logger.class, "logger", cm.ref(Logger.class).staticInvoke("getLogger").arg(JExpr.dotclass(cm.ref(className)).invoke("getName")));
+
+        JClass qNameCls = cm.ref(QName.class);
+        JInvocation inv;
+        inv = JExpr._new(qNameCls);
+        inv.arg("namespace");
+        inv.arg("localpart");
+
+
+        JBlock staticBlock = cls.init();
+        JVar urlVar = staticBlock.decl(cm.ref(URL.class), "url", JExpr._null());
+        JTryBlock tryBlock = staticBlock._try();
+        JVar baseUrl = tryBlock.body().decl(cm.ref(URL.class), "baseUrl");
+        tryBlock.body().assign(baseUrl, JExpr.dotclass(cm.ref(className)).invoke("getResource").arg("."));
+        tryBlock.body().assign(urlVar, JExpr._new(cm.ref(URL.class)).arg(baseUrl).arg(wsdlLocation));
+        JCatchBlock catchBlock = tryBlock._catch(cm.ref(MalformedURLException.class));
+        catchBlock.param("e");
+
+        catchBlock.body().directStatement("logger.warning(\"Failed to create URL for the wsdl Location: " + JExpr.quotify('\'', wsdlLocation) + ", retrying as a local file\");");
+        catchBlock.body().directStatement("logger.warning(e.getMessage());");
+
+        staticBlock.assign(urlField, urlVar);
+
+        //write class comment - JAXWS warning
+        JDocComment comment = cls.javadoc();
+
+        if (service.getJavaDoc() != null) {
+            comment.add(service.getJavaDoc());
+            comment.add("\n\n");
+        }
+
+        for (String doc : getJAXWSClassComment()) {
+            comment.add(doc);
+        }
+
+        JMethod constructor = cls.constructor(JMod.PUBLIC);
+        constructor.param(URL.class, "wsdlLocation");
+        constructor.param(QName.class, "serviceName");
+        constructor.body().directStatement("super(wsdlLocation, serviceName);");
+
+        constructor = cls.constructor(JMod.PUBLIC);
+        constructor.body().directStatement("super(" + wsdlLocationName + ", new QName(\"" + service.getName().getNamespaceURI() + "\", \"" + service.getName().getLocalPart() + "\"));");
+
+        //@WebService
+        JAnnotationUse webServiceClientAnn = cls.annotate(cm.ref(WebServiceClient.class));
+        writeWebServiceClientAnnotation(service, webServiceClientAnn);
+
+        //@HandlerChain
+        writeHandlerConfig(Names.customJavaTypeClassName(service.getJavaInterface()), cls, options);
+
+        for (Port port : service.getPorts()) {
+            if (port.isProvider()) {
+                continue;  // No getXYZPort() for porvider based endpoint
+            }
+
+            //Get the SEI class
+            JType retType;
+            try {
+                retType = getClass(port.getJavaInterface().getName(), ClassType.INTERFACE);
+            } catch (JClassAlreadyExistsException e) {
+                QName portTypeName =
+                        (QName) port.getProperty(
+                                ModelProperties.PROPERTY_WSDL_PORT_TYPE_NAME);
+                Locator loc = null;
+                if (portTypeName != null) {
+                    PortType pt = port.portTypes.get(portTypeName);
+                    if (pt != null)
+                        loc = pt.getLocator();
+                }
+                receiver.error(loc, GeneratorMessages.GENERATOR_SEI_CLASS_ALREADY_EXIST(port.getJavaInterface().getName(), portTypeName));
                 return;
             }
 
-            JDefinedClass cls = getClass(className, ClassType.CLASS);
+            //write getXyzPort()
+            writeDefaultGetPort(port, retType, cls);
 
-            cls._extends(javax.xml.ws.Service.class);
-            String serviceFieldName = JAXBRIContext.mangleNameToClassName(service.getName().getLocalPart()).toUpperCase();
-            String wsdlLocationName = serviceFieldName+"_WSDL_LOCATION";
-            JFieldVar urlField = cls.field(JMod.PRIVATE|JMod.STATIC|JMod.FINAL, URL.class, wsdlLocationName);
-            JClass qNameCls = cm.ref(QName.class);
-            JInvocation inv;
-            inv = JExpr._new(qNameCls);
-            inv.arg("namespace");
-            inv.arg("localpart");
-
-
-            JBlock staticBlock = cls.init();
-            URL url = new URL(JAXWSUtils.absolutize(JAXWSUtils.getFileOrURLName(wsdlLocation)));
-            JVar urlVar = staticBlock.decl(cm.ref(URL.class),"url", JExpr._null());
-            JTryBlock tryBlock = staticBlock._try();
-            tryBlock.body().assign(urlVar, createURL(url));
-            JCatchBlock catchBlock = tryBlock._catch(cm.ref(MalformedURLException.class));
-            catchBlock.param("e");
-            catchBlock.body().directStatement("e.printStackTrace();");
-            staticBlock.assign(urlField, urlVar);
-
-            //write class comment - JAXWS warning
-            JDocComment comment = cls.javadoc();
-
-            if(service.getJavaDoc() != null){
-                comment.add(service.getJavaDoc());
-                comment.add("\n\n");
-            }
-
-            for (String doc : getJAXWSClassComment()) {
-                comment.add(doc);
-            }
-
-            JMethod constructor = cls.constructor(JMod.PUBLIC);
-            constructor.param(URL.class, "wsdlLocation");
-            constructor.param(QName.class, "serviceName");
-            constructor.body().directStatement("super(wsdlLocation, serviceName);");
-
-            constructor = cls.constructor(JMod.PUBLIC);
-            constructor.body().directStatement("super("+wsdlLocationName+", new QName(\""+service.getName().getNamespaceURI()+"\", \""+service.getName().getLocalPart()+"\"));");
-
-            //@WebService
-            JAnnotationUse webServiceClientAnn = cls.annotate(cm.ref(WebServiceClient.class));
-            writeWebServiceClientAnnotation(service, webServiceClientAnn);
-
-            //@HandlerChain
-            writeHandlerConfig(Names.customJavaTypeClassName(service.getJavaInterface()), cls, options);
-
-            for (Port port: service.getPorts()) {
-                if (port.isProvider()) {
-                    continue;  // No getXYZPort() for porvider based endpoint
-                }
-
-                //write getXyzPort()
-                writeDefaultGetPort(port, cls);
-
-                //write getXyzPort(WebServicesFeature...)
-                if(options.target.isLaterThan(Options.Target.V2_1))
-                    writeGetPort(port, cls);
-            }
-        } catch (IOException e) {
-            receiver.error(e);
+            //write getXyzPort(WebServicesFeature...)
+            if (options.target.isLaterThan(Options.Target.V2_1))
+                writeGetPort(port, retType, cls);
         }
     }
 
-    private void writeGetPort(Port port, JDefinedClass cls) {
-        JType retType = getClass(port.getJavaInterface().getName(), ClassType.INTERFACE);
+    private void writeGetPort(Port port, JType retType, JDefinedClass cls) {
         JMethod m = cls.method(JMod.PUBLIC, retType, port.getPortGetter());
         JDocComment methodDoc = m.javadoc();
-        if(port.getJavaDoc() != null)
+        if (port.getJavaDoc() != null)
             methodDoc.add(port.getJavaDoc());
         JCommentPart ret = methodDoc.addReturn();
         JCommentPart paramDoc = methodDoc.addParam("features");
         paramDoc.append("A list of ");
-        paramDoc.append("{@link "+WebServiceFeature.class.getName()+"}");
+        paramDoc.append("{@link " + WebServiceFeature.class.getName() + "}");
         paramDoc.append("to configure on the proxy.  Supported features not in the <code>features</code> parameter will have their default values.");
-        ret.add("returns "+retType.name());
+        ret.add("returns " + retType.name());
         m.varParam(WebServiceFeature.class, "features");
         JBlock body = m.body();
-        StringBuffer statement = new StringBuffer("return (");
-        statement.append(retType.name());
-        statement.append(")super.getPort(new QName(\"").append(port.getName().getNamespaceURI()).append("\", \"").append(port.getName().getLocalPart()).append("\"), ");
+        StringBuffer statement = new StringBuffer("return ");
+        statement.append("super.getPort(new QName(\"").append(port.getName().getNamespaceURI()).append("\", \"").append(port.getName().getLocalPart()).append("\"), ");
         statement.append(retType.name());
         statement.append(".class, features);");
         body.directStatement(statement.toString());
         writeWebEndpoint(port, m);
     }
 
-    private void writeDefaultGetPort(Port port, JDefinedClass cls) {
-        JType retType = getClass(port.getJavaInterface().getName(), ClassType.INTERFACE);
+    private void writeDefaultGetPort(Port port, JType retType, JDefinedClass cls) {
         String portGetter = port.getPortGetter();
         JMethod m = cls.method(JMod.PUBLIC, retType, portGetter);
         JDocComment methodDoc = m.javadoc();
-        if(port.getJavaDoc() != null)
+        if (port.getJavaDoc() != null)
             methodDoc.add(port.getJavaDoc());
         JCommentPart ret = methodDoc.addReturn();
-        ret.add("returns "+retType.name());
+        ret.add("returns " + retType.name());
         JBlock body = m.body();
-        StringBuffer statement = new StringBuffer("return (");
-        statement.append(retType.name());
-        statement.append(")super.getPort(new QName(\"").append(port.getName().getNamespaceURI()).append("\", \"").append(port.getName().getLocalPart()).append("\"), ");
+        StringBuffer statement = new StringBuffer("return ");
+        statement.append("super.getPort(new QName(\"").append(port.getName().getNamespaceURI()).append("\", \"").append(port.getName().getLocalPart()).append("\"), ");
         statement.append(retType.name());
         statement.append(".class);");
         body.directStatement(statement.toString());
         writeWebEndpoint(port, m);
     }
 
-
-    protected JDefinedClass getClass(String className, ClassType type) {
-        JDefinedClass cls;
-        try {
-            cls = cm._class(className, type);
-        } catch (JClassAlreadyExistsException e){
-            cls = cm._getClass(className);
-        }
-        return cls;
-    }
-
     private void writeWebServiceClientAnnotation(Service service, JAnnotationUse wsa) {
         String serviceName = service.getName().getLocalPart();
-        String serviceNS= service.getName().getNamespaceURI();
+        String serviceNS = service.getName().getNamespaceURI();
         wsa.param("name", serviceName);
         wsa.param("targetNamespace", serviceNS);
         wsa.param("wsdlLocation", wsdlLocation);
--- a/src/share/classes/com/sun/tools/internal/ws/processor/generator/W3CAddressingJavaGeneratorExtension.java	Sat Jul 25 20:55:11 2009 -0700
+++ b/src/share/classes/com/sun/tools/internal/ws/processor/generator/W3CAddressingJavaGeneratorExtension.java	Mon Sep 07 10:56:42 2009 -0700
@@ -22,9 +22,6 @@
  * CA 95054 USA or visit www.sun.com if you need additional information or
  * have any questions.
  */
-/*
- * $Id: W3CAddressingJavaGeneratorExtension.java,v 1.1.2.4 2006/10/31 19:57:28 vivekp Exp $
- */
 
 package com.sun.tools.internal.ws.processor.generator;
 
--- a/src/share/classes/com/sun/tools/internal/ws/processor/model/Port.java	Sat Jul 25 20:55:11 2009 -0700
+++ b/src/share/classes/com/sun/tools/internal/ws/processor/model/Port.java	Mon Sep 07 10:56:42 2009 -0700
@@ -26,6 +26,7 @@
 package com.sun.tools.internal.ws.processor.model;
 
 import com.sun.tools.internal.ws.processor.model.java.JavaInterface;
+import com.sun.tools.internal.ws.wsdl.document.PortType;
 import com.sun.tools.internal.ws.wsdl.document.soap.SOAPStyle;
 import com.sun.tools.internal.ws.wsdl.framework.Entity;
 
@@ -174,4 +175,5 @@
     private String _address;
     private String _serviceImplName;
     private Map<String, Operation> operationsByName = new HashMap<String, Operation>();
+    public Map<QName, PortType> portTypes = new HashMap<QName, PortType>();
 }
--- a/src/share/classes/com/sun/tools/internal/ws/processor/model/java/JavaMethod.java	Sat Jul 25 20:55:11 2009 -0700
+++ b/src/share/classes/com/sun/tools/internal/ws/processor/model/java/JavaMethod.java	Mon Sep 07 10:56:42 2009 -0700
@@ -27,6 +27,7 @@
 
 import com.sun.tools.internal.ws.resources.ModelMessages;
 import com.sun.tools.internal.ws.wscompile.ErrorReceiver;
+import com.sun.tools.internal.ws.wscompile.WsimportOptions;
 import com.sun.tools.internal.ws.processor.model.Parameter;
 
 import java.util.ArrayList;
@@ -42,12 +43,14 @@
     private final String name;
     private final List<JavaParameter> parameters = new ArrayList<JavaParameter>();
     private final List<String> exceptions = new ArrayList<String>();
+    private final WsimportOptions options;
     private JavaType returnType;
 
-    public JavaMethod(String name, ErrorReceiver receiver) {
+    public JavaMethod(String name, WsimportOptions options, ErrorReceiver receiver) {
         this.name = name;
         this.returnType = null;
         this.errorReceiver = receiver;
+        this.options = options;
     }
 
     public String getName() {
@@ -83,10 +86,19 @@
     public void addParameter(JavaParameter param) {
         // verify that this member does not already exist
         if (hasParameter(param.getName())) {
-            errorReceiver.error(param.getParameter().getLocator(), ModelMessages.MODEL_PARAMETER_NOTUNIQUE(param.getName(), param.getParameter().getEntityName()));
-            Parameter duplicParam = getParameter(param.getName());
-            errorReceiver.error(duplicParam.getLocator(), ModelMessages.MODEL_PARAMETER_NOTUNIQUE(param.getName(), duplicParam.getEntityName()));
-            return;
+            if(options.isExtensionMode()){
+                param.setName(getUniqueName(param.getName()));
+            }else{
+                Parameter duplicParam = getParameter(param.getName());
+                if(param.getParameter().isEmbedded()){
+                    errorReceiver.error(param.getParameter().getLocator(), ModelMessages.MODEL_PARAMETER_NOTUNIQUE_WRAPPER(param.getName(), param.getParameter().getEntityName()));
+                    errorReceiver.error(duplicParam.getLocator(), ModelMessages.MODEL_PARAMETER_NOTUNIQUE_WRAPPER(param.getName(), duplicParam.getEntityName()));
+                }else{
+                    errorReceiver.error(param.getParameter().getLocator(), ModelMessages.MODEL_PARAMETER_NOTUNIQUE(param.getName(), param.getParameter().getEntityName()));
+                    errorReceiver.error(duplicParam.getLocator(), ModelMessages.MODEL_PARAMETER_NOTUNIQUE(param.getName(), duplicParam.getEntityName()));
+                }
+                return;
+            }
         }
         parameters.add(param);
     }
@@ -106,4 +118,12 @@
     public Iterator<String> getExceptions() {
         return exceptions.iterator();
     }
+
+    private String getUniqueName(String param){
+        int parmNum = 0;
+        while(hasParameter(param)){
+            param = param + Integer.toString(parmNum++);
+        }
+        return param;
+    }
 }
--- a/src/share/classes/com/sun/tools/internal/ws/processor/model/jaxb/JAXBType.java	Sat Jul 25 20:55:11 2009 -0700
+++ b/src/share/classes/com/sun/tools/internal/ws/processor/model/jaxb/JAXBType.java	Mon Sep 07 10:56:42 2009 -0700
@@ -71,11 +71,11 @@
     }
 
     public boolean isUnwrappable(){
-        return getJaxbMapping().getWrapperStyleDrilldown() != null;
+        return jaxbMapping != null && jaxbMapping.getWrapperStyleDrilldown() != null;
     }
 
     public boolean hasWrapperChildren(){
-        return (getWrapperChildren().size() > 0) ? true : false;
+        return wrapperChildren.size() > 0;
     }
 
     public boolean isLiteralType() {
--- a/src/share/classes/com/sun/tools/internal/ws/processor/modeler/annotation/WebServiceAP.java	Sat Jul 25 20:55:11 2009 -0700
+++ b/src/share/classes/com/sun/tools/internal/ws/processor/modeler/annotation/WebServiceAP.java	Mon Sep 07 10:56:42 2009 -0700
@@ -210,6 +210,7 @@
     public void onError(String message) {
         if (messager != null) {
             messager.printError(message);
+            throw new AbortException();
         } else {
             throw new ModelerException(message);
         }
--- a/src/share/classes/com/sun/tools/internal/ws/processor/modeler/annotation/WebServiceVisitor.java	Sat Jul 25 20:55:11 2009 -0700
+++ b/src/share/classes/com/sun/tools/internal/ws/processor/modeler/annotation/WebServiceVisitor.java	Mon Sep 07 10:56:42 2009 -0700
@@ -441,10 +441,21 @@
 
     protected boolean shouldProcessMethod(MethodDeclaration method, WebMethod webMethod) {
         builder.log("should process method: "+method.getSimpleName()+" hasWebMethods: "+ hasWebMethods+" ");
+        /*
+        Fix for https://jax-ws.dev.java.net/issues/show_bug.cgi?id=577
         if (hasWebMethods && webMethod == null) {
             builder.log("webMethod == null");
             return false;
         }
+        */
+        Collection<Modifier> modifiers = method.getModifiers();
+        boolean staticFinal = modifiers.contains(Modifier.STATIC) || modifiers.contains(Modifier.FINAL);
+        if (staticFinal) {
+            if (webMethod != null) {
+                builder.onError(method.getPosition(), WebserviceapMessages.localizableWEBSERVICEAP_WEBSERVICE_METHOD_IS_STATIC_OR_FINAL(method.getDeclaringType(), method));
+            }
+            return false;
+        }
         boolean retval = (endpointReferencesInterface ||
                 method.getDeclaringType().equals(typeDecl) ||
                 (method.getDeclaringType().getAnnotation(WebService.class) != null));
@@ -474,10 +485,6 @@
             builder.onError(classDecl.getPosition(), WebserviceapMessages.localizableWEBSERVICEAP_WEBSERVICE_CLASS_IS_ABSTRACT(classDecl.getQualifiedName()));
             return false;
         }
-        if (classDecl.getDeclaringType() != null && !modifiers.contains(Modifier.STATIC) && !isStateful) {
-            builder.onError(classDecl.getPosition(), WebserviceapMessages.localizableWEBSERVICEAP_WEBSERVICE_CLASS_IS_INNERCLASS_NOT_STATIC(classDecl.getQualifiedName()));
-            return false;
-        }
         boolean hasDefaultConstructor = false;
         for (ConstructorDeclaration constructor : classDecl.getConstructors()) {
             if (constructor.getModifiers().contains(Modifier.PUBLIC) &&
@@ -487,6 +494,11 @@
             }
         }
         if (!hasDefaultConstructor && !isStateful) {
+            if (classDecl.getDeclaringType() != null && !modifiers.contains(Modifier.STATIC)) {
+                builder.onError(classDecl.getPosition(), WebserviceapMessages.localizableWEBSERVICEAP_WEBSERVICE_CLASS_IS_INNERCLASS_NOT_STATIC(classDecl.getQualifiedName()));
+                return false;
+            }
+
             builder.onError(classDecl.getPosition(), WebserviceapMessages.localizableWEBSERVICEAP_WEBSERVICE_NO_DEFAULT_CONSTRUCTOR(classDecl.getQualifiedName()));
             return false;
         }
@@ -578,7 +590,7 @@
         }
         ClassType superClass = classDecl.getSuperclass();
 
-        if (!superClass.getDeclaration().getQualifiedName().equals(JAVA_LANG_OBJECT) && superClass != null && !methodsAreLegal(superClass.getDeclaration())) {
+        if (!superClass.getDeclaration().getQualifiedName().equals(JAVA_LANG_OBJECT) && !methodsAreLegal(superClass.getDeclaration())) {
             return false;
         }
         return true;
@@ -596,11 +608,13 @@
         if (!hasWebMethods && (webMethod !=null) && webMethod.exclude()) {
             return true;
         }
+        /*
+        This check is not needed as Impl class is already checked that it is not abstract.
         if (typeDecl instanceof ClassDeclaration && method.getModifiers().contains(Modifier.ABSTRACT)) {
             builder.onError(method.getPosition(), WebserviceapMessages.localizableWEBSERVICEAP_WEBSERVICE_METHOD_IS_ABSTRACT(typeDecl.getQualifiedName(), method.getSimpleName()));
             return false;
         }
-
+        */
         if (!isLegalType(method.getReturnType())) {
             builder.onError(method.getPosition(), WebserviceapMessages.localizableWEBSERVICEAP_METHOD_RETURN_TYPE_CANNOT_IMPLEMENT_REMOTE(typeDecl.getQualifiedName(),
                 method.getSimpleName(),
@@ -750,7 +764,12 @@
     protected boolean isLegalType(TypeMirror type) {
         if (!(type instanceof DeclaredType))
             return true;
-        return !builder.isRemote(((DeclaredType)type).getDeclaration());
+        TypeDeclaration typeDecl = ((DeclaredType)type).getDeclaration();
+        if(typeDecl == null) {
+            // can be null, if this type's declaration is unknown. This may be the result of a processing error, such as a missing class file.
+            builder.onError(WebserviceapMessages.WEBSERVICEAP_COULD_NOT_FIND_TYPEDECL(typeDecl.toString(), context.getRound()));
+        }
+        return !builder.isRemote(typeDecl);
     }
 
     protected ParameterDeclaration getOutParameter(MethodDeclaration method) {
--- a/src/share/classes/com/sun/tools/internal/ws/processor/modeler/annotation/WebServiceWrapperGenerator.java	Sat Jul 25 20:55:11 2009 -0700
+++ b/src/share/classes/com/sun/tools/internal/ws/processor/modeler/annotation/WebServiceWrapperGenerator.java	Mon Sep 07 10:56:42 2009 -0700
@@ -127,8 +127,10 @@
         boolean beanGenerated = false;
         for (ReferenceType thrownType : method.getThrownTypes()) {
             ClassDeclaration typeDecl = ((ClassType)thrownType).getDeclaration();
-            if (typeDecl == null)
+            if (typeDecl == null){
                 builder.onError(WebserviceapMessages.WEBSERVICEAP_COULD_NOT_FIND_TYPEDECL(thrownType.toString(), context.getRound()));
+                return false;
+            }
             boolean tmp = generateExceptionBean(typeDecl, beanPackage);
             beanGenerated = beanGenerated || tmp;
         }
@@ -195,7 +197,7 @@
                 if (resWrapper.targetNamespace().length() > 0)
                     resNamespace = resWrapper.targetNamespace();
             }
-            canOverwriteResponse = builder.canOverWriteClass(requestClassName);
+            canOverwriteResponse = builder.canOverWriteClass(responseClassName);
             if (!canOverwriteResponse) {
                 builder.log("Class " + responseClassName + " exists. Not overwriting.");
             }
@@ -593,7 +595,7 @@
             return;
 
         String accessorName =JAXBRIContext.mangleNameToPropertyName(paramName);
-        String getterPrefix = paramType.equals("boolean") || paramType.equals("java.lang.Boolean") ? "is" : "get";
+        String getterPrefix = paramType.toString().equals("boolean")? "is" : "get";
         JType propType = getType(paramType);
         JMethod m = cls.method(JMod.PUBLIC, propType, getterPrefix+ accessorName);
         JDocComment methodDoc = m.javadoc();
--- a/src/share/classes/com/sun/tools/internal/ws/processor/modeler/wsdl/ConsoleErrorReporter.java	Sat Jul 25 20:55:11 2009 -0700
+++ b/src/share/classes/com/sun/tools/internal/ws/processor/modeler/wsdl/ConsoleErrorReporter.java	Mon Sep 07 10:56:42 2009 -0700
@@ -57,6 +57,8 @@
         print(WscompileMessages.WSIMPORT_ERROR_MESSAGE(e.getMessage()), e);
     }
 
+
+
     public void fatalError(SAXParseException e) {
         if(debug)
             e.printStackTrace();
@@ -76,6 +78,11 @@
         print(WscompileMessages.WSIMPORT_INFO_MESSAGE(e.getMessage()), e);
     }
 
+    public void debug(SAXParseException e){
+        print(WscompileMessages.WSIMPORT_DEBUG_MESSAGE(e.getMessage()), e);
+    }
+
+
     private void print(String message, SAXParseException e) {
         output.println(message);
         output.println(getLocationString(e));
--- a/src/share/classes/com/sun/tools/internal/ws/processor/modeler/wsdl/PseudoSchemaBuilder.java	Sat Jul 25 20:55:11 2009 -0700
+++ b/src/share/classes/com/sun/tools/internal/ws/processor/modeler/wsdl/PseudoSchemaBuilder.java	Mon Sep 07 10:56:42 2009 -0700
@@ -28,6 +28,7 @@
 import static com.sun.tools.internal.ws.processor.modeler.wsdl.WSDLModelerBase.getExtensionOfType;
 import com.sun.tools.internal.ws.wscompile.ErrorReceiver;
 import com.sun.tools.internal.ws.wscompile.WsimportOptions;
+import com.sun.tools.internal.ws.wscompile.Options;
 import com.sun.tools.internal.ws.wsdl.document.*;
 import com.sun.tools.internal.ws.wsdl.document.jaxws.JAXWSBinding;
 import com.sun.tools.internal.ws.wsdl.document.schema.SchemaKinds;
@@ -101,7 +102,7 @@
             is.setSystemId(sysId+(i + 1));
         }
         //add w3c EPR binding
-        if(!(options.noAddressingBbinding && options.isExtensionMode())){
+        if(!(options.noAddressingBbinding) && options.target.isLaterThan(Options.Target.V2_1)){
             InputSource is = new InputSource(new ByteArrayInputStream(w3ceprSchemaBinding.getBytes()));
             is.setSystemId(sysId+(++i +1));
             b.schemas.add(is);
--- a/src/share/classes/com/sun/tools/internal/ws/processor/modeler/wsdl/WSDLModeler.java	Sat Jul 25 20:55:11 2009 -0700
+++ b/src/share/classes/com/sun/tools/internal/ws/processor/modeler/wsdl/WSDLModeler.java	Mon Sep 07 10:56:42 2009 -0700
@@ -74,7 +74,7 @@
 public class WSDLModeler extends WSDLModelerBase {
 
     //map of wsdl:operation QName to <soapenv:Body> child, as per BP it must be unique in a port
-    private final Map<QName, QName> uniqueBodyBlocks = new HashMap<QName, QName>();
+    private final Map<QName, Operation> uniqueBodyBlocks = new HashMap<QName, Operation>();
     private final QName VOID_BODYBLOCK = new QName("");
     private ClassNameCollector classNameCollector;
     private final String explicitDefaultPackage;
@@ -334,11 +334,12 @@
                         || (!soapBinding.getTransport().equals(
                         SOAPConstants.URI_SOAP_TRANSPORT_HTTP) && !soapBinding.getTransport().equals(
                         SOAP12Constants.URI_SOAP_TRANSPORT_HTTP)))) {
-                    warning(wsdlPort, ModelerMessages.WSDLMODELER_WARNING_IGNORING_SOAP_BINDING_NON_HTTP_TRANSPORT(wsdlPort.getName()));
                     if (!options.isExtensionMode()) {
                         // cannot deal with non-HTTP ports
+                        warning(wsdlPort, ModelerMessages.WSDLMODELER_WARNING_IGNORING_SOAP_BINDING_NON_HTTP_TRANSPORT(wsdlPort.getName()));
                         return false;
                     }
+
                 }
 
                 /**
@@ -679,7 +680,12 @@
 
         if (soapStyle == SOAPStyle.RPC) {
             if (soapRequestBody.isEncoded()) {
-                error(soapRequestBody, ModelerMessages.WSDLMODELER_20_RPCENC_NOT_SUPPORTED());
+                if(options.isExtensionMode()){
+                    warning(soapRequestBody, ModelerMessages.WSDLMODELER_20_RPCENC_NOT_SUPPORTED());
+                    processNonSOAPOperation();
+                }else{
+                    error(soapRequestBody, ModelerMessages.WSDLMODELER_20_RPCENC_NOT_SUPPORTED());
+                }
             }
             return processLiteralSOAPOperation(StyleAndUse.RPC_LITERAL);
         }
@@ -815,18 +821,69 @@
         QName body = VOID_BODYBLOCK;
         QName opName = null;
 
+        Operation thatOp;
         if (bb.hasNext()) {
             body = bb.next().getName();
-            opName = uniqueBodyBlocks.get(body);
+            thatOp = uniqueBodyBlocks.get(body);
         } else {
             //there is no body block
             body = VOID_BODYBLOCK;
-            opName = uniqueBodyBlocks.get(VOID_BODYBLOCK);
+            thatOp = uniqueBodyBlocks.get(VOID_BODYBLOCK);
         }
-        if (opName != null) {
-            error(info.port, ModelerMessages.WSDLMODELER_NON_UNIQUE_BODY(info.port.getName(), info.operation.getName(), opName, body));
-        } else {
-            uniqueBodyBlocks.put(body, info.operation.getName());
+
+        if(thatOp != null){
+            if(options.isExtensionMode()){
+                warning(info.port, ModelerMessages.WSDLMODELER_NON_UNIQUE_BODY_WARNING(info.port.getName(), info.operation.getName(), thatOp.getName(), body));
+            }else{
+                error(info.port, ModelerMessages.WSDLMODELER_NON_UNIQUE_BODY_ERROR(info.port.getName(), info.operation.getName(), thatOp.getName(), body));
+            }
+        }else{
+            uniqueBodyBlocks.put(body, info.operation);
+        }
+
+        //Add additional headers
+        if (options.additionalHeaders) {
+            List<Parameter> additionalHeaders = new ArrayList<Parameter>();
+            if (inputMessage != null) {
+                for (MessagePart part : getAdditionHeaderParts(inputMessage, true)) {
+                    QName name = part.getDescriptor();
+                    JAXBType jaxbType = getJAXBType(part);
+                    Block block = new Block(name, jaxbType, part);
+                    Parameter param = ModelerUtils.createParameter(part.getName(), jaxbType, block);
+                    additionalHeaders.add(param);
+                    request.addHeaderBlock(block);
+                    request.addParameter(param);
+                    definitiveParameterList.add(param);
+                }
+            }
+
+            if (isRequestResponse && outputMessage != null) {
+                List<Parameter> outParams = new ArrayList<Parameter>();
+                for (MessagePart part : getAdditionHeaderParts(outputMessage, false)) {
+                    QName name = part.getDescriptor();
+                    JAXBType jaxbType = getJAXBType(part);
+                    Block block = new Block(name, jaxbType, part);
+                    Parameter param = ModelerUtils.createParameter(part.getName(), jaxbType, block);
+                    param.setMode(Mode.OUT);
+                    outParams.add(param);
+                    response.addHeaderBlock(block);
+                    response.addParameter(param);
+                }
+                for (Parameter outParam : outParams) {
+                    for (Parameter inParam : additionalHeaders) {
+                        if (inParam.getName().equals(outParam.getName()) &&
+                                inParam.getBlock().getName().equals(outParam.getBlock().getName())) {
+                            //it is INOUT
+                            inParam.setMode(Mode.INOUT);
+                            outParam.setMode(Mode.INOUT);
+                            break;
+                        }
+                    }
+                    if (outParam.isOUT()) {
+                        definitiveParameterList.add(outParam);
+                    }
+                }
+            }
         }
 
         // faults with duplicate names
@@ -848,6 +905,7 @@
         return info.operation;
     }
 
+
     private boolean validateParameterName(List<Parameter> params) {
         if (options.isExtensionMode())
             return true;
@@ -1460,6 +1518,19 @@
         return null;
     }
 
+    private List<MessagePart> getAdditionHeaderParts(Message message, boolean isInput){
+        List<MessagePart> headerParts = new ArrayList<MessagePart>();
+        List<MessagePart> parts = message.getParts();
+        List<MessagePart> headers = getHeaderParts(isInput);
+
+        for(MessagePart part: headers){
+            if(parts.contains(part))
+                continue;
+            headerParts.add(part);
+        }
+        return headerParts;
+    }
+
     private List<MessagePart> getHeaderPartsFromMessage(Message message, boolean isInput) {
         List<MessagePart> headerParts = new ArrayList<MessagePart>();
         Iterator<MessagePart> parts = message.parts();
@@ -1490,19 +1561,6 @@
         return null;
     }
 
-    private List<MessagePart> getHeaderPartsNotFromMessage(Message message, boolean isInput) {
-        List<MessagePart> headerParts = new ArrayList<MessagePart>();
-        List<MessagePart> parts = message.getParts();
-        Iterator<MessagePart> headers = getHeaderParts(isInput).iterator();
-        while (headers.hasNext()) {
-            MessagePart part = headers.next();
-            if (!parts.contains(part)) {
-                headerParts.add(part);
-            }
-        }
-        return headerParts;
-    }
-
     private List<MessagePart> getHeaderParts(boolean isInput) {
         TWSDLExtensible ext;
         if (isInput) {
@@ -2247,6 +2305,10 @@
                 (QName) port.getProperty(
                         ModelProperties.PROPERTY_WSDL_PORT_TYPE_NAME);
         PortType pt = (PortType) document.find(Kinds.PORT_TYPE, portTypeName);
+        //populate the portType map here. We should get rid of all these properties
+        // lets not do it as it may break NB
+        //TODO: clean all these stuff part of NB RFE
+        port.portTypes.put(portTypeName, pt);
         JAXWSBinding jaxwsCust = (JAXWSBinding) getExtensionOfType(pt, JAXWSBinding.class);
         if (jaxwsCust != null && jaxwsCust.getClassName() != null) {
             CustomName name = jaxwsCust.getClassName();
@@ -2271,7 +2333,7 @@
     private void createJavaMethodForAsyncOperation(Port port, Operation operation,
                                                    JavaInterface intf) {
         String candidateName = getJavaNameForOperation(operation);
-        JavaMethod method = new JavaMethod(candidateName, errReceiver);
+        JavaMethod method = new JavaMethod(candidateName, options, errReceiver);
         Request request = operation.getRequest();
         Iterator requestBodyBlocks = request.getBodyBlocks();
         Block requestBlock =
@@ -2338,7 +2400,7 @@
             return;
         }
         String candidateName = getJavaNameForOperation(operation);
-        JavaMethod method = new JavaMethod(candidateName, errReceiver);
+        JavaMethod method = new JavaMethod(candidateName, options, errReceiver);
         Request request = operation.getRequest();
         Parameter returnParam = (Parameter) operation.getProperty(WSDL_RESULT_PARAMETER);
         if (returnParam != null) {
@@ -2718,7 +2780,7 @@
 
     private void reportError(Entity entity,
         String formattedMsg, Exception nestedException ) {
-        Locator locator = (entity == null)?NULL_LOCATOR:entity.getLocator();
+        Locator locator = (entity == null)?null:entity.getLocator();
 
         SAXParseException e = new SAXParseException2( formattedMsg,
             locator,
--- a/src/share/classes/com/sun/tools/internal/ws/processor/modeler/wsdl/WSDLModelerBase.java	Sat Jul 25 20:55:11 2009 -0700
+++ b/src/share/classes/com/sun/tools/internal/ws/processor/modeler/wsdl/WSDLModelerBase.java	Mon Sep 07 10:56:42 2009 -0700
@@ -288,23 +288,11 @@
     private boolean validateMimeContentPartNames(List<MIMEContent> mimeContents) {
         //validate mime:content(s) in the mime:part as per R2909
         for (MIMEContent mimeContent : mimeContents) {
-            String mimeContnetPart = null;
+            String mimeContnetPart;
+            mimeContnetPart = getMimeContentPartName(mimeContent);
             if(mimeContnetPart == null) {
-                mimeContnetPart = getMimeContentPartName(mimeContent);
-                if(mimeContnetPart == null) {
-                    warning(mimeContent, ModelerMessages.MIMEMODELER_INVALID_MIME_CONTENT_MISSING_PART_ATTRIBUTE(info.operation.getName().getLocalPart()));
-                    return false;
-                }
-            }else {
-                String newMimeContnetPart = getMimeContentPartName(mimeContent);
-                if(newMimeContnetPart == null) {
-                    warning(mimeContent, ModelerMessages.MIMEMODELER_INVALID_MIME_CONTENT_MISSING_PART_ATTRIBUTE(info.operation.getName().getLocalPart()));
-                    return false;
-                }else if(!newMimeContnetPart.equals(mimeContnetPart)) {
-                    //throw new ModelerException("mimemodeler.invalidMimeContent.differentPart");
-                    warning(mimeContent, ModelerMessages.MIMEMODELER_INVALID_MIME_CONTENT_DIFFERENT_PART());
-                    return false;
-                }
+                warning(mimeContent, ModelerMessages.MIMEMODELER_INVALID_MIME_CONTENT_MISSING_PART_ATTRIBUTE(info.operation.getName().getLocalPart()));
+                return false;
             }
         }
         return true;
@@ -386,6 +374,9 @@
     protected String getRequestNamespaceURI(SOAPBody body) {
         String namespaceURI = body.getNamespace();
         if (namespaceURI == null) {
+            if(options.isExtensionMode()){
+                return info.modelPort.getName().getNamespaceURI();
+            }
             // the WSDL document is invalid
             // at least, that's my interpretation of section 3.5 of the WSDL 1.1 spec!
             error(body, ModelerMessages.WSDLMODELER_INVALID_BINDING_OPERATION_INPUT_SOAP_BODY_MISSING_NAMESPACE(info.bindingOperation.getName()));
@@ -396,6 +387,9 @@
     protected String getResponseNamespaceURI(SOAPBody body) {
         String namespaceURI = body.getNamespace();
         if (namespaceURI == null) {
+            if(options.isExtensionMode()){
+                return info.modelPort.getName().getNamespaceURI();
+            }
             // the WSDL document is invalid
             // at least, that's my interpretation of section 3.5 of the WSDL 1.1 spec!
             error(body, ModelerMessages.WSDLMODELER_INVALID_BINDING_OPERATION_OUTPUT_SOAP_BODY_MISSING_NAMESPACE(info.bindingOperation.getName()));
@@ -703,14 +697,14 @@
         if(numPasses > 1)
             return;
         if(entity == null)
-            errReceiver.warning(NULL_LOCATOR, message);
+            errReceiver.warning(null, message);
         else
             errReceiver.warning(entity.getLocator(), message);
     }
 
     protected void error(Entity entity, String message){
         if(entity == null)
-            errReceiver.error(NULL_LOCATOR, message);
+            errReceiver.error(null, message);
         else
             errReceiver.error(entity.getLocator(), message);
         throw new AbortException();
--- a/src/share/classes/com/sun/tools/internal/ws/processor/util/ClassNameCollector.java	Sat Jul 25 20:55:11 2009 -0700
+++ b/src/share/classes/com/sun/tools/internal/ws/processor/util/ClassNameCollector.java	Mon Sep 07 10:56:42 2009 -0700
@@ -80,8 +80,10 @@
     protected void preVisit(Service service) throws Exception {
         registerClassName(
             ((JavaInterface)service.getJavaInterface()).getName());
-        registerClassName(
-            ((JavaInterface)service.getJavaInterface()).getImpl());
+        // We don't generate Impl classes, commenting it out.
+        // Otherwise, it would cause naming conflicts
+        //registerClassName(
+        //    ((JavaInterface)service.getJavaInterface()).getImpl());
     }
 
     protected void processPort11x(Port port){
--- a/src/share/classes/com/sun/tools/internal/ws/resources/GeneratorMessages.java	Sat Jul 25 20:55:11 2009 -0700
+++ b/src/share/classes/com/sun/tools/internal/ws/resources/GeneratorMessages.java	Mon Sep 07 10:56:42 2009 -0700
@@ -38,6 +38,30 @@
     private final static LocalizableMessageFactory messageFactory = new LocalizableMessageFactory("com.sun.tools.internal.ws.resources.generator");
     private final static Localizer localizer = new Localizer();
 
+    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);
     }
--- a/src/share/classes/com/sun/tools/internal/ws/resources/ModelMessages.java	Sat Jul 25 20:55:11 2009 -0700
+++ b/src/share/classes/com/sun/tools/internal/ws/resources/ModelMessages.java	Mon Sep 07 10:56:42 2009 -0700
@@ -255,18 +255,6 @@
         return localizer.localize(localizableMODEL_SAXPARSER_EXCEPTION(arg0, arg1));
     }
 
-    public static Localizable localizable_002F_002F_JAXWS() {
-        return messageFactory.getMessage("//JAXWS");
-    }
-
-    /**
-     *  2.0
-     *
-     */
-    public static String _002F_002F_JAXWS() {
-        return localizer.localize(localizable_002F_002F_JAXWS());
-    }
-
     public static Localizable localizableMODEL_DUPLICATE_FAULTMESSAGE(Object arg0) {
         return messageFactory.getMessage("model.duplicate.faultmessage", arg0);
     }
@@ -536,7 +524,9 @@
     }
 
     /**
-     * Failed to generate Java signature: duplicate parameter names {0}. Use JAXWS binding customization to rename the wsdl:part "{1}"
+     * 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) {
@@ -639,6 +629,21 @@
         return localizer.localize(localizableMODEL_IMPORTER_INVALID_LITERAL(arg0));
     }
 
+    public static Localizable localizableMODEL_PARAMETER_NOTUNIQUE_WRAPPER(Object arg0, Object arg1) {
+        return messageFactory.getMessage("model.parameter.notunique.wrapper", 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.
+     *  3. This is wrapper style operation, to resolve parameter name conflict, you can also try disabling wrapper style by using <jaxws:enableWrapperStyle>false</jaxws:enableWrapperStyle> wsdl customization.
+     *
+     */
+    public static String MODEL_PARAMETER_NOTUNIQUE_WRAPPER(Object arg0, Object 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);
     }
--- a/src/share/classes/com/sun/tools/internal/ws/resources/ModelerMessages.java	Sat Jul 25 20:55:11 2009 -0700
+++ b/src/share/classes/com/sun/tools/internal/ws/resources/ModelerMessages.java	Mon Sep 07 10:56:42 2009 -0700
@@ -331,7 +331,7 @@
     }
 
     /**
-     * Schema descriptor {0} in message part "{1}" could not be bound to Java!
+     * 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) {
@@ -590,6 +590,18 @@
         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 signaure 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);
     }
@@ -818,18 +830,6 @@
         return localizer.localize(localizableWSDLMODELER_INVALID_BINDING_OPERATION_MULTIPLE_MATCHING_OPERATIONS(arg0, arg1));
     }
 
-    public static Localizable localizableWSDLMODELER_NON_UNIQUE_BODY(Object arg0, Object arg1, Object arg2, Object arg3) {
-        return messageFactory.getMessage("wsdlmodeler.nonUnique.body", arg0, arg1, arg2, arg3);
-    }
-
-    /**
-     * Non unique body parts! In a port, operations must have unique operation signaure on the wire for successful dispatch. In port {0}, Operations "{1}" and "{2}" have the same request body block {3}
-     *
-     */
-    public static String WSDLMODELER_NON_UNIQUE_BODY(Object arg0, Object arg1, Object arg2, Object arg3) {
-        return localizer.localize(localizableWSDLMODELER_NON_UNIQUE_BODY(arg0, arg1, arg2, arg3));
-    }
-
     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);
     }
@@ -1238,6 +1238,18 @@
         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 signaure 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);
     }
--- a/src/share/classes/com/sun/tools/internal/ws/resources/WebserviceapMessages.java	Sat Jul 25 20:55:11 2009 -0700
+++ b/src/share/classes/com/sun/tools/internal/ws/resources/WebserviceapMessages.java	Mon Sep 07 10:56:42 2009 -0700
@@ -38,52 +38,148 @@
     private final static LocalizableMessageFactory messageFactory = new LocalizableMessageFactory("com.sun.tools.internal.ws.resources.webserviceap");
     private final static Localizer localizer = new Localizer();
 
-    public static Localizable localizableWEBSERVICEAP_RPC_LITERAL_MUST_NOT_BE_BARE(Object arg0) {
-        return messageFactory.getMessage("webserviceap.rpc.literal.must.not.be.bare", arg0);
+    public static Localizable localizableWEBSERVICEAP_ENDPOINTINTERFACES_DO_NOT_MATCH(Object arg0, Object arg1) {
+        return messageFactory.getMessage("webserviceap.endpointinterfaces.do.not.match", arg0, arg1);
     }
 
     /**
-     * RPC literal SOAPBindings must have parameterStyle WRAPPPED. Class: {0}.
+     * The endpoint interface {0} does not match the interface {1}.
      *
      */
-    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 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_SEI_ANNOTATION_ELEMENT_EXCLUDE(Object arg0, Object arg1, Object arg2) {
-        return messageFactory.getMessage("webserviceap.invalid.sei.annotation.element.exclude", arg0, arg1, arg2);
+    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}) cannot be used on a service endpoint interface. Class: {1} method: {2}
+     * 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_SEI_ANNOTATION_ELEMENT_EXCLUDE(Object arg0, Object arg1, Object arg2) {
-        return localizer.localize(localizableWEBSERVICEAP_INVALID_SEI_ANNOTATION_ELEMENT_EXCLUDE(arg0, arg1, arg2));
+    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_WEBSERVICE_CLASS_IS_INNERCLASS_NOT_STATIC(Object arg0) {
-        return messageFactory.getMessage("webserviceap.webservice.class.is.innerclass.not.static", arg0);
+    public static Localizable localizableWEBSERVICEAP_SEI_CANNOT_CONTAIN_CONSTANT_VALUES(Object arg0, Object arg1) {
+        return messageFactory.getMessage("webserviceap.sei.cannot.contain.constant.values", arg0, arg1);
     }
 
     /**
-     * Inner classes annotated with @javax.jws.WebService must be static. Class: {0}
+     * An service endpoint interface cannot contain constant declaration: Interface: {0} field: {1}.
      *
      */
-    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 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_WEBSERVICE_METHOD_IS_ABSTRACT(Object arg0, Object arg1) {
-        return messageFactory.getMessage("webserviceap.webservice.method.is.abstract", 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);
     }
 
     /**
-     * Classes annotated with @javax.jws.WebService must not have abstract methods. Class: {0} Method: {1}
+     * All rpc literal parameters must have a WebParam annotation.  Class: {0} method: {1} parameter {2}
      *
      */
-    public static String WEBSERVICEAP_WEBSERVICE_METHOD_IS_ABSTRACT(Object arg0, Object arg1) {
-        return localizer.localize(localizableWEBSERVICEAP_WEBSERVICE_METHOD_IS_ABSTRACT(arg0, arg1));
+    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) {
@@ -110,6 +206,378 @@
         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 endpointpoint interface: {0} has 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_NESTED_MODEL_ERROR(Object arg0) {
+        return messageFactory.getMessage("webserviceap.nestedModelError", arg0);
+    }
+
+    /**
+     * modeler error: {0}
+     *
+     */
+    public static String WEBSERVICEAP_NESTED_MODEL_ERROR(Object arg0) {
+        return localizer.localize(localizableWEBSERVICEAP_NESTED_MODEL_ERROR(arg0));
+    }
+
+    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} paramter {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));
+    }
+
+    public static Localizable localizableWEBSERVICEAP_WEBSERVICE_METHOD_IS_ABSTRACT(Object arg0, Object arg1) {
+        return messageFactory.getMessage("webserviceap.webservice.method.is.abstract", arg0, arg1);
+    }
+
+    /**
+     * Classes annotated with @javax.jws.WebService must not have abstract methods. Class: {0} Method: {1}
+     *
+     */
+    public static String WEBSERVICEAP_WEBSERVICE_METHOD_IS_ABSTRACT(Object arg0, Object 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);
+    }
+
+    /**
+     * 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_NO_WEBSERVICE_ENDPOINT_FOUND() {
+        return messageFactory.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_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} paramter {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 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);
+    }
+
+    /**
+     * Document literal bare methods must have no more than 1 non-header in parameter. Class: {0} method: {1} number of non-header parameters: {2}
+     *
+     */
+    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 TypeDeclaration for: {0} in apt 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);
     }
@@ -122,6 +590,54 @@
         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 WRAPPPED. 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);
     }
@@ -134,124 +650,76 @@
         return localizer.localize(localizableWEBSERVICEAP_COULD_NOT_FIND_HANDLERCHAIN(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);
+    public static Localizable localizableWEBSERVICEAP_RPC_ENCODED_NOT_SUPPORTED(Object arg0) {
+        return messageFactory.getMessage("webserviceap.rpc.encoded.not.supported", arg0);
     }
 
     /**
-     * @javax.jws.Webservice annotated classes that do not belong to a package must have the @javax.jws.Webservice.targetNamespace element.  Class: {0}
+     * The {0} class has a rpc/encoded SOAPBinding.  Rpc/encoded SOAPBindings are not supported in JAXWS 2.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 String WEBSERVICEAP_RPC_ENCODED_NOT_SUPPORTED(Object arg0) {
+        return localizer.localize(localizableWEBSERVICEAP_RPC_ENCODED_NOT_SUPPORTED(arg0));
     }
 
-    public static Localizable localizableWEBSERVICEAP_CLASS_NOT_FOUND(Object arg0) {
-        return messageFactory.getMessage("webserviceap.class.not.found", arg0);
+    public static Localizable localizableWEBSERVICEAP_ERROR(Object arg0) {
+        return messageFactory.getMessage("webserviceap.error", arg0);
     }
 
     /**
-     * Class Not Found: {0}
+     * error: {0}
      *
      */
-    public static String WEBSERVICEAP_CLASS_NOT_FOUND(Object arg0) {
-        return localizer.localize(localizableWEBSERVICEAP_CLASS_NOT_FOUND(arg0));
+    public static String WEBSERVICEAP_ERROR(Object arg0) {
+        return localizer.localize(localizableWEBSERVICEAP_ERROR(arg0));
     }
 
-    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);
+    public static Localizable localizableWEBSERVICEAP_ENDPOINTINTERFACE_CLASS_NOT_FOUND(Object arg0) {
+        return messageFactory.getMessage("webserviceap.endpointinterface.class.not.found", arg0);
     }
 
     /**
-     * Document literal bare methods that do not have a return value must have a single OUT/INOUT parameter.  Class: {0} Method: {1}
+     * The endpointInterface class {0} could not be found
      *
      */
-    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 String WEBSERVICEAP_ENDPOINTINTERFACE_CLASS_NOT_FOUND(Object arg0) {
+        return localizer.localize(localizableWEBSERVICEAP_ENDPOINTINTERFACE_CLASS_NOT_FOUND(arg0));
     }
 
-    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_METHOD_NOT_IMPLEMENTED(Object arg0, Object arg1, Object arg2) {
+        return messageFactory.getMessage("webserviceap.method.not.implemented", arg0, arg1, arg2);
     }
 
     /**
-     * Document literal bare methods must have a unique result name return type combination.  Class {0} method: {1}, result name: {2} return type: {3}
+     * Methods in an endpointInterface must be implemented in the implementation class.  Interface Class:{0} Implementation Class:{1} Method: {2}
      *
      */
-    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_METHOD_NOT_IMPLEMENTED(Object arg0, Object arg1, Object arg2) {
+        return localizer.localize(localizableWEBSERVICEAP_METHOD_NOT_IMPLEMENTED(arg0, arg1, arg2));
     }
 
-    public static Localizable localizableWEBSERVICEAP_DOC_BARE_NO_OUT(Object arg0, Object arg1) {
-        return messageFactory.getMessage("webserviceap.doc.bare.no.out", arg0, arg1);
+    public static Localizable localizableWEBSERVICE_ENCODED_NOT_SUPPORTED(Object arg0, Object arg1) {
+        return messageFactory.getMessage("webservice.encoded.not.supported", arg0, arg1);
     }
 
     /**
-     * Document/literal bare methods with no return type or OUT/INOUT parameters must be annotated as @Oneway. Class: {0}, method: {1}
+     * The {0} class has invalid SOAPBinding annotation. {1}/encoded SOAPBinding is not supported
      *
      */
-    public static String WEBSERVICEAP_DOC_BARE_NO_OUT(Object arg0, Object arg1) {
-        return localizer.localize(localizableWEBSERVICEAP_DOC_BARE_NO_OUT(arg0, arg1));
+    public static String WEBSERVICE_ENCODED_NOT_SUPPORTED(Object arg0, Object arg1) {
+        return localizer.localize(localizableWEBSERVICE_ENCODED_NOT_SUPPORTED(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);
+    public static Localizable localizableWEBSERVICEAP_HANDLERCLASS_NOTSPECIFIED(Object arg0) {
+        return messageFactory.getMessage("webserviceap.handlerclass.notspecified", arg0);
     }
 
     /**
-     * All rpc literal parameters must have a WebParam annotation.  Class: {0} method: {1} parameter {2}
+     * A handler in the HandlerChain file: {0} does not specify a handler-class
      *
      */
-    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_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_ENDPOINTINTERFACE_ON_INTERFACE(Object arg0, Object arg1) {
-        return messageFactory.getMessage("webserviceap.endpointinterface.on.interface", arg0, arg1);
-    }
-
-    /**
-     * Service endpointpoint interface: {0} has 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_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_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 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) {
@@ -266,604 +734,16 @@
         return localizer.localize(localizableWEBSERVICEAP_FAILED_TO_FIND_HANDLERCHAIN_FILE(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);
+    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);
     }
 
     /**
-     * Operation names must be unique.  Class: {0} method: {1} operation name: {2}
+     * 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_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_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_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} paramter {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_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_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_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 paramerters (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_ONEWAY_AND_NOT_ONE_IN(Object arg0, Object arg1) {
-        return messageFactory.getMessage("webserviceap.oneway.and.not.one.in", arg0, arg1);
-    }
-
-    /**
-     * Document literal bare methods annotated with @javax.jws.Oneway must have one non-header IN parameter.  Class: {0} Method: {1}
-     *
-     */
-    public static String WEBSERVICEAP_ONEWAY_AND_NOT_ONE_IN(Object arg0, Object arg1) {
-        return localizer.localize(localizableWEBSERVICEAP_ONEWAY_AND_NOT_ONE_IN(arg0, arg1));
-    }
-
-    public static Localizable localizableWEBSERVICEAP_RPC_ENCODED_NOT_SUPPORTED(Object arg0) {
-        return messageFactory.getMessage("webserviceap.rpc.encoded.not.supported", arg0);
-    }
-
-    /**
-     * The {0} class 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_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_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_NO_WEBSERVICE_ENDPOINT_FOUND() {
-        return messageFactory.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_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_COULD_NOT_FIND_TYPEDECL(Object arg0, Object arg1) {
-        return messageFactory.getMessage("webserviceap.could.not.find.typedecl", arg0, arg1);
-    }
-
-    /**
-     * Could not get TypeDeclaration for: {0} in apt 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_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 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_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_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_SEI_CANNOT_CONTAIN_CONSTANT_VALUES(Object arg0, Object arg1) {
-        return messageFactory.getMessage("webserviceap.sei.cannot.contain.constant.values", arg0, arg1);
-    }
-
-    /**
-     * An 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_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_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);
-    }
-
-    /**
-     * Document literal bare methods must have no more than 1 non-header in parameter. Class: {0} method: {1} number of non-header parameters: {2}
-     *
-     */
-    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_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_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_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_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_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_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 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));
-    }
-
-    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} paramter {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_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_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_NESTED_MODEL_ERROR(Object arg0) {
-        return messageFactory.getMessage("webserviceap.nestedModelError", arg0);
-    }
-
-    /**
-     * modeler error: {0}
-     *
-     */
-    public static String WEBSERVICEAP_NESTED_MODEL_ERROR(Object arg0) {
-        return localizer.localize(localizableWEBSERVICEAP_NESTED_MODEL_ERROR(arg0));
-    }
-
-    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));
-    }
-
-    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_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_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_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_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_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_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_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_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_SUCCEEDED() {
-        return messageFactory.getMessage("webserviceap.succeeded");
-    }
-
-    /**
-     * Success
-     *
-     */
-    public static String WEBSERVICEAP_SUCCEEDED() {
-        return localizer.localize(localizableWEBSERVICEAP_SUCCEEDED());
-    }
-
-    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);
-    }
-
-    /**
-     * javax.xml.ws.Holder parameters in document bare operations must be WebParam.Mode.INOUT;  Class: {0} method: {1} parameter: {2}
-     *
-     */
-    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));
-    }
-
-    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_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_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_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_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_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_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 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) {
@@ -890,4 +770,136 @@
         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 paramerters (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));
+    }
+
+    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);
+    }
+
+    /**
+     * javax.xml.ws.Holder parameters in document bare operations must be WebParam.Mode.INOUT;  Class: {0} method: {1} parameter: {2}
+     *
+     */
+    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));
+    }
+
+    public static Localizable localizableWEBSERVICEAP_ONEWAY_AND_NOT_ONE_IN(Object arg0, Object arg1) {
+        return messageFactory.getMessage("webserviceap.oneway.and.not.one.in", arg0, arg1);
+    }
+
+    /**
+     * Document literal bare methods annotated with @javax.jws.Oneway must have one non-header IN parameter.  Class: {0} Method: {1}
+     *
+     */
+    public static String WEBSERVICEAP_ONEWAY_AND_NOT_ONE_IN(Object arg0, Object arg1) {
+        return localizer.localize(localizableWEBSERVICEAP_ONEWAY_AND_NOT_ONE_IN(arg0, arg1));
+    }
+
 }
--- a/src/share/classes/com/sun/tools/internal/ws/resources/WscompileMessages.java	Sat Jul 25 20:55:11 2009 -0700
+++ b/src/share/classes/com/sun/tools/internal/ws/resources/WscompileMessages.java	Mon Sep 07 10:56:42 2009 -0700
@@ -62,6 +62,30 @@
         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_R