# HG changeset patch # User andrew # Date 1316656633 -3600 # Node ID 78c175236707be2611c28f99a7435a1b7e9c199f # Parent c608b38af726e62f2e0b84fe5e3066f6eca2249d Update to jdk7-jaxws-2009_09_28.zip diff -r c608b38af726 -r 78c175236707 sources/jaxws_src/src/com/sun/codemodel/internal/JAnnotatable.java --- a/sources/jaxws_src/src/com/sun/codemodel/internal/JAnnotatable.java Thu Sep 22 02:44:43 2011 +0100 +++ b/sources/jaxws_src/src/com/sun/codemodel/internal/JAnnotatable.java Thu Sep 22 02:57:13 2011 +0100 @@ -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; diff -r c608b38af726 -r 78c175236707 sources/jaxws_src/src/com/sun/codemodel/internal/JAnnotationUse.java --- a/sources/jaxws_src/src/com/sun/codemodel/internal/JAnnotationUse.java Thu Sep 22 02:44:43 2011 +0100 +++ b/sources/jaxws_src/src/com/sun/codemodel/internal/JAnnotationUse.java Thu Sep 22 02:57:13 2011 +0100 @@ -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)); } /** diff -r c608b38af726 -r 78c175236707 sources/jaxws_src/src/com/sun/codemodel/internal/JAnnotationWriter.java --- a/sources/jaxws_src/src/com/sun/codemodel/internal/JAnnotationWriter.java Thu Sep 22 02:44:43 2011 +0100 +++ b/sources/jaxws_src/src/com/sun/codemodel/internal/JAnnotationWriter.java Thu Sep 22 02:57:13 2011 +0100 @@ -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; diff -r c608b38af726 -r 78c175236707 sources/jaxws_src/src/com/sun/codemodel/internal/JBlock.java --- a/sources/jaxws_src/src/com/sun/codemodel/internal/JBlock.java Thu Sep 22 02:44:43 2011 +0100 +++ b/sources/jaxws_src/src/com/sun/codemodel/internal/JBlock.java Thu Sep 22 02:57:13 2011 +0100 @@ -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 diff -r c608b38af726 -r 78c175236707 sources/jaxws_src/src/com/sun/codemodel/internal/JCommentPart.java --- a/sources/jaxws_src/src/com/sun/codemodel/internal/JCommentPart.java Thu Sep 22 02:44:43 2011 +0100 +++ b/sources/jaxws_src/src/com/sun/codemodel/internal/JCommentPart.java Thu Sep 22 02:57:13 2011 +0100 @@ -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); + } + } } diff -r c608b38af726 -r 78c175236707 sources/jaxws_src/src/com/sun/codemodel/internal/JDirectClass.java --- a/sources/jaxws_src/src/com/sun/codemodel/internal/JDirectClass.java Thu Sep 22 02:44:43 2011 +0100 +++ b/sources/jaxws_src/src/com/sun/codemodel/internal/JDirectClass.java Thu Sep 22 02:57:13 2011 +0100 @@ -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; diff -r c608b38af726 -r 78c175236707 sources/jaxws_src/src/com/sun/codemodel/internal/JExpr.java --- a/sources/jaxws_src/src/com/sun/codemodel/internal/JExpr.java Thu Sep 22 02:44:43 2011 +0100 +++ b/sources/jaxws_src/src/com/sun/codemodel/internal/JExpr.java Thu Sep 22 02:57:13 2011 +0100 @@ -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. diff -r c608b38af726 -r 78c175236707 sources/jaxws_src/src/com/sun/codemodel/internal/JJavaName.java --- a/sources/jaxws_src/src/com/sun/codemodel/internal/JJavaName.java Thu Sep 22 02:44:43 2011 +0100 +++ b/sources/jaxws_src/src/com/sun/codemodel/internal/JJavaName.java Thu Sep 22 02:57:13 2011 +0100 @@ -231,6 +231,7 @@ "(.*)basis","$1bases", "(.*)axis","$1axes", "(.+)is","$1ises", + "(.+)ss","$1sses", "(.+)us","$1uses", "(.+)s","$1s", "(.*)foot","$1feet", diff -r c608b38af726 -r 78c175236707 sources/jaxws_src/src/com/sun/codemodel/internal/JMethod.java --- a/sources/jaxws_src/src/com/sun/codemodel/internal/JMethod.java Thu Sep 22 02:44:43 2011 +0100 +++ b/sources/jaxws_src/src/com/sun/codemodel/internal/JMethod.java Thu Sep 22 02:57:13 2011 +0100 @@ -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(); diff -r c608b38af726 -r 78c175236707 sources/jaxws_src/src/com/sun/codemodel/internal/JPackage.java --- a/sources/jaxws_src/src/com/sun/codemodel/internal/JPackage.java Thu Sep 22 02:44:43 2011 +0100 +++ b/sources/jaxws_src/src/com/sun/codemodel/internal/JPackage.java Thu Sep 22 02:57:13 2011 +0100 @@ -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); } diff -r c608b38af726 -r 78c175236707 sources/jaxws_src/src/com/sun/codemodel/internal/JTypeWildcard.java --- a/sources/jaxws_src/src/com/sun/codemodel/internal/JTypeWildcard.java Thu Sep 22 02:44:43 2011 +0100 +++ b/sources/jaxws_src/src/com/sun/codemodel/internal/JTypeWildcard.java Thu Sep 22 02:57:13 2011 +0100 @@ -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; diff -r c608b38af726 -r 78c175236707 sources/jaxws_src/src/com/sun/codemodel/internal/TypedAnnotationWriter.java --- a/sources/jaxws_src/src/com/sun/codemodel/internal/TypedAnnotationWriter.java Thu Sep 22 02:44:43 2011 +0100 +++ b/sources/jaxws_src/src/com/sun/codemodel/internal/TypedAnnotationWriter.java Thu Sep 22 02:57:13 2011 +0100 @@ -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; diff -r c608b38af726 -r 78c175236707 sources/jaxws_src/src/com/sun/codemodel/internal/package-info.java --- a/sources/jaxws_src/src/com/sun/codemodel/internal/package-info.java Thu Sep 22 02:44:43 2011 +0100 +++ b/sources/jaxws_src/src/com/sun/codemodel/internal/package-info.java Thu Sep 22 02:57:13 2011 +0100 @@ -22,6 +22,7 @@ * CA 95054 USA or visit www.sun.com if you need additional information or * have any questions. */ + /** *

Library for generating Java source code

. * diff -r c608b38af726 -r 78c175236707 sources/jaxws_src/src/com/sun/codemodel/internal/util/EncoderFactory.java --- a/sources/jaxws_src/src/com/sun/codemodel/internal/util/EncoderFactory.java Thu Sep 22 02:44:43 2011 +0100 +++ b/sources/jaxws_src/src/com/sun/codemodel/internal/util/EncoderFactory.java Thu Sep 22 02:57:13 2011 +0100 @@ -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; diff -r c608b38af726 -r 78c175236707 sources/jaxws_src/src/com/sun/codemodel/internal/util/MS1252Encoder.java --- a/sources/jaxws_src/src/com/sun/codemodel/internal/util/MS1252Encoder.java Thu Sep 22 02:44:43 2011 +0100 +++ b/sources/jaxws_src/src/com/sun/codemodel/internal/util/MS1252Encoder.java Thu Sep 22 02:57:13 2011 +0100 @@ -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; diff -r c608b38af726 -r 78c175236707 sources/jaxws_src/src/com/sun/codemodel/internal/writer/FilterCodeWriter.java --- a/sources/jaxws_src/src/com/sun/codemodel/internal/writer/FilterCodeWriter.java Thu Sep 22 02:44:43 2011 +0100 +++ b/sources/jaxws_src/src/com/sun/codemodel/internal/writer/FilterCodeWriter.java Thu Sep 22 02:57:13 2011 +0100 @@ -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; diff -r c608b38af726 -r 78c175236707 sources/jaxws_src/src/com/sun/istack/internal/Builder.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/sources/jaxws_src/src/com/sun/istack/internal/Builder.java Thu Sep 22 02:57:13 2011 +0100 @@ -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 build(); +} diff -r c608b38af726 -r 78c175236707 sources/jaxws_src/src/com/sun/istack/internal/Pool.java --- a/sources/jaxws_src/src/com/sun/istack/internal/Pool.java Thu Sep 22 02:44:43 2011 +0100 +++ b/sources/jaxws_src/src/com/sun/istack/internal/Pool.java Thu Sep 22 02:57:13 2011 +0100 @@ -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 { + /** * 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 @@ *

* Don't rely on the fact that this class extends from {@link ConcurrentLinkedQueue}. */ - public abstract class Impl extends ConcurrentLinkedQueue implements Pool { + public abstract class Impl implements Pool { + + private volatile WeakReference> 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 getQueue() { + WeakReference> q = queue; + if (q != null) { + ConcurrentLinkedQueue d = q.get(); + if (d != null) { + return d; + } + } + // overwrite the queue + ConcurrentLinkedQueue d = new ConcurrentLinkedQueue(); + queue = new WeakReference>(d); + + return d; } /** diff -r c608b38af726 -r 78c175236707 sources/jaxws_src/src/com/sun/istack/internal/XMLStreamReaderToContentHandler.java --- a/sources/jaxws_src/src/com/sun/istack/internal/XMLStreamReaderToContentHandler.java Thu Sep 22 02:44:43 2011 +0100 +++ b/sources/jaxws_src/src/com/sun/istack/internal/XMLStreamReaderToContentHandler.java Thu Sep 22 02:57:13 2011 +0100 @@ -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); diff -r c608b38af726 -r 78c175236707 sources/jaxws_src/src/com/sun/istack/internal/localization/Localizable.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/sources/jaxws_src/src/com/sun/istack/internal/localization/Localizable.java Thu Sep 22 02:57:13 2011 +0100 @@ -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. + * + *

+ * Use of "new" is to create an unique instance. + */ + public static final String NOT_LOCALIZABLE = new String("\u0000"); +} diff -r c608b38af726 -r 78c175236707 sources/jaxws_src/src/com/sun/istack/internal/localization/LocalizableMessage.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/sources/jaxws_src/src/com/sun/istack/internal/localization/LocalizableMessage.java Thu Sep 22 02:57:13 2011 +0100 @@ -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; + } +} diff -r c608b38af726 -r 78c175236707 sources/jaxws_src/src/com/sun/istack/internal/localization/LocalizableMessageFactory.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/sources/jaxws_src/src/com/sun/istack/internal/localization/LocalizableMessageFactory.java Thu Sep 22 02:57:13 2011 +0100 @@ -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); + } + +} diff -r c608b38af726 -r 78c175236707 sources/jaxws_src/src/com/sun/istack/internal/localization/Localizer.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/sources/jaxws_src/src/com/sun/istack/internal/localization/Localizer.java Thu Sep 22 02:57:13 2011 +0100 @@ -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(); + } + +} diff -r c608b38af726 -r 78c175236707 sources/jaxws_src/src/com/sun/istack/internal/ws/AnnotationProcessorFactoryImpl.java --- a/sources/jaxws_src/src/com/sun/istack/internal/ws/AnnotationProcessorFactoryImpl.java Thu Sep 22 02:44:43 2011 +0100 +++ b/sources/jaxws_src/src/com/sun/istack/internal/ws/AnnotationProcessorFactoryImpl.java Thu Sep 22 02:57:13 2011 +0100 @@ -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); } diff -r c608b38af726 -r 78c175236707 sources/jaxws_src/src/com/sun/tools/internal/jxc/ConfigReader.java --- a/sources/jaxws_src/src/com/sun/tools/internal/jxc/ConfigReader.java Thu Sep 22 02:44:43 2011 +0100 +++ b/sources/jaxws_src/src/com/sun/tools/internal/jxc/ConfigReader.java Thu Sep 22 02:57:13 2011 +0100 @@ -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; diff -r c608b38af726 -r 78c175236707 sources/jaxws_src/src/com/sun/tools/internal/jxc/MessageBundle.properties --- a/sources/jaxws_src/src/com/sun/tools/internal/jxc/MessageBundle.properties Thu Sep 22 02:44:43 2011 +0100 +++ b/sources/jaxws_src/src/com/sun/tools/internal/jxc/MessageBundle.properties Thu Sep 22 02:57:13 2011 +0100 @@ -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 ...] \n\ @@ -42,4 +42,3 @@ \ \ \ \ -episode : generate episode file for separate compilation\n\ \ \ \ \ -version : display version information\n\ \ \ \ \ -help : display this usage message - diff -r c608b38af726 -r 78c175236707 sources/jaxws_src/src/com/sun/tools/internal/jxc/Messages.java --- a/sources/jaxws_src/src/com/sun/tools/internal/jxc/Messages.java Thu Sep 22 02:44:43 2011 +0100 +++ b/sources/jaxws_src/src/com/sun/tools/internal/jxc/Messages.java Thu Sep 22 02:57:13 2011 +0100 @@ -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; diff -r c608b38af726 -r 78c175236707 sources/jaxws_src/src/com/sun/tools/internal/jxc/SchemaGenerator.java --- a/sources/jaxws_src/src/com/sun/tools/internal/jxc/SchemaGenerator.java Thu Sep 22 02:44:43 2011 +0100 +++ b/sources/jaxws_src/src/com/sun/tools/internal/jxc/SchemaGenerator.java Thu Sep 22 02:57:13 2011 +0100 @@ -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; diff -r c608b38af726 -r 78c175236707 sources/jaxws_src/src/com/sun/tools/internal/jxc/SchemaGeneratorFacade.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/sources/jaxws_src/src/com/sun/tools/internal/jxc/SchemaGeneratorFacade.java Thu Sep 22 02:57:13 2011 +0100 @@ -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/"); + } + } +} diff -r c608b38af726 -r 78c175236707 sources/jaxws_src/src/com/sun/tools/internal/jxc/apt/AnnotationParser.java --- a/sources/jaxws_src/src/com/sun/tools/internal/jxc/apt/AnnotationParser.java Thu Sep 22 02:44:43 2011 +0100 +++ b/sources/jaxws_src/src/com/sun/tools/internal/jxc/apt/AnnotationParser.java Thu Sep 22 02:57:13 2011 +0100 @@ -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; diff -r c608b38af726 -r 78c175236707 sources/jaxws_src/src/com/sun/tools/internal/jxc/apt/AnnotationProcessorFactoryImpl.java --- a/sources/jaxws_src/src/com/sun/tools/internal/jxc/apt/AnnotationProcessorFactoryImpl.java Thu Sep 22 02:44:43 2011 +0100 +++ b/sources/jaxws_src/src/com/sun/tools/internal/jxc/apt/AnnotationProcessorFactoryImpl.java Thu Sep 22 02:57:13 2011 +0100 @@ -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; diff -r c608b38af726 -r 78c175236707 sources/jaxws_src/src/com/sun/tools/internal/jxc/apt/Const.java --- a/sources/jaxws_src/src/com/sun/tools/internal/jxc/apt/Const.java Thu Sep 22 02:44:43 2011 +0100 +++ b/sources/jaxws_src/src/com/sun/tools/internal/jxc/apt/Const.java Thu Sep 22 02:57:13 2011 +0100 @@ -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; diff -r c608b38af726 -r 78c175236707 sources/jaxws_src/src/com/sun/tools/internal/jxc/apt/ErrorReceiverImpl.java --- a/sources/jaxws_src/src/com/sun/tools/internal/jxc/apt/ErrorReceiverImpl.java Thu Sep 22 02:44:43 2011 +0100 +++ b/sources/jaxws_src/src/com/sun/tools/internal/jxc/apt/ErrorReceiverImpl.java Thu Sep 22 02:57:13 2011 +0100 @@ -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; diff -r c608b38af726 -r 78c175236707 sources/jaxws_src/src/com/sun/tools/internal/jxc/apt/InlineAnnotationReaderImpl.java --- a/sources/jaxws_src/src/com/sun/tools/internal/jxc/apt/InlineAnnotationReaderImpl.java Thu Sep 22 02:44:43 2011 +0100 +++ b/sources/jaxws_src/src/com/sun/tools/internal/jxc/apt/InlineAnnotationReaderImpl.java Thu Sep 22 02:57:13 2011 +0100 @@ -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; diff -r c608b38af726 -r 78c175236707 sources/jaxws_src/src/com/sun/tools/internal/jxc/apt/MessageBundle.properties --- a/sources/jaxws_src/src/com/sun/tools/internal/jxc/apt/MessageBundle.properties Thu Sep 22 02:44:43 2011 +0100 +++ b/sources/jaxws_src/src/com/sun/tools/internal/jxc/apt/MessageBundle.properties Thu Sep 22 02:57:13 2011 +0100 @@ -31,4 +31,3 @@ OPERAND_MISSING = \ Option "{0}" is missing an operand. - diff -r c608b38af726 -r 78c175236707 sources/jaxws_src/src/com/sun/tools/internal/jxc/apt/Messages.java --- a/sources/jaxws_src/src/com/sun/tools/internal/jxc/apt/Messages.java Thu Sep 22 02:44:43 2011 +0100 +++ b/sources/jaxws_src/src/com/sun/tools/internal/jxc/apt/Messages.java Thu Sep 22 02:57:13 2011 +0100 @@ -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; diff -r c608b38af726 -r 78c175236707 sources/jaxws_src/src/com/sun/tools/internal/jxc/apt/Options.java --- a/sources/jaxws_src/src/com/sun/tools/internal/jxc/apt/Options.java Thu Sep 22 02:44:43 2011 +0100 +++ b/sources/jaxws_src/src/com/sun/tools/internal/jxc/apt/Options.java Thu Sep 22 02:57:13 2011 +0100 @@ -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; diff -r c608b38af726 -r 78c175236707 sources/jaxws_src/src/com/sun/tools/internal/jxc/apt/SchemaGenerator.java --- a/sources/jaxws_src/src/com/sun/tools/internal/jxc/apt/SchemaGenerator.java Thu Sep 22 02:44:43 2011 +0100 +++ b/sources/jaxws_src/src/com/sun/tools/internal/jxc/apt/SchemaGenerator.java Thu Sep 22 02:57:13 2011 +0100 @@ -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; diff -r c608b38af726 -r 78c175236707 sources/jaxws_src/src/com/sun/tools/internal/jxc/gen/config/Classes.java --- a/sources/jaxws_src/src/com/sun/tools/internal/jxc/gen/config/Classes.java Thu Sep 22 02:44:43 2011 +0100 +++ b/sources/jaxws_src/src/com/sun/tools/internal/jxc/gen/config/Classes.java Thu Sep 22 02:57:13 2011 +0100 @@ -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; } } diff -r c608b38af726 -r 78c175236707 sources/jaxws_src/src/com/sun/tools/internal/jxc/gen/config/Config.java --- a/sources/jaxws_src/src/com/sun/tools/internal/jxc/gen/config/Config.java Thu Sep 22 02:44:43 2011 +0100 +++ b/sources/jaxws_src/src/com/sun/tools/internal/jxc/gen/config/Config.java Thu Sep 22 02:57:13 2011 +0100 @@ -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; } } diff -r c608b38af726 -r 78c175236707 sources/jaxws_src/src/com/sun/tools/internal/jxc/gen/config/Schema.java --- a/sources/jaxws_src/src/com/sun/tools/internal/jxc/gen/config/Schema.java Thu Sep 22 02:44:43 2011 +0100 +++ b/sources/jaxws_src/src/com/sun/tools/internal/jxc/gen/config/Schema.java Thu Sep 22 02:57:13 2011 +0100 @@ -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; } } diff -r c608b38af726 -r 78c175236707 sources/jaxws_src/src/com/sun/tools/internal/jxc/gen/config/config.xsd --- a/sources/jaxws_src/src/com/sun/tools/internal/jxc/gen/config/config.xsd Thu Sep 22 02:44:43 2011 +0100 +++ b/sources/jaxws_src/src/com/sun/tools/internal/jxc/gen/config/config.xsd Thu Sep 22 02:57:13 2011 +0100 @@ -23,6 +23,8 @@ CA 95054 USA or visit www.sun.com if you need additional information or have any questions. --> + + diff -r c608b38af726 -r 78c175236707 sources/jaxws_src/src/com/sun/tools/internal/jxc/model/nav/APTNavigator.java --- a/sources/jaxws_src/src/com/sun/tools/internal/jxc/model/nav/APTNavigator.java Thu Sep 22 02:44:43 2011 +0100 +++ b/sources/jaxws_src/src/com/sun/tools/internal/jxc/model/nav/APTNavigator.java Thu Sep 22 02:57:13 2011 +0100 @@ -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) { diff -r c608b38af726 -r 78c175236707 sources/jaxws_src/src/com/sun/tools/internal/ws/Invoker.java --- a/sources/jaxws_src/src/com/sun/tools/internal/ws/Invoker.java Thu Sep 22 02:44:43 2011 +0100 +++ b/sources/jaxws_src/src/com/sun/tools/internal/ws/Invoker.java Thu Sep 22 02:57:13 2011 +0100 @@ -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 + } + } } diff -r c608b38af726 -r 78c175236707 sources/jaxws_src/src/com/sun/tools/internal/ws/api/TJavaGeneratorExtension.java --- a/sources/jaxws_src/src/com/sun/tools/internal/ws/api/TJavaGeneratorExtension.java Thu Sep 22 02:44:43 2011 +0100 +++ b/sources/jaxws_src/src/com/sun/tools/internal/ws/api/TJavaGeneratorExtension.java Thu Sep 22 02:57:13 2011 +0100 @@ -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 { /** diff -r c608b38af726 -r 78c175236707 sources/jaxws_src/src/com/sun/tools/internal/ws/api/WsgenExtension.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/sources/jaxws_src/src/com/sun/tools/internal/ws/api/WsgenExtension.java Thu Sep 22 02:57:13 2011 +0100 @@ -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 + * META-INF/services/com.sun.tools.internal.ws.api.WsgenExtension + * 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 { +} diff -r c608b38af726 -r 78c175236707 sources/jaxws_src/src/com/sun/tools/internal/ws/api/WsgenProtocol.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/sources/jaxws_src/src/com/sun/tools/internal/ws/api/WsgenProtocol.java Thu Sep 22 02:57:13 2011 +0100 @@ -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(); +} diff -r c608b38af726 -r 78c175236707 sources/jaxws_src/src/com/sun/tools/internal/ws/api/wsdl/TWSDLExtensible.java --- a/sources/jaxws_src/src/com/sun/tools/internal/ws/api/wsdl/TWSDLExtensible.java Thu Sep 22 02:44:43 2011 +0100 +++ b/sources/jaxws_src/src/com/sun/tools/internal/ws/api/wsdl/TWSDLExtensible.java Thu Sep 22 02:57:13 2011 +0100 @@ -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 { /** diff -r c608b38af726 -r 78c175236707 sources/jaxws_src/src/com/sun/tools/internal/ws/api/wsdl/TWSDLExtension.java --- a/sources/jaxws_src/src/com/sun/tools/internal/ws/api/wsdl/TWSDLExtension.java Thu Sep 22 02:44:43 2011 +0100 +++ b/sources/jaxws_src/src/com/sun/tools/internal/ws/api/wsdl/TWSDLExtension.java Thu Sep 22 02:57:13 2011 +0100 @@ -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 { /** diff -r c608b38af726 -r 78c175236707 sources/jaxws_src/src/com/sun/tools/internal/ws/api/wsdl/TWSDLExtensionHandler.java --- a/sources/jaxws_src/src/com/sun/tools/internal/ws/api/wsdl/TWSDLExtensionHandler.java Thu Sep 22 02:44:43 2011 +0100 +++ b/sources/jaxws_src/src/com/sun/tools/internal/ws/api/wsdl/TWSDLExtensionHandler.java Thu Sep 22 02:57:13 2011 +0100 @@ -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 { /** diff -r c608b38af726 -r 78c175236707 sources/jaxws_src/src/com/sun/tools/internal/ws/api/wsdl/TWSDLOperation.java --- a/sources/jaxws_src/src/com/sun/tools/internal/ws/api/wsdl/TWSDLOperation.java Thu Sep 22 02:44:43 2011 +0100 +++ b/sources/jaxws_src/src/com/sun/tools/internal/ws/api/wsdl/TWSDLOperation.java Thu Sep 22 02:57:13 2011 +0100 @@ -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{ /** diff -r c608b38af726 -r 78c175236707 sources/jaxws_src/src/com/sun/tools/internal/ws/api/wsdl/TWSDLParserContext.java --- a/sources/jaxws_src/src/com/sun/tools/internal/ws/api/wsdl/TWSDLParserContext.java Thu Sep 22 02:44:43 2011 +0100 +++ b/sources/jaxws_src/src/com/sun/tools/internal/ws/api/wsdl/TWSDLParserContext.java Thu Sep 22 02:57:13 2011 +0100 @@ -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 { diff -r c608b38af726 -r 78c175236707 sources/jaxws_src/src/com/sun/tools/internal/ws/package-info.java --- a/sources/jaxws_src/src/com/sun/tools/internal/ws/package-info.java Thu Sep 22 02:44:43 2011 +0100 +++ b/sources/jaxws_src/src/com/sun/tools/internal/ws/package-info.java Thu Sep 22 02:57:13 2011 +0100 @@ -24,7 +24,7 @@ */ /** - *

JAX-WS 2.0.1 Tools

+ *

JAX-WS 2.1 Tools

* 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 } * } *
diff -r c608b38af726 -r 78c175236707 sources/jaxws_src/src/com/sun/tools/internal/ws/processor/generator/GeneratorBase.java --- a/sources/jaxws_src/src/com/sun/tools/internal/ws/processor/generator/GeneratorBase.java Thu Sep 22 02:44:43 2011 +0100 +++ b/sources/jaxws_src/src/com/sun/tools/internal/ws/processor/generator/GeneratorBase.java Thu Sep 22 02:57:13 2011 +0100 @@ -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; } diff -r c608b38af726 -r 78c175236707 sources/jaxws_src/src/com/sun/tools/internal/ws/processor/generator/SeiGenerator.java --- a/sources/jaxws_src/src/com/sun/tools/internal/ws/processor/generator/SeiGenerator.java Thu Sep 22 02:44:43 2011 +0100 +++ b/sources/jaxws_src/src/com/sun/tools/internal/ws/processor/generator/SeiGenerator.java Thu Sep 22 02:57:13 2011 +0100 @@ -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) { diff -r c608b38af726 -r 78c175236707 sources/jaxws_src/src/com/sun/tools/internal/ws/processor/generator/ServiceGenerator.java --- a/sources/jaxws_src/src/com/sun/tools/internal/ws/processor/generator/ServiceGenerator.java Thu Sep 22 02:44:43 2011 +0100 +++ b/sources/jaxws_src/src/com/sun/tools/internal/ws/processor/generator/ServiceGenerator.java Thu Sep 22 02:57:13 2011 +0100 @@ -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); - - 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"); - } + //write getXyzPort() + writeDefaultGetPort(port, retType, cls); - 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 features 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); diff -r c608b38af726 -r 78c175236707 sources/jaxws_src/src/com/sun/tools/internal/ws/processor/generator/W3CAddressingJavaGeneratorExtension.java --- a/sources/jaxws_src/src/com/sun/tools/internal/ws/processor/generator/W3CAddressingJavaGeneratorExtension.java Thu Sep 22 02:44:43 2011 +0100 +++ b/sources/jaxws_src/src/com/sun/tools/internal/ws/processor/generator/W3CAddressingJavaGeneratorExtension.java Thu Sep 22 02:57:13 2011 +0100 @@ -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; diff -r c608b38af726 -r 78c175236707 sources/jaxws_src/src/com/sun/tools/internal/ws/processor/model/Port.java --- a/sources/jaxws_src/src/com/sun/tools/internal/ws/processor/model/Port.java Thu Sep 22 02:44:43 2011 +0100 +++ b/sources/jaxws_src/src/com/sun/tools/internal/ws/processor/model/Port.java Thu Sep 22 02:57:13 2011 +0100 @@ -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 operationsByName = new HashMap(); + public Map portTypes = new HashMap(); } diff -r c608b38af726 -r 78c175236707 sources/jaxws_src/src/com/sun/tools/internal/ws/processor/model/java/JavaMethod.java --- a/sources/jaxws_src/src/com/sun/tools/internal/ws/processor/model/java/JavaMethod.java Thu Sep 22 02:44:43 2011 +0100 +++ b/sources/jaxws_src/src/com/sun/tools/internal/ws/processor/model/java/JavaMethod.java Thu Sep 22 02:57:13 2011 +0100 @@ -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 parameters = new ArrayList(); private final List exceptions = new ArrayList(); + 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 getExceptions() { return exceptions.iterator(); } + + private String getUniqueName(String param){ + int parmNum = 0; + while(hasParameter(param)){ + param = param + Integer.toString(parmNum++); + } + return param; + } } diff -r c608b38af726 -r 78c175236707 sources/jaxws_src/src/com/sun/tools/internal/ws/processor/model/jaxb/JAXBType.java --- a/sources/jaxws_src/src/com/sun/tools/internal/ws/processor/model/jaxb/JAXBType.java Thu Sep 22 02:44:43 2011 +0100 +++ b/sources/jaxws_src/src/com/sun/tools/internal/ws/processor/model/jaxb/JAXBType.java Thu Sep 22 02:57:13 2011 +0100 @@ -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() { diff -r c608b38af726 -r 78c175236707 sources/jaxws_src/src/com/sun/tools/internal/ws/processor/modeler/annotation/WebServiceAP.java --- a/sources/jaxws_src/src/com/sun/tools/internal/ws/processor/modeler/annotation/WebServiceAP.java Thu Sep 22 02:44:43 2011 +0100 +++ b/sources/jaxws_src/src/com/sun/tools/internal/ws/processor/modeler/annotation/WebServiceAP.java Thu Sep 22 02:57:13 2011 +0100 @@ -210,6 +210,7 @@ public void onError(String message) { if (messager != null) { messager.printError(message); + throw new AbortException(); } else { throw new ModelerException(message); } diff -r c608b38af726 -r 78c175236707 sources/jaxws_src/src/com/sun/tools/internal/ws/processor/modeler/annotation/WebServiceVisitor.java --- a/sources/jaxws_src/src/com/sun/tools/internal/ws/processor/modeler/annotation/WebServiceVisitor.java Thu Sep 22 02:44:43 2011 +0100 +++ b/sources/jaxws_src/src/com/sun/tools/internal/ws/processor/modeler/annotation/WebServiceVisitor.java Thu Sep 22 02:57:13 2011 +0100 @@ -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 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) { diff -r c608b38af726 -r 78c175236707 sources/jaxws_src/src/com/sun/tools/internal/ws/processor/modeler/annotation/WebServiceWrapperGenerator.java --- a/sources/jaxws_src/src/com/sun/tools/internal/ws/processor/modeler/annotation/WebServiceWrapperGenerator.java Thu Sep 22 02:44:43 2011 +0100 +++ b/sources/jaxws_src/src/com/sun/tools/internal/ws/processor/modeler/annotation/WebServiceWrapperGenerator.java Thu Sep 22 02:57:13 2011 +0100 @@ -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(); diff -r c608b38af726 -r 78c175236707 sources/jaxws_src/src/com/sun/tools/internal/ws/processor/modeler/wsdl/ConsoleErrorReporter.java --- a/sources/jaxws_src/src/com/sun/tools/internal/ws/processor/modeler/wsdl/ConsoleErrorReporter.java Thu Sep 22 02:44:43 2011 +0100 +++ b/sources/jaxws_src/src/com/sun/tools/internal/ws/processor/modeler/wsdl/ConsoleErrorReporter.java Thu Sep 22 02:57:13 2011 +0100 @@ -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)); diff -r c608b38af726 -r 78c175236707 sources/jaxws_src/src/com/sun/tools/internal/ws/processor/modeler/wsdl/PseudoSchemaBuilder.java --- a/sources/jaxws_src/src/com/sun/tools/internal/ws/processor/modeler/wsdl/PseudoSchemaBuilder.java Thu Sep 22 02:44:43 2011 +0100 +++ b/sources/jaxws_src/src/com/sun/tools/internal/ws/processor/modeler/wsdl/PseudoSchemaBuilder.java Thu Sep 22 02:57:13 2011 +0100 @@ -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); diff -r c608b38af726 -r 78c175236707 sources/jaxws_src/src/com/sun/tools/internal/ws/processor/modeler/wsdl/WSDLModeler.java --- a/sources/jaxws_src/src/com/sun/tools/internal/ws/processor/modeler/wsdl/WSDLModeler.java Thu Sep 22 02:44:43 2011 +0100 +++ b/sources/jaxws_src/src/com/sun/tools/internal/ws/processor/modeler/wsdl/WSDLModeler.java Thu Sep 22 02:57:13 2011 +0100 @@ -74,7 +74,7 @@ public class WSDLModeler extends WSDLModelerBase { //map of wsdl:operation QName to child, as per BP it must be unique in a port - private final Map uniqueBodyBlocks = new HashMap(); + private final Map uniqueBodyBlocks = new HashMap(); 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(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); } - 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()); + + //Add additional headers + if (options.additionalHeaders) { + List additionalHeaders = new ArrayList(); + 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 outParams = new ArrayList(); + 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 params) { if (options.isExtensionMode()) return true; @@ -1460,6 +1518,19 @@ return null; } + private List getAdditionHeaderParts(Message message, boolean isInput){ + List headerParts = new ArrayList(); + List parts = message.getParts(); + List headers = getHeaderParts(isInput); + + for(MessagePart part: headers){ + if(parts.contains(part)) + continue; + headerParts.add(part); + } + return headerParts; + } + private List getHeaderPartsFromMessage(Message message, boolean isInput) { List headerParts = new ArrayList(); Iterator parts = message.parts(); @@ -1490,19 +1561,6 @@ return null; } - private List getHeaderPartsNotFromMessage(Message message, boolean isInput) { - List headerParts = new ArrayList(); - List parts = message.getParts(); - Iterator headers = getHeaderParts(isInput).iterator(); - while (headers.hasNext()) { - MessagePart part = headers.next(); - if (!parts.contains(part)) { - headerParts.add(part); - } - } - return headerParts; - } - private List 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, diff -r c608b38af726 -r 78c175236707 sources/jaxws_src/src/com/sun/tools/internal/ws/processor/modeler/wsdl/WSDLModelerBase.java --- a/sources/jaxws_src/src/com/sun/tools/internal/ws/processor/modeler/wsdl/WSDLModelerBase.java Thu Sep 22 02:44:43 2011 +0100 +++ b/sources/jaxws_src/src/com/sun/tools/internal/ws/processor/modeler/wsdl/WSDLModelerBase.java Thu Sep 22 02:57:13 2011 +0100 @@ -288,23 +288,11 @@ private boolean validateMimeContentPartNames(List 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(); diff -r c608b38af726 -r 78c175236707 sources/jaxws_src/src/com/sun/tools/internal/ws/processor/util/ClassNameCollector.java --- a/sources/jaxws_src/src/com/sun/tools/internal/ws/processor/util/ClassNameCollector.java Thu Sep 22 02:44:43 2011 +0100 +++ b/sources/jaxws_src/src/com/sun/tools/internal/ws/processor/util/ClassNameCollector.java Thu Sep 22 02:57:13 2011 +0100 @@ -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){ diff -r c608b38af726 -r 78c175236707 sources/jaxws_src/src/com/sun/tools/internal/ws/resources/GeneratorMessages.java --- a/sources/jaxws_src/src/com/sun/tools/internal/ws/resources/GeneratorMessages.java Thu Sep 22 02:44:43 2011 +0100 +++ b/sources/jaxws_src/src/com/sun/tools/internal/ws/resources/GeneratorMessages.java Thu Sep 22 02:57:13 2011 +0100 @@ -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); } diff -r c608b38af726 -r 78c175236707 sources/jaxws_src/src/com/sun/tools/internal/ws/resources/ModelMessages.java --- a/sources/jaxws_src/src/com/sun/tools/internal/ws/resources/ModelMessages.java Thu Sep 22 02:44:43 2011 +0100 +++ b/sources/jaxws_src/src/com/sun/tools/internal/ws/resources/ModelMessages.java Thu Sep 22 02:57:13 2011 +0100 @@ -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 false 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); } diff -r c608b38af726 -r 78c175236707 sources/jaxws_src/src/com/sun/tools/internal/ws/resources/ModelerMessages.java --- a/sources/jaxws_src/src/com/sun/tools/internal/ws/resources/ModelerMessages.java Thu Sep 22 02:44:43 2011 +0100 +++ b/sources/jaxws_src/src/com/sun/tools/internal/ws/resources/ModelerMessages.java Thu Sep 22 02:57:13 2011 +0100 @@ -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); } diff -r c608b38af726 -r 78c175236707 sources/jaxws_src/src/com/sun/tools/internal/ws/resources/WebserviceapMessages.java --- a/sources/jaxws_src/src/com/sun/tools/internal/ws/resources/WebserviceapMessages.java Thu Sep 22 02:44:43 2011 +0100 +++ b/sources/jaxws_src/src/com/sun/tools/internal/ws/resources/WebserviceapMessages.java Thu Sep 22 02:57:13 2011 +0100 @@ -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); + } + + /** + * The endpoint interface {0} does not match the interface {1}. + * + */ + public static String WEBSERVICEAP_ENDPOINTINTERFACES_DO_NOT_MATCH(Object arg0, Object arg1) { + return localizer.localize(localizableWEBSERVICEAP_ENDPOINTINTERFACES_DO_NOT_MATCH(arg0, arg1)); + } + + public static Localizable localizableWEBSERVICEAP_INVALID_WEBMETHOD_ELEMENT_WITH_EXCLUDE(Object arg0, Object arg1, Object arg2) { + return messageFactory.getMessage("webserviceap.invalid.webmethod.element.with.exclude", arg0, arg1, arg2); + } + + /** + * The @javax.jws.WebMethod.{0} element cannot be specified with the @javax.jws.WebMethod.exclude element. Class: {1} method: {2} + * + */ + public static String WEBSERVICEAP_INVALID_WEBMETHOD_ELEMENT_WITH_EXCLUDE(Object arg0, Object arg1, Object arg2) { + return localizer.localize(localizableWEBSERVICEAP_INVALID_WEBMETHOD_ELEMENT_WITH_EXCLUDE(arg0, arg1, arg2)); + } + + public static Localizable localizableWEBSERVICEAP_SEI_CANNOT_CONTAIN_CONSTANT_VALUES(Object arg0, Object arg1) { + return messageFactory.getMessage("webserviceap.sei.cannot.contain.constant.values", arg0, arg1); } /** - * RPC literal SOAPBindings must have parameterStyle WRAPPPED. Class: {0}. + * 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_RPC_LITERAL_PARAMETERS_MUST_HAVE_WEBPARAM(Object arg0, Object arg1, Object arg2) { + return messageFactory.getMessage("webserviceap.rpc.literal.parameters.must.have.webparam", arg0, arg1, arg2); + } + + /** + * All rpc literal parameters must have a WebParam annotation. Class: {0} method: {1} parameter {2} * */ - public static String WEBSERVICEAP_RPC_LITERAL_MUST_NOT_BE_BARE(Object arg0) { - return localizer.localize(localizableWEBSERVICEAP_RPC_LITERAL_MUST_NOT_BE_BARE(arg0)); + 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); } - 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); + /** + * 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); } /** - * The @javax.jws.WebMethod({0}) cannot be used on a service endpoint interface. Class: {1} method: {2} + * 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_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_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); } - public static Localizable localizableWEBSERVICEAP_WEBSERVICE_CLASS_IS_INNERCLASS_NOT_STATIC(Object arg0) { - return messageFactory.getMessage("webserviceap.webservice.class.is.innerclass.not.static", arg0); + /** + * 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); } /** - * Inner classes annotated with @javax.jws.WebService must be static. Class: {0} + * Failed to parse HandlerChain file. Class: {0}, file: {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_FAILED_TO_PARSE_HANDLERCHAIN_FILE(Object arg0, Object arg1) { + return localizer.localize(localizableWEBSERVICEAP_FAILED_TO_PARSE_HANDLERCHAIN_FILE(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_JAVA_TYPE_NOT_FOUND(Object arg0) { + return messageFactory.getMessage("webserviceap.java.typeNotFound", arg0); } /** - * Classes annotated with @javax.jws.WebService must not have abstract methods. Class: {0} Method: {1} + * 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_WEBSERVICE_METHOD_IS_ABSTRACT(Object arg0, Object arg1) { - return localizer.localize(localizableWEBSERVICEAP_WEBSERVICE_METHOD_IS_ABSTRACT(arg0, arg1)); + 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,40 +206,76 @@ return localizer.localize(localizableWEBSERVICEAP_WARNING(arg0)); } - 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); + 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); } /** - * SOAPBinding.Style.RPC binding annotations are not allowed on methods. Class: {0} Method: {1} + * Response wrapper bean names must be unique and must not clash with other generated classes. Class: {0} method {1} * */ - public static String WEBSERVICEAP_RPC_SOAPBINDING_NOT_ALLOWED_ON_METHOD(Object arg0, Object arg1) { - return localizer.localize(localizableWEBSERVICEAP_RPC_SOAPBINDING_NOT_ALLOWED_ON_METHOD(arg0, arg1)); + public static 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); } - public static Localizable localizableWEBSERVICEAP_COULD_NOT_FIND_HANDLERCHAIN(Object arg0, Object arg1) { - return messageFactory.getMessage("webserviceap.could.not.find.handlerchain", 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); } /** - * Could not find the handlerchain {0} in the handler file {1} + * modeler error: {0} * */ - public static String WEBSERVICEAP_COULD_NOT_FIND_HANDLERCHAIN(Object arg0, Object arg1) { - return localizer.localize(localizableWEBSERVICEAP_COULD_NOT_FIND_HANDLERCHAIN(arg0, arg1)); + public static String WEBSERVICEAP_NESTED_MODEL_ERROR(Object arg0) { + return localizer.localize(localizableWEBSERVICEAP_NESTED_MODEL_ERROR(arg0)); } - 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_ONEWAY_AND_OUT(Object arg0, Object arg1) { + return messageFactory.getMessage("webserviceap.oneway.and.out", arg0, arg1); } /** - * @javax.jws.Webservice annotated classes that do not belong to a package must have the @javax.jws.Webservice.targetNamespace element. Class: {0} + * @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_NO_PACKAGE_CLASS_MUST_HAVE_TARGETNAMESPACE(Object arg0) { - return localizer.localize(localizableWEBSERVICEAP_NO_PACKAGE_CLASS_MUST_HAVE_TARGETNAMESPACE(arg0)); + 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) { @@ -158,88 +290,40 @@ return localizer.localize(localizableWEBSERVICEAP_CLASS_NOT_FOUND(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); - } - - /** - * Document literal bare methods that do not have a return value must have a single OUT/INOUT parameter. Class: {0} Method: {1} - * - */ - public static String WEBSERVICEAP_DOC_BARE_NO_RETURN_AND_NO_OUT(Object arg0, Object arg1) { - return localizer.localize(localizableWEBSERVICEAP_DOC_BARE_NO_RETURN_AND_NO_OUT(arg0, arg1)); - } - - public static Localizable localizableWEBSERVICEAP_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_ENDPOINTINTEFACE_PLUS_ELEMENT(Object arg0) { + return messageFactory.getMessage("webserviceap.endpointinteface.plus.element", arg0); } /** - * Document literal bare methods must have a unique result name return type combination. Class {0} method: {1}, result name: {2} return type: {3} + * The @javax.jws.WebService.{0} element cannot be used in with @javax.jws.WebService.endpointInterface element. * */ - 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_DOC_BARE_NO_OUT(Object arg0, Object arg1) { - return messageFactory.getMessage("webserviceap.doc.bare.no.out", arg0, arg1); + public static String WEBSERVICEAP_ENDPOINTINTEFACE_PLUS_ELEMENT(Object arg0) { + return localizer.localize(localizableWEBSERVICEAP_ENDPOINTINTEFACE_PLUS_ELEMENT(arg0)); } - /** - * 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_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_CANNOT_COMBINE_HANDLERCHAIN_SOAPMESSAGEHANDLERS() { + return messageFactory.getMessage("webserviceap.cannot.combine.handlerchain.soapmessagehandlers"); } /** - * All rpc literal parameters must have a WebParam annotation. Class: {0} method: {1} parameter {2} + * You cannot specify both HanlderChain and SOAPMessageHandlers annotations * */ - 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 String WEBSERVICEAP_CANNOT_COMBINE_HANDLERCHAIN_SOAPMESSAGEHANDLERS() { + return localizer.localize(localizableWEBSERVICEAP_CANNOT_COMBINE_HANDLERCHAIN_SOAPMESSAGEHANDLERS()); } - public static Localizable localizableWEBSERVICEAP_MODEL_ALREADY_EXISTS() { - return messageFactory.getMessage("webserviceap.model.already.exists"); + public static Localizable localizableWEBSERVICEAP_WEBSERVICE_CLASS_IS_INNERCLASS_NOT_STATIC(Object arg0) { + return messageFactory.getMessage("webserviceap.webservice.class.is.innerclass.not.static", arg0); } /** - * 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} + * Inner classes annotated with @javax.jws.WebService must be static. Class: {0} * */ - 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 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) { @@ -254,52 +338,88 @@ return localizer.localize(localizableWEBSERVICEAP_NON_IN_PARAMETERS_MUST_BE_HOLDER(arg0, arg1, arg2)); } - public static Localizable localizableWEBSERVICEAP_FAILED_TO_FIND_HANDLERCHAIN_FILE(Object arg0, Object arg1) { - return messageFactory.getMessage("webserviceap.failed.to.find.handlerchain.file", arg0, arg1); + 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"); } /** - * Cannot find HandlerChain file. class: {0}, file: {1} + * Success * */ - public static String WEBSERVICEAP_FAILED_TO_FIND_HANDLERCHAIN_FILE(Object arg0, Object arg1) { - return localizer.localize(localizableWEBSERVICEAP_FAILED_TO_FIND_HANDLERCHAIN_FILE(arg0, arg1)); + public static 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); } - 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); + /** + * 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); } /** - * Operation names must be unique. Class: {0} method: {1} operation name: {2} + * Classes annotated with @javax.jws.WebService must not have abstract methods. 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 String WEBSERVICEAP_WEBSERVICE_METHOD_IS_ABSTRACT(Object arg0, Object arg1) { + return localizer.localize(localizableWEBSERVICEAP_WEBSERVICE_METHOD_IS_ABSTRACT(arg0, arg1)); } - public static Localizable localizableWEBSERVICEAP_METHOD_NOT_IMPLEMENTED(Object arg0, Object arg1, Object arg2) { - return messageFactory.getMessage("webserviceap.method.not.implemented", arg0, arg1, arg2); + 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); } /** - * Methods in an endpointInterface must be implemented in the implementation class. Interface Class:{0} Implementation Class:{1} Method: {2} + * 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_METHOD_NOT_IMPLEMENTED(Object arg0, Object arg1, Object arg2) { - return localizer.localize(localizableWEBSERVICEAP_METHOD_NOT_IMPLEMENTED(arg0, arg1, arg2)); + 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_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); + public static Localizable localizableWEBSERVICEAP_NO_WEBSERVICE_ENDPOINT_FOUND() { + return messageFactory.getMessage("webserviceap.no.webservice.endpoint.found"); } /** - * All WebParam annotations on header parameters must specify a name. Class: {0} method {1} paramter {2} + * A web service endpoint could not be found * */ - 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 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) { @@ -314,40 +434,220 @@ 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); + 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); } /** - * The method {1} of class {0} is annotated @Oneway but declares the exception {2} + * 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_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 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); } - public static Localizable localizableWEBSERVICEAP_ONEWAY_OPERATION_CANNOT_HAVE_HOLDERS(Object arg0, Object arg1) { - return messageFactory.getMessage("webserviceap.oneway.operation.cannot.have.holders", arg0, arg1); + /** + * 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"); } /** - * The method {1} of class {0} is annotated @Oneway but contains inout or out paramerters (javax.xml.ws.Holder) + * 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_ONEWAY_OPERATION_CANNOT_HAVE_HOLDERS(Object arg0, Object arg1) { - return localizer.localize(localizableWEBSERVICEAP_ONEWAY_OPERATION_CANNOT_HAVE_HOLDERS(arg0, arg1)); + 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); } - public static Localizable localizableWEBSERVICEAP_ONEWAY_AND_NOT_ONE_IN(Object arg0, Object arg1) { - return messageFactory.getMessage("webserviceap.oneway.and.not.one.in", arg0, arg1); + /** + * 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); } /** - * Document literal bare methods annotated with @javax.jws.Oneway must have one non-header IN parameter. Class: {0} Method: {1} + * SOAPBinding.Style.RPC binding annotations are not allowed on methods. Class: {0} Method: {1} + * + */ + public static String WEBSERVICEAP_RPC_SOAPBINDING_NOT_ALLOWED_ON_METHOD(Object arg0, Object arg1) { + return localizer.localize(localizableWEBSERVICEAP_RPC_SOAPBINDING_NOT_ALLOWED_ON_METHOD(arg0, arg1)); + } + + public static Localizable localizableWEBSERVICEAP_NO_PACKAGE_CLASS_MUST_HAVE_TARGETNAMESPACE(Object arg0) { + return messageFactory.getMessage("webserviceap.no.package.class.must.have.targetnamespace", arg0); + } + + /** + * @javax.jws.Webservice annotated classes that do not belong to a package must have the @javax.jws.Webservice.targetNamespace element. Class: {0} + * + */ + public static String WEBSERVICEAP_NO_PACKAGE_CLASS_MUST_HAVE_TARGETNAMESPACE(Object arg0) { + return localizer.localize(localizableWEBSERVICEAP_NO_PACKAGE_CLASS_MUST_HAVE_TARGETNAMESPACE(arg0)); + } + + public static Localizable localizableWEBSERVICEAP_ENDPOINTINTERFACE_HAS_NO_WEBSERVICE_ANNOTATION(Object arg0) { + return messageFactory.getMessage("webserviceap.endpointinterface.has.no.webservice.annotation", arg0); + } + + /** + * The endpoint interface {0} must have a WebService annotation * */ - public static String WEBSERVICEAP_ONEWAY_AND_NOT_ONE_IN(Object arg0, Object arg1) { - return localizer.localize(localizableWEBSERVICEAP_ONEWAY_AND_NOT_ONE_IN(arg0, arg1)); + 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); + } + + /** + * Could not find the handlerchain {0} in the handler file {1} + * + */ + public static String WEBSERVICEAP_COULD_NOT_FIND_HANDLERCHAIN(Object arg0, Object arg1) { + return localizer.localize(localizableWEBSERVICEAP_COULD_NOT_FIND_HANDLERCHAIN(arg0, arg1)); } public static Localizable localizableWEBSERVICEAP_RPC_ENCODED_NOT_SUPPORTED(Object arg0) { @@ -362,76 +662,40 @@ 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); + public static Localizable localizableWEBSERVICEAP_ERROR(Object arg0) { + return messageFactory.getMessage("webserviceap.error", arg0); } /** - * The type: {0} was not found in the mapping + * error: {0} * */ - 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); + public static String WEBSERVICEAP_ERROR(Object arg0) { + return localizer.localize(localizableWEBSERVICEAP_ERROR(arg0)); } - /** - * 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"); + public static Localizable localizableWEBSERVICEAP_ENDPOINTINTERFACE_CLASS_NOT_FOUND(Object arg0) { + return messageFactory.getMessage("webserviceap.endpointinterface.class.not.found", arg0); } /** - * A web service endpoint could not be found + * The endpointInterface class {0} could not be found * */ - public static String WEBSERVICEAP_NO_WEBSERVICE_ENDPOINT_FOUND() { - return localizer.localize(localizableWEBSERVICEAP_NO_WEBSERVICE_ENDPOINT_FOUND()); + public static String WEBSERVICEAP_ENDPOINTINTERFACE_CLASS_NOT_FOUND(Object arg0) { + return localizer.localize(localizableWEBSERVICEAP_ENDPOINTINTERFACE_CLASS_NOT_FOUND(arg0)); } - 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); + public static Localizable localizableWEBSERVICEAP_METHOD_NOT_IMPLEMENTED(Object arg0, Object arg1, Object arg2) { + return messageFactory.getMessage("webserviceap.method.not.implemented", 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} + * Methods in an endpointInterface must be implemented in the implementation class. Interface Class:{0} Implementation Class:{1} Method: {2} * */ - 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 String WEBSERVICEAP_METHOD_NOT_IMPLEMENTED(Object arg0, Object arg1, Object arg2) { + return localizer.localize(localizableWEBSERVICEAP_METHOD_NOT_IMPLEMENTED(arg0, arg1, arg2)); } public static Localizable localizableWEBSERVICE_ENCODED_NOT_SUPPORTED(Object arg0, Object arg1) { @@ -446,78 +710,6 @@ 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); } @@ -530,340 +722,28 @@ 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); + public static Localizable localizableWEBSERVICEAP_FAILED_TO_FIND_HANDLERCHAIN_FILE(Object arg0, Object arg1) { + return messageFactory.getMessage("webserviceap.failed.to.find.handlerchain.file", 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} + * Cannot find HandlerChain file. class: {0}, file: {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); + public static String WEBSERVICEAP_FAILED_TO_FIND_HANDLERCHAIN_FILE(Object arg0, Object arg1) { + return localizer.localize(localizableWEBSERVICEAP_FAILED_TO_FIND_HANDLERCHAIN_FILE(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); + 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); } /** - * 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. + * 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_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)); + } + } diff -r c608b38af726 -r 78c175236707 sources/jaxws_src/src/com/sun/tools/internal/ws/resources/WscompileMessages.java --- a/sources/jaxws_src/src/com/sun/tools/internal/ws/resources/WscompileMessages.java Thu Sep 22 02:44:43 2011 +0100 +++ b/sources/jaxws_src/src/com/sun/tools/internal/ws/resources/WscompileMessages.java Thu Sep 22 02:57:13 2011 +0100 @@ -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_REDIRECT(arg0, arg1)); + } + + public static Localizable localizableWSIMPORT_AUTH_INFO_NEEDED(Object arg0, Object arg1, Object arg2) { + return messageFactory.getMessage("wsimport.authInfoNeeded", arg0, arg1, arg2); + } + + /** + * {0}, "{1}" needs authorization, please provide authorization file with read access at {2} or use -Xauthfile to give the authorization file and on each line provide authorization information using this format : http[s]://user:password@host:port// + * + */ + public static String WSIMPORT_AUTH_INFO_NEEDED(Object arg0, Object arg1, Object arg2) { + return localizer.localize(localizableWSIMPORT_AUTH_INFO_NEEDED(arg0, arg1, arg2)); + } + public static Localizable localizableWSGEN_USAGE_EXAMPLES() { return messageFactory.getMessage("wsgen.usage.examples"); } @@ -142,6 +166,27 @@ return localizer.localize(localizableWSIMPORT_MISSING_FILE()); } + public static Localizable localizableWSIMPORT_USAGE_EXTENSIONS() { + return messageFactory.getMessage("wsimport.usage.extensions"); + } + + /** + * + * Extensions: + * -XadditionalHeaders map headers not bound to request or response message to + * Java method parameters + * -Xauthfile file to carry authorization information in the format + * http://username:password@example.org/stock?wsdl + * -Xdebug print debug information + * -Xno-addressing-databinding enable binding of W3C EndpointReferenceType to Java + * -Xnocompile do not compile generated Java files + * + * + */ + public static String WSIMPORT_USAGE_EXTENSIONS() { + return localizer.localize(localizableWSIMPORT_USAGE_EXTENSIONS()); + } + public static Localizable localizableWSIMPORT_USAGE(Object arg0) { return messageFactory.getMessage("wsimport.usage", arg0); } @@ -221,8 +266,8 @@ * -p specifies the target package * -quiet suppress wsimport output * -s specify where to place generated source files - * -target generate code as per the given JAXWS specification version. - * version 2.0 will generate compliant code for JAXWS 2.0 spec. + * -target generate code as per the given JAXWS spec version + * e.g. 2.0 will generate compliant code for JAXWS 2.0 spec * -verbose output messages about what the compiler is doing * -version print version information * -wsdllocation @WebServiceClient.wsdlLocation value @@ -245,6 +290,44 @@ return localizer.localize(localizableWSCOMPILE_ERROR(arg0)); } + public static Localizable localizableWSGEN_PROTOCOL_WITHOUT_EXTENSION(Object arg0) { + return messageFactory.getMessage("wsgen.protocol.without.extension", arg0); + } + + /** + * The optional protocol "{0}" must be used in conjunction with the "-extension" option. + * + */ + public static String WSGEN_PROTOCOL_WITHOUT_EXTENSION(Object arg0) { + return localizer.localize(localizableWSGEN_PROTOCOL_WITHOUT_EXTENSION(arg0)); + } + + public static Localizable localizableWSIMPORT_COMPILING_CODE() { + return messageFactory.getMessage("wsimport.CompilingCode"); + } + + /** + * + * compiling code... + * + * + */ + public static String WSIMPORT_COMPILING_CODE() { + return localizer.localize(localizableWSIMPORT_COMPILING_CODE()); + } + + public static Localizable localizableWSIMPORT_READING_AUTH_FILE(Object arg0) { + return messageFactory.getMessage("wsimport.readingAuthFile", arg0); + } + + /** + * Trying to read authorization file : "{0}"... + * + */ + public static String WSIMPORT_READING_AUTH_FILE(Object arg0) { + return localizer.localize(localizableWSIMPORT_READING_AUTH_FILE(arg0)); + } + public static Localizable localizableWSGEN_NO_WEBSERVICES_CLASS(Object arg0) { return messageFactory.getMessage("wsgen.no.webservices.class", arg0); } @@ -281,6 +364,18 @@ return localizer.localize(localizableWSCOMPILE_INFO(arg0)); } + public static Localizable localizableWSIMPORT_MAX_REDIRECT_ATTEMPT() { + return messageFactory.getMessage("wsimport.maxRedirectAttempt"); + } + + /** + * Can not get a WSDL maximum number of redirects(5) reached + * + */ + public static String WSIMPORT_MAX_REDIRECT_ATTEMPT() { + return localizer.localize(localizableWSIMPORT_MAX_REDIRECT_ATTEMPT()); + } + public static Localizable localizableWSIMPORT_WARNING_MESSAGE(Object arg0) { return messageFactory.getMessage("wsimport.WarningMessage", arg0); } @@ -324,6 +419,7 @@ /** * generating code... * + * */ public static String WSIMPORT_GENERATING_CODE() { return localizer.localize(localizableWSIMPORT_GENERATING_CODE()); @@ -389,6 +485,30 @@ return localizer.localize(localizableWSIMPORT_NO_SUCH_JAXB_OPTION(arg0)); } + public static Localizable localizableWSIMPORT_AUTH_FILE_NOT_FOUND(Object arg0, Object arg1) { + return messageFactory.getMessage("wsimport.authFileNotFound", arg0, arg1); + } + + /** + * Authorization file "{0}" not found. If the WSDL access needs Basic Authentication, please provide authorization file with read access at {1} or use -Xauthfile to give the authorization file and on each line provide authorization information using this format : http[s]://user:password@host:port// + * + */ + public static String WSIMPORT_AUTH_FILE_NOT_FOUND(Object arg0, Object arg1) { + return localizer.localize(localizableWSIMPORT_AUTH_FILE_NOT_FOUND(arg0, arg1)); + } + + public static Localizable localizableWSIMPORT_DEBUG_MESSAGE(Object arg0) { + return messageFactory.getMessage("wsimport.DebugMessage", arg0); + } + + /** + * [DEBUG] {0} + * + */ + public static String WSIMPORT_DEBUG_MESSAGE(Object arg0) { + return localizer.localize(localizableWSIMPORT_DEBUG_MESSAGE(arg0)); + } + public static Localizable localizableWSGEN_COULD_NOT_CREATE_FILE(Object arg0) { return messageFactory.getMessage("wsgen.could.not.create.file", arg0); } @@ -413,8 +533,8 @@ return localizer.localize(localizableWSGEN_WSDL_ARG_NO_GENWSDL(arg0)); } - public static Localizable localizableWSGEN_HELP(Object arg0) { - return messageFactory.getMessage("wsgen.help", arg0); + public static Localizable localizableWSGEN_HELP(Object arg0, Object arg1, Object arg2) { + return messageFactory.getMessage("wsgen.help", arg0, arg1, arg2); } /** @@ -436,18 +556,20 @@ * -s specify where to place generated source files * -verbose output messages about what the compiler is doing * -version print version information - * -wsdl[:protocol] generate a WSDL file. The protocol is optional. - * Valid protocols are soap1.1 and Xsoap1.2, the default - * is soap1.1. Xsoap1.2 is not standard and can only be - * used in conjunction with the -extension option + * -wsdl[:protocol] generate a WSDL file. The protocol is optional. + * Valid protocols are {1}, + * the default is soap1.1. + * The non stanadard protocols {2} + * can only be used in conjunction with the + * -extension option. * -servicename specify the Service name to use in the generated WSDL * Used in conjunction with the -wsdl option. * -portname specify the Port name to use in the generated WSDL * Used in conjunction with the -wsdl option. * */ - public static String WSGEN_HELP(Object arg0) { - return localizer.localize(localizableWSGEN_HELP(arg0)); + public static String WSGEN_HELP(Object arg0, Object arg1, Object arg2) { + return localizer.localize(localizableWSGEN_HELP(arg0, arg1, arg2)); } public static Localizable localizableWSIMPORT_INFO_MESSAGE(Object arg0) { @@ -474,6 +596,18 @@ return localizer.localize(localizableWSGEN_SOAP_12_WITHOUT_EXTENSION()); } + public static Localizable localizableWSIMPORT_ILLEGAL_AUTH_INFO(Object arg0) { + return messageFactory.getMessage("wsimport.ILLEGAL_AUTH_INFO", arg0); + } + + /** + * "{0}" is not a valid authorization information format. The format is http[s]://user:password@host:port//. + * + */ + public static String WSIMPORT_ILLEGAL_AUTH_INFO(Object arg0) { + return localizer.localize(localizableWSIMPORT_ILLEGAL_AUTH_INFO(arg0)); + } + public static Localizable localizableWSCOMPILE_COMPILATION_FAILED() { return messageFactory.getMessage("wscompile.compilationFailed"); } @@ -546,6 +680,18 @@ return localizer.localize(localizableWSIMPORT_NO_WSDL(arg0)); } + public static Localizable localizableWSIMPORT_AUTH_INFO_LINENO(Object arg0, Object arg1) { + return messageFactory.getMessage("wsimport.AUTH_INFO_LINENO", arg0, arg1); + } + + /** + * "line {0} of {1} + * + */ + public static String WSIMPORT_AUTH_INFO_LINENO(Object arg0, Object arg1) { + return localizer.localize(localizableWSIMPORT_AUTH_INFO_LINENO(arg0, arg1)); + } + public static Localizable localizableWSGEN_USAGE(Object arg0) { return messageFactory.getMessage("wsgen.usage", arg0); } diff -r c608b38af726 -r 78c175236707 sources/jaxws_src/src/com/sun/tools/internal/ws/resources/WsdlMessages.java --- a/sources/jaxws_src/src/com/sun/tools/internal/ws/resources/WsdlMessages.java Thu Sep 22 02:44:43 2011 +0100 +++ b/sources/jaxws_src/src/com/sun/tools/internal/ws/resources/WsdlMessages.java Thu Sep 22 02:57:13 2011 +0100 @@ -55,37 +55,39 @@ } /** - * wsdl:binding "{0}" referenced by wsdl:port "{1}", but its not found in the wsdl + * wsdl:binding "{0}" referenced by wsdl:port "{1}", but it's not found in the wsdl * */ public static String ENTITY_NOT_FOUND_BINDING(Object arg0, Object arg1) { return localizer.localize(localizableENTITY_NOT_FOUND_BINDING(arg0, arg1)); } + public static Localizable localizablePARSING_UNABLE_TO_GET_METADATA(Object arg0, Object arg1) { + return messageFactory.getMessage("parsing.unableToGetMetadata", arg0, arg1); + } + + /** + * {0} + * + * {1} + * + */ + public static String PARSING_UNABLE_TO_GET_METADATA(Object arg0, Object arg1) { + return localizer.localize(localizablePARSING_UNABLE_TO_GET_METADATA(arg0, arg1)); + } + public static Localizable localizablePARSING_PARSE_FAILED() { return messageFactory.getMessage("Parsing.ParseFailed"); } /** - * Failed to parse the WSDL. + * Failed to parse the WSDL. * */ public static String PARSING_PARSE_FAILED() { return localizer.localize(localizablePARSING_PARSE_FAILED()); } - public static Localizable localizablePARSING_UNABLE_TO_GET_METADATA(Object arg0) { - return messageFactory.getMessage("parsing.unableToGetMetadata", arg0); - } - - /** - * Unable to get Metadata from: {0} - * - */ - public static String PARSING_UNABLE_TO_GET_METADATA(Object arg0) { - return localizer.localize(localizablePARSING_UNABLE_TO_GET_METADATA(arg0)); - } - public static Localizable localizableVALIDATION_INVALID_PREFIX(Object arg0) { return messageFactory.getMessage("validation.invalidPrefix", arg0); } @@ -151,7 +153,7 @@ } /** - * wsdl:portType "{0}" referenced by wsdl:binding "{1}", but its not found in the wsdl + * wsdl:portType "{0}" referenced by wsdl:binding "{1}", but it's not found in the wsdl * */ public static String ENTITY_NOT_FOUND_PORT_TYPE(Object arg0, Object arg1) { @@ -199,7 +201,7 @@ } /** - * Both jaxws:version and version are present + * Both jaxws:version and version are present * */ public static String INTERNALIZER_TWO_VERSION_ATTRIBUTES() { @@ -212,7 +214,7 @@ /** * Invalid WSDL, duplicate parts in a wsdl:message is not allowed. - * wsdl:message {0} has duplicated part name: "{1}" + * wsdl:message {0} has a duplicated part name: "{1}" * */ public static String VALIDATION_DUPLICATE_PART_NAME(Object arg0, Object arg1) { @@ -248,7 +250,7 @@ } /** - * found unexpected non whitespace text: "{0}" + * found unexpected non-whitespace text: "{0}" * */ public static String PARSING_NON_WHITESPACE_TEXT_FOUND(Object arg0) { @@ -260,7 +262,7 @@ } /** - * No target found for the wsdlLocation: {0} + * No target found for the wsdlLocation: {0} * */ public static String INTERNALIZER_TARGET_NOT_FOUND(Object arg0) { @@ -344,7 +346,7 @@ } /** - * JAXWS version attribute must be "2.0" + * JAXWS version attribute must be "2.0" * */ public static String INTERNALIZER_INCORRECT_VERSION() { @@ -399,6 +401,20 @@ return localizer.localize(localizablePARSING_INCORRECT_ROOT_ELEMENT(arg0, arg1, arg2, arg3)); } + public static Localizable localizableTRY_WITH_MEX(Object arg0) { + return messageFactory.getMessage("try.with.mex", arg0); + } + + /** + * {0} + * + * retrying with MEX... + * + */ + public static String TRY_WITH_MEX(Object arg0) { + return localizer.localize(localizableTRY_WITH_MEX(arg0)); + } + public static Localizable localizableVALIDATION_MISSING_REQUIRED_ATTRIBUTE(Object arg0, Object arg1) { return messageFactory.getMessage("validation.missingRequiredAttribute", arg0, arg1); } @@ -440,7 +456,7 @@ } /** - * not an external binding file. The root element must be '{'http://java.sun.com/xml/ns/jaxws'}'bindings but it is '{'{0}'}'{1} + * not an external binding file. The root element must be '{'http://java.sun.com/xml/ns/jaxws'}'bindings but it is '{'{0}'}'{1} * */ public static String PARSER_NOT_A_BINDING_FILE(Object arg0, Object arg1) { @@ -548,7 +564,7 @@ } /** - * Unable to parse "{0}" : {1} + * Unable to parse "{0}" : {1} * */ public static String ABSTRACT_REFERENCE_FINDER_IMPL_UNABLE_TO_PARSE(Object arg0, Object arg1) { @@ -596,7 +612,7 @@ } /** - * XPath evaluation of "{0}" results in empty target node + * XPath evaluation of "{0}" results in an empty target node * */ public static String INTERNALIZER_X_PATH_EVALUATES_TO_NO_TARGET(Object arg0) { @@ -620,7 +636,7 @@ } /** - * Ignoring customization: "{0}", it has no namespace. It must belong to the customization namespace. + * Ignoring customization: "{0}", because it has no namespace. It must belong to the customization namespace. * */ public static String INVALID_CUSTOMIZATION_NAMESPACE(Object arg0) { @@ -687,28 +703,28 @@ return localizer.localize(localizableVALIDATION_INCORRECT_TARGET_NAMESPACE(arg0, arg1)); } - public static Localizable localizableENTITY_NOT_FOUND_BY_Q_NAME(Object arg0, Object arg1) { - return messageFactory.getMessage("entity.notFoundByQName", arg0, arg1); + public static Localizable localizableENTITY_NOT_FOUND_BY_Q_NAME(Object arg0, Object arg1, Object arg2) { + return messageFactory.getMessage("entity.notFoundByQName", arg0, arg1, arg2); } /** - * invalid entity name: "{0}" (in namespace: "{1}") + * {0} "{1}" not found in the wsdl: {2} * */ - public static String ENTITY_NOT_FOUND_BY_Q_NAME(Object arg0, Object arg1) { - return localizer.localize(localizableENTITY_NOT_FOUND_BY_Q_NAME(arg0, arg1)); + public static String ENTITY_NOT_FOUND_BY_Q_NAME(Object arg0, Object arg1, Object arg2) { + return localizer.localize(localizableENTITY_NOT_FOUND_BY_Q_NAME(arg0, arg1, arg2)); } - public static Localizable localizableINVALID_WSDL(Object arg0) { - return messageFactory.getMessage("invalid.wsdl", arg0); + public static Localizable localizableINVALID_WSDL(Object arg0, Object arg1, Object arg2, Object arg3) { + return messageFactory.getMessage("invalid.wsdl", arg0, arg1, arg2, arg3); } /** - * "{0} does not look like a WSDL document, retrying with MEX..." + * Invalid WSDL {0}, expected {1} found {2} at (line {3}) * */ - public static String INVALID_WSDL(Object arg0) { - return localizer.localize(localizableINVALID_WSDL(arg0)); + public static String INVALID_WSDL(Object arg0, Object arg1, Object arg2, Object arg3) { + return localizer.localize(localizableINVALID_WSDL(arg0, arg1, arg2, arg3)); } public static Localizable localizableVALIDATION_UNSUPPORTED_SCHEMA_FEATURE(Object arg0) { @@ -788,7 +804,7 @@ } /** - * Target node is not an element + * Target node is not an element * */ public static String INTERNALIZER_TARGET_NOT_AN_ELEMENT() { @@ -860,7 +876,7 @@ } /** - * Not a WSI-BP compliant WSDL (R2001, R2004). xsd:import must not import XML Schema definition emmbedded inline within WSDLDocument. + * Not a WSI-BP compliant WSDL (R2001, R2004). xsd:import must not import XML Schema definitions embedded inline within the WSDL document. * */ public static String WARNING_WSI_R_2004() { @@ -872,7 +888,7 @@ } /** - * Not a WSI-BP compliant WSDL (R2003). xsd:import must only be used inside xsd:schema element. + * Not a WSI-BP compliant WSDL (R2003). xsd:import must only be used inside xsd:schema elements. * */ public static String WARNING_WSI_R_2003() { @@ -884,7 +900,7 @@ } /** - * Not a WSI-BP compliant WSDL (R2002). wsdl:import must not be used to import XML Schema embedded in the WSDL document. Expected wsdl namesapce: {0}, found: {1} + * Not a WSI-BP compliant WSDL (R2002). wsdl:import must not be used to import XML Schema embedded in the WSDL document. Expected wsdl namespace: {0}, found: {1} * */ public static String WARNING_WSI_R_2002(Object arg0, Object arg1) { @@ -903,16 +919,28 @@ return localizer.localize(localizablePARSING_ELEMENT_OR_TYPE_REQUIRED(arg0)); } - public static Localizable localizableWARNING_WSI_R_2001(Object arg0) { - return messageFactory.getMessage("warning.wsi.r2001", arg0); + public static Localizable localizableWARNING_WSI_R_2001() { + return messageFactory.getMessage("warning.wsi.r2001"); } /** - * Not a WSI-BP compliant WSDL (R2001, R2002). wsdl:import must only import WSDL document. Its trying to import: "{0}" + * Not a WSI-BP compliant WSDL (R2001, R2002). wsdl:import must import only WSDL documents. It's trying to import: "{0}" * */ - public static String WARNING_WSI_R_2001(Object arg0) { - return localizer.localize(localizableWARNING_WSI_R_2001(arg0)); + public static String WARNING_WSI_R_2001() { + return localizer.localize(localizableWARNING_WSI_R_2001()); + } + + public static Localizable localizableFILE_NOT_FOUND(Object arg0) { + return messageFactory.getMessage("file.not.found", arg0); + } + + /** + * {0} is unreachable + * + */ + public static String FILE_NOT_FOUND(Object arg0) { + return localizer.localize(localizableFILE_NOT_FOUND(arg0)); } public static Localizable localizableVALIDATION_INVALID_SIMPLE_TYPE_IN_ELEMENT(Object arg0, Object arg1) { @@ -944,13 +972,27 @@ } /** - * JAXWS version attribute must be present + * JAXWS version attribute must be present * */ public static String INTERNALIZER_VERSION_NOT_PRESENT() { return localizer.localize(localizableINTERNALIZER_VERSION_NOT_PRESENT()); } + public static Localizable localizableFAILED_NOSERVICE(Object arg0) { + return messageFactory.getMessage("failed.noservice", arg0); + } + + /** + * failed.noservice=Could not find wsdl:service in the provided WSDL(s): + * + * {0} At least one WSDL with at least one service definition needs to be provided. + * + */ + public static String FAILED_NOSERVICE(Object arg0) { + return localizer.localize(localizableFAILED_NOSERVICE(arg0)); + } + public static Localizable localizablePARSING_TOO_MANY_ELEMENTS(Object arg0, Object arg1, Object arg2) { return messageFactory.getMessage("parsing.tooManyElements", arg0, arg1, arg2); } @@ -968,7 +1010,7 @@ } /** - * "{0}" is not a part of this compilation. Is this a mistake for "{1}"? + * "{0}" is not a part of this compilation. Is this a mistake for "{1}"? * */ public static String INTERNALIZER_INCORRECT_SCHEMA_REFERENCE(Object arg0, Object arg1) { diff -r c608b38af726 -r 78c175236707 sources/jaxws_src/src/com/sun/tools/internal/ws/resources/configuration.properties --- a/sources/jaxws_src/src/com/sun/tools/internal/ws/resources/configuration.properties Thu Sep 22 02:44:43 2011 +0100 +++ b/sources/jaxws_src/src/com/sun/tools/internal/ws/resources/configuration.properties Thu Sep 22 02:57:13 2011 +0100 @@ -25,4 +25,3 @@ configuration.invalidElement=invalid element \"{2}\" in file \"{0}\" (line {1}) configuration.notBindingFile=Ignoring: binding file "\"{0}\". It is not a jaxws or a jaxb binding file. - diff -r c608b38af726 -r 78c175236707 sources/jaxws_src/src/com/sun/tools/internal/ws/resources/generator.properties --- a/sources/jaxws_src/src/com/sun/tools/internal/ws/resources/generator.properties Thu Sep 22 02:44:43 2011 +0100 +++ b/sources/jaxws_src/src/com/sun/tools/internal/ws/resources/generator.properties Thu Sep 22 02:57:13 2011 +0100 @@ -32,4 +32,5 @@ #IndentingWriter generator.indentingwriter.charset.cantencode=WSDL has some characters which native java encoder can''t encode: \"{0}\" - +generator.sei.classAlreadyExist=Could not generate SEI, class: {0} already exists. Rename wsdl:portType \"{1}\" using JAX-WS customization +generator.service.classAlreadyExist=Could not generate Service, class: {0} already exists. Rename wsdl:Service \"{1}\" using JAX-WS customization diff -r c608b38af726 -r 78c175236707 sources/jaxws_src/src/com/sun/tools/internal/ws/resources/javacompiler.properties --- a/sources/jaxws_src/src/com/sun/tools/internal/ws/resources/javacompiler.properties Thu Sep 22 02:44:43 2011 +0100 +++ b/sources/jaxws_src/src/com/sun/tools/internal/ws/resources/javacompiler.properties Thu Sep 22 02:57:13 2011 +0100 @@ -29,4 +29,3 @@ javacompiler.classpath.error={0} is not available in the classpath, requires Sun's JDK version 5.0 or latter. javacompiler.nosuchmethod.error=There is no such method {0} available, requires Sun's JDK version 5.0 or latter. javacompiler.error=error : {0}. - diff -r c608b38af726 -r 78c175236707 sources/jaxws_src/src/com/sun/tools/internal/ws/resources/model.properties --- a/sources/jaxws_src/src/com/sun/tools/internal/ws/resources/model.properties Thu Sep 22 02:44:43 2011 +0100 +++ b/sources/jaxws_src/src/com/sun/tools/internal/ws/resources/model.properties Thu Sep 22 02:57:13 2011 +0100 @@ -58,7 +58,6 @@ model.uniqueness=uniqueness constraint violation model.part.notUnique=parts in wsdl:message \"{0}\", reference \"{1}\", they must reference unique global elements. -model.parameter.notunique=Failed to generate Java signature: duplicate parameter names {0}. Use JAXWS binding customization to rename the wsdl:part \"{1}\" model.exception.notunique=Failed to generate Java signature: duplicate exception names {0}. Use JAXWS binding customization to rename the wsdl:part \"{1}\" model.uniqueness.javastructuretype=uniqueness constraint violation, duplicate member \"{0}\" added to JavaStructureType \"{1}\" model.parent.type.already.set=parent of type \"{0}\" already set to \"{1}\", new value = \"{2}\" @@ -78,15 +77,16 @@ model.arraywrapper.no.subtypes=LiteralArrayWrapper cannot have subtypes model.arraywrapper.no.content.member=LiteralArrayWrapper cannot have a content member model.complexType.simpleContent.reservedName=invalid attribute name: "_value" in complexType: \"{0}\", _value is JAXWS reserved name, this name is generated in the generated javabean class to hold content value in the generated javabean class for complexType/simpleContent. +model.parameter.notunique.wrapper=Failed to generate Java signature: duplicate parameter name \"{0}\". Try one of these\n\t1. Use JAXWS binding customization to rename the wsdl:part \"{1}\"\n\t2. Run wsimport with -extension switch.\n\t3. This is wrapper style operation, to resolve parameter name conflict, you can also try disabling wrapper style by using false wsdl customization. +model.parameter.notunique=Failed to generate Java signature: duplicate parameter name \"{0}\". Try one of these\n\t1. Use JAXWS binding customization to rename the wsdl:part \"{1}\"\n\t2. Run wsimport with -extension switch. -//JAXWS 2.0 +#JAXWS 2.0 model.schema.elementNotFound=Element \"{0}\" not found. model.schema.jaxbException.message="{0}" model.saxparser.exception:{0}\n{1} ConsoleErrorReporter.UnknownLocation = \ - unknown location + unknown location ConsoleErrorReporter.LineXOfY = \ - \ \ line {0} of {1} - + \ \ line {0} of {1} diff -r c608b38af726 -r 78c175236707 sources/jaxws_src/src/com/sun/tools/internal/ws/resources/modeler.properties --- a/sources/jaxws_src/src/com/sun/tools/internal/ws/resources/modeler.properties Thu Sep 22 02:44:43 2011 +0100 +++ b/sources/jaxws_src/src/com/sun/tools/internal/ws/resources/modeler.properties Thu Sep 22 02:57:13 2011 +0100 @@ -65,9 +65,9 @@ wsdlmodeler.warning.noPortsInService=Service \"{0}\" does not contain any usable ports. try running wsimport with -extension switch. wsdlmodeler.warning.noOperationsInPort=Port \"{0}\" does not contain any usable operations wsdlmodeler.warning.ignoringNonSOAPPort=ignoring port \"{0}\": not a standard SOAP port. try running wsimport with -extension switch. -wsdlmodeler.warning.nonSOAPPort=port \"{0}\": not a standard SOAP port. The generated artifacts may not work with JAXWS runtime. +wsdlmodeler.warning.nonSOAPPort=port \"{0}\": not a standard SOAP port. The generated artifacts may not work with JAXWS runtime. wsdlmodeler.warning.ignoringNonSOAPPort.noAddress=ignoring port \"{0}\": no SOAP address specified. try running wsimport with -extension switch. -wsdlmodeler.warning.noSOAPAddress=port \"{0}\" is not a SOAP port, it has no soap:address +wsdlmodeler.warning.noSOAPAddress=port \"{0}\" is not a SOAP port, it has no soap:address wsdlmodeler.warning.ignoringSOAPBinding.nonHTTPTransport:ignoring SOAP port \"{0}\": unrecognized transport. try running wsimport with -extension switch. #BP1.1 R2705 @@ -189,7 +189,7 @@ mimemodeler.invalidMimePart.nameNotAllowed=name attribute on wsdl:part in Operation \"{0}\" is ignored. Its not allowed as per WS-I AP 1.0. -wsdlmodeler20.rpcenc.not.supported=rpc/encoded wsdl's are not supported in JAXWS 2.0. +wsdlmodeler20.rpcenc.not.supported=rpc/encoded wsdl's are not supported in JAXWS 2.0. wsdlmodeler.warning.ignoringOperation.notNCName=Ignoring operation \"{0}\", it has illegal character ''{1}'' in its name. Its rpc-literal operation - jaxws won't be able to serialize it! wsdlmodeler.warning.ignoringOperation.javaReservedWordNotAllowed.nonWrapperStyle=Ignoring operation \"{0}\", can''t generate java method. Parameter: part "{2}\" in wsdl:message \"{1}\", is a java keyword. Use customization to change the parameter name or change the wsdl:part name. @@ -207,11 +207,12 @@ wsdlmodeler.warning.ignoringOperation.javaReservedWordNotAllowed.customizedOperationName=Ignoring operation \"{0}\", can''t generate java method ,customized name \"{1}\" of the wsdl:operation is a java keyword. wsdlmodeler.invalid.operation.javaReservedWordNotAllowed.customizedOperationName=Invalid operation \"{0}\", can''t generate java method ,customized name \"{1}\" of the wsdl:operation is a java keyword. -wsdlmodeler.jaxb.javatype.notfound=Schema descriptor {0} in message part \"{1}\" could not be bound to Java! +wsdlmodeler.jaxb.javatype.notfound=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. wsdlmodeler.unsupportedBinding.mime=WSDL MIME binding is not currently supported! -wsdlmodeler.nonUnique.body=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} -wsdlmodeler.rpclit.unkownschematype=XML type \"{0}\" could not be resolved, XML to JAVA binding failed! Please check the wsdl:part \"{1}\" in the wsdl:message \"{2}\". +wsdlmodeler.nonUnique.body.error=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 +wsdlmodeler.nonUnique.body.warning=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 + +wsdlmodeler.rpclit.unkownschematype=XML type \"{0}\" could not be resolved, XML to JAVA binding failed! Please check the wsdl:part \"{1}\" in the wsdl:message \"{2}\". wsdlmodeler.responsebean.notfound=wsimport failed to generate async response bean for operation: {0} - diff -r c608b38af726 -r 78c175236707 sources/jaxws_src/src/com/sun/tools/internal/ws/resources/processor.properties --- a/sources/jaxws_src/src/com/sun/tools/internal/ws/resources/processor.properties Thu Sep 22 02:44:43 2011 +0100 +++ b/sources/jaxws_src/src/com/sun/tools/internal/ws/resources/processor.properties Thu Sep 22 02:57:13 2011 +0100 @@ -24,4 +24,3 @@ # processor.missing.model=model is missing - diff -r c608b38af726 -r 78c175236707 sources/jaxws_src/src/com/sun/tools/internal/ws/resources/util.properties --- a/sources/jaxws_src/src/com/sun/tools/internal/ws/resources/util.properties Thu Sep 22 02:44:43 2011 +0100 +++ b/sources/jaxws_src/src/com/sun/tools/internal/ws/resources/util.properties Thu Sep 22 02:57:13 2011 +0100 @@ -26,4 +26,3 @@ holder.valuefield.not.found=Could not find the field in the Holder that contains the Holder''s value: {0} null.namespace.found=Encountered error in wsdl. Check namespace of element <{0}> sax2dom.notsupported.createelement=SAX2DOMEx.DomImplDoesntSupportCreateElementNs: {0} - diff -r c608b38af726 -r 78c175236707 sources/jaxws_src/src/com/sun/tools/internal/ws/resources/webserviceap.properties --- a/sources/jaxws_src/src/com/sun/tools/internal/ws/resources/webserviceap.properties Thu Sep 22 02:44:43 2011 +0100 +++ b/sources/jaxws_src/src/com/sun/tools/internal/ws/resources/webserviceap.properties Thu Sep 22 02:57:13 2011 +0100 @@ -50,7 +50,7 @@ webserviceap.oneway.operation.cannot.have.holders=The method {1} of class {0} is annotated @Oneway but contains inout or out paramerters (javax.xml.ws.Holder) webserviceap.oneway.operation.cannot.declare.exceptions=The method {1} of class {0} is annotated @Oneway but declares the exception {2} - + webserviceap.cannot.combine.handlerchain.soapmessagehandlers=You cannot specify both HanlderChain and SOAPMessageHandlers annotations webserviceap.invalid.handlerchain.file.nohandler-config=The handlerchain file {0} is invalid, it does not contain a handler-config element @@ -109,19 +109,19 @@ webserviceap.mixed.binding.style=Class\: {0} contains mixed bindings. SOAPBinding.Style.RPC and SOAPBinding.Style.DOCUMENT cannot be mixed. -webserviceap.endpointinteface.plus.annotation=The @{0} annotation cannot be used in with @javax.jws.WebService.endpointInterface element. +webserviceap.endpointinteface.plus.annotation=The @{0} annotation cannot be used in with @javax.jws.WebService.endpointInterface element. -webserviceap.endpointinteface.plus.element=The @javax.jws.WebService.{0} element cannot be used in with @javax.jws.WebService.endpointInterface element. +webserviceap.endpointinteface.plus.element=The @javax.jws.WebService.{0} element cannot be used in with @javax.jws.WebService.endpointInterface element. -webserviceap.non.in.parameters.must.be.holder=Class:\ {0}, method: {1}, parameter: {2} is not WebParam.Mode.IN and is not of type javax.xml.ws.Holder. +webserviceap.non.in.parameters.must.be.holder=Class:\ {0}, method: {1}, parameter: {2} is not WebParam.Mode.IN and is not of type javax.xml.ws.Holder. -webserviceap.invalid.sei.annotation.element=The @javax.jws.WebService.{0} element cannot be specified on a service endpoint interface. Class\: {1} +webserviceap.invalid.sei.annotation.element=The @javax.jws.WebService.{0} element cannot be specified on a service endpoint interface. Class\: {1} -webserviceap.invalid.sei.annotation=The @{0} annotation cannot be used on a service endpoint interface. Class\: {1} +webserviceap.invalid.sei.annotation=The @{0} annotation cannot be used on a service endpoint interface. Class\: {1} webserviceap.invalid.sei.annotation.element.exclude=The @javax.jws.WebMethod({0}) cannot be used on a service endpoint interface. Class\: {1} method\: {2} -webserviceap.invalid.webmethod.element.with.exclude=The @javax.jws.WebMethod.{0} element cannot be specified with the @javax.jws.WebMethod.exclude element. Class\: {1} method\: {2} +webserviceap.invalid.webmethod.element.with.exclude=The @javax.jws.WebMethod.{0} element cannot be specified with the @javax.jws.WebMethod.exclude element. Class\: {1} method\: {2} webserviceap.doc.bare.no.out=Document/literal bare methods with no return type or OUT/INOUT parameters must be annotated as @Oneway. Class\: {0}, method: {1} webserviceap.doc.bare.return.and.out=Document/literal bare methods cannot have a return type and out parameters. Class\: {0}, method: {1} @@ -137,19 +137,20 @@ webserviceap.webservice.method.is.abstract=Classes annotated with @javax.jws.WebService must not have abstract methods. Class\: {0} Method: {1} -#webserviceap.doc.bare.return.and.out=Document literal bare methods must not have a return value and an OUT/INOUT parameter. Class\: {0} Method\: {1} +webserviceap.webservice.method.is.static.or.final=Method annotated with @javax.jws.WebMethod must not be static or final. Class\: {0} Method: {1} + +#webserviceap.doc.bare.return.and.out=Document literal bare methods must not have a return value and an OUT/INOUT parameter. Class\: {0} Method\: {1} webserviceap.webservice.no.default.constructor=Classes annotated with @javax.jws.WebService must have a public default constructor. Class\: {0} -webserviceap.oneway.and.not.one.in=Document literal bare methods annotated with @javax.jws.Oneway must have one non-header IN parameter. Class\: {0} Method\: {1} +webserviceap.oneway.and.not.one.in=Document literal bare methods annotated with @javax.jws.Oneway must have one non-header IN parameter. Class\: {0} Method\: {1} -webserviceap.doc.bare.no.return.and.no.out=Document literal bare methods that do not have a return value must have a single OUT/INOUT parameter. Class\: {0} Method\: {1} +webserviceap.doc.bare.no.return.and.no.out=Document literal bare methods that do not have a return value must have a single OUT/INOUT parameter. Class\: {0} Method\: {1} -webserviceap.doc.bare.and.no.one.in=Document literal bare methods must have one non-header, IN/INOUT parameter. Class\: {0} Method\: {1} +webserviceap.doc.bare.and.no.one.in=Document literal bare methods must have one non-header, IN/INOUT parameter. Class\: {0} Method\: {1} webserviceap.method.not.implemented=Methods in an endpointInterface must be implemented in the implementation class. Interface Class\:{0} Implementation Class\:{1} Method\: {2} webserviceap.no.package.class.must.have.targetnamespace=@javax.jws.Webservice annotated classes that do not belong to a package must have the @javax.jws.Webservice.targetNamespace element. Class\: {0} webserviceap.webservice.and.webserviceprovider=Classes cannot be annotated with both @javax.jws.WebService and @javax.xml.ws.WebServiceProvider. Class\: {0} - diff -r c608b38af726 -r 78c175236707 sources/jaxws_src/src/com/sun/tools/internal/ws/resources/wscompile.properties --- a/sources/jaxws_src/src/com/sun/tools/internal/ws/resources/wscompile.properties Thu Sep 22 02:44:43 2011 +0100 +++ b/sources/jaxws_src/src/com/sun/tools/internal/ws/resources/wscompile.properties Thu Sep 22 02:57:13 2011 +0100 @@ -44,12 +44,22 @@ \ -p specifies the target package\n\ \ -quiet suppress wsimport output\n\ \ -s specify where to place generated source files\n\ -\ -target generate code as per the given JAXWS specification version.\n\ -\ version 2.0 will generate compliant code for JAXWS 2.0 spec.\n\ +\ -target generate code as per the given JAXWS spec version\n\ +\ e.g. 2.0 will generate compliant code for JAXWS 2.0 spec\n\ \ -verbose output messages about what the compiler is doing\n\ \ -version print version information\n\ \ -wsdllocation @WebServiceClient.wsdlLocation value\n\ +wsimport.usage.extensions=\n\ +\Extensions:\n\ +\ -XadditionalHeaders map headers not bound to request or response message to \n\ +\ Java method parameters\n\ +\ -Xauthfile file to carry authorization information in the format \n\ +\ http://username:password@example.org/stock?wsdl\n\ +\ -Xdebug print debug information\n\ +\ -Xno-addressing-databinding enable binding of W3C EndpointReferenceType to Java\n\ +\ -Xnocompile do not compile generated Java files\n\ + wsimport.usage.examples=\n\ \Examples:\n\ @@ -76,15 +86,18 @@ \ -s specify where to place generated source files\n\ \ -verbose output messages about what the compiler is doing\n\ \ -version print version information\n\ -\ -wsdl[:protocol] generate a WSDL file. The protocol is optional.\n\ -\ Valid protocols are soap1.1 and Xsoap1.2, the default\n\ -\ is soap1.1. Xsoap1.2 is not standard and can only be\n\ -\ used in conjunction with the -extension option\n\ +\ -wsdl[:protocol] generate a WSDL file. The protocol is optional.\n\ +\ Valid protocols are {1},\n\ +\ the default is soap1.1.\n\ +\ The non stanadard protocols {2}\n\ +\ can only be used in conjunction with the\n\ +\ -extension option.\n\ \ -servicename specify the Service name to use in the generated WSDL\n\ \ Used in conjunction with the -wsdl option.\n\ \ -portname specify the Port name to use in the generated WSDL\n\ \ Used in conjunction with the -wsdl option. + wsgen.usage.examples=\n\ \Examples:\n\ \ wsgen -cp . example.Stock\n\ @@ -93,7 +106,7 @@ wrapperTask.needEndorsed=\ You are running on JDK6 which comes with JAX-WS 2.0 API, but this tool requires JAX-WS 2.1 API. \ Use the endorsed standards override mechanism (http://java.sun.com/javase/6/docs/technotes/guides/standards/), \ -or set xendorsed="true" on <{0}>. +or set xendorsed="true" on <{0}>. wrapperTask.loading20Api=\ You are loading JAX-WS 2.0 API from {0} but this tool requires JAX-WS 2.1 API. @@ -126,7 +139,8 @@ wsgen.could.not.create.file="Could not create file: "\{0}\" wsgen.missingFile=Missing SEI wsgen.soap12.without.extension=The optional protocol \"Xsoap1.2\" must be used in conjunction with the \"-extension\" option. -wsgen.wsdl.arg.no.genwsdl=The \"{0}\" option can only be in conjunction with the "-wsdl" option. +wsgen.protocol.without.extension=The optional protocol \"{0}\" must be used in conjunction with the \"-extension\" option. +wsgen.wsdl.arg.no.genwsdl=The \"{0}\" option can only be in conjunction with the "-wsdl" option. wsgen.servicename.missing.namespace=The service name \"{0}\" is missing a namespace. wsgen.servicename.missing.localname=The service name \"{0}\" is missing a localname. wsgen.portname.missing.namespace=The port name \"{0}\" is missing a namespace. @@ -151,17 +165,41 @@ Failed to parse "{0}": {1} wsimport.ParsingWSDL=parsing WSDL...\n\n -wsimport.GeneratingCode=generating code... - +wsimport.GeneratingCode=generating code...\n +wsimport.CompilingCode=\ncompiling code...\n wsimport.ILLEGAL_TARGET_VERSION = \ "{0}" is not a valid target version. "2.0" and "2.1" are supported. +wsimport.ILLEGAL_AUTH_INFO = \ + "{0}" is not a valid authorization information format. The format is http[s]://user:password@host:port//. + +wsimport.readingAuthFile = \ + Trying to read authorization file : "{0}"... + +wsimport.authFileNotFound = \ + Authorization file "{0}" not found. If the WSDL access needs Basic Authentication, please provide authorization file with read access at {1} or use -Xauthfile to give the authorization file and on each line provide authorization information using this format : http[s]://user:password@host:port// + +wsimport.authInfoNeeded = \ + {0}, "{1}" needs authorization, please provide authorization file with read access at {2} or use -Xauthfile to give the authorization file and on each line provide authorization information using this format : http[s]://user:password@host:port// + +wsimport.AUTH_INFO_LINENO = \ + "line {0} of {1} + + wsimport.ErrorMessage = \ - [ERROR] {0} + [ERROR] {0} wsimport.WarningMessage = \ - [WARNING] {0} + [WARNING] {0} wsimport.InfoMessage = \ - [INFO] {0} - + [INFO] {0} + +wsimport.DebugMessage = \ + [DEBUG] {0} + +wsimport.httpRedirect = \ + Server returned HTTP Status code: "{0}", retrying with "{1}" + +wsimport.maxRedirectAttempt = \ + Can not get a WSDL maximum number of redirects(5) reached diff -r c608b38af726 -r 78c175236707 sources/jaxws_src/src/com/sun/tools/internal/ws/resources/wsdl.properties --- a/sources/jaxws_src/src/com/sun/tools/internal/ws/resources/wsdl.properties Thu Sep 22 02:44:43 2011 +0100 +++ b/sources/jaxws_src/src/com/sun/tools/internal/ws/resources/wsdl.properties Thu Sep 22 02:57:13 2011 +0100 @@ -41,7 +41,6 @@ parsing.unknownNamespacePrefix=undeclared namespace prefix: \"{0}\" parsing.invalidURI=invalid URI: {0} parsing.ioExceptionWithSystemId=failed to parse document at \"{0}\" -parsing.unableToGetMetadata= Unable to get Metadata from: {0} parsing.ioException=parsing failed: {0} parsing.saxExceptionWithSystemId=invalid WSDL file! failed to parse document at \"{0}\" parsing.saxException=invalid WSDL file! parsing failed: {0} @@ -52,16 +51,16 @@ parsing.missingRequiredAttribute=missing required attribute \"{1}\" of element \"{0}\" parsing.invalidTag=expected element \"{1}\", found \"{0}\" parsing.invalidTagNS=Invalid WSDL at {4}: expected element \"{2}\" (in namespace \"{3}\"), found element \"{0}\" (in namespace \"{1}\") -parsing.nonWhitespaceTextFound=found unexpected non whitespace text: \"{0}\" +parsing.nonWhitespaceTextFound=found unexpected non-whitespace text: \"{0}\" parsing.elementExpected=unexpected non-element found # entity.duplicate=duplicate entity: \"{0}\" entity.duplicateWithType=duplicate \"{0}\" entity: \"{1}\" entity.notFoundByID=invalid entity id: \"{0}\" -entity.notFoundByQName=invalid entity name: \"{0}\" (in namespace: \"{1}\") -entity.notFound.portType=wsdl:portType \"{0}\" referenced by wsdl:binding \"{1}\", but its not found in the wsdl -entity.notFound.binding=wsdl:binding \"{0}" referenced by wsdl:port \"{1}\", but its not found in the wsdl +entity.notFoundByQName={0} \"{1}\" not found in the wsdl: {2} +entity.notFound.portType=wsdl:portType \"{0}\" referenced by wsdl:binding \"{1}\", but it's not found in the wsdl +entity.notFound.binding=wsdl:binding \"{0}" referenced by wsdl:port \"{1}\", but it's not found in the wsdl # validation.missingRequiredAttribute=missing required attribute \"{0}\" of element \"{1}\" @@ -71,7 +70,7 @@ validation.invalidComplexTypeInElement=invalid element: \"{1}\", has named complexType: \"{0}\" validation.invalidSimpleTypeInElement=invalid element: \"{1}\", has named simpleType: \"{0}\" validation.duplicatedElement=duplicated element: \"{0}\" -validation.duplicatePartName=Invalid WSDL, duplicate parts in a wsdl:message is not allowed. \nwsdl:message {0} has duplicated part name: \"{1}\" +validation.duplicatePartName=Invalid WSDL, duplicate parts in a wsdl:message is not allowed. \nwsdl:message {0} has a duplicated part name: \"{1}\" validation.invalidSubEntity=invalid sub-element \"{0}\" of element \"{1}\" validation.invalidAttribute=invalid attribute \"{0}\" of element \"{1}\" validation.invalidAttributeValue=invalid value \"{1}\" for attribute \"{0}\" @@ -88,51 +87,54 @@ warning.inputOutputEmptyAction=ignoring empty Action in {0} element of \"{1}\" operation, using default instead #wsi compliant WSDL warnings -warning.wsi.r2001=Not a WSI-BP compliant WSDL (R2001, R2002). wsdl:import must only import WSDL document. Its trying to import: \"{0}\" -warning.wsi.r2002=Not a WSI-BP compliant WSDL (R2002). wsdl:import must not be used to import XML Schema embedded in the WSDL document. Expected wsdl namesapce: {0}, found: {1} -warning.wsi.r2003=Not a WSI-BP compliant WSDL (R2003). xsd:import must only be used inside xsd:schema element. -warning.wsi.r2004=Not a WSI-BP compliant WSDL (R2001, R2004). xsd:import must not import XML Schema definition emmbedded inline within WSDLDocument. +warning.wsi.r2001=Not a WSI-BP compliant WSDL (R2001, R2002). wsdl:import must import only WSDL documents. It's trying to import: \"{0}\" +warning.wsi.r2002=Not a WSI-BP compliant WSDL (R2002). wsdl:import must not be used to import XML Schema embedded in the WSDL document. Expected wsdl namespace: {0}, found: {1} +warning.wsi.r2003=Not a WSI-BP compliant WSDL (R2003). xsd:import must only be used inside xsd:schema elements. +warning.wsi.r2004=Not a WSI-BP compliant WSDL (R2001, R2004). xsd:import must not import XML Schema definitions embedded inline within the WSDL document. #Parser Parsing.ParseFailed = \ - Failed to parse the WSDL. +\tFailed to parse the WSDL. Parsing.NotAWSDL=Failed to get WSDL components, probably {0} is not a valid WSDL file. AbstractReferenceFinderImpl.UnableToParse = \ - Unable to parse "{0}" : {1} +\tUnable to parse "{0}" : {1} Parser.NotABindingFile = \ - not an external binding file. The root element must be '{'http://java.sun.com/xml/ns/jaxws'}'bindings but it is '{'{0}'}'{1} +\tnot an external binding file. The root element must be '{'http://java.sun.com/xml/ns/jaxws'}'bindings but it is '{'{0}'}'{1} #Internalizer Internalizer.TwoVersionAttributes = \ - Both jaxws:version and version are present +\tBoth jaxws:version and version are present Internalizer.IncorrectVersion = \ - JAXWS version attribute must be "2.0" +\tJAXWS version attribute must be "2.0" Internalizer.VersionNotPresent = \ - JAXWS version attribute must be present +\tJAXWS version attribute must be present internalizer.targetNotAnElement= \ - Target node is not an element +\tTarget node is not an element internalizer.targetNotFound= \ - No target found for the wsdlLocation: {0} +\tNo target found for the wsdlLocation: {0} Internalizer.IncorrectSchemaReference= \ - "{0}" is not a part of this compilation. Is this a mistake for "{1}"? +\t"{0}" is not a part of this compilation. Is this a mistake for "{1}"? internalizer.XPathEvaluationError = \ XPath error: {0} internalizer.XPathEvaluatesToNoTarget = \ - XPath evaluation of "{0}" results in empty target node + XPath evaluation of "{0}" results in an empty target node internalizer.XPathEvaulatesToTooManyTargets = \ XPath evaluation of "{0}" results in too many ({1}) target nodes internalizer.XPathEvaluatesToNonElement = \ XPath evaluation of "{0}" needs to result in an element. -invalid.customization.namespace=Ignoring customization: \"{0}\", it has no namespace. It must belong to the customization namespace. +invalid.customization.namespace=Ignoring customization: \"{0}\", because it has no namespace. It must belong to the customization namespace. invalid.wsdl.with.dooc="Not a WSDL document: {0}, it gives \"{1}\", retrying with MEX..." -invalid.wsdl="{0} does not look like a WSDL document, retrying with MEX..." - +invalid.wsdl=Invalid WSDL {0}, expected {1} found {2} at (line {3}) +try.with.mex= {0} \n\nretrying with MEX... +file.not.found={0} is unreachable +parsing.unableToGetMetadata= {0}\n\n{1} +failed.noservice=failed.noservice=Could not find wsdl:service in the provided WSDL(s): \n\n{0} At least one WSDL with at least one service definition needs to be provided. diff -r c608b38af726 -r 78c175236707 sources/jaxws_src/src/com/sun/tools/internal/ws/version.properties --- a/sources/jaxws_src/src/com/sun/tools/internal/ws/version.properties Thu Sep 22 02:44:43 2011 +0100 +++ b/sources/jaxws_src/src/com/sun/tools/internal/ws/version.properties Thu Sep 22 02:57:13 2011 +0100 @@ -23,7 +23,7 @@ # have any questions. # -build-id=JAX-WS RI 2.1.1 -build-version=JAX-WS RI 2.1.1 -major-version=2.1.1 - +#Fri May 15 16:16:14 CEST 2009 +build-id=JAX-WS RI 2.1.6 +major-version=2.1.6 +build-version=JAX-WS RI 2.1.6 diff -r c608b38af726 -r 78c175236707 sources/jaxws_src/src/com/sun/tools/internal/ws/wscompile/AbortException.java --- a/sources/jaxws_src/src/com/sun/tools/internal/ws/wscompile/AbortException.java Thu Sep 22 02:44:43 2011 +0100 +++ b/sources/jaxws_src/src/com/sun/tools/internal/ws/wscompile/AbortException.java Thu Sep 22 02:57:13 2011 +0100 @@ -24,7 +24,6 @@ */ - package com.sun.tools.internal.ws.wscompile; /** diff -r c608b38af726 -r 78c175236707 sources/jaxws_src/src/com/sun/tools/internal/ws/wscompile/AuthInfo.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/sources/jaxws_src/src/com/sun/tools/internal/ws/wscompile/AuthInfo.java Thu Sep 22 02:57:13 2011 +0100 @@ -0,0 +1,64 @@ +/* + * 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.wscompile; + +import com.sun.istack.internal.NotNull; + +import java.net.URL; + +/** + * Represents authorization information needed by {@link com.sun.tools.internal.ws.wscompile.DefaultAuthenticator} to + * authenticate wsimport to access the wsdl. + * + * @author Vivek Pandey + */ + +public final class AuthInfo { + private final String user; + private final String password; + private final URL url; + + public AuthInfo(@NotNull URL url, @NotNull String user, @NotNull String password){ + this.url = url; + this.user = user; + this.password = password; + } + + public String getUser() { + return user; + } + + public String getPassword() { + return password; + } + + /** + * Returns if the requesting host and port are associated with this {@link AuthInfo} + */ + public boolean matchingHost(@NotNull URL requestingURL) { + return requestingURL.equals(url); + } + +} diff -r c608b38af726 -r 78c175236707 sources/jaxws_src/src/com/sun/tools/internal/ws/wscompile/BadCommandLineException.java --- a/sources/jaxws_src/src/com/sun/tools/internal/ws/wscompile/BadCommandLineException.java Thu Sep 22 02:44:43 2011 +0100 +++ b/sources/jaxws_src/src/com/sun/tools/internal/ws/wscompile/BadCommandLineException.java Thu Sep 22 02:57:13 2011 +0100 @@ -24,7 +24,6 @@ */ - package com.sun.tools.internal.ws.wscompile; import com.sun.istack.internal.Nullable; diff -r c608b38af726 -r 78c175236707 sources/jaxws_src/src/com/sun/tools/internal/ws/wscompile/DefaultAuthTester.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/sources/jaxws_src/src/com/sun/tools/internal/ws/wscompile/DefaultAuthTester.java Thu Sep 22 02:57:13 2011 +0100 @@ -0,0 +1,66 @@ +/* + * 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.wscompile; + +import com.sun.istack.internal.NotNull; +import com.sun.tools.internal.ws.processor.modeler.wsdl.ConsoleErrorReporter; + +import java.io.File; +import java.net.MalformedURLException; +import java.net.PasswordAuthentication; +import java.net.URL; +import java.util.Arrays; + +/** + * @author Vivek Pandey + */ +public class DefaultAuthTester { + public static void main(String[] args) throws BadCommandLineException { + DefaultAuthenticator da = new MyAuthenticator(new ConsoleErrorReporter(System.out), new File("c:\\Users\\vivekp\\.metro\\auth")); + + PasswordAuthentication pa = da.getPasswordAuthentication(); + if(pa!= null && pa.getUserName().equals("vivek") && Arrays.equals(pa.getPassword(), "test".toCharArray())) + System.out.println("Success!"); + else + System.out.println("Failiure!"); + + } + + private static class MyAuthenticator extends DefaultAuthenticator{ + + public MyAuthenticator(@NotNull ErrorReceiver receiver, @NotNull File authfile) throws BadCommandLineException { + super(receiver, authfile); + } + + protected URL getRequestingURL() { + try { + return new URL("http://foo.com/myservice?wsdl"); + } catch (MalformedURLException e) { + e.printStackTrace(); + } + return null; + } + } +} diff -r c608b38af726 -r 78c175236707 sources/jaxws_src/src/com/sun/tools/internal/ws/wscompile/DefaultAuthenticator.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/sources/jaxws_src/src/com/sun/tools/internal/ws/wscompile/DefaultAuthenticator.java Thu Sep 22 02:57:13 2011 +0100 @@ -0,0 +1,154 @@ +/* + * 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.wscompile; + +import com.sun.istack.internal.NotNull; +import com.sun.tools.internal.ws.resources.WscompileMessages; +import org.xml.sax.SAXParseException; +import org.xml.sax.helpers.LocatorImpl; + +import java.io.*; +import java.net.Authenticator; +import java.net.PasswordAuthentication; +import java.net.URL; +import java.util.ArrayList; +import java.util.List; + +/** + * @author Vivek Pandey + */ +public class DefaultAuthenticator extends Authenticator { + + private final List authInfo = new ArrayList(); + private final ErrorReceiver errReceiver; + private final String proxyUser; + private final String proxyPasswd; + + //can user.home value be null? + public static final String defaultAuthfile = System.getProperty("user.home")+ System.getProperty("file.separator")+".metro"+System.getProperty("file.separator")+"auth"; + private File authFile = new File(defaultAuthfile); + private boolean giveError; + + public DefaultAuthenticator(@NotNull ErrorReceiver receiver, @NotNull File authfile) throws BadCommandLineException { + this.errReceiver = receiver; + this.proxyUser = System.getProperty("http.proxyUser"); + this.proxyPasswd = System.getProperty("http.proxyPassword"); + + if(authfile != null){ + this.authFile = authfile; + this.giveError = true; + } + + if(!authFile.exists()){ + try { + error(new SAXParseException(WscompileMessages.WSIMPORT_AUTH_FILE_NOT_FOUND(authFile.getCanonicalPath(), defaultAuthfile), null)); + } catch (IOException e) { + error(new SAXParseException(WscompileMessages.WSIMPORT_FAILED_TO_PARSE(authFile,e.getMessage()), null)); + } + return; + } + + if(!authFile.canRead()){ + error(new SAXParseException("Authorization file: "+authFile + " does not have read permission!", null)); + return; + } + parseAuth(); + } + + protected PasswordAuthentication getPasswordAuthentication() { + //If user sets proxy user and passwd and the RequestType is from proxy server then create + // PasswordAuthentication using proxyUser and proxyClass; + if((getRequestorType() == RequestorType.PROXY) && proxyUser != null && proxyPasswd != null){ + return new PasswordAuthentication(proxyUser, proxyPasswd.toCharArray()); + } + for(AuthInfo auth:authInfo){ + if(auth.matchingHost(getRequestingURL())){ + return new PasswordAuthentication(auth.getUser(), auth.getPassword().toCharArray()); + } + } + return null; + } + + private void parseAuth() { + errReceiver.info(new SAXParseException(WscompileMessages.WSIMPORT_READING_AUTH_FILE(authFile), null)); + + BufferedReader in; + try { + in = new BufferedReader(new InputStreamReader(new FileInputStream(authFile), "UTF-8")); + } catch (UnsupportedEncodingException e) { + error(new SAXParseException(e.getMessage(), null)); + return; + } catch (FileNotFoundException e) { + error(new SAXParseException(WscompileMessages.WSIMPORT_AUTH_FILE_NOT_FOUND(authFile, defaultAuthfile), null, e)); + return; + } + String text; + LocatorImpl locator = new LocatorImpl(); + try { + int lineno = 1; + + locator.setSystemId(authFile.getCanonicalPath()); + + while ((text = in.readLine()) != null) { + locator.setLineNumber(lineno++); + try { + URL url = new URL(text); + String authinfo = url.getUserInfo(); + + if (authinfo != null) { + int i = authinfo.indexOf(':'); + + if (i >= 0) { + String user = authinfo.substring(0, i); + String password = authinfo.substring(i + 1); + authInfo.add(new AuthInfo(new URL(text), user, password)); + } else { + error(new SAXParseException(WscompileMessages.WSIMPORT_ILLEGAL_AUTH_INFO(url), locator)); + } + } else { + error(new SAXParseException(WscompileMessages.WSIMPORT_ILLEGAL_AUTH_INFO(url), locator)); + } + + } catch (NumberFormatException e) { + error(new SAXParseException(WscompileMessages.WSIMPORT_ILLEGAL_AUTH_INFO(text), locator)); + } + } + in.close(); + } catch (IOException e) { + error(new SAXParseException(WscompileMessages.WSIMPORT_FAILED_TO_PARSE(authFile,e.getMessage()), locator)); + } + } + + /** + * When user provides authfile explicitly using -Xauthfile we throw error otherwise show the mesage by default with -Xdebug flag + */ + private void error(SAXParseException e){ + if(giveError){ + errReceiver.error(e); + } else{ + errReceiver.debug(e); + } + } +} diff -r c608b38af726 -r 78c175236707 sources/jaxws_src/src/com/sun/tools/internal/ws/wscompile/ErrorReceiver.java --- a/sources/jaxws_src/src/com/sun/tools/internal/ws/wscompile/ErrorReceiver.java Thu Sep 22 02:44:43 2011 +0100 +++ b/sources/jaxws_src/src/com/sun/tools/internal/ws/wscompile/ErrorReceiver.java Thu Sep 22 02:57:13 2011 +0100 @@ -24,7 +24,6 @@ */ - package com.sun.tools.internal.ws.wscompile; import com.sun.istack.internal.Nullable; @@ -126,6 +125,8 @@ info( new SAXParseException(msg,null) ); } + public abstract void debug(SAXParseException exception); + // // // convenience methods for derived classes @@ -145,7 +146,7 @@ return ModelMessages.CONSOLE_ERROR_REPORTER_LINE_X_OF_Y(line==-1?"?":Integer.toString( line ), getShortName( e.getSystemId())); } else { - return ModelMessages.CONSOLE_ERROR_REPORTER_UNKNOWN_LOCATION(); + return ""; //for unkown location just return empty string } } diff -r c608b38af726 -r 78c175236707 sources/jaxws_src/src/com/sun/tools/internal/ws/wscompile/ErrorReceiverFilter.java --- a/sources/jaxws_src/src/com/sun/tools/internal/ws/wscompile/ErrorReceiverFilter.java Thu Sep 22 02:44:43 2011 +0100 +++ b/sources/jaxws_src/src/com/sun/tools/internal/ws/wscompile/ErrorReceiverFilter.java Thu Sep 22 02:57:13 2011 +0100 @@ -24,7 +24,6 @@ */ - package com.sun.tools.internal.ws.wscompile; import com.sun.tools.internal.xjc.api.ErrorListener; @@ -66,6 +65,10 @@ if(core!=null) core.info(exception); } + public void debug(SAXParseException exception) { + + } + public void warning(SAXParseException exception) { if(core!=null) core.warning(exception); } diff -r c608b38af726 -r 78c175236707 sources/jaxws_src/src/com/sun/tools/internal/ws/wscompile/JavaCompilerHelper.java --- a/sources/jaxws_src/src/com/sun/tools/internal/ws/wscompile/JavaCompilerHelper.java Thu Sep 22 02:44:43 2011 +0100 +++ b/sources/jaxws_src/src/com/sun/tools/internal/ws/wscompile/JavaCompilerHelper.java Thu Sep 22 02:57:13 2011 +0100 @@ -35,6 +35,7 @@ import java.lang.reflect.Method; import java.net.MalformedURLException; import java.net.URL; +import java.net.URISyntaxException; /** * A helper class to invoke javac. @@ -43,15 +44,19 @@ */ class JavaCompilerHelper{ static File getJarFile(Class clazz) { + URL url = null; try { - URL url = ParallelWorldClassLoader.toJarUrl(clazz.getResource('/'+clazz.getName().replace('.','/')+".class")); - return new File(url.getPath()); // this code is assuming that url is a file URL + url = ParallelWorldClassLoader.toJarUrl(clazz.getResource('/'+clazz.getName().replace('.','/')+".class")); + return new File(url.toURI()); } catch (ClassNotFoundException e) { // if we can't figure out where JAXB/JAX-WS API are, we couldn't have been executing this code. throw new Error(e); } catch (MalformedURLException e) { // if we can't figure out where JAXB/JAX-WS API are, we couldn't have been executing this code. throw new Error(e); + } catch (URISyntaxException e) { + // url.toURI() is picky and doesn't like ' ' in URL, so this is the fallback + return new File(url.getPath()); } } diff -r c608b38af726 -r 78c175236707 sources/jaxws_src/src/com/sun/tools/internal/ws/wscompile/Options.java --- a/sources/jaxws_src/src/com/sun/tools/internal/ws/wscompile/Options.java Thu Sep 22 02:44:43 2011 +0100 +++ b/sources/jaxws_src/src/com/sun/tools/internal/ws/wscompile/Options.java Thu Sep 22 02:57:13 2011 +0100 @@ -24,7 +24,6 @@ */ - package com.sun.tools.internal.ws.wscompile; import com.sun.tools.internal.ws.resources.WscompileMessages; @@ -150,6 +149,10 @@ public boolean debug = false; + + /** + * -Xdebug - gives complete stack trace + */ public boolean debugMode = false; @@ -206,7 +209,7 @@ * @exception BadCommandLineException * thrown when there's a problem in the command-line arguments */ - public final void parseArguments( String[] args ) throws BadCommandLineException { + public void parseArguments( String[] args ) throws BadCommandLineException { for (int i = 0; i < args.length; i++) { if(args[i].length()==0) diff -r c608b38af726 -r 78c175236707 sources/jaxws_src/src/com/sun/tools/internal/ws/wscompile/WsgenOptions.java --- a/sources/jaxws_src/src/com/sun/tools/internal/ws/wscompile/WsgenOptions.java Thu Sep 22 02:44:43 2011 +0100 +++ b/sources/jaxws_src/src/com/sun/tools/internal/ws/wscompile/WsgenOptions.java Thu Sep 22 02:57:13 2011 +0100 @@ -24,18 +24,20 @@ */ - package com.sun.tools.internal.ws.wscompile; import com.sun.mirror.apt.Filer; import com.sun.tools.internal.ws.resources.WscompileMessages; +import com.sun.tools.internal.ws.api.WsgenExtension; +import com.sun.tools.internal.ws.api.WsgenProtocol; import com.sun.xml.internal.ws.api.BindingID; +import com.sun.xml.internal.ws.util.ServiceFinder; +import com.sun.xml.internal.ws.binding.SOAPBindingImpl; import javax.jws.WebService; import javax.xml.namespace.QName; import java.io.File; -import java.util.ArrayList; -import java.util.List; +import java.util.*; /** * @author Vivek Pandey @@ -66,7 +68,9 @@ * protocol value */ public String protocol = "soap1.1"; - public String transport; + + public Set protocols = new LinkedHashSet(); + public Map nonstdProtocols = new LinkedHashMap(); /** * -XwsgenReport @@ -92,8 +96,22 @@ private static final String SOAP11 = "soap1.1"; public static final String X_SOAP12 = "Xsoap1.2"; + public WsgenOptions() { + protocols.add(SOAP11); + protocols.add(X_SOAP12); + nonstdProtocols.put(X_SOAP12, SOAPBindingImpl.X_SOAP12HTTP_BINDING); + ServiceFinder extn = ServiceFinder.find(WsgenExtension.class); + for(WsgenExtension ext : extn) { + Class clazz = ext.getClass(); + WsgenProtocol pro = (WsgenProtocol)clazz.getAnnotation(WsgenProtocol.class); + protocols.add(pro.token()); + nonstdProtocols.put(pro.token(), pro.lexical()); + } + } + @Override protected int parseArguments(String[] args, int i) throws BadCommandLineException { + int j = super.parseArguments(args, i); if (args[i].equals(SERVICENAME_OPTION)) { serviceName = QName.valueOf(requireArgument(SERVICENAME_OPTION, args, ++i)); @@ -132,10 +150,8 @@ index = value.indexOf('/'); if (index == -1) { protocol = value; - transport = HTTP; } else { protocol = value.substring(0, index); - transport = value.substring(index + 1); } protocolSet = true; } @@ -168,13 +184,9 @@ public void validate() throws BadCommandLineException { if(nonclassDestDir == null) nonclassDestDir = destDir; - if (!protocol.equalsIgnoreCase(SOAP11) && - !protocol.equalsIgnoreCase(X_SOAP12)) { - throw new BadCommandLineException(WscompileMessages.WSGEN_INVALID_PROTOCOL(protocol, SOAP11 + ", " + X_SOAP12)); - } - if (transport != null && !transport.equalsIgnoreCase(HTTP)) { - throw new BadCommandLineException(WscompileMessages.WSGEN_INVALID_TRANSPORT(transport, HTTP)); + if (!protocols.contains(protocol)) { + throw new BadCommandLineException(WscompileMessages.WSGEN_INVALID_PROTOCOL(protocol, protocols)); } if (endpoints.isEmpty()) { @@ -184,6 +196,10 @@ throw new BadCommandLineException(WscompileMessages.WSGEN_SOAP_12_WITHOUT_EXTENSION()); } + if (nonstdProtocols.containsKey(protocol) && !isExtensionMode()) { + throw new BadCommandLineException(WscompileMessages.WSGEN_PROTOCOL_WITHOUT_EXTENSION(protocol)); + } + validateEndpointClass(); validateArguments(); } @@ -245,12 +261,13 @@ } } - public static BindingID getBindingID(String protocol) { + BindingID getBindingID(String protocol) { if (protocol.equals(SOAP11)) return BindingID.SOAP11_HTTP; if (protocol.equals(X_SOAP12)) return BindingID.SOAP12_HTTP; - return null; + String lexical = nonstdProtocols.get(protocol); + return (lexical != null) ? BindingID.parse(lexical) : null; } diff -r c608b38af726 -r 78c175236707 sources/jaxws_src/src/com/sun/tools/internal/ws/wscompile/WsgenTool.java --- a/sources/jaxws_src/src/com/sun/tools/internal/ws/wscompile/WsgenTool.java Thu Sep 22 02:44:43 2011 +0100 +++ b/sources/jaxws_src/src/com/sun/tools/internal/ws/wscompile/WsgenTool.java Thu Sep 22 02:57:13 2011 +0100 @@ -24,7 +24,6 @@ */ - package com.sun.tools.internal.ws.wscompile; import com.sun.mirror.apt.AnnotationProcessor; @@ -32,6 +31,8 @@ import com.sun.mirror.apt.AnnotationProcessorFactory; import com.sun.mirror.declaration.AnnotationTypeDeclaration; import com.sun.tools.internal.ws.ToolVersion; +import com.sun.tools.internal.ws.api.WsgenExtension; +import com.sun.tools.internal.ws.api.WsgenProtocol; import com.sun.tools.internal.ws.processor.modeler.annotation.AnnotationProcessorContext; import com.sun.tools.internal.ws.processor.modeler.annotation.WebServiceAP; import com.sun.tools.internal.ws.processor.modeler.wsdl.ConsoleErrorReporter; @@ -46,11 +47,13 @@ import com.sun.xml.internal.ws.api.server.Container; import com.sun.xml.internal.ws.api.wsdl.writer.WSDLGeneratorExtension; import com.sun.xml.internal.ws.binding.WebServiceFeatureList; +import com.sun.xml.internal.ws.binding.SOAPBindingImpl; import com.sun.xml.internal.ws.model.AbstractSEIModelImpl; import com.sun.xml.internal.ws.model.RuntimeModeler; import com.sun.xml.internal.ws.util.ServiceFinder; import com.sun.xml.internal.ws.wsdl.writer.WSDLGenerator; import com.sun.xml.internal.ws.wsdl.writer.WSDLResolver; +import com.sun.istack.internal.tools.ParallelWorldClassLoader; import org.xml.sax.SAXParseException; import javax.xml.bind.annotation.XmlSeeAlso; @@ -110,14 +113,16 @@ return false; } }catch (Options.WeAreDone done){ - usage(done.getOptions()); + usage((WsgenOptions)done.getOptions()); }catch (BadCommandLineException e) { if(e.getMessage()!=null) { System.out.println(e.getMessage()); System.out.println(); } - usage(e.getOptions()); + usage((WsgenOptions)e.getOptions()); return false; + }catch(AbortException e){ + //error might have been reported }finally{ if(!options.keep){ options.removeGeneratedFiles(); @@ -161,12 +166,27 @@ } } + /* + * To take care of JDK6-JDK6u3, where 2.1 API classes are not there + */ + private static boolean useBootClasspath(Class clazz) { + try { + ParallelWorldClassLoader.toJarUrl(clazz.getResource('/'+clazz.getName().replace('.','/')+".class")); + return true; + } catch(Exception e) { + return false; + } + } + + public boolean buildModel(String endpoint, Listener listener) throws BadCommandLineException { final ErrorReceiverFilter errReceiver = new ErrorReceiverFilter(listener); context = new AnnotationProcessorContext(); webServiceAP = new WebServiceAP(options, context, errReceiver, out); - String[] args = new String[9]; + boolean bootCP = useBootClasspath(EndpointReference.class) || useBootClasspath(XmlSeeAlso.class); + + String[] args = new String[8 + (bootCP ? 1 :0)]; args[0] = "-d"; args[1] = options.destDir.getAbsolutePath(); args[2] = "-classpath"; @@ -175,7 +195,9 @@ args[5] = options.sourceDir.getAbsolutePath(); args[6] = "-XclassesAsDecls"; args[7] = endpoint; - args[8] = "-Xbootclasspath/p:"+JavaCompilerHelper.getJarFile(EndpointReference.class)+File.pathSeparator+JavaCompilerHelper.getJarFile(XmlSeeAlso.class); + if (bootCP) { + args[8] = "-Xbootclasspath/p:"+JavaCompilerHelper.getJarFile(EndpointReference.class)+File.pathSeparator+JavaCompilerHelper.getJarFile(XmlSeeAlso.class); + } // Workaround for bug 6499165: issue with javac debug option workAroundJavacDebug(); @@ -195,11 +217,12 @@ throw new BadCommandLineException(WscompileMessages.WSGEN_CLASS_NOT_FOUND(endpoint)); } - BindingID bindingID = WsgenOptions.getBindingID(options.protocol); + BindingID bindingID = options.getBindingID(options.protocol); if (!options.protocolSet) { bindingID = BindingID.parse(endpointClass); } - RuntimeModeler rtModeler = new RuntimeModeler(endpointClass, options.serviceName, bindingID); + WebServiceFeatureList wsfeatures = new WebServiceFeatureList(endpointClass); + RuntimeModeler rtModeler = new RuntimeModeler(endpointClass, options.serviceName, bindingID, wsfeatures.toArray()); rtModeler.setClassLoader(classLoader); if (options.portName != null) rtModeler.setPortName(options.portName); @@ -207,7 +230,7 @@ final File[] wsdlFileName = new File[1]; // used to capture the generated WSDL file. final Map schemaFiles = new HashMap(); - WebServiceFeatureList wsfeatures = new WebServiceFeatureList(endpointClass); + WSDLGenerator wsdlGenerator = new WSDLGenerator(rtModel, new WSDLResolver() { private File toFile(String suggestedFilename) { @@ -327,8 +350,12 @@ } } - protected void usage(Options options) { - System.out.println(WscompileMessages.WSGEN_HELP("WSGEN")); + protected void usage(WsgenOptions options) { + // Just don't see any point in passing WsgenOptions + // BadCommandLineException also shouldn't have options + if (options == null) + options = this.options; + System.out.println(WscompileMessages.WSGEN_HELP("WSGEN", options.protocols, options.nonstdProtocols.keySet())); System.out.println(WscompileMessages.WSGEN_USAGE_EXAMPLES()); } diff -r c608b38af726 -r 78c175236707 sources/jaxws_src/src/com/sun/tools/internal/ws/wscompile/WsimportListener.java --- a/sources/jaxws_src/src/com/sun/tools/internal/ws/wscompile/WsimportListener.java Thu Sep 22 02:44:43 2011 +0100 +++ b/sources/jaxws_src/src/com/sun/tools/internal/ws/wscompile/WsimportListener.java Thu Sep 22 02:57:13 2011 +0100 @@ -24,7 +24,6 @@ */ - package com.sun.tools.internal.ws.wscompile; import com.sun.tools.internal.xjc.api.ErrorListener; @@ -75,6 +74,8 @@ } + public void debug(SAXParseException exception){} + /** * wsimport will periodically invoke this method to see if it should cancel a compilation. * diff -r c608b38af726 -r 78c175236707 sources/jaxws_src/src/com/sun/tools/internal/ws/wscompile/WsimportOptions.java --- a/sources/jaxws_src/src/com/sun/tools/internal/ws/wscompile/WsimportOptions.java Thu Sep 22 02:44:43 2011 +0100 +++ b/sources/jaxws_src/src/com/sun/tools/internal/ws/wscompile/WsimportOptions.java Thu Sep 22 02:57:13 2011 +0100 @@ -24,7 +24,6 @@ */ - package com.sun.tools.internal.ws.wscompile; import com.sun.codemodel.internal.JCodeModel; @@ -50,6 +49,7 @@ import javax.xml.stream.XMLStreamReader; import java.io.File; import java.io.IOException; +import java.net.Authenticator; import java.net.MalformedURLException; import java.net.URL; import java.util.ArrayList; @@ -78,11 +78,27 @@ public String defaultPackage = null; /** + * -XadditionalHeaders + */ + public boolean additionalHeaders; + + /** + * Setting disableSSLHostVerification to true disables the SSL Hostname verification while fetching the wsdls. + * -XdisableSSLHostVerification + */ + public boolean disableSSLHostnameVerification; + + /** * JAXB's {@link SchemaCompiler} to be used for handling the schema portion. * This object is also configured through options. */ private SchemaCompiler schemaCompiler = XJC.createSchemaCompiler(); + /** + * Authentication file + */ + public File authFile; + public JCodeModel getCodeModel() { if(codeModel == null) codeModel = new JCodeModel(); @@ -101,6 +117,50 @@ private JCodeModel codeModel; + /** + * This captures jars passed on the commandline and passes them to XJC and puts them in the classpath for compilation + */ + public List cmdlineJars = new ArrayList(); + + /** + * Parses arguments and fill fields of this object. + * + * @exception BadCommandLineException + * thrown when there's a problem in the command-line arguments + */ + @Override + public final void parseArguments( String[] args ) throws BadCommandLineException { + + for (int i = 0; i < args.length; i++) { + if(args[i].length()==0) + throw new BadCommandLineException(); + if (args[i].charAt(0) == '-') { + int j = parseArguments(args,i); + if(j==0) + throw new BadCommandLineException(WscompileMessages.WSCOMPILE_INVALID_OPTION(args[i])); + i += (j-1); + } else { + if(args[i].endsWith(".jar")) { + + try { + cmdlineJars.add(args[i]); + schemaCompiler.getOptions().scanEpisodeFile(new File(args[i])); + + } catch (com.sun.tools.internal.xjc.BadCommandLineException e) { + //Driver.usage(jaxbOptions,false); + throw new BadCommandLineException(e.getMessage(), e); + } + } else{ + addFile(args[i]); + } + } + } + if(destDir == null) + destDir = new File("."); + if(sourceDir == null) + sourceDir = destDir; + } + /** -Xno-addressing-databinding option to disable addressing namespace data binding. This is * experimental switch and will be working as a temporary workaround till * jaxb can provide a better way to selelctively disable compiling of an @@ -119,6 +179,12 @@ } else if (args[i].equals("-wsdllocation")) { wsdlLocation = requireArgument("-wsdllocation", args, ++i); return 2; + } else if (args[i].equals("-XadditionalHeaders")) { + additionalHeaders = true; + return 1; + } else if (args[i].equals("-XdisableSSLHostnameVerification")) { + disableSSLHostnameVerification = true; + return 1; } else if (args[i].equals("-p")) { defaultPackage = requireArgument("-p", args, ++i); return 2; @@ -173,6 +239,10 @@ //Driver.usage(jaxbOptions,false); throw new BadCommandLineException(e.getMessage(),e); } + } else if (args[i].equals("-Xauthfile")) { + String authfile = requireArgument("-Xauthfile", args, ++i); + authFile = new File(authfile); + return 2; } return 0; // what's this option? @@ -182,12 +252,12 @@ if (wsdls.isEmpty()) { throw new BadCommandLineException(WscompileMessages.WSIMPORT_MISSING_FILE()); } + if(wsdlLocation == null){ wsdlLocation = wsdls.get(0).getSystemId(); } } - @Override protected void addFile(String arg) throws BadCommandLineException { addFile(arg, wsdls, "*.wsdl"); @@ -360,5 +430,4 @@ } } } - } diff -r c608b38af726 -r 78c175236707 sources/jaxws_src/src/com/sun/tools/internal/ws/wscompile/WsimportTool.java --- a/sources/jaxws_src/src/com/sun/tools/internal/ws/wscompile/WsimportTool.java Thu Sep 22 02:44:43 2011 +0100 +++ b/sources/jaxws_src/src/com/sun/tools/internal/ws/wscompile/WsimportTool.java Thu Sep 22 02:57:13 2011 +0100 @@ -24,7 +24,6 @@ */ - package com.sun.tools.internal.ws.wscompile; import com.sun.codemodel.internal.CodeWriter; @@ -42,6 +41,7 @@ import com.sun.tools.internal.xjc.util.NullStream; import com.sun.xml.internal.ws.api.server.Container; import com.sun.xml.internal.ws.util.ServiceFinder; +import com.sun.istack.internal.tools.ParallelWorldClassLoader; import org.xml.sax.EntityResolver; import org.xml.sax.SAXParseException; @@ -53,6 +53,7 @@ import java.io.PrintStream; import java.util.ArrayList; import java.util.List; +import java.net.Authenticator; /** * @author Vivek Pandey @@ -76,7 +77,6 @@ this.container = container; } - public boolean run(String[] args) { class Listener extends WsimportListener { ConsoleErrorReporter cer = new ConsoleErrorReporter(out == null ? new PrintStream(new NullStream()) : out); @@ -107,6 +107,11 @@ } @Override + public void debug(SAXParseException exception) { + cer.debug(exception); + } + + @Override public void info(SAXParseException exception) { cer.info(exception); } @@ -132,6 +137,13 @@ if (listener.isCanceled()) throw new AbortException(); } + + @Override + public void debug(SAXParseException exception){ + if(options.debugMode){ + listener.debug(exception); + } + } }; for (String arg : args) { @@ -151,6 +163,11 @@ if( !options.quiet ) listener.message(WscompileMessages.WSIMPORT_PARSING_WSDL()); + //set auth info + //if(options.authFile != null) + Authenticator.setDefault(new DefaultAuthenticator(receiver, options.authFile)); + + WSDLModeler wsdlModeler = new WSDLModeler(options, receiver); Model wsdlModel = wsdlModeler.buildModel(); if (wsdlModel == null) { @@ -165,10 +182,13 @@ TJavaGeneratorExtension[] genExtn = ServiceFinder.find(TJavaGeneratorExtension.class).toArray(); CustomExceptionGenerator.generate(wsdlModel, options, receiver); SeiGenerator.generate(wsdlModel, options, receiver, genExtn); + if(receiver.hadError()){ + throw new AbortException(); + } ServiceGenerator.generate(wsdlModel, options, receiver); CodeWriter cw = new WSCodeWriter(options.sourceDir, options); if (options.verbose) - cw = new ProgressCodeWriter(cw, System.out); + cw = new ProgressCodeWriter(cw, out); options.getCodeModel().build(cw); } catch(AbortException e){ //error might have been reported @@ -177,7 +197,7 @@ } if (!options.nocompile){ - if(!compileGeneratedClasses(receiver)){ + if(!compileGeneratedClasses(receiver, listener)){ listener.message(WscompileMessages.WSCOMPILE_COMPILATION_FAILED()); return false; } @@ -204,7 +224,20 @@ this.options.entityResolver = resolver; } - protected boolean compileGeneratedClasses(ErrorReceiver receiver){ + /* + * To take care of JDK6-JDK6u3, where 2.1 API classes are not there + */ + private static boolean useBootClasspath(Class clazz) { + try { + ParallelWorldClassLoader.toJarUrl(clazz.getResource('/'+clazz.getName().replace('.','/')+".class")); + return true; + } catch(Exception e) { + return false; + } + } + + + protected boolean compileGeneratedClasses(ErrorReceiver receiver, WsimportListener listener){ List sourceFiles = new ArrayList(); for (File f : options.getGeneratedFiles()) { @@ -216,14 +249,18 @@ if (sourceFiles.size() > 0) { String classDir = options.destDir.getAbsolutePath(); String classpathString = createClasspathString(); - String[] args = new String[5 + (options.debug ? 1 : 0) + boolean bootCP = useBootClasspath(EndpointReference.class) || useBootClasspath(XmlSeeAlso.class); + String[] args = new String[4 + (bootCP ? 1 : 0) + (options.debug ? 1 : 0) + sourceFiles.size()]; args[0] = "-d"; args[1] = classDir; args[2] = "-classpath"; args[3] = classpathString; - args[4] = "-Xbootclasspath/p:"+JavaCompilerHelper.getJarFile(EndpointReference.class)+File.pathSeparator+JavaCompilerHelper.getJarFile(XmlSeeAlso.class); - int baseIndex = 5; + int baseIndex = 4; + if (bootCP) { + args[baseIndex++] = "-Xbootclasspath/p:"+JavaCompilerHelper.getJarFile(EndpointReference.class)+File.pathSeparator+JavaCompilerHelper.getJarFile(XmlSeeAlso.class); + } + if (options.debug) { args[baseIndex++] = "-g"; } @@ -231,6 +268,15 @@ args[baseIndex + i] = sourceFiles.get(i); } + listener.message(WscompileMessages.WSIMPORT_COMPILING_CODE()); + if(options.verbose){ + StringBuffer argstr = new StringBuffer(); + for(String arg:args){ + argstr.append(arg).append(" "); + } + listener.message("javac "+ argstr.toString()); + } + return JavaCompilerHelper.compile(args, out, receiver); } //there are no files to compile, so return true? @@ -238,11 +284,16 @@ } private String createClasspathString() { - return System.getProperty("java.class.path"); + String classpathStr = System.getProperty("java.class.path"); + for(String s: options.cmdlineJars) { + classpathStr = classpathStr+File.pathSeparator+new File(s); + } + return classpathStr; } protected void usage(Options options) { System.out.println(WscompileMessages.WSIMPORT_HELP(WSIMPORT)); + System.out.println(WscompileMessages.WSIMPORT_USAGE_EXTENSIONS()); System.out.println(WscompileMessages.WSIMPORT_USAGE_EXAMPLES()); } } diff -r c608b38af726 -r 78c175236707 sources/jaxws_src/src/com/sun/tools/internal/ws/wsdl/document/Message.java --- a/sources/jaxws_src/src/com/sun/tools/internal/ws/wsdl/document/Message.java Thu Sep 22 02:44:43 2011 +0100 +++ b/sources/jaxws_src/src/com/sun/tools/internal/ws/wsdl/document/Message.java Thu Sep 22 02:57:13 2011 +0100 @@ -53,8 +53,11 @@ throw new AbortException(); } - _partsByName.put(part.getName(), part); - _parts.add(part); + if(part.getDescriptor() != null && part.getDescriptorKind() != null) { + _partsByName.put(part.getName(), part); + _parts.add(part); + } else + errorReceiver.warning(part.getLocator(), WsdlMessages.PARSING_ELEMENT_OR_TYPE_REQUIRED(part.getName())); } public Iterator parts() { diff -r c608b38af726 -r 78c175236707 sources/jaxws_src/src/com/sun/tools/internal/ws/wsdl/document/jaxws/JAXWSBinding.java --- a/sources/jaxws_src/src/com/sun/tools/internal/ws/wsdl/document/jaxws/JAXWSBinding.java Thu Sep 22 02:44:43 2011 +0100 +++ b/sources/jaxws_src/src/com/sun/tools/internal/ws/wsdl/document/jaxws/JAXWSBinding.java Thu Sep 22 02:57:13 2011 +0100 @@ -232,15 +232,6 @@ this.isProvider = isProvider; } - /* (non-Javadoc) - * @see Entity#getProperty(java.lang.String) - */ - public Object getProperty(String key) { - if(key.equals(JAXWSBindingsConstants.JAXB_BINDINGS)) - return jaxbBindings; - return null; - } - /** * @return Returns the methodName. */ diff -r c608b38af726 -r 78c175236707 sources/jaxws_src/src/com/sun/tools/internal/ws/wsdl/framework/AbstractDocument.java --- a/sources/jaxws_src/src/com/sun/tools/internal/ws/wsdl/framework/AbstractDocument.java Thu Sep 22 02:44:43 2011 +0100 +++ b/sources/jaxws_src/src/com/sun/tools/internal/ws/wsdl/framework/AbstractDocument.java Thu Sep 22 02:57:13 2011 +0100 @@ -134,26 +134,11 @@ } } - public void undefine(GloballyKnown e) { - Map map = getMap(e.getKind()); - if (e.getName() == null) - return; - QName name = - new QName(e.getDefining().getTargetNamespaceURI(), e.getName()); - - if (map.containsKey(name)){ - errReceiver.error(e.getLocator(), WsdlMessages.ENTITY_NOT_FOUND_BY_Q_NAME(e.getElementName().getLocalPart(), e.getElementName().getNamespaceURI())); - throw new AbortException(); - } else{ - map.remove(name); - } - } - public GloballyKnown find(Kind k, QName name) { Map map = getMap(k); Object result = map.get(name); if (result == null){ - errReceiver.error(new LocatorImpl(), WsdlMessages.ENTITY_NOT_FOUND_BY_Q_NAME(name.getLocalPart(), name.getNamespaceURI())); + errReceiver.error(null, WsdlMessages.ENTITY_NOT_FOUND_BY_Q_NAME(k.getName(), name, _systemId)); throw new AbortException(); } return (GloballyKnown) result; diff -r c608b38af726 -r 78c175236707 sources/jaxws_src/src/com/sun/tools/internal/ws/wsdl/parser/AbstractReferenceFinderImpl.java --- a/sources/jaxws_src/src/com/sun/tools/internal/ws/wsdl/parser/AbstractReferenceFinderImpl.java Thu Sep 22 02:44:43 2011 +0100 +++ b/sources/jaxws_src/src/com/sun/tools/internal/ws/wsdl/parser/AbstractReferenceFinderImpl.java Thu Sep 22 02:57:13 2011 +0100 @@ -24,7 +24,6 @@ */ - package com.sun.tools.internal.ws.wsdl.parser; import com.sun.istack.internal.SAXParseException2; diff -r c608b38af726 -r 78c175236707 sources/jaxws_src/src/com/sun/tools/internal/ws/wsdl/parser/DOMBuilder.java --- a/sources/jaxws_src/src/com/sun/tools/internal/ws/wsdl/parser/DOMBuilder.java Thu Sep 22 02:44:43 2011 +0100 +++ b/sources/jaxws_src/src/com/sun/tools/internal/ws/wsdl/parser/DOMBuilder.java Thu Sep 22 02:57:13 2011 +0100 @@ -24,7 +24,6 @@ */ - package com.sun.tools.internal.ws.wsdl.parser; import com.sun.tools.internal.ws.wsdl.document.jaxws.JAXWSBindingsConstants; diff -r c608b38af726 -r 78c175236707 sources/jaxws_src/src/com/sun/tools/internal/ws/wsdl/parser/DOMForest.java --- a/sources/jaxws_src/src/com/sun/tools/internal/ws/wsdl/parser/DOMForest.java Thu Sep 22 02:44:43 2011 +0100 +++ b/sources/jaxws_src/src/com/sun/tools/internal/ws/wsdl/parser/DOMForest.java Thu Sep 22 02:57:13 2011 +0100 @@ -24,22 +24,23 @@ */ - package com.sun.tools.internal.ws.wsdl.parser; +import com.sun.istack.internal.NotNull; +import com.sun.tools.internal.ws.resources.WscompileMessages; +import com.sun.tools.internal.ws.wscompile.AbortException; +import com.sun.tools.internal.ws.wscompile.DefaultAuthenticator; import com.sun.tools.internal.ws.wscompile.ErrorReceiver; import com.sun.tools.internal.ws.wscompile.WsimportOptions; import com.sun.tools.internal.ws.wsdl.document.schema.SchemaConstants; -import com.sun.tools.internal.ws.resources.WscompileMessages; import com.sun.tools.internal.xjc.reader.internalizer.LocatorTable; import com.sun.xml.internal.bind.marshaller.DataWriter; +import com.sun.xml.internal.ws.util.JAXWSUtils; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.NodeList; import org.xml.sax.ContentHandler; -import org.xml.sax.InputSource; -import org.xml.sax.SAXException; -import org.xml.sax.XMLReader; +import org.xml.sax.*; import org.xml.sax.helpers.XMLFilterImpl; import javax.xml.parsers.DocumentBuilder; @@ -51,17 +52,15 @@ import javax.xml.transform.TransformerFactory; import javax.xml.transform.dom.DOMSource; import javax.xml.transform.sax.SAXResult; +import javax.net.ssl.HttpsURLConnection; +import javax.net.ssl.HostnameVerifier; +import javax.net.ssl.SSLSession; import java.io.IOException; +import java.io.InputStream; import java.io.OutputStream; import java.io.OutputStreamWriter; -import java.net.URI; -import java.net.URISyntaxException; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.HashSet; -import java.util.List; -import java.util.Map; -import java.util.Set; +import java.net.*; +import java.util.*; /** * @author Vivek Pandey @@ -134,10 +133,9 @@ return inlinedSchemaElements; } - public Document parse(InputSource source, boolean root) throws SAXException { + public @NotNull Document parse(InputSource source, boolean root) throws SAXException, IOException { if (source.getSystemId() == null) throw new IllegalArgumentException(); - return parse(source.getSystemId(), source, root); } @@ -148,7 +146,7 @@ * * @return the parsed DOM document object. */ - public Document parse(String systemId, boolean root) throws SAXException, IOException { + public Document parse(String systemId, boolean root) throws SAXException, IOException{ systemId = normalizeSystemId(systemId); @@ -179,13 +177,11 @@ * * @return null if there was a parse error. otherwise non-null. */ - public Document parse(String systemId, InputSource inputSource, boolean root) throws SAXException { + public @NotNull Document parse(String systemId, InputSource inputSource, boolean root) throws SAXException, IOException{ Document dom = documentBuilder.newDocument(); systemId = normalizeSystemId(systemId); - boolean retryMex = false; - Exception exception = null; // put into the map before growing a tree, to // prevent recursive reference from causing infinite loop. core.put(systemId, dom); @@ -201,8 +197,70 @@ reader.setErrorHandler(errorReceiver); if (options.entityResolver != null) reader.setEntityResolver(options.entityResolver); + + InputStream is = null; + if(inputSource.getByteStream() != null){ + is = inputSource.getByteStream(); + } + if(is == null){ + int redirects=0; + boolean redirect; + URL url = JAXWSUtils.getFileOrURL(inputSource.getSystemId()); + URLConnection conn = url.openConnection(); + if (conn instanceof HttpsURLConnection) { + if (options.disableSSLHostnameVerification) { + ((HttpsURLConnection) conn).setHostnameVerifier(new HttpClientVerifier()); + } + } + + do { + redirect = false; + try { + is = conn.getInputStream(); + //is = sun.net.www.protocol.http.HttpURLConnection.openConnectionCheckRedirects(conn); + } catch (IOException e) { + if (conn instanceof HttpURLConnection) { + HttpURLConnection httpConn = ((HttpURLConnection) conn); + int code = httpConn.getResponseCode(); + if (code == 401) { + errorReceiver.error(new SAXParseException(WscompileMessages.WSIMPORT_AUTH_INFO_NEEDED(e.getMessage(), systemId, DefaultAuthenticator.defaultAuthfile), null, e)); + throw new AbortException(); + } + //FOR other code we will retry with MEX + } + throw e; + } + + //handle 302 or 303, JDK does not seem to handle 302 very well. + //Need to redesign this a bit as we need to throw better error message for IOException in this case + if (conn instanceof HttpURLConnection) { + HttpURLConnection httpConn = ((HttpURLConnection) conn); + int code = httpConn.getResponseCode(); + if (code == 302 || code == 303) { + //retry with the value in Location header + List seeOther = httpConn.getHeaderFields().get("Location"); + if (seeOther != null && seeOther.size() > 0) { + URL newurl = new URL(url, seeOther.get(0)); + if (!newurl.equals(url)){ + errorReceiver.info(new SAXParseException(WscompileMessages.WSIMPORT_HTTP_REDIRECT(code, seeOther.get(0)), null)); + url = newurl; + httpConn.disconnect(); + if(redirects >= 5){ + errorReceiver.error(new SAXParseException(WscompileMessages.WSIMPORT_MAX_REDIRECT_ATTEMPT(), null)); + throw new AbortException(); + } + conn = url.openConnection(); + redirects++; + redirect = true; + } + } + } + } + } while (redirect); + } + inputSource.setByteStream(is); reader.parse(inputSource); - Element doc = dom.getDocumentElement(); + Element doc = dom.getDocumentElement(); if (doc == null) { return null; } @@ -211,18 +269,10 @@ inlinedSchemaElements.add((Element) schemas.item(i)); } } catch (ParserConfigurationException e) { - exception = e; - } catch (IOException e) { - exception = e; - } catch (SAXException e) { - exception = e; + errorReceiver.error(e); + throw new SAXException(e.getMessage()); } - if (exception != null) { - errorReceiver.error(WscompileMessages.WSIMPORT_NO_WSDL(systemId), exception); - core.remove(systemId); - rootDocuments.remove(systemId); - } return dom; } @@ -236,6 +286,14 @@ return externalReferences; } + // overide default SSL HttpClientVerifier to always return true + // effectively overiding Hostname client verification when using SSL + private static class HttpClientVerifier implements HostnameVerifier { + public boolean verify(String s, SSLSession sslSession) { + return true; + } + } + public interface Handler extends ContentHandler { /** * Gets the DOM that was built. diff -r c608b38af726 -r 78c175236707 sources/jaxws_src/src/com/sun/tools/internal/ws/wsdl/parser/DOMForestParser.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/sources/jaxws_src/src/com/sun/tools/internal/ws/wsdl/parser/DOMForestParser.java Thu Sep 22 02:57:13 2011 +0100 @@ -0,0 +1,94 @@ +/* + * 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.wsdl.parser; + +import org.w3c.dom.Document; +import org.xml.sax.ContentHandler; +import org.xml.sax.EntityResolver; +import org.xml.sax.ErrorHandler; +import org.xml.sax.InputSource; +import org.xml.sax.SAXException; + +import java.io.IOException; + +import com.sun.xml.internal.xsom.parser.XMLParser; + +/** + * {@link XMLParser} implementation that + * parses XML from a DOM forest instead of parsing it from + * its original location. + * + * @author Kohsuke Kawaguchi (kohsuke.kawaguchi@sun.com) + * @author Vivek Pandey + */ +public class DOMForestParser implements XMLParser { + + /** + * DOM forest to be "parsed". + */ + private final DOMForest forest; + + /** + * Scanner object will do the actual SAX events generation. + */ + private final DOMForestScanner scanner; + + private final XMLParser fallbackParser; + + /** + * @param fallbackParser This parser will be used when DOMForestParser needs to parse + * documents that are not in the forest. + */ + public DOMForestParser(DOMForest forest, XMLParser fallbackParser) { + this.forest = forest; + this.scanner = new DOMForestScanner(forest); + this.fallbackParser = fallbackParser; + } + + + public void parse(InputSource source, ContentHandler handler, EntityResolver entityResolver, ErrorHandler errHandler) throws SAXException, IOException { + + } + + public void parse(InputSource source, ContentHandler handler, ErrorHandler errorHandler, EntityResolver entityResolver) + + throws SAXException, IOException { + String systemId = source.getSystemId(); + Document dom = forest.get(systemId); + + if (dom == null) { + // if no DOM tree is built for it, + // let the fall back parser parse the original document. + // + // for example, XSOM parses datatypes.xsd (XML Schema part 2) + // but this will never be built into the forest. + fallbackParser.parse(source, handler, errorHandler, entityResolver); + return; + } + + scanner.scan(dom, handler); + + } +} diff -r c608b38af726 -r 78c175236707 sources/jaxws_src/src/com/sun/tools/internal/ws/wsdl/parser/DOMForestScanner.java --- a/sources/jaxws_src/src/com/sun/tools/internal/ws/wsdl/parser/DOMForestScanner.java Thu Sep 22 02:44:43 2011 +0100 +++ b/sources/jaxws_src/src/com/sun/tools/internal/ws/wsdl/parser/DOMForestScanner.java Thu Sep 22 02:57:13 2011 +0100 @@ -24,7 +24,6 @@ */ - package com.sun.tools.internal.ws.wsdl.parser; import com.sun.xml.internal.bind.unmarshaller.DOMScanner; diff -r c608b38af726 -r 78c175236707 sources/jaxws_src/src/com/sun/tools/internal/ws/wsdl/parser/InternalizationLogic.java --- a/sources/jaxws_src/src/com/sun/tools/internal/ws/wsdl/parser/InternalizationLogic.java Thu Sep 22 02:44:43 2011 +0100 +++ b/sources/jaxws_src/src/com/sun/tools/internal/ws/wsdl/parser/InternalizationLogic.java Thu Sep 22 02:57:13 2011 +0100 @@ -24,7 +24,6 @@ */ - package com.sun.tools.internal.ws.wsdl.parser; import org.w3c.dom.Element; diff -r c608b38af726 -r 78c175236707 sources/jaxws_src/src/com/sun/tools/internal/ws/wsdl/parser/Internalizer.java --- a/sources/jaxws_src/src/com/sun/tools/internal/ws/wsdl/parser/Internalizer.java Thu Sep 22 02:44:43 2011 +0100 +++ b/sources/jaxws_src/src/com/sun/tools/internal/ws/wsdl/parser/Internalizer.java Thu Sep 22 02:57:13 2011 +0100 @@ -33,9 +33,14 @@ import com.sun.tools.internal.ws.wsdl.document.jaxws.JAXWSBindingsConstants; import com.sun.tools.internal.xjc.util.DOMUtils; import com.sun.xml.internal.bind.v2.util.EditDistance; +import com.sun.xml.internal.ws.util.DOMUtil; import com.sun.xml.internal.ws.util.JAXWSUtils; -import com.sun.xml.internal.ws.util.DOMUtil; -import org.w3c.dom.*; +import org.w3c.dom.Attr; +import org.w3c.dom.Document; +import org.w3c.dom.Element; +import org.w3c.dom.NamedNodeMap; +import org.w3c.dom.Node; +import org.w3c.dom.NodeList; import org.xml.sax.SAXParseException; import javax.xml.namespace.NamespaceContext; @@ -45,11 +50,17 @@ import javax.xml.xpath.XPathFactory; import java.net.MalformedURLException; import java.net.URL; -import java.util.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Iterator; +import java.util.Map; +import java.util.Set; /** * Internalizes external binding declarations. + * * @author Vivek Pandey */ public class Internalizer { @@ -66,28 +77,28 @@ this.errorReceiver = errorReceiver; } - public void transform(){ - Map targetNodes = new HashMap(); - for(Element jaxwsBinding : forest.outerMostBindings){ - buildTargetNodeMap(jaxwsBinding, jaxwsBinding, targetNodes ); + public void transform() { + Map targetNodes = new HashMap(); + for (Element jaxwsBinding : forest.outerMostBindings) { + buildTargetNodeMap(jaxwsBinding, jaxwsBinding, targetNodes); } - for(Element jaxwsBinding : forest.outerMostBindings){ - move(jaxwsBinding, targetNodes ); + for (Element jaxwsBinding : forest.outerMostBindings) { + move(jaxwsBinding, targetNodes); } } /** * Validates attributes of a <JAXWS:bindings> element. */ - private void validate( Element bindings ) { + private void validate(Element bindings) { NamedNodeMap atts = bindings.getAttributes(); - for( int i=0; i result ) { + private void buildTargetNodeMap(Element bindings, Node inheritedTarget, Map result) { // start by the inherited target Node target = inheritedTarget; validate(bindings); // validate this node // look for @wsdlLocation - if( bindings.getAttributeNode("wsdlLocation")!=null ) { - String wsdlLocation = bindings.getAttribute("wsdlLocation"); + if (isTopLevelBinding(bindings)) { + String wsdlLocation; + if (bindings.getAttributeNode("wsdlLocation") != null) { + wsdlLocation = bindings.getAttribute("wsdlLocation"); - try { - // absolutize this URI. - // TODO: use the URI class - // TODO: honor xml:base - wsdlLocation = new URL(new URL(forest.getSystemId(bindings.getOwnerDocument())), - wsdlLocation ).toExternalForm(); - } catch( MalformedURLException e ) { - wsdlLocation = JAXWSUtils.absolutize(JAXWSUtils.getFileOrURLName(wsdlLocation)); + try { + // absolutize this URI. + // TODO: use the URI class + // TODO: honor xml:base + wsdlLocation = new URL(new URL(forest.getSystemId(bindings.getOwnerDocument())), + wsdlLocation).toExternalForm(); + } catch (MalformedURLException e) { + wsdlLocation = JAXWSUtils.absolutize(JAXWSUtils.getFileOrURLName(wsdlLocation)); + } + } else { + //the node does not have + wsdlLocation = forest.getFirstRootDocument(); } + target = forest.get(wsdlLocation); - //target = wsdlDocuments.get(wsdlLocation); - target = forest.get(wsdlLocation); - if(target==null) { + if (target == null) { reportError(bindings, WsdlMessages.INTERNALIZER_INCORRECT_SCHEMA_REFERENCE(wsdlLocation, EditDistance.findNearest(wsdlLocation, forest.listSystemIDs()))); return; // abort processing this } @@ -134,7 +150,7 @@ if (element != null && element.getNamespaceURI().equals(Constants.NS_WSDL) && element.getLocalName().equals("definitions")) { //get all schema elements Element type = DOMUtils.getFirstChildElement(element, Constants.NS_WSDL, "types"); - if(type != null){ + if (type != null) { for (Element schemaElement : DOMUtils.getChildElements(type, Constants.NS_XSD, "schema")) { if (!schemaElement.hasAttributeNS(Constants.NS_XMLNS, "jaxb")) { schemaElement.setAttributeNS(Constants.NS_XMLNS, "xmlns:jaxb", JAXWSBindingsConstants.NS_JAXB_BINDINGS); @@ -150,88 +166,91 @@ boolean hasNode = true; - if((isJAXWSBindings(bindings) || isJAXBBindings(bindings)) && bindings.getAttributeNode("node")!=null ) { + if ((isJAXWSBindings(bindings) || isJAXBBindings(bindings)) && bindings.getAttributeNode("node") != null) { target = evaluateXPathNode(bindings, target, bindings.getAttribute("node"), new NamespaceContextImpl(bindings)); - }else if(isJAXWSBindings(bindings) && (bindings.getAttributeNode("node")==null) && !isTopLevelBinding(bindings)) { + } else + if (isJAXWSBindings(bindings) && (bindings.getAttributeNode("node") == null) && !isTopLevelBinding(bindings)) { hasNode = false; - }else if(isGlobalBinding(bindings) && !isWSDLDefinition(target) && isTopLevelBinding(bindings.getParentNode())){ + } else + if (isGlobalBinding(bindings) && !isWSDLDefinition(target) && isTopLevelBinding(bindings.getParentNode())) { target = getWSDLDefintionNode(bindings, target); } //if target is null it means the xpath evaluation has some problem, // just return - if(target == null) + if (target == null) return; // update the result map - if(hasNode) - result.put( bindings, target ); + if (hasNode) + result.put(bindings, target); // look for child and process them recursively - Element[] children = getChildElements( bindings); + Element[] children = getChildElements(bindings); for (Element child : children) buildTargetNodeMap(child, target, result); } - private Node getWSDLDefintionNode(Node bindings, Node target){ + private Node getWSDLDefintionNode(Node bindings, Node target) { return evaluateXPathNode(bindings, target, "wsdl:definitions", - new NamespaceContext(){ - public String getNamespaceURI(String prefix){ - return "http://schemas.xmlsoap.org/wsdl/"; - } - public String getPrefix(String nsURI){ - throw new UnsupportedOperationException(); - } - public Iterator getPrefixes(String namespaceURI) { - throw new UnsupportedOperationException(); - }}); + new NamespaceContext() { + public String getNamespaceURI(String prefix) { + return "http://schemas.xmlsoap.org/wsdl/"; + } + + public String getPrefix(String nsURI) { + throw new UnsupportedOperationException(); + } + + public Iterator getPrefixes(String namespaceURI) { + throw new UnsupportedOperationException(); + } + }); } - private boolean isWSDLDefinition(Node target){ - if(target == null) + private boolean isWSDLDefinition(Node target) { + if (target == null) return false; String localName = target.getLocalName(); String nsURI = target.getNamespaceURI(); return fixNull(localName).equals("definitions") && fixNull(nsURI).equals("http://schemas.xmlsoap.org/wsdl/"); } - private boolean isTopLevelBinding(Node node){ - if(node instanceof Document) - node = ((Document)node).getDocumentElement(); - return ((node != null) && (((Element)node).getAttributeNode("wsdlLocation") != null)); + private boolean isTopLevelBinding(Node node) { + return node.getOwnerDocument().getDocumentElement() == node; } - private boolean isJAXWSBindings(Node bindings){ + private boolean isJAXWSBindings(Node bindings) { return (bindings.getNamespaceURI().equals(JAXWSBindingsConstants.NS_JAXWS_BINDINGS) && bindings.getLocalName().equals("bindings")); } - private boolean isJAXBBindings(Node bindings){ + private boolean isJAXBBindings(Node bindings) { return (bindings.getNamespaceURI().equals(JAXWSBindingsConstants.NS_JAXB_BINDINGS) && bindings.getLocalName().equals("bindings")); } - private boolean isGlobalBinding(Node bindings){ - if(bindings.getNamespaceURI() == null){ + private boolean isGlobalBinding(Node bindings) { + if (bindings.getNamespaceURI() == null) { errorReceiver.warning(forest.locatorTable.getStartLocation((Element) bindings), WsdlMessages.INVALID_CUSTOMIZATION_NAMESPACE(bindings.getLocalName())); return false; } - return (bindings.getNamespaceURI().equals(JAXWSBindingsConstants.NS_JAXWS_BINDINGS) && + return (bindings.getNamespaceURI().equals(JAXWSBindingsConstants.NS_JAXWS_BINDINGS) && (bindings.getLocalName().equals("package") || - bindings.getLocalName().equals("enableAsyncMapping") || - bindings.getLocalName().equals("enableAdditionalSOAPHeaderMapping") || - bindings.getLocalName().equals("enableWrapperStyle") || - bindings.getLocalName().equals("enableMIMEContent"))); + bindings.getLocalName().equals("enableAsyncMapping") || + bindings.getLocalName().equals("enableAdditionalSOAPHeaderMapping") || + bindings.getLocalName().equals("enableWrapperStyle") || + bindings.getLocalName().equals("enableMIMEContent"))); } private static Element[] getChildElements(Element parent) { ArrayList a = new ArrayList(); NodeList children = parent.getChildNodes(); - for( int i=0; i } - if( nlst.getLength()==0 ) { + if (nlst.getLength() == 0) { reportError((Element) bindings, WsdlMessages.INTERNALIZER_X_PATH_EVALUATES_TO_NO_TARGET(expression)); return null; // abort } - if( nlst.getLength()!=1 ) { + if (nlst.getLength() != 1) { reportError((Element) bindings, WsdlMessages.INTERNALIZER_X_PATH_EVAULATES_TO_TOO_MANY_TARGETS(expression, nlst.getLength())); return null; // abort } Node rnode = nlst.item(0); - if(!(rnode instanceof Element )) { + if (!(rnode instanceof Element)) { reportError((Element) bindings, WsdlMessages.INTERNALIZER_X_PATH_EVALUATES_TO_NON_ELEMENT(expression)); return null; // abort } @@ -267,9 +286,9 @@ /** * Moves JAXWS customizations under their respective target nodes. */ - private void move( Element bindings, Map targetNodes ) { + private void move(Element bindings, Map targetNodes) { Node target = targetNodes.get(bindings); - if(target==null) + if (target == null) // this must be the result of an error on the external binding. // recover from the error by ignoring this node return; @@ -277,52 +296,49 @@ Element[] children = DOMUtils.getChildElements(bindings); for (Element item : children) { - if ("bindings".equals(item.getLocalName())){ - // process child recursively + if ("bindings".equals(item.getLocalName())) { + // process child recursively move(item, targetNodes); - }else if(isGlobalBinding(item)){ + } else if (isGlobalBinding(item)) { target = targetNodes.get(item); - moveUnder(item,(Element)target); - }else { + moveUnder(item, (Element) target); + } else { if (!(target instanceof Element)) { return; // abort } // move this node under the target - moveUnder(item,(Element)target); + moveUnder(item, (Element) target); } } } - private boolean isJAXBBindingElement(Element e){ + private boolean isJAXBBindingElement(Element e) { return fixNull(e.getNamespaceURI()).equals(JAXWSBindingsConstants.NS_JAXB_BINDINGS); } - private boolean isJAXWSBindingElement(Element e){ + private boolean isJAXWSBindingElement(Element e) { return fixNull(e.getNamespaceURI()).equals(JAXWSBindingsConstants.NS_JAXWS_BINDINGS); } /** * Moves the "decl" node under the "target" node. * - * @param decl - * A JAXWS customization element (e.g., <JAXWS:class>) - * - * @param target - * XML wsdl element under which the declaration should move. - * For example, <xs:element> + * @param decl A JAXWS customization element (e.g., <JAXWS:class>) + * @param target XML wsdl element under which the declaration should move. + * For example, <xs:element> */ - private void moveUnder( Element decl, Element target ) { + private void moveUnder(Element decl, Element target) { //if there is @node on decl and has a child element jaxb:bindings, move it under the target //Element jaxb = getJAXBBindingElement(decl); - if(isJAXBBindingElement(decl)){ + if (isJAXBBindingElement(decl)) { //add jaxb namespace declaration - if(!target.hasAttributeNS(Constants.NS_XMLNS, "jaxb")){ + if (!target.hasAttributeNS(Constants.NS_XMLNS, "jaxb")) { target.setAttributeNS(Constants.NS_XMLNS, "xmlns:jaxb", JAXWSBindingsConstants.NS_JAXB_BINDINGS); } //add jaxb:bindings version info. Lets put it to 1.0, may need to change latter - if(!target.hasAttributeNS(JAXWSBindingsConstants.NS_JAXB_BINDINGS, "version")){ + if (!target.hasAttributeNS(JAXWSBindingsConstants.NS_JAXB_BINDINGS, "version")) { target.setAttributeNS(JAXWSBindingsConstants.NS_JAXB_BINDINGS, "jaxb:version", JAXWSBindingsConstants.JAXB_BINDING_VERSION); } @@ -334,7 +350,7 @@ // it can't support user-defined extensions. This needs more careful thought. //JAXB doesn't allow writing jaxb:extensionbindingPrefix anywhere other than root element so lets write only on - if(target.getLocalName().equals("schema") && target.getNamespaceURI().equals(Constants.NS_XSD)&& !target.hasAttributeNS(JAXWSBindingsConstants.NS_JAXB_BINDINGS, "extensionBindingPrefixes")){ + if (target.getLocalName().equals("schema") && target.getNamespaceURI().equals(Constants.NS_XSD) && !target.hasAttributeNS(JAXWSBindingsConstants.NS_JAXB_BINDINGS, "extensionBindingPrefixes")) { target.setAttributeNS(JAXWSBindingsConstants.NS_JAXB_BINDINGS, "jaxb:extensionBindingPrefixes", "xjc"); target.setAttributeNS(Constants.NS_XMLNS, "xmlns:xjc", JAXWSBindingsConstants.NS_XJC_BINDINGS); } @@ -342,83 +358,83 @@ //insert xs:annotation/xs:appinfo where in jaxb:binding will be put target = refineSchemaTarget(target); copyInscopeNSAttributes(decl); - }else if(isJAXWSBindingElement(decl)){ + } else if (isJAXWSBindingElement(decl)) { //add jaxb namespace declaration - if(!target.hasAttributeNS(Constants.NS_XMLNS, "JAXWS")){ + if (!target.hasAttributeNS(Constants.NS_XMLNS, "JAXWS")) { target.setAttributeNS(Constants.NS_XMLNS, "xmlns:JAXWS", JAXWSBindingsConstants.NS_JAXWS_BINDINGS); } //insert xs:annotation/xs:appinfo where in jaxb:binding will be put target = refineWSDLTarget(target); copyInscopeNSAttributes(decl); - }else{ + } else { return; } // finally move the declaration to the target node. - if( target.getOwnerDocument()!=decl.getOwnerDocument() ) { + if (target.getOwnerDocument() != decl.getOwnerDocument()) { // if they belong to different DOM documents, we need to clone them - decl = (Element)target.getOwnerDocument().importNode(decl,true); + decl = (Element) target.getOwnerDocument().importNode(decl, true); } - target.appendChild( decl ); + target.appendChild(decl); } /** - * Copy in-scope namespace declarations of the decl node - * to the decl node itself so that this move won't change - * the in-scope namespace bindings. + * Copy in-scope namespace declarations of the decl node + * to the decl node itself so that this move won't change + * the in-scope namespace bindings. */ - private void copyInscopeNSAttributes(Element e){ + private void copyInscopeNSAttributes(Element e) { Element p = e; Set inscopes = new HashSet(); - while(true) { + while (true) { NamedNodeMap atts = p.getAttributes(); - for( int i=0; i mexWsdls = serviceDescriptor.getWSDLs(); List mexSchemas = serviceDescriptor.getSchemas(); Document root = null; @@ -220,8 +232,8 @@ } } NodeList nl = doc.getDocumentElement().getElementsByTagNameNS(WSDLConstants.NS_WSDL, "import"); - if (nl.getLength() > 0) { - Element imp = (Element) nl.item(0); + for(int i = 0; i < nl.getLength(); i++){ + Element imp = (Element) nl.item(i); String loc = imp.getAttribute("location"); if (loc != null) { if (!externalReferences.contains(loc)) @@ -247,6 +259,6 @@ //TODO:handle SAXSource //TODO:handler StreamSource } - return root; + return root.getDocumentElement(); } } diff -r c608b38af726 -r 78c175236707 sources/jaxws_src/src/com/sun/tools/internal/ws/wsdl/parser/NamespaceContextImpl.java --- a/sources/jaxws_src/src/com/sun/tools/internal/ws/wsdl/parser/NamespaceContextImpl.java Thu Sep 22 02:44:43 2011 +0100 +++ b/sources/jaxws_src/src/com/sun/tools/internal/ws/wsdl/parser/NamespaceContextImpl.java Thu Sep 22 02:57:13 2011 +0100 @@ -2,7 +2,7 @@ * reserved comment block * DO NOT REMOVE OR ALTER! */ -/* + /* * Portions Copyright 2005-2006 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -29,6 +29,22 @@ * THIS FILE WAS MODIFIED BY SUN MICROSYSTEMS, INC. */ +/* + * Copyright 1999-2004 The Apache Software Foundation. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + package com.sun.tools.internal.ws.wsdl.parser; import com.sun.xml.internal.bind.v2.WellKnownNamespace; @@ -47,21 +63,6 @@ this.e = e; } - /* - * Copyright 1999-2004 The Apache Software Foundation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ public String getNamespaceURI(String prefix) { Node parent = e; String namespace = null; diff -r c608b38af726 -r 78c175236707 sources/jaxws_src/src/com/sun/tools/internal/ws/wsdl/parser/VersionChecker.java --- a/sources/jaxws_src/src/com/sun/tools/internal/ws/wsdl/parser/VersionChecker.java Thu Sep 22 02:44:43 2011 +0100 +++ b/sources/jaxws_src/src/com/sun/tools/internal/ws/wsdl/parser/VersionChecker.java Thu Sep 22 02:57:13 2011 +0100 @@ -24,7 +24,6 @@ */ - package com.sun.tools.internal.ws.wsdl.parser; import com.sun.tools.internal.ws.resources.WsdlMessages; diff -r c608b38af726 -r 78c175236707 sources/jaxws_src/src/com/sun/tools/internal/ws/wsdl/parser/W3CAddressingExtensionHandler.java --- a/sources/jaxws_src/src/com/sun/tools/internal/ws/wsdl/parser/W3CAddressingExtensionHandler.java Thu Sep 22 02:44:43 2011 +0100 +++ b/sources/jaxws_src/src/com/sun/tools/internal/ws/wsdl/parser/W3CAddressingExtensionHandler.java Thu Sep 22 02:57:13 2011 +0100 @@ -22,9 +22,6 @@ * CA 95054 USA or visit www.sun.com if you need additional information or * have any questions. */ -/* - * $Id: W3CAddressingExtensionHandler.java,v 1.1.2.9 2007/02/06 00:33:38 kohsuke Exp $ - */ package com.sun.tools.internal.ws.wsdl.parser; diff -r c608b38af726 -r 78c175236707 sources/jaxws_src/src/com/sun/tools/internal/ws/wsdl/parser/WSDLInternalizationLogic.java --- a/sources/jaxws_src/src/com/sun/tools/internal/ws/wsdl/parser/WSDLInternalizationLogic.java Thu Sep 22 02:44:43 2011 +0100 +++ b/sources/jaxws_src/src/com/sun/tools/internal/ws/wsdl/parser/WSDLInternalizationLogic.java Thu Sep 22 02:57:13 2011 +0100 @@ -24,7 +24,6 @@ */ - package com.sun.tools.internal.ws.wsdl.parser; import com.sun.tools.internal.ws.wsdl.document.WSDLConstants; @@ -56,9 +55,14 @@ //TODO: add support for importing schema using wsdl:import } return atts.getValue("location"); - }else if(SchemaConstants.NS_XSD.equals(nsURI) && "import".equals(localName)){ + } + /* + We don't need to do this anymore, JAXB handles the schema imports, includes etc. + + else if(SchemaConstants.NS_XSD.equals(nsURI) && "import".equals(localName)){ return atts.getValue("schemaLocation"); } + */ return null; } } diff -r c608b38af726 -r 78c175236707 sources/jaxws_src/src/com/sun/tools/internal/ws/wsdl/parser/WSDLParser.java --- a/sources/jaxws_src/src/com/sun/tools/internal/ws/wsdl/parser/WSDLParser.java Thu Sep 22 02:44:43 2011 +0100 +++ b/sources/jaxws_src/src/com/sun/tools/internal/ws/wsdl/parser/WSDLParser.java Thu Sep 22 02:57:13 2011 +0100 @@ -29,9 +29,8 @@ import com.sun.tools.internal.ws.api.wsdl.TWSDLExtensionHandler; import com.sun.tools.internal.ws.resources.WsdlMessages; import com.sun.tools.internal.ws.util.xml.XmlUtil; -import com.sun.tools.internal.ws.wscompile.ErrorReceiver; +import com.sun.tools.internal.ws.wscompile.ErrorReceiverFilter; import com.sun.tools.internal.ws.wscompile.WsimportOptions; -import com.sun.tools.internal.ws.wscompile.ErrorReceiverFilter; import com.sun.tools.internal.ws.wsdl.document.Binding; import com.sun.tools.internal.ws.wsdl.document.BindingFault; import com.sun.tools.internal.ws.wsdl.document.BindingInput; @@ -68,11 +67,11 @@ import org.xml.sax.Locator; import org.xml.sax.SAXException; +import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import java.util.Map; -import java.io.IOException; /** * A parser for WSDL documents. This parser is used only at the tool time. @@ -135,7 +134,7 @@ // parse external binding files for (InputSource value : options.getWSDLBindings()) { errReceiver.pollAbort(); - Document root = forest.parse(value, true); // TODO: I think this should be false - KK + Document root = forest.parse(value, false); if(root==null) continue; // error must have been reported Element binding = root.getDocumentElement(); if (!fixNull(binding.getNamespaceURI()).equals(JAXWSBindingsConstants.NS_JAXWS_BINDINGS) @@ -168,7 +167,7 @@ private WSDLDocument buildWSDLDocument(){ /** * Currently we are working off first WSDL document - * TODO: add support of creating WSDLDocument from collection of WSDL documents + * TODO: add support of creating WSDLDocument from fromjava.collection of WSDL documents */ String location = forest.getRootWSDL(); diff -r c608b38af726 -r 78c175236707 sources/jaxws_src/src/com/sun/tools/internal/ws/wsdl/parser/WhitespaceStripper.java --- a/sources/jaxws_src/src/com/sun/tools/internal/ws/wsdl/parser/WhitespaceStripper.java Thu Sep 22 02:44:43 2011 +0100 +++ b/sources/jaxws_src/src/com/sun/tools/internal/ws/wsdl/parser/WhitespaceStripper.java Thu Sep 22 02:57:13 2011 +0100 @@ -24,7 +24,6 @@ */ - package com.sun.tools.internal.ws.wsdl.parser; import com.sun.xml.internal.bind.WhiteSpaceProcessor; diff -r c608b38af726 -r 78c175236707 sources/jaxws_src/src/com/sun/tools/internal/xjc/ClassLoaderBuilder.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/sources/jaxws_src/src/com/sun/tools/internal/xjc/ClassLoaderBuilder.java Thu Sep 22 02:57:13 2011 +0100 @@ -0,0 +1,122 @@ +/* + * 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.xjc; + +import java.net.MalformedURLException; +import java.net.URL; +import java.net.URLClassLoader; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +import javax.xml.bind.JAXBContext; + +import com.sun.istack.internal.tools.MaskingClassLoader; +import com.sun.istack.internal.tools.ParallelWorldClassLoader; + +/** + * Creates a class loader configured to run XJC 1.0/2.0 safely without + * interference with JAXB 2.0 API in Mustang. + * + * @author Kohsuke Kawaguchi + */ +class ClassLoaderBuilder { + + /** + * Creates a new class loader that eventually delegates to the given {@link ClassLoader} + * such that XJC can be loaded by using this classloader. + * + * @param v + * Either "1.0" or "2.0", indicating the version of the -source value. + */ + protected static ClassLoader createProtectiveClassLoader(ClassLoader cl, String v) throws ClassNotFoundException, MalformedURLException { + if(noHack) return cl; // provide an escape hatch + + boolean mustang = false; + + if(JAXBContext.class.getClassLoader()==null) { + // JAXB API is loaded from the bootstrap. We need to override one with ours + mustang = true; + + List mask = new ArrayList(Arrays.asList(maskedPackages)); + mask.add("javax.xml.bind."); + + cl = new MaskingClassLoader(cl,mask); + + URL apiUrl = cl.getResource("javax/xml/bind/annotation/XmlSeeAlso.class"); + if(apiUrl==null) + throw new ClassNotFoundException("There's no JAXB 2.1 API in the classpath"); + + cl = new URLClassLoader(new URL[]{ParallelWorldClassLoader.toJarUrl(apiUrl)},cl); + } + + //Leave XJC2 in the publicly visible place + // and then isolate XJC1 in a child class loader, + // then use a MaskingClassLoader + // so that the XJC2 classes in the parent class loader + // won't interfere with loading XJC1 classes in a child class loader + + if (v.equals("1.0")) { + if(!mustang) + // if we haven't used Masking ClassLoader, do so now. + cl = new MaskingClassLoader(cl,toolPackages); + cl = new ParallelWorldClassLoader(cl,"1.0/"); + } else { + if(mustang) + // the whole RI needs to be loaded in a separate class loader + cl = new ParallelWorldClassLoader(cl,""); + } + + return cl; + } + + + /** + * The list of package prefixes we want the + * {@link MaskingClassLoader} to prevent the parent + * classLoader from loading + */ + private static String[] maskedPackages = new String[]{ + // toolPackages + alpha + "com.sun.tools.", + "com.sun.codemodel.internal.", + "com.sun.relaxng.", + "com.sun.xml.internal.xsom.", + "com.sun.xml.internal.bind.", + }; + + private static String[] toolPackages = new String[]{ + "com.sun.tools.", + "com.sun.codemodel.internal.", + "com.sun.relaxng.", + "com.sun.xml.internal.xsom." + }; + + /** + * Escape hatch in case this class loader hack breaks. + */ + public static final boolean noHack = Boolean.getBoolean(XJCFacade.class.getName()+".nohack"); +} diff -r c608b38af726 -r 78c175236707 sources/jaxws_src/src/com/sun/tools/internal/xjc/Driver.java --- a/sources/jaxws_src/src/com/sun/tools/internal/xjc/Driver.java Thu Sep 22 02:44:43 2011 +0100 +++ b/sources/jaxws_src/src/com/sun/tools/internal/xjc/Driver.java Thu Sep 22 02:57:13 2011 +0100 @@ -24,6 +24,7 @@ */ package com.sun.tools.internal.xjc; +import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStream; @@ -101,7 +102,7 @@ private static void _main( String[] args ) throws Exception { try { - System.exit(run( args, System.err, System.out )); + System.exit(run( args, System.out, System.out )); } catch (BadCommandLineException e) { // there was an error in the command line. // print usage and abort. @@ -240,12 +241,15 @@ listener.message(Messages.format(Messages.PARSING_SCHEMA)); } + final boolean[] hadWarning = new boolean[1]; + ErrorReceiver receiver = new ErrorReceiverFilter(listener) { public void info(SAXParseException exception) { if(opt.verbose) super.info(exception); } public void warning(SAXParseException exception) { + hadWarning[0] = true; if(!opt.quiet) super.warning(exception); } @@ -367,6 +371,15 @@ assert false; } + if(opt.debugMode) { + try { + new FileOutputStream(new File(opt.targetDir,hadWarning[0]?"hadWarning":"noWarning")).close(); + } catch (IOException e) { + receiver.error(e); + return -1; + } + } + return 0; } catch( StackOverflowError e ) { if(opt.verbose) diff -r c608b38af726 -r 78c175236707 sources/jaxws_src/src/com/sun/tools/internal/xjc/Language.java --- a/sources/jaxws_src/src/com/sun/tools/internal/xjc/Language.java Thu Sep 22 02:44:43 2011 +0100 +++ b/sources/jaxws_src/src/com/sun/tools/internal/xjc/Language.java Thu Sep 22 02:57:13 2011 +0100 @@ -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.xjc; /** diff -r c608b38af726 -r 78c175236707 sources/jaxws_src/src/com/sun/tools/internal/xjc/MessageBundle.properties --- a/sources/jaxws_src/src/com/sun/tools/internal/xjc/MessageBundle.properties Thu Sep 22 02:44:43 2011 +0100 +++ b/sources/jaxws_src/src/com/sun/tools/internal/xjc/MessageBundle.properties Thu Sep 22 02:57:13 2011 +0100 @@ -24,20 +24,20 @@ # ConsoleErrorReporter.UnknownLocation = \ - unknown location - + unknown location + ConsoleErrorReporter.LineXOfY = \ - \ \ line {0} of {1} + \ \ line {0} of {1} ConsoleErrorReporter.UnknownFile = \ - unknown file - + unknown file + Driver.Private.Usage = \ Usage: xjc [-options ...] ... [-b ] ...\n\ If dir is specified, all schema files in it will be compiled.\n\ If jar is specified, /META-INF/sun-jaxb.episode binding file will be compiled.\n\ Options:\n\ -\ \ -debug : run in the debug mode\n\ +\ \ -debug : run in debug mode (includes -verbose)\n\ \ \ -nv : do not perform strict validation of the input schema(s)\n\ \ \ -extension : allow vendor extensions - do not strictly follow the\n\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Compatibility Rules and App E.2 from the JAXB Spec\n\ @@ -106,27 +106,30 @@ Driver.AddonUsage = \nExtensions: Driver.ExperimentalLanguageWarning = \ - Are you trying to compile {0}? Support for {0} is experimental. \ - You may enable it by using the {1} option. + Are you trying to compile {0}? Support for {0} is experimental. \ + You may enable it by using the {1} option. Driver.NonExistentDir = \ cowardly refuses to write to a non-existent directory "{0}" - + Driver.MissingRuntimePackageName = \ - the -use-runtime option is missing a package name - + the -use-runtime option is missing a package name + Driver.MissingModeOperand = \ - the -mode option is missing an operand - + the -mode option is missing an operand + Driver.MissingCompatibilityOperand = \ - the -compatibility option is missing an operand + the -compatibility option is missing an operand + +Driver.MissingOperand = \ + an operand is missing Driver.MissingProxyHost = \ - either the -host option is missing an operand \n\ + either the -host option is missing an operand \n\ or -port was specified but not -host - + Driver.MissingProxyPort = \ - either the -port option is missing an operand \n\ + either the -port option is missing an operand \n\ or -host was specified but not -port Driver.ILLEGAL_PROXY = \ @@ -145,77 +148,80 @@ "{0}" is not a valid proxy format. The format is [user[:password]@]proxyHost:proxyPort Driver.UnrecognizedMode = \ - unrecognized mode {0} + unrecognized mode {0} Driver.UnrecognizedParameter = \ - unrecognized parameter {0} - + unrecognized parameter {0} + Driver.MissingGrammar = \ - grammar is not specified + grammar is not specified Driver.NotABindingFile = \ - not an external binding file. The root element must be '{'http://java.sun.com/xml/ns/jaxb'}'bindings but it is '{'{0}'}'{1} - + not an external binding file. The root element must be '{'http://java.sun.com/xml/ns/jaxb'}'bindings but it is '{'{0}'}'{1} + Driver.ParsingSchema = \ - parsing a schema... - + parsing a schema... + Driver.ParseFailed = \ - Failed to parse a schema. + Failed to parse a schema. Driver.StackOverflow = \ - Stack overflow. Either you are compiling a large schema that requires more resource, or \ - XJC has a bug. First, please extend the stack size by using the -Xss JVM option. If this \ - doesn'''t solve the problem, please use the -debug option to obtain the stack trace and \ - contact Sun. - + Stack overflow. Either you are compiling a large schema that requires more resources, or \ + XJC has a bug. First, please extend the stack size by using the -Xss JVM option. If this \ + doesn'''t solve the problem, please use the -debug option to obtain the stack trace and \ + contact Sun. + Driver.CompilingSchema = \ - compiling a schema... + compiling a schema... Driver.FailedToGenerateCode = \ - Failed to produce code. + Failed to produce code. -# DO NOT localize the JAXB 2.1.3 in JDK string - it is a token for an ant +# DO NOT localize the JAXB 2.1.10 string - it is a token for an ant Driver.FilePrologComment = \ - This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vJAXB 2.1.3 in JDK \n\ - See http://java.sun.com/xml/jaxb \n\ - Any modifications to this file will be lost upon recompilation of the source schema. \n\ - Generated on: {0} \n + This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vJAXB 2.1.10 \n\ + See http://java.sun.com/xml/jaxb \n\ + Any modifications to this file will be lost upon recompilation of the source schema. \n\ + Generated on: {0} \n Driver.Version = \ - xjc version "JAXB 2.1.3" \n\ - JavaTM Architecture for XML Binding(JAXB) Reference Implementation, (build JAXB 2.1.3 in JDK) + xjc version "JAXB 2.1.10" \n\ + JavaTM Architecture for XML Binding(JAXB) Reference Implementation, (build JAXB 2.1.10) -Driver.BuildID = JAXB 2.1.3 in JDK - +Driver.BuildID = JAXB 2.1.10 + +# for JDK integration - include version in source zip +jaxb.jdk.version=2.1.10 + # see java.text.SimpleDateFormat for format syntax Driver.DateFormat = \ - yyyy.MM.dd + yyyy.MM.dd # see java.text.SimpleDateFormat for format syntax Driver.TimeFormat = \ - hh:mm:ss a z + hh:mm:ss a z -# as in: "generated on at